Changelog¶
0.10.1 - 2025-10-22¶
What's Changed¶
- Only include Python code in build to reduce package size by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/137
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.10.0...0.10.1
0.10.0 - 2025-10-20¶
What's Changed¶
- Add new
tag_timeseriesfunction for tagging satellite data with external timeseries data. This function is designed to take a 1D timeseries of tide heights or water levels, and map these back to each satellite observation timestep. This can be used to tag satellite data with observed tides, instead of tides modelled using global tide models. https://github.com/GeoscienceAustralia/eo-tides/pull/134
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.9.2...0.10.0
0.9.2 - 2025-10-07¶
What's Changed¶
- Update validation code and notebook examples in https://github.com/GeoscienceAustralia/eo-tides/pull/132
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.9.1...0.9.2
0.9.1 - 2025-10-02¶
What's Changed¶
- Move STAC loading package dependencies to default requirements in https://github.com/GeoscienceAustralia/eo-tides/pull/130
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.9.0...0.9.1
0.9.0 - 2025-10-01¶
What's Changed¶
This release adds new functionality for loading satellite data using STAC metadata, and for ranking tide model performance based on their correlation with satell-observed patterns of inundation. For more information, see:
- https://geoscienceaustralia.github.io/eo-tides/api/#eo_tides.validation.tide_correlation
- https://geoscienceaustralia.github.io/eo-tides/api/#eo_tides.stac.stac_load
- https://geoscienceaustralia.github.io/eo-tides/api/#eo_tides.stac.load_ndwi_mpc
Jupyter Notebook example: https://geoscienceaustralia.github.io/eo-tides/notebooks/Validating_tides/#tide-correlation-model-rankings
New features¶
- Add NDWI-tide correlation function and STAC data loading tools in https://github.com/GeoscienceAustralia/eo-tides/pull/87
- Support STAC loading data by bounding box, geopolygon, Shapely, GeoPandas, GeoJSON in https://github.com/GeoscienceAustralia/eo-tides/pull/126
- Update tide correlation code, add support for masking to STAC functions by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/128
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.8.3...0.9.0
0.8.3 - 2025-09-16¶
What's Changed¶
New features¶
- Add support for GESLA 4 tide gauge dataset in
validation.pyby @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/123
Other changes¶
- Minor fix to validation error format by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/121
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.8.2...0.8.3
0.8.2 - 2025-08-18¶
What's Changed¶
Breaking changes¶
- Refactor
tide_aliasingfunction to useconstituentparam name instead ofc, use a list of default major tide constituents frompyTMD, remove "type" column, and set a 10 year default max on period values by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/118
Bug fixes¶
- Fix bug with specifying custom list of constituents in #117 by upgrading
pyTMD
Other changes¶
- Add spell check to pre-commit, minor formatting updates by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/116
- Minor updates and upgrades to tests and
ruff,uvversions by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/118
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.8.1...0.8.2
0.8.1 - 2025-07-17¶
What's Changed¶
Other changes¶
- Add new EO satellite tide aliasing function for evaluating potential temporal biases in EO analyses in https://github.com/GeoscienceAustralia/eo-tides/pull/113
- Add
jupyterto notebook optional dependencies to make Jupyter Notebooks easier to run in https://github.com/GeoscienceAustralia/eo-tides/pull/112
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.8.0...0.8.1
0.8.0 - 2025-06-24¶
What's Changed¶
This release provides new functionality to customise tide modelling:
- A new
extra_databasesparameter to model tides using models that are not natively supported bypyTMD, accepting custom tide model databases in either Python dictionary or JSON file format - A new
constituentsparameter to restrict tide modelling to a custom subset of harmonic constituents
For example, to model tides using a custom EOT20_custom tide model:
import pandas as pd
from eo_tides.model import model_tides
custom_db_dict = {
"elevation": {
"EOT20_custom": {
"format": "FES-netcdf",
"model_file": [
"EOT20/ocean_tides/2N2_ocean_eot20.nc",
"EOT20/ocean_tides/J1_ocean_eot20.nc",
"EOT20/ocean_tides/K1_ocean_eot20.nc",
"EOT20/ocean_tides/K2_ocean_eot20.nc",
"EOT20/ocean_tides/M2_ocean_eot20.nc",
"EOT20/ocean_tides/M4_ocean_eot20.nc",
"EOT20/ocean_tides/MF_ocean_eot20.nc",
"EOT20/ocean_tides/MM_ocean_eot20.nc",
"EOT20/ocean_tides/N2_ocean_eot20.nc",
"EOT20/ocean_tides/O1_ocean_eot20.nc",
"EOT20/ocean_tides/P1_ocean_eot20.nc",
"EOT20/ocean_tides/Q1_ocean_eot20.nc",
"EOT20/ocean_tides/S1_ocean_eot20.nc",
"EOT20/ocean_tides/S2_ocean_eot20.nc",
"EOT20/ocean_tides/SA_ocean_eot20.nc",
"EOT20/ocean_tides/SSA_ocean_eot20.nc",
"EOT20/ocean_tides/T2_ocean_eot20.nc"
],
"name": "EOT20_custom",
"reference": "https://doi.org/10.17882/79489",
"scale": 0.01,
"type": "z",
"variable": "tide_ocean",
"version": "EOT20"
}
}
}
model_tides(
x=148,
y=-16,
time=pd.date_range("2022-01-01", "2023-12-31", freq="1h"),
model=["EOT20_custom", "EOT20"],
directory="/var/share/tide_models/",
extra_databases=custom_db_dict,
output_format="wide",
)
New features¶
- Support custom tide models by passing in extra tide model databases by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/105
- Support customising constituents during tide modelling by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/108
Other changes¶
- Major Ruff refactor by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/108
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.7.5...0.8.0
0.7.5 - 2025-06-23¶
What's Changed¶
Minor update to remove Dask pin now that Dask compatability issue has been solved in odc-stac
Documentation updates¶
- Fix unlinked URLs in changelog by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/103
Other changes¶
- Remove dask pin to close #76 by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/106
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.7.4...0.7.5
0.7.4 - 2025-05-30¶
What's Changed¶
New features¶
- Add version attribute to init file by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/98
Documentation updates¶
- Fix capitalisation in JOSS paper bibliography by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/97
- Update suggested citation to use new JOSS paper citation by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/100
Other changes¶
- Update PR labelling and release template by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/99
- Reformat code with additional
rufflinting rules by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/101
New Contributors¶
- @github-actions made their first contribution in https://github.com/GeoscienceAustralia/eo-tides/pull/96
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.7.3...0.7.4
0.7.3 - 2025-05-22¶
Changes¶
- Use dynamic version handling via
hatch-vcs, add automatic changelog update action by @robbibt in https://github.com/GeoscienceAustralia/eo-tides/pull/95 - Bump the python-deps group with 2 updates by @dependabot in https://github.com/GeoscienceAustralia/eo-tides/pull/94
Full Changelog: https://github.com/GeoscienceAustralia/eo-tides/compare/0.7.2...0.7.3
0.7.2 - 2025-05-19¶
New features¶
- Minor updates to improve documentation around accessing GESLA 3.0 tide gauge data,
- Made validation functions more re-usable by removing hard-coded paths and adding helpful error messages.
0.7.1 - 2025-05-19¶
Minor update to package dependencies
0.7.0 - 2025-05-14¶
New features¶
- This version corresponds to the code archived as part of Journal of Open Source Software publication. No new features introduced.
0.6.5 - 2025-05-08¶
New features¶
- Support for
pyTMDversions 2.2.3 and 2.2.4
0.6.4 - 2025-02-31¶
New features¶
- Updated installation documentation to improve reproducibility
Bug fixes¶
- Temporarily pinned Dask to avoid
odc-geoandodc-stacerrors
0.6.3 - 2025-03-20¶
New features¶
- Major updates to installation and setup documentation, to provide additional context about tide modelling data and installing
eo-tidesusing bothpipanduv
Bug fixes¶
- Fixed bug where ensemble tide modelling used excessive memory, by ensuring dtype of ensemble modelled tides matches dtype of input modelled tides (#70)
- Added missing
daskdependency to requirements (#68)
0.6.2 - 2025-02-25¶
New features¶
- Added
apply_nodeparameteter tomodel_tidesto applypyTMD's adjustments to harmonic constituents to allow for periodic modulations over the 18.6-year nodal period (lunar nodal tide). Default is False.
Bug fixes¶
- Further fixes for bug causing tide model clipping with
clip_tidesto fail for bounding boxes completely west of the prime meridian (#50); default value forcropparam is now"auto"instead ofTrue.
0.6.1 - 2025-02-20¶
Bug fixes¶
- Fixed bug causing tide model clipping with
clip_tidesto fail for bounding boxes completely west of the prime meridian (#50)
0.6.0 - 2025-02-11¶
New features¶
- Added
return_phasesparameter toeo_tides.eo.tag_tides, which will return a dataframe containing tide phase information for each satellite observation - Added support for Technical University of Denmark tide models (DTU23)
- Minor docs improvements, updates for new FES2022 data format
0.5.0 - 2025-01-17¶
New features¶
- Added draft version of a Journal of Open Source Software paper
- Added benchmarking notebook that compares performance with parallelisation on and off
Bug fixes¶
- Fix documentation to point to correct location of
list_modelsfunction (e.g.eo_tides.utils.list_models)
Breaking changes¶
- Removed Python 3.9 support
- Added Python 3.13 support
0.4.0 - 2025-12-21¶
New features¶
-
Publishes ensemble tide modelling code for combining multiple global ocean tide models into a single locally optimised ensemble tide model using external model ranking data (e.g. satellite altimetry or NDWI-tide correlations along the coastline).
-
Update ensemble code to latest version that includes FES2022, GOT5.6 and TPXO10 tide models
- Make ensemble model calculation function a top level function (i.e. rename from
_ensemble_modeltoensemble_tides) -
Load tide model ranking points from external
flatgeobufformat file for faster cloud access -
Major refactor to statistics functions to standardise code across both
pixel_statsandtide_statsand add support for multiple models -
tide_statswill now return apandas.Seriesif one model is requested, and apandas.DataFrameif multiple are requested -
Added a new
point_colparameter totide_statsto control the colour of plotted points. Ifplot_varis also provided, points will now be coloured differently by default. -
Added a new
crop_bufferparameter to configure buffer distance when cropping model files withcrop=True(defaults to 5 degrees) -
Reorder
model_tidesparameters to provide more logical flow and move more common params likemode,output_formatandoutput_unitshigher
Bug fixes¶
- Fix warnings from
load_gauge_geslafunction
Breaking changes¶
- The
plot_colparameter fromtide_statshas been renamed toplot_var
0.3.1 - 2024-11-15¶
New features¶
- Add new "all" option to
modelparam inmodel_tides,pixel_tidesetc, which will model tides using all available tide models in your provideddirectory.
Bug fixes¶
- Fix bug where GOT5.6 was not detected as a valid model because it contains files in multiple directories (e.g. both "GOT5.6" and "GOT5.5"). This also affected clipping GOT5.6 data using the
eo_tides.utils.clip_modelsfunction.
0.3.0 - 2024-11-11¶
New features¶
- Added new
eo_tides.utils.clip_modelsfunction for clipping tide models to a smaller spatial extent. This can have a major positive impact on performance, sometimes producing more than a 10 x speedup. This function identifies all NetCDF-format tide models in a given input directory, including "ATLAS-netcdf" (e.g.TPXO9-atlas-nc), "FES-netcdf" (e.g.FES2022,EOT20), and "GOT-netcdf" (e.g.GOT5.5) format files. Files for each model are then clipped to the extent of the provided bounding box, handling model-specific file structures. After each model is clipped, the result is exported to the output directory and verified withpyTMDto ensure the clipped data is suitable for tide modelling.
Major changes¶
- The
parallel_splitsparameter that controls the number of chunks data is broken into for parallel analysis has been refactored to use a new default of "auto". This now attempts to automatically determine a sensible value based on available CPU, number of points, and number of models being run. All CPUs will be used where possible, unless this will produce splits with less than 1000 points in each (which would increase overhead). Parallel splits will be reduced if multiple models are requested, as these are run in parallel too and will compete for the same resources. - Changed the default interpolation
methodfrom "spline" to "linear". This appears to produce the same results, but works considerably faster. - Updates to enable correct cropping, recently resolved in PyTMD 2.1.8
Breaking changes¶
- The
list_modelsfunction has been relocated toeo_tides.utils(fromeo_tides.model)
0.2.0 - 2024-10-30¶
New features¶
- New
model_phasesfunction for calculating tidal phases ("low-flow", high-flow", "high-ebb", "low-ebb") for each tide height in a timeseries. Ebb and low phases are calculated by running theeo_tides.model.model_tidesfunction twice, once for the requested timesteps, and again after subtracting a small time offset (by default, 15 minutes). If tides increased over this period, they are assigned as "flow"; if they decreased, they are assigned as "ebb". Tides are considered "high" if equal or greater than 0 metres tide height, otherwise "low". - Major refactor to use consistent input parameters across all EO focused functions: input can now be either
xr.DataArrayorxr.Datasetorodc.geo.geobox.GeoBox; if an xarray object is passed, it must have a"time"dimension; if GeoBox is passed, time must be provided by thetimeparameter. timeparameters now accept any format that can be converted bypandas.to_datetime(); e.g. np.ndarray[datetime64], pd.DatetimeIndex, pd.Timestamp, datetime.datetime and strings (e.g. "2020-01-01 23:00").model_tidesnow uses default cropping approach frompyTMD, rather than applying a bespoke 1 degree buffer around the selected analysis areamodel_tidesrefactored to use simpler approach to loading tide consistuents enabled inpyTMD==2.1.7
Breaking changes¶
- The
dsparam in all satellite data functions (tag_tides,pixel_tides,tide_stats,pixel_tides) has been renamed to a more generic namedata(to account for now accepting eitherxarray.Dataset,xarray.DataArrayor aodc.geo.geobox.GeoBoxinputs).
0.1.0 - 2024-10-18¶
New features¶
- Initial creation of
eo-tidesrepo
Breaking changes¶
See Migrating from DEA Tools for a guide to updating your code from the original Digital Earth Australia Notebooks and Tools repository.