eo-tides 0.0.17__py3-none-any.whl → 0.0.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- eo_tides/model.py +90 -49
- eo_tides-0.0.19.dist-info/METADATA +76 -0
- eo_tides-0.0.19.dist-info/RECORD +10 -0
- eo_tides-0.0.17.dist-info/METADATA +0 -55
- eo_tides-0.0.17.dist-info/RECORD +0 -10
- {eo_tides-0.0.17.dist-info → eo_tides-0.0.19.dist-info}/LICENSE +0 -0
- {eo_tides-0.0.17.dist-info → eo_tides-0.0.19.dist-info}/WHEEL +0 -0
- {eo_tides-0.0.17.dist-info → eo_tides-0.0.19.dist-info}/top_level.txt +0 -0
eo_tides/model.py
CHANGED
@@ -9,11 +9,73 @@ import odc.geo.xr
|
|
9
9
|
import pandas as pd
|
10
10
|
import pyproj
|
11
11
|
import pyTMD
|
12
|
+
from pyTMD.io.model import load_database, model
|
12
13
|
from tqdm import tqdm
|
13
14
|
|
14
15
|
from eo_tides.utils import idw
|
15
16
|
|
16
17
|
|
18
|
+
def available_models(directory=None, show_supported=True):
|
19
|
+
"""
|
20
|
+
Prints a list of all tide models available for tide
|
21
|
+
modelling using `eo-tides`.
|
22
|
+
|
23
|
+
This function scans the specified tide model directory
|
24
|
+
for tide models supported by the `pyTMD` package, and
|
25
|
+
prints a list of models that are available in the
|
26
|
+
directory as well as the full list of supported models.
|
27
|
+
|
28
|
+
For instructions on setting up tide models, see:
|
29
|
+
<https://geoscienceaustralia.github.io/eo-tides/setup/>
|
30
|
+
|
31
|
+
Parameters
|
32
|
+
----------
|
33
|
+
directory : str
|
34
|
+
Path to the directory containing tide model files.
|
35
|
+
|
36
|
+
Returns
|
37
|
+
-------
|
38
|
+
available_m : list
|
39
|
+
A list of all available tide models within
|
40
|
+
`directory`.
|
41
|
+
"""
|
42
|
+
# TODO: Pull directory code into re-usable function
|
43
|
+
|
44
|
+
# Set tide modelling files directory. If no custom path is provided,
|
45
|
+
# first try global environmental var, then "/var/share/tide_models"
|
46
|
+
if directory is None:
|
47
|
+
if "EO_TIDES_TIDE_MODELS" in os.environ:
|
48
|
+
directory = os.environ["EO_TIDES_TIDE_MODELS"]
|
49
|
+
else:
|
50
|
+
directory = "/var/share/tide_models"
|
51
|
+
|
52
|
+
# Verify path exists
|
53
|
+
directory = pathlib.Path(directory).expanduser()
|
54
|
+
if not directory.exists():
|
55
|
+
raise FileNotFoundError("Invalid tide directory")
|
56
|
+
|
57
|
+
# Get full list of supported models from the database
|
58
|
+
supported_models = load_database()["elevation"].keys()
|
59
|
+
|
60
|
+
# Print list of supported models, marking available and
|
61
|
+
# unavailable models and appending available to list
|
62
|
+
print(f"Tide models available in `{directory}`:")
|
63
|
+
available_m = []
|
64
|
+
for m in supported_models:
|
65
|
+
try:
|
66
|
+
model(directory=directory).elevation(m=m)
|
67
|
+
# Mark available models with a green tick
|
68
|
+
print(f" ✅ {m}")
|
69
|
+
available_m.append(m)
|
70
|
+
except:
|
71
|
+
if show_supported:
|
72
|
+
# Mark unavailable models with a red cross
|
73
|
+
print(f" ❌ {m}")
|
74
|
+
|
75
|
+
# Return list of available models
|
76
|
+
return available_m
|
77
|
+
|
78
|
+
|
17
79
|
def _model_tides(
|
18
80
|
model,
|
19
81
|
x,
|
@@ -207,16 +269,16 @@ def _model_tides(
|
|
207
269
|
"x": np.repeat(x, time_repeat),
|
208
270
|
"y": np.repeat(y, time_repeat),
|
209
271
|
"tide_model": model,
|
210
|
-
"
|
272
|
+
"tide_height": tide,
|
211
273
|
}).set_index(["time", "x", "y"])
|
212
274
|
|
213
275
|
# Optionally convert outputs to integer units (can save memory)
|
214
276
|
if output_units == "m":
|
215
|
-
tide_df["
|
277
|
+
tide_df["tide_height"] = tide_df.tide_height.astype(np.float32)
|
216
278
|
elif output_units == "cm":
|
217
|
-
tide_df["
|
279
|
+
tide_df["tide_height"] = (tide_df.tide_height * 100).astype(np.int16)
|
218
280
|
elif output_units == "mm":
|
219
|
-
tide_df["
|
281
|
+
tide_df["tide_height"] = (tide_df.tide_height * 1000).astype(np.int16)
|
220
282
|
|
221
283
|
return tide_df
|
222
284
|
|
@@ -261,7 +323,7 @@ def _ensemble_model(
|
|
261
323
|
to ensure that interpolations are performed in the correct CRS.
|
262
324
|
tide_df : pandas.DataFrame
|
263
325
|
DataFrame containing tide model predictions with columns
|
264
|
-
`["time", "x", "y", "
|
326
|
+
`["time", "x", "y", "tide_height", "tide_model"]`.
|
265
327
|
ensemble_models : list
|
266
328
|
A list of models to include in the ensemble modelling process.
|
267
329
|
All values must exist as columns with the prefix "rank_" in
|
@@ -298,7 +360,7 @@ def _ensemble_model(
|
|
298
360
|
pandas.DataFrame
|
299
361
|
DataFrame containing the ensemble model predictions, matching
|
300
362
|
the format of the input `tide_df` (e.g. columns `["time", "x",
|
301
|
-
"y", "
|
363
|
+
"y", "tide_height", "tide_model"]`. By default the 'tide_model'
|
302
364
|
column will be labeled "ensemble" for the combined model
|
303
365
|
predictions (but if a custom dictionary of ensemble functions is
|
304
366
|
provided via `ensemble_func`, each ensemble will be named using
|
@@ -362,7 +424,7 @@ def _ensemble_model(
|
|
362
424
|
# Add temp columns containing weightings and weighted values
|
363
425
|
.assign(
|
364
426
|
weights=ensemble_f, # use custom func to compute weights
|
365
|
-
weighted=lambda i: i.
|
427
|
+
weighted=lambda i: i.tide_height * i.weights,
|
366
428
|
)
|
367
429
|
# Groupby is specified in a weird order here as this seems
|
368
430
|
# to be the easiest way to preserve correct index sorting
|
@@ -374,7 +436,7 @@ def _ensemble_model(
|
|
374
436
|
# Calculate weighted mean and convert back to dataframe
|
375
437
|
grouped.weighted.sum()
|
376
438
|
.div(grouped.weights.sum())
|
377
|
-
.to_frame("
|
439
|
+
.to_frame("tide_height")
|
378
440
|
# Label ensemble model and ensure indexes are in expected order
|
379
441
|
.assign(tide_model=ensemble_n)
|
380
442
|
.reorder_levels(["time", "x", "y"], axis=0)
|
@@ -405,47 +467,25 @@ def model_tides(
|
|
405
467
|
ensemble_models=None,
|
406
468
|
**ensemble_kwargs,
|
407
469
|
):
|
408
|
-
"""
|
470
|
+
"""
|
471
|
+
Compute tide heights from multiple tide models and for
|
472
|
+
multiple coordinates and/or timesteps.
|
409
473
|
|
410
|
-
This function
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
474
|
+
This function is parallelised to improve performance, and
|
475
|
+
supports all tidal models supported by `pyTMD`, including:
|
476
|
+
|
477
|
+
- Empirical Ocean Tide model (`EOT20`)
|
478
|
+
- Finite Element Solution tide models (`FES2022`, `FES2014`, `FES2012`)
|
479
|
+
- TOPEX/POSEIDON global tide models (`TPXO10`, `TPXO9`, `TPXO8`)
|
480
|
+
- Global Ocean Tide models (`GOT5.6`, `GOT5.5`, `GOT4.10`, `GOT4.8`, `GOT4.7`)
|
481
|
+
- Hamburg direct data Assimilation Methods for Tides models (`HAMTIDE11`)
|
415
482
|
|
416
483
|
This function requires access to tide model data files.
|
417
484
|
These should be placed in a folder with subfolders matching
|
418
|
-
the
|
485
|
+
the structure required by `pyTMD`. For more details:
|
486
|
+
<https://geoscienceaustralia.github.io/eo-tides/setup/>
|
419
487
|
<https://pytmd.readthedocs.io/en/latest/getting_started/Getting-Started.html#directories>
|
420
488
|
|
421
|
-
For FES2014 (<https://www.aviso.altimetry.fr/es/data/products/auxiliary-products/global-tide-fes/description-fes2014.html>):
|
422
|
-
|
423
|
-
- `{directory}/fes2014/ocean_tide/`
|
424
|
-
|
425
|
-
For FES2022 (<https://www.aviso.altimetry.fr/en/data/products/auxiliary-products/global-tide-fes.html>):
|
426
|
-
|
427
|
-
- `{directory}/fes2022b/ocean_tide/`
|
428
|
-
|
429
|
-
For TPXO8-atlas (<https://www.tpxo.net/tpxo-products-and-registration>):
|
430
|
-
|
431
|
-
- `{directory}/tpxo8_atlas/`
|
432
|
-
|
433
|
-
For TPXO9-atlas-v5 (<https://www.tpxo.net/tpxo-products-and-registration>):
|
434
|
-
|
435
|
-
- `{directory}/TPXO9_atlas_v5/`
|
436
|
-
|
437
|
-
For EOT20 (<https://www.seanoe.org/data/00683/79489/>):
|
438
|
-
|
439
|
-
- `{directory}/EOT20/ocean_tides/`
|
440
|
-
|
441
|
-
For GOT4.10c (<https://earth.gsfc.nasa.gov/geo/data/ocean-tide-models>):
|
442
|
-
|
443
|
-
- `{directory}/GOT4.10c/grids_oceantide_netcdf/`
|
444
|
-
|
445
|
-
For HAMTIDE (<https://www.cen.uni-hamburg.de/en/icdc/data/ocean/hamtide.html>):
|
446
|
-
|
447
|
-
- `{directory}/hamtide/`
|
448
|
-
|
449
489
|
This function is a modification of the `pyTMD` package's
|
450
490
|
`compute_tide_corrections` function. For more info:
|
451
491
|
<https://pytmd.readthedocs.io/en/stable/user_guide/compute_tide_corrections.html>
|
@@ -514,9 +554,10 @@ def model_tides(
|
|
514
554
|
want to model tides for a specific list of timesteps across
|
515
555
|
multiple spatial points (e.g. for the same set of satellite
|
516
556
|
acquisition times at various locations across your study area).
|
517
|
-
- "one-to-one": Model tides using a
|
518
|
-
x and y
|
557
|
+
- "one-to-one": Model tides using a unique timestep for each
|
558
|
+
set of x and y coordinates. In this mode, the number of x and
|
519
559
|
y points must equal the number of timesteps provided in "time".
|
560
|
+
|
520
561
|
parallel : boolean, optional
|
521
562
|
Whether to parallelise tide modelling using `concurrent.futures`.
|
522
563
|
If multiple tide models are requested, these will be run in
|
@@ -538,7 +579,7 @@ def model_tides(
|
|
538
579
|
for millimetres.
|
539
580
|
output_format : str, optional
|
540
581
|
Whether to return the output dataframe in long format (with
|
541
|
-
results stacked vertically along "tide_model" and "
|
582
|
+
results stacked vertically along "tide_model" and "tide_height"
|
542
583
|
columns), or wide format (with a column for each tide model).
|
543
584
|
Defaults to "long".
|
544
585
|
ensemble_models : list, optional
|
@@ -734,7 +775,7 @@ def model_tides(
|
|
734
775
|
if output_format == "wide":
|
735
776
|
# Pivot into wide format with each time model as a column
|
736
777
|
print("Converting to a wide format dataframe")
|
737
|
-
tide_df = tide_df.pivot(columns="tide_model", values="
|
778
|
+
tide_df = tide_df.pivot(columns="tide_model", values="tide_height")
|
738
779
|
|
739
780
|
# If in 'one-to-one' mode, reindex using our input time/x/y
|
740
781
|
# values to ensure the output is sorted the same as our inputs
|
@@ -812,7 +853,7 @@ def _pixel_tides_resample(
|
|
812
853
|
how=ds.odc.geobox,
|
813
854
|
chunks=dask_chunks,
|
814
855
|
resampling=resample_method,
|
815
|
-
).rename("
|
856
|
+
).rename("tide_height")
|
816
857
|
|
817
858
|
# Optionally process and load into memory with Dask
|
818
859
|
if dask_compute:
|
@@ -1064,7 +1105,7 @@ def pixel_tides(
|
|
1064
1105
|
.set_index("tide_model", append=True)
|
1065
1106
|
# Convert to xarray and select our tide modelling xr.DataArray
|
1066
1107
|
.to_xarray()
|
1067
|
-
.
|
1108
|
+
.tide_height
|
1068
1109
|
# Re-index and transpose into our input coordinates and dim order
|
1069
1110
|
.reindex_like(rescaled_ds)
|
1070
1111
|
.transpose("tide_model", "time", y_dim, x_dim)
|
@@ -0,0 +1,76 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: eo-tides
|
3
|
+
Version: 0.0.19
|
4
|
+
Summary: Tide modelling tools for large-scale satellite earth observation analysis
|
5
|
+
Author-email: Robbi Bishop-Taylor <Robbi.BishopTaylor@ga.gov.au>
|
6
|
+
Project-URL: Homepage, https://GeoscienceAustralia.github.io/eo-tides/
|
7
|
+
Project-URL: Repository, https://github.com/GeoscienceAustralia/eo-tides
|
8
|
+
Project-URL: Documentation, https://GeoscienceAustralia.github.io/eo-tides/
|
9
|
+
Keywords: python
|
10
|
+
Requires-Python: >=3.9
|
11
|
+
Description-Content-Type: text/markdown
|
12
|
+
License-File: LICENSE
|
13
|
+
Requires-Dist: geopandas >=1.0.0
|
14
|
+
Requires-Dist: numpy
|
15
|
+
Requires-Dist: odc-geo[xr]
|
16
|
+
Requires-Dist: pandas
|
17
|
+
Requires-Dist: pyproj
|
18
|
+
Requires-Dist: pyTMD ==2.1.6
|
19
|
+
Requires-Dist: scikit-learn
|
20
|
+
Requires-Dist: scipy
|
21
|
+
Requires-Dist: shapely
|
22
|
+
Requires-Dist: tqdm
|
23
|
+
Provides-Extra: notebooks
|
24
|
+
Requires-Dist: odc-stac ; extra == 'notebooks'
|
25
|
+
Requires-Dist: pystac-client ; extra == 'notebooks'
|
26
|
+
Requires-Dist: folium ; extra == 'notebooks'
|
27
|
+
Requires-Dist: matplotlib ; extra == 'notebooks'
|
28
|
+
|
29
|
+
# `eo-tides:` Tide modelling tools for large-scale satellite earth observation analysis
|
30
|
+
|
31
|
+
[](https://pypi.org/project/eo-tides/)
|
32
|
+
[](https://github.com/GeoscienceAustralia/eo-tides/actions/workflows/main.yml?query=branch%3Amain)
|
33
|
+
[](https://codecov.io/gh/GeoscienceAustralia/eo-tides)
|
34
|
+
[](https://img.shields.io/github/commit-activity/m/GeoscienceAustralia/eo-tides)
|
35
|
+
[](https://img.shields.io/github/license/GeoscienceAustralia/eo-tides)
|
36
|
+
|
37
|
+
- **Github repository**: <https://github.com/GeoscienceAustralia/eo-tides/>
|
38
|
+
- **Documentation** <https://GeoscienceAustralia.github.io/eo-tides/>
|
39
|
+
|
40
|
+
> [!CAUTION]
|
41
|
+
> This package is a work in progress, and not currently ready for operational use.
|
42
|
+
|
43
|
+
The `eo-tides` package provides powerful, parallelized tools for seamlessly integrating satellite Earth observation data with tide modelling.
|
44
|
+
|
45
|
+
`eo-tides` combines advanced tide modelling functionality from the [`pyTMD`](https://pytmd.readthedocs.io/en/latest/) package and integrates it with [`pandas`](https://pandas.pydata.org/docs/index.html), [`xarray`](https://docs.xarray.dev/en/stable/) and [`odc-geo`](https://odc-geo.readthedocs.io/en/latest/), providing a suite of flexible tools for efficient analysis of coastal and ocean earth observation data – from regional, continental, to global scale.
|
46
|
+
|
47
|
+
These tools can be applied to petabytes of freely available satellite data (e.g. from [Digital Earth Australia](https://knowledge.dea.ga.gov.au/) or [Microsoft Planetary Computer](https://planetarycomputer.microsoft.com/)) loaded via Open Data Cube's [`odc-stac`](https://odc-stac.readthedocs.io/en/latest/) or [`datacube`](https://opendatacube.readthedocs.io/en/latest/) packages, supporting coastal and ocean earth observation analysis for any time period or location globally.
|
48
|
+
|
49
|
+
## Highlights
|
50
|
+
|
51
|
+
- 🌊 Model tides from multiple global ocean tide models in parallel, and return tide heights in standardised `pandas.DataFrame` format for further analysis
|
52
|
+
- 🛰️ "Tag" satellite data with tide height and stage based on the exact moment of image acquisition
|
53
|
+
- 🌐 Model tides for every individual satellite pixel, producing three-dimensional "tide height" `xarray`-format datacubes that can be combined with satellite data
|
54
|
+
- 🎯 Combine multiple tide models into a single locally-optimised "ensemble" model informed by satellite altimetry and satellite-observed patterns of tidal inundation
|
55
|
+
- 📈 Calculate statistics describing local tide dynamics, as well as biases caused by interactions between tidal processes and satellite orbits
|
56
|
+
- 🛠️ Validate modelled tides using measured sea levels from coastal tide gauges (e.g. [GESLA Global Extreme Sea Level Analysis](https://gesla.org/))
|
57
|
+
|
58
|
+
## Supported tide models
|
59
|
+
|
60
|
+
`eo-tides` supports [all ocean tide models supported by `pyTMD`](https://pytmd.readthedocs.io/en/latest/getting_started/Getting-Started.html#model-database). These include:
|
61
|
+
|
62
|
+
- [Empirical Ocean Tide model](https://doi.org/10.5194/essd-13-3869-2021) (`EOT20`)
|
63
|
+
- [Finite Element Solution tide models](https://doi.org/10.5194/os-2020-96) (`FES2022`, `FES2014`, `FES2012`)
|
64
|
+
- [TOPEX/POSEIDON global tide models](https://www.tpxo.net/global) (`TPXO10`, `TPXO9`, `TPXO8`)
|
65
|
+
- [Global Ocean Tide models](https://doi.org/10.1002/2016RG000546) (`GOT5.6`, `GOT5.5`, `GOT4.10`, `GOT4.8`, `GOT4.7`)
|
66
|
+
- [Hamburg direct data Assimilation Methods for Tides models](https://doi.org/10.1002/2013JC009766) (`HAMTIDE11`)
|
67
|
+
|
68
|
+
For instructions on how to set up these models for use in `eo-tides`, refer to [Setting up tide models](https://geoscienceaustralia.github.io/eo-tides/setup/).
|
69
|
+
|
70
|
+
## Citing `eo-tides`
|
71
|
+
|
72
|
+
To cite `eo-tides` in your work, please use the following citation:
|
73
|
+
|
74
|
+
```
|
75
|
+
Bishop-Taylor, R., Sagar, S., Phillips, C., & Newey, V. (2024). eo-tides: Tide modelling tools for large-scale satellite earth observation analysis [Computer software]. https://github.com/GeoscienceAustralia/eo-tides
|
76
|
+
```
|
@@ -0,0 +1,10 @@
|
|
1
|
+
eo_tides/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
eo_tides/model.py,sha256=yPUioASD8_Ikm5PDdtK4DzxbzAYLeBw7HZ9v4Ol6MJk,45393
|
3
|
+
eo_tides/stats.py,sha256=Lzo46pWUhox3ZUnMLtyLzqZ9FrCNG6nJ6iS5IpqEsy8,158
|
4
|
+
eo_tides/utils.py,sha256=l9VXJawQzaRBYaFMsP8VBeaN5VA3rFDdzcvF7Rk04Vc,5620
|
5
|
+
eo_tides/validation.py,sha256=kpYGHOeK-YP11c3tHt9l5_8IvOHF1SAJP79PXA7i-Vs,11434
|
6
|
+
eo_tides-0.0.19.dist-info/LICENSE,sha256=NYULqbFuDRV6CysPbkR2WZk863YwwHeftBtnsb4cWf8,1077
|
7
|
+
eo_tides-0.0.19.dist-info/METADATA,sha256=e1Wl1lCXvOvCp0U6smxXzU2nUEs0QtxSUGoYkmxfBV4,5335
|
8
|
+
eo_tides-0.0.19.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
9
|
+
eo_tides-0.0.19.dist-info/top_level.txt,sha256=lXZDUUM1DlLdKWHRn8zdmtW8Rx-eQOIWVvt0b8VGiyQ,9
|
10
|
+
eo_tides-0.0.19.dist-info/RECORD,,
|
@@ -1,55 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: eo-tides
|
3
|
-
Version: 0.0.17
|
4
|
-
Summary: Tide modelling tools for large-scale satellite earth observation analysis
|
5
|
-
Author-email: Robbi Bishop-Taylor <Robbi.BishopTaylor@ga.gov.au>
|
6
|
-
Project-URL: Homepage, https://GeoscienceAustralia.github.io/eo-tides/
|
7
|
-
Project-URL: Repository, https://github.com/GeoscienceAustralia/eo-tides
|
8
|
-
Project-URL: Documentation, https://GeoscienceAustralia.github.io/eo-tides/
|
9
|
-
Keywords: python
|
10
|
-
Requires-Python: >=3.9
|
11
|
-
Description-Content-Type: text/markdown
|
12
|
-
License-File: LICENSE
|
13
|
-
Requires-Dist: geopandas >=1.0.0
|
14
|
-
Requires-Dist: numpy
|
15
|
-
Requires-Dist: odc-geo[xr]
|
16
|
-
Requires-Dist: pandas
|
17
|
-
Requires-Dist: pyproj
|
18
|
-
Requires-Dist: pyTMD ==2.1.6
|
19
|
-
Requires-Dist: scikit-learn
|
20
|
-
Requires-Dist: scipy
|
21
|
-
Requires-Dist: shapely
|
22
|
-
Requires-Dist: tqdm
|
23
|
-
Provides-Extra: notebooks
|
24
|
-
Requires-Dist: odc-stac ; extra == 'notebooks'
|
25
|
-
Requires-Dist: pystac-client ; extra == 'notebooks'
|
26
|
-
Requires-Dist: folium ; extra == 'notebooks'
|
27
|
-
Requires-Dist: matplotlib ; extra == 'notebooks'
|
28
|
-
|
29
|
-
# `eo-tides:` Tide modelling tools for large-scale satellite earth observation analysis
|
30
|
-
|
31
|
-
[](https://pypi.org/project/eo-tides/)
|
32
|
-
[](https://github.com/GeoscienceAustralia/eo-tides/actions/workflows/main.yml?query=branch%3Amain)
|
33
|
-
[](https://codecov.io/gh/GeoscienceAustralia/eo-tides)
|
34
|
-
[](https://img.shields.io/github/commit-activity/m/GeoscienceAustralia/eo-tides)
|
35
|
-
[](https://img.shields.io/github/license/GeoscienceAustralia/eo-tides)
|
36
|
-
|
37
|
-
- **Github repository**: <https://github.com/GeoscienceAustralia/eo-tides/>
|
38
|
-
- **Documentation** <https://GeoscienceAustralia.github.io/eo-tides/>
|
39
|
-
|
40
|
-
> [!CAUTION]
|
41
|
-
> This package is a work in progress, and not currently ready for operational use.
|
42
|
-
|
43
|
-
The `eo-tides` package provides tools for analysing coastal and ocean satellite earth observation data using information about ocean tides.
|
44
|
-
|
45
|
-
`eo-tides` combines advanced tide modelling functionality from the [`pyTMD`](https://pytmd.readthedocs.io/en/latest/) package and integrates it with `pandas`, `xarray` and `odc-geo` to provide a powerful set of tools for integrating satellite imagery with tide data.
|
46
|
-
|
47
|
-
Some key functionality includes the ability to:
|
48
|
-
|
49
|
-
- Model tides from multiple global ocean tide models (e.g. FES2022, FES2014, TPXO9, EOT20 and many more) in parallel, and return tide heights in standardised `pandas.DataFrame` format for further analysis
|
50
|
-
- "Tag" satellite data timeseries with tide data based on the exact moment of each satellite acquisition
|
51
|
-
- Model tides for every individual satellite pixel, producing three-dimensional "tide height" `xarray`-format datacubes that can be combined with satellite data
|
52
|
-
- Calculate statistics describing local tide dynamics, as well as biases caused by interactions between tidal processes and satellite orbits
|
53
|
-
- Validate modelled tides using measured sea levels from coastal tide gauges
|
54
|
-
|
55
|
-
These tools can be applied directly to petabytes of freely available satellite data (e.g. from Digital Earth Australia or Microsoft Planetary Computer) loaded via Open Data Cube's `odc-stac` or `datacube` packages, supporting coastal and ocean earth observation analysis for any time period or location globally.
|
eo_tides-0.0.17.dist-info/RECORD
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
eo_tides/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
eo_tides/model.py,sha256=Gx8oUAyo5kzyl7SZhqzS2QlnblXkubr_Wn2NijYzUlc,43811
|
3
|
-
eo_tides/stats.py,sha256=Lzo46pWUhox3ZUnMLtyLzqZ9FrCNG6nJ6iS5IpqEsy8,158
|
4
|
-
eo_tides/utils.py,sha256=l9VXJawQzaRBYaFMsP8VBeaN5VA3rFDdzcvF7Rk04Vc,5620
|
5
|
-
eo_tides/validation.py,sha256=kpYGHOeK-YP11c3tHt9l5_8IvOHF1SAJP79PXA7i-Vs,11434
|
6
|
-
eo_tides-0.0.17.dist-info/LICENSE,sha256=NYULqbFuDRV6CysPbkR2WZk863YwwHeftBtnsb4cWf8,1077
|
7
|
-
eo_tides-0.0.17.dist-info/METADATA,sha256=G8PxvP4subHP1pg6uZkAYGfmItfsjWepEWs32q9ra9w,3593
|
8
|
-
eo_tides-0.0.17.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
9
|
-
eo_tides-0.0.17.dist-info/top_level.txt,sha256=lXZDUUM1DlLdKWHRn8zdmtW8Rx-eQOIWVvt0b8VGiyQ,9
|
10
|
-
eo_tides-0.0.17.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|