Skip to content

Commit

Permalink
Merge pull request #1 from dnaviap/feature/eum_l2_grib_reader
Browse files Browse the repository at this point in the history
Feature/eum l2 grib reader
  • Loading branch information
dnaviap authored Jan 11, 2024
2 parents fbe017c + 0474fd0 commit 1150b44
Show file tree
Hide file tree
Showing 5 changed files with 1,072 additions and 0 deletions.
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

0 comments on commit 1150b44

Please sign in to comment.