Skip to content

Commit

Permalink
Merge pull request #1979 from pepephillips/TDP_V2
Browse files Browse the repository at this point in the history
Update VII reader for test data v2
  • Loading branch information
mraspaud committed Feb 22, 2022
2 parents a3fa4c4 + e4db837 commit 5ed7871
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 56 deletions.
1 change: 1 addition & 0 deletions AUTHORS.md
Expand Up @@ -52,6 +52,7 @@ The following people have made contributions to this project:
- [Esben S. Nielsen (storpipfugl)](https://github.com/storpipfugl)
- [Tom Parker (tparker-usgs)](https://github.com/tparker-usgs)
- [Christian Peters (peters77)](https://github.com/peters77)
- [Pepe Phillips (pepephillips)](https://github.com/pepephillips)
- [Ghislain Picard (ghislainp)](https://github.com/ghislainp)
- [Simon R. Proud (simonrp84)](https://github.com/simonrp84)
- [Lars Ørum Rasmussen (loerum)](https://github.com/loerum)
Expand Down
66 changes: 32 additions & 34 deletions satpy/etc/readers/vii_l1b_nc.yaml
Expand Up @@ -3,17 +3,15 @@ reader:
short_name: VII L1B RAD NetCDF4
long_name: EPS-SG VII L1B Radiance (NetCDF4)
description: >
Reader for EUMETSAT EPSG-SG Visual Infrared Imager Level 1B Radiance files in NetCDF4 format.
Reader for EUMETSAT EPS-SG Visual Infrared Imager Level 1B Radiance files in NetCDF4 format per FS V4A.
sensors: [vii]
reader: !!python/name:satpy.readers.yaml_reader.FileYAMLReader

file_types:
# EUMETSAT EPSG-SG Visual Infrared Imager Level 1B Radiance files in NetCDF4 format
nc_vii_l1b_rad:
file_reader: !!python/name:satpy.readers.vii_l1b_nc.ViiL1bNCFileHandler
file_patterns: ['W_DE-AIRBUSDS-Friedrichshafen,SAT,{spacecraft_name:s}-VII-1B-RAD_C_EUM_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc',
'W_xx-eumetsat-darmstadt,SAT,{spacecraft_name:s}-VII-1B-RAD_C_EUM_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc',
'W_xx-eumetsat-darmstadt,SAT,{spacecraft_name:s}-VII-1B-RAD_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
file_patterns: ['W_XX-EUMETSAT-Darmstadt,SAT,{spacecraft_name:s}-VII-1B-RAD_C_EUMT_{creation_time:%Y%m%d%H%M%S}_{mission_type:s}_{environment:s}_{sensing_start_time:%Y%m%d%H%M%S}_{sensing_end_time:%Y%m%d%H%M%S}_{disposition_mode:s}_{processing_mode:s}____.nc']
cached_longitude: data/measurement_data/longitude
cached_latitude: data/measurement_data/latitude

Expand Down Expand Up @@ -51,7 +49,7 @@ datasets:
name: vii_443
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_443
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -65,7 +63,7 @@ datasets:
name: vii_555
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_555
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -79,7 +77,7 @@ datasets:
name: vii_668
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_668
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -93,7 +91,7 @@ datasets:
name: vii_752
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_752
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -107,7 +105,7 @@ datasets:
name: vii_763
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_763
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration: [reflectance, radiance]
chan_solar_index: 4
wavelength: [0.75695, 0.7627, 0.76845]
Expand All @@ -116,7 +114,7 @@ datasets:
name: vii_865
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_865
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -130,7 +128,7 @@ datasets:
name: vii_914
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_914
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -144,7 +142,7 @@ datasets:
name: vii_1240
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_1240
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -158,7 +156,7 @@ datasets:
name: vii_1375
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_1375
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -172,7 +170,7 @@ datasets:
name: vii_1630
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_1630
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -186,7 +184,7 @@ datasets:
name: vii_2250
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_2250
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
reflectance:
standard_name: toa_bidirectional_reflectance
Expand All @@ -200,7 +198,7 @@ datasets:
name: vii_3740
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_3740
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -214,7 +212,7 @@ datasets:
name: vii_3959
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_3959
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -228,7 +226,7 @@ datasets:
name: vii_4050
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_4050
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -242,7 +240,7 @@ datasets:
name: vii_6725
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_6725
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -256,7 +254,7 @@ datasets:
name: vii_7325
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_7325
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -270,7 +268,7 @@ datasets:
name: vii_8540
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_8540
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -284,7 +282,7 @@ datasets:
name: vii_10690
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_10690
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -298,7 +296,7 @@ datasets:
name: vii_12020
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_12020
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -312,7 +310,7 @@ datasets:
name: vii_13345
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/vii_13345
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
calibration:
brightness_temperature:
standard_name: toa_brightness_temperature
Expand All @@ -329,72 +327,72 @@ datasets:
standard_name: solar_zenith_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/solar_zenith
coordinates: [lon_tie_points, lat_tie_points]
coordinates: [lat_tie_points, lon_tie_points]

solar_azimuth_tie_points:
name: solar_azimuth_tie_points
standard_name: solar_azimuth_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/solar_azimuth
coordinates: [lon_tie_points, lat_tie_points]
coordinates: [lat_tie_points, lon_tie_points]

observation_zenith_tie_points:
name: observation_zenith_tie_points
standard_name: sensor_zenith_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/observation_zenith
coordinates: [lon_tie_points, lat_tie_points]
coordinates: [lat_tie_points, lon_tie_points]

observation_azimuth_tie_points:
name: observation_azimuth_tie_points
standard_name: sensor_azimuth_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/observation_azimuth
coordinates: [lon_tie_points, lat_tie_points]
coordinates: [lat_tie_points, lon_tie_points]

solar_zenith:
name: solar_zenith
standard_name: solar_zenith_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/solar_zenith
interpolate: True
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]

solar_azimuth:
name: solar_azimuth
standard_name: solar_azimuth_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/solar_azimuth
interpolate: True
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]

observation_zenith:
name: observation_zenith
standard_name: sensor_zenith_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/observation_zenith
interpolate: True
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]

observation_azimuth:
name: observation_azimuth
standard_name: sensor_azimuth_angle
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/observation_azimuth
interpolate: True
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]

# --- Orthorectification data ---
delta_lat_N_dem:
name: delta_lat_N_dem
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/delta_lat_N_dem
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
standard_name: parallax_delta_latitude

delta_lon_N_dem:
name: delta_lon_N_dem
file_type: nc_vii_l1b_rad
file_key: data/measurement_data/delta_lon_N_dem
coordinates: [lon_pixels, lat_pixels]
coordinates: [lat_pixels, lon_pixels]
standard_name: parallax_delta_longitude
6 changes: 1 addition & 5 deletions satpy/readers/vii_base_nc.py
Expand Up @@ -18,6 +18,7 @@

"""EUMETSAT EPS-SG Visible/Infrared Imager (VII) readers base class."""


import logging
from datetime import datetime

Expand Down Expand Up @@ -101,11 +102,6 @@ def get_dataset(self, dataset_id, dataset_info):
if orthorect_data_name is not None:
variable = self._perform_orthorectification(variable, orthorect_data_name)

# If the dataset contains a longitude, change it to the interval [0., 360.) as natively in the product
# since the unwrapping performed during the interpolation might have created values outside this range
if dataset_info.get('standard_name', None) == 'longitude':
variable %= 360.

# Manage the attributes of the dataset
variable.attrs.setdefault('units', None)

Expand Down
15 changes: 8 additions & 7 deletions satpy/readers/vii_l1b_nc.py
Expand Up @@ -18,9 +18,11 @@
"""EUMETSAT EPS-SG Visible/Infrared Imager (VII) Level 1B products reader.
The ``vii_l1b_nc`` reader reads and calibrates EPS-SG VII L1b image data in netCDF format. The format is explained
in the `EPS-SG VII Level 1B Product Format Specification`_.
in the `EPS-SG VII Level 1B Product Format Specification V4A`_.
.. _EPS-SG VII Level 1B Product Format Specification: https://www.eumetsat.int/media/44393
This version is applicable for the vii test data V2 to be released in Jan 2022.
.. _EPS-SG VII Level 1B Product Format Specification V4A: https://www.eumetsat.int/media/44393
"""

Expand Down Expand Up @@ -69,19 +71,18 @@ def _perform_calibration(self, variable, dataset_info):
if calibration_name == 'brightness_temperature':
# Extract the values of calibration coefficients for the current channel
chan_index = dataset_info['chan_thermal_index']
cw = self._channel_cw_thermal[chan_index] * 1e-3
cw = self._channel_cw_thermal[chan_index]
a = self._bt_conversion_a[chan_index]
b = self._bt_conversion_b[chan_index]
# Perform the calibration
calibrated_variable = self._calibrate_bt(variable, cw, a, b)
calibrated_variable.attrs = variable.attrs
elif calibration_name == 'reflectance':
scale = 1/(dataset_info['wavelength'][2] - dataset_info['wavelength'][0])
# Extract the values of calibration coefficients for the current channel
chan_index = dataset_info['chan_solar_index']
isi = scale * self._integrated_solar_irradiance[chan_index]
isi = self._integrated_solar_irradiance[chan_index]
# Perform the calibration
calibrated_variable = self._calibrate_refl(variable, self.angle_factor, isi)
calibrated_variable = self._calibrate_refl(variable, self.angle_factor.data, isi)
calibrated_variable.attrs = variable.attrs
elif calibration_name == 'radiance':
calibrated_variable = variable
Expand Down Expand Up @@ -141,5 +142,5 @@ def _calibrate_refl(radiance, angle_factor, isi):
numpy ndarray: array containing the calibrated reflectance values.
"""
refl_values = (np.pi / isi) * angle_factor * radiance
refl_values = (np.pi / isi) * angle_factor * radiance * 100.0
return refl_values

0 comments on commit 5ed7871

Please sign in to comment.