Version 1.14.2 (2025-04-30)#

  • Bug fix: Bug fixes for 2 dimensional windbarbs

  • Bug fix: Update ews-g reader platform name attribute

  • Bug fix: Fix cogeotiff colormap bug

  • Bug fix: Bug fix atms reader

  • Bug fix: Replace old database interface import

  • Bug fix: Handle cogeotiff error when producing output for a non-eqc projected sector

  • Bug fix: Bug fixes for cli

  • Bug fix: Bug fixes for abi dmw config based test script

  • Documentation: Update upcoming and tagged versions

  • Documentation: Add algorithm interface documentation

  • Enhancement: Add support for amsr2 rss products

  • Enhancement: Override product database schema/tables when searching for composite inputs

  • Enhancement: Add support for abi derived motion winds (dmw) products

  • Enhancement: Add resampling capability to viirs_sdr_hdf5 reader

  • Enchancement: Reader functionality and product fixes

  • Enhancements: Add databases interface

Bug fix#

Bug fixes for 2 dimensional windbarbs#

Updated windbarb algorithms to handle 2d windbarbs.

modified: geoips/plugins/modules/algorithms/pressure_winds/windbarbs_dmw.py
modified: geoips/plugins/modules/output_formatters/imagery_windbarbs.py

Bug fix#

Update ews-g reader platform name attribute#

Add support for handling legacy GOES-15 ews-g file, and update mapping of platform_name: GOES-13 => EWS-G1, GOES-15 => EWS-G2

Add new legacy_platform_name attribute, which holds the satellite name used in the source file

modified: geoips/plugins/modules/readers/ewsg_netcdf.py

Bug fix#

Fix cogeotiff colormap bug#

PhotometricInterpretation error https://gis.stackexchange.com/questions/352813/gdal-creating-color-ramp-gives-error-1-tiffsetfieldimages-out-tif-cannot-mod Moved the mem.write cogeotiff.py#L153 line after the mem.write_colormap line below it.

Also added the cogeotiff and cogeotiff_rgba tests scripts to both test_all.sh and full_test.sh

modified: geoips/plugins/modules/output_formatters/cogeotiff.py
modified: tests/integration_tests/full_test.sh
modified: tests/test_all.sh

Bug fix#

Bug fix atms reader#

Mask data with bad lat/lons. This will not only break downstream interpolation but also results in bad start datetimes in the metadata

Also update how metadata_only impacts the reader behavior. Previously reader would read in all data if metadata_only was True, and also did not properly set the xarray attributes if metadata_only was False.

modified: geoips/plugins/modules/readers/atms_hdf5.py

Bug fix#

Replace old database interface import#

Update any remaining database interface imports that still referenced geoips_db

modified: geoips/utils/composite.pygeoips/utils/composite.py

Bug fix#

Handle cogeotiff error when producing output for a non-eqc projected sector#

Replace TypeError and ValueError with custom GeoIPS errors in cogeotiff output formatters. Replace TypeError with OutputFormatterInvalidProjectionError, which is raised when the sector projection is not eqc. Replace ValueError with OutputFormatterDatelineError, which is raised when a sector crosses the dateline.

Handle OutputFormatterInvalidProjectionError and OutputFormatterDatelineError raised by output formatters. Not handling these errors can cause issues with config_based processing, where multiple sectors may be passed to the procflow and they might not all be the same projection or cross the dateline. For this type of scenario, rather than raising an error and stopping all processing, log a warning of the issue.

modified: geoips/errors.py
modified: geoips/plugins/modules/output_formatters/cogeotiff.py
modified: geoips/plugins/modules/output_formatters/cogeotiff_rgba.py
modified: geoips/plugins/modules/procflows/single_source.py

Bug fix#

Bug fixes for cli#

Ensure we use str(docstring) when constructing package info for tabulate, since tabulate will fail if any field is None. Perhaps we want to get people to fix the missing docstring, but I expect at this point in the code we should not fail catastrophically if a None has made it through.

modified: geoips/commandline/geoips_list.py

Bug fix#

Bug fixes for abi dmw config based test script#

Ensure file inputs use $GEOIPS_TESTDATA_DIR.

modified: tests/scripts/abi.config_based_dmw_overlay.sh

Documentation#

Update upcoming and tagged versions#

From GEOIPS#715: 2024-11-16, 1.14.2 updates

  • Tagged version: 1.14.2

  • Upcoming version: 1.14.4

modified: .github/versions/tagged_version
modified: .github/versions/upcoming_version

Documentation#

Add algorithm interface documentation#

Create documentation for the algorithm interface.

added: docs/source/new-docs/concepts/functionality/interfaces/module_based/algorithm.rst
added: docs/source/releases/latest/508-document-algorithm-interface.yaml

Enhancement#

Add support for amsr2 rss products#

Add new product yaml for AMSR2 RSS source inputs. This YAML is more or less a carbon copy of the amsr2_winds product YAML, but with the sensor name set as amsr2rss

Also add new test script and comparison outputs for AMSR2 RSS. Add test script call to both test_all.sh and integration_tests/full_test.sh

added: geoips/plugins/yaml/products/amsr2_rss.yaml
added:
tests/outputs/amsr2_rss.tc.windspeed.imagery_clean/20200518_073600_IO012020_amsr2rss_gcom-w1_windspeed_140kts_71p87_1p0-clean.png
added:
tests/outputs/amsr2_rss.tc.windspeed.imagery_clean/20200518_073600_IO012020_amsr2rss_gcom-w1_windspeed_140kts_71p87_1p0-clean.png.yaml
added: tests/scripts/amsr2_rss.tc.windspeed.imagery_clean.sh
modified: tests/integration_tests/full_test.sh
modified: tests/test_all.sh

Enhancement#

Override product database schema/tables when searching for composite inputs#

Increase flexibility when querying the product database for finding inputs to create a composited product. User is now able to specify if the expected composite inputs are located in a different product database schema/table than the current configuration.

modified: geoips/plugins/modules/procflows/config_based.py

Enhancement#

Add support for abi derived motion winds (dmw) products#

From issue GEOIPS#571: 2024-08-29, Add derived motion wind products

Update ABI L2 netCDF reader to work with 1D datasets, such as DMW files. Some of the L2 files (such as DMW) are not supported the backend satpy abi_l2_nc reader, so fall back on xarray.load_dataset() if that is the case. If multiple files holding 1D datasets are passed in for a single scan time and they all share the same dimension, they are concatenated into one dataset.

Add “m s-1” to “kts” unit conversion support

Add new windbarbs_dmw algorithm that is capable of filtering wind retrievals to specified pressure level ranges.

Also add new colormap and output formatterfor displaying multiple assigned height levels on a single image. The new output formatter also imports from the existing imagery_windbarbs output formatter, where minor updates were made to that formatter to handle the formatting and plotting of ingested DMW data (such as thinning pressure if that variable exists, and being able to control which variable is used for coloring the windbarbs).

Add support to interp_pyresample for handling abi datasets of 1-dimension

Add new product YAMLs for displaying DMWs at Low, Mid, or High levels, or displaying all levels on a single image. Add to ABI source YAML.

Add new test scripts and example output for DMW products.

added: geoips/plugins/modules/output_formatters/imagery_windbarbs_multi_level.py
added: geoips/plugins/yaml/product_defaults/geostationary_dmw/windbarbs_dmw_high.yaml
added: geoips/plugins/yaml/product_defaults/geostationary_dmw/windbarbs_dmw_low.yaml
added: geoips/plugins/yaml/product_defaults/geostationary_dmw/windbarbs_dmw_mid.yaml
added: geoips/plugins/yaml/product_defaults/geostationary_dmw/windbarbs_dmw_multi_level.yaml
added:
tests/outputs/abi.static.DMW-High.imagery_windbarbs/20210929.000020.goes-16.abi.DMW-High.goes_east.3p32.noaa.10p0.png
added:
tests/outputs/abi.static.DMW-LowMidHigh.imagery_windbarbs_multi_level/20210929.000020.goes-16.abi.DMW-LowMidHigh.w_atlantic.10p48.noaa.3p0.png
added: tests/scripts/abi.config_based_dmw_overlay.sh
added: tests/scripts/abi.static.dmw.imagery_windbarbs_high.sh
added: tests/yaml_configs/abi_dmw_overlay.yaml
modified: geoips/data_manipulations/conversions.py
modified: geoips/plugins/modules/algorithms/pressure_winds/windbarbs_dmw.py
modified: geoips/plugins/modules/colormappers/winds/dmw_wind_levels.py
modified: geoips/plugins/modules/interpolators/utils/interp_pyresample.py
modified: geoips/plugins/modules/output_formatters/imagery_windbarbs.py
modified: geoips/plugins/modules/readers/abi_l2_netcdf.py
modified: geoips/plugins/yaml/products/abi.yaml
modified: tests/test_all.sh

Enhancement#

Add resampling capability to viirs_sdr_hdf5 reader#

Add logic for resampling data upon read to a given sector

Add option to disable bowtie correction

modified: geoips/plugins/modules/readers/viirs_sdr_hdf5.py

Enchancement#

Reader functionality and product fixes#

Fixed a viirs_sdr_hdf5 bowtie bug, and reflectance channel differences between viirs_netcdf data. Created a GFS GRIB reader and algorithm to modify, and slice model data. Fixed several bugs, plotting polar data, and sectoring N-dimensional data variables.

added: docs/source/new-docs/concepts/functionality/data_units.rst
added: geoips/plugins/modules/algorithms/model_channel.py
added: geoips/plugins/modules/readers/gfs_grib.py
added: geoips/plugins/yaml/product_defaults/model/model_waves.yaml
added: geoips/plugins/yaml/product_defaults/model/model_windspeed.yaml
added: geoips/plugins/yaml/products/gfs_model.yaml
added: geoips/plugins/yaml/product_defaults/model/model_waves.yaml
added: geoips/plugins/modules/algorithms/model/model_windbarbs.py
added: geoips/plugins/yaml/product_defaults/model/model_windbarbs.yaml
modified: geoips/plugins/yaml/products/viirs.yaml
modified: geoips/plugins/modules/readers/viirs_netcdf.py
modified: geoips/plugins/modules/readers/viirs_sdr_hdf5.py
modified: geoips/image_utils/maps.py
modified: geoips/plugins/modules/algorithms/sfc_winds/windbarbs.py
modified: pyproject.toml
modified: geoips/xarray_utils/data.py
modified: geoips/xarray_utils/data.py

Enhancements#

Add databases interface#

Add databases interface

  • geoips/interfaces/module_based/databases.py

  • geoips/interfaces/__init__.py

Add databases interface to alias mapping, cmd instructions

  • geoips/commandline/ancillary_info/alias_mapping.yaml

  • geoips/commandline/ancillary_info/cmd_instructions.yaml

Update databases interface import in single_source procflow to geoips not geoips_db.

  • geoips/interfaces/module_based/databases.py

Ensure correct families are used from the single source procflow for database writes. Ensure all families are set up correctly in the databases interface, with the correct arguments and kwargs so they are called correctly from the procflow.

  • geoips/plugins/modules/procflows/single_source.py

modified: geoips/commandline/ancillary_info/alias_mapping.yaml
modified: geoips/commandline/ancillary_info/cmd_instructions.yaml
modified: geoips/interfaces/__init__.py
modified: geoips/plugins/modules/procflows/single_source.py
added: geoips/interfaces/module_based/databases.py