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 reader for AMSR2 Level 2 data produced by GAASP software (amsr2_l2_gaasp) #1421

Merged
merged 23 commits into from Dec 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
0495f8e
Add skeleton for the amsr2_l2_gaasp reader
djhoese Oct 29, 2020
c67f2f6
Add initial proof of concept AMSR2 L2 GAASP reader
djhoese Oct 31, 2020
adc7acd
Fix import style issues in amsr2 l2 gaasp reader
djhoese Nov 1, 2020
6cbb4d6
As initial test for amsr2_l2_gaasp reader
djhoese Nov 2, 2020
2d07cb7
Fix amsr2 l2 gaasp test creation
djhoese Nov 2, 2020
5546a71
Add loading test to amsr2_l2_gaasp
djhoese Nov 2, 2020
cf9ecd3
Add coordinate tests to amsr2_l2_gaasp reader
djhoese Nov 2, 2020
2df0094
Refactor amsr2_l2_gaasp reader for cleaner code
djhoese Nov 2, 2020
e631c9c
Add basic enhancements for AMSR2 GAASP products
djhoese Nov 4, 2020
74073f7
Add better support for timedelta64 data in amsr2 gaasp reader
djhoese Nov 4, 2020
8488ac6
Add PRECIP file type to amsr2 gaasp reader
djhoese Nov 4, 2020
834c9da
Fix inconsistent use of rez/res in amsr2 l2 gaasp reader
djhoese Nov 13, 2020
6426767
Add check for 32-bit float consistency in amsr2_l2_gaasp reader
djhoese Nov 13, 2020
2563761
Refactor amsr2_l2_gaasp 2d array check
djhoese Nov 13, 2020
317ebb2
Fix 2d data array check in amsr2_l2_gaasp reader
djhoese Nov 13, 2020
63f6d89
Fix missed Rez to Res change
djhoese Nov 14, 2020
208baef
Fix missed Rez to Res change in YAML
djhoese Nov 14, 2020
3579087
Update gaasp start/end time to default to filename info first
djhoese Nov 16, 2020
4d14825
Add more gaasp tests for better coverage
djhoese Nov 16, 2020
cd01c59
Fix stickler issue
djhoese Nov 16, 2020
b459f9b
Merge branch 'master' into feature-amsr-l2
djhoese Dec 3, 2020
3995846
Convert amsr2_l2_gaasp open_dataset to cached_property
djhoese Dec 3, 2020
8ea80f3
Fix unnecessary __init__ method in amsr2_l2_gaasp reader
djhoese Dec 3, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 4 additions & 1 deletion doc/source/index.rst
Expand Up @@ -260,11 +260,14 @@ the base Satpy installation.
- `smos_l2_wind`
- Beta
* - AMSR2 level 2 wind data in HDF5 format
- `amsr_l2`
- `amsr2_l2`
- Beta
* - GPM IMERG level 3 precipitation data in HDF5 format
- `gpm_imerg`
- Nominal
* - AMSR2 level 2 GAASP in NetCDF4 format
- `amsr2_l2_gaasp`
- Beta

Indices and tables
==================
Expand Down
88 changes: 88 additions & 0 deletions satpy/etc/enhancements/amsr2.yaml
@@ -0,0 +1,88 @@
enhancements:
# GAASP enhancements based on PNGs at:
# https://www.ospo.noaa.gov/Products/atmosphere/gpds/maps.html?GPRR#gpdsMaps
gaasp_clw:
name: CLW
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 0.5}
gaasp_sst:
name: SST
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: -5.0, max_stretch: 35}
gaasp_tpw:
name: TPW
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 75.0}
gaasp_wspd:
name: WSPD
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
# Snow_Cover unscaled (category product)
gaasp_snow_depth:
name: Snow_Depth
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 150.0}
gaasp_swe:
name: SWE
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 16.0}
gaasp_soil_moisture:
name: Soil_Moisture
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
gaasp_ice_concentration_nh:
name: NASA_Team_2_Ice_Concentration_NH
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
gaasp_ice_concentration_sh:
name: NASA_Team_2_Ice_Concentration_SH
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
# gaasp_latency_nh:
# name: Latency_NH
# sensor: amsr2
# operations:
# - name: linear_stretch
# method: !!python/name:satpy.enhancements.stretch
# kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
# gaasp_latency_sh:
# name: Latency_SH
# sensor: amsr2
# operations:
# - name: linear_stretch
# method: !!python/name:satpy.enhancements.stretch
# kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 100.0}
mraspaud marked this conversation as resolved.
Show resolved Hide resolved
gaasp_rain_rate:
name: Rain_Rate
sensor: amsr2
operations:
- name: linear_stretch
method: !!python/name:satpy.enhancements.stretch
kwargs: {stretch: 'crude', min_stretch: 0.0, max_stretch: 65.}
7 changes: 6 additions & 1 deletion satpy/etc/readers/amsr2_l2.yaml
@@ -1,6 +1,11 @@
reader:
name: amsr2_l2
description: GCOM-W1 AMSR2 instrument HDF5 reader
short_name: AMSR2 Level 2
long_name: GCOM-W1 AMSR2 Level 2 (HDF5)
description: >
HDF5 reader for GCOM-W1 AMSR2 Level 2 files from JAXA. See
https://suzaku.eorc.jaxa.jp/GCOM_W/data/data_w_product-2.html for more
information.
reader: !!python/name:satpy.readers.yaml_reader.FileYAMLReader
sensors: [amsr2]

Expand Down
49 changes: 49 additions & 0 deletions satpy/etc/readers/amsr2_l2_gaasp.yaml
@@ -0,0 +1,49 @@
reader:
name: amsr2_l2_gaasp
short_name: AMSR2 Level 2 GAASP
long_name: GCOM-W1 AMSR2 Level 2 GAASP (NetCDF4)
description: >
NetCDF4 reader for GCOM-W1 AMSR2 Level 2 files processed using the GAASP
software distributed by NOAA. See
https://www.star.nesdis.noaa.gov/jpss/gcom.php for more information.
reader: !!python/name:satpy.readers.yaml_reader.FileYAMLReader
sensors: [amsr2]

file_types:
amsr2_mbt:
# Microwave Brightness Temperatures
# Ex. AMSR2-MBT_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPFileHandler
file_patterns: ['AMSR2-MBT_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc']
amsr2_precip:
# Ex. AMSR2-OCEAN_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPFileHandler
file_patterns: ['AMSR2-PRECIP_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc']
amsr2_ocean:
# Ex. AMSR2-OCEAN_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPFileHandler
file_patterns: ['AMSR2-OCEAN_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc']
amsr2_seaice_nh:
var_suffix: "_NH"
grid_epsg: 6931
# Ex. AMSR2-SEAICE-NH_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPGriddedFileHandler
file_patterns:
- 'AMSR2-SEAICE-NH_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc'
amsr2_seaice_sh:
var_suffix: "_SH"
grid_epsg: 6932
# Ex. AMSR2-SEAICE-SH_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPGriddedFileHandler
file_patterns:
- 'AMSR2-SEAICE-SH_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc'
amsr2_snow:
# Ex. AMSR2-SNOW_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPLowResFileHandler
file_patterns: ['AMSR2-SNOW_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc']
amsr2_soil:
# Ex. AMSR2-SOIL_v2r2_GW1_s202008120558310_e202008120607010_c202008120637340.nc
file_reader: !!python/name:satpy.readers.amsr2_l2_gaasp.GAASPLowResFileHandler
file_patterns: ['AMSR2-SOIL_v{software_version:d}r{revision_number:d}_{platform_shortname:3s}_s{start_time:%Y%m%d%H%M%S%f}_e{end_time:%Y%m%d%H%M%S%f}_c{creation_time:%Y%m%d%H%M%S%f}.nc']

datasets: {}