# # # 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.4.0 (2022-01-10)#

v1.4.0: 2022-01-10, add modular metadata output support, causing some internal interface changes

All interface changes due to this update are isolated to internal functions, required to support modular metadata filename and output format specifications. These changes will not impact any user/developer interfaces.

Breaking Interface Changes#

  • Removed “overlay” procflow - functionality completely covered by config_based procflow.

  • remove_duplicates:

    • Now takes dictionary of filenames with associated format information, rather than list of filenames

      • No longer takes separate “filename_format” argument that must apply to all files

  • single_source.plot_data

    • Takes in output_dict rather than separate output file names and output format

    • Returns dictionary of output file names with associated filename formats, rather than list of filenames

    • Takes in variable for kwargs rather than **kwargs

      (so it is explicit which kwargs should be applied to which module)

  • single_source.plot_sectored_data_output (ie, sectored, unregistered outputs)

    • Takes in output_dict rather than individual filename/output formats

    • Add area_def argument

    • Returns dictionary of output file names with associated filename formats, rather than list of filenames

  • single_source.process_xarray_dict_to_output_format (ie, unsectored, unregistered outputs)

    • Takes in output_dict rather than individual filename/output formats

    • Add area_def argument

    • Returns dictionary of output file names with associated filename formats, rather than list of filenames

  • single_source.get_filename

    • (alg_xarray, area_def, filename_format, product_name)
      -> (filename_format, product_name=None, alg_xarray=None, area_def=None,

      output_dict=None, suppored_filenamer_type=None)

    • Consolidated to support

      • metadata outputs

      • sectored/unsectored outputs

      • registered outputs

  • Remove center coverage check from 89H-Physical product

    • For consistency with other products, request at the command line / output config level

    • Add center coverage product_params_override to direct command line amsr2.sh test call

Refactor#

  • Pass “output_dict” to all filename and output modules, for consistent application of options

    (allows specifying arguments via single_source command line or output YAML config dict)

    • kwarg to all product modular interface functions

    • Optional kwarg to all filename and output modules (if it is not included as a kwarg, it is filtered

      out from within single_source and not attempted to be passed in)

      • tc_clean_fname - for including coverage function information in filename

      • tc_fname - for including coverage function information in filename

  • single_source.output_all_metadata

    • Returns dictionary of output filenames and formats

  • single_source.get_output_filenames

    • Returns dictionary of output_filenames and metadata_filenames with associated formats

  • Separate test_all.sh (includes test scripts that do not have bundled test data) and test_base_install.sh

    (only includes test scripts with bundled test data)

  • Move “get_bg_xarray” from overlay procflow to config_based procflow

Major New Functionality#

  • Updated “product” modular interface

    • Add “list_products_by_source” and “list_products_by_products”

  • Available functionality documentation page - includes readers and products, with examples

    • Readers

      • AMSU-B

      • HY2

      • SAR

      • SMOS

    • Products

      • 183-3H

      • NRCS

      • sectored text winds

      • unsectored text winds

  • Sample test scripts with explicit command line call examples - input dataset NOT included, but

    all sector information and output comparison files are available directly within geoips

    • AMSR2 89H-Physical, using bdeck bio012020.dat

    • AMSU-B 183-3H, using bdeck bwp022021.dat

    • SAR windspeed, using bdeck bwp312018.dat

    • SMOS sectored, using bdeck bsh162020.dat

  • Sectored and Unsectored text wind outputs

    • SAR

  • Support user-defineable metadata output formats, command line args and YAML output config fields

    • metadata_filename_format (default None)

    • metadata_filename_format_kwargs (default {})

    • metadata_output_format (default None)

    • metadata_output_format_kwargs (default {})

  • Support user-defineable modifications to product parameters, via command line or output config fields

    • product_params_override (default {})

  • Add “standard_metadata” filename and output format types (to match version previously used automatically for

    all TC sectors - will continue to use “standard_metadata” for testing purposes to avoid changing all test repo outputs)

  • Add “output_config” interface module to pull parameters from output config dictionaries

    • output_config_dict: full dictionary referring to complete YAML output config file

    • output_dict: dictionary referring to a single set of output parameters for a single output type

      (subset of output_config_dict - matches “command_line_args” in single_source procflow)

Improvements#

  • Moved documentation imagery into subdirectories

    • available_functionality

    • geoips_overview

    • command_line_examples

  • More informative log statement at the end of single_source and config_based procflows

  • During output comparisons, name diff directory “diff_test_output_dir” and files “diff_test_output”