# # # 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.11.0 (2023-08-02)#
New Functionality: New reader that reads in ASCAT wind netCDF files from NOAA (CLASS/PDA)
New Functionality: Add new TCWeb ASCAT sector templates
Bug Fix: Add “algorithm” to list of families that do not require interpolation
Bug Fix: Handle FileExistsError when creating geostationary geolocation directory
Bug Fix: Update mtif_type under wind-ambiguities product default YAML
Add ‘scalar_to_scalar’ algorithm type
Improve error outputs for test_interfaces
Documentation updates
Update documentation build to allow building plugin repositories
Allow passing relative paths for documentation builds
Remove buildfrom_docs and sphinx directories prior to doc build.
Update build_docs.sh to delete buildfrom_docs and sphinx directories
Deployment script to deploy the sphinx html docs to GitHub pages for each repository.
Require passing explicit package name to build_docs.sh
Test output updates
Update test outputs for cartopy 0.22 update
Replace incorrect ssmi test output
Update test_all.sh and full_test.sh to set repopath and pkgname variables
Add test scripts and outputs for ASCAT NOAA 25km and 50km windbarb products
Installation updates
Remove geos requirement
Update cartopy to >=0.22
Update gcc/gxx requirement to <10 (for seviri wavelet build)
New Functionality#
New ASCAT reader#
New reader for ingesting ASCAT_L2 files provided by NOAA
new file: geoips/plugins/modules/readers/scat_noaa_winds_netcdf.py
modified: pyproject.toml
ASCAT dynamic spec templates#
Add new dynamic sector TCweb template for lower-res ASCAT products
tc_web_ascat_low_barbs_template intended for ASCAT 25km winds
new file: geoips/plugins/yaml/sectors/dynamic/tc_web_ascat_50km_barbs_template.yaml
new file: geoips/plugins/yaml/sectors/dynamic/tc_web_ascat_low_barbs_template.yaml
Bug Fixes#
Update error messages in “bad” product_defaults tests#
From NRLMMD-GEOIPS/geoips#255: 2023-08-09, Fix error matching regex
jsonschema changed their error messages to add additional quotes. This just modifies our test regex to ignore more of the error.
modified: tests/test_plugin_schema/bad/product_defaults/algorithm_colormapper.yaml
modified: tests/test_plugin_schema/bad/product_defaults/algorithm_interpolator_colormapper.yaml
Improve error handling when creating geolocation directory#
Place makedirs in try/except statement when attempting to create geostationary geolocation directory
Two concurrent procflows may both attempt to create this directory, which raises FileExistsError
- ::
modified: geoips/plugins/modules/readers/utils/geostationary_geolocation.py
Update mtif_type under wind-ambiguities product default YAML#
Update mtif_type from windspeed to image
- ::
modified: geoips/plugins/yaml/product_defaults/sfc_winds/wind-ambiguities.yaml
Expand list of product families that do not require interpolation#
Add “algorithm” to list of families that do not require interpolation
modified: geoips/plugins/modules/procflows/single_source.py
Enhancements#
Add ‘scalar_to_scalar’ algorithm type#
Currently unused.
modified: geoips/interfaces/algorithms.py
Documentation Updates#
Require passing explicit package name to build_docs.sh#
For packages that may not have the same name as their repository name (ie, template_basic_plugin repo, and my_package package name), we must the explicit package name to build_docs.sh.
Updated some terminology in deploy_pages.sh to clarify that it operates solely on the repository path - removed references to package. Functionality unchanged for deploy_pages.sh
build_docs.sh <repo_path> <package_name> <optional_html_only>
deploy_pages.sh <repo_path>
Update build_docs.sh call in test_all.sh
tests/test_all.sh
docs/build_docs.sh
docs/deploy_pages.sh
Add deployment script to deploy the sphinx html docs to GitHub pages#
From GEOIPS#293 2023-08-01, deploy sphinx html to GitHub pages
Deployment script to deploy the sphinx html docs to GitHub pages for each repository.
added: docs/deploy_pages.sh
Update build_docs.sh to delete buildfrom_docs and sphinx directories#
If build/buildfrom_docs and build/sphinx directories exist, delete them before attempting to build documentation.
modified: docs/build_docs.sh
Allow passing relative paths for documentation builds#
Use realpath basename to determine full path from passed path, whether fully specified or relative.
modified: docs/build_docs.sh
modified: docs/deploy_pages.sh
Update documentation build to allow building plugin repositories#
From GEOIPS#217 2023-08-01, Use geoips documentation build scripts in additional plugin
Use the geoips repo documentation build scripts and style information to build documentation in the plugin repositories
Copy docs directory to “buildfrom_docs” prior to copying over auto-generated and template files.
Ignore only *_docs rather than individual files, since all auto-generated files will be placed in buildfrom_docs
modified: .gitignore
modified: docs/build_docs.sh
deleted: docs/source/_static/nrlmryLogo.jpg
deleted: docs/source/_static/nrlmryLogoTrans.png
modified: docs/source/_templates/conf_PKG.py
modified: docs/source/_templates/index_PKG.html
modified: geoips/__init__.py
deleted: geoips/__version__.py
Testing Updates#
Update test_all.sh and full_test.sh to set repopath and pkgname variables#
Update standard test_all.sh formatting to set repopath and pkgname by default. These get passed to test_all_pre.sh, build_docs.sh, and check_code.sh.
modified: tests/test_all.sh
modified: tests/integration_tests/full_test.sh
Improve error outputs for test_interfaces#
Add clarifying statements to final error message identifying where to look in prior error messages for details.
modified: geoips/commandline/test_interfaces.py
Replace incorrect ssmi test output#
Added start/end time and min/max lat to ssmi_binary reader for reference.
Updated SSMI test outputs from 0809 data time in filename to 0900. Since data ran from 0809 to 0953, 0900 time is more valid than 0809. Not sure what changed to cause this update, however, but it seems right now.
modified: geoips/plugins/modules/readers/ssmi_binary.py
renamed: tests/outputs/ssmi.tc.37pct.imagery_clean/20200519_080900_IO012020_ssmi_F15_37pct_110kts_50p65_1p0-clean.png -> tests/outputs/ssmi.tc.37pct.imagery_clean/20200519_090000_IO012020_ssmi_F15_37pct_110kts_50p65_1p0-clean.png
renamed: tests/outputs/ssmi.tc.37pct.imagery_clean/20200519_080900_IO012020_ssmi_F15_37pct_110kts_50p65_1p0-clean.png.yaml -> tests/outputs/ssmi.tc.37pct.imagery_clean/20200519_090000_IO012020_ssmi_F15_37pct_110kts_50p65_1p0-clean.png.yaml
Update test outputs for cartopy 0.22 update#
Note cartopy 0.21 is incompatible with geos 3.12.0 - caused segmentation faults in some matplotlib.savefig calls.
cartopy 0.22 removed the reliance on the geos library, so updating geoips requirements to require cartopy 0.22.
This update caused very slight non-visible changes to the annotated test image output. Updating all test outputs accordingly.
modified: tests/outputs/abi.tc.IR-BD.imagery_annotated/20200918_195020_AL202020_abi_goes-16_IR-BD_110kts_100p00_1p0.png
modified: tests/outputs/abi.tc.Infrared.imagery_annotated/20200918_195020_AL202020_abi_goes-16_Infrared_110kts_100p00_1p0.png
modified: tests/outputs/abi.tc.Visible.imagery_annotated/20200918_195020_AL202020_abi_goes-16_Visible_110kts_100p00_1p0.png
modified: tests/outputs/amsr2.global_overlay.37pct.imagery_annotated_over_Visible/20200518.062048.gcom-w1.amsr2.37pct.global.10p06.star.20p0.png
modified: tests/outputs/amsr2.global_overlay.89pct.imagery_annotated_over_Visible/20200518.062048.gcom-w1.amsr2.89pct.global.13p55.star.20p0.png
modified: tests/outputs/abi.static.Infrared.imagery_annotated/20200918.195020.goes-16.abi.Infrared.goes16.45p56.noaa.10p0.png
modified: tests/outputs/abi.static.Visible.imagery_annotated/20200918.195020.goes-16.abi.Visible.goes16.41p12.noaa.10p0.png
modified: tests/outputs/amsr2.global_overlay.37pct.imagery_annotated_over_Infrared-Gray/20200518.062048.gcom-w1.amsr2.37pct.global.10p06.star.20p0.png
modified: tests/outputs/amsr2.global_overlay.37pct.imagery_annotated_over_Visible/20200518.062048.gcom-w1.amsr2.37pct.global.10p06.star.20p0.png
modified: tests/outputs/amsr2.global_overlay.89pct.imagery_annotated_over_Infrared-Gray/20200518.062048.gcom-w1.amsr2.89pct.global.13p55.star.20p0.png
modified: tests/outputs/amsr2.global_overlay.89pct.imagery_annotated_over_Visible/20200518.062048.gcom-w1.amsr2.89pct.global.13p55.star.20p0.png
modified: tests/outputs/amsr2.tc.89H-Physical.imagery_annotated/20200518_073601_IO012020_amsr2_gcom-w1_89H-Physical_140kts_100p00_res1p0-cr300.png
modified: tests/outputs/amsr2.tc_overlay.37pct.imagery_annotated_over_Infrared-Gray/20200518_073601_IO012020_amsr2_gcom-w1_37pct_140kts_95p89_res1p0-cr100-bgInfrared-Gray.png
modified: tests/outputs/amsr2.tc_overlay.37pct.imagery_annotated_over_Visible/20200518_073601_IO012020_amsr2_gcom-w1_37pct_140kts_95p89_res1p0-cr100-bgVisible.png
modified: tests/outputs/amsr2.tc_overlay.89pct.imagery_annotated_over_Infrared-Gray/20200518_073601_IO012020_amsr2_gcom-w1_89pct_140kts_98p32_res1p0-cr100-bgInfrared-Gray.png
modified: tests/outputs/amsr2.tc_overlay.89pct.imagery_annotated_over_Visible/20200518_073601_IO012020_amsr2_gcom-w1_89pct_140kts_98p32_res1p0-cr100-bgVisible.png
modified: tests/outputs/amsub_mirs.tc.183-3H.imagery_annotated/20210419_235400_WP022021_amsu-b_metop-a_183-3H_115kts_100p00_1p0.png
modified: tests/outputs/ascat_low_knmi.tc.windbarbs.imagery_windbarbs/20210421_014156_WP022021_ascat_metop-c_windbarbs_120kts_35p17_1p0.png
modified: tests/outputs/ascat_uhr.tc.wind-ambiguities.imagery_windbarbs/20210421_014200_WP022021_ascatuhr_metop-c_wind-ambiguities_120kts_100p00_0p1.png
modified: tests/outputs/atms.tc.165H.netcdf_geoips/20210809.083826.J01.165H_latitude_longitude.tc2021ep11kevin.nc
modified: tests/outputs/hy2.tc.windspeed.imagery_annotated/20211202_084039_WP272021_hscat_hy-2b_windspeed_95kts_97p06_1p0.png
modified: tests/outputs/hy2.tc.windspeed.imagery_annotated/20211202_084039_WP272021_hscat_hy-2b_windspeed_95kts_97p06_1p0.png.yaml
modified: tests/outputs/mimic_coarse.static.TPW-CIMSS.imagery_annotated/20210723.000000.tpw.mimic.TPW-CIMSS.global.83p60.cimss.20p0.png
modified: tests/outputs/mimic_fine.tc.TPW-PWAT.imagery_annotated/20210419_230000_WP022021_mimic_tpw_TPW-PWAT_115kts_100p00_1p0.png
modified: tests/outputs/oscat_knmi.tc.windbarbs.imagery_windbarbs/20210209_025351_SH192021_oscat_scatsat-1_windbarbs_135kts_75p10_1p0.png
modified: tests/outputs/saphir.tc.183-3HNearest.imagery_annotated/20210209_003103_SH192021_saphir_meghatropiques_183-3HNearest_135kts_88p76_1p0.png
modified: tests/outputs/sar.tc.nrcs.imagery_annotated/20181025_203206_WP312018_sar-spd_sentinel-1_nrcs_130kts_58p51_res1p0-cr300.png
modified: tests/outputs/viirsday.tc.Night-Vis-IR.imagery_annotated/20210209_074210_SH192021_viirs_noaa-20_Night-Vis-IR_130kts_100p00_1p0.png
Add test scripts for ASCAT NOAA 25km and 50km windbarb products#
Formal test scripts for scat_noaa_winds_netcdf reader
Tests for annotated windbarbs products using 25km and 50km input files
Add tests to full_test.sh script
new file: tests/outputs/ascat_noaa_25km.tc.windbarbs.imagery_windbarbs/20230524_235304_WP022023_ascat_metop-c_windbarbs_135kts_39p90_0p7.png
new file: tests/outputs/ascat_noaa_25km.tc.windbarbs.imagery_windbarbs/20230524_235304_WP022023_ascat_metop-c_windbarbs_135kts_39p90_0p7.png.yaml
new file: tests/outputs/ascat_noaa_50km.tc.windbarbs.imagery_windbarbs/20230524_235200_WP022023_ascat_metop-c_windbarbs_135kts_50p08_1p1.png
new file: tests/outputs/ascat_noaa_50km.tc.windbarbs.imagery_windbarbs/20230524_235200_WP022023_ascat_metop-c_windbarbs_135kts_50p08_1p1.png.yaml
new file: tests/scripts/ascat_noaa_25km.tc.windbarbs.imagery_windbarbs.sh
new file: tests/scripts/ascat_noaa_50km.tc.windbarbs.imagery_windbarbs.sh
modified: tests/integration_tests/full_test.sh
Installation Updates#
Update install requirements#
Update gcc/gxx to <10 (for seviri wavelet build)
Remove geos requirement (not required for cartopy >= 0.22)
Update cartopy to >= 0.22
Add ipython to geoips[debug] requirements
setup.sh
pyproject.toml
docs/source/starter/installation.rst