enpt.processors.atmospheric_correction package

Submodules

enpt.processors.atmospheric_correction.atmospheric_correction module

EnPT atmospheric correction module.

Performs the atmospheric correction of EnMAP L1B data.

class enpt.processors.atmospheric_correction.atmospheric_correction.AtmosphericCorrector(config: Optional[EnPTConfig] = None)[source]

Bases: object

Class for performing atmospheric correction of EnMAP L1 images using SICOR.

Create an instance of AtmosphericCorrector.

_get_sicor_options(enmap_ImageL1: EnMAPL1Product_SensorGeo, land_only=False) dict[source]

Get a dictionary containing the SICOR options.

Parameters
  • enmap_ImageL1 – EnMAP Level 1 product in sensor geometry

  • land_only – True: SICOR is applied to land only; False: SICOR is applied to all pixels

Returns

dictionary of SICOR options

_run_AC__combined_mode(enmap_ImageL1: ~enpt.model.images.images_sensorgeo.EnMAPL1Product_SensorGeo) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>, <class 'dict'>)[source]

Run atmospheric corr. in ‘combined’ mode, i.e., use SICOR for land and ACWater/Polymer for water surfaces.

NOTE:
  • The output radiometric units are:
    • ‘surface reflectance’ for land surfaces

    • ‘water leaving reflectance’ for water surfaces

  • There might be visible edge effects, e.g., at coastlines.

_run_AC__land_mode(enmap_ImageL1: ~enpt.model.images.images_sensorgeo.EnMAPL1Product_SensorGeo) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>, <class 'dict'>)[source]

Run atmospheric correction in ‘land’ mode, i.e., use SICOR for all surfaces.

_run_AC__water_mode(enmap_ImageL1: ~enpt.model.images.images_sensorgeo.EnMAPL1Product_SensorGeo) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>)[source]

Run atmospheric correction in ‘water’ mode, i.e., use ACWater/Polymer for water surfaces only.

NOTE:
  • Land surfaces are NOT included in the EnMAP L2A product.

  • The output radiometric unit for water surfaces is ‘water leaving reflectance’.

static _validate_AC_results(reflectance_vnir: ndarray, reflectance_swir: ndarray, logger: Logger)[source]
run_ac(enmap_ImageL1: EnMAPL1Product_SensorGeo) EnMAPL1Product_SensorGeo[source]

Run atmospheric correction according to the specified ‘mode_ac’ parameter.

Parameters

enmap_ImageL1 – input EnMAP image containing TOA reflectance (an instance EnMAPL1Product_SensorGeo)

Returns

atmospherically corrected output EnMAP image containing BOA reflectance / water leaving reflectance (an instance EnMAPL1Product_SensorGeo)

Module contents

EnPT ‘atmospheric correction module.

class enpt.processors.atmospheric_correction.AtmosphericCorrector(config: Optional[EnPTConfig] = None)[source]

Bases: object

Class for performing atmospheric correction of EnMAP L1 images using SICOR.

Create an instance of AtmosphericCorrector.

_get_sicor_options(enmap_ImageL1: EnMAPL1Product_SensorGeo, land_only=False) dict[source]

Get a dictionary containing the SICOR options.

Parameters
  • enmap_ImageL1 – EnMAP Level 1 product in sensor geometry

  • land_only – True: SICOR is applied to land only; False: SICOR is applied to all pixels

Returns

dictionary of SICOR options

_run_AC__combined_mode(enmap_ImageL1: ~enpt.model.images.images_sensorgeo.EnMAPL1Product_SensorGeo) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>, <class 'dict'>)[source]

Run atmospheric corr. in ‘combined’ mode, i.e., use SICOR for land and ACWater/Polymer for water surfaces.

NOTE:
  • The output radiometric units are:
    • ‘surface reflectance’ for land surfaces

    • ‘water leaving reflectance’ for water surfaces

  • There might be visible edge effects, e.g., at coastlines.

_run_AC__land_mode(enmap_ImageL1: ~enpt.model.images.images_sensorgeo.EnMAPL1Product_SensorGeo) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>, <class 'dict'>)[source]

Run atmospheric correction in ‘land’ mode, i.e., use SICOR for all surfaces.

_run_AC__water_mode(enmap_ImageL1: ~enpt.model.images.images_sensorgeo.EnMAPL1Product_SensorGeo) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>)[source]

Run atmospheric correction in ‘water’ mode, i.e., use ACWater/Polymer for water surfaces only.

NOTE:
  • Land surfaces are NOT included in the EnMAP L2A product.

  • The output radiometric unit for water surfaces is ‘water leaving reflectance’.

static _validate_AC_results(reflectance_vnir: ndarray, reflectance_swir: ndarray, logger: Logger)[source]
run_ac(enmap_ImageL1: EnMAPL1Product_SensorGeo) EnMAPL1Product_SensorGeo[source]

Run atmospheric correction according to the specified ‘mode_ac’ parameter.

Parameters

enmap_ImageL1 – input EnMAP image containing TOA reflectance (an instance EnMAPL1Product_SensorGeo)

Returns

atmospherically corrected output EnMAP image containing BOA reflectance / water leaving reflectance (an instance EnMAPL1Product_SensorGeo)