pyTMD 3.0.0__tar.gz → 3.0.2__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.
- pytmd-3.0.2/MANIFEST.in +13 -0
- {pytmd-3.0.0/pyTMD.egg-info → pytmd-3.0.2}/PKG-INFO +50 -13
- pytmd-3.0.2/README.md +169 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/__init__.py +1 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/astro.py +584 -344
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/compute.py +381 -330
- pytmd-3.0.2/pyTMD/constituents.py +2981 -0
- pytmd-3.0.2/pyTMD/data/re14_tab3.txt +81 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/datasets/__init__.py +8 -2
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/datasets/fetch_arcticdata.py +78 -44
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/datasets/fetch_aviso_fes.py +289 -185
- pytmd-3.0.2/pyTMD/datasets/fetch_box_tpxo.py +303 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/datasets/fetch_gsfc_got.py +107 -65
- pytmd-3.0.2/pyTMD/datasets/fetch_iers_opole.py +147 -0
- pytmd-3.0.2/pyTMD/datasets/fetch_jpl_ssd.py +152 -0
- pytmd-3.0.2/pyTMD/datasets/fetch_test_data.py +298 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/datasets/reduce_otis.py +99 -62
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/ellipse.py +43 -42
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/interpolate.py +76 -68
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/ATLAS.py +182 -167
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/FES.py +122 -116
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/GOT.py +186 -102
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/IERS.py +49 -41
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/NOAA.py +83 -82
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/OTIS.py +829 -806
- pytmd-3.0.2/pyTMD/io/__init__.py +16 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/dataset.py +305 -233
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/io/model.py +141 -136
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/math.py +81 -84
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/predict.py +1199 -789
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/solve/__init__.py +2 -1
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/solve/constants.py +63 -54
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/spatial.py +566 -463
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/tools.py +118 -82
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/utilities.py +398 -326
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/version.py +2 -1
- {pytmd-3.0.0 → pytmd-3.0.2/pyTMD.egg-info}/PKG-INFO +50 -13
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD.egg-info/SOURCES.txt +4 -2
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD.egg-info/entry_points.txt +3 -5
- {pytmd-3.0.0 → pytmd-3.0.2}/pyproject.toml +32 -18
- pytmd-3.0.0/MANIFEST.in +0 -9
- pytmd-3.0.0/README.md +0 -131
- pytmd-3.0.0/pyTMD/constituents.py +0 -2375
- pytmd-3.0.0/pyTMD/data/opoleloadcoefcmcor.txt.gz +0 -0
- pytmd-3.0.0/pyTMD/datasets/fetch_test_data.py +0 -187
- pytmd-3.0.0/pyTMD/datasets/verify_box_tpxo.py +0 -211
- pytmd-3.0.0/pyTMD/io/__init__.py +0 -15
- {pytmd-3.0.0 → pytmd-3.0.2}/LICENSE +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/ct1971_tab6.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/cte1973_tab.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/d1921_tab.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/database.json +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/doodson.json +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/hw1995_tab.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/t1987_tab.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/tab5.2e.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/tab5.3a.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/tab5.3b.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD/data/w1990_tab.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD.egg-info/dependency_links.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD.egg-info/requires.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/pyTMD.egg-info/top_level.txt +0 -0
- {pytmd-3.0.0 → pytmd-3.0.2}/setup.cfg +0 -0
pytmd-3.0.2/MANIFEST.in
ADDED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyTMD
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: Python-based tidal prediction software for estimating ocean, load, solid Earth and pole tides
|
|
5
5
|
Author: Tyler Sutterley
|
|
6
6
|
Author-email: tsutterl@uw.edu
|
|
@@ -37,16 +37,15 @@ Classifier: Intended Audience :: Science/Research
|
|
|
37
37
|
Classifier: License :: OSI Approved :: MIT License
|
|
38
38
|
Classifier: Operating System :: OS Independent
|
|
39
39
|
Classifier: Programming Language :: Python :: 3
|
|
40
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
41
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
42
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
43
40
|
Classifier: Programming Language :: Python :: 3.9
|
|
44
41
|
Classifier: Programming Language :: Python :: 3.10
|
|
45
42
|
Classifier: Programming Language :: Python :: 3.11
|
|
46
43
|
Classifier: Programming Language :: Python :: 3.12
|
|
44
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
45
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
47
46
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
48
47
|
Classifier: Topic :: Scientific/Engineering :: Oceanography
|
|
49
|
-
Requires-Python: ~=3.
|
|
48
|
+
Requires-Python: ~=3.9
|
|
50
49
|
Description-Content-Type: text/markdown
|
|
51
50
|
License-File: LICENSE
|
|
52
51
|
Requires-Dist: h5netcdf
|
|
@@ -97,15 +96,49 @@ Dynamic: license-file
|
|
|
97
96
|
|
|
98
97
|
# pyTMD
|
|
99
98
|
|
|
100
|
-
[](https://github.com/pyTMD/pyTMD/blob/main/LICENSE)
|
|
101
|
-
[](https://pytmd.readthedocs.io/en/latest/?badge=latest)
|
|
102
|
-
[](https://pypi.python.org/pypi/pyTMD/)
|
|
103
|
-
[](https://anaconda.org/conda-forge/pytmd)
|
|
104
|
-
[](https://github.com/pyTMD/pyTMD/releases/latest)
|
|
105
|
-
[](https://doi.org/10.5281/zenodo.5555395)
|
|
106
|
-
|
|
107
99
|
Python-based tidal prediction software for estimating ocean, load, solid Earth and pole tides
|
|
108
100
|
|
|
101
|
+
## About
|
|
102
|
+
|
|
103
|
+
<table>
|
|
104
|
+
<tr>
|
|
105
|
+
<td><b>Version:</b></td>
|
|
106
|
+
<td>
|
|
107
|
+
<a href="https://pypi.python.org/pypi/pyTMD/" alt="PyPI"><img src="https://img.shields.io/pypi/v/pyTMD.svg"></a>
|
|
108
|
+
<a href="https://anaconda.org/conda-forge/pytmd" alt="conda-forge"><img src="https://img.shields.io/conda/vn/conda-forge/pytmd"></a>
|
|
109
|
+
<a href="https://github.com/pyTMD/pyTMD/releases/latest" alt="commits-since"><img src="https://img.shields.io/github/commits-since/pyTMD/pyTMD/latest"></a>
|
|
110
|
+
</td>
|
|
111
|
+
</tr>
|
|
112
|
+
<tr>
|
|
113
|
+
<td><b>Citation:</b></td>
|
|
114
|
+
<td>
|
|
115
|
+
<a href="https://doi.org/10.21105/joss.08566" alt="JOSS"><img src="https://joss.theoj.org/papers/10.21105/joss.08566/status.svg"></a>
|
|
116
|
+
<a href="https://doi.org/10.5281/zenodo.5555395" alt="zenodo"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.5555395.svg"></a>
|
|
117
|
+
</td>
|
|
118
|
+
</tr>
|
|
119
|
+
<tr>
|
|
120
|
+
<td><b>Tests:</b></td>
|
|
121
|
+
<td>
|
|
122
|
+
<a href="https://pytmd.readthedocs.io/en/latest/?badge=latest" alt="Documentation Status"><img src="https://readthedocs.org/projects/pytmd/badge/?version=latest"></a>
|
|
123
|
+
<a href="https://github.com/pyTMD/pyTMD/actions/workflows/python-request.yml" alt="Build"><img src="https://github.com/pyTMD/pyTMD/actions/workflows/python-request.yml/badge.svg"></a>
|
|
124
|
+
<a href="https://github.com/pyTMD/pyTMD/actions/workflows/ruff-format.yml" alt="Ruff"><img src="https://github.com/pyTMD/pyTMD/actions/workflows/ruff-format.yml/badge.svg"></a>
|
|
125
|
+
</td>
|
|
126
|
+
</tr>
|
|
127
|
+
<tr>
|
|
128
|
+
<td><b>Data:</b></td>
|
|
129
|
+
<td>
|
|
130
|
+
<a href="https://doi.org/10.5281/zenodo.18091740" alt="zenodo"><img src="https://img.shields.io/badge/zenodo-pyTMD_test_data-2f6fa7.svg?logo=data:image/svg%2bxml;base64,PHN2ZyBpZD0iU3ZnanNTdmcxMDIxIiB3aWR0aD0iMjg4IiBoZWlnaHQ9IjI4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpzdmdqcz0iaHR0cDovL3N2Z2pzLmNvbS9zdmdqcyI+PGRlZnMgaWQ9IlN2Z2pzRGVmczEwMjIiPjwvZGVmcz48ZyBpZD0iU3ZnanNHMTAyMyI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIyMCA4MCIgdmlld0JveD0iMCAwIDUxLjA0NiA1MS4wNDYiIHdpZHRoPSIyODgiIGhlaWdodD0iMjg4Ij48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJtIDI4LjMyNCwyMC4wNDQgYyAtMC4wNDMsLTAuMTA2IC0wLjA4NCwtMC4yMTQgLTAuMTMxLC0wLjMyIC0wLjcwNywtMS42MDIgLTEuNjU2LC0yLjk5NyAtMi44NDgsLTQuMTkgLTEuMTg4LC0xLjE4NyAtMi41ODIsLTIuMTI1IC00LjE4NCwtMi44MDUgLTEuNjA1LC0wLjY3OCAtMy4zMDksLTEuMDIgLTUuMTA0LC0xLjAyIC0xLjg1LDAgLTMuNTY0LDAuMzQyIC01LjEzNywxLjAyIC0xLjQ2NywwLjYyOCAtMi43NjQsMS40ODggLTMuOTEsMi41NTIgViAxNC44NCBjIDAsLTEuNTU3IC0xLjI2MiwtMi44MjIgLTIuODIsLTIuODIyIGggLTE5Ljc3NSBjIC0xLjU1NywwIC0yLjgyLDEuMjY1IC0yLjgyLDIuODIyIDAsMS41NTkgMS4yNjQsMi44MiAyLjgyLDIuODIgaCAxNS41NDEgbCAtMTguMjMsMjQuNTQ2IGMgLTAuMzYyLDAuNDg3IC0wLjU1NywxLjA3NyAtMC41NTcsMS42ODIgdiAxLjg0MSBjIDAsMS41NTggMS4yNjQsMi44MjIgMi44MjIsMi44MjIgSCA1LjAzOCBjIDEuNDg4LDAgMi43MDUsLTEuMTUzIDIuODEyLC0yLjYxNCAwLjkzMiwwLjc0MyAxLjk2NywxLjM2NCAzLjEwOSwxLjg0OCAxLjYwNSwwLjY4NCAzLjI5OSwxLjAyMSA1LjEwMiwxLjAyMSAyLjcyMywwIDUuMTUsLTAuNzI2IDcuMjg3LC0yLjE4NyAxLjcyNywtMS4xNzYgMy4wOTIsLTIuNjM5IDQuMDg0LC00LjM4OSAwLjgzMjc5OSwtMS40NzIwOTQgMS40MTgyODQsLTIuNjMzMzUyIDEuMjIxODg5LC0zLjcyOTE4MiAtMC4xNzMwMDMsLTAuOTY1MzE4IC0wLjY5NDkxNCwtMS45NDY0MTkgLTIuMzI2ODY1LC0yLjM3ODM1OCAtMC41OCwwIC0xLjM3NjAyNCwwLjE3NDU0IC0xLjgzMzAyNCwwLjQ5MjU0IC0wLjQ2MywwLjMxNiAtMC43OTMsMC43NDQgLTAuOTgyLDEuMjc1IGwgLTAuNDUzLDAuOTMgYyAtMC42MzEsMS4zNjUgLTEuNTY2LDIuNDQzIC0yLjgwOSwzLjI0NCAtMS4yMzgsMC44MDMgLTIuNjMzLDEuMjAxIC00LjE4OCwxLjIwMSAtMS4wMjMsMCAtMi4wMDQsLTAuMTkxIC0yLjk1NSwtMC41NzkgLTAuOTQxLC0wLjM5IC0xLjc1OCwtMC45MzUgLTIuNDM5LC0xLjY0IEMgOS45ODYsNDAuMzQzIDkuNDQxLDM5LjUyNiA5LjAyNywzOC42MDMgOC42MTcsMzcuNjc5IDguNDEsMzYuNzEgOC40MSwzNS42ODcgdiAtMi40NzYgaCAxNy43MTUgYyAwLDAgMS41MTc3NzQsLTAuMTU0NjYgMi4xODMzNzUsLTAuNzcwNjcyIDAuOTU4NDk2LC0wLjg4NzA4NSAwLjg2NDYyMiwtMi4xNTAzOCAwLjg2NDYyMiwtMi4xNTAzOCAwLDAgLTAuMDQzNTQsLTUuMDY2ODM0IC0wLjMzODM3NiwtNy41NzgxNTQgQyAyOC43MjkwNDgsMjEuODEyNTYzIDI4LjMyNCwyMC4wNDQgMjguMzI0LDIwLjA0NCBaIE0gLTExLjc2Nyw0Mi45MSAyLjk5MSwyMy4wMzYgQyAyLjkxMywyMy42MjMgMi44NywyNC4yMiAyLjg3LDI0LjgyNyB2IDEwLjg2IGMgMCwxLjc5OSAwLjM1LDMuNDk4IDEuMDU5LDUuMTA0IDAuMzI4LDAuNzUyIDAuNzE5LDEuNDU4IDEuMTU2LDIuMTE5IC0wLjAxNiwwIC0wLjAzMSwtMTBlLTQgLTAuMDQ3LC0xMGUtNCBIIC0xMS43NjcgWiBNIDIzLjcxLDI3LjY2NyBIIDguNDA5IHYgLTIuODQxIGMgMCwtMS4wMTUgMC4xODksLTEuOTkgMC41OCwtMi45MTIgMC4zOTEsLTAuOTIyIDAuOTM2LC0xLjc0IDEuNjQ1LC0yLjQ0NCAwLjY5NywtMC43MDMgMS41MTYsLTEuMjQ5IDIuNDM4LC0xLjY0MSAwLjkyMiwtMC4zODggMS45MiwtMC41ODEgMi45OSwtMC41ODEgMS4wMiwwIDIuMDAyLDAuMTkzIDIuOTQ5LDAuNTgxIDAuOTQ5LDAuMzkzIDEuNzY0LDAuOTM4IDIuNDQxLDEuNjQxIDAuNjgyLDAuNzA0IDEuMjI1LDEuNTIxIDEuNjQxLDIuNDQ0IDAuNDE0LDAuOTIyIDAuNjE3LDEuODk2IDAuNjE3LDIuOTEyIHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjM1IC00LjczNSkiIGNsYXNzPSJjb2xvcmZmZiBzdmdTaGFwZSI+PC9wYXRoPjwvc3ZnPjwvZz48L3N2Zz4="></a>
|
|
131
|
+
<a href="https://doi.org/10.6084/m9.figshare.30260326" alt="figshare"><img src="https://img.shields.io/badge/figshare-pyTMD_test_data-a60845?logo=figshare"></a>
|
|
132
|
+
</td>
|
|
133
|
+
</tr>
|
|
134
|
+
<tr>
|
|
135
|
+
<td><b>License:</b></td>
|
|
136
|
+
<td>
|
|
137
|
+
<a href="https://github.com/pyTMD/pyTMD/blob/main/LICENSE" alt="License"><img src="https://img.shields.io/github/license/pyTMD/pyTMD"></a>
|
|
138
|
+
</td>
|
|
139
|
+
</tr>
|
|
140
|
+
</table>
|
|
141
|
+
|
|
109
142
|
For more information: see the documentation at [pytmd.readthedocs.io](https://pytmd.readthedocs.io/)
|
|
110
143
|
|
|
111
144
|
## Installation
|
|
@@ -176,11 +209,15 @@ This will automatically create the environment, install all dependencies, and la
|
|
|
176
209
|
|
|
177
210
|
## References
|
|
178
211
|
|
|
212
|
+
> T. C. Sutterley, S. L. Howard, L. Padman, and M. R. Siegfried,
|
|
213
|
+
> "pyTMD: Python-based tidal prediction software". *Journal of Open Source Software*,
|
|
214
|
+
> 10(116), 8566, (2025). [doi: 10.21105/joss.08566](https://doi.org/10.21105/joss.08566)
|
|
215
|
+
>
|
|
179
216
|
> T. C. Sutterley, T. Markus, T. A. Neumann, M. R. van den Broeke, J. M. van Wessem, and S. R. M. Ligtenberg,
|
|
180
217
|
> "Antarctic ice shelf thickness change from multimission lidar mapping", *The Cryosphere*,
|
|
181
218
|
> 13, 1801-1817, (2019). [doi: 10.5194/tc-13-1801-2019](https://doi.org/10.5194/tc-13-1801-2019)
|
|
182
219
|
>
|
|
183
|
-
> L. Padman, M. R. Siegfried, H. A. Fricker,
|
|
220
|
+
> L. Padman, M. R. Siegfried, and H. A. Fricker,
|
|
184
221
|
> "Ocean Tide Influences on the Antarctic and Greenland Ice Sheets", *Reviews of Geophysics*,
|
|
185
222
|
> 56, 142-184, (2018). [doi: 10.1002/2016RG000546](https://doi.org/10.1002/2016RG000546)
|
|
186
223
|
|
pytmd-3.0.2/README.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# pyTMD
|
|
2
|
+
|
|
3
|
+
Python-based tidal prediction software for estimating ocean, load, solid Earth and pole tides
|
|
4
|
+
|
|
5
|
+
## About
|
|
6
|
+
|
|
7
|
+
<table>
|
|
8
|
+
<tr>
|
|
9
|
+
<td><b>Version:</b></td>
|
|
10
|
+
<td>
|
|
11
|
+
<a href="https://pypi.python.org/pypi/pyTMD/" alt="PyPI"><img src="https://img.shields.io/pypi/v/pyTMD.svg"></a>
|
|
12
|
+
<a href="https://anaconda.org/conda-forge/pytmd" alt="conda-forge"><img src="https://img.shields.io/conda/vn/conda-forge/pytmd"></a>
|
|
13
|
+
<a href="https://github.com/pyTMD/pyTMD/releases/latest" alt="commits-since"><img src="https://img.shields.io/github/commits-since/pyTMD/pyTMD/latest"></a>
|
|
14
|
+
</td>
|
|
15
|
+
</tr>
|
|
16
|
+
<tr>
|
|
17
|
+
<td><b>Citation:</b></td>
|
|
18
|
+
<td>
|
|
19
|
+
<a href="https://doi.org/10.21105/joss.08566" alt="JOSS"><img src="https://joss.theoj.org/papers/10.21105/joss.08566/status.svg"></a>
|
|
20
|
+
<a href="https://doi.org/10.5281/zenodo.5555395" alt="zenodo"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.5555395.svg"></a>
|
|
21
|
+
</td>
|
|
22
|
+
</tr>
|
|
23
|
+
<tr>
|
|
24
|
+
<td><b>Tests:</b></td>
|
|
25
|
+
<td>
|
|
26
|
+
<a href="https://pytmd.readthedocs.io/en/latest/?badge=latest" alt="Documentation Status"><img src="https://readthedocs.org/projects/pytmd/badge/?version=latest"></a>
|
|
27
|
+
<a href="https://github.com/pyTMD/pyTMD/actions/workflows/python-request.yml" alt="Build"><img src="https://github.com/pyTMD/pyTMD/actions/workflows/python-request.yml/badge.svg"></a>
|
|
28
|
+
<a href="https://github.com/pyTMD/pyTMD/actions/workflows/ruff-format.yml" alt="Ruff"><img src="https://github.com/pyTMD/pyTMD/actions/workflows/ruff-format.yml/badge.svg"></a>
|
|
29
|
+
</td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td><b>Data:</b></td>
|
|
33
|
+
<td>
|
|
34
|
+
<a href="https://doi.org/10.5281/zenodo.18091740" alt="zenodo"><img src="https://img.shields.io/badge/zenodo-pyTMD_test_data-2f6fa7.svg?logo=data:image/svg%2bxml;base64,PHN2ZyBpZD0iU3ZnanNTdmcxMDIxIiB3aWR0aD0iMjg4IiBoZWlnaHQ9IjI4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpzdmdqcz0iaHR0cDovL3N2Z2pzLmNvbS9zdmdqcyI+PGRlZnMgaWQ9IlN2Z2pzRGVmczEwMjIiPjwvZGVmcz48ZyBpZD0iU3ZnanNHMTAyMyI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIyMCA4MCIgdmlld0JveD0iMCAwIDUxLjA0NiA1MS4wNDYiIHdpZHRoPSIyODgiIGhlaWdodD0iMjg4Ij48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJtIDI4LjMyNCwyMC4wNDQgYyAtMC4wNDMsLTAuMTA2IC0wLjA4NCwtMC4yMTQgLTAuMTMxLC0wLjMyIC0wLjcwNywtMS42MDIgLTEuNjU2LC0yLjk5NyAtMi44NDgsLTQuMTkgLTEuMTg4LC0xLjE4NyAtMi41ODIsLTIuMTI1IC00LjE4NCwtMi44MDUgLTEuNjA1LC0wLjY3OCAtMy4zMDksLTEuMDIgLTUuMTA0LC0xLjAyIC0xLjg1LDAgLTMuNTY0LDAuMzQyIC01LjEzNywxLjAyIC0xLjQ2NywwLjYyOCAtMi43NjQsMS40ODggLTMuOTEsMi41NTIgViAxNC44NCBjIDAsLTEuNTU3IC0xLjI2MiwtMi44MjIgLTIuODIsLTIuODIyIGggLTE5Ljc3NSBjIC0xLjU1NywwIC0yLjgyLDEuMjY1IC0yLjgyLDIuODIyIDAsMS41NTkgMS4yNjQsMi44MiAyLjgyLDIuODIgaCAxNS41NDEgbCAtMTguMjMsMjQuNTQ2IGMgLTAuMzYyLDAuNDg3IC0wLjU1NywxLjA3NyAtMC41NTcsMS42ODIgdiAxLjg0MSBjIDAsMS41NTggMS4yNjQsMi44MjIgMi44MjIsMi44MjIgSCA1LjAzOCBjIDEuNDg4LDAgMi43MDUsLTEuMTUzIDIuODEyLC0yLjYxNCAwLjkzMiwwLjc0MyAxLjk2NywxLjM2NCAzLjEwOSwxLjg0OCAxLjYwNSwwLjY4NCAzLjI5OSwxLjAyMSA1LjEwMiwxLjAyMSAyLjcyMywwIDUuMTUsLTAuNzI2IDcuMjg3LC0yLjE4NyAxLjcyNywtMS4xNzYgMy4wOTIsLTIuNjM5IDQuMDg0LC00LjM4OSAwLjgzMjc5OSwtMS40NzIwOTQgMS40MTgyODQsLTIuNjMzMzUyIDEuMjIxODg5LC0zLjcyOTE4MiAtMC4xNzMwMDMsLTAuOTY1MzE4IC0wLjY5NDkxNCwtMS45NDY0MTkgLTIuMzI2ODY1LC0yLjM3ODM1OCAtMC41OCwwIC0xLjM3NjAyNCwwLjE3NDU0IC0xLjgzMzAyNCwwLjQ5MjU0IC0wLjQ2MywwLjMxNiAtMC43OTMsMC43NDQgLTAuOTgyLDEuMjc1IGwgLTAuNDUzLDAuOTMgYyAtMC42MzEsMS4zNjUgLTEuNTY2LDIuNDQzIC0yLjgwOSwzLjI0NCAtMS4yMzgsMC44MDMgLTIuNjMzLDEuMjAxIC00LjE4OCwxLjIwMSAtMS4wMjMsMCAtMi4wMDQsLTAuMTkxIC0yLjk1NSwtMC41NzkgLTAuOTQxLC0wLjM5IC0xLjc1OCwtMC45MzUgLTIuNDM5LC0xLjY0IEMgOS45ODYsNDAuMzQzIDkuNDQxLDM5LjUyNiA5LjAyNywzOC42MDMgOC42MTcsMzcuNjc5IDguNDEsMzYuNzEgOC40MSwzNS42ODcgdiAtMi40NzYgaCAxNy43MTUgYyAwLDAgMS41MTc3NzQsLTAuMTU0NjYgMi4xODMzNzUsLTAuNzcwNjcyIDAuOTU4NDk2LC0wLjg4NzA4NSAwLjg2NDYyMiwtMi4xNTAzOCAwLjg2NDYyMiwtMi4xNTAzOCAwLDAgLTAuMDQzNTQsLTUuMDY2ODM0IC0wLjMzODM3NiwtNy41NzgxNTQgQyAyOC43MjkwNDgsMjEuODEyNTYzIDI4LjMyNCwyMC4wNDQgMjguMzI0LDIwLjA0NCBaIE0gLTExLjc2Nyw0Mi45MSAyLjk5MSwyMy4wMzYgQyAyLjkxMywyMy42MjMgMi44NywyNC4yMiAyLjg3LDI0LjgyNyB2IDEwLjg2IGMgMCwxLjc5OSAwLjM1LDMuNDk4IDEuMDU5LDUuMTA0IDAuMzI4LDAuNzUyIDAuNzE5LDEuNDU4IDEuMTU2LDIuMTE5IC0wLjAxNiwwIC0wLjAzMSwtMTBlLTQgLTAuMDQ3LC0xMGUtNCBIIC0xMS43NjcgWiBNIDIzLjcxLDI3LjY2NyBIIDguNDA5IHYgLTIuODQxIGMgMCwtMS4wMTUgMC4xODksLTEuOTkgMC41OCwtMi45MTIgMC4zOTEsLTAuOTIyIDAuOTM2LC0xLjc0IDEuNjQ1LC0yLjQ0NCAwLjY5NywtMC43MDMgMS41MTYsLTEuMjQ5IDIuNDM4LC0xLjY0MSAwLjkyMiwtMC4zODggMS45MiwtMC41ODEgMi45OSwtMC41ODEgMS4wMiwwIDIuMDAyLDAuMTkzIDIuOTQ5LDAuNTgxIDAuOTQ5LDAuMzkzIDEuNzY0LDAuOTM4IDIuNDQxLDEuNjQxIDAuNjgyLDAuNzA0IDEuMjI1LDEuNTIxIDEuNjQxLDIuNDQ0IDAuNDE0LDAuOTIyIDAuNjE3LDEuODk2IDAuNjE3LDIuOTEyIHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjM1IC00LjczNSkiIGNsYXNzPSJjb2xvcmZmZiBzdmdTaGFwZSI+PC9wYXRoPjwvc3ZnPjwvZz48L3N2Zz4="></a>
|
|
35
|
+
<a href="https://doi.org/10.6084/m9.figshare.30260326" alt="figshare"><img src="https://img.shields.io/badge/figshare-pyTMD_test_data-a60845?logo=figshare"></a>
|
|
36
|
+
</td>
|
|
37
|
+
</tr>
|
|
38
|
+
<tr>
|
|
39
|
+
<td><b>License:</b></td>
|
|
40
|
+
<td>
|
|
41
|
+
<a href="https://github.com/pyTMD/pyTMD/blob/main/LICENSE" alt="License"><img src="https://img.shields.io/github/license/pyTMD/pyTMD"></a>
|
|
42
|
+
</td>
|
|
43
|
+
</tr>
|
|
44
|
+
</table>
|
|
45
|
+
|
|
46
|
+
For more information: see the documentation at [pytmd.readthedocs.io](https://pytmd.readthedocs.io/)
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
|
|
50
|
+
From PyPI:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
python3 -m pip install pyTMD
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
To include all optional dependencies:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
python3 -m pip install pyTMD[all]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Using `conda` or `mamba` from conda-forge:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
conda install -c conda-forge pytmd
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
mamba install -c conda-forge pytmd
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Development version from GitHub:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
python3 -m pip install git+https://github.com/pyTMD/pyTMD.git
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Running with Pixi
|
|
79
|
+
|
|
80
|
+
Alternatively, you can use [Pixi](https://pixi.sh/) for a streamlined workspace environment:
|
|
81
|
+
|
|
82
|
+
1. Install Pixi following the [installation instructions](https://pixi.sh/latest/#installation)
|
|
83
|
+
2. Clone the project repository:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
git clone https://github.com/pyTMD/pyTMD.git
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
3. Move into the `pyTMD` directory
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
cd pyTMD
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
4. Install dependencies and start JupyterLab:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pixi run start
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
This will automatically create the environment, install all dependencies, and launch JupyterLab in the [notebooks](./doc/source/notebooks/) directory.
|
|
102
|
+
|
|
103
|
+
## Dependencies
|
|
104
|
+
|
|
105
|
+
- [h5netcdf: Pythonic interface to netCDF4 via h5py](https://h5netcdf.org/)
|
|
106
|
+
- [lxml: processing XML and HTML in Python](https://pypi.python.org/pypi/lxml)
|
|
107
|
+
- [numpy: Scientific Computing Tools For Python](https://www.numpy.org)
|
|
108
|
+
- [platformdirs: Python module for determining platform-specific directories](https://pypi.org/project/platformdirs/)
|
|
109
|
+
- [pyproj: Python interface to PROJ library](https://pypi.org/project/pyproj/)
|
|
110
|
+
- [scipy: Scientific Tools for Python](https://www.scipy.org/)
|
|
111
|
+
- [timescale: Python tools for time and astronomical calculations](https://pypi.org/project/timescale/)
|
|
112
|
+
- [xarray: N-D labeled arrays and datasets in Python](https://docs.xarray.dev/en/stable/)
|
|
113
|
+
|
|
114
|
+
## References
|
|
115
|
+
|
|
116
|
+
> T. C. Sutterley, S. L. Howard, L. Padman, and M. R. Siegfried,
|
|
117
|
+
> "pyTMD: Python-based tidal prediction software". *Journal of Open Source Software*,
|
|
118
|
+
> 10(116), 8566, (2025). [doi: 10.21105/joss.08566](https://doi.org/10.21105/joss.08566)
|
|
119
|
+
>
|
|
120
|
+
> T. C. Sutterley, T. Markus, T. A. Neumann, M. R. van den Broeke, J. M. van Wessem, and S. R. M. Ligtenberg,
|
|
121
|
+
> "Antarctic ice shelf thickness change from multimission lidar mapping", *The Cryosphere*,
|
|
122
|
+
> 13, 1801-1817, (2019). [doi: 10.5194/tc-13-1801-2019](https://doi.org/10.5194/tc-13-1801-2019)
|
|
123
|
+
>
|
|
124
|
+
> L. Padman, M. R. Siegfried, and H. A. Fricker,
|
|
125
|
+
> "Ocean Tide Influences on the Antarctic and Greenland Ice Sheets", *Reviews of Geophysics*,
|
|
126
|
+
> 56, 142-184, (2018). [doi: 10.1002/2016RG000546](https://doi.org/10.1002/2016RG000546)
|
|
127
|
+
|
|
128
|
+
## Download
|
|
129
|
+
|
|
130
|
+
The program homepage is:
|
|
131
|
+
<https://github.com/pyTMD/pyTMD>
|
|
132
|
+
|
|
133
|
+
A zip archive of the latest version is available directly at:
|
|
134
|
+
<https://github.com/pyTMD/pyTMD/archive/main.zip>
|
|
135
|
+
|
|
136
|
+
## Alternative Software
|
|
137
|
+
|
|
138
|
+
perth5 from NASA Goddard Space Flight Center:
|
|
139
|
+
<https://codeberg.org/rray/perth5>
|
|
140
|
+
|
|
141
|
+
Matlab Tide Model Driver from Earth & Space Research:
|
|
142
|
+
<https://github.com/EarthAndSpaceResearch/TMD_Matlab_Toolbox_v2.5>
|
|
143
|
+
|
|
144
|
+
Fortran OSU Tidal Prediction Software:
|
|
145
|
+
<https://www.tpxo.net/otps>
|
|
146
|
+
|
|
147
|
+
## Disclaimer
|
|
148
|
+
|
|
149
|
+
This package includes software developed at NASA Goddard Space Flight Center (GSFC) and the University of Washington Applied Physics Laboratory (UW-APL).
|
|
150
|
+
It is not sponsored or maintained by the Universities Space Research Association (USRA), AVISO or NASA.
|
|
151
|
+
The software is provided here for your convenience but *with no guarantees whatsoever*.
|
|
152
|
+
It should not be used for coastal navigation or any application that may risk life or property.
|
|
153
|
+
|
|
154
|
+
## Contributing
|
|
155
|
+
|
|
156
|
+
This project contains work and contributions from the [scientific community](./CONTRIBUTORS.md).
|
|
157
|
+
If you would like to contribute to the project, please have a look at the [contribution guidelines](./doc/source/getting_started/Contributing.rst), [open issues](https://github.com/pyTMD/pyTMD/issues) and [discussions board](https://github.com/pyTMD/pyTMD/discussions).
|
|
158
|
+
|
|
159
|
+
## Credits
|
|
160
|
+
|
|
161
|
+
The Tidal Model Driver ([TMD](https://github.com/EarthAndSpaceResearch/TMD_Matlab_Toolbox_v2.5)) Matlab Toolbox was developed by Laurie Padman, Lana Erofeeva and Susan Howard.
|
|
162
|
+
An updated version of the TMD Matlab Toolbox ([TMD3](https://github.com/chadagreene/Tide-Model-Driver)) was developed by Chad Greene.
|
|
163
|
+
The OSU Tidal Inversion Software (OTIS) and OSU Tidal Prediction Software ([OTPS](https://www.tpxo.net/otps)) were developed by Lana Erofeeva and Gary Egbert ([copyright OSU](https://www.tpxo.net/tpxo-products-and-registration), licensed for non-commercial use).
|
|
164
|
+
The NASA Goddard Space Flight Center (GSFC) PREdict Tidal Heights (PERTH3) software was developed by Richard Ray and Remko Scharroo.
|
|
165
|
+
An updated and more versatile version of the NASA GSFC tidal prediction software ([PERTH5](https://codeberg.org/rray/perth5)) was developed by Richard Ray.
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
The content of this project is licensed under the [Creative Commons Attribution 4.0 Attribution license](https://creativecommons.org/licenses/by/4.0/) and the source code is licensed under the [MIT license](LICENSE).
|