A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of pyTMD

pyTMD - v2.2.3

Summary:
Documentation updates! Added content to the Background section, including functions and figures. Updates to the astronomical routines to add new functionality and (possibly) better corrections.

Itemized Changes:

  • feat: add parsing more constituents for #351 (#395)
  • docs: add figure for tidal spectra (#395)
  • feat: option to set p' to 0 for sa and sta (#396)
  • docs: add polar motion plot (#396)
  • docs: add leap seconds to delta time plot (#396)
  • docs: add more descriptors for constituents (#396)
  • test: add check for climatologically affected constituents (#396)
  • docs: add more background (#397)
  • docs: use math format for inline variables (#397)
  • docs: update delta time plot (#397)
  • docs: add Astronomy card to background (#397)
  • docs: move nutation to Astronomy (#397)
  • docs: add geoid height section (#397)
  • refactor: changed argument for method calculating mean longitudes (#398)
  • test: added test for comparing mean longitude methods (#398)
  • docs: add more to Astronomy background text (#398)
  • refactor: split ICRS rotation matrix from the ITRS function (#399)
  • feat: added function to correct for aberration effects (#399)
  • chore: bump required timescale version to 0.0.8 (#399)
  • docs: add more astro citations from comments (#399)
  • docs: expand sidereal time subsection (#400)
  • docs: add geodetic coordinate system paragraph (#400)
  • docs: improvements to citations and references (#400)
  • docs: add more terms to the glossary (#400)
  • docs: make dynamical time a subsection in Time (#400)
  • docs: add more notes to astro function docstrings (#400)
  • docs: edit background text for clarity (#401)
  • feat: add 1066A-N and 1066A-S Earth models to Love number calculation (#402)
  • feat: add more ellipsoidal parameters to datum class (#402)
  • docs: add section for Celestial Reference Systems (#402)
  • test: add Love number ratio check (#402)
  • docs: add reference to J. Wahr 1979 PhD thesis (#402)
  • docs: add Love numbers plot from J. Wahr thesis (#402)
  • feat: use string mapping to remap non-numeric Doodson numbers (#404)
  • feat: added function to calculate equation of time (#404)
  • docs: add inverse calculation of Doodson and Delaunay arguments (#404)
  • docs: update constituent table (#404)
  • docs: include LSSD to tide gauge comparison (#404)
  • docs: update dictionary keys (#404)
  • feat: use schureman_arguments function for FES nodal variables (#405)
  • refactor: convert longitudes p and n to radians within nodal function (#405)
  • test: moved astro tests into new module (#405)
  • feat: added Schureman to list of M1 options in nodal arguments (#406)
  • test: include schureman argument test at 1900 (#406)
  • fix: use flexible case for mean longitude method strings (#406)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.2.2...2.2.3

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 25 days ago

pyTMD - v2.2.2

Summary:
First release of pyTMD under new organization 🎉
Added a number of new examples to the documentation. Moved all file processing codes (that used spatial io tools) to tsutterley/Grounding-Zones. This slims down pyTMD to focus on array and matrix processing, but allowing file processing with other similar modules in GZ.

Itemized Changes:

  • docs: add notebook comparing NOAA predictions with MSL (#386)
  • docs: infer minor constituents in NOAA station comparison (#387)
  • fix: constituent parsing and mapping to verify lam2 is not mapped to m2 (#387)
  • feat: add more known constituent remapping cases (#387)
  • test: add constituent parser test (#387)
  • docs: add notes about inferrence (#388)
  • feat: add Doodson (1921) table for amplitudes (#388)
  • chore: transfer ownership to @pyTMD org (#389)
  • ci: update codecov action (#390)
  • chore: update timescale links to @pyTMD org (#391)
  • docs: add EOP notebook (#392)
  • docs: add solid earth tides notebook (#392)
  • chore: add badge for commits since release
  • chore: remove codecov badge from readme
  • refactor: move spatial io routines to Grounding-Zones (#393)
  • docs: add correlation plot to gauge comparison (#393)
  • docs: add delta time plot to background (#393)
  • docs: numfig to True (#393)
  • docs: drop unused dependencies from citations (#393)
  • test: change to np.isclose in arguments (#393)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.2.1...2.2.2

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 2 months ago

pyTMD - v2.2.1

Summary:
Lots of updates to the documentation and added new workable examples to the notebooks. Added DTU23 to JSON database (thanks @robbibt!). Updated the directory to the FES2022 models to the new published urls (thanks @2320sharon!)

Itemized Changes:

  • docs: front page with cards and icons (#374)
  • fix: updated ftp directory for FES2022 ocean tide model (#376)
  • fix: update JSON databases for new FES2022 directory (#376)
  • docs: update FES2022 directory in getting started (#376)
  • test: retrieve spice kernel file from AWS (#376)
  • docs: added example to compare with tide gauges (#377)
  • feat: added function for fully-normalized Legendre polynomials (#377)
  • test: add ci test for aliasing frequencies (#377)
  • refactor: change 1 liner default EPSG to 4326 (#379)
  • ci: bump version of upload artifact to v4 (#379)
  • docs: start adding more detail for #354 (#381)
  • ci: adjust coverage report name for v4 artifact bug (#381)
  • docs: expand astronomical argument formalism for #354 (#382)
  • docs: add example for plotting tidal potential amplitude spectra (#382)
  • docs: split background into separate pages (#382)
  • feat: can use np.str_ in doodson numbers (#382)
  • docs: add project info (#382)
  • docs: add constituent table (#382)
  • feat: add DTU23 to providers for #383 (#384)
  • fix: missing grid kwarg for reading from TMD3 models (#385)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.2.0...2.2.1

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 3 months ago

pyTMD - v2.2.0

Summary:
Quick fix for annotations error in earlier versions of Python3.

Itemized Changes:

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.9...2.2.0

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 4 months ago

pyTMD - v2.1.9

Summary:
Started adding more functions to eventually add solve capability via the response method. Exposed parameters for setting the buffer distance when cropping tide model data (thanks @robbibt!). Fixed the TMD3 netCDF4 variables for currents (thanks @VikNikolaus!). Improved the CI builds by having test files versus a side-by-side comparison against the matlab version, which allowed the addition of windows builds. Added some improvements to the documentation, including the use of bibtex for citations.

Itemized Changes:

  • feat: add spherical harmonic functions (#362)
  • refactor: move generic astro functions to math.py (#362)
  • feat: add function to calculate altitude, azimuth and D (#362)
  • test: add test for unnormalized legendre polynomials (#362)
  • test: moved normalize_angle test to test_math.py (#362)
  • test: add ECEF to altaz test at USNO (#362)
  • feat: add calculation of zenith angle (#363)
  • test: add zenith angle test (#363)
  • feat: expose buffer distance to crop tide model data for #367 (#368)
  • test: add constituent parameter test (#368)
  • ci: add windows build for #98 (#369)
  • fix: omega and phase in constituent parameters (#369)
  • refactor: move body tide Love/Shida numbers to arguments (#369)
  • test: create test files from matlab program for comparison (#369)
  • fix: add missing_ok to deletions in tests (#369)
  • fix: verify that file objects are closed in test_spatial (#369)
  • fix: latest TMD3 current variable names for #370 (#371)
  • feat: add tidal aliasing period calculation function (#371)
  • fix: add latitude and longitude as potential dimension names (#371)
  • docs: use sphinxcontrib-bibtex to build bibliography (#372)
  • refactor: moved check points function to compute (#372)
  • docs: unify all references to a single page (#372)
  • docs: rearrange toctrees

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.8...2.1.9

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 4 months ago

pyTMD - v2.1.8

Summary:
Lots of little fixes (thanks @robbibt and @eceguhraterfa!) and updates to the documentation. Moved the table of Doodson coefficients to a JSON file included with the program. Moved all Jupyter notebook examples so that they are rendered in the documentation. Added Cartwright/Tayler/Edden tables of the tidal generating potential for degree 2 and degree 3.

Itemized Changes:

  • docs: fix repository url fetch from Project-URL
  • docs: update CITATION.cff to add version information
  • docs: add more definitions to glossary
  • refactor: convert Doodson coefficients table to JSON (#353)
  • feat: added option to use Munk-Cartwright admittance interpolation for minor (#353)
  • feat: add Cartwright and Edden (1973) table 1 (#353)
  • feat: add Cartwright and Tayler (1971) table 5 (#353)
  • feat: add function to parse Cartwright/Tayler/Edden tables (#353)
  • feat: add functions to calculate UKHO Extended Doodson numbers for constituents (#353)
  • test: add test for extended doodson (#353)
  • docs: add citations to included data (#353)
  • fix: remove default bounds being None for #356 (#357)
  • docs: move notebooks to docs and use myst to render (#359)
  • fix: correct error when using default bounds in extract_constants for #356 (#359)
  • fix: correct TPXO10-atlas-v2 binary grid filename for #358 (#359)
  • fix: some Cartwright and Edden (1973) table entries (#359)
  • docs: use cards for notebook examples page (#360)
  • fix: GOT5.6 names in database and add 'n2' (#360)
  • docs: set card grid to be either 1, 2 or 4
  • fix: update pyproject.toml for doc build
  • fix: allow variable case for Doodson number formalisms (#361)
  • feat: added property for Extended Doodson numbers (#361)
  • fix: use Love numbers for long-period tides when inferring (won't affect tilt factors) (#361)
  • docs: add form factor notebook for classifying regional tides (#361)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.7...2.1.8

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 6 months ago

pyTMD - v2.1.7

Summary:
Simplifies the model read functions to have a single wrapper function in io.model. Storing the coordinate reference system (CRS) capability for OTIS models in the JSON database. Adds inference capability for long-period tide models, and updates the inference of semi-diurnal/diurnal tides for GOT models.

Itemized Changes:

  • docs: improve description of optional dependencies in examples
  • fix: use case insensitive assertions of string argument values (thanks @smithb!) (#340)
  • feat: added bounded options for least squares solvers (#341)
  • feat: add __models__ with all model names in database (#341)
  • feat: add function lists as __all__ (#341)
  • feat: add Ray and Erofeeva (2014) to the database for #327 (#341)
  • feat: add minor inference for long period tides to address #327 (#342)
  • fix: try inferring both long and short period tides for FES (#343)
  • refactor: using new JSON dictionary format for model projections for #333 (#345)
  • docs: add notebook with a cotidal chart for #344 and #348 (#345)
  • docs: update descriptions of coordinate reference systems
  • feat: add new functions to infer semi-diurnal and diurnal tides (#346)
  • feat: use PREM as the default Earth model for Love numbers (#347)
  • feat: compute delta times based on corrections type (#347)
  • feat: add wrapper functions to read and interpolate constants (#349)
  • tests: use simplified wrapper functions (#349)
  • feat: updated computation of long-period equilibrium tides (#349)
  • feat: add functions to append node tide equilibrium values to amplitudes (#349)
  • fix: add messaging if there are no minor constituents to infer (#349)
  • feat: can convert Doodson numbers formatted as strings (#349)
  • docs: expand the glossary (#349)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.6...2.1.7

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 6 months ago

pyTMD - v2.1.6

Summary:
Refactors the project to improve how models are stored using a single JSON database, which are collated from provider JSON files. More models have been added to the database thanks to @robbibt! Adds some bug fixes for better backwards compatibility for FES and GOT models.

Itemized Changes:

  • refactor: use JSON database for known model parameters for #328 (#329)
  • feat: added new TPXO10-atlas-v2 to list of models (#329)
  • feat: generalize hash function to use any available algorithm (#329)
  • fix: use model name in default output filename for definition file case (#329)
  • refactor: create database from providers (#329)
  • refactor: drop support for the ascii definition file format (#329)
  • docs: add model providers section to contributions (#329)
  • ci: add GitHub Action to update database.json (#330)
  • feat: Add additional models to provider JSON (#331)
  • fix: add parse constituents back to model load (#331)
  • fix: drop constituents from database (#331)
  • ci: only run pytest action if secrets are accessible (#331)
  • refactor: use idealized Azimuthal equidistant for Arctic models (#332)
  • fix: deprecation in case where an array is output to scalars (#332)
  • fix: j1 and theta for FES type models for #335 (#336)
  • fix: nodal corrections for eps2 and eta2 when inferring for GOT5.5 (#336)
  • feat: use model class attributes for file format and corrections (#336)
  • feat: add option to select nodal corrections type (#336)
  • feat: export database as dataclass (#337)
  • docs: update getting started and README.rst (#337)
  • test: add test for reading model database (#337)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.5...2.1.6

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 8 months ago

pyTMD - v2.1.5

Summary:
Adds new Goddard ocean tide models and the capability to predict for their modeled 3rd degree tides. Refactors the model format names to be more descriptive of the model file format. Adds the auto-detection of definition file format (thanks @robbibt!). Refactors the project build to use more modern practices. Adds the capability to predict the horizontal components of the load pole and ocean pole tides (thanks @CunrenLiang!).

Itemized Changes:

  • feat: adding GOT5.5 and GOT download program (#316)
  • refactor: renamed format for ATLAS to ATLAS-compact (#316)
  • refactor: renamed format for netcdf to ATLAS-netcdf (#316)
  • refactor: renamed format for FES to FES-netcdf and added FES-ascii (#316)
  • refactor: renamed format for GOT to GOT-ascii and added GOT-netcdf (#316)
  • feat: add JSON definition files for GOT5.5D and GOT5.6 (#316)
  • feat: add support for constituents in PERTH5 tables (#316)
  • ci: use upstream matlab TMD for OTIS comparison (#316)
  • feat: include inference of eps2 and eta2 with GOT models (#319)
  • feat: add attribute for minor constituents to model object (#319)
  • feat: allow inferring only specific minor constituents (#319)
  • feat: allow searching over iterable glob strings in definition files for #318 (#319)
  • feat: add option to auto-detect definition file format for #318 (#319)
  • feat: add back nodal arguments from PERTH3 for backwards compatibility (#319)
  • chore: trim trim trailing whitespace (#319)
  • docs: add GOT5.5 to getting started (#319)
  • refactor: change 'geotiff' to 'GTiff' and 'cog' for #320 (#321)
  • chore: create pyproject.toml (#321)
  • refactor: modernize build with pyproject.toml (#322)
  • feat: add functions to calculate pole tides in cartesian coordinates for #323 (#324)
  • refactor: renamed io for Desai ocean pole tide file to IERS (#324)
  • docs: update prediction functions (#324)
  • fix: don't overwrite ocean pole tide longitude in shift (#325)
  • test: add more ocean pole tide verifications (#325)
  • feat: add ECEF to ENU conversions (#326)
  • refactor: use rotation matrix to convert from Cartesian to spherical (#326)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.4...2.1.5

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 8 months ago

pyTMD - v2.1.4

Summary:
Adds the ability to crop tide models around a bounding box. This capability can greatly improve computational times, particularly for high-resolution global models (#95). This release also fixes an issue for the extrapolated FES2022 data for coastal water bodies, where the model was zeroed out (thanks @robbibt!!).

Itemized Changes:

  • feat: added crop and bounds keywords for trimming model data for #95 (#313)
  • fix: FES2022-extrapolated outputs have zeroed out inland water bodies for #309 (#314)
  • feat: added option to use JSON format definition files (#314)
  • feat: add definition files for FES2022-extrapolated (#314)
  • docs: update definition file text describing new JSON format (#315)
  • feat: include crop in notebook demos (#316)
  • refactor: use timescale in notebook demos for temporal operations (#316)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.3...2.1.4

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 9 months ago

pyTMD - v2.1.3

Summary:
Fixes an issue where the FES2022 coordinates are masked when read from netCDF (thanks @robbibt!).

Itemized Changes:

  • fix: extract masked longitudes from FES2022 for #309 (#311)
  • feat: add JSON definition file parsing for #310 (#312)
  • docs: bump docutils to latest

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.2...2.1.3

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 9 months ago

pyTMD - v2.1.2

Summary:
Fixes some issues that arose with the release of numpy 2.0. Refactors astronomy and prediction functions to use timescale for temporal and EOP operations. Includes updates for the recently released FES2022 tide model outputs.

Itemized Changes:

  • refactor: use timescale for EOP and temporal operations (#300)
  • docs: fix netCDF4 urls (#300)
  • refactor: remove older deprecated functions (#300)
  • feat: add debug mode printing input arguments and additional information (#300)
  • feat: wrapper to importlib for optional dependencies (#300)
  • feat: add io for (geo)parquet datasets with geometry columns (#303)
  • feat: make classes subscriptable and allow item assignment (#303)
  • fix: default module import as class (#303)
  • feat: add output to_file function (#303)
  • fix: deprecation update to replace np.longcomplex (#303)
  • fix: numpy 2.0 fix for time calculation (#303)
  • test: add parquet io tests (#303)
  • fix: prevent integer overflows with numpy 2.0 (#304)
  • docs: add references to new PERTH5 software from Richard Ray (#305)
  • feat: add wrapper function for normalizing angles (#305)
  • feat: add functions to convert to and from Degree-Minutes-Seconds (DMS) (#305)
  • fix: assert that data type is a known value (#305)
  • feat: added new FES2022 and FES2022_load to list of models (#307)
  • feat: only download FES files if non-existent or updated (#308)
  • refactor: add _jd_j2000 variable instead of hard coded (#308)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.1...2.1.2

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley 10 months ago

pyTMD - v2.1.1

Summary:
Fixes an issue with calculating currents with TPXO9-atlas-v5 models (thanks @maucollu!). Refactors the high-level compute functions into single module (compute.py). Moves the ellipsoidal parameters to datum function within the crs.py module. Adds further improvements to the overall documentation and lots of small fixes.

Itemized Changes:

  • refactor: made the inferrence of minor constituents an option (#272)
  • refactor: 1-liners in compute.py (#272)
  • refactor: lunisolar ephemerides functions (#272)
  • feat: added more constituent parameters for OTIS/ATLAS predictions (#272)
  • fix: add option to return None and not raise error for Doodson numbers (#272)
  • docs: add more definitions to the glossary (#272)
  • refactor: moved constituent parameters function from predict to arguments (#272)
  • feat: add functions for tide generating forces and potentials (#272)
  • fix: variable typing for c in _constituent_parameters (#272)
  • test: omit deprecated functions in coverage report (#272)
  • docs: add toctree for io subdirectory (#272)
  • test: add quick test for currents wrapper function (#272)
  • fix: construct OTIS currents masks differently if not global (#273)
  • refactor: renamed OTIS currents masks and bathymetry interpolation functions (#273)
  • refactor: renamed extend array and matrix functions (#273)
  • docs: add notebook showing tidal harmonic solver (#275)
  • fix: implicit import of ellipsoid constants class (#275)
  • feat: added inverse function to get currents from tide ellipse parameters (#276)
  • refactor: use complex algebra to calculate tidal ellipse parameters (#276)
  • docs: use importlib to prevent deprecation errors (#276)
  • fix: spelling mistake for solve notebook
  • refactor: changed class name for ellipsoid parameters to datum (#287)
  • refactor: move solve constants to subdirectory (#287)
  • refactor: move the immutable parameters in timescale class (#287)
  • feat: add capability to define a custom datum (#287)
  • refactor: changed variable for setting global grid flag to is_global (#287)
  • fix: doc strings for nodal arguments pu and pf (#287)
  • refactor: use numpy pad to interpolate data to u and v nodes (#287)
  • feat: can calculate polar stereographic distortion for distances (#294)
  • docs: update links to CATS2008-v2023 (#294)
  • fix: dtype suggestions (#294)
  • fix: append v currents in TPXO9 only if netcdf to address #295 (#294)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.1.0...2.1.1

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 1 year ago

pyTMD - v2.1.0

Summary:
Fixes an issue with calculating currents with TPXO9-atlas models in netCDF4 format (thanks @mirkorupani!). Changes how nodal arguments for constituents are calculated. Program now uses linear algebra with a table of Doodson coefficients (Cartwright numbers), which should hopefully be more transparent and extendable. This also allows the easy calculation of Doodson or Cartwright numbers for constituents (thanks @q1165600785!).

Itemized Changes:

  • fix: revert TPXO9-atlas currents changes to separate dicts for #258 (#259)
  • test: fix u and v for TPXO9-atlas netCDF (#259)
  • fix: escape sequences in docstrings to raw (#259)
  • fix: updated ssl context to fix deprecation error (#259)
  • docs: update docstrings for ssl context (#259)
  • refactor: use doodson arguments tables to calculate values (#270)
  • refactor: rename phase_angles to doodson_arguments (#270)
  • refactor: coordinate reference system class crs.py (#270)
  • refactor: pass through VBox and HBox in tools.py (#270)
  • docs: add link to TMD3 in Resources.rst (#270)
  • feat: made keyword argument for selecting M1 coefficients (#270)
  • feat: add initial solver for harmonic constants (#270)
  • chore: include whitespace after commas (#270)
  • feat: add function to create arguments coefficients table (#270)
  • test: add check that arguments match prior version (#270)
  • docs: started creating a glossary (#270)
  • docs: add citation to Simon et al. (1994) (#270)
  • feat: create arguments coefficients table for minor constituents (#270)
  • feat: add function to calculate Doodson numbers for #263 (#270)
  • refactor: use mean lunar time as independent variable (#270)
  • refactor: moved minor arguments calculation into new function (#270)
  • refactor: implicit import of arguments (#270)
  • test: add check for constants solve (#270)
  • feat: add functions to convert to and from Doodson numbers (#270)
  • feat: add option to output Cartwright numbers (#270)
  • feat: add properties for Doodson and Cartwright numbers to constituents class (#270)
  • feat: try to get the constituents of FES files (#270)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.9...2.1.0

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 1 year ago

pyTMD - v2.0.9

Summary:
Number of fixes to the code base. Fixes the units for TPXO9-atlas currents (thanks @cywhale!). Replaces the deprecated pkg_resources (thanks @mrsiegfried!).

Itemized Changes:

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.8...2.0.9

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 1 year ago

pyTMD - v2.0.8

Summary:
Adds a capability to compute tide corrections for parquet files. Fixes a bug for using TPXO8-atlas (compact) with spline or regular grid interpolators (thanks @robbibt!). Upgrades to the CI and doc builds for using mamba and prevent deprecations.

Itemized Changes:

  • feat: add option to run with parquet tabular files #236
  • feat: add function to invert field mapping keys and values #235
  • fix: prevent overwriting ATLAS compact x and y coordinates to address #238 #240
  • docs: use micromamba for builds #235
  • ci: bump versions of imports to prevent deprecation errors #235

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.7...2.0.8

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 1 year ago

pyTMD - v2.0.7

Summary:
Adds a new Antarctic model coinciding with the release of the Matlab Tide-Model-Driver. Decreases the build size and includes performance enhancements for RTD and CI builds.

Itemized Changes:

  • feat: added model parameters for CATS2008-v2023 #229
  • refactor: changed ESR netCDF4 format to TMD3 format #229
  • refactor: place more imports behind try/except statements to reduce RTD build size #230
  • fix: remove possible crs variables from output netCDF4 fields list #229
  • ci: bump actions to python 3.11 #229
  • ci: use mamba for CI builds #230
  • docs: switch to RTD build.os configuration #230

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.6...2.0.7

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 1 year ago

pyTMD - v2.0.6

Summary:
This a relatively minor release that includes some bug fixes and performance improvements.

Itemized Changes:

  • feat: improve conversion of timescale to datetime arrays #220
  • docs: update graphviz fonts to match overall readthedocs style #220
  • refactor: switch from import warnings to debug logging #220
  • fix: output constituents from get and pop as copies to keep original data immutable #222

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.5...2.0.6

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley almost 2 years ago

pyTMD - v2.0.5

Summary:
This release adds some bug fixes for defined paths, along with changes to read the ocean tide variables in FES2012. JPL kernel files can also be automatically downloaded from the SSD server if using high resolution ephemerides. Some chore work for authenticating with NASA Earthdata user tokens was also added.

Itemized Changes:

  • feat: function to convert a string with time zone information to datetime #203
  • feat: added option to change connection timeout to arcticdata and AVISO for #202 #205
  • feat: download JPL kernel file if not currently existing #205
  • feat: add functions to retrieve and revoke Earthdata tokens #209
  • fix: don't set a default directory in tools for #202 #203
  • fix: setting path to output file in scripts where not defined as an argument
  • fix: extract variables for FES2012 ocean tide #212
  • docs: update solid earth section #205
  • test: add a time zone case to parsing #203

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.4...2.0.5

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley almost 2 years ago

pyTMD - v2.0.4

Summary:
This release adds new capability for being able to find constituent files using glob strings when using definition files (Thanks @ludwigus for the suggestion!!). This capability required some refactorization within the software for how paths work (now using pathlib). This release also adds some higher resolution astronomical calculations for determining solid earth tides using ephemerides from JPL. A new timescale class has also been added for converting between different time standards, and between universal (UT) and dynamic (TT) time.

Itemized Changes:

  • feat: add basic file searching with glob strings in definition files for #183 (#187)
  • feat: add parser for extracting constituents from filenames (#187)
  • feat: updated model definition read function for currents (#187)
  • feat: added iterative methods for converting from cartesian to geodetic (#187)
  • feat: functions to calculate solar and lunar positions with ephemerides (#187)
  • feat: add long_name and description attributes for current variables (#188)
  • feat: allow netCDF4 and HDF5 outputs to be appended to existing files (#192)
  • feat: add code of conduct (#192)
  • feat: use a higher resolution estimate of the Greenwich hour angle (#194)
  • feat: add new timescale class for time operations (#198)
  • feat: adding high resolution astronomical calculations (#198)
  • feat: have default earth orientation parameters in eop module (#198)
  • feat: add option for using higher resolution ephemerides from JPL (#198)
  • feat: use einsum for combined matrix multiplications (#198)
  • feat: allow epochs to be strings or np.deltatime64 (#200)
  • refactor: using pathlib to define and expand paths (#187)
  • refactor: rename load_nodal_corrections to arguments (#188)
  • refactor: make nominal love/shida numbers kwargs (#191)
  • refactor: make mass ratios of sun/moon kwargs (#191)
  • refactor: output solid earth corrections as XYZ (#191)
  • refactor: change some variable names (hour_angle) (#194)
  • refactor: make nutation angles a separate function (#200)
  • fix: allow directory to be None for definition files case (#187)
  • fix: include deprecated calc_astrol_longitudes in __init__.py (#188)
  • fix: add descriptive exception when glob pattern doesn't find files for #183 (#190)
  • fix: solar ephemeride function to include SSB-to-sun segment (#192)
  • fix: remove binder links 😢 (#198)
  • docs: add a line denoting new glob capability (#187)
  • docs: add docstrings for solid earth sub-function inputs (#187)
  • docs: add background section detailing methods (#191)
  • docs: add code of conduct as separate page (#200)
  • docs: expand on background reference systems (#200)
  • docs: split optional and required dependencies (#200)
  • test: added model definition file tests (#187)
  • test: add geodetic conversion test (#187)
  • test: add test for more derived attributes in model (#188)
  • test: parse all multiple file types for constituent names (#190)
  • test: test permanent tide conversion in solid earth (#190)
  • test: get IODEM3 from AWS s3 (NSIDC is currently down) (#192)
  • test: add timescale checks for conversions and constants (#198)
  • test: add test for leap seconds in timescale (#198)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.3...2.0.4

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley almost 2 years ago

pyTMD - v2.0.3

Summary:
This adds a fair bit of functionality while refactoring some functions and modules to better fit the current code structure. Added new HAMTIDE model as an option using the FES file standard (thanks @martin-rdz for the suggestion!). Added capabilities to predict solid Earth tides following IERS conventions. Added "one-liner" functions to predict long-period equilibrium tides (LPET), load pole tides (LPT) and ocean pole tides (OPT) and solid Earth tides (SET) (thanks Jeremy Harbeck for the suggestion!).

Itemized Changes:

  • feat: add basic variable typing to function inputs (#174)
  • feat: added "one-liners" for LPET, LPT and OPT (#176)
  • feat: added option to change IERS mean or secular pole convention (#176)
  • feat: added 2018 IERS secular pole convention (#176)
  • feat: set ellipsoid name and output units as constants attributes (#176)
  • feat: add 'HAMTIDE11' model to address #179 (#180)
  • feat: adding work for computing solid earth tides (#186)
  • feat: add solid Earth tide (SET) correction program for files (#186)
  • feat: add function for phase angles (#186)
  • test: add solid Earth tide (SET) checks vs IERS and ICESat-2 (#186)
  • refactor: renamed coordinate reference system conversion functions (#174)
  • refactor: mapping notebooks for matplotlib 3.5 (#182)
  • fix: setting directories for FES currents within model class (#182)
  • fix: check if datetime before converting to seconds (#186)
  • fix: copy inputs in cartesian conversions to not modify original arrays (#186)
  • docs: remove deprecated .rst files (#174)
  • docs: update documentation to denote new solid Earth tide (SET) functionality (#186)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.2...2.0.3

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 2 years ago

pyTMD - v2.0.2

Summary: Minor release to update the pin for scipy, which should enable a working conda-forge build. This release also removes deprecated functions in order to slim down the repository.

Itemized Changes:

  • chore: bump scipy pin to 1.10.1 to address #148 (#167)
  • refactor: remove deprecated functions (#171)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.1...2.0.2

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 2 years ago

pyTMD - v2.0.1

Adding capabilities for 'grid' and 'time series' types for netCDF4 outputs
Fixes to address the number of warnings and to pin scipy to a working version
Thanks to @bjarnebuchmann for recommending both script and documentation changes

  • feat: default geotiff output as cog
  • feat: added default field mapping for reading from netCDF4/HDF5 (#152)
  • feat: split netCDF4 output for grid and drift types to address #154 (#159)
  • feat: use debug level logging instead of import warnings in tools.py to address #156 (#159)
  • feat: add time series type to address #153 (#162)
  • fix: verify warnings have type and only show once #146 (#147)
  • fix: pin scipy to 1.9.3 for scipy/scipy#17716 (#147)
  • fix: use default context from utilities module (#147)
  • fix: include more possible dimension names for grid and time series outputs (#163)
  • test: add default field mapping test (#152)
  • test: validate gridded and time series netCDF/HDF5 io (#163)
  • docs: update documentation colors to match new logo
  • docs: don't have metavar for --tide to address #155 (#159)
  • docs: updated v2 link for Arc2km to address #157 (#159)

Full Changelog: https://github.com/tsutterley/pyTMD/compare/2.0.0...2.0.1

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 2 years ago

pyTMD - v2.0.0

This is a major refactor of the code base to improve the overall structure and documentation.
Tide model read functions have been renamed and placed in the io directory
Additional capabilities for reading and writing files have been added
Interpolation routines have been rewritten into a single module
For now, the code should be the backwards compatible with deprecation warnings

  • refactor: single implicit import of pyTMD tools (#130)
  • refactor: reorganization of tide model readers under io (#132)
  • refactor: placed interpolation routines into new module (#141)
  • refactor: move model class to io
  • feat: add constants class for ellipsoidal and gravitational parameters (#135)
  • feat: functions to read and interpolate from all constituents (#137)
  • feat: new functions to output ATLAS, FES and GOT netCDF4 files (#139)
  • feat: output variables for some standard epochs used within tide programs
  • feat: update forecast notebook with dynamic plotting
  • fix: copy input coordinates within read functions so they are not transformed
  • docs: update documentation for new structure
  • docs: standardized citation format throughout docstrings
  • docs: add release notes for all prior public releases
  • docs: add new pyTMD logo
  • test: read header from OPT test file and compare more variables
  • test: add tests for io methods

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.1.3

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.1.2

Bug fixes and updates to auxiliary time and EOP data files

  • fix: MEEUS solar perigee rate
  • fix: slimmer doc build for readthedocs
  • fix: variable case for reading ATLAS compact files
  • feat: add IERS https deltat sync
  • feat: add IERS bulletin-A download
  • ci: add workflow for appending delta times
  • chore: update leap seconds list
  • chore: update deltat file
  • chore: update mean pole table
  • chore: update finals file

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.1.1

Quick fixes

  • fix: invert current masks for OTIS/ATLAS
  • fix: add encoding to reading leap second files

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.1.0

feat: ascii file read updates to address https://github.com/tsutterley/pyTMD/issues/112 (https://github.com/tsutterley/pyTMD/pull/113)
feat: added delimiter option and datetime parsing in spatial class

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.0.9

Major refactor to remove all ICESat, ICESat-2 and OIB code #111 as proposed in #72

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.0.8

Release includes various fixes and improvements to the documentation.

  • docs: slimmer environment file for prevent overutilization when building on readthedocs
  • docs: updated structure of documentation
  • fix: ocean pole tide test read
  • fix: verify that input data is a masked array in bilinear interpolate
  • fix: masking of netCDF4 ATLAS variables
  • fix: place some imports behind try/except to include tools import

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 2 years ago

pyTMD - v1.0.7

  • fix: improvements for compact ATLAS reads
  • feat: added ESR netCDF4 formats to list of model types
  • feat: added options to apply flexure to computational programs
  • feat: added Greenland 1km model (Gr1kmTM) to list of models
  • feat: added field_mapping options to netCDF4 and HDF5 reads
  • refactor: changed keyword arguments to camel case
  • refactor: use pypi versions of ICESat-2 and ATM1b tools
  • docs: add paragraph about delta times

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley almost 3 years ago

pyTMD - v1.0.6

fix: extrapolate for equirectangular case to address #87
feat: added global Empirical Ocean Tide model (#82)
feat: added Arc2kmTM to list of available models
feat: option for changing time standard in file programs
feat: ICESat and Operation IceBridge updates
refactor: slim down requirements.txt

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 3 years ago

pyTMD - v1.0.5

  • refactor: using python logging for handling verbose output (#71)
  • fix: Operation IceBridge functions for geotrajectory outputs (#73)
  • feat: try to get grid mapping attributes from netCDF4 and HDF5 (#74)
  • refactor: adjust longitude convention based on model longitude (#76)
  • feat: add TPXO9-atlas-v5 to standard models (#77)
  • feat: add tide program for ATL10 freeboard files (#78)
  • feat: added function to calculate a tidal time series (#80)

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 3 years ago

pyTMD - v1.0.4.0

  • refactor: use model class for files and attributes
  • feat: can use numpy datetime arrays as input time variable
  • feat: calculator for height differences between ellipsoids
  • feat: can use argparse prefix files to define command line arguments
  • feat: added generic list from Apache http server
  • fix: netCDF4 cases where there is no mask on constituent files
  • fix: USAP now requires capchas
  • fix: pole case in stereographic area scale calculation
  • fix: use getncattr to get attributes from netCDF4 files to prevent deprecation errors
  • ci: install proj from source for cartopy dependency
  • test: NSIDC no longer requires authentication headers
  • test: added test for model definition files

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 3 years ago

pyTMD - v1.0.3.1

conda and docker releases
add new Gr1km-v2 1km Greenland model from ESR
add option for extrapolation cutoff in kilometers
add warning for tide models being entered as string to address
bug fixes for nearest-neighbors and bilinear interpolations
documentation updates

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley almost 4 years ago

pyTMD - v1.0.3.0

Preparations for conda-forge release

semantic versioning with setuptools_scm
documentation update with contribution guidelines
citations within documentation
generically named ICESat/ICESat-2 files
ocean load tide fixes
update manifest files

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley almost 4 years ago

pyTMD - v1.0.2.18

  • Simplified inputs to netcdf, GOT and FES tide read programs to be similar to binary OTIS program
  • Added TPXO9-atlas-v4 in single constituent OTIS file format
  • Updated documentation for consistency and to add contribution guidelines
  • Add checks to extrapolation program to prevent runtime exceptions
  • Updated spatial module adding polar stereographic area scale calculation
  • Updated spatial module adding routines for cartesian coordinate conversion
  • Prevent ComplexWarning for fill values when calculating amplitudes #44
  • Prevent numpy DeprecationWarning for np.bool, np.int and np.float

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 4 years ago

pyTMD - v1.0.2.17

nearest-neighbor extrapolation using KD-Trees
merged convert_julian and convert_calendar_decimal to time module
update date parser for standalone date case with no units
add streaming from bytes for ascii, netCDF4, HDF5, geotiff
add ftp connection check
use standalone ATL11 reader
use sphinx_rtd_theme for documentation
convert some markdown documentation to reStructuredText
updated EOP files to latest versions

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley about 4 years ago

pyTMD - v1.0.2.16

  • added ICESat GLA12 programs computing tides, LPT, OPT, and LPET
  • added ICESat-2 ATL11 programs for tides and LPET
  • added convert ellipsoids for TP to WGS84 to spatial module
  • added nearest-neighbor extrapolation for near-coastal locations
  • updated get_hash to accept bytesio objects
  • updated documentation and jupyter notebooks
  • deprecation updates to fix warnings

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.15

use internal mean pole and finals EOP files

automatic update of leap second, delta time and EOP files

geotiff read and write programs in spatial module

calculate tide scripts can read and write to geotiff

ATL03 and ATL06 long period equilibrium tide programs

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.14

added model constituents from TPXO9-atlas-v3

add ATLAS compact and netCDF testing (v2) modules

use argparse to set parameters

use numpy masked arrays with ATLAS compact grids

update jupyter notebooks for new models

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.13

switching primary branch to main

generalize build opener function for different Earthdata instances

update reduce OTIS files for python3 and projections

adjust dimensions of input coordinates to be iterable

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.12

add spatial program for reading/writing ascii, netCDF and HDF5
generalize LPET, LPT, OPT and tide scripts to use csv, netCDF4 or HDF5
add compute tidal current program that can use csv, netCDF4 or HDF5
use netrc within utilities for backup authentication
add utilities for parsing date strings in form "time-units since yyyy-mm-dd hh:mm:ss"

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.11

replaced griddata with scipy regular grid interpolators
allow small extrapolations with bilinear interpolation
better incorporation of masked arrays in bilinear interpolation
update date conversions in jupyter notebooks
use pyproj2 transformations in jupyter notebooks
add time conversion test program
add ocean load tide test program
add comparison test for FES models
add wrapper function test to perth3 workflow

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.9

added test for GOT models using perth3 outputs from GOT4.7
GOT4.7 tide model data is stored on s3
convert times for FES models to Dynamic time (TT)
add equilibrium tide program
add program for calculating equilibrium tides for Operation IceBridge
reorganize structure to put notebooks in directory

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.7

Added download CATS2008 and read program check
Added comparison with Antarctic tide gauges (AntTG) and RMS values from King et al. (2011)
Updated testing suite to directly call Matlab program through octave (and oct2py)
Will compare the python and matlab versions for most Antarctic station sites
Added macos to testing strategy and upgraded linux tests to 20.04

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago

pyTMD - v1.0.2.6

Adds delta time and leap second downloading from the NASA GSFC CDDIS https server with authentication from NASA Earthdata
updates list of models for OIB and ICESat-2 to include TPX09-atlas-v2
update grid files for TPX09-atlas-v2
use difference in leap seconds in calculate_tide_correction function
update testing routines

Hydrosphere - Ocean and Hydrology Data Access - Python
Published by tsutterley over 4 years ago