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: 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

_is_acwater_operable(logger: Logger)[source]

Return True if ACWater/Polymer is operable, else raise a warning and return False.

_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: 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

_is_acwater_operable(logger: Logger)[source]

Return True if ACWater/Polymer is operable, else raise a warning and return False.

_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)