# # # Distribution Statement A. Approved for public release. Distribution unlimited.# # ## # # Author:# # # Naval Research Laboratory, Marine Meteorology Division# # ## # # This program is free software: you can redistribute it and/or modify it under# # # the terms of the NRLMMD License included with this program. This program is# # # distributed WITHOUT ANY WARRANTY; without even the implied warranty of# # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the included license# # # for more details. If you did not receive the license, for more information see:
Version 1.5.0 (2022-06-09)#
v1.5.0: 2022-06-09, consolidate/update test outputs to latest dependencies, geoips2->geoips, update GEOIPS_REPO_URL
v1.5.0post2: 2022-06-16, update to github.com/NRLMMD-GeoIPS
Installation and test#
Replace github.com/U-S-NRL-Marine-Meteorology-Division with github.com/NRLMMD-GeoIPS
git-workflow.rst
installation.rst
README.md
config_geoips
v1.5.0post1: 2022-06-11, support <ORG>/<REPO> specifications
Improvements#
setup.sh repository name specifications
“<repo_name>” - $GEOIPS_BASE_URL/GEOIPS/<repo_name>.git == $GEOIPS_REPO_URL/<repo_name>.git
“<repo_org>/<repo_name>” - $GEOIPS_BASE_URL/<repo_org>/<repo_name>.git
“/<repo_name>” - $GEOIPS_BASE_URL/<repo_name>.git
Remove .github/hooks/update.ry - unused
Test Repo Updates#
Test Sectors#
Add bdeck files
bwp012020.dat
bep112021.dat
bsh082021.dat
Additional direct test calls and outputs#
ATMS 165H reprojected netcdf output, bep112021
Test script: $GEOIPS/tests/scripts/atms.tc.165H.netcdf_geoips.sh
Output dir: $GEOIPS/tests/outputs/atms.tc.165H.netcdf_geoips
EWS-G Infrared reprojected clean imagery, ewsg.yaml
Test script: $GEOIPS/tests/scripts/ewsg.static.Infrared.imagery_clean.sh
Output dir: $GEOIPS/tests/outputs/ewsg.static.Infrared.imagery_clean
SAPHIR 183-3HNearest reprojected annotated imagery, bsh192021
Test script: $GEOIPS/tests/scripts/saphir.tc.183-3HNearest.imagery_annotated.sh
Output dir: $GEOIPS/tests/outputs/saphir.tc.183-3HNearest.imagery_annotated
AMSR2 OCEAN windspeed clean imagery output
Test script: $GEOIPS/tests/scripts/amsr2_winds.tc.windspeed.imagery_clean.sh
Output dir: $GEOIPS/tests/outputs/amsr2_winds.tc.windspeed.imagery_clean
ASCAT METOP-C Low resolution (25km) windbarb annotated imagery output
Test script: $GEOIPS/tests/scripts/ascat_low_knmi.tc.windbarbs.imagery_windbarbs.sh
Output dir: $GEOIPS/tests/outputs/ascat_low_knmi.tc.windbarbs.imagery_windbarbs
SSMI 37pct clean imagery output
Test script: $GEOIPS/tests/scripts/ssmi.tc.37pct.imagery_clean.sh
Output dir: $GEOIPS/tests/outputs/ssmi.tc.37pct.imagery_clean
TPW MIMIC fine, TPW-PWAT product annotated imagery output
Test script: $GEOIPS/tests/scripts/mimic_fine.tc.TPW-PWAT.imagery_annotated.sh
Output dir: $GEOIPS/tests/outputs/mimic_fine.tc.TPW-PWAT.imagery_annotated
Updated test scripts#
ahi.IR-BD.imagery_clean.sh -> ahi.WV.geotiff.sh
Update test script names to include sector type#
abi.Visible.imagery\_annotated.sh -> abi.static.Visible.imagery\_annotated
ahi.WV.geotiff.sh -> ahi.tc.WV.geotiff.sh
amsr2.89H-Physical.imagery\_annotated.sh -> amsr2.tc.89H-Physical.imagery\_annotated.sh
amsub\_mirs.tc.183-3H.imagery\_annotated -> amsub\_mirs.tc.183-3H.imagery\_annotated.sh
ascat\_uhr.wind-ambiguities.imagery\_windbarbs.sh -> ascat\_uhr.tc.wind-ambiguities.imagery\_windbarbs.sh
ascat\_knmi.windbarbs.imagery\_windbarbs\_clean.sh -> ascat\_knmi.tc.windbarbs.imagery\_windbarbs\_clean.sh
atms.165H.netcdf\_geoips.sh -> atms.tc.165H.netcdf\_geoips.sh
ewsg.Infrared.imagery\_clean.sh -> ewsg.static.Infrared.imagery\_clean.sh
gmi.89pct.imagery\_clean.sh -> gmi.tc.89pct.imagery\_clean.sh
imerg.Rain.imagery\_clean.sh -> imerg.tc.Rain.imagery\_clean.sh
oscat\_knmi.windbarbs.imagery\_windbarbs.sh -> oscat\_knmi.tc.windbarbs.imagery\_windbarbs.sh
hy2.windspeed.imagery\_annotated.sh -> hy2.tc.windspeed.imagery\_annotated.sh
mimic.TPW\_CIMSS.imagery\_annotated -> mimic\_coarse.static.TPW-CIMSS.imagery\_annotated.sh
sar.nrcs.imagery\_annotated.sh -> sar.tc.nrcs.imagery\_annotated.sh
smos.sectored.text\_winds -> smos.tc.sectored.text\_winds.sh
viirsday.Night-Vis-IR.imagery\_annotated.sh-> viirsday.tc.Night-Vis-IR.imagery\_annotated.sh
viirsmoon.Night-Vis-GeoIPS1.clean.sh -> viirsmoon.tc.Night-Vis-GeoIPS1.imagery\_clean.sh
Update test output directories to include sector type and output type#
abi\_Visible\_image -> abi.static.Visible.annotated
ahi\_IR-BD -> ahi.tc.WV.geotiff
amsr2\_89H-Physical -> amsr2.tc.89H-Physical.imagery\_annotated
amsub\_183-3H -> amsub\_mirs.tc.183-3H.imagery\_annotated
ascat\_uhr\_wind-ambiguities -> ascat\_uhr.tc.wind-ambiguities.imagery\_windbarbs
ascat\_knmi\_windbarbs -> ascat\_knmi.tc.windbarbs.imagery\_windbarbs\_clean
atms\_165H -> atms.tc.165H.netcdf\_geoips
ewsg\_Infrared -> ewsg.static.Infrared.imagery\_clean
gmi\_89pct -> gmi.tc.89pct.imagery\_clean
hy2\_windspeed -> hy2.tc.windspeed.imagery\_annotated
imerg\_Rain -> imerg.tc.Rain.imagery\_clean
mimic\_TPW\_CIMSS -> mimic\_coarse.static.TPW-CIMSS.imagery\_annotated
modis\_Infrared -> modis.Infrared.unprojected\_image
oscat\_knmi\_windbarbs -> oscat\_knmi.tc.windbarbs.imagery\_windbarbs
sar\_nrcs -> sar.tc.nrcs.imagery\_annotated
smap\_text\_winds -> smap.unsectored.text\_winds
smos\_sectored -> smos.tc.sectored.text\_winds
seviri\_WV-Upper -> seviri.WV-Upper.unprojected\_image
ssmis\_color89 -> ssmis.color89.unprojected\_image
viirsclearnight\_Night-Vis-IR-GeoIPS1 -> viirsclearnight.Night-Vis-IR-GeoIPS1.unprojected\_image
viirsday\_Night-Vis-IR -> viirsday.tc.Night-Vis-IR.imagery\_annotated
viirsmoon\_Night-Vis-GeoIPS1 -> viirsmoon.tc.Night-Vis-GeoIPS1.imagery\_clean
Added TC bdeck files#
bal052021.dat (SAPHIR test case, unused)
bal032020.dat (SAR test cases, unused)
bwp252021.dat (SAR test cases, unused)
bsh242020.dat (SEVIRI test case)
ABI config-based test script#
Update to standard <sensor>.<sector_type>.<product>.<output_type> directory format
Update YAML metadata to use sectors/tc_bdecks sector path
Dependency Version Update#
matplotlib 3.4.3->3.5.2
cartopy 0.20.0 -> 0.20.2
pyshp 2.1.3 -> 2.2.0
natural-earth-vector 5.0.0 -> 5.2.0
Impacted test outputs#
amsub_mirs.tc.183-3H.imagery_annotated
ascat_low_knmi.tc.windbarbs.imagery_windbarbs
hy2.tc.windspeed.imagery_annotated
mimic_coarse.static.TPW-CIMSS.imagery_annotated
mimic_fine.tc.TPW-PWAT.imagery_annotated
oscat_knmi.tc.windbarbs.imagery_windbarbs
saphir.tc.183-3HNearest.imagery_annotated
sar.tc.nrcs.imagery_annotated
AFTER TEST DATA UNCOMPRESS BUG FIX: amsr2.tc.89H-Physical.imagery_annotated
AFTER TEST DATA UNCOMPRESS BUG FIX: ascat_uhr.tc.wind-ambiguities.imagery_windbarbs
Refactor#
File modifications#
Update all instances of ‘geoips2’ with ‘geoips’
Update all instances of ‘GEOIPS2’ with ‘GEOIPS’
Update GEOIPS_REPO_URL to github.com/NRLMMD-GeoIPS
File renaming#
Rename all files and directories containing ‘geoips2’ with *geoips*
Setup standardization#
Replace ‘setup_geoips2.sh install_geoips2’ with ‘setup.sh install’
Replace all instances of ‘setup_geoips2.sh’ with ‘setup.sh’
Test sectors#
- Organize test sectors for easier identification of available sectors,
and easier expansion to additional sector types in the future.
static (currently large global and geostationary coverage sectors)
tc_bdecks (bdeck files only)
Update all test scripts and YAML configs for new test sector locations
Add tc_bdeck files
bep062021.dat - used with ABI daytime test dataset
bwp192021.dat - Large WPAC storm 2021, Chantu (not currently used with any test datasets)
Update bep112021.dat - used with ATMS test script
- File reprocessed April 2022 was of incorrect format for bdeck_parser - replace with last “realtime”
bdeck file.
Probably need to eventually create new parser for reprocessed deck files.
Major New Functionality#
Product types#
Add ‘alg_interp_cmap’ product type to geoips/dev/product.py
Add ‘interp’ product type to geoips/dev/product.py
Algorithm / interpolation order in procflows#
Check explicit list of product types when attempting to pull “alg” from product
[‘alg’, ‘alg_cmap’, ‘interp_alg’, ‘interp_alg_cmap’, ‘alg_interp_cmap’]
Check explicit list of product types when attempting to apply algorithm prior to interpolation
[‘alg_cmap’, ‘alg_interp_cmap’, ‘alg’]
- Check explicit lists of product types / algorithm types when attempting to apply the results of interpolation/
algorithm application to the final xarray object
[‘interp’]:
Use interp_xarray unchanged as final xarray object
[‘xarray_to_numpy’]:
Pass entire “interp_xarray” to algorithm,
set returned numpy array as “product_name” variable
[‘xarray_to_xarray’]:
Pass entire “interp_xarray” to algorithm,
set entire returned xarray object as “interp_xarray”
[‘single_channel’, ‘channel_combination’, ‘list_numpy_to_numpy’, ‘rgb’]
Pass list of numpy arrays to algorithm.
Set returned numpy array to “product_name” variable in xarray object.
Anything else
Raise ValueError - must explicitly implement new types to work within procflow.
Previously we defaulted to list_numpy_to_numpy
If we do want a default, it should probably be “xarray_to_xarray”, but for now we will leave it explicit.
Coverage checks#
- Add kwarg to existing coverage checks allowing passing an alternative variable name to the coverage check,
to be used in the event the primary variable name does not exist (useful when no “product_name” variable exists in the xarray object)
Allows passing explicitly variable name to use for coverage checks from “covg_args” in product YAML specs.
Improvements#
Pre-receive Hook#
Added “update” pre-receive hook to allow git commit message format hooks before push to GitHub
Requires only one commit message in the current push to pass
Must include valid Issue ID (GEOIPS/<issue_repo_name>#<issue_num>)
Must follow format specification:
one summary line
one blank line (if more than one line in commit message)
OPTIONAL: additional lines with detailed information
ssmi_binary#
Raise sensible exception when incorrect data file passed into ssmi_binary reader
TPW Products#
Update TPW product names to use ‘-’ rather than ‘_’, to follow standard practice
Documentation Updates#
GitHub Workflow#
Add rst documentation for full GitHub workflow
Creating Issue
Making changes to repositories
Pushing changes to GitHub
Creating a Pull Request
CHANGELOG_TEMPLATE.md#
Add note at beginning that CHANGELOG_TEMPLATE.md itself should not be modified.
Bug fixes#
ATMS Reader#
Add atms reader to setup.py
Update original_source_filenames to support multiple files in atms reader
SAPHIR Reader#
Replace h5_dataset.value construct with h5_dataset[…]