Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add reader for L1C data from the MSI instrument aboard EarthCARE #2803

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions satpy/etc/composites/ec_msi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
sensor_name: visir/ec_msi


modifiers:
sunz_corrected:
modifier: !!python/name:satpy.modifiers.SunZenithCorrector

rayleigh_corrected:
modifier: !!python/name:satpy.modifiers.PSPRayleighReflectance
atmosphere: us-standard
aerosol_type: rayleigh_only
prerequisites:
- name: VIS
modifiers: [sunz_corrected]
optional_prerequisites:
- satellite_azimuth_angle
- satellite_zenith_angle
- solar_azimuth_angle
- solar_zenith_angle

composites:
natural_color_nocorr:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- SWIR1
- NIR
- VIS
standard_name: natural_color

natural_color:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: SWIR1
modifiers: [sunz_corrected]
- name: NIR
modifiers: [sunz_corrected]
- name: VIS
modifiers: [sunz_corrected]
standard_name: natural_color
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sensor_name: visir/msi
sensor_name: visir/sen2_msi


modifiers:
Expand Down
262 changes: 262 additions & 0 deletions satpy/etc/readers/msi_l1c_earthcare.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
reader:
name: msi_l1c_earthcare
short_name: MSI EarthCARE
long_name: Multispectral Imager for EarthCARE
description: Multispectral Imager for EarthCARE Level 1C (regridded) Reader
status: Nominal
supports_fsspec: true
sensors: [ec_msi]
reader: !!python/name:satpy.readers.yaml_reader.FileYAMLReader


file_types:
msi_l1c_earthcare_rgr:
file_reader: !!python/name:satpy.readers.msi_ec_l1c_h5.MSIECL1CFileHandler
file_patterns:
- '{mission_id:s}_{processing_institute:s}_{sensor_id:s}_{file_id:s}_{proc_level:s}_{start_time:%Y%m%dT%H%M%S}Z_{end_time:%Y%m%dT%H%M%S}Z_{orbit_number:s}{frame_id:s}.h5'


datasets:
# Science measurement datasets
VIS:
name: VIS
sensor: ec_msi
wavelength: [0.66, 0.67, 0.68]
resolution: 500
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
radiance:
standard_name: toa_outgoing_radiance
units: W m-2 sr-1
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 0
coordinates: [longitude, latitude]
NIR:
name: NIR
sensor: ec_msi
wavelength: [0.855, 0.865, 0.875]
resolution: 500
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
radiance:
standard_name: toa_outgoing_radiance
units: W m-2 sr-1
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 1
coordinates: [longitude, latitude]
SWIR1:
name: SWIR1
sensor: ec_msi
wavelength: [1.64, 1.67, 1.70]
resolution: 500
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
radiance:
standard_name: toa_outgoing_radiance
units: W m-2 sr-1
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 2
coordinates: [longitude, latitude]
SWIR2:
name: SWIR2
sensor: ec_msi
wavelength: [2.16, 2.21, 2.26]
resolution: 500
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
radiance:
standard_name: toa_outgoing_radiance
units: W m-2 sr-1
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 3
coordinates: [longitude, latitude]
TIR1:
name: TIR1
sensor: ec_msi
wavelength: [8.35, 8.80, 9.25]
resolution: 500
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
units: "K"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 4
coordinates: [longitude, latitude]
TIR2:
name: TIR2
sensor: ec_msi
wavelength: [10.35, 10.80, 11.25]
resolution: 500
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
units: "K"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 5
coordinates: [longitude, latitude]
TIR3:
name: TIR3
sensor: ec_msi
wavelength: [11.55,12.00,12.45]
resolution: 500
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
units: "K"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values
band_index: 6
coordinates: [longitude, latitude]

# Relative error datasets
VIS_rel_error:
name: VIS_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_radiance
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 0
NIR_rel_error:
name: NIR_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_radiance
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 1
SWIR1_rel_error:
name: SWIR1_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_radiance
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 2
SWIR2_rel_error:
name: SWIR2_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_radiance
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 3
TIR1_rel_error:
name: TIR1_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_brightness_temperature
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 4
TIR2_rel_error:
name: TIR2_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_brightness_temperature
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 5
TIR3_rel_error:
name: TIR3_rel_error
sensor: ec_msi
resolution: 500
standard_name: relative_error_in_toa_brightness_temperature
units: "%"
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/pixel_values_relative_error
band_index: 6

# Geolocation data
longitude:
name: longitude
units: degrees_east
standard_name: longitude
resolution: 500
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/longitude
latitude:
name: latitude
units: degrees_north
standard_name: latitude
resolution: 500
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/latitude
solar_azimuth_angle:
name: solar_azimuth_angle
units: degrees
standard_name: solar_azimuth_angle
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/solar_azimuth_angle
sensor_azimuth_angle:
name: sensor_azimuth_angle
units: degrees
standard_name: sensor_azimuth_angle
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/sensor_azimuth_angle
sensor_view_angle:
name: sensor_zenith_angle
units: degrees
standard_name: sensor_zenith_angle
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: NonStandard/sensor_view_angle
solar_zenith_angle:
name: solar_zenith_angle
units: degrees
standard_name: solar_zenith_angle
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: NonStandard/solar_zenith_angle

# Ancillary data
land_flag:
name: land_water_mask
units: 1
standard_name: land_water_mask
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/land_flag
surface_elevation:
name: surface_elevation
units: m
standard_name: surface_elevation
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: ScienceData/surface_elevation
surface_index:
name: surface_index
units: 1
standard_name: surface_index
resolution: 500
coordinates: [longitude, latitude]
file_type: msi_l1c_earthcare_rgr
file_key: NonStandard/surface_index
2 changes: 1 addition & 1 deletion satpy/etc/readers/msi_safe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ reader:
description: SAFE Reader for MSI data (Sentinel-2)
status: Nominal
supports_fsspec: false
sensors: [msi]
sensors: [sen2_msi]
default_channels: []
reader: !!python/name:satpy.readers.yaml_reader.FileYAMLReader

Expand Down
Loading
Loading