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

Feature/eum l2 grib reader #1

Merged
merged 4 commits into from
Jan 11, 2024
Merged
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
1 change: 1 addition & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,4 @@ The following people have made contributions to this project:
- [Xin Zhang (zxdawn)](https://github.com/zxdawn)
- [Yufei Zhu (yufeizhu600)](https://github.com/yufeizhu600)
- [Youva Aoun (YouvaEUMex)](https://github.com/YouvaEUMex)
- [David Navia (dnaviap)](https://github.com/dnaviap)
387 changes: 387 additions & 0 deletions satpy/etc/readers/eum_l2_grib.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,387 @@
reader:
name: eum_l2_grib
short_name: EUM L2 GRIB
long_name: MSG (Meteosat 8 to 11) SEVIRI Level products 2 and FCI L2 products in GRIB2 format
description: Reader for EUMETSAT MSG SEVIRI L2 files and FCI L2 files in GRIB format.
status: Alpha
supports_fsspec: false
sensors: [seviri,fci]
reader: !!python/name:satpy.readers.yaml_reader.GEOFlippableFileYAMLReader


file_types:

# EUMETSAT MSG SEVIRI L2 Aerosol Properties over Sea product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:AES
grib_seviri_aes:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'AESGRIBProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGAESE-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGAESE-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGAESE-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

# EUMETSAT MSG SEVIRI L2 Cloud Mask product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:CLM
grib_seviri_clm:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'CLMEncProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGCLMK-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGCLMK-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGCLMK-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

# EUMETSAT MSG SEVIRI L2 Cloud Top Height product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:CTH
grib_seviri_cth:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'CTHEncProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGCLTH-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGCLTH-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGCLTH-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

# EUMETSAT MSG SEVIRI L2 Clear-Sky Reflectance Map product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:CRM
grib_seviri_crm:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'CRMEncProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGCRMN-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGCRMN-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGCRMN-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

# EUMETSAT MSG SEVIRI L2 Active Fire Monitoring product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:FIR
grib_seviri_fir:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'FIREncProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGFIRG-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGFIRG-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGFIRG-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

# EUMETSAT MSG SEVIRI L2 Multi-Sensor Precipitation Estimate product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:MPE-GRIB
grib_seviri_mpe:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'MPEGRIBProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGMPEG-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGMPEG-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGMPEG-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

# EUMETSAT MSG SEVIRI L2 Optimal Cloud Analysis product
# https://navigator.eumetsat.int/product/EO:EUM:DAT:MSG:OCA
grib_seviri_oca:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- 'OCAEncProd_{start_time:%Y%m%d%H%M%S}Z_00_{server:8s}_{spacecraft:5s}_{scan_mode:3s}_{sub_sat:5s}'
- '{spacecraft:4s}-SEVI-MSGOCAE-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}'
- '{spacecraft:4s}-SEVI-MSGOCAE-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-{product_creation_time:%Y%m%d%H%M%S}-{ord_num:7s}.grb'
- '{spacecraft:4s}-SEVI-MSGOCAE-{id1:4s}-{id2:4s}-{start_time:%Y%m%d%H%M%S}.000000000Z-NA.grb'

grib_fci_clm:
file_reader: !!python/name:satpy.readers.eum_l2_grib.EUML2GribFileHandler
file_patterns:
- '{pflag}_{location_indicator},{data_designator},MTI{spacecraft_id:1d}+FCI-2-CLM-{subtype}-{coverage}-{subsetting}-{component1}-{component2}-{component3}-{purpose}-GRIB2_{oflag}_{originator}_{processing_time:%Y%m%d%H%M%S}_{facility_or_tool}_{environment}_{start_time:%Y%m%d%H%M%S}_{end_time:%Y%m%d%H%M%S}_{processing_mode}_{special_compression}_{disposition_mode}_{repeat_cycle_in_day:>04d}_{count_in_repeat_cycle:>04d}.bin'

datasets:

# EUMETSAT MSG SEVIRI L2 Aerosol Properties over Sea product
aerosol_optical_thickness_vis06:
name: aerosol_optical_thickness_vis06
long_name: Aerosol optical Thickness at 0.6um
standard_name: atmosphere_absorption_optical_thickness_due_to_ambient_aerosol
resolution: 9001.209497451
file_type: grib_seviri_aes
parameter_number: 20
units: "1"

aerosol_optical_thickness_vis08:
name: aerosol_optical_thickness_vis08
long_name: Aerosol optical Thickness at 0.8um
standard_name: atmosphere_absorption_optical_thickness_due_to_ambient_aerosol
resolution: 9001.209497451
file_type: grib_seviri_aes
parameter_number: 21
units: "1"

aerosol_optical_thickness_vis16:
name: aerosol_optical_thickness_vis16
long_name: Aerosol optical Thickness at 1.6um
standard_name: atmosphere_absorption_optical_thickness_due_to_ambient_aerosol
resolution: 9001.209497451
file_type: grib_seviri_aes
parameter_number: 22
units: "1"

angstroem_coefficient:
name: angstroem_coefficient
long_name: Angstroem Coefficient
standard_name: aerosol_angstrom_exponent
resolution: 9001.209497451
file_type: grib_seviri_aes
parameter_number: 23
units: "1"

aes_quality:
name: aes_quality
long_name: AES Product Quality Flag
standard_name: quality_flag
resolution: 9001.209497451
file_type: grib_seviri_aes
parameter_number: 192
units: "1"
flag_values: [0, 1, 2, 3]
flag_meanings: ['clear sky over water','clear sky over land', 'cloudy', 'no data' ]


# EUMETSAT MSG SEVIRI L2 Cloud Mask product
cloud_mask:
name: cloud_mask
long_name: Cloud Classification
standard_name: cloud_classification
resolution:
3000.403165817: {file_type: grib_seviri_clm}
2000: {file_type: grib_fci_clm}
parameter_number: 7
units: "1"
flag_values: [0, 1, 2, 3]
flag_meanings: ['clear sky over water','clear sky over land', 'cloudy', 'no data' ]


# EUMETSAT MSG SEVIRI L2 Cloud Top Height product
cloud_top_height:
name: cloud_top_height
long_name: Cloud Top Height
standard_name: height_at_cloud_top
resolution: 9001.209497451
file_type: grib_seviri_cth
parameter_number: 2
units: m

cloud_top_quality:
name: cloud_top_quality
long_name: CTH Product Quality Flag
standard_name: height_at_cloud_top quality_flag
resolution: 9001.209497451
file_type: grib_seviri_cth
parameter_number: 3
units: "1"
flag_values: [0, 1]
flag_meanings: ['good quality retrieval','poor quality retrieval' ]


# EUMETSAT MSG SEVIRI L2 Clear-Sky Reflectance Map product
vis_refl_06:
name: vis_refl_06
long_name: TOA Bidirectional Reflectance at 0.6um (7 days average)
standard_name: toa_bidirectional_reflectance
resolution: 3000.403165817
wavelength: [0.56, 0.635, 0.71]
file_type: grib_seviri_crm
parameter_number: 9
units: "%"

vis_refl_08:
name: vis_refl_08
long_name: TOA Bidirectional Reflectance at 0.8um (7 days average)
standard_name: toa_bidirectional_reflectance
resolution: 3000.403165817
wavelength: [0.74, 0.81, 0.88]
file_type: grib_seviri_crm
parameter_number: 10
units: "%"

vis_refl_16:
name: vis_refl_16
long_name: TOA Bidirectional Reflectance at 1.6um (7 days average)
standard_name: toa_bidirectional_reflectance
resolution: 3000.403165817
wavelength: [1.5, 1.64, 1.78]
file_type: grib_seviri_crm
parameter_number: 11
units: "%"

nir_refl_39:
name: nir_refl_39
long_name: TOA Bidirectional Reflectance at 3.9um (7 days average)
standard_name: toa_bidirectional_reflectance
resolution: 3000.403165817
wavelength: [3.48, 3.92, 4.36]
file_type: grib_seviri_crm
parameter_number: 12
units: "%"

num_accumulations:
name: num_accumulations
long_name: CRM Product Number of Accumulations
standard_name: number_of_accumulations
resolution: 3000.403165817
file_type: grib_seviri_crm
parameter_number: 6
units: "1"

solar_zenith_angle:
name: solar_zenith_angle
long_name: Solar Zenith Angle (7 days average)
standard_name: solar_zenith_angle
resolution: 3000.403165817
file_type: grib_seviri_crm
parameter_number: 7
units: degrees

relative_azimuth_angle:
name: relative_azimuth_angle
long_name: Relative Azimuth Angle (7 days average)
standard_name: relative_sensor_azimuth_angle
resolution: 3000.403165817
file_type: grib_seviri_crm
parameter_number: 8
units: degrees


# EUMETSAT MSG SEVIRI L2 Active Fire Monitoring product
active_fires:
name: active_fires
long_name: Active Fire Classification
standard_name: active_fire_classification
resolution: 3000.403165817
file_type: grib_seviri_fir
parameter_number: 9
units: "1"
flag_values: [0, 1, 2, 3]
flag_meanings: ['no fire','possible fire', 'probable fire', 'missing' ]

fire_probability:
name: fire_probability
long_name: Fire Probability
standard_name: fire_probability
resolution: 3000.403165817
file_type: grib_seviri_fir
parameter_number: 192
units: "%"


# EUMETSAT MSG SEVIRI L2 Multi-Sensor Precipitation Estimate product
instantaneous_rain_rate:
name: instantaneous_rain_rate
long_name: MPE Product Instantaneous Rain Rate
standard_name: rainfall_rate
resolution: 3000.403165817
file_type: grib_seviri_mpe
parameter_number: 1
units: "kg m-2 s-1"


# EUMETSAT MSG SEVIRI L2 Optimal Cloud Analysis product
pixel_scene_type:
name: pixel_scene_type
long_name: Cloud Type
standard_name: scene_classification
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 8
units: "1"
flag_values: [24,111,112]
flag_meanings: ['multi-layered cloud','water cloud','ice cloud']

measurement_cost:
name: measurement_cost
long_name: OCA Cost Function - Measurement part
standard_name: cost_function
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 30
units: "1"

upper_layer_cloud_optical_depth:
name: upper_layer_cloud_optical_depth
long_name: Upper Cloud Layer Optical Depth
standard_name: atmosphere_optical_thickness_due_to_cloud
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 31
units: "1"

upper_layer_cloud_top_pressure:
name: upper_layer_cloud_top_pressure
long_name: Upper Cloud Top Pressure
standard_name: air_pressure_at_cloud_top
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 32
units: Pa

upper_layer_cloud_effective_radius:
name: upper_layer_cloud_effective_radius
long_name: Upper Cloud Particle Effective Radius
standard_name: effective_radius_of_cloud_condensed_water_particles_at_cloud_top
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 33
units: m

error_in_upper_layer_cloud_optical_depth:
name: error_in_upper_layer_cloud_optical_depth
long_name: Upper Cloud Optical Depth Error Estimate
standard_name: atmosphere_optical_thickness_due_to_cloud standard_error
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 34
units: "1"

error_in_upper_layer_cloud_top_pressure:
name: error_in_upper_layer_cloud_top_pressure
long_name: Upper Cloud Top Pressure Error Estimate
standard_name: air_pressure_at_cloud_top standard_error
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 35
units: Pa

error_in_upper_layer_cloud_effective_radius:
name: error_in_upper_layer_cloud_effective_radius
long_name: Upper Cloud Particle Effective Radius Error Estimate
standard_name: effective_radius_of_cloud_condensed_water_particles_at_cloud_top standard_error
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 36
units: m

lower_layer_cloud_optical_depth:
name: lower_layer_cloud_optical_depth
long_name: Lower Cloud Optical Depth
standard_name: atmosphere_optical_thickness_due_to_cloud_in_lower_atmosphere_layer
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 37
units: "1"

lower_layer_cloud_top_pressure:
name: lower_layer_cloud_top_pressure
long_name: Lower Cloud Top Pressure
standard_name: air_pressure_at_cloud_top_in_lower_atmosphere_layer
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 38
units: Pa

error_in_lower_layer_cloud_optical_depth:
name: error_in_lower_layer_cloud_optical_depth
long_name: Lower Cloud Optical Depth Error Estimate
standard_name: atmosphere_optical_thickness_due_to_cloud_in_lower_atmosphere_layer standard_error
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 39
units: "1"

error_in_lower_layer_cloud_top_pressure:
name: error_in_lower_layer_cloud_top_pressure
long_name: Lower Cloud Top Pressure Error Estimate
standard_name: air_pressure_at_cloud_top_in_lower_atmosphere_layer standard_error
resolution: 3000.403165817
file_type: grib_seviri_oca
parameter_number: 40
units: Pa
Loading