Skip to content

Releases: tsutterley/pyTMD

v2.1.8

07 Nov 23:39
Compare
Choose a tag to compare

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: 2.1.7...2.1.8

v2.1.7

16 Oct 16:01
640c42f
Compare
Choose a tag to compare

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: 2.1.6...2.1.7

v2.1.6

10 Sep 20:08
1f51f2a
Compare
Choose a tag to compare

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: 2.1.5...2.1.6

v2.1.5

30 Aug 16:18
Compare
Choose a tag to compare

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: 2.1.4...2.1.5

v2.1.4

23 Jul 01:07
Compare
Choose a tag to compare

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: 2.1.3...2.1.4

v2.1.3

17 Jul 21:44
Compare
Choose a tag to compare

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: 2.1.2...2.1.3

v2.1.2

11 Jul 19:50
Compare
Choose a tag to compare

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: 2.1.1...2.1.2

v2.1.1

04 Apr 23:35
Compare
Choose a tag to compare

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: 2.1.0...2.1.1

v2.1.0

13 Jan 22:25
Compare
Choose a tag to compare

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: 2.0.9...2.1.0

v2.0.9

15 Nov 16:51
Compare
Choose a tag to compare

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:

  • fix: scaling factors for TPXO9-atlas currents for #241 (#243)
  • refactor: renamed tidal ellipse function (#243)
  • refactor: renamed constituent parameters function (#243)
  • refactor: renamed check tide model points function (#243)
  • feat: can read from netCDF4 or HDF5 variable groups (#249)
  • fix: spelling mistakes (#249)
  • feat: add generic wrapper function for reading ATLAS constituents (#250)
  • feat: can write datetime as time column for csv files (#252)
  • fix: replace deprecated pkg_resources with importlib (#256)

Full Changelog: 2.0.8...2.0.9