# # # 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.4 (2022-03-06)#

v1.4.4: 2022-03-06, command line override, unsectored product, product database support; Visible product corrections

Test Repo Updates#

Update ABI Visible Products with more informative colorbar label#

  • Include channel and wavelength in colorbar label

  • ABI static and TC Visible test png outputs

Breaking Interface Changes#

single_channel algorithm - rename solar zenith angle specifications#

  • See “Bug fixes”

Improvements#

Product tuning updates#

  • Add “update_output_dict_from_command_line_args” to support command line modifications to YAML output config

    • filename_format_kwargs

    • metadata_filename_format_kwargs

  • Add “produce_current_time” function in output_config interface

    • Support “produce_times” field in output config to filter required times for processing

  • Add “Uncorrected-Channel” product, that just plots normalized data directly (using min/max of data itself)

  • Update colorbar labels for ABI, AHI, SEVIRI, MODIS, and VIIRS Visible imagery to include the channel used in the plot

  • dev/product.py get_product: Loop through dictionary elements in product_inputs, only replacing what exists.

    • To allow specifying only specific elements within one of the product parameters dictionaries

      from within product_inputs specifications, if one of the dictionary elements is a dictionary itself, loop through that, replacing with the updated values found in product_inputs.

    • This allows maintaining all the defaults, and only specifying things that must change.

  • Add “numpy_arrays_nan” coverage check interface module (for non-masked-arrays)

TC YAML Template Updates#

  • Add tc_visir_3200km YAML gridlines parameters file - identical to tc_visir, but 5 degree grid spacing.

  • Created 1400x1400, 1024x1024, 256x256, 512x512, 800x800, and 1600x1600 subdirectories for tc templates.

    • 2km and 4km 1600x1600 TC template YAMLs

    • 4km 256x256

  • Will NOT change tc_web_template.yaml, etc, since ALL test scripts use those.

  • Perhaps explicitly setting these values in the YAML configs would be better than having

    completely separate files for each shape/resolution - will address direct YAML output config modifications at a later date - likely would be a method for overriding fields of TC template yamls, plotting_params YAMLs, as well as product params YAMLs (so you could still use completely separate individual files, but also override individual fields within as needed).

Sectoring / Processing Order#

  • Add “resector=False” get_alg_xarray option to config_based

    • this enables alg_interp_cmap and alg_cmap product types (no pre-interpolation).

    • Currently “self_register” and “reader_defined” area_def types lead to “resector=False” for get_alg_xarray.

      • Skip ALL sectoring for reader_defined and self_register.

  • Add xarray_to_numpy alg type support to get_alg_xarray

    • for alg_interp_cmap and alg_cmap product types

      • no pre-interpolation - must pass sectored xarray, so can only include a single dataset

Product database support#

  • Added product database command line argument

  • Added hooks to single_source and config_based procflows

    • Checks if database environment variables are set

    • Uses yaml metadata file to populate the database

    • Prints “DATABASESUCCESS” for all products written to the database

Installation / Setup / Logging Process#

  • Separate vim8 installation and vim8 plugin setup in base_install_and_test.sh

  • Remove verbose log statements including entire command line arguments

    • lots and lots of filenames, and now the command line call is printed on multiple lines separately

Bug fixes#

Resolve issues with Visible products#

  • Update AHI Visible parameters (was washed out / saturated)

    • gamma_list: []

    • data_range: [0.0, 120.0]

    • scalefactor still 100

  • Update MODIS Visible parameters (was all white)

    • gamma_list: []

    • scale_factor: 1.0 (comes out of the reader 0 to 100!)

  • Update Visible product

    • min_day_zen -> max_day_zen for single_channel algorithm

    • Add comments that AHI and MODIS override standard parameters for Visible

  • SEVIRI reader reflectance calculations

    • reinstate: ref[rad > 0] = np.pi * rad[rad > 0] / irrad

      • Previously included solar zenith correction, so I had removed the entire line

    • Add log statements with min/max data values for reference

single_channel algorithm - rename solar zenith angle specifications#

  • rename min_day_zen -> max_day_zen

    • since day is 0-90, we want to identify the max zenith angle that will still be considered daytime

  • rename max_night_zen -> min_night_zen

    • night is 90-180, identify minimum zenith angle that will still be night

  • Updated Visible product with new names

Error Checking#

  • Added check in overpass_predictor.py if sun.rise_time exists

  • Added handling in amsub_mirs reader for if there are bad ScanTime values