Skip to content

Latest commit

 

History

History
113 lines (93 loc) · 9.18 KB

RELEASE_NOTES.md

File metadata and controls

113 lines (93 loc) · 9.18 KB

Version 1.2.0 March 5th, 2020

Minor release

Main Features:

  • Removal of the CAMPS database. The database aided in fetching variables from an input file based on a limited amount of metadata, provided by the user. This functionality was easily replaced using the python package NetCDF4. This change significantly sped up runtime of mospred_driver.py.
  • By removing level from the dimensions of primary variables, CF-Convention rules are fully met for each driver script. The vertical level of a variable is instead accessed via a the metadata attribute verical_coord, which resolves to a variable that contains the vertical level of the variable.
  • Removed the temporary class in predictor.py. This functionality was replaced with a simple dictionary.
  • Removed O&M ontology from the software. SOSA has classes and properties that satisfy the CAMPS metadata ontology needs, and it is publically accessible, where O&M documentation exists behind a paywall.
  • Removed the time classes ResultTime and ValidTime. These were unnecessary for representing our data. Additionally, ValidTime within the O&M ontology does not match the commonly accepted definition within atmospheric science.
  • Cleaned up and and updated procedures.yaml and netcdf.yaml
  • In order to be CF-Compliant, started encoding time bound variables as auxiliary coordinate variables to represent variables that occur over a period of time.
  • Added more explicit documentation to control files

Bug Fixes:

  • Fixed precip scaling factor error in metar_driver.py.

Known Issues:

  • Spelling error in equations.py
  • Lingering file_id global attributes within NetCDF files. File_id is no longer used in CAMPS.
  • Deprecation warnings resulting from the conversion from python 2 to python 3.

Version 1.1.0 September 30, 2020

Minor release

Main Features:

  • Python 2 to 3 conversion (3.6 or greater)
  • grib2_to_nc now supports Lambert Conformal, Polar Stereographic, Mercator, and regular latitude-longitude coordinate systems.
    • GRIB2 Grid Definition Section metadata is now being converted into CF and PROJ metadata.
  • Components metadata feature
    • A new metadata attribute called wasGeneratedBy has been added to primary variables metadata where appropriate.This attribute denotes primary variables used in the calculation of the new primary variable.
      Extra component information can be written to the mospred_driver output file. Set preference (True/False) in mospred_control.
      • If set to True then the variables used in the calculation of other variables will be written separately to the file with their original (before any procedures applied) metadata information ONLY included.
  • New feature for equations_driver which writes out an easier to decipher summary from equations_driver, denoting which predictors are chosen when generating equations and their coefficients. Also optional, set preference in equations_control.
  • Expanded grid-to-station interpolation schemes.
    • bilinear
    • biquadratic
    • budget
    • nearest-neighbor
  • Addition of grid binary process and associated metadata.
  • Several changes to allow for more flexible input/output options for driver scripts.
    • Allow for multiple input and output files for mospred_driver and forecast_driver. Functionality already existed for equations_driver.
    • Allow for multiple date ranges to be set for mospred_driver. Equations_driver already had this functionality.
  • Updated the equation parameters in equations_control to only include those that are used, and denote those that are not yet used. Some code correction done to ensure these are being used properly.
  • The beginning of a major metadata restructuring.
    • Added unique calculation procedures in procedures.yaml, with pre-set metadata information to be encoded in output files.
    • Added new metadata attribute wasInformedBy to denote procedures applied to a specific variable, that were performed prior to the current iteration of: read, process variables, write. This is usually done by running a driver script.

Bug Fixes:

  • Adding all applied procedures to primary variable names, with the exception of variable creation calculations.
  • Fixed issue in interp.py that resulted in incorrect distances between grid and data points for bilinear interpolation
  • Fixed an issue for budget interpolation where the grid coordinates for a station were not being computed correctly, leading to bad interpolation values.

Known Issues:

  • GUI graphing modules have errors. Display.py may work (untested) if Basemap and Basemap-data-hires are installed.
  • Current netcdf.yaml has errors in paths leading out to NWS codes registry and in CF standard names. An updated version will be pushed out soon. Updates will be somewhat frequent as more CF standard names are submitted and approved to the CF standard name table.
  • Some metadata prefixes used for NetCDF-Linked Data are incorrect in our output files. These will be fixed/updated when the full CAMPS metadata restructuring is complete.

Version 1.0.2 May 12, 2020

Patch release

Main Features:

  • Graphing module updates
  • Minor bug fixes

Graphing module updates:

  • The graphing module in camps/gui was not fully functional before. These changes make it possible to produce numerous plots from METAR_to_nc output and Mospred_driver output (for predictors).
  • Made graphs.py into a driver script and added it to setup.py to make it a console script so it can run outside of a python interface.

Minor bug fix details:

  • Fixed issue in Time.py with result time during 00Z-01Z hour.
  • Fixed a couple issues regarding get_source module. More to come with this.
  • Small spelling error in plr_new.py
  • Change in netcdf.yaml to support NAM data

Version 1.0.1 March 17, 2020

Patch release.

Main Features:

  • Minor bug fixes
  • Some additional in-code documentation updates
  • Addition of RELEASE_NOTES.md and update to README.md

Minor bug fix details:

  • Small fix to budget interpolation
  • Bilinear introplation fixes.
    1. Calculates dx and dy after conversion to indices
    2. Aligning handling of edge of grid with mos2k methods
  • Removed unnecessary stations input argument in plr_new.main_camps
  • Fixed typo in plr_new that was causing issues
  • Fixes to Time.py for handling of naming variables with otherwise identical names. Removed period information for dimension variable names.
  • Additional fix to PhenomenonTimePeriod variable duplicate naming convention with wrong period information appended to variable

Version 1.0.0 January 20, 2020

First release. CAMPS is a software infrastructure that supports Statistical Post-Processing (StatPP) and is maintained as community code. CAMPS currently offers the ability to replicate a limited Model Output Statistics (MOS) 2000 development. Currently, CAMPS only produces forecasts for the following predictands; 2 meter Temperature, 2 meter Dew Point, Daily Maximum Temperature, and Nighttime Minimum Temperature. Additional limitations such as; functional regressions, interpolations, and accepted map projections also exist.

CAMPS provides a structured method of encoding formatted metadata for StatPP. It aids in processing predictands from observational data and predictors from model output. CAMPS offers modules for converting observational data in ascii format (METAR and Marine data) and model output in Grib2 format (GFS data) to netCDF.

Current package breakdown:

  • camps/core: Where the module that defines the Camps_data object is held. Also stored here are composite classes such as Time and Location, along with I/O modules. Additionally, the directory with data conversion modules resides within core (camps/core/data_conversion).
    • camps/core/data_conversion: Directories where data conversion modules are held.
      • camps/core/data_conversion/grib2_to_nc: Modules for grib2 conversion to netcdf.
      • camps/core/data_conversion/metar_to_nc: Modules for METAR to netcdf conversion.
      • camps/core/data_conversion/marine_to_nc: Modules for Marine data to netcdf conversion.
  • camps/registry: Contains all the example configuration/control files for the various drivers.
    • camps/registry/db: Functions that are used to access and interact with the sqlite3 database are here. The database stores all accepted variables and their metadata and is updated upon each reading or writing of a new netcdf file.
  • camps/scripts: Contains all the driver scripts required to perform a full CAMPS development.
  • camps/StatPP/regression: Code used for the multiple linear regression is held here.
  • camps/gui: Various GUIs and modules used to display data are here. GUI and display features are not fully functional currently.
  • camps/mospred: Contains all modules that support the capabilities of the MOS-200 u201 equivalent code. These modules aid in creating new predictors and predictands – typically from model and observational output. They apply procedures to the variables, such as smoothing and interpolating and organize the variables into appropriate dimensions.
  • camps/libraries/mathlib: Modules used when creating new predictors/predictands are here. These are largely used during the mospred (u201 equivalent) step in a CAMPS development.