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

Add support for GK-2B/GOCI2 data at L1b/c #2796

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
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
148 changes: 148 additions & 0 deletions satpy/etc/composites/goci2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
sensor_name: visir/goci2


modifiers:

rayleigh_corrected:
modifier: !!python/name:satpy.modifiers.PSPRayleighReflectance
atmosphere: us-standard
aerosol_type: rayleigh_only
prerequisites:
- name: 'L660'
modifiers: [sunz_corrected]
optional_prerequisites:
- satellite_azimuth_angle
- satellite_zenith_angle
- solar_azimuth_angle
- solar_zenith_angle

rayleigh_corrected_marine_clean:
modifier: !!python/name:satpy.modifiers.PSPRayleighReflectance
atmosphere: us-standard
aerosol_type: marine_clean_aerosol
prerequisites:
- name: 'L660'
modifiers: [sunz_corrected]
optional_prerequisites:
- satellite_azimuth_angle
- satellite_zenith_angle
- solar_azimuth_angle
- solar_zenith_angle

rayleigh_corrected_marine_tropical:
modifier: !!python/name:satpy.modifiers.PSPRayleighReflectance
atmosphere: tropical
aerosol_type: marine_tropical_aerosol
prerequisites:
- name: 'L660'
modifiers: [sunz_corrected]
optional_prerequisites:
- satellite_azimuth_angle
- satellite_zenith_angle
- solar_azimuth_angle
- solar_zenith_angle

rayleigh_corrected_desert:
modifier: !!python/name:satpy.modifiers.PSPRayleighReflectance
atmosphere: tropical
aerosol_type: desert_aerosol
prerequisites:
- name: 'L660'
modifiers: [sunz_corrected]
optional_prerequisites:
- satellite_azimuth_angle
- satellite_zenith_angle
- solar_azimuth_angle
- solar_zenith_angle

rayleigh_corrected_land:
modifier: !!python/name:satpy.modifiers.PSPRayleighReflectance
atmosphere: us-standard
aerosol_type: continental_average_aerosol
prerequisites:
- name: 'L660'
modifiers: [sunz_corrected]
optional_prerequisites:
- satellite_azimuth_angle
- satellite_zenith_angle
- solar_azimuth_angle
- solar_zenith_angle


composites:
true_color:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected]
standard_name: true_color

true_color_land:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_land]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_land]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_land]
standard_name: true_color

true_color_desert:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_desert]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_desert]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_desert]
standard_name: true_color

true_color_marine_clean:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_marine_clean]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_marine_clean]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_marine_clean]
standard_name: true_color

true_color_marine_tropical:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_marine_tropical]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_marine_tropical]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected_marine_tropical]
standard_name: true_color

true_color_raw:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected]
standard_name: true_color

ocean_color:
compositor: !!python/name:satpy.composites.GenericCompositor
prerequisites:
- name: 'L660'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected]
- name: 'L555'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected]
- name: 'L443'
modifiers: [effective_solar_pathlength_corrected, rayleigh_corrected]
standard_name: ocean_color
204 changes: 204 additions & 0 deletions satpy/etc/readers/goci2_l1_nc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
reader:
name: goci2_l1_nc
short_name: GOCI-II L1 NetCDF4
long_name: GK-2B GOCI-II Level 1 products in netCDF4 format from NOSC
status: Beta
supports_fsspec: true
sensors: ['goci2']
reader: !!python/name:satpy.readers.yaml_reader.GEOSegmentYAMLReader
# file pattern keys to sort files by with 'satpy.utils.group_files'
group_keys: ['start_time', 'platform_shortname', "slot"]

file_types:
goci2_l1:
file_reader: !!python/name:satpy.readers.goci2_l1_nc.GOCI2L1NCFileHandler
file_patterns:
- '{platform:3s}_{sensor:5s}_{processing_level:3s}_{acquisition_date:%Y%m%d}_{acquisition_time:%H%M%S}_{coverage:2s}_S{slot:3d}_G{segment:3d}.nc'
- '{platform:3s}_{sensor:5s}_{processing_level:3s}_{acquisition_date:%Y%m%d}_{acquisition_time:%H%M%S}_{coverage:2s}_S{slot:3d}.nc'


datasets:
# --- Navigation Data ---
latitude:
name: latitude
file_type: goci2_l1
file_key: latitude
standard_name: latitude
units: degrees_north

longitude:
name: longitude
file_type: goci2_l1
file_key: longitude
standard_name: longitude
units: degrees_east

# --- Radiance Data ---
L380:
name: L380
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_380
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L412:
name: L412
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_412
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L443:
name: L443
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_443
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L490:
name: L490
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_490
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L510:
name: L510
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_510
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L555:
name: L555
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_555
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L620:
name: L620
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_620
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L660:
name: L660
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_660
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L680:
name: L680
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_680
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L709:
name: L709
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_709
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L745:
name: L745
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_745
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
L865:
name: L865
wavelength: [0.450, 0.470, 0.490]
resolution: 250
file_type: goci2_l1
file_key: L_TOA_865
coordinates: [longitude, latitude]
calibration:
radiance:
standard_name: toa_outgoing_radiance_per_unit_wavelength
units: W m-2 um-1 sr-1
reflectance:
standard_name: toa_bidirectional_reflectance
units: "%"
Loading
Loading