Skip to content
Draft
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
93 changes: 72 additions & 21 deletions satpy/etc/readers/multiple_sensors_isccpng_l1g_nc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,74 +10,102 @@ reader:
file_types:
isccp_ng_l1g_nc_refl_0047um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_0047um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_0047um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_0047um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_refl_00_51um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_00_51um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_00_51um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_00_51um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_refl_01_38um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_01_38um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_01_38um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_01_38um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_refl_02_20um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_02_20um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_02_20um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_02_20um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_refl_01_60um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_01_60um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_01_60um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_01_60um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_03_80um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_03_80um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_03_80um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_03_80um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_08_60um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_08_60um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_08_60um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_08_60um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_09_70um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_09_70um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_09_70um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_09_70um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_11_00um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_11_00um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_11_00um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_11_00um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_10_40um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_10_40um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_10_40um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_10_40um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_12_00um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_12_00um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_12_00um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_12_00um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_13_30um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_13_30um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_13_30um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_13_30um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_refl_00_65um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_00_65um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_00_65um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_00_65um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_refl_00_86um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_00_86um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__refl_00_86um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__refl_00_86um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_06_20um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_06_20um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_06_20um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_06_20um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_06_70um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_06_70um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_06_70um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_06_70um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_temp_07_30um:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_07_30um__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__temp_07_30um__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__temp_07_30um__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_solar_zenith:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__solar_zenith_angle__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__solar_zenith_angle__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__solar_zenith_angle__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_sensor_zenith:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['EUM_L1g_v{version}_res_0_05deg__sensor_zenith_angle__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_satellite_zenith:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__satellite_zenith_angle__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_solar_azimuth:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__solar_azimuth_angle__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__solar_azimuth_angle__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__solar_azimuth_angle__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_sensor_azimuth:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['EUM_L1g_v{version}_res_0_05deg__sensor_azimuth_angle__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_satellite_azimuth:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__satellite_azimuth_angle__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_time:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__pixel_time__{start_time:%Y%m%dT%H%M}.nc']
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__pixel_time__{start_time:%Y%m%dT%H%M}.nc',
'EUM_L1g_v{version}_res_0_05deg__pixel_time__{start_time:%Y%m%dT%H%M}.nc']
isccp_ng_l1g_nc_wmo_id:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['ISCCP-NG_L1g_demo_v{version}_res_0_05deg__wmo_id__{start_time:%Y%m%dT%H%M}.nc']

isccp_ng_l1g_nc_sensor_flag:
file_reader: !!python/name:satpy.readers.multiple_sensors_isccpng_l1g_nc.IsccpngL1gFileHandler
file_patterns: ['EUM_L1g_v{version}_res_0_05deg__sensor_flag__{start_time:%Y%m%dT%H%M}.nc']

datasets:
refl_0047um:
Expand Down Expand Up @@ -291,6 +319,14 @@ datasets:
units: degrees
nc_key: 'solar_zenith_angle'

sensor_zenith_angle:
name: sensor_zenith_angle
standard_name: sensor_zenith_angle
resolution: 3000.403165817
file_type: isccp_ng_l1g_nc_sensor_zenith
units: degrees
nc_key: 'sensor_zenith_angle'

satellite_zenith_angle:
name: satellite_zenith_angle
standard_name: satellite_zenith_angle
Expand All @@ -307,6 +343,14 @@ datasets:
units: degrees
nc_key: 'solar_azimuth_angle'

sensor_azimuth_angle:
name: sensor_azimuth_angle
standard_name: sensor_azimuth_angle
resolution: 3000.403165817
file_type: isccp_ng_l1g_nc_sensor_azimuth
units: degrees
nc_key: 'sensor_azimuth_angle'

satellite_azimuth_angle:
name: satellite_azimuth_angle
standard_name: satellite_azimuth_angle
Expand Down Expand Up @@ -353,3 +397,10 @@ datasets:
file_type: isccp_ng_l1g_nc_wmo_id
coordinates: [lon, lat]
nc_key: 'wmo_id'

sensor_flag:
name: sensor_flag
resolution: 3000.403165817
file_type: isccp_ng_l1g_nc_sensor_flag
coordinates: [lon, lat]
nc_key: 'sensor_flag'
18 changes: 14 additions & 4 deletions satpy/readers/multiple_sensors_isccpng_l1g_nc.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,30 @@ def get_area_def(self, dsid):
def modify_dims_and_coords(self, data):
"""Remove coords and rename dims to x and y."""
if len(data.dims) > 2:
data = data.drop_vars("latitude")
data = data.drop_vars("longitude")
data = data.drop_vars("start_time")
data = data.drop_vars("end_time")
for var in ["latitude", "longitude", "start_time", "end_time", "time"]:
try:
data = data.drop_vars(var)
except ValueError:
pass
data = data.rename({"longitude": "x", "latitude": "y"})
return data

def set_time_attrs(self, data):
"""Set time from attributes."""
if "start_time" in data.coords:
# ISCCP-NG L1g demo
data.attrs["start_time"] = data["start_time"].values[0]
data.attrs["end_time"] = data["end_time"].values[0]
self._end_time = data.attrs["end_time"]
self._start_time = data.attrs["start_time"]
if data.name == "pixel_time":
# EUMETSAT L1g
if not np.issubdtype(data.dtype, np.floating):
logger.debug("Finding max/min time")
data.attrs["start_time"] = np.nanmin(data.values)
data.attrs["end_time"] = np.nanmax(data.values)
self._end_time = data.attrs["end_time"]
self._start_time = data.attrs["start_time"]

def get_dataset(self, key, yaml_info):
"""Get dataset."""
Expand Down
Loading