Skip to content

Releases: TCCON/py-ginput

ginput v1.3.1 release

19 Dec 19:30
Compare
Choose a tag to compare

This release improves the ergonomics of including the time-varying O2 mole fraction by providing an option to the O2MeanMoleFractionRecord and a command line flag for the vmr and rlvmr subcommands to automatically download the necessary data and create/update the O2 mole fraction data file when creating .vmr files.

ginput v1.3.0 release

20 Nov 23:51
Compare
Choose a tag to compare

This release primarily adds two new features:

  1. the ability to calculate a time-varying O2 mole fraction, which gets added to the .vmr file header.
  2. better tracking of input met model data in the .mod file header.

To support the time-varying O2 mole fraction, it includes a new program that downloads Scripps O2/N2 data and NOAA global average CO2 data and calculates the yearly O2 mole fraction from them. This file is not included with ginput, but can be obtained by running the update_fo2 subcommand of run_ginput.py.

Other changes:

  • Some type hints in get_NOAA_flask_data updated to be backwards compatible to at least
    Python 3.7.
  • Small update to mod_maker to handle taking chemistry variables from a different version
    of the GEOS files than the met variables. This will support possible TCCON reprocessing
    with GEOS FP-IT met and GEOS IT CO.

ginput v1.2.0 release

01 May 22:40
Compare
Choose a tag to compare

This release fully handles generating priors from GEOS IT met and chemistry data. Specific changes:

  • Tropospheric scaling for CO set to 1 (i.e. no scaling) when using GEOS IT chemistry files
  • A new module, ginput.priors.automation, and the corresponding subcommand (auto) constructed as an interface for a system that automatically runs ginput.
  • Functions to get information about the most recent commit for logging/file metadata have been updated to work with Git and Mercurial.
  • More flexibility to print download URLs for met files to stdout instead of to a file
  • New subprogram, getnoaa, to update the NOAA data used as input (pull request #6 by rocheseb).
  • Additional catch to handle missing udunits2 system dependency when importing the writers module (pull request #8 by chris-msat).

ginput v1.1.5e release

05 Jun 16:50
Compare
Choose a tag to compare

During testing with GEOS IT files, we found that cases in which 3 EqL interpolators needed passed
between threads crashed due to a limit on the maximum size of data which can be passed between
threads in Python 3.6. Because upgrading to Python 3.10 will fix that issue but definitely introduce
numerical differences, this version implements a workaround in which the EqL interpolators are
saved to disk as pickle files and read in from the threads, bypassing the inter-thread object
size limit.

v1.1.8

31 May 01:47
Compare
Choose a tag to compare

Another minor update to address issues arising from running with GEOS IT.

  1. Download URLs for GEOS IT updated to latest product.
  2. Solves an issue running the satellite interface (oco, gosat, or geocarb subcommands)
    with 3 GEOS IT input. The interpolators created for the GEOS IT files are large enough that
    three cannot be passed between threads in Python 3.6 due to a limit on the number of bytes
    that the Python 3.6 multiprocessing module can pickle. This is fixed by Python 3.10 at the
    latest, but getting Python 3.10 and required numerical dependencies to reproduce the Python
    3.6 results to numerical precision was not possible. Therefore, as a workaround, if the
    satellite interface detects that it is running on Python 3.9 or earlier, it will pickle the
    interpolators as separate files and load them back in from the threads when --nprocs is not
    0.

There are two other aspects to this release:

  1. This is the first release that can be run on Python 3.10 and has the changes needed to run
    the satellite interface with GEOS IT files. v1.1.7 didn't have those GEOS IT changes and
    v1.1.5d was not compatible with Python 3.6.
  2. The unit testing code now ignores the GINPUT_VERSION value in the .vmr file headers; this
    saves us from needing to update the test input files with each version if there should not
    be changes in the output.

ginput v1.1.5d release

26 Jan 16:46
Compare
Choose a tag to compare

mlo_smo_prep version 1.1.0

Minor, backwards compatible, update to allow the update_hourly subcommand to accept hourly files from alternate NOAA sites.

This change also stems from the lack of NOAA hourly data from MLO after the Mauna Loa eruption
at the end of Nov 2022. NOAA set up temporary measurements on Mauna Kea until the Mauna Loa
observatory can be reopened. This data comes with the site ID "MKO". Previously, the update_hourly
command would not allow either the hourly or monthly input files to contain site IDs other than
"MLO" or "SMO" as a protection against accidentally passing the wrong file for the wrong site.

To support MKO data, plus any potential future site shifts, this version adds two new command line
options to the update_hourly subcommand:

  • --allow-alt-noaa-site: when this flag is passed, the hourly file is allowed to have a site ID
    that does not match the expected "MLO" or "SMO". That site ID will be recorded as the site ID
    for the new months in the output monthly file. An error will still be raised if the input hourly
    file contains multiple site IDs.
  • --site-id-override: allows the caller to pass a site ID to use in the output monthly file
    instead of the site ID(s) found in the input hourly file. When given, the hourly file may
    have multiple site IDs; they will be ignored and the site ID passed to this option will be
    used instead.

The site IDs in the input monthly file are still checked, but will no longer raise an error in
any case. Instead either a warning or informational message will be logged if the site ID(s) in
the input file are do not match "MLO"/"SMO" or the override site ID. Whether a warning or
informational message is printed depends on whether --allow-alt-noaa-site is absent or present.
Make this check a warning rather than a hard error was done because once a monthly file uses an
alternate site once, it will always have multiple site IDs going forward, which would require
passing --allow-alt-noaa-site every time, even after the hourly file reverts back to the
expected site (MLO or SMO).

Like v1.1.5b and v1.1.5c, this version number is outside the standard semantic versioning pattern,
as it was a fix that needed to be applied to the version of ginput used for OCO-2/3 B11 processing.

ginput v1.1.5c release

12 Jan 00:57
Compare
Choose a tag to compare

This is an out-of-sequence patch to the version of ginput used for OCO-2/3 v11 processing to fix a bug encountered when generating monthly averaged NOAA data from hourly data and all of the hourly data is flagged or otherwise unusable.

ginput v1.1.5b release

02 Dec 01:03
Compare
Choose a tag to compare

This is an out-of-sequence patch to the version of ginput used for OCO-2/3 v11 processing to support GEOS-IT files.

ginput v1.1.7 release

15 Sep 01:11
13947c4
Compare
Choose a tag to compare

Installing with pip install or python setup.py install will now correctly copy the files in ginput/data to the installation directory. Installing in develop mode through make install is still the recommended way of setting up ginput for normal use; however, if this is part of a larger project and you want the code to live alongside your other dependencies, that works now.

Two notes:

  1. ginput does cache look up tables in the data directory within the package. If you install it into your environment (rather than using develop mode), you will need to ensure that the install directory is writable by the process that will run ginput (or you disable the caching).
  2. If installing with python setup.py install or pip install, it is still recommended that you use the environment-py36.yml or environment-py310.yml file to install the necessary dependencies with conda. The setup.py requirements are deliberately permissive so that it can work with either the Python 3.6 or 3.10 requirements. If you rely on pip to install the dependencies and get errors, please try to reproduce the errors in a conda environment based on the environment-py36.yml or environment-py310.yml file before opening an issue.

What's Changed

Full Changelog: v1.1.6...v1.1.7

ginput v1.1.6 release

08 Sep 23:24
Compare
Choose a tag to compare

This release includes (1) a license change and (2) fixes to allow ginput to run with Python 3.10.

License change The license associated with ginput has changed from LGPL to Apache 2.0. If you download this software after 8 Sept 2022, the Apache 2.0 license is in effect.

Python update The code has been updated to work with Python 3.10. If you install with make install or ./install.sh, a Python 3.10 conda environment is created instead of a Python 3.6 one. If you need to work with Python 3.6, the environment-py36.yml file contains the previous 3.6 environment configuration, and can be use with conda env create -f to manually create a Python 3.6 environment.