From 77a4727c480ad0b4c1fd638687952ce31ff5090f Mon Sep 17 00:00:00 2001 From: "Daniel.Frisinghelli" <daniel.frisinghelli@eurac.edu> Date: Wed, 3 Feb 2021 17:39:20 +0100 Subject: [PATCH] Added spectral bandwidths to each multispectral sensor. --- pysegcnn/core/constants.py | 64 +++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/pysegcnn/core/constants.py b/pysegcnn/core/constants.py index 443844d..645c6fe 100644 --- a/pysegcnn/core/constants.py +++ b/pysegcnn/core/constants.py @@ -24,9 +24,23 @@ import numpy as np class MultiSpectralSensor(enum.Enum): """A generic class for a multispectral sensor.""" + @property + def number(self): + """Return the number of a band.""" + return self.value[0] + + @property + def range(self): + """Return the spectral range of a band in microns.""" + return self.value[1] + @classmethod def band_dict(cls): - return {band.value: band.name for band in cls} + return {band.number: band.name for band in cls} + + @classmethod + def spectral_range(cls): + return {band.name: band.range for band in cls} class Landsat8(MultiSpectralSensor): @@ -41,17 +55,17 @@ class Landsat8(MultiSpectralSensor): """ - ublue = 1 - blue = 2 - green = 3 - red = 4 - nir = 5 - swir1 = 6 - swir2 = 7 - pan = 8 - cirrus = 9 - tir1 = 10 - tir2 = 11 + ublue = 1, (0.43, 0.45) + blue = 2, (0.45, 0.51) + green = 3, (0.53, 0.59) + red = 4, (0.64, 0.67) + nir = 5, (0.85, 0.88) + swir1 = 6, (1.57, 1.65) + swir2 = 7, (2.11, 2.29) + pan = 8, (0.5, 0.68) + cirrus = 9, (1.36, 1.38) + tir1 = 10, (10.60, 11.19) + tir2 = 11, (11.50, 12.51) class Sentinel2(MultiSpectralSensor): @@ -62,19 +76,19 @@ class Sentinel2(MultiSpectralSensor): """ - ublue = 1 - blue = 2 - green = 3 - red = 4 - vnir1 = 5 - vnir2 = 6 - vnir3 = 7 - nir = 8 - nnir = '8A' - vapor = 9 - cirrus = 10 - swir1 = 11 - swir2 = 12 + ublue = 1, (0.43, 0.45) + blue = 2, (0.46, 0.53) + green = 3, (0.54, 0.58) + red = 4, (0.65, 0.68) + vnir1 = 5, (0.69, 0.71) + vnir2 = 6, (0.73, 0.75) + vnir3 = 7, (0.77, 0.79) + nir = 8, (0.78, 0.89) + nnir = '8A', (0.85, 0.88) + vapor = 9, (0.94, 0.96) + cirrus = 10, (1.36, 1.39) + swir1 = 11, (1.57, 1.66) + swir2 = 12, (2.11, 2.29) class Label(enum.Enum): -- GitLab