eo-tides 0.6.5.dev11__tar.gz → 0.6.5.dev12__tar.gz
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-0.6.5.dev11 → eo_tides-0.6.5.dev12}/PKG-INFO +2 -2
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/pyproject.toml +2 -2
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/test_eo.py +14 -6
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/test_model.py +19 -13
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/test_stats.py +21 -9
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/testing.ipynb +73 -8
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/uv.lock +1782 -1784
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.editorconfig +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/actions/setup-python-env/action.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/dependabot.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/workflows/check-links.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/workflows/main.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/workflows/on-release-main.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.github/workflows/paper.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.gitignore +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/.pre-commit-config.yaml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/CITATION.cff +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/CONTRIBUTING.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/Dockerfile +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/LICENSE +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/Makefile +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/README.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/codecov.yaml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/api.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/dtu23_download.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/eo-tides-abstract.gif +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/eo-tides-logo-128.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/eo-tides-logo-256.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/eo-tides-logo.gif +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/eo-tides-logo.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/eot20_download.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/fes_ftp.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/fes_myproducts.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/fes_productselection.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/fes_subscriptions.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/got_download.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/tide_models_clipped.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/assets/tpxo_download.jpg +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/changelog.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/credits.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/index.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/install.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/migration.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/notebooks/Case_study_intertidal.ipynb +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/notebooks/Model_tides.ipynb +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/notebooks/Satellite_data.ipynb +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/notebooks/Tide_statistics.ipynb +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/notebooks/Validating_tides.ipynb +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/setup.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/docs/stylesheets/extra.css +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/eo_tides/__init__.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/eo_tides/eo.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/eo_tides/model.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/eo_tides/stats.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/eo_tides/utils.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/eo_tides/validation.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/mkdocs.yml +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/benchmarking.ipynb +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/figures/joss_abstract.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/figures/joss_fig_gesla.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/figures/joss_fig_list.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/figures/joss_fig_pixel.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/figures/joss_fig_stats.png +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/paper.bib +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/paper.md +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/paper/paper.pdf +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/conftest.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/data/GESLA3_ALL 2.csv +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/data/IDO71013_2020.csv +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/data/broome-62650-aus-bom +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/data/san_diego_ca-569a-usa-uhslc +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/data/sydney_fort_denison-60370-aus-bom +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/data/tide_models.tar.gz +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/test_utils.py +0 -0
- {eo_tides-0.6.5.dev11 → eo_tides-0.6.5.dev12}/tests/test_validation.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: eo-tides
|
3
|
-
Version: 0.6.5.
|
3
|
+
Version: 0.6.5.dev12
|
4
4
|
Summary: Tide modelling tools for large-scale satellite earth observation analysis
|
5
5
|
Project-URL: Homepage, https://GeoscienceAustralia.github.io/eo-tides/
|
6
6
|
Project-URL: Repository, https://github.com/GeoscienceAustralia/eo-tides
|
@@ -32,7 +32,7 @@ Requires-Dist: pandas>=2.2.0
|
|
32
32
|
Requires-Dist: psutil>=5.8.0
|
33
33
|
Requires-Dist: pyogrio>=0.10.0
|
34
34
|
Requires-Dist: pyproj>=3.7.0
|
35
|
-
Requires-Dist: pytmd
|
35
|
+
Requires-Dist: pytmd<2.2.5,>=2.2.2
|
36
36
|
Requires-Dist: scikit-learn>=1.4.0
|
37
37
|
Requires-Dist: scipy>=1.14.1
|
38
38
|
Requires-Dist: shapely>=2.0.6
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "eo-tides"
|
3
|
-
version = "0.6.5.
|
3
|
+
version = "0.6.5.dev12"
|
4
4
|
description = "Tide modelling tools for large-scale satellite earth observation analysis"
|
5
5
|
authors = [
|
6
6
|
{ name = "Robbi Bishop-Taylor" },
|
@@ -45,7 +45,7 @@ dependencies = [
|
|
45
45
|
"psutil>=5.8.0",
|
46
46
|
"pyogrio>=0.10.0",
|
47
47
|
"pyproj>=3.7.0",
|
48
|
-
"pyTMD
|
48
|
+
"pyTMD>=2.2.2,<2.2.5",
|
49
49
|
"scikit-learn>=1.4.0",
|
50
50
|
"scipy>=1.14.1",
|
51
51
|
"shapely>=2.0.6",
|
@@ -62,7 +62,15 @@ def test_tag_tides_phases(satellite_ds, measured_tides_ds):
|
|
62
62
|
assert set(expected_vars) == set(tagged_tides_ds.data_vars)
|
63
63
|
|
64
64
|
# Verify tide_phase values
|
65
|
-
expected_phases = [
|
65
|
+
expected_phases = [
|
66
|
+
"low-flow",
|
67
|
+
"high-flow",
|
68
|
+
"low-ebb",
|
69
|
+
"low-flow",
|
70
|
+
"low-ebb",
|
71
|
+
"low-flow",
|
72
|
+
"high-flow",
|
73
|
+
]
|
66
74
|
assert tagged_tides_ds.tide_phase.values.tolist() == expected_phases
|
67
75
|
|
68
76
|
# Assert tide_model dim has been squeezed out
|
@@ -248,12 +256,12 @@ def test_pixel_tides_quantile(satellite_ds):
|
|
248
256
|
|
249
257
|
# Test if extracted tides match expected results (to within ~2 cm)
|
250
258
|
expected_tides = np.array([
|
251
|
-
[-1.
|
252
|
-
[-1.20, -1.
|
253
|
-
[-0.
|
254
|
-
[-0.
|
259
|
+
[-1.90, -2.18, -2.11, -2.22],
|
260
|
+
[-1.20, -1.27, -1.25, -1.29],
|
261
|
+
[-0.70, -0.78, -0.76, -0.80],
|
262
|
+
[-0.31, -0.31, -0.32, -0.31],
|
255
263
|
[0.5, 0.42, 0.45, 0.41],
|
256
|
-
[1.
|
264
|
+
[1.61, 1.70, 1.67, 1.71],
|
257
265
|
])
|
258
266
|
assert np.allclose(extracted_tides.values, expected_tides, atol=0.02)
|
259
267
|
|
@@ -3,7 +3,13 @@ import pandas as pd
|
|
3
3
|
import pytest
|
4
4
|
from pyTMD.compute import tide_elevations
|
5
5
|
|
6
|
-
from eo_tides.model import
|
6
|
+
from eo_tides.model import (
|
7
|
+
_parallel_splits,
|
8
|
+
_set_directory,
|
9
|
+
ensemble_tides,
|
10
|
+
model_phases,
|
11
|
+
model_tides,
|
12
|
+
)
|
7
13
|
from eo_tides.validation import eval_metrics
|
8
14
|
|
9
15
|
GAUGE_X = 122.2183
|
@@ -300,18 +306,18 @@ def test_model_tides_ensemble():
|
|
300
306
|
assert np.allclose(
|
301
307
|
modelled_tides_df.tide_height.values,
|
302
308
|
[
|
303
|
-
0.
|
304
|
-
-3.
|
305
|
-
0.
|
306
|
-
-3.
|
307
|
-
0.
|
308
|
-
0.
|
309
|
-
0.
|
309
|
+
0.069,
|
310
|
+
-3.186,
|
311
|
+
0.383,
|
312
|
+
-3.081,
|
313
|
+
0.807,
|
314
|
+
0.665,
|
315
|
+
0.996,
|
310
316
|
1.011,
|
311
|
-
0.
|
312
|
-
-1.
|
313
|
-
0.
|
314
|
-
-1.
|
317
|
+
0.438,
|
318
|
+
-1.261,
|
319
|
+
0.690,
|
320
|
+
-1.035,
|
315
321
|
],
|
316
322
|
atol=0.02,
|
317
323
|
)
|
@@ -377,7 +383,7 @@ def test_model_tides_ensemble():
|
|
377
383
|
assert closer_model == ["EOT20", "HAMTIDE11", "EOT20", "HAMTIDE11"]
|
378
384
|
|
379
385
|
# Check values are expected
|
380
|
-
assert np.allclose(modelled_tides_df.ensemble, [0.
|
386
|
+
assert np.allclose(modelled_tides_df.ensemble, [0.08, 0.98, -3.20, 1.01], atol=0.02)
|
381
387
|
|
382
388
|
# Wide mode, custom functions
|
383
389
|
ensemble_funcs = {
|
@@ -28,16 +28,16 @@ def test_tidal_stats(satellite_ds, modelled_freq, tidepost_lon, tidepost_lat):
|
|
28
28
|
|
29
29
|
# Compare outputs to expected results (within 2% or 0.02 m)
|
30
30
|
expected_results = pd.Series({
|
31
|
-
"mot": -0.
|
31
|
+
"mot": -0.407,
|
32
32
|
"mat": -0.005,
|
33
|
-
"hot": 1.
|
34
|
-
"hat": 4.
|
33
|
+
"hot": 1.684,
|
34
|
+
"hat": 4.275,
|
35
35
|
"lot": -2.141,
|
36
|
-
"lat": -4.
|
37
|
-
"otr": 3.
|
38
|
-
"tr": 8.
|
39
|
-
"spread": 0.
|
40
|
-
"offset_low": 0.
|
36
|
+
"lat": -4.339,
|
37
|
+
"otr": 3.825,
|
38
|
+
"tr": 8.614,
|
39
|
+
"spread": 0.444,
|
40
|
+
"offset_low": 0.255,
|
41
41
|
"offset_high": 0.301,
|
42
42
|
"x": 122.218,
|
43
43
|
"y": -18.001,
|
@@ -121,7 +121,19 @@ def test_pixel_stats(satellite_ds, models, resample):
|
|
121
121
|
assert stats_ds.odc.spatial_dims == satellite_ds.odc.spatial_dims
|
122
122
|
|
123
123
|
# Verify vars are as expected
|
124
|
-
expected_vars = [
|
124
|
+
expected_vars = [
|
125
|
+
"mot",
|
126
|
+
"mat",
|
127
|
+
"hot",
|
128
|
+
"hat",
|
129
|
+
"lot",
|
130
|
+
"lat",
|
131
|
+
"otr",
|
132
|
+
"tr",
|
133
|
+
"spread",
|
134
|
+
"offset_low",
|
135
|
+
"offset_high",
|
136
|
+
]
|
125
137
|
assert set(expected_vars) == set(stats_ds.data_vars)
|
126
138
|
|
127
139
|
# Verify tide models are correct
|
@@ -6,7 +6,7 @@
|
|
6
6
|
"metadata": {},
|
7
7
|
"outputs": [],
|
8
8
|
"source": [
|
9
|
-
"!pip install uv==0.5.0\n",
|
9
|
+
"# !pip install uv==0.5.0\n",
|
10
10
|
"!pip install -e .. --quiet"
|
11
11
|
]
|
12
12
|
},
|
@@ -16,7 +16,7 @@
|
|
16
16
|
"metadata": {},
|
17
17
|
"outputs": [],
|
18
18
|
"source": [
|
19
|
-
"
|
19
|
+
"!pip install pyTMD==2.2.4"
|
20
20
|
]
|
21
21
|
},
|
22
22
|
{
|
@@ -24,6 +24,15 @@
|
|
24
24
|
"execution_count": null,
|
25
25
|
"metadata": {},
|
26
26
|
"outputs": [],
|
27
|
+
"source": [
|
28
|
+
"# !pip install -e /home/jovyan/Robbi/pyTMD"
|
29
|
+
]
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"cell_type": "code",
|
33
|
+
"execution_count": 1,
|
34
|
+
"metadata": {},
|
35
|
+
"outputs": [],
|
27
36
|
"source": [
|
28
37
|
"%load_ext autoreload\n",
|
29
38
|
"%autoreload 2\n",
|
@@ -46,9 +55,17 @@
|
|
46
55
|
},
|
47
56
|
{
|
48
57
|
"cell_type": "code",
|
49
|
-
"execution_count":
|
58
|
+
"execution_count": 2,
|
50
59
|
"metadata": {},
|
51
|
-
"outputs": [
|
60
|
+
"outputs": [
|
61
|
+
{
|
62
|
+
"name": "stdout",
|
63
|
+
"output_type": "stream",
|
64
|
+
"text": [
|
65
|
+
"/home/jovyan/Robbi/eo-tides\n"
|
66
|
+
]
|
67
|
+
}
|
68
|
+
],
|
52
69
|
"source": [
|
53
70
|
"cd .."
|
54
71
|
]
|
@@ -225,8 +242,8 @@
|
|
225
242
|
"\n",
|
226
243
|
"satellite_ds = load_satellite_ds()\n",
|
227
244
|
"measured_tides_ds = load_measured_tides_ds()\n",
|
228
|
-
"create_synthetic_eot20()\n",
|
229
|
-
"create_synthetic_hamtide11()"
|
245
|
+
"# create_synthetic_eot20()\n",
|
246
|
+
"# create_synthetic_hamtide11()"
|
230
247
|
]
|
231
248
|
},
|
232
249
|
{
|
@@ -281,6 +298,54 @@
|
|
281
298
|
"!export EO_TIDES_TIDE_MODELS=./tests/data/tide_models && pytest tests/test_utils.py --verbose -k test_clip_models"
|
282
299
|
]
|
283
300
|
},
|
301
|
+
{
|
302
|
+
"cell_type": "markdown",
|
303
|
+
"metadata": {},
|
304
|
+
"source": [
|
305
|
+
"## Test new PyTMD version"
|
306
|
+
]
|
307
|
+
},
|
308
|
+
{
|
309
|
+
"cell_type": "code",
|
310
|
+
"execution_count": null,
|
311
|
+
"metadata": {},
|
312
|
+
"outputs": [],
|
313
|
+
"source": [
|
314
|
+
"from eo_tides.model import model_tides\n",
|
315
|
+
"from eo_tides.validation import eval_metrics\n",
|
316
|
+
"import numpy as np\n",
|
317
|
+
"import pandas as pd\n",
|
318
|
+
"\n",
|
319
|
+
"directory = \"/var/share/tide_models/\"\n",
|
320
|
+
"\n",
|
321
|
+
"# Time the spline method\n",
|
322
|
+
"modelled_tides_df = model_tides(\n",
|
323
|
+
" x=GAUGE_X,\n",
|
324
|
+
" y=GAUGE_Y,\n",
|
325
|
+
" time=measured_tides_ds.time,\n",
|
326
|
+
" model=\"all\",\n",
|
327
|
+
" directory=directory,\n",
|
328
|
+
")"
|
329
|
+
]
|
330
|
+
},
|
331
|
+
{
|
332
|
+
"cell_type": "code",
|
333
|
+
"execution_count": null,
|
334
|
+
"metadata": {},
|
335
|
+
"outputs": [],
|
336
|
+
"source": [
|
337
|
+
"modelled_tides_df.groupby(\"tide_model\").apply(lambda z: eval_metrics(x=measured_tides_ds.tide_height, y=z.tide_height))"
|
338
|
+
]
|
339
|
+
},
|
340
|
+
{
|
341
|
+
"cell_type": "code",
|
342
|
+
"execution_count": null,
|
343
|
+
"metadata": {},
|
344
|
+
"outputs": [],
|
345
|
+
"source": [
|
346
|
+
"modelled_tides_df.groupby(\"tide_model\").apply(lambda z: eval_metrics(x=measured_tides_ds.tide_height, y=z.tide_height))"
|
347
|
+
]
|
348
|
+
},
|
284
349
|
{
|
285
350
|
"cell_type": "markdown",
|
286
351
|
"metadata": {},
|
@@ -2762,7 +2827,7 @@
|
|
2762
2827
|
],
|
2763
2828
|
"metadata": {
|
2764
2829
|
"kernelspec": {
|
2765
|
-
"display_name": "
|
2830
|
+
"display_name": "Python 3 (ipykernel)",
|
2766
2831
|
"language": "python",
|
2767
2832
|
"name": "python3"
|
2768
2833
|
},
|
@@ -2776,7 +2841,7 @@
|
|
2776
2841
|
"name": "python",
|
2777
2842
|
"nbconvert_exporter": "python",
|
2778
2843
|
"pygments_lexer": "ipython3",
|
2779
|
-
"version": "3.
|
2844
|
+
"version": "3.10.15"
|
2780
2845
|
}
|
2781
2846
|
},
|
2782
2847
|
"nbformat": 4,
|