Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ccb567a
prototype MAP L1C readers
pepephillips May 23, 2024
9b0b489
Syncing with upstream changes
pepephillips May 23, 2024
93c0541
v1 reader for 3MI L1C with basic functionality
pepephillips Sep 24, 2024
ed528e3
Merge branch 'thr3mi_dev' of https://github.com/pepephillips/satpy in…
pepephillips Sep 24, 2024
965a51a
Merge branch 'pytroll:main' into thr3mi_dev
pepephillips Feb 4, 2025
a802f39
Collecting updates since September 2024
pepephillips Feb 4, 2025
e761395
removed map.yaml as was not needed
pepephillips Feb 4, 2025
6f39755
needed for sync
pepephillips Feb 4, 2025
a515e4f
Merge branch 'main' of https://github.com/pytroll/satpy into thr3mi_dev
pepephillips Feb 13, 2025
bc112ff
improved test coverage, PEP8 corrections and few typos in yaml
pepephillips Feb 13, 2025
5934a89
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 15, 2025
f3bc56e
improved test coverage and edits to coding style from pre-commit
pepephillips Feb 18, 2025
ddd5b84
resolved merge conflict on thr3mi_l1c_nc.yaml
pepephillips Feb 18, 2025
2fcc7d0
Merge branch 'pytroll:main' into thr3mi_dev
pepephillips Feb 21, 2025
54c0157
corrected issues from pre-commit ruff and improved unit test coverage
pepephillips Feb 21, 2025
c1aeb1a
more corrected issues from pre-commit ruff and improved unit test cov…
pepephillips Feb 25, 2025
88f6e83
Merge branch 'pytroll:main' into thr3mi_dev
pepephillips May 8, 2025
a6fa587
Merge branch 'pytroll:main' into thr3mi_dev
pepephillips Sep 10, 2025
13efe60
Merge branch 'pytroll:main' into thr3mi_dev
pepephillips Sep 17, 2025
3f09755
thr3mi_l1c_nc.yaml includíng new fieilds, thr3mi_l1c_nc.py including …
pepephillips Sep 17, 2025
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
301 changes: 301 additions & 0 deletions satpy/etc/readers/thr3mi_l1c_nc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,301 @@
reader:
name: thr3mi_l1c_nc
short_name: 3MI L1C RAD NetCDF4
long_name: EPS-SG 3MI L1C Radiance (NetCDF4)
description: >
Reader for EUMETSAT EPS-SG 3MI Multi-Angle Polarimeter Level 1C Radiance files in NetCDF4 format per PFS
sensors: [3mi]
reader: !!python/name:satpy.readers.yaml_reader.FileYAMLReader
supports_fsspec: true
status: Beta

Copy link
Copy Markdown
Member

@ameraner ameraner Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a couple more fields are required nowadays

Suggested change
supports_fsspec: true
status: Beta

data_identification_keys:
name:
required: true
# wavelength:
# type: !!python/name:satpy.dataset.dataid.WavelengthRange
view:
enum:
- view1
- view2
- view3
- view4
- view5
- view6
- view7
- view8
- view9
- view10
- view11
- view12
- view13
- view14
transitive: true
polarization:
transitive: true
# modifiers:
# default: []
# type: !!python/name:satpy.dataset.dataid.ModifierTuple


file_types:
# EUMETSAT EPS-SG Multi-view, Multi-channel, Multi-polarisation Imager (3MI) Level 1C Radiance files in NetCDF4 format
nc_3mi_l1c_rad:

file_reader: !!python/name:satpy.readers.thr3mi_l1c_nc.Thr3miL1cNCFileHandler
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-3MI-1C-RAD_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:
}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']

datasets:

# --- Coordinates ---
lon_pixels:
name: lon_pixels
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/geolocation_data/longitude
file_key_overlap: /dimension/overlaps
standard_name: longitude

lat_pixels:
name: lat_pixels
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/geolocation_data/latitude
file_key_overlap: /dimension/overlaps
standard_name: latitude

# --- Measurement data ---
3mi_410:
name: 3mi_410
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0410/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 1
wavelength: [0.410, 0.420, 0.430]

3mi_443:
name: 3mi_443
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0443/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 2
wavelength: [0.433, 0.443, 0.453]

3mi_490:
name: 3mi_490
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0490/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
overlaps: number_overlaps
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 3
wavelength: [0.480, 0.490, 0.500]

3mi_555:
name: 3mi_555
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0555/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 4
wavelength: [0.545, 0.555, 0.565]

3mi_670:
name: 3mi_670
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0670/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 5
wavelength: [0.660, 0.670, 0.680]

3mi_763:
name: 3mi_763
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0763/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 6
wavelength: [0.753, 0.763, 0.773]

3mi_765:
name: 3mi_765
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0765/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 7
wavelength: [0.745, 0.765, 0.785]

3mi_865:
name: 3mi_865
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0865/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 8
wavelength: [0.845, 0.865, 0.885]

3mi_910:
name: 3mi_910
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_0910/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 9
wavelength: [0.900, 0.910, 0.920]

3mi_1370:
name: 3mi_1370
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_1370/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 10
wavelength: [1.360, 1.370, 1.380]

3mi_1650:
name: 3mi_1650
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_1650/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 11
wavelength: [1.640, 1.650, 1.660]

3mi_2130:
name: 3mi_2130
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/measurement_data/r_2130/reflectance_
file_key_overlap: /dimension/overlaps
coordinates: [lat_pixels, lon_pixels]
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12]
polarization: [I, Q, U]
calibration:
reflectance:
standard_name: reflectance_factor
units: ""
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
chan_solar_index: 12
wavelength: [2.120, 2.130, 2.140]

#-------------------------------------------------------------------------------------------------------------------------------------

# --- Geometric data ---
solar_zenith:
name: solar_zenith_angle
standard_name: solar_zenith_angle
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/geolocation_data/solar_zenith_angle
file_key_overlap: /dimension/overlaps
file_key001: data/overlap_001/geolocation_data/solar_zenith_angle
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
coordinates: [lat_pixels, lon_pixels]

relative_azimuth:
name: relative_azimuth_angle
standard_name: relative_azimuth_angle
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/geolocation_data/relative_azimuth_angle
file_key_overlap: /dimension/overlaps
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
coordinates: [lat_pixels, lon_pixels]

sensor_zenith:
name: sensor_zenith_angle
standard_name: sensor_zenith_angle
file_type: nc_3mi_l1c_rad
file_key: data/overlap_XXX/geolocation_data/satellite_zenith_angle
file_key_overlap: /dimension/overlaps
view: [view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, view12, view13, view14]
coordinates: [lat_pixels, lon_pixels]
Loading
Loading