├── .github ├── test_conda_env.yml └── workflows │ ├── pypi.yml │ └── tests.yml ├── .gitignore ├── CHANGELOG ├── LICENSE ├── MANIFEST.in ├── PREDICT DOC.txt ├── PyGTide_user-guide.pdf ├── README.docx ├── README.md ├── earth_tide_example.png ├── module_test.py ├── pygtide ├── __init__.py ├── commdat │ ├── [raw]_Leap_Second_History.dat │ ├── [raw]_eopc04_IAU2000.dat │ ├── [raw]_finals2000A.dat │ ├── buellehw.dat │ ├── cted73hw.dat │ ├── doodsehw.dat │ ├── etddt.dat │ ├── etddt_tmpl.dat │ ├── etpolut1.dat │ ├── hw95s.dat │ ├── ksm03.dat │ ├── ratgp95.dat │ ├── tamurahw.dat │ └── xi1989hw.dat ├── core.py ├── tests.py └── update_etpred_data.py ├── setup.cfg ├── setup.py ├── src └── etpred.f90 └── windows ├── pygtide-0.8-cp310-cp310-win_amd64.whl ├── pygtide-0.8-cp311-cp311-win_amd64.whl ├── pygtide-0.8-cp38-cp38-win_amd64.whl └── pygtide-0.8-cp39-cp39-win_amd64.whl /.github/test_conda_env.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | channels: 3 | - conda-forge 4 | dependencies: 5 | - numpy 6 | - pandas 7 | - fortran-compiler 8 | -------------------------------------------------------------------------------- /.github/workflows/pypi.yml: -------------------------------------------------------------------------------- 1 | name: pypi 2 | on: 3 | release: 4 | types: [published] 5 | 6 | jobs: 7 | build_sdist: 8 | name: build sdist 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v3 12 | - name: Set up Python 13 | uses: actions/setup-python@v1 14 | - name: Install numpy 15 | shell: bash -l {0} 16 | run: >- 17 | python -m 18 | pip install numpy --user 19 | - name: Build a source tarball 20 | shell: bash -l {0} 21 | run: >- 22 | python setup.py sdist 23 | - uses: actions/upload-artifact@v3 24 | with: 25 | path: dist/*.tar.gz 26 | 27 | publish: 28 | name: publish release 29 | needs: [build_sdist] 30 | runs-on: ubuntu-latest 31 | steps: 32 | - uses: actions/download-artifact@v3 33 | with: 34 | name: artifact 35 | path: dist 36 | - uses: pypa/gh-action-pypi-publish@release/v1 37 | with: 38 | user: __token__ 39 | password: ${{ secrets.PYPI }} 40 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: tests 2 | on: 3 | push: 4 | pull_request: 5 | 6 | jobs: 7 | run_tests: 8 | strategy: 9 | fail-fast: false 10 | matrix: 11 | os: [ubuntu-latest, macos-latest] 12 | include: 13 | - python: "3.10" 14 | runs-on: ${{ matrix.os }} 15 | defaults: 16 | run: 17 | shell: bash -l {0} 18 | steps: 19 | - uses: actions/checkout@v3 20 | - name: setup conda 21 | uses: conda-incubator/setup-miniconda@v2 22 | with: 23 | python-version: ${{ matrix.python }} 24 | environment-file: .github/test_conda_env.yml 25 | - name: print conda environment info 26 | run: | 27 | conda info -a 28 | conda list 29 | - name: install package 30 | run: | 31 | pip install -v --no-deps . 32 | - name: run test 33 | run: | 34 | mkdir empty; cd empty 35 | python -c 'import pygtide; pygtide.test()' 36 | python -c 'import pygtide; pygtide.update()' 37 | python -c 'import pygtide; pygtide.test()' 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | *.pyd 9 | *.bin 10 | 11 | # Distribution / packaging 12 | .Python 13 | build/ 14 | develop-eggs/ 15 | dist/ 16 | downloads/ 17 | eggs/ 18 | .eggs/ 19 | lib/ 20 | lib64/ 21 | parts/ 22 | sdist/ 23 | var/ 24 | wheels/ 25 | pip-wheel-metadata/ 26 | share/python-wheels/ 27 | *.egg-info/ 28 | .installed.cfg 29 | *.egg 30 | MANIFEST 31 | 32 | # PyInstaller 33 | # Usually these files are written by a python script from a template 34 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 35 | *.manifest 36 | *.spec 37 | 38 | # Installer logs 39 | pip-log.txt 40 | pip-delete-this-directory.txt 41 | 42 | # Unit test / coverage reports 43 | htmlcov/ 44 | .tox/ 45 | .nox/ 46 | .coverage 47 | .coverage.* 48 | .cache 49 | nosetests.xml 50 | coverage.xml 51 | *.cover 52 | .hypothesis/ 53 | .pytest_cache/ 54 | 55 | # Translations 56 | *.mo 57 | *.pot 58 | 59 | # Django stuff: 60 | *.log 61 | local_settings.py 62 | db.sqlite3 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # celery beat schedule file 88 | celerybeat-schedule 89 | 90 | # SageMath parsed files 91 | *.sage.py 92 | 93 | # Environments 94 | .env 95 | .venv 96 | env/ 97 | venv/ 98 | ENV/ 99 | env.bak/ 100 | venv.bak/ 101 | 102 | # Spyder project settings 103 | .spyderproject 104 | .spyproject 105 | 106 | # Rope project settings 107 | .ropeproject 108 | 109 | # mkdocs documentation 110 | /site 111 | 112 | # mypy 113 | .mypy_cache/ 114 | .dmypy.json 115 | dmypy.json 116 | 117 | # Pyre type checker 118 | .pyre/ 119 | 120 | # local developments 121 | dev_* 122 | -------------------------------------------------------------------------------- /CHANGELOG: -------------------------------------------------------------------------------- 1 | v0.7.1: 2 | * record length was corrected 3 | * length of day (LOD) tide is now properly interpolated 4 | * the Fortran based execution timer was removed 5 | 6 | v0.7: 7 | * pygtide now working for years before 1962 back until 1600 8 | 9 | v0.6: 10 | * Fortran code is now platform independent and specific variables are now set from Python (Fortran and Python) 11 | * updated Python to comply with proper package structure 12 | * update routine of the database files (etddt.dat and etpolut1.dat) has been redesigned with proper terminal output (Python code) 13 | 14 | v0.5: 15 | * this version was not released! 16 | * control of waves previously done using *.ini file has been handed over to the Python class 17 | * fixed bug that was not reading the lowest waves from the input 18 | * restricted leap second interpolation for years <1972 only (Fortran code), absolute value thereafter 19 | * vertical strain calculation magnitude was fixed (Fortran code) 20 | 21 | v0.4.0+trichters.fork: 22 | * add download routines so data files can easily be kept up to date 23 | 24 | v0.3.0+trichters.fork: 25 | * build extionsion from sources within setup.py 26 | * add convenient functions predict_series, predict_spectrum, predict_table 27 | * add convenient functions plot_series, plot_spectrum 28 | * add test function 29 | 30 | v0.2: 31 | * initial Python version 32 | 33 | v0.1: 34 | * Modifications to the original Fortran code aimed at a successful compile using f2py: 35 | *- Paths to external files were made relative (now uses subdirectory ‘commdat’ where executable resides) 36 | *- The code was changed from fixed format (file extension .f) to free format (file extension .f90) 37 | *- COMMON blocks were changed to modules 38 | *- Continuous lines were adapted to the F90 standard 39 | *- The main program was put into a subroutine called ‘PREDICT(ARGS)’ where ‘ARGS’ is an array of size 17 containing the control parameters handed over from Python 40 | *- The calculated data is stored in an internal array called ‘ETPDATA’ in the module ‘OUT’ 41 | *- Headers are also constructed in the array ‘HEADER’ in the module ‘OUT’ 42 | *- Screen and file (.prd and .prn) output is muted by default, but can be enabled using flags in ‘ARGS’ 43 | * Code enhancements: 44 | *- Moved all constants into module ‘CONSTANTS’ for easy modification. These included numeric as well as file names, output headers, etc. 45 | *- Created a parameter for original ‘commdat’ directory, including a path separator variable for different systems 46 | *- The data output format for the .prd and .prn files were changed to 6 digits to reflect the improved accuracy of the KSM03 tidal catalogue 47 | *- Output times in .prn and .prd files were zero padded for easier handling (if required) 48 | *- Changed the record length for the binary file ‘etpolut1.bin’ to 32 bytes (reflecting 4 double reals at 8 bytes each) 49 | * Bug fix: 50 | *- A time bug produced wrong HH:MM:SS format in output due to a rounding error when sampling rate was smaller than 60 seconds. This bug was fixed and the code now works properly with any time resolution 51 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | -------------------------------------------------------------------------------- /PREDICT DOC.txt: -------------------------------------------------------------------------------- 1 | Section 11: Description of program PREDICT 2 | ------------------------------------------ 3 | 4 | The Fortran 90 program PREDICT can be used for the computation of 5 | earth tide signals with constant time interval for one station in 6 | order to generate a table of synthetic model tides (tidal potential, 7 | gravity tides, tilt tides, vertical or horizontal displacement, 8 | vertical strain, horizontal strain, areal strain, shear strain, volume 9 | strain, and oceanic tides). There can be used seven different tidal 10 | potential catalogs (Doodson 1921, Cartwright-Tayler-Edden 1973, 11 | Buellesfeld 1985, Tamura 1987, Xi 1989, Roosbeek 1996, Hartmann and 12 | Wenzel 1995) together with observed tidal parameters. Additionally, 13 | gravity pole tides (gravity variation due to polar motion, see encl. 14 | 007) and gravity LOD tides (gravity variation due to variation of 15 | length of day, see encl. 008) can be computed for those periods, where 16 | the necessary data are given in file "etpolc.dat". 17 | 18 | Section 11.1: Description of the project file "project" 19 | ------------------------------------------------------ 20 | 21 | The ASCII project name file "project" for program PREDICT contains 22 | one single variable only, the project name which is abbreviated as 23 | "pn" in this manual. The project name is an alphanumerical string 24 | consisting of 8 characters at maximum. The project name is read from 25 | the first 8 characters of the first record of project name file 26 | "project". The project name is used to define the control parameter 27 | file name "pn".ini for program PREDICT. 28 | 29 | Section 11.2: Description of control parameter file "pn".ini 30 | ----------------------------------------------------------- 31 | 32 | The control parameter file "pn".ini (where "pn" stands for the project 33 | name defined in file "project") defines several control parameters 34 | necessary for the operation of program PREDICT. This control parameter 35 | file has an identical structure to the control parameter files used by 36 | programs RECTIDE, DETIDE, DESPIKE, DECIMATE, PREGRED and ANALYZE. Some 37 | of the variables are identical to those used by programs RECTIDE, 38 | DETIDE, DESPIKE, DECIMATE, PREGRED and ANALYZE. Thus it may be 39 | possible to use the same control parameter file for data recording, 40 | data preprocessing and data analysis. 41 | 42 | All control parameter statements must begin with the control parameter 43 | name (column 1...10) which ends with an equal sign. The control parame- 44 | ter names must be spelled exactly with uppercase letters as defined 45 | below. Control parameters with unknown names will be ignored by 46 | program RECTIDE. The control parameter variables must be input after 47 | the equal sign following the control parameter name, with appropriate 48 | format. The control parameter statements must not have a specific 49 | sequence. A record starting with # in column 1 will be ignored and may 50 | be used to comment the control parameters. All characters following 51 | # in a record will be ignored and may be used to comment the control 52 | parameters. 53 | 54 | STATIONAME= station name, 10 characters (col. 12...21) following the 55 | equal sign. The station name will be displayed on the 56 | graphics screen during data recording. 57 | STATLATITU= ellipsoidal latitude of the station in degree referring to 58 | WGS84 reference system (col.12...26). 59 | STATLONITU= ellipsoidal longitude of the station in degree referring 60 | to WGS84 reference system (col.12...26). 61 | STATELEVAT= ellipsoidal height of the station in meter referring to 62 | WGS84 reference system (col.12...26). 63 | STATGRAVIT= gravity of the station in m/s**2, necessary for tidal tilt 64 | only (col. 12...26, real with decimal point). If the 65 | gravity is unknown, use a value of less than 1.0 and the 66 | program will compute and subsequently use the normal 67 | gravity value referring to GRS80 reference system. 68 | STATAZIMUT= azimuth of the instrument in degree decimal, reckoned 69 | clockwise from north (col. 12 ... 26, real with decimal 70 | point). This parameter is used for tidal tilt, horizontal 71 | displacement and horizontal strain only. 72 | TIDALPOTEN= parameter for the tidal potential catalog to be used. 73 | 1 = Doodson (1921) tidal potential catalog, 74 | 2 = Cartwright-Tayler-Edden (1973) tidal potential catalog 75 | 3 = Buellesfeld (1985) tidal potential catalog, 76 | 4 = Tamura (1987) tidal potential catalog, 77 | 5 = Xi (1989) tidal potential catalog, 78 | 6 = Roosbeek (1996) tidal potential catalog, 79 | 7 = Hartmann and Wenzel (1995) tidal potential catalog. 80 | As default, TIDALPOTEN= 7 is used. 81 | SAMPLERATE= Data sample interval in s (col. 12 ... 26, integer). 82 | INITIALEPO= Initial epoch, used to compute the Fourier development of 83 | the specific earth tide component. The initial epoch con- 84 | sists of the integer year (col. 12 ... 16, e.g. 1992), 85 | integer month (col. 17 ... 21), and integer day (col. 86 | 22 ... 26). 87 | PREDICSPAN= Time span for the prediction in hours (col. 12 ... 26, 88 | integer). The model tide series will start at the initial 89 | epoch INITIALEPO and the time span will be PREDICSPAN 90 | hours. 91 | TIDALCOMPO= Earth tide component (col. 12 ... 26, integer). 92 | = -1 for tidal potential in m**2/s**2. 93 | = 0 for tidal gravity in nm/s**2. 94 | = 1 for tidal tilt in mas, at azimuth STATAZIMUT. 95 | = 2 for tidal vertical displacement in mm. 96 | = 3 for tidal horizontal displacement in mm at 97 | azimuth STATAZIMUT. 98 | = 4 for tidal vertical strain in 10**-9 = nstr. 99 | = 5 for tidal horizontal strain in 10**-9 = nstr, 100 | at azimuth STATAZIMUT. 101 | = 6 for tidal areal strain in 10**-9 = nstr. 102 | = 7 for tidal shear strain in 10**-9 = nstr. 103 | = 8 for tidal volume strain in 10**-9 = nstr. 104 | = 9 for ocean tides in mm. 105 | The computed model tides will be given in the units 106 | defined above. 107 | AMTRUNCATE= Amplitude threshold for the tidal potential catalogue in 108 | m**2/s**2. Only tidal waves with amplitudes exceeding the 109 | amplitude threshold are used for the computation. This 110 | reduces the execution time, but also the accuracy of the 111 | computed tidal signales. For mean latitudes, the relation 112 | between amplitude threshold and gravity tide accuracy is 113 | for the Hartmann and Wenzel (1995) tidal potential catalog 114 | 115 | threshold rms error 116 | [nm/s**2] 117 | 118 | 1.D-01 88.40 119 | 1.D-02 14.40 120 | 1.D-03 2.25 121 | 1.D-04 0.44 122 | 1.D-05 0.068 123 | 1.D-06 0.011 124 | 1.D-07 0.002 125 | 1.D-08 0.001 126 | 1.D-09 0.001 127 | 1.D-10 0.001 128 | 129 | POLTIDECOR= Amplitude factor for gravity pole tide. If the amplitude 130 | factor is greater zero, gravity pole tides will be compu- 131 | ted using the IERS daily pole coordinates and stored as 132 | additional channel of the ouput file "pn".prd. 133 | LODTIDECOR= Amplitude factor for gravity LOD tide. If the amplitude 134 | factor is greater zero, gravity LOD tides will be computed 135 | using the IERS daily pole coordinates and stored as 136 | additional channeld of the output file "pn".prd. 137 | TIDALPARAM= wave group selection for a priori model tide computation. 138 | The number of wavegroups is restricted to 85. The tidal 139 | parameters may be taken from an earth tide analysis of 140 | another data set in the same station, or from a neigh- 141 | bouring station, or from synthetic gravity tide parameters 142 | (Timmen and Wenzel 1994, 1995), or from a guess only. 143 | Col.12..21: DFRA#= start frequency of the wave group in 144 | cpd (real). 145 | Col.22..31: DFRE#= end frequency of the wave group in 146 | cpd (real). 147 | Col.32..41: DGAM0#= amplitude factor of the wave group 148 | (real). 149 | Col.42..51: DPHI0#= phase lead of the wave group in deg 150 | (real). 151 | 152 | The wave group selection for model tide computation should be made 153 | according to the wave group selection for the analysis of Earth tide 154 | data; the list given below is a proposal only. The frequencies are 155 | given in cycles per day (cpd). 156 | 157 | group > 1 month > 6 months > 1 year 158 | from to from to from to 159 | [cpd] [cpd] [cpd] [cpd] [cpd] [cpd] 160 | 161 | SA - - - - 0.001379 0.004107 162 | SSA - - 0.004108 0.020884 0.004108 0.020884 163 | MM 0.020885 0.054747 0.020885 0.054747 0.020885 0.054747 164 | MF 0.054748 0.091348 0.054748 0.091348 0.054748 0.091348 165 | MTM 0.091349 0.501369 0.091349 0.501369 0.091349 0.501369 166 | Q1 0.501370 0.911390 0.501370 0.911390 0.501370 0.911390 167 | O1 0.911391 0.947991 0.911391 0.947991 0.911391 0.947991 168 | M1 0.947992 0.981854 0.947992 0.981854 0.947992 0.981854 169 | P1 - - 0.981855 0.998631 0.981855 0.998631 170 | S1 - - - - 0.998632 1.001369 171 | K1 0.981855 1.023622 0.998632 1.023622 1.001370 1.004107 172 | PSI1 - - - - 1.004108 1.006845 173 | PHI1 - - - - 1.006846 1.023622 174 | J1 1.023623 1.057485 1.023623 1.057485 1.023623 1.057485 175 | OO1 1.057486 1.470243 1.057486 1.470243 1.057486 1.470243 176 | 2N2 1.470244 1.880264 1.470244 1.880264 1.470244 1.880264 177 | N2 1.880265 1.914128 1.880265 1.914128 1.880265 1.914128 178 | M2 1.914129 1.950419 1.914129 1.950419 1.914129 1.950419 179 | L2 1.950420 1.984282 1.950420 1.984282 1.950420 1.984282 180 | S2 1.984283 2.451943 1.984283 2.002736 1.984283 2.002736 181 | K2 - - 2.002737 2.451943 2.002737 2.451943 182 | M3M6 2.451944 7.000000 2.451944 7.000000 2.451944 7.000000 183 | 184 | 185 | As an example for the control parameter file for program PREDICT, we 186 | list below file "bfhw9501.ini", which is provided on the CD-rom: 187 | 188 | # This file BFHW9501.INI status 1996.08.15 containing control parameters 189 | # for program package ETERNA 3.40 190 | 191 | # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 192 | # ! NOTE: The datalines have to start with their names. ! 193 | # ! An additional comment may follow after the values, ! 194 | # ! delimited by a whitespace ! 195 | # ! Values of 0 or less causes PREGRED to calculate the ! 196 | # ! range(s) automatically resp. to use default values ! 197 | # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 198 | 199 | # a commentline starts with an '#', it may appear at any position 200 | # in this file. Empty lines may appear too 201 | 202 | TEXTHEADER= 1.15000 0.0000 long 1.14673 -0.2474 Q1 203 | TEXTHEADER= 1.14882 0.0804 O1 1.13070 0.2132 M1 204 | TEXTHEADER= 1.13899 0.2062 P1 1.13000 0.0000 S1 205 | TEXTHEADER= 1.13600 0.2070 K1 1.25000 0.5000 PSI1 206 | TEXTHEADER= 1.18000 0.3000 PHI1 1.15354 0.0801 J1 207 | TEXTHEADER= 1.14851 -0.0251 OO1 1.15205 2.4463 2N2 208 | TEXTHEADER= 1.17054 2.5425 N2 1.18705 2.0327 M2 209 | TEXTHEADER= 1.22450 4.1630 L2 1.18963 0.6271 S2 210 | TEXTHEADER= 1.18947 0.8226 K2 1.06234 0.3783 M3 211 | TEXTHEADER= 1.02000 0.0000 M4 1.01500 0.0000 M5M6 212 | 213 | SENSORNAME=PREDICT # earth tide sensor name 214 | SAMPLERATE= 3600 # sampling interval in seconds 215 | STATLATITU= 48.3306 # stations latitude in degree 216 | STATLONITU= 8.3300 # stations longitude in degree 217 | STATELEVAT= 589.000 # stations elevation in meter 218 | STATGRAVIT= 0. # stations gravity in m/s**2 219 | STATAZIMUT= 0. # stations azimuth in degree from north 220 | INITIALEPO= 1987 1 1 # start epoch for PREDICT 221 | PREDICSPAN= 65544 # time span in hours for PREDICT 222 | TIDALCOMPO= 0 # tidal component, see manual 223 | TIDALPOTEN= 7 # HW95 tidal potential development 224 | AMTRUNCATE= 1.D-10 # amplitude threshold 225 | POLTIDECOR= 1.16 # poletide amplitude factor 226 | LODTIDECOR= 1.17 # LOD tide amplitude factor 227 | POLTIDEREG= 1 # ANALYZE pole tide regression adjustment 228 | 229 | TIDALPARAM= 0.000000 0.501369 1.15000 0.0000 long #tidal param. 230 | TIDALPARAM= 0.501370 0.911390 1.14673 -0.2474 Q1 #tidal param. 231 | TIDALPARAM= 0.911391 0.947991 1.14882 0.0804 O1 #tidal param. 232 | TIDALPARAM= 0.947992 0.981854 1.13070 0.2132 M1 #tidal param. 233 | TIDALPARAM= 0.981855 0.998631 1.13899 0.2062 P1 #tidal param. 234 | TIDALPARAM= 0.998632 1.001369 1.13000 0.0000 S1 #tidal param. 235 | TIDALPARAM= 1.001370 1.004107 1.13600 0.2070 K1 #tidal param. 236 | TIDALPARAM= 1.004108 1.006845 1.25000 0.5000 PSI1 #tidal param. 237 | TIDALPARAM= 1.006846 1.023622 1.18000 0.3000 PHI1 #tidal param. 238 | TIDALPARAM= 1.023623 1.057485 1.15354 0.0801 J1 #tidal param. 239 | TIDALPARAM= 1.057486 1.470243 1.14851 -0.0251 OO1 #tidal param. 240 | TIDALPARAM= 1.470244 1.880264 1.15205 2.4463 2N2 #tidal param. 241 | TIDALPARAM= 1.880265 1.914128 1.17054 2.5425 N2 #tidal param. 242 | TIDALPARAM= 1.914129 1.950419 1.18705 2.0327 M2 #tidal param. 243 | TIDALPARAM= 1.950420 1.984282 1.22450 4.1630 L2 #tidal param. 244 | TIDALPARAM= 1.984283 2.002736 1.18963 0.6271 S2 #tidal param. 245 | TIDALPARAM= 2.002737 2.451943 1.18947 0.8226 K2 #tidal param. 246 | TIDALPARAM= 2.451944 3.381478 1.06234 0.3783 M3 #tidal param. 247 | TIDALPARAM= 3.381379 4.347615 1.02000 0.0000 M4 #tidal param. 248 | TIDALPARAM= 4.347616 7.000000 1.01500 0.0000 M5M6 #tidal param. 249 | 250 | # End of file BFHW9501.INI 251 | 252 | Section 11.3: Description of output file "pn".prd 253 | ------------------------------------------------- 254 | 255 | The data output file of program PREDICT uses the ETERNA standard 256 | format for exchange of high resolution and high rate tidal data 257 | (Wenzel 1995). The output file is divided into a file header giving 258 | an alphanumeric description of the file (provided with control 259 | parameters TEXTHEADER of the "pn".ini file) and the file body 260 | containing the computed tidal signal. The format of the file body is 261 | 262 | Col.01...08: date in year, month, day; e.g. 19900328 means year 1990, 263 | month 03 = March, day 28th. 264 | Col.10...15: time in hour, minute, second, given in Universal Time 265 | Coordinated (UTC); e.g. 231200 means 23 hours 12 minutes 266 | 00 seconds. The seconds are assumed to be exact, e.g. 00 267 | seconds means 0.000 seconds. 268 | Col.16...25: Channel 1 in units of the tidal component. This channel 269 | contains the sum of the tidal signal and the gravity 270 | pole tide and LOD tide signals. 271 | Col.26...35: Channel 2 in units of the tidal component. This channel 272 | usually conatins the gravity tide. 273 | Col.36...45: Channel 3 in units of the tidal component. This channel 274 | contains the gravity pole tide, if computed. 275 | Col.46...55: Channel 4 in units of the tidal component. This channel 276 | contains the gravity LOD tide, if computed. 277 | 278 | The file ends with 99999999 as date. 279 | 280 | As an example, a part of the output file "bfhw9501.prd" computed with 281 | program PREDICT using the control parameter file "bfhw9501.ini" is 282 | given below. This files contains gravity tides, gravity pole tides and 283 | gravity LOD tides. 284 | 285 | 77777777 0.000 0.000 0.000 0.000 286 | 19870101 0 -1630.338 -1649.708 18.906 0.464 287 | 19870101 10000 -1544.612 -1563.988 18.909 0.467 288 | 19870101 20000 -1253.944 -1273.327 18.913 0.469 289 | 19870101 30000 -811.681 -831.070 18.917 0.472 290 | 19870101 40000 -295.698 -315.093 18.921 0.474 291 | 19870101 50000 208.593 189.191 18.925 0.477 292 | 19870101 60000 626.498 607.090 18.929 0.479 293 | 19870101 70000 909.354 889.939 18.933 0.482 294 | 19870101 80000 1043.335 1023.914 18.937 0.485 295 | 19870101 90000 1049.655 1030.227 18.941 0.487 296 | 19870101 100000 976.094 956.660 18.944 0.490 297 | 19870101 110000 881.969 862.529 18.948 0.492 298 | 19870101 120000 820.439 800.992 18.952 0.495 299 | 300 | The data stored in the output file of program PREDICT can be plotted 301 | using program PLOTDATA (see encl. 006...008). 302 | 303 | Section 11.4: Execution time of program PREDICT 304 | ----------------------------------------------- 305 | 306 | The execution time of program PREDICT depends mainly on the number of 307 | waves of the chosen tidal potential catalogue, on the amplitude 308 | threshold of the tidal potential, and on the number of samples to be 309 | computed. The execution time given below has been measured on a 100 310 | MHz PENTIUM pc with operating system MS-DOS 6.22 for 8760 hourly 311 | gravity signals including pole tide and LOD tide. The rms error has 312 | been determined by comparison with gravity tide benchmark series 313 | BFDE403F.DAT. 314 | 315 | catalogue threshold nwave rms error exec.time 316 | [nm/s**2] [s] 317 | 318 | Tamura (1987) 1.D-06 1200 0.070 11.86 319 | Hartmann+Wenzel (1995) 1.D-01 9 88.40 3.90 320 | Hartmann+Wenzel (1995) 1.D-02 42 14.40 4.06 321 | Hartmann+Wenzel (1995) 1.D-03 155 2.25 4.94 322 | Hartmann+Wenzel (1995) 1.D-04 434 0.44 7.20 323 | Hartmann+Wenzel (1995) 1.D-05 1248 0.068 13.51 324 | Hartmann+Wenzel (1995) 1.D-06 3268 0.011 33.01 325 | Hartmann+Wenzel (1995) 1.D-07 7761 0.002 83.82 326 | Hartmann+Wenzel (1995) 1.D-08 11462 0.001 132.86 327 | Hartmann+Wenzel (1995) 1.D-09 12000 0.001 139.95 328 | Hartmann+Wenzel (1995) 1.D-10 12011 0.001 140.11 329 | -------------------------------------------------------------------------------- /PyGTide_user-guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/PyGTide_user-guide.pdf -------------------------------------------------------------------------------- /README.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/README.docx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PyGTide 2 | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1346260.svg)](https://doi.org/10.5281/zenodo.1346260) 3 | 4 | ## A Python module and wrapper for ETERNA PREDICT to compute gravitational tides on Earth 5 | 6 | PyGTide is a Python module that wraps around ETERNA PREDICT 3.4 which is compiled from Fortran into an executable using [f2py](https://docs.scipy.org/doc/numpy/f2py/). The original ETERNA PREDICT 3.3 was written by the late Prof. H.-G. Wenzel (Wenzel, 1996) in a mix of Fortran 77 and 90. This was updated by Kudryavtsev (2004) to include the latest tidal catalogue. Note that the original Fortran code was comprehensively revised in order to facilitate integration into Python. The original Fortran code for ETERNA PREDICT can be downloaded from the [International Geodynamics and Earth Tide Service (IGETS)](http://igets.u-strasbg.fr/soft_and_tool.php). 7 | 8 | ## How to use 9 | 10 | There are two options: 11 | * Download and install on your system (see below instructions) 12 | * Via our online calculator: groundwater.app 13 | 14 | 15 | ## How to install and run 16 | 17 | Instructions: 18 | * Download and install [*Anaconda*](https://www.anaconda.com/products/distribution) or [*Miniconda*](https://docs.conda.io/en/latest/miniconda.html) 19 | 20 | * Make sure the following packages are installed:
21 | `conda install numpy pandas requests git` 22 | 23 | * Download and install pygtide: 24 | * *Linux* or *MacOS*:
25 | **NOTE**: Make sure suitable C++ and Fortran compilers are available. 26 | ``` 27 | pip install pygtide 28 | ``` 29 | 30 | * *Windows*:
31 | Download the correct wheel for your Python version (available for 3.8 to 3.11) from the subfolder "windows" onto your system. 32 | Then navigate your Anaconda explorer to the download location and execute: 33 | ``` 34 | pip install [wheel_name_depending_on_python_version] 35 | ``` 36 | 37 | * Run tests:
38 | ``` 39 | python -c "import pygtide; pygtide.test(msg=True)" 40 | ``` 41 | * The internal database files can be updated as follows:
42 | ``` 43 | python -c "import pygtide; pygtide.update()" 44 | ``` 45 | * See `pygtide/tests.py` for example usage: 46 | 47 | ``` 48 | from pygtide import predict_series 49 | args = (-20.82071, -70.15288, 830.0, '2020-01-01', 6, 600) 50 | series = predict_series(*args, statazimut=90, tidalcompo=8) 51 | ``` 52 | 53 | * Development version: This can be installed by downloading the Github repository and running: 54 | `pip install download_path`.
55 | Alternatively, in one step as:
56 | ``` 57 | pip install git+https://github.com/hydrogeoscience/pygtide.git 58 | ``` 59 | 60 | ## How to use 61 | 62 | An updated user guide is currently in progress ... 63 | 64 | 65 | ## How to cite 66 | If you use PyGTide, please cite the work as: 67 | 68 | *Rau, Gabriel C. (2018) hydrogeoscience/pygtide: PyGTid. Zenodo. [https://doi.org/10.5281/zenodo.1346260](https://doi.org/10.5281/zenodo.1346260)* 69 | 70 | ## Example 71 | 72 | This image shows Earth tides calculated for the city Karlsruhe (Germany) in the year 2018. 73 | 74 | ## References 75 | * Hartmann, T., and H.-G. Wenzel (1995), The HW95 tidal potential catalogue, Geophysical Research Letters, 22(24), 3553–3556, https://doi.org/10.1029/95GL03324. 76 | * Kudryavtsev, S. M. (2004), Improved harmonic development of the Earth tide-generating potential, Journal of Geodesy, 17(12), 829-838, https://doi.org/10.1007/s00190-003-0361-2. 77 | * Wenzel, H.-G. (1996), The nanogal software: Earth tide data processing package ETERNA 3.30, Bulletin d’Informations des Marées Terrestres, 124, 9425–9439. 78 | * McMillan, T. C., and Rau, G. C., and Timms, W. A., and Andersen, M. S. (2019), Utilizing the impact of Earth and atmospheric tides on groundwater systems: A review reveals the future potential, Reviews of Geophysics, https://dx.doi.org/10.1029/2018RG000630. 79 | 80 | ## License 81 | PyGTide is released by [Gabriel C. Rau](https://hydrogeo.science) and [Tom Eulenfeld](https://scholar.google.com/citations?user=SJXF3mwAAAAJ&hl=en) under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/) 82 | -------------------------------------------------------------------------------- /earth_tide_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/earth_tide_example.png -------------------------------------------------------------------------------- /module_test.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from pygtide import predict_series 3 | 4 | args = (-20.82071, -70.15288, 830.0, '2017-01-01', 10, 600) 5 | series = predict_series(*args, statazimut=90, tidalcompo=0) 6 | print(repr(series)) -------------------------------------------------------------------------------- /pygtide/__init__.py: -------------------------------------------------------------------------------- 1 | from pygtide.core import pygtide 2 | from pygtide.core import predict_series, predict_spectrum, predict_table 3 | from pygtide.core import plot_series, plot_spectrum 4 | from pygtide.tests import test 5 | # from pygtide.update_etpred_data import update 6 | __version__ = '0.8' 7 | -------------------------------------------------------------------------------- /pygtide/commdat/[raw]_Leap_Second_History.dat: -------------------------------------------------------------------------------- 1 | # Value of TAI-UTC in second valid beetween the initial value until 2 | # the epoch given on the next line. The last line reads that NO 3 | # leap second was introduced since the corresponding date 4 | # Updated through IERS Bulletin 63 issued in January 2022 5 | # 6 | # 7 | # File expires on 28 December 2022 8 | # 9 | # 10 | # MJD Date TAI-UTC (s) 11 | # day month year 12 | # --- -------------- ------ 13 | # 14 | 41317.0 1 1 1972 10 15 | 41499.0 1 7 1972 11 16 | 41683.0 1 1 1973 12 17 | 42048.0 1 1 1974 13 18 | 42413.0 1 1 1975 14 19 | 42778.0 1 1 1976 15 20 | 43144.0 1 1 1977 16 21 | 43509.0 1 1 1978 17 22 | 43874.0 1 1 1979 18 23 | 44239.0 1 1 1980 19 24 | 44786.0 1 7 1981 20 25 | 45151.0 1 7 1982 21 26 | 45516.0 1 7 1983 22 27 | 46247.0 1 7 1985 23 28 | 47161.0 1 1 1988 24 29 | 47892.0 1 1 1990 25 30 | 48257.0 1 1 1991 26 31 | 48804.0 1 7 1992 27 32 | 49169.0 1 7 1993 28 33 | 49534.0 1 7 1994 29 34 | 50083.0 1 1 1996 30 35 | 50630.0 1 7 1997 31 36 | 51179.0 1 1 1999 32 37 | 53736.0 1 1 2006 33 38 | 54832.0 1 1 2009 34 39 | 56109.0 1 7 2012 35 40 | 57204.0 1 7 2015 36 41 | 57754.0 1 1 2017 37 42 | -------------------------------------------------------------------------------- /pygtide/commdat/cted73hw.dat: -------------------------------------------------------------------------------- 1 | File: CTED73HW.DAT 2 | Status: 19950628 3 | Contents: Tidal potential catalogue of Cartwright and Tayler (1971) and 4 | Cartwright and Edden (1973) transformed into HW95 normalization 5 | and format by Hans-Georg Wenzel, May 1995. 6 | Darwin names added in June 1995. 7 | 8 | References: Cartwright, D.E. and R.J. Tayler (1971): New computations of 9 | tide generating potential. The Geophysical Journal of the Royal 10 | Astronomical Scociety, vol. 23 no. 1, Oxford 1971. 11 | 12 | Cartwright, D.E. and A.C. Edden (1973): Corrected tables of tidal 13 | harmonics. The Geophysical Journal of the Royal Astronomical 14 | Society, vol. 33, no. 3, Oxford 1973. 15 | 16 | Wenzel, H.-G. (1976): Zur Genauigkeit von gravimetrischen 17 | Erdgezeitenbeobachtungen. Wissenschaftliche Arbeiten der 18 | Lehrstuehle fuer Geodaesie, Photogrammetrie und Kartographie 19 | an der Technischen Universitaet Hannover Nr. 67, Hannover 1976. 20 | 21 | Doodson, A.T. (1921): The harmonic development of the tide 22 | generating potential. Proceedings of the Royal Society, series 23 | A100, 306-328, London 1921. Reprint in International Hydrographic 24 | Revue vol.31 no.1, Monaco 1954. 25 | 26 | Chojnicki, T. (1973): Ein Verfahren zur Erdgezeitenanalyse in 27 | Anlehnung an das Prinzip der kleinsten Quadrate. Mitteilungen 28 | aus dem Institut fuer Theoretische Geodaesie der Universitaet 29 | Bonn Nr. 15, Bonn 1973. 30 | 31 | 32 | Format of the file: 33 | 34 | Col. 1... 6: sequence number (1...505). The end of this file is 35 | marked with sequence number 999999. 36 | Col. 7... 9: body generating the potential. MO = Moon, SU = Sun, 37 | ME = Mercury, VE= Venus, MA = Mars, JU= Jupiter, 38 | SA = Saturn, FM = quadrupole moment of the Earth on Moon, 39 | FS = quadrupole moment of the Earth on Sun. 40 | Col. 10... 11: l = degree of the spherical harmonic development. 41 | Col. 12... 14: m = order of the spherical harmonic development, 42 | equal 43 | k1 = integer argument number for the mean local Moontime, 44 | period 24 hours 50 min. 45 | Col. 15... 17: k2 = integer argument number for the mean longitude of the 46 | Moon, period 27.3 days. 47 | Col. 18... 20: k3 = integer argument number for the mean longitude of the 48 | Sun, period 365.25 days. 49 | Col. 21... 23: k4 = integer argument number for the mean longitude of the 50 | lunar perigee, period 8.8 years. 51 | Col. 24... 26: k5 = integer argument number for the negative mean longitude 52 | of the lunar ascending node, period 18.6 years. 53 | Col. 27... 29: k6 = integer argument number for the mean longitude of the 54 | solar perigee, period 20942 years. 55 | Col. 30... 32: k7 = integer argument number for the mean longitude of Mercury, 56 | period 88 days. 57 | Col. 33... 35: k8 = integer argument number for the mean longitude of Venus, 58 | period 225 days. 59 | Col. 36... 38: k9 = integer argument number for the mean longitude of Mars, 60 | period 1.88 years. 61 | Col. 39... 41: k10= integer argument number for the mean longitude of Jupiter, 62 | period 11.86 years. 63 | Col. 42... 44: k11= integer argument number for the mean longitude of Saturn, 64 | period 29.4 years. 65 | Col. 45... 56: fr= frequency of the tidal wave at J2000 in degree per hour. 66 | Col. 57... 68: C0 = COS-coefficient of the tidal potential in 67 | 10**-10 m**2/s**2. The C0 coefficient has to be multiplied 68 | with the COS of the argument. 69 | Col. 69... 80: S0 = SIN-coefficient of the tidal potential in 70 | 10**-10 m**2/s**2. The S0 coefficient has to be multiplied 71 | with the SIN of the argument. 72 | Col. 81... 90: C1 = t*COS-coefficent of the tidal potential in 10**-10 73 | m**2/s**2 per Julian century. The C1 coefficient has to 74 | be multiplied with the time difference between the epoch 75 | and J2000 (in Julian centuries) and with the COS of 76 | the argument. 77 | Col. 91...100: S1 = t*SIN-coefficent of the tidal potential in 10**-10 78 | m**2/s**2 per Julian century. The S1 coefficient has to 79 | be multiplied with the time difference between the epoch 80 | and J2000 (in Julian centuries) and with the SIN of 81 | the argument. 82 | Col.102...105: nam= Darwin name of the tidal wave (for very few main tidal 83 | waves available only). 84 | 85 | number l m k k k k k k k k k k frequency C0 S0 C1 S1 nam 86 | 2 3 4 5 6 7 8 9 10 11 (deg/hour) 87 | C******************************************************************************************************** 88 | 1 2 0 0 0 0 0 0 0 0 0 0 0 0.00000000-8695390537. 0. -2791490. 0. M0S0 89 | 2 2 0 0 0 0 1 0 0 0 0 0 0 0.00220641 771991448. 0. -241554. 0. 90 | 3 2 0 0 0 0 2 0 0 0 0 0 0 0.00441281 -7993422. 0. -414576. 0. 91 | 4 3 0 0 0 1 0 0 0 0 0 0 0 0.00464181 0. -5825280. 0. -228983. 92 | 5 2 0 0 0 2 1 0 0 0 0 0 0 0.01149003 1059998. 0. 1. 0. 93 | 6 2 0 0 1 0 -1 -1 0 0 0 0 0 0.03886027 -1059998. 0. -1. 0. 94 | 7 2 0 0 1 0 0 -1 0 0 0 0 0 0.04106668 -135992619. 0. 242190. 0. SA 95 | 8 2 0 0 1 0 0 1 0 0 0 0 0 0.04107060 7037696. 0. -276372. 0. 96 | 9 2 0 0 1 0 1 -1 0 0 0 0 0 0.04327309 1413331. 0. 1. 0. 97 | 10 2 0 0 2 -2 -1 0 0 0 0 0 0 0.07064725 588888. 0. 1. 0. 98 | 11 2 0 0 2 -2 0 0 0 0 0 0 0 0.07285365 -8873781. 0. -242335. 0. 99 | 12 3 0 0 2 -1 0 0 0 0 0 0 0 0.07749547 0. -1112893. 0. -1. 100 | 13 2 0 0 2 0 0 -2 0 0 0 0 0 0.08213336 -3257308. 0. 242323. 0. 101 | 14 2 0 0 2 0 0 0 0 0 0 0 0 0.08213728 -856437125. 0. 1157717. 0. SSA 102 | 15 2 0 0 2 0 1 0 0 0 0 0 0 0.08434369 21317739. 0. 21. 0. 103 | 16 2 0 0 2 0 2 0 0 0 0 0 0 0.08655009 4711102. 0. 5. 0. 104 | 17 2 0 0 3 0 0 -1 0 0 0 0 0 0.12320396 -49908728. 0. 276329. 0. STA 105 | 18 2 0 0 3 0 1 -1 0 0 0 0 0 0.12541037 824443. 0. 1. 0. 106 | 19 2 0 0 4 0 0 -2 0 0 0 0 0 0.16427064 -1884441. 0. -2. 0. 107 | 20 2 0 1 -3 1 -1 1 0 0 0 0 0 0.42824797 588888. 0. 1. 0. 108 | 21 2 0 1 -3 1 0 1 0 0 0 0 0 0.43045437 -8008874. 0. -8. 0. 109 | 22 2 0 1 -2 -1 -2 0 0 0 0 0 0 0.45782461 588888. 0. 1. 0. 110 | 23 2 0 1 -2 -1 -1 0 0 0 0 0 0 0.46003102 2031176. 0. 276381. 0. 111 | 24 3 0 1 -2 0 0 0 0 0 0 0 0 0.46687924 0. 1112893. 0. 1. 112 | 25 2 0 1 -2 1 -1 0 0 0 0 0 0 0.46931465 13308864. 0. 13. 0. 113 | 26 2 0 1 -2 1 0 0 0 0 0 0 0 0.47152105 -185970769. 0. -186. 0. MSM 114 | 27 2 0 1 -2 1 1 0 0 0 0 0 0 0.47372746 12131089. 0. 12. 0. 115 | 28 2 0 1 -1 -1 0 1 0 0 0 0 0 0.50330803 -6124433. 0. -6. 0. 116 | 29 2 0 1 -1 0 0 0 0 0 0 0 0 0.50794788 5535545. 0. 6. 0. 117 | 30 2 0 1 -1 1 0 -1 0 0 0 0 0 0.51258773 1413331. 0. 1. 0. 118 | 31 2 0 1 0 -1 -2 0 0 0 0 0 0 0.53996189 -824443. 0. -1. 0. 119 | 32 2 0 1 0 -1 -1 0 0 0 0 0 0 0.54216830 63835438. 0. 64. 0. 120 | 33 2 0 1 0 -1 0 0 0 0 0 0 0 0.54437471 -972518278. 0. -277351. 0. MM 121 | 34 2 0 1 0 -1 1 0 0 0 0 0 0 0.54658111 63287014. 0. 242390. 0. 122 | 35 3 0 1 0 0 -1 0 0 0 0 0 0 0.54681011 0. 5442306. 0. 32182. 123 | 36 3 0 1 0 0 0 0 0 0 0 0 0 0.54901652 0. -103721660. 0. -104. 124 | 37 3 0 1 0 0 1 0 0 0 0 0 0 0.55122293 0. -16248243. 0. -16. 125 | 38 3 0 1 0 0 2 0 0 0 0 0 0 0.55342933 0. 1335472. 0. 1. 126 | 39 2 0 1 0 1 0 0 0 0 0 0 0 0.55365833 51939904. 0. 52. 0. 127 | 40 2 0 1 0 1 1 0 0 0 0 0 0 0.55586474 21317739. 0. 21. 0. 128 | 41 2 0 1 0 1 2 0 0 0 0 0 0 0.55807115 5771100. 0. 6. 0. 129 | 42 2 0 1 1 -1 0 -1 0 0 0 0 0 0.58544138 4946658. 0. 5. 0. 130 | 43 2 0 1 2 -1 0 0 0 0 0 0 0 0.62651199 13544420. 0. 14. 0. 131 | 44 2 0 1 2 -1 1 0 0 0 0 0 0 0.62871839 6534848. 0. -363483. 0. 132 | 45 2 0 1 2 -1 2 0 0 0 0 0 0 0.63092480 839895. 0. -414568. 0. 133 | 46 2 0 1 3 -1 0 -1 0 0 0 0 0 0.66757866 588888. 0. 1. 0. 134 | 47 2 0 2 -4 2 0 0 0 0 0 0 0 0.94304211 -3062217. 0. -3. 0. 135 | 48 2 0 2 -3 0 0 1 0 0 0 0 0 0.97482908 -10421508. 0. 363479. 0. 136 | 49 2 0 2 -3 0 1 1 0 0 0 0 0 0.97703549 588888. 0. 1. 0. 137 | 50 2 0 2 -2 0 -1 0 0 0 0 0 0 1.01368935 -11659979. 0. -12. 0. 138 | 51 2 0 2 -2 0 0 0 0 0 0 0 0 1.01589576 -161119703. 0. -161. 0. MSF 139 | 52 2 0 2 -2 0 1 0 0 0 0 0 0 1.01810217 10522666. 0. 242337. 0. 140 | 53 3 0 2 -2 1 0 0 0 0 0 0 0 1.02053757 0. -3338680. 0. -3. 141 | 54 2 0 2 -2 2 0 0 0 0 0 0 0 1.02517939 1059998. 0. 1. 0. 142 | 55 2 0 2 -1 -2 0 1 0 0 0 0 0 1.04768273 -1059998. 0. -1. 0. 143 | 56 2 0 2 -1 -1 0 0 0 0 0 0 0 1.05232259 824443. 0. 1. 0. 144 | 57 2 0 2 -1 0 0 -1 0 0 0 0 0 1.05696244 1648886. 0. 2. 0. 145 | 58 2 0 2 -1 0 0 1 0 0 0 0 0 1.05696636 -5535545. 0. -6. 0. 146 | 59 2 0 2 -1 0 1 1 0 0 0 0 0 1.05917277 -1059998. 0. -1. 0. 147 | 60 2 0 2 0 -2 -1 0 0 0 0 0 0 1.08654301 4122215. 0. 4. 0. 148 | 61 2 0 2 0 -2 0 0 0 0 0 0 0 1.08874941 -79617631. 0. -80. 0. 149 | 62 2 0 2 0 -2 1 0 0 0 0 0 0 1.09095582 5299990. 0. 5. 0. 150 | 63 3 0 2 0 -1 0 0 0 0 0 0 0 1.09339123 0. -16915979. 0. -17. 151 | 64 3 0 2 0 -1 1 0 0 0 0 0 0 1.09559763 0. -2670944. 0. -3. 152 | 65 2 0 2 0 0 0 0 0 0 0 0 0 1.09803304-1840873115. 0. 1864707. 0. MF 153 | 66 2 0 2 0 0 1 0 0 0 0 0 0 1.10023945 -763287414. 0. 275616. 0. 154 | 67 2 0 2 0 0 2 0 0 0 0 0 0 1.10244585 -71255424. 0. -71. 0. 155 | 68 2 0 2 0 0 3 0 0 0 0 0 0 1.10465226 1795621. 0. 276381. 0. 156 | 69 2 0 2 1 -2 0 -1 0 0 0 0 0 1.12981609 824443. 0. 1. 0. 157 | 70 2 0 2 1 0 0 -1 0 0 0 0 0 1.13909972 6359988. 0. 6. 0. 158 | 71 2 0 2 1 0 1 -1 0 0 0 0 0 1.14130612 1648886. 0. 2. 0. 159 | 72 2 0 2 2 -2 0 0 0 0 0 0 0 1.17088669 5535545. 0. 6. 0. 160 | 73 2 0 2 2 -2 1 0 0 0 0 0 0 1.17309310 2237774. 0. 2. 0. 161 | 74 2 0 2 2 0 2 0 0 0 0 0 0 1.18458313 824443. 0. 1. 0. 162 | 75 2 0 3 -5 1 0 1 0 0 0 0 0 1.44635013 -588888. 0. -1. 0. 163 | 76 2 0 3 -4 1 0 0 0 0 0 0 0 1.48741681 -4711102. 0. -5. 0. 164 | 77 2 0 3 -3 -1 0 1 0 0 0 0 0 1.51920379 -1884441. 0. -2. 0. 165 | 78 2 0 3 -3 1 0 1 0 0 0 0 0 1.52848741 -2915481. 0. 276376. 0. 166 | 79 2 0 3 -3 1 1 1 0 0 0 0 0 1.53069382 -839895. 0. 414568. 0. 167 | 80 2 0 3 -2 -1 -1 0 0 0 0 0 0 1.55806406 -2473329. 0. -2. 0. 168 | 81 2 0 3 -2 -1 0 0 0 0 0 0 0 1.56027047 -25439953. 0. -25. 0. 169 | 82 2 0 3 -2 -1 1 0 0 0 0 0 0 1.56247687 1648886. 0. 2. 0. 170 | 83 3 0 3 -2 0 0 0 0 0 0 0 0 1.56491228 0. -2670944. 0. -3. 171 | 84 2 0 3 -2 1 0 0 0 0 0 0 0 1.56955409 -66897655. 0. -67. 0. MSTM 172 | 85 2 0 3 -2 1 1 0 0 0 0 0 0 1.57176050 -27677727. 0. -28. 0. 173 | 86 2 0 3 -2 1 2 0 0 0 0 0 0 1.57396691 -2473329. 0. -2. 0. 174 | 87 2 0 3 -1 -1 0 1 0 0 0 0 0 1.60134107 -3533327. 0. -4. 0. 175 | 88 2 0 3 -1 -1 1 1 0 0 0 0 0 1.60354747 -1059998. 0. -1. 0. 176 | 89 2 0 3 -1 0 0 0 0 0 0 0 0 1.60598092 1884441. 0. 2. 0. 177 | 90 2 0 3 -1 0 1 0 0 0 0 0 0 1.60818733 824443. 0. 1. 0. 178 | 91 2 0 3 -1 1 0 -1 0 0 0 0 0 1.61062077 864907. 0. 242327. 0. 179 | 92 2 0 3 0 -3 0 0 0 0 0 0 0 1.63312412 -6359988. 0. -6. 0. 180 | 93 2 0 3 0 -3 1 -1 0 0 0 0 0 1.63532856 1059998. 0. 1. 0. 181 | 94 2 0 3 0 -3 1 1 0 0 0 0 0 1.63533249 1059998. 0. 1. 0. 182 | 95 3 0 3 0 -2 0 0 0 0 0 0 0 1.63776593 0. -2003208. 0. -2. 183 | 96 2 0 3 0 -1 0 0 0 0 0 0 0 1.64240775 -352597059. 0. 276026. 0. MTM 184 | 97 2 0 3 0 -1 1 0 0 0 0 0 0 1.64461415 -146161953. 0. -146. 0. 185 | 98 2 0 3 0 -1 2 0 0 0 0 0 0 1.64682056 -14340738. 0. -639883. 0. 186 | 99 3 0 3 0 0 0 0 0 0 0 0 0 1.64704956 0. -8096759. 0. 261145. 187 | 100 3 0 3 0 0 1 0 0 0 0 0 0 1.64925597 0. -5341888. 0. -5. 188 | 101 3 0 3 0 0 2 0 0 0 0 0 0 1.65146237 0. -1112893. 0. -1. 189 | 102 2 0 3 0 1 2 0 0 0 0 0 0 1.65610419 1413331. 0. 1. 0. 190 | 103 2 0 3 0 1 3 0 0 0 0 0 0 1.65831059 588888. 0. 1. 0. 191 | 104 2 0 3 1 -1 0 -1 0 0 0 0 0 1.68347442 3062217. 0. 3. 0. 192 | 105 2 0 3 1 -1 1 -1 0 0 0 0 0 1.68568083 1059998. 0. 1. 0. 193 | 106 2 0 4 -4 0 0 0 0 0 0 0 0 2.03179152 -2237774. 0. -2. 0. 194 | 107 2 0 4 -4 2 0 0 0 0 0 0 0 2.04107515 -1648886. 0. -2. 0. 195 | 108 2 0 4 -4 2 1 0 0 0 0 0 0 2.04328155 -824443. 0. -1. 0. 196 | 109 2 0 4 -3 0 0 1 0 0 0 0 0 2.07286212 -3886660. 0. -4. 0. 197 | 110 2 0 4 -3 0 1 1 0 0 0 0 0 2.07506853 -1648886. 0. -2. 0. 198 | 111 2 0 4 -2 -2 0 0 0 0 0 0 0 2.10464517 -3062217. 0. -3. 0. 199 | 112 2 0 4 -2 0 0 0 0 0 0 0 0 2.11392880 -56415452. 0. -56. 0. MSQM 200 | 113 2 0 4 -2 0 1 0 0 0 0 0 0 2.11613521 -23202179. 0. -23. 0. 201 | 114 2 0 4 -2 0 2 0 0 0 0 0 0 2.11834161 -2237774. 0. -2. 0. 202 | 115 2 0 4 -1 -2 0 1 0 0 0 0 0 2.14571577 -824443. 0. -1. 0. 203 | 116 2 0 4 -1 0 0 -1 0 0 0 0 0 2.15499548 824443. 0. 1. 0. 204 | 117 2 0 4 0 -2 0 0 0 0 0 0 0 2.18678245 -46757692. 0. -47. 0. 205 | 118 2 0 4 0 -2 1 0 0 0 0 0 0 2.18898886 -19315520. 0. -19. 0. 206 | 119 2 0 4 0 -2 2 0 0 0 0 0 0 2.19119527 -1924905. 0. -242328. 0. 207 | 120 3 0 4 0 -1 0 0 0 0 0 0 0 2.19142427 0. -2225787. 0. -2. 208 | 121 3 0 4 0 -1 1 0 0 0 0 0 0 2.19363067 0. -1335472. 0. -1. 209 | 122 2 0 5 -4 1 0 0 0 0 0 0 0 2.58544985 -2708884. 0. -3. 0. 210 | 123 2 0 5 -2 -1 0 0 0 0 0 0 0 2.65830351 -13662197. 0. -14. 0. 211 | 124 2 0 5 -2 -1 1 0 0 0 0 0 0 2.66050991 -5653323. 0. -6. 0. 212 | 125 2 0 5 0 -3 0 0 0 0 0 0 0 2.73115716 -5299990. 0. -5. 0. 213 | 126 2 0 5 0 -3 1 0 0 0 0 0 0 2.73336357 -2237774. 0. -2. 0. 214 | 127 2 0 6 -4 0 0 0 0 0 0 0 0 3.12982456 -1413331. 0. -1. 0. 215 | 128 2 0 6 -2 -2 0 0 0 0 0 0 0 3.20267821 -2237774. 0. -2. 0. 216 | 129 2 1 -5 0 4 0 0 0 0 0 0 0 11.76553677 0. 1495976. 0. 1. 217 | 130 2 1 -5 2 2 0 0 0 0 0 0 0 11.83839043 0. 6255899. 0. 6. 218 | 131 2 1 -5 4 0 0 0 0 0 0 0 0 11.91124408 0. 3807939. 0. 4. 219 | 132 3 1 -4 0 2 0 0 0 0 0 0 0 12.30526967 1180402. 0. 1. 0. 220 | 133 2 1 -4 0 3 -1 0 0 0 0 0 0 12.30770507 0. 2719956. 0. 3. 221 | 134 2 1 -4 0 3 0 0 0 0 0 0 0 12.30991148 0. 14687764. 0. 15. 222 | 135 2 1 -4 1 1 0 1 0 0 0 0 0 12.34169846 0. -815987. 0. -1. 223 | 136 3 1 -4 2 0 0 0 0 0 0 0 0 12.37812332 1180402. 0. 1. 0. 224 | 137 2 1 -4 2 1 -1 0 0 0 0 0 0 12.38055873 0. 7207884. 0. 7. 225 | 138 2 1 -4 2 1 0 0 0 0 0 0 0 12.38276513 0. 37943390. 0. 38. 226 | 139 2 1 -4 3 1 0 -1 0 0 0 0 0 12.42383181 0. 2991952. 0. 3. 227 | 140 2 1 -4 4 -1 -1 0 0 0 0 0 0 12.45341238 0. 1359978. 0. 1. 228 | 141 2 1 -4 4 -1 0 0 0 0 0 0 0 12.45561879 0. 7207884. 0. 7. 229 | 142 2 1 -4 5 -1 0 -1 0 0 0 0 0 12.49668547 0. 815987. 0. 1. 230 | 143 2 1 -3 -1 2 0 1 0 0 0 0 0 12.81321951 0. -1767972. 0. -2. 231 | 144 2 1 -3 0 0 -2 0 0 0 0 0 0 12.84058975 0. -815987. 0. -1. 232 | 145 3 1 -3 0 1 -1 0 0 0 0 0 0 12.84743797 2714924. 0. 3. 0. 233 | 146 3 1 -3 0 1 0 0 0 0 0 0 0 12.84964437 6846330. 0. 7. 0. 234 | 147 2 1 -3 0 2 -2 0 0 0 0 0 0 12.84987337 0. -412550. 0. 439381. 235 | 148 2 1 -3 0 2 -1 0 0 0 0 0 0 12.85207978 0. 24479606. 0. 24. 236 | 149 2 1 -3 0 2 0 0 0 0 0 0 0 12.85428619 0. 129572478. 0. -319005. 2Q1 237 | 150 2 1 -3 1 0 0 1 0 0 0 0 0 12.88607316 0. -2175965. 0. -2. 238 | 151 2 1 -3 1 1 0 0 0 0 0 0 0 12.89071301 0. -1359978. 0. -1. 239 | 152 2 1 -3 1 2 0 -1 0 0 0 0 0 12.89535287 0. 1903969. 0. 2. 240 | 153 3 1 -3 2 -1 0 0 0 0 0 0 0 12.92249803 1416482. 0. 1. 0. 241 | 154 2 1 -3 2 0 -2 0 0 0 0 0 0 12.92272703 0. -792625. 0. 139906. 242 | 155 2 1 -3 2 0 -1 0 0 0 0 0 0 12.92493343 0. 29511525. 0. 30. 243 | 156 2 1 -3 2 0 0 0 0 0 0 0 0 12.92713984 0. 156805478. 0. 157. SIG1 244 | 157 2 1 -3 2 2 0 0 0 0 0 0 0 12.93642347 0. -1359978. 0. -1. 245 | 158 2 1 -3 3 0 -1 -1 0 0 0 0 0 12.96600011 0. 1903969. 0. 2. 246 | 159 2 1 -3 3 0 0 -1 0 0 0 0 0 12.96820652 0. 10607829. 0. 11. 247 | 160 2 1 -3 4 -2 -1 0 0 0 0 0 0 12.99778709 0. 951985. 0. 1. 248 | 161 2 1 -3 4 -2 0 0 0 0 0 0 0 12.99999349 0. 4623926. 0. 5. 249 | 162 2 1 -3 4 0 0 0 0 0 0 0 0 13.00927712 0. -1495976. 0. -1. 250 | 163 2 1 -3 4 0 1 0 0 0 0 0 0 13.01148353 0. 543991. 0. 1. 251 | 164 2 1 -2 -2 1 -2 0 0 0 0 0 0 13.31211080 0. -815987. 0. -1. 252 | 165 2 1 -2 -2 3 0 0 0 0 0 0 0 13.32580724 0. -3127950. 0. -3. 253 | 166 2 1 -2 -1 1 -1 1 0 0 0 0 0 13.35538781 0. -1359978. 0. -1. 254 | 167 2 1 -2 -1 1 0 1 0 0 0 0 0 13.35759422 0. -8159869. 0. -8. 255 | 168 2 1 -2 0 -1 -3 0 0 0 0 0 0 13.38275805 0. -815987. 0. -1. 256 | 169 2 1 -2 0 -1 -2 0 0 0 0 0 0 13.38496445 0. -3671941. 0. -4. 257 | 170 3 1 -2 0 0 -2 0 0 0 0 0 0 13.38960627 826281. 0. 1. 0. 258 | 171 3 1 -2 0 0 -1 0 0 0 0 0 0 13.39181267 9723802. 0. -138488. 0. 259 | 172 3 1 -2 0 0 0 0 0 0 0 0 0 13.39401908 25024515. 0. 25. 0. 260 | 173 2 1 -2 0 0 0 1 0 0 0 0 0 13.39402104 0. 815987. 0. 1. 261 | 174 2 1 -2 0 1 -2 0 0 0 0 0 0 13.39424808 0. -5881344. 0. -319141. 262 | 175 2 1 -2 0 1 -1 0 0 0 0 0 0 13.39645449 0. 185177741. 0. 159753. 263 | 176 2 1 -2 0 1 0 0 0 0 0 0 0 13.39866089 0. 980956782. 0. -438401. Q1 264 | 177 3 1 -2 0 2 0 0 0 0 0 0 0 13.40330271 1534522. 0. 2. 0. 265 | 178 2 1 -2 0 3 0 0 0 0 0 0 0 13.40794452 0. -2719956. 0. -3. 266 | 179 2 1 -2 1 -1 0 1 0 0 0 0 0 13.43044787 0. -1683254. 0. 159566. 267 | 180 2 1 -2 1 0 -1 0 0 0 0 0 0 13.43288131 0. -951985. 0. -1. 268 | 181 2 1 -2 1 0 0 0 0 0 0 0 0 13.43508772 0. -5303915. 0. -5. 269 | 182 2 1 -2 1 1 -1 -1 0 0 0 0 0 13.43752117 0. 1495976. 0. 1. 270 | 183 2 1 -2 1 1 0 -1 0 0 0 0 0 13.43972757 0. 8975856. 0. 9. 271 | 184 2 1 -2 2 -1 -2 0 0 0 0 0 0 13.46710173 0. -951985. 0. -1. 272 | 185 2 1 -2 2 -1 -1 0 0 0 0 0 0 13.46930814 0. 35223434. 0. 35. 273 | 186 2 1 -2 2 -1 0 0 0 0 0 0 0 13.47151455 0. 186453002. 0. 186. RO1 274 | 187 3 1 -2 2 0 0 0 0 0 0 0 0 13.47615636 2124723. 0. 2. 0. 275 | 188 2 1 -2 2 1 0 0 0 0 0 0 0 13.48079817 0. -10743827. 0. -11. 276 | 189 2 1 -2 2 1 1 0 0 0 0 0 0 13.48300458 0. 3263948. 0. 3. 277 | 190 2 1 -2 3 -1 -1 -1 0 0 0 0 0 13.51037482 0. 1495976. 0. 1. 278 | 191 2 1 -2 3 -1 0 -1 0 0 0 0 0 13.51258123 0. 8567862. 0. 9. 279 | 192 2 1 -2 3 1 0 -1 0 0 0 0 0 13.52186485 0. -815987. 0. -1. 280 | 193 2 1 -2 4 -1 0 0 0 0 0 0 0 13.55365183 0. -2311963. 0. -2. 281 | 194 2 1 -1 -2 0 -2 0 0 0 0 0 0 13.85648551 0. -2175965. 0. -2. 282 | 195 2 1 -1 -2 2 -1 0 0 0 0 0 0 13.86797554 0. -2719956. 0. -3. 283 | 196 2 1 -1 -2 2 0 0 0 0 0 0 0 13.87018195 0. -15503751. 0. -16. 284 | 197 2 1 -1 -1 0 -1 1 0 0 0 0 0 13.89976252 0. -2175965. 0. -2. 285 | 198 2 1 -1 -1 0 0 1 0 0 0 0 0 13.90196892 0. -17543718. 0. -18. 286 | 199 2 1 -1 -1 1 0 0 0 0 0 0 0 13.90660877 0. 815987. 0. 1. 287 | 200 3 1 -1 0 -1 0 0 0 0 0 0 0 13.93839379 -1416482. 0. -1. 0. 288 | 201 2 1 -1 0 0 -2 0 0 0 0 0 0 13.93862279 0. -29647523. 0. -30. 289 | 202 2 1 -1 0 0 -1 0 0 0 0 0 0 13.94082919 0. 966705892. 0. 320102. 290 | 203 2 1 -1 0 0 0 0 0 0 0 0 0 13.94303560 0. 5123794876. 0. -2569901. O1 291 | 204 3 1 -1 0 1 -1 0 0 0 0 0 0 13.94547101 -2006683. 0. -2. 0. 292 | 205 3 1 -1 0 1 0 0 0 0 0 0 0 13.94767741 12748338. 0. 13. 0. 293 | 206 3 1 -1 0 1 1 0 0 0 0 0 0 13.94988382 -1664094. 0. 34127. 0. 294 | 207 2 1 -1 0 2 -1 0 0 0 0 0 0 13.95011282 0. 951985. 0. 1. 295 | 208 2 1 -1 0 2 0 0 0 0 0 0 0 13.95231923 0. -33268184. 0. -159601. 296 | 209 2 1 -1 0 2 1 0 0 0 0 0 0 13.95452563 0. -5524630. 0. -159573. 297 | 210 2 1 -1 1 0 -1 -1 0 0 0 0 0 13.98189587 0. 1326540. 0. -319134. 298 | 211 2 1 -1 1 0 0 -1 0 0 0 0 0 13.98410228 0. 14823762. 0. 15. 299 | 212 2 1 -1 2 -2 0 0 0 0 0 0 0 14.01588925 0. -2991952. 0. -3. 300 | 213 3 1 -1 2 -1 0 0 0 0 0 0 0 14.02053107 2596884. 0. 3. 0. 301 | 214 2 1 -1 2 0 -1 0 0 0 0 0 0 14.02296647 0. 1903969. 0. 2. 302 | 215 2 1 -1 2 0 0 0 0 0 0 0 0 14.02517288 0. -67046922. 0. -67. TAU1 303 | 216 2 1 -1 2 0 1 0 0 0 0 0 0 14.02737929 0. 14687764. 0. 15. 304 | 217 2 1 -1 2 0 2 0 0 0 0 0 0 14.02958569 0. 951985. 0. 1. 305 | 218 2 1 -1 3 0 0 -1 0 0 0 0 0 14.06623956 0. -4487928. 0. -4. 306 | 219 2 1 -1 4 -2 0 0 0 0 0 0 0 14.09802653 0. -1223980. 0. -1. 307 | 220 2 1 0 -3 1 0 1 0 0 0 0 0 14.37348998 0. -1767972. 0. -2. 308 | 221 2 1 0 -2 1 -1 0 0 0 0 0 0 14.41235025 0. -8567862. 0. -9. 309 | 222 2 1 0 -2 1 0 0 0 0 0 0 0 14.41455665 0. -38112825. 0. -319173. 310 | 223 2 1 0 -1 0 0 0 0 0 0 0 0 14.45098348 0. 815987. 0. 1. 311 | 224 2 1 0 -1 1 0 1 0 0 0 0 0 14.45562726 0. 1903969. 0. 2. 312 | 225 2 1 0 0 -1 -2 0 0 0 0 0 0 14.48299749 0. 2311963. 0. 2. 313 | 226 2 1 0 0 -1 -1 0 0 0 0 0 0 14.48520390 0. -26791569. 0. -27. 314 | 227 2 1 0 0 -1 0 0 0 0 0 0 0 14.48741031 0. -144814309. 0. 139762. 315 | 228 3 1 0 0 0 -1 0 0 0 0 0 0 14.48984571 -11567936. 0. -12. 0. 316 | 229 3 1 0 0 0 0 0 0 0 0 0 0 14.49205212 78024549. 0. 78. 0. 317 | 230 3 1 0 0 0 1 0 0 0 0 0 0 14.49425853 -10151454. 0. -10. 0. 318 | 231 2 1 0 0 1 -1 0 0 0 0 0 0 14.49448753 0. 11536452. 0. -139896. 319 | 232 2 1 0 0 1 0 0 0 0 0 0 0 14.49669393 0. -402914796. 0. 279411. M1 320 | 233 2 1 0 0 1 1 0 0 0 0 0 0 14.49890034 0. -80918699. 0. -81. 321 | 234 2 1 0 0 1 2 0 0 0 0 0 0 14.50110675 0. 2237321. 0. 19663. 322 | 235 2 1 0 1 0 0 0 0 0 0 0 0 14.53312076 0. 2396681. 0. 159570. 323 | 236 2 1 0 1 1 0 -1 0 0 0 0 0 14.53776061 0. -2583958. 0. -3. 324 | 237 2 1 0 2 -1 -1 0 0 0 0 0 0 14.56734118 0. 2175965. 0. 2. 325 | 238 2 1 0 2 -1 0 0 0 0 0 0 0 14.56954759 0. -77097474. 0. -39398. CHI1 326 | 239 2 1 0 2 -1 1 0 0 0 0 0 0 14.57175399 0. -17084444. 0. -159585. 327 | 240 2 1 0 3 -1 0 -1 0 0 0 0 0 14.61061427 0. -3263948. 0. -3. 328 | 241 2 1 0 3 -1 1 -1 0 0 0 0 0 14.61282067 0. -815987. 0. -1. 329 | 242 2 1 1 -4 0 0 2 0 0 0 0 0 14.87679800 0. 5711908. 0. 6. 330 | 243 2 1 1 -3 0 -1 1 0 0 0 0 0 14.91565828 0. -1223980. 0. -1. 331 | 244 2 1 1 -3 0 0 1 0 0 0 0 0 14.91786468 0. 139402315. 0. -439242. PI1 332 | 245 2 1 1 -2 0 -2 0 0 0 0 0 0 14.95451855 0. 1903969. 0. 2. 333 | 246 2 1 1 -2 0 -1 0 0 0 0 0 0 14.95672495 0. -26791569. 0. -27. 334 | 247 2 1 1 -2 0 0 0 0 0 0 0 0 14.95893136 0. 2384415254. 0. -1374742. P1 335 | 248 2 1 1 -2 0 0 2 0 0 0 0 0 14.95893528 0. -951985. 0. -1. 336 | 249 3 1 1 -2 1 0 0 0 0 0 0 0 14.96357317 826281. 0. 1. 0. 337 | 250 2 1 1 -2 2 0 0 0 0 0 0 0 14.96821499 0. -3597299. 0. -19664. 338 | 251 2 1 1 -2 2 1 0 0 0 0 0 0 14.97042139 0. -815987. 0. -1. 339 | 252 2 1 1 -1 0 0 -1 0 0 0 0 0 14.99999804 0. -20053035. 0. -19680. 340 | 253 2 1 1 -1 0 0 1 0 0 0 0 0 15.00000196 0. -56269657. 0. 319079. S1 341 | 254 2 1 1 -1 0 1 1 0 0 0 0 0 15.00220837 0. 1495976. 0. 1. 342 | 255 2 1 1 0 -2 -1 0 0 0 0 0 0 15.02957861 0. -1359978. 0. -1. 343 | 256 3 1 1 0 -1 -1 0 0 0 0 0 0 15.03422042 -590201. 0. -1. 0. 344 | 257 3 1 1 0 -1 0 0 0 0 0 0 0 15.03642683 4249446. 0. 4. 0. 345 | 258 2 1 1 0 0 -2 0 0 0 0 0 0 15.03665583 0. -975346. 0. -139908. 346 | 259 3 1 1 0 -1 1 0 0 0 0 0 0 15.03863323 -590201. 0. -1. 0. 347 | 260 2 1 1 0 0 -1 0 0 0 0 0 0 15.03886223 0. 142614982. 0. -279672. 348 | 261 2 1 1 0 0 0 0 0 0 0 0 0 15.04106864 0.-7206347228. 0. 3046521. K1 349 | 262 2 1 1 0 0 1 0 0 0 0 0 0 15.04327505 0. -977500999. 0. -160545. 350 | 263 2 1 1 0 0 2 0 0 0 0 0 0 15.04548145 0. 21079661. 0. 21. 351 | 264 3 1 1 0 1 0 0 0 0 0 0 0 15.04571045 1534522. 0. 2. 0. 352 | 265 3 1 1 0 1 1 0 0 0 0 0 0 15.04791686 590201. 0. 1. 0. 353 | 266 2 1 1 1 0 0 -1 0 0 0 0 0 15.08213532 0. -57085644. 0. 319078. PSI1 354 | 267 2 1 1 1 0 1 -1 0 0 0 0 0 15.08434173 0. -951985. 0. -1. 355 | 268 2 1 1 2 -2 0 0 0 0 0 0 0 15.11392229 0. -3535943. 0. -4. 356 | 269 2 1 1 2 -2 1 0 0 0 0 0 0 15.11612870 0. -951985. 0. -1. 357 | 270 2 1 1 2 0 0 -2 0 0 0 0 0 15.12320200 0. -1359978. 0. -1. 358 | 271 2 1 1 2 0 0 0 0 0 0 0 0 15.12320592 0. -102372915. 0. 319033. FI1 359 | 272 2 1 1 2 0 1 0 0 0 0 0 0 15.12541233 0. 3943937. 0. 4. 360 | 273 2 1 1 2 0 2 0 0 0 0 0 0 15.12761873 0. 1903969. 0. 2. 361 | 274 2 1 1 3 0 0 -1 0 0 0 0 0 15.16427260 0. -6119902. 0. -6. 362 | 275 2 1 2 -3 1 0 1 0 0 0 0 0 15.47152302 0. -3263948. 0. -3. 363 | 276 2 1 2 -2 -1 -1 0 0 0 0 0 0 15.50109966 0. -2311963. 0. -2. 364 | 277 3 1 2 -2 0 0 0 0 0 0 0 0 15.50794788 944321. 0. 1. 0. 365 | 278 2 1 2 -2 1 -1 0 0 0 0 0 0 15.51038329 0. 2265240. 0. -279812. 366 | 279 2 1 2 -2 1 0 0 0 0 0 0 0 15.51258969 0. -77124046. 0. 39243. THE1 367 | 280 2 1 2 -2 1 1 0 0 0 0 0 0 15.51479610 0. -15231755. 0. -15. 368 | 281 2 1 2 -1 -1 0 1 0 0 0 0 0 15.54437667 0. -2142527. 0. 319133. 369 | 282 2 1 2 -1 0 0 0 0 0 0 0 0 15.54901652 0. 2335324. 0. 139910. 370 | 283 2 1 2 0 -1 -1 0 0 0 0 0 0 15.58323694 0. 11649089. 0. -279803. 371 | 284 2 1 2 0 -1 0 0 0 0 0 0 0 15.58544335 0. -402792084. 0. 318732. J1 372 | 285 2 1 2 0 -1 1 0 0 0 0 0 0 15.58764975 0. -79966714. 0. -80. 373 | 286 3 1 2 0 0 -1 0 0 0 0 0 0 15.58787875 -944321. 0. -1. 0. 374 | 287 2 1 2 0 -1 2 0 0 0 0 0 0 15.58985616 0. 1205175. 0. -579288. 375 | 288 3 1 2 0 0 0 0 0 0 0 0 0 15.59008516 28565720. 0. 29. 0. 376 | 289 3 1 2 0 0 1 0 0 0 0 0 0 15.59229157 11567936. 0. 12. 0. 377 | 290 3 1 2 0 0 2 0 0 0 0 0 0 15.59449797 944321. 0. 1. 0. 378 | 291 2 1 2 0 1 0 0 0 0 0 0 0 15.59472697 0. 6255899. 0. 6. 379 | 292 2 1 2 0 1 1 0 0 0 0 0 0 15.59693338 0. 3943937. 0. 4. 380 | 293 2 1 2 0 1 2 0 0 0 0 0 0 15.59913979 0. 2311963. 0. 2. 381 | 294 2 1 2 1 -1 0 -1 0 0 0 0 0 15.62651003 0. 2053253. 0. -39319. 382 | 295 2 1 2 2 -1 0 0 0 0 0 0 0 15.66758063 0. 1495976. 0. 1. 383 | 296 2 1 2 2 -1 1 0 0 0 0 0 0 15.66978703 0. 1223980. 0. 1. 384 | 297 2 1 3 -4 2 0 0 0 0 0 0 0 15.98411075 0. -1223980. 0. -1. 385 | 298 2 1 3 -3 0 0 1 0 0 0 0 0 16.01589772 0. -4487928. 0. -4. 386 | 299 2 1 3 -3 0 1 1 0 0 0 0 0 16.01810413 0. -815987. 0. -1. 387 | 300 2 1 3 -2 0 -1 0 0 0 0 0 0 16.05475799 0. -2175965. 0. -2. 388 | 301 2 1 3 -2 0 0 0 0 0 0 0 0 16.05696440 0. -66774926. 0. -67. SO1 389 | 302 2 1 3 -2 0 1 0 0 0 0 0 0 16.05917081 0. -13055790. 0. -13. 390 | 303 3 1 3 -2 1 0 0 0 0 0 0 0 16.06160621 944321. 0. 1. 0. 391 | 304 2 1 3 -1 0 0 -1 0 0 0 0 0 16.09803108 0. 1359978. 0. 1. 392 | 305 2 1 3 0 -2 -1 0 0 0 0 0 0 16.12761165 0. 815987. 0. 1. 393 | 306 2 1 3 0 -2 0 0 0 0 0 0 0 16.12981805 0. -33047469. 0. -33. 394 | 307 2 1 3 0 -2 1 0 0 0 0 0 0 16.13202446 0. -6833328. 0. -319142. 395 | 308 3 1 3 0 -1 0 0 0 0 0 0 0 16.13445987 4721607. 0. 5. 0. 396 | 309 3 1 3 0 -1 1 0 0 0 0 0 0 16.13666627 2006683. 0. 2. 0. 397 | 310 2 1 3 0 0 0 0 0 0 0 0 0 16.13910168 0. -220639733. 0. 159347. OO1 398 | 311 2 1 3 0 0 1 0 0 0 0 0 0 16.14130809 0. -141301728. 0. -141. 399 | 312 2 1 3 0 0 2 0 0 0 0 0 0 16.14351449 0. -29511525. 0. -30. 400 | 313 2 1 3 0 0 3 0 0 0 0 0 0 16.14572090 0. -1903969. 0. -2. 401 | 314 2 1 3 1 0 0 -1 0 0 0 0 0 16.18016836 0. 815987. 0. 1. 402 | 315 2 1 4 -4 1 0 0 0 0 0 0 0 16.52848545 0. -1903969. 0. -2. 403 | 316 2 1 4 -3 -1 0 1 0 0 0 0 0 16.56027243 0. -815987. 0. -1. 404 | 317 2 1 4 -2 -1 0 0 0 0 0 0 0 16.60133911 0. -10607829. 0. -11. 405 | 318 2 1 4 -2 -1 1 0 0 0 0 0 0 16.60354551 0. -2175965. 0. -2. 406 | 319 3 1 4 -2 0 0 0 0 0 0 0 0 16.60598092 826281. 0. 1. 0. 407 | 320 2 1 4 -2 1 0 0 0 0 0 0 0 16.61062273 0. -8023871. 0. -8. 408 | 321 2 1 4 -2 1 1 0 0 0 0 0 0 16.61282914 0. -5031919. 0. -5. 409 | 322 2 1 4 -2 1 2 0 0 0 0 0 0 16.61503555 0. -951985. 0. -1. 410 | 323 2 1 4 0 -3 0 0 0 0 0 0 0 16.67419276 0. -2583958. 0. -3. 411 | 324 2 1 4 0 -1 0 0 0 0 0 0 0 16.68347639 0. -41989886. 0. 319093. V1 412 | 325 2 1 4 0 -1 1 0 0 0 0 0 0 16.68568279 0. -26758131. 0. 319108. 413 | 326 2 1 4 0 -1 2 0 0 0 0 0 0 16.68788920 0. -5711908. 0. -6. 414 | 327 3 1 4 0 0 0 0 0 0 0 0 0 16.68811820 797259. 0. -276994. 0. 415 | 328 3 1 4 0 0 1 0 0 0 0 0 0 16.69032461 944321. 0. 1. 0. 416 | 329 2 1 5 -2 0 0 0 0 0 0 0 0 17.15499744 0. -6799891. 0. -7. 417 | 330 2 1 5 -2 0 1 0 0 0 0 0 0 17.15720385 0. -4351930. 0. -4. 418 | 331 2 1 5 0 -2 0 0 0 0 0 0 0 17.22785109 0. -5575910. 0. -6. 419 | 332 2 1 5 0 -2 1 0 0 0 0 0 0 17.23005750 0. -3671941. 0. -4. 420 | 333 2 1 6 -2 -1 0 0 0 0 0 0 0 17.69937215 0. -1631974. 0. -2. 421 | 334 2 2 -5 2 3 0 0 0 0 0 0 0 26.33508436 2039967. 0. 2. 0. 422 | 335 2 2 -5 4 1 0 0 0 0 0 0 0 26.40793801 2447961. 0. 2. 0. 423 | 336 2 2 -4 0 4 0 0 0 0 0 0 0 26.80660542 3671941. 0. 4. 0. 424 | 337 3 2 -4 2 1 0 0 0 0 0 0 0 26.87481725 0. -1201925. 0. -1. 425 | 338 2 2 -4 2 2 0 0 0 0 0 0 0 26.87945907 15316473. 0. 159583. 0. 426 | 339 2 2 -4 3 2 0 -1 0 0 0 0 0 26.92052575 1223980. 0. 1. 0. 427 | 340 2 2 -4 4 0 0 0 0 0 0 0 0 26.95231272 9383849. 0. 9. 0. 428 | 341 2 2 -4 5 0 0 -1 0 0 0 0 0 26.99337940 1223980. 0. 1. 0. 429 | 342 3 2 -3 0 2 0 0 0 0 0 0 0 27.34633831 0. -3472227. 0. -3. 430 | 343 2 2 -3 0 3 -1 0 0 0 0 0 0 27.34877371 -1359978. 0. -1. 0. 431 | 344 2 2 -3 0 3 0 0 0 0 0 0 0 27.35098012 35223434. 0. 35. 0. 3N2 432 | 345 2 2 -3 1 1 0 1 0 0 0 0 0 27.38276710 -1767972. 0. -2. 0. 433 | 346 2 2 -3 1 3 0 -1 0 0 0 0 0 27.39204680 815987. 0. 1. 0. 434 | 347 3 2 -3 2 0 -1 0 0 0 0 0 0 27.41698555 0. -534189. 0. -1. 435 | 348 3 2 -3 2 0 0 0 0 0 0 0 0 27.41919196 0. -3305845. 0. 313381. 436 | 349 2 2 -3 2 1 -1 0 0 0 0 0 0 27.42162737 -3263948. 0. -3. 0. 437 | 350 2 2 -3 2 1 0 0 0 0 0 0 0 27.42383377 91254532. 0. 91. 0. EPS2 438 | 351 2 2 -3 3 1 0 -1 0 0 0 0 0 27.46490045 7071886. 0. 7. 0. 439 | 352 2 2 -3 4 -1 -1 0 0 0 0 0 0 27.49448102 -543991. 0. -1. 0. 440 | 353 2 2 -3 4 -1 0 0 0 0 0 0 0 27.49668743 17543718. 0. 18. 0. 441 | 354 2 2 -3 5 -1 0 -1 0 0 0 0 0 27.53775411 1903969. 0. 2. 0. 442 | 355 2 2 -2 -2 4 0 0 0 0 0 0 0 27.82250117 -1223980. 0. -1. 0. 443 | 356 2 2 -2 -1 2 0 1 0 0 0 0 0 27.85428815 -4351930. 0. -4. 0. 444 | 357 2 2 -2 0 0 -2 0 0 0 0 0 0 27.88165839 -1903969. 0. -2. 0. 445 | 358 3 2 -2 0 1 -1 0 0 0 0 0 0 27.88850661 0. -3472227. 0. -3. 446 | 359 3 2 -2 0 1 0 0 0 0 0 0 0 27.89071301 0. -20966911. 0. -21. 447 | 360 2 2 -2 0 2 -1 0 0 0 0 0 0 27.89314842 -11695812. 0. -12. 0. 448 | 361 2 2 -2 0 2 0 0 0 0 0 0 0 27.89535483 312930968. 0. 313. 0. 2N2 449 | 362 2 2 -2 1 0 0 1 0 0 0 0 0 27.92714180 -5303915. 0. -5. 0. 450 | 363 2 2 -2 1 1 0 0 0 0 0 0 0 27.93178165 -3263948. 0. -3. 0. 451 | 364 2 2 -2 1 2 0 -1 0 0 0 0 0 27.93642151 4895921. 0. 5. 0. 452 | 365 3 2 -2 2 -1 -1 0 0 0 0 0 0 27.96136026 0. -534189. 0. -1. 453 | 366 3 2 -2 2 -1 0 0 0 0 0 0 0 27.96356667 0. -3872869. 0. -4. 454 | 367 2 2 -2 2 0 -1 0 0 0 0 0 0 27.96600207 -14007775. 0. -14. 0. 455 | 368 2 2 -2 2 0 0 0 0 0 0 0 0 27.96820848 377529929. 0. 378. 0. MI2 456 | 369 2 2 -2 3 -1 0 0 0 0 0 0 0 28.00463531 -792625. 0. 139906. 0. 457 | 370 2 2 -2 3 0 -1 -1 0 0 0 0 0 28.00706875 -951985. 0. -1. 0. 458 | 371 2 2 -2 3 0 0 -1 0 0 0 0 0 28.00927516 25408229. 0. -139882. 0. 459 | 372 2 2 -2 4 -2 0 0 0 0 0 0 0 28.04106213 11559814. 0. 12. 0. 460 | 373 2 2 -2 4 0 0 -2 0 0 0 0 0 28.05034184 951985. 0. 1. 0. 461 | 374 2 2 -2 5 -2 0 -1 0 0 0 0 0 28.08212881 951985. 0. 1. 0. 462 | 375 2 2 -1 -2 1 -2 0 0 0 0 0 0 28.35317944 -1903969. 0. -2. 0. 463 | 376 2 2 -1 -2 3 0 0 0 0 0 0 0 28.36687588 -7615878. 0. -8. 0. 464 | 377 2 2 -1 -1 1 -1 1 0 0 0 0 0 28.39645645 543991. 0. 1. 0. 465 | 378 2 2 -1 -1 1 0 1 0 0 0 0 0 28.39866286 -19991679. 0. -20. 0. 466 | 379 2 2 -1 0 -1 -2 0 0 0 0 0 0 28.42603309 -9247851. 0. -9. 0. 467 | 380 3 2 -1 0 0 -2 0 0 0 0 0 0 28.43067491 0. 654690. 0. 38613. 468 | 381 3 2 -1 0 0 -1 0 0 0 0 0 0 28.43288131 0. -12954079. 0. -13. 469 | 382 3 2 -1 0 0 0 0 0 0 0 0 0 28.43508772 0. -75988357. 0. -76. 470 | 383 2 2 -1 0 0 0 1 0 0 0 0 0 28.43508968 1842613. 0. -19658. 0. 471 | 384 2 2 -1 0 1 -2 0 0 0 0 0 0 28.43531672 1383340. 0. 139909. 0. 472 | 385 2 2 -1 0 1 -1 0 0 0 0 0 0 28.43752313 -87957147. 0. 319047. 0. 473 | 386 2 2 -1 0 1 0 0 0 0 0 0 0 28.43972953 2364776695. 0. 282179. 0. N2 474 | 387 3 2 -1 0 2 0 0 0 0 0 0 0 28.44437135 0. 1335472. 0. 1. 475 | 388 2 2 -1 1 -1 0 1 0 0 0 0 0 28.47151651 -4267212. 0. 159563. 0. 476 | 389 2 2 -1 1 0 0 0 0 0 0 0 0 28.47615636 -12647797. 0. -13. 0. 477 | 390 2 2 -1 1 1 -1 -1 0 0 0 0 0 28.47858981 -815987. 0. -1. 0. 478 | 391 2 2 -1 1 1 0 -1 0 0 0 0 0 28.48079621 22031646. 0. 22. 0. 479 | 392 2 2 -1 2 -1 -1 0 0 0 0 0 0 28.51037678 -16863729. 0. -17. 0. 480 | 393 2 2 -1 2 -1 0 0 0 0 0 0 0 28.51258319 449200776. 0. 449. 0. NI2 481 | 394 3 2 -1 2 0 0 0 0 0 0 0 0 28.51722500 0. 2003208. 0. 2. 482 | 395 2 2 -1 2 1 0 0 0 0 0 0 0 28.52186681 1903969. 0. 2. 0. 483 | 396 2 2 -1 2 1 1 0 0 0 0 0 0 28.52407322 -1495976. 0. -1. 0. 484 | 397 2 2 -1 3 -1 -1 -1 0 0 0 0 0 28.55144346 -815987. 0. -1. 0. 485 | 398 2 2 -1 3 -1 0 -1 0 0 0 0 0 28.55364987 20671668. 0. 21. 0. 486 | 399 2 2 0 -3 2 0 1 0 0 0 0 0 28.87018391 -1495976. 0. -1. 0. 487 | 400 2 2 0 -2 0 -2 0 0 0 0 0 0 28.89755415 -5463274. 0. -139913. 0. 488 | 401 3 2 0 -2 1 0 0 0 0 0 0 0 28.90660877 0. 934830. 0. 1. 489 | 402 2 2 0 -2 2 -1 0 0 0 0 0 0 28.90904418 1359978. 0. 1. 0. 490 | 403 2 2 0 -2 2 0 0 0 0 0 0 0 28.91125059 -37127403. 0. -37. 0. GAM2 491 | 404 2 2 0 -1 0 -1 1 0 0 0 0 0 28.94083116 951985. 0. 1. 0. 492 | 405 2 2 0 -1 0 0 1 0 0 0 0 0 28.94303756 -42567315. 0. -43. 0. ALF2 493 | 406 2 2 0 -1 1 0 0 0 0 0 0 0 28.94767741 1683254. 0. -159566. 0. 494 | 407 3 2 0 0 -1 -1 0 0 0 0 0 0 28.97725602 0. 801283. 0. 1. 495 | 408 3 2 0 0 -1 0 0 0 0 0 0 0 28.97946243 0. 4273510. 0. 4. 496 | 409 2 2 0 0 0 -2 0 0 0 0 0 0 28.97969143 6391897. 0. 6. 0. 497 | 410 2 2 0 0 0 -1 0 0 0 0 0 0 28.98189783 -460873226. 0. 139446. 0. 498 | 411 2 2 0 0 0 0 0 0 0 0 0 0 28.9841042412350975697. 0. 1090003. 0. M2 499 | 412 3 2 0 0 1 -1 0 0 0 0 0 0 28.98653965 0. -534189. 0. -1. 500 | 413 3 2 0 0 1 0 0 0 0 0 0 0 28.98874605 0. 11485059. 0. 11. 501 | 414 3 2 0 0 1 1 0 0 0 0 0 0 28.99095246 0. 2136755. 0. 2. 502 | 415 2 2 0 0 2 0 0 0 0 0 0 0 28.99338787 7207884. 0. 7. 0. 503 | 416 2 2 0 0 2 1 0 0 0 0 0 0 28.99559427 2583958. 0. 3. 0. 504 | 417 2 2 0 1 0 -1 -1 0 0 0 0 0 29.02296451 -815987. 0. -1. 0. 505 | 418 2 2 0 1 0 0 -1 0 0 0 0 0 29.02517092 37450679. 0. -159530. 0. BET2 506 | 419 2 2 0 2 -2 0 0 0 0 0 0 0 29.05695789 -7071886. 0. -7. 0. 507 | 420 3 2 0 2 -1 0 0 0 0 0 0 0 29.06159971 0. 2136755. 0. 2. 508 | 421 2 2 0 2 0 0 0 0 0 0 0 0 29.06624152 14007775. 0. 14. 0. DLT2 509 | 422 2 2 0 2 0 1 0 0 0 0 0 0 29.06844793 -7071886. 0. -7. 0. 510 | 423 2 2 0 2 0 2 0 0 0 0 0 0 29.07065433 2311963. 0. 2. 0. 511 | 424 2 2 0 3 0 0 -1 0 0 0 0 0 29.10730820 951985. 0. 1. 0. 512 | 425 2 2 1 -3 1 0 1 0 0 0 0 0 29.41455862 -4351930. 0. -4. 0. 513 | 426 2 2 1 -2 1 -1 0 0 0 0 0 0 29.45341889 4079934. 0. 4. 0. 514 | 427 2 2 1 -2 1 0 0 0 0 0 0 0 29.45562529 -91118535. 0. -91. 0. LMB2 515 | 428 2 2 1 -1 -1 0 1 0 0 0 0 0 29.48741227 -1359978. 0. -1. 0. 516 | 429 2 2 1 -1 0 0 0 0 0 0 0 0 29.49205212 2175965. 0. 2. 0. 517 | 430 2 2 1 0 -1 -1 0 0 0 0 0 0 29.52627254 12966516. 0. 279827. 0. 518 | 431 2 2 1 0 -1 0 0 0 0 0 0 0 29.52847895 -349106386. 0. -349. 0. L2 519 | 432 3 2 1 0 0 -1 0 0 0 0 0 0 29.53091435 0. -4139963. 0. -4. 520 | 433 3 2 1 0 0 0 0 0 0 0 0 0 29.53312076 0. 70112281. 0. 70. 521 | 434 3 2 1 0 0 1 0 0 0 0 0 0 29.53532717 0. 13354720. 0. 13. 522 | 435 2 2 1 0 1 -1 0 0 0 0 0 0 29.53555617 -1326540. 0. 319134. 0. 523 | 436 2 2 1 0 1 0 0 0 0 0 0 0 29.53776257 87310596. 0. 87. 0. 524 | 437 2 2 1 0 1 1 0 0 0 0 0 0 29.53996898 38487381. 0. 38. 0. 525 | 438 2 2 1 0 1 2 0 0 0 0 0 0 29.54217539 5439913. 0. 5. 0. 526 | 439 2 2 1 2 -1 0 0 0 0 0 0 0 29.61061623 16741017. 0. -39304. 0. 527 | 440 2 2 1 2 -1 1 0 0 0 0 0 0 29.61282263 8023871. 0. 8. 0. 528 | 441 2 2 1 2 -1 2 0 0 0 0 0 0 29.61502904 951985. 0. 1. 0. 529 | 442 2 2 2 -4 0 0 2 0 0 0 0 0 29.91786664 13735779. 0. 14. 0. 2T2 530 | 443 2 2 2 -3 0 0 1 0 0 0 0 0 29.95893332 335862355. 0. -898088. 0. T2 531 | 444 2 2 2 -2 0 -1 0 0 0 0 0 0 29.99779359 12919792. 0. 13. 0. 532 | 445 2 2 2 -2 0 0 0 0 0 0 0 0 30.00000000 5746198398. 0. 585035. 0. S2 533 | 446 3 2 2 -2 1 0 0 0 0 0 0 0 30.00464181 0. 801283. 0. 1. 534 | 447 2 2 2 -2 2 0 0 0 0 0 0 0 30.00928363 815987. 0. 1. 0. 535 | 448 2 2 2 -1 0 0 -1 0 0 0 0 0 30.04106668 -48058508. 0. 159519. 0. R2 536 | 449 2 2 2 -1 0 0 1 0 0 0 0 0 30.04107060 11934370. 0. -319123. 0. 537 | 450 2 2 2 -1 0 1 1 0 0 0 0 0 30.04327701 -815987. 0. -1. 0. 538 | 451 3 2 2 0 -1 0 0 0 0 0 0 0 30.07749547 0. 3739322. 0. 4. 539 | 452 3 2 2 0 -1 1 0 0 0 0 0 0 30.07970187 0. 801283. 0. 1. 540 | 453 2 2 2 0 0 -1 0 0 0 0 0 0 30.07993087 -19906961. 0. 159548. 0. 541 | 454 2 2 2 0 0 0 0 0 0 0 0 0 30.08213728 1562210472. 0. -1495811. 0. K2 542 | 455 2 2 2 0 0 1 0 0 0 0 0 0 30.08434369 465707792. 0. -159102. 0. 543 | 456 2 2 2 0 0 2 0 0 0 0 0 0 30.08655009 50591186. 0. 51. 0. 544 | 457 2 2 2 1 0 0 -1 0 0 0 0 0 30.12320396 12375801. 0. 12. 0. 545 | 458 2 2 2 2 -2 0 0 0 0 0 0 0 30.15499093 815987. 0. 1. 0. 546 | 459 2 2 2 2 0 0 0 0 0 0 0 0 30.16427456 10335834. 0. 10. 0. 547 | 460 2 2 3 -3 1 0 1 0 0 0 0 0 30.51259166 815987. 0. 1. 0. 548 | 461 2 2 3 -2 -1 -1 0 0 0 0 0 0 30.54216830 1223980. 0. 1. 0. 549 | 462 2 2 3 -2 -1 0 0 0 0 0 0 0 30.54437471 815987. 0. 1. 0. 550 | 463 3 2 3 -2 0 0 0 0 0 0 0 0 30.54901652 0. 801283. 0. 1. 551 | 464 2 2 3 -2 1 0 0 0 0 0 0 0 30.55365833 16863729. 0. 17. 0. KSI2 552 | 465 2 2 3 -2 1 1 0 0 0 0 0 0 30.55586474 7207884. 0. 7. 0. 553 | 466 2 2 3 -2 1 2 0 0 0 0 0 0 30.55807115 815987. 0. 1. 0. 554 | 467 2 2 3 0 -1 -1 0 0 0 0 0 0 30.62430558 -1937407. 0. -319137. 0. 555 | 468 2 2 3 0 -1 0 0 0 0 0 0 0 30.62651199 87310596. 0. 87. 0. ETA2 556 | 469 2 2 3 0 -1 1 0 0 0 0 0 0 30.62871839 38079388. 0. 38. 0. 557 | 470 2 2 3 0 -1 2 0 0 0 0 0 0 30.63092480 4398653. 0. 279819. 0. 558 | 471 3 2 3 0 0 0 0 0 0 0 0 0 30.63115380 0. 6410266. 0. 6. 559 | 472 3 2 3 0 0 1 0 0 0 0 0 0 30.63336021 0. 4139963. 0. 4. 560 | 473 3 2 3 0 0 2 0 0 0 0 0 0 30.63556661 0. 801283. 0. 1. 561 | 474 2 2 3 0 1 0 0 0 0 0 0 0 30.63579561 -543991. 0. -1. 0. 562 | 475 2 2 4 -3 0 0 1 0 0 0 0 0 31.05696636 951985. 0. 1. 0. 563 | 476 2 2 4 -2 0 0 0 0 0 0 0 0 31.09803304 14415768. 0. 14. 0. 564 | 477 2 2 4 -2 0 1 0 0 0 0 0 0 31.10023945 6255899. 0. 6. 0. 565 | 478 2 2 4 -2 0 2 0 0 0 0 0 0 31.10244585 543991. 0. 1. 0. 566 | 479 2 2 4 0 -2 0 0 0 0 0 0 0 31.17088669 7207884. 0. 7. 0. 567 | 480 2 2 4 0 -2 1 0 0 0 0 0 0 31.17309310 3127950. 0. 3. 0. 568 | 481 3 2 4 0 -1 0 0 0 0 0 0 0 31.17552851 0. 934830. 0. 1. 569 | 482 2 2 4 0 0 0 0 0 0 0 0 0 31.18017032 22847633. 0. 23. 0. 570 | 483 2 2 4 0 0 1 0 0 0 0 0 0 31.18237673 19672960. 0. -279795. 0. 571 | 484 2 2 4 0 0 2 0 0 0 0 0 0 31.18458313 6391897. 0. 6. 0. 572 | 485 2 2 4 0 0 3 0 0 0 0 0 0 31.18678954 951985. 0. 1. 0. 573 | 486 2 2 5 -2 -1 0 0 0 0 0 0 0 31.64240775 2311963. 0. 2. 0. 574 | 487 2 2 5 0 -1 0 0 0 0 0 0 0 31.72454503 4351930. 0. 4. 0. 575 | 488 2 2 5 0 -1 1 0 0 0 0 0 0 31.72675143 3807939. 0. 4. 0. 576 | 489 3 3 -3 2 1 0 0 0 0 0 0 0 41.91588589 -2140462. 0. -2. 0. 577 | 490 3 3 -2 0 2 0 0 0 0 0 0 0 42.38740695 -7255275. 0. -147738. 0. 578 | 491 3 3 -2 2 0 0 0 0 0 0 0 0 42.46026060 -7176842. 0. -7. 0. 579 | 492 3 3 -1 0 1 -1 0 0 0 0 0 0 42.92957525 2392281. 0. 2. 0. 580 | 493 3 3 -1 0 1 0 0 0 0 0 0 0 42.93178165 -41046500. 0. -41. 0. 581 | 494 3 3 -1 2 -1 0 0 0 0 0 0 0 43.00463531 -7554571. 0. -8. 0. 582 | 495 3 3 0 -2 2 0 0 0 0 0 0 0 43.40330271 1007276. 0. 1. 0. 583 | 496 3 3 0 0 0 -1 0 0 0 0 0 0 43.47394995 8435937. 0. 8. 0. 584 | 497 3 3 0 0 0 0 0 0 0 0 0 0 43.47615636 -149454587. 0. -149. 0. M3 585 | 498 3 3 1 -2 1 0 0 0 0 0 0 0 43.94767741 2140462. 0. 2. 0. 586 | 499 3 3 1 0 -1 0 0 0 0 0 0 0 44.02053107 8435937. 0. 8. 0. 587 | 500 3 3 1 0 1 0 0 0 0 0 0 0 44.02981469 -3147738. 0. -3. 0. 588 | 501 3 3 1 0 1 1 0 0 0 0 0 0 44.03202110 -1385005. 0. -1. 0. 589 | 502 3 3 2 0 0 -1 0 0 0 0 0 0 44.57198299 755457. 0. 1. 0. 590 | 503 3 3 2 0 0 0 0 0 0 0 0 0 44.57418940 -19515974. 0. -20. 0. 591 | 504 3 3 2 0 0 1 0 0 0 0 0 0 44.57639581 -8414308. 0. 129520. 0. 592 | 505 3 3 2 0 0 2 0 0 0 0 0 0 44.57860221 -1007276. 0. -1. 0. 593 | 999999 594 |  -------------------------------------------------------------------------------- /pygtide/commdat/doodsehw.dat: -------------------------------------------------------------------------------- 1 | File: DOODSEHW.DAT 2 | Status: 19950628 3 | Contents: Tidal potential catalogue of Doodson (1921) transformed into 4 | HW95 normalization and format by Hans-Georg Wenzel, May 1995. 5 | Darwin names added in June 1995. 6 | 7 | Reference: Doodson, A.T. (1921): The harmonic development of the 8 | tide generating potential. Prpceedings of the Royal 9 | Society, series A100, 306-328, London 1921. Reprint in 10 | International Hydrographic Revue vol.31 no.1, Monaco 1954. 11 | 12 | 13 | Format of the file: 14 | 15 | Col. 1... 6: sequence number (1...378). The end of this files is 16 | marked by a sequence number of 999999. 17 | Col. 7... 9: body generating the potential. MO = Moon, SU = Sun, 18 | ME = Mercury, VE= Venus, MA = Mars, JU= Jupiter, 19 | SA = Saturn, FM = quadrupole moment of the Earth on Moon, 20 | FS = quadrupole moment of the Earth on Sun. 21 | Col. 10... 11: l = degree of the spherical harmonic development. 22 | Col. 12... 14: m = order of the spherical harmonic development, 23 | equal 24 | k1 = integer argument number for the mean local Moontime, 25 | period 24 hours 50 min. 26 | Col. 15... 17: k2 = integer argument number for the mean longitude of the 27 | Moon, period 27.3 days. 28 | Col. 18... 20: k3 = integer argument number for the mean longitude of the 29 | Sun, period 365.25 days. 30 | Col. 21... 23: k4 = integer argument number for the mean longitude of the 31 | lunar perigee, period 8.8 years. 32 | Col. 24... 26: k5 = integer argument number for the negative mean longitude 33 | of the lunar ascending node, period 18.6 years. 34 | Col. 27... 29: k6 = integer argument number for the mean longitude of the 35 | solar perigee, period 20942 years. 36 | Col. 30... 32: k7 = integer argument number for the mean longitude of Mercury, 37 | period 88 days. 38 | Col. 33... 35: k8 = integer argument number for the mean longitude of Venus, 39 | period 225 days. 40 | Col. 36... 38: k9 = integer argument number for the mean longitude of Mars, 41 | period 1.88 years. 42 | Col. 39... 41: k10= integer argument number for the mean longitude of Jupiter, 43 | period 11.86 years. 44 | Col. 42... 44: k11= integer argument number for the mean longitude of Saturn, 45 | period 29.4 years. 46 | Col. 45... 56: fr= frequency of the tidal wave at J2000 in degree per hour. 47 | Col. 57... 68: C0 = COS-coefficient of the tidal potential in 48 | 10**-10 m**2/s**2. The C0 coefficient has to be multiplied 49 | with the COS of the argument. 50 | Col. 69... 80: S0 = SIN-coefficient of the tidal potential in 51 | 10**-10 m**2/s**2. The S0 coefficient has to be multiplied 52 | with the SIN of the argument. 53 | Col. 81... 90: C1 = t*COS-coefficent of the tidal potential in 10**-10 54 | m**2/s**2 per Julian century. The C1 coefficient has to 55 | be multiplied with the time difference between the epoch 56 | and J2000 (in Julian centuries) and with the COS of 57 | the argument. 58 | Col. 91...100: S1 = t*SIN-coefficent of the tidal potential in 10**-10 59 | m**2/s**2 per Julian century. The S1 coefficient has to 60 | be multiplied with the time difference between the epoch 61 | and J2000 (in Julian centuries) and with the SIN of 62 | the argument. 63 | Col.102...105: nam= Darwin name of the tidal wave (for very few main tidal 64 | waves available only). 65 | 66 | number l m k k k k k k k k k k frequency C0 S0 C1 S1 nam 67 | 2 3 4 5 6 7 8 9 10 11 (deg/hour) 68 | C******************************************************************************************************** 69 | 1 2 0 0 0 0 0 0 0 0 0 0 0 0.00000000-8700093244. 0. 0. 0. M0S0 70 | 2 2 0 0 0 0 1 0 0 0 0 0 0 0.00220641 771677035. 0. 0. 0. 71 | 3 2 0 0 0 0 2 0 0 0 0 0 0 0.00441281 -7537749. 0. 0. 0. 72 | 4 3 0 0 0 1 0 0 0 0 0 0 0 0.00464181 0. -5787034. 0. 0. 73 | 5 2 0 0 1 0 0 -1 0 0 0 0 0 0.04106668 -136621697. 0. 0. 0. SA 74 | 6 2 0 0 1 0 0 1 0 0 0 0 0 0.04107060 7184417. 0. 0. 0. 75 | 7 2 0 0 2 -2 0 0 0 0 0 0 0 0.07285365 -8597745. 0. 0. 0. 76 | 8 2 0 0 2 0 0 -2 0 0 0 0 0 0.08213336 -3533320. 0. 0. 0. 77 | 9 2 0 0 2 0 0 0 0 0 0 0 0 0.08213728 -859656698. 0. 0. 0. SSA 78 | 10 2 0 0 2 0 1 0 0 0 0 0 0 0.08434369 21317696. 0. 0. 0. 79 | 11 2 0 0 2 0 2 0 0 0 0 0 0 0.08655009 4711093. 0. 0. 0. 80 | 12 2 0 0 3 0 0 -1 0 0 0 0 0 0.12320396 -50290918. 0. 0. 0. STA 81 | 13 2 0 0 4 0 0 -2 0 0 0 0 0 0.16427064 -2002215. 0. 0. 0. 82 | 14 2 0 1 -3 1 0 1 0 0 0 0 0 0.43045437 -8008858. 0. 0. 0. 83 | 15 2 0 1 -2 -1 -1 0 0 0 0 0 0 0.46003102 1884437. 0. 0. 0. 84 | 16 2 0 1 -2 1 -1 0 0 0 0 0 0 0.46931465 13308838. 0. 0. 0. 85 | 17 2 0 1 -2 1 0 0 0 0 0 0 0 0.47152105 -185852619. 0. 0. 0. MSM 86 | 18 2 0 1 -2 1 1 0 0 0 0 0 0 0.47372746 12131065. 0. 0. 0. 87 | 19 2 0 1 -1 -1 0 1 0 0 0 0 0 0.50330803 -6006644. 0. 0. 0. 88 | 20 2 0 1 -1 0 0 0 0 0 0 0 0 0.50794788 5182202. 0. 0. 0. 89 | 21 2 0 1 -1 1 0 -1 0 0 0 0 0 0.51258773 1177773. 0. 0. 0. 90 | 22 2 0 1 0 -1 -1 0 0 0 0 0 0 0.54216830 63835310. 0. 0. 0. 91 | 23 2 0 1 0 -1 0 0 0 0 0 0 0 0.54437471 -972134043. 0. 0. 0. MM 92 | 24 2 0 1 0 -1 1 0 0 0 0 0 0 0.54658111 63010869. 0. 0. 0. 93 | 25 3 0 1 0 0 -1 0 0 0 0 0 0 0.54681011 0. 5341877. 0. 0. 94 | 26 3 0 1 0 0 0 0 0 0 0 0 0 0.54901652 0. -103721452. 0. 0. 95 | 27 3 0 1 0 0 1 0 0 0 0 0 0 0.55122293 0. -16248210. 0. 0. 96 | 28 2 0 1 0 1 0 0 0 0 0 0 0 0.55365833 52057578. 0. 0. 0. 97 | 29 2 0 1 0 1 1 0 0 0 0 0 0 0.55586474 21082141. 0. 0. 0. 98 | 30 2 0 1 0 1 2 0 0 0 0 0 0 0.55807115 5535534. 0. 0. 0. 99 | 31 2 0 1 1 -1 0 -1 0 0 0 0 0 0.58544138 5064425. 0. 0. 0. 100 | 32 2 0 1 2 -1 0 0 0 0 0 0 0 0.62651199 13662170. 0. 0. 0. 101 | 33 2 0 1 2 -1 1 0 0 0 0 0 0 0.62871839 6831085. 0. 0. 0. 102 | 34 2 0 2 -4 2 0 0 0 0 0 0 0 0.94304211 -3062210. 0. 0. 0. 103 | 35 2 0 2 -3 0 0 1 0 0 0 0 0 0.97482908 -10717737. 0. 0. 0. 104 | 36 2 0 2 -2 0 -1 0 0 0 0 0 0 1.01368935 -11542178. 0. 0. 0. 105 | 37 2 0 2 -2 0 0 0 0 0 0 0 0 1.01589576 -161354936. 0. 0. 0. MSF 106 | 38 2 0 2 -2 0 1 0 0 0 0 0 0 1.01810217 10364405. 0. 0. 0. 107 | 39 3 0 2 -2 1 0 0 0 0 0 0 0 1.02053757 0. -3338673. 0. 0. 108 | 40 2 0 2 -1 0 0 -1 0 0 0 0 0 1.05696244 2002215. 0. 0. 0. 109 | 41 2 0 2 -1 0 0 1 0 0 0 0 0 1.05696636 -5653312. 0. 0. 0. 110 | 42 2 0 2 -1 0 1 1 0 0 0 0 0 1.05917277 -1413328. 0. 0. 0. 111 | 43 2 0 2 0 -2 -1 0 0 0 0 0 0 1.08654301 4239984. 0. 0. 0. 112 | 44 2 0 2 0 -2 0 0 0 0 0 0 0 1.08874941 -79735249. 0. 0. 0. 113 | 45 2 0 2 0 -2 1 0 0 0 0 0 0 1.09095582 5182202. 0. 0. 0. 114 | 46 3 0 2 0 -1 0 0 0 0 0 0 0 1.09339123 0. -16915945. 0. 0. 115 | 47 3 0 2 0 -1 1 0 0 0 0 0 0 1.09559763 0. -2670939. 0. 0. 116 | 48 2 0 2 0 0 0 0 0 0 0 0 0 1.09803304-1842272923. 0. 0. 0. MF 117 | 49 2 0 2 0 0 1 0 0 0 0 0 0 1.10023945 -763314845. 0. 0. 0. 118 | 50 2 0 2 0 0 2 0 0 0 0 0 0 1.10244585 -71490836. 0. 0. 0. 119 | 51 2 0 2 0 0 3 0 0 0 0 0 0 1.10465226 1531105. 0. 0. 0. 120 | 52 2 0 2 1 0 0 -1 0 0 0 0 0 1.13909972 6359976. 0. 0. 0. 121 | 53 2 0 2 1 0 1 -1 0 0 0 0 0 1.14130612 1648883. 0. 0. 0. 122 | 54 2 0 2 2 -2 0 0 0 0 0 0 0 1.17088669 5535534. 0. 0. 0. 123 | 55 2 0 2 2 -2 1 0 0 0 0 0 0 1.17309310 2237769. 0. 0. 0. 124 | 56 2 0 3 -4 1 0 0 0 0 0 0 0 1.48741681 -4946648. 0. 0. 0. 125 | 57 2 0 3 -3 -1 0 1 0 0 0 0 0 1.51920379 -1884437. 0. 0. 0. 126 | 58 2 0 3 -3 1 0 1 0 0 0 0 0 1.52848741 -3062210. 0. 0. 0. 127 | 59 2 0 3 -3 1 1 1 0 0 0 0 0 1.53069382 -1295551. 0. 0. 0. 128 | 60 2 0 3 -2 -1 -1 0 0 0 0 0 0 1.55806406 -2591101. 0. 0. 0. 129 | 61 2 0 3 -2 -1 0 0 0 0 0 0 0 1.56027047 -25557680. 0. 0. 0. 130 | 62 2 0 3 -2 -1 1 0 0 0 0 0 0 1.56247687 1648883. 0. 0. 0. 131 | 63 3 0 3 -2 0 0 0 0 0 0 0 0 1.56491228 0. -2893517. 0. 0. 132 | 64 2 0 3 -2 1 0 0 0 0 0 0 0 1.56955409 -67015298. 0. 0. 0. MSTM 133 | 65 2 0 3 -2 1 1 0 0 0 0 0 0 1.57176050 -27795449. 0. 0. 0. 134 | 66 2 0 3 -2 1 2 0 0 0 0 0 0 1.57396691 -2473324. 0. 0. 0. 135 | 67 2 0 3 -1 -1 0 1 0 0 0 0 0 1.60134107 -3297765. 0. 0. 0. 136 | 68 2 0 3 -1 -1 1 1 0 0 0 0 0 1.60354747 -1177773. 0. 0. 0. 137 | 69 2 0 3 -1 0 0 0 0 0 0 0 0 1.60598092 1884437. 0. 0. 0. 138 | 70 2 0 3 0 -3 0 0 0 0 0 0 0 1.63312412 -6359976. 0. 0. 0. 139 | 71 2 0 3 0 -1 0 0 0 0 0 0 0 1.64240775 -352743089. 0. 0. 0. MTM 140 | 72 2 0 3 0 -1 1 0 0 0 0 0 0 1.64461415 -146161661. 0. 0. 0. 141 | 73 2 0 3 0 -1 2 0 0 0 0 0 0 1.64682056 -13779947. 0. 0. 0. 142 | 74 3 0 3 0 0 0 0 0 0 0 0 0 1.64704956 0. -8457972. 0. 0. 143 | 75 3 0 3 0 0 1 0 0 0 0 0 0 1.64925597 0. -5341877. 0. 0. 144 | 76 2 0 3 0 1 2 0 0 0 0 0 0 1.65610419 1413328. 0. 0. 0. 145 | 77 2 0 3 1 -1 0 -1 0 0 0 0 0 1.68347442 3062210. 0. 0. 0. 146 | 78 2 0 4 -4 0 0 0 0 0 0 0 0 2.03179152 -2355547. 0. 0. 0. 147 | 79 2 0 4 -4 2 0 0 0 0 0 0 0 2.04107515 -1648883. 0. 0. 0. 148 | 80 2 0 4 -3 0 0 1 0 0 0 0 0 2.07286212 -3768874. 0. 0. 0. 149 | 81 2 0 4 -3 0 1 1 0 0 0 0 0 2.07506853 -1531105. 0. 0. 0. 150 | 82 2 0 4 -2 -2 0 0 0 0 0 0 0 2.10464517 -2944433. 0. 0. 0. 151 | 83 2 0 4 -2 0 0 0 0 0 0 0 0 2.11392880 -56297562. 0. 0. 0. MSQM 152 | 84 2 0 4 -2 0 1 0 0 0 0 0 0 2.11613521 -23555465. 0. 0. 0. 153 | 85 2 0 4 -2 0 2 0 0 0 0 0 0 2.11834161 -2237769. 0. 0. 0. 154 | 86 2 0 4 0 -2 0 0 0 0 0 0 0 2.18678245 -46639821. 0. 0. 0. 155 | 87 2 0 4 0 -2 1 0 0 0 0 0 0 2.18898886 -19433259. 0. 0. 0. 156 | 88 2 0 4 0 -2 2 0 0 0 0 0 0 2.19119527 -1884437. 0. 0. 0. 157 | 89 3 0 4 0 -1 0 0 0 0 0 0 0 2.19142427 0. -2448360. 0. 0. 158 | 90 2 0 5 -4 1 0 0 0 0 0 0 0 2.58544985 -2708878. 0. 0. 0. 159 | 91 2 0 5 -2 -1 0 0 0 0 0 0 0 2.65830351 -13662170. 0. 0. 0. 160 | 92 2 0 5 -2 -1 1 0 0 0 0 0 0 2.66050991 -5653312. 0. 0. 0. 161 | 93 2 0 5 0 -3 0 0 0 0 0 0 0 2.73115716 -5299980. 0. 0. 0. 162 | 94 2 0 5 0 -3 1 0 0 0 0 0 0 2.73336357 -2237769. 0. 0. 0. 163 | 95 2 0 6 -4 0 0 0 0 0 0 0 0 3.12982456 -1413328. 0. 0. 0. 164 | 96 2 0 6 -2 -2 0 0 0 0 0 0 0 3.20267821 -2237769. 0. 0. 0. 165 | 97 2 1 -5 0 4 0 0 0 0 0 0 0 11.76553677 0. 1495973. 0. 0. 166 | 98 2 1 -5 2 2 0 0 0 0 0 0 0 11.83839043 0. 6255887. 0. 0. 167 | 99 2 1 -5 4 0 0 0 0 0 0 0 0 11.91124408 0. 3807931. 0. 0. 168 | 100 3 1 -4 0 2 0 0 0 0 0 0 0 12.30526967 1180399. 0. 0. 0. 169 | 101 2 1 -4 0 3 -1 0 0 0 0 0 0 12.30770507 0. 2855948. 0. 0. 170 | 102 2 1 -4 0 3 0 0 0 0 0 0 0 12.30991148 0. 14687734. 0. 0. 171 | 103 3 1 -4 2 0 0 0 0 0 0 0 0 12.37812332 1180399. 0. 0. 0. 172 | 104 2 1 -4 2 1 -1 0 0 0 0 0 0 12.38055873 0. 7207870. 0. 0. 173 | 105 2 1 -4 2 1 0 0 0 0 0 0 0 12.38276513 0. 37807316. 0. 0. 174 | 106 2 1 -4 3 1 0 -1 0 0 0 0 0 12.42383181 0. 2855948. 0. 0. 175 | 107 2 1 -4 4 -1 -1 0 0 0 0 0 0 12.45341238 0. 1359975. 0. 0. 176 | 108 2 1 -4 4 -1 0 0 0 0 0 0 0 12.45561879 0. 7343867. 0. 0. 177 | 109 2 1 -3 -1 2 0 1 0 0 0 0 0 12.81321951 0. -1767968. 0. 0. 178 | 110 3 1 -3 0 1 -1 0 0 0 0 0 0 12.84743797 2714918. 0. 0. 0. 179 | 111 3 1 -3 0 1 0 0 0 0 0 0 0 12.84964437 6846316. 0. 0. 0. 180 | 112 2 1 -3 0 2 -1 0 0 0 0 0 0 12.85207978 0. 24479557. 0. 0. 181 | 113 2 1 -3 0 2 0 0 0 0 0 0 0 12.85428619 0. 129877652. 0. 0. 2Q1 182 | 114 2 1 -3 1 0 0 1 0 0 0 0 0 12.88607316 0. -2175961. 0. 0. 183 | 115 2 1 -3 1 1 0 0 0 0 0 0 0 12.89071301 0. -1495973. 0. 0. 184 | 116 2 1 -3 1 2 0 -1 0 0 0 0 0 12.89535287 0. 2039963. 0. 0. 185 | 117 3 1 -3 2 -1 0 0 0 0 0 0 0 12.92249803 1298439. 0. 0. 0. 186 | 118 2 1 -3 2 0 -1 0 0 0 0 0 0 12.92493343 0. 29647464. 0. 0. 187 | 119 2 1 -3 2 0 0 0 0 0 0 0 0 12.92713984 0. 156805165. 0. 0. SIG1 188 | 120 2 1 -3 3 0 -1 -1 0 0 0 0 0 12.96600011 0. 1903966. 0. 0. 189 | 121 2 1 -3 3 0 0 -1 0 0 0 0 0 12.96820652 0. 10743806. 0. 0. 190 | 122 2 1 -3 4 -2 0 0 0 0 0 0 0 12.99999349 0. 4759914. 0. 0. 191 | 123 2 1 -2 -2 3 0 0 0 0 0 0 0 13.32580724 0. -3127943. 0. 0. 192 | 124 2 1 -2 -1 1 0 1 0 0 0 0 0 13.35759422 0. -8295850. 0. 0. 193 | 125 2 1 -2 0 -1 -2 0 0 0 0 0 0 13.38496445 0. -3807931. 0. 0. 194 | 126 3 1 -2 0 0 -1 0 0 0 0 0 0 13.39181267 9915354. 0. 0. 0. 195 | 127 3 1 -2 0 0 0 0 0 0 0 0 0 13.39401908 24906425. 0. 0. 0. 196 | 128 2 1 -2 0 1 -2 0 0 0 0 0 0 13.39424808 0. -5711897. 0. 0. 197 | 129 2 1 -2 0 1 -1 0 0 0 0 0 0 13.39645449 0. 184956656. 0. 0. 198 | 130 2 1 -2 0 1 0 0 0 0 0 0 0 13.39866089 0. 981358256. 0. 0. Q1 199 | 131 3 1 -2 0 2 0 0 0 0 0 0 0 13.40330271 1534519. 0. 0. 0. 200 | 132 2 1 -2 0 3 0 0 0 0 0 0 0 13.40794452 0. -2583953. 0. 0. 201 | 133 2 1 -2 1 -1 0 1 0 0 0 0 0 13.43044787 0. -1767968. 0. 0. 202 | 134 2 1 -2 1 0 0 0 0 0 0 0 0 13.43508772 0. -5303904. 0. 0. 203 | 135 2 1 -2 1 1 -1 -1 0 0 0 0 0 13.43752117 0. 1495973. 0. 0. 204 | 136 2 1 -2 1 1 0 -1 0 0 0 0 0 13.43972757 0. 9247833. 0. 0. 205 | 137 2 1 -2 2 -1 -1 0 0 0 0 0 0 13.46930814 0. 35087366. 0. 0. 206 | 138 2 1 -2 2 -1 0 0 0 0 0 0 0 13.47151455 0. 186452629. 0. 0. RO1 207 | 139 3 1 -2 2 0 0 0 0 0 0 0 0 13.47615636 2124719. 0. 0. 0. 208 | 140 2 1 -2 2 1 0 0 0 0 0 0 0 13.48079817 0. -10607808. 0. 0. 209 | 141 2 1 -2 2 1 1 0 0 0 0 0 0 13.48300458 0. 3263941. 0. 0. 210 | 142 2 1 -2 3 -1 -1 -1 0 0 0 0 0 13.51037482 0. 1495973. 0. 0. 211 | 143 2 1 -2 3 -1 0 -1 0 0 0 0 0 13.51258123 0. 8703843. 0. 0. 212 | 144 2 1 -2 4 -1 0 0 0 0 0 0 0 13.55365183 0. -1903966. 0. 0. 213 | 145 2 1 -1 -2 0 -2 0 0 0 0 0 0 13.85648551 0. -2311958. 0. 0. 214 | 146 2 1 -1 -2 2 -1 0 0 0 0 0 0 13.86797554 0. -2719951. 0. 0. 215 | 147 2 1 -1 -2 2 0 0 0 0 0 0 0 13.87018195 0. -15367722. 0. 0. 216 | 148 2 1 -1 -1 0 -1 1 0 0 0 0 0 13.89976252 0. -2039963. 0. 0. 217 | 149 2 1 -1 -1 0 0 1 0 0 0 0 0 13.90196892 0. -17679680. 0. 0. 218 | 150 3 1 -1 0 -1 0 0 0 0 0 0 0 13.93839379 -1416479. 0. 0. 0. 219 | 151 2 1 -1 0 0 -2 0 0 0 0 0 0 13.93862279 0. -29647464. 0. 0. 220 | 152 2 1 -1 0 0 -1 0 0 0 0 0 0 13.94082919 0. 966262528. 0. 0. 221 | 153 2 1 -1 0 0 0 0 0 0 0 0 0 13.94303560 0. 5125611321. 0. 0. O1 222 | 154 3 1 -1 0 1 -1 0 0 0 0 0 0 13.94547101 -1888639. 0. 0. 0. 223 | 155 3 1 -1 0 1 0 0 0 0 0 0 0 13.94767741 12748312. 0. 0. 0. 224 | 156 3 1 -1 0 1 1 0 0 0 0 0 0 13.94988382 -1652559. 0. 0. 0. 225 | 157 2 1 -1 0 2 0 0 0 0 0 0 0 13.95231923 0. -33047402. 0. 0. 226 | 158 2 1 -1 0 2 1 0 0 0 0 0 0 13.95452563 0. -5439902. 0. 0. 227 | 159 2 1 -1 1 0 -1 -1 0 0 0 0 0 13.98189587 0. 1631970. 0. 0. 228 | 160 2 1 -1 1 0 0 -1 0 0 0 0 0 13.98410228 0. 15639717. 0. 0. 229 | 161 2 1 -1 2 -2 0 0 0 0 0 0 0 14.01588925 0. -2855948. 0. 0. 230 | 162 3 1 -1 2 -1 0 0 0 0 0 0 0 14.02053107 2478838. 0. 0. 0. 231 | 163 2 1 -1 2 0 -1 0 0 0 0 0 0 14.02296647 0. 1903966. 0. 0. 232 | 164 2 1 -1 2 0 0 0 0 0 0 0 0 14.02517288 0. -66774793. 0. 0. TAU1 233 | 165 2 1 -1 2 0 1 0 0 0 0 0 0 14.02737929 0. 14551737. 0. 0. 234 | 166 2 1 -1 3 0 0 -1 0 0 0 0 0 14.06623956 0. -4487919. 0. 0. 235 | 167 2 1 0 -3 1 0 1 0 0 0 0 0 14.37348998 0. -1903966. 0. 0. 236 | 168 2 1 0 -2 1 -1 0 0 0 0 0 0 14.41235025 0. -8567845. 0. 0. 237 | 169 2 1 0 -2 1 0 0 0 0 0 0 0 14.41455665 0. -37807316. 0. 0. 238 | 170 2 1 0 -1 1 0 1 0 0 0 0 0 14.45562726 0. 2039963. 0. 0. 239 | 171 2 1 0 0 -1 -2 0 0 0 0 0 0 14.48299749 0. 2311958. 0. 0. 240 | 172 2 1 0 0 -1 -1 0 0 0 0 0 0 14.48520390 0. -26791516. 0. 0. 241 | 173 2 1 0 0 -1 0 0 0 0 0 0 0 14.48741031 0. -144837381. 0. 0. 242 | 174 3 1 0 0 0 -1 0 0 0 0 0 0 14.48984571 -11567913. 0. 0. 0. 243 | 175 3 1 0 0 0 0 0 0 0 0 0 0 14.49205212 78024393. 0. 0. 0. 244 | 176 3 1 0 0 0 1 0 0 0 0 0 0 14.49425853 -10151434. 0. 0. 0. 245 | 177 2 1 0 0 1 -1 0 0 0 0 0 0 14.49448753 0. 11559791. 0. 0. 246 | 178 2 1 0 0 1 0 0 0 0 0 0 0 14.49669393 0. -403096711. 0. 0. M1 247 | 179 2 1 0 0 1 1 0 0 0 0 0 0 14.49890034 0. -80782539. 0. 0. 248 | 180 2 1 0 0 1 2 0 0 0 0 0 0 14.50110675 0. 2311958. 0. 0. 249 | 181 2 1 0 1 0 0 0 0 0 0 0 0 14.53312076 0. 2175961. 0. 0. 250 | 182 2 1 0 1 1 0 -1 0 0 0 0 0 14.53776061 0. -2447956. 0. 0. 251 | 183 2 1 0 2 -1 -1 0 0 0 0 0 0 14.56734118 0. 2175961. 0. 0. 252 | 184 2 1 0 2 -1 0 0 0 0 0 0 0 14.56954759 0. -76974608. 0. 0. CHI1 253 | 185 2 1 0 2 -1 1 0 0 0 0 0 0 14.57175399 0. -16863695. 0. 0. 254 | 186 2 1 0 3 -1 0 -1 0 0 0 0 0 14.61061427 0. -3263941. 0. 0. 255 | 187 2 1 1 -4 0 0 2 0 0 0 0 0 14.87679800 0. 5711897. 0. 0. 256 | 188 2 1 1 -3 0 0 1 0 0 0 0 0 14.91786468 0. 139941470. 0. 0. PI1 257 | 189 2 1 1 -2 0 -2 0 0 0 0 0 0 14.95451855 0. 1903966. 0. 0. 258 | 190 2 1 1 -2 0 -1 0 0 0 0 0 0 14.95672495 0. -27063511. 0. 0. 259 | 191 2 1 1 -2 0 0 0 0 0 0 0 0 14.95893136 0. 2391380760. 0. 0. P1 260 | 192 2 1 1 -2 0 0 2 0 0 0 0 0 14.95893528 0. -1495973. 0. 0. 261 | 193 2 1 1 -2 2 0 0 0 0 0 0 0 14.96821499 0. -3535936. 0. 0. 262 | 194 2 1 1 -1 0 0 -1 0 0 0 0 0 14.99999804 0. -19991639. 0. 0. 263 | 195 2 1 1 -1 0 0 1 0 0 0 0 0 15.00000196 0. -57526960. 0. 0. S1 264 | 196 3 1 1 0 -1 0 0 0 0 0 0 0 15.03642683 4249437. 0. 0. 0. 265 | 197 2 1 1 0 0 -1 0 0 0 0 0 0 15.03886223 0. 142797418. 0. 0. 266 | 198 2 1 1 0 0 0 0 0 0 0 0 0 15.04106864 0.-7208821653. 0. 0. K1 267 | 199 2 1 1 0 0 1 0 0 0 0 0 0 15.04327505 0. -976734339. 0. 0. 268 | 200 2 1 1 0 0 2 0 0 0 0 0 0 15.04548145 0. 20943621. 0. 0. 269 | 201 3 1 1 0 1 0 0 0 0 0 0 0 15.04571045 1534519. 0. 0. 0. 270 | 202 2 1 1 1 0 0 -1 0 0 0 0 0 15.08213532 0. -57526960. 0. 0. PSI1 271 | 203 2 1 1 2 -2 0 0 0 0 0 0 0 15.11392229 0. -3535936. 0. 0. 272 | 204 2 1 1 2 0 0 -2 0 0 0 0 0 15.12320200 0. -1495973. 0. 0. 273 | 205 2 1 1 2 0 0 0 0 0 0 0 0 15.12320592 0. -102814141. 0. 0. FI1 274 | 206 2 1 1 2 0 1 0 0 0 0 0 0 15.12541233 0. 3943929. 0. 0. 275 | 207 2 1 1 2 0 2 0 0 0 0 0 0 15.12761873 0. 1903966. 0. 0. 276 | 208 2 1 1 3 0 0 -1 0 0 0 0 0 15.16427260 0. -5983892. 0. 0. 277 | 209 2 1 2 -3 1 0 1 0 0 0 0 0 15.47152302 0. -3263941. 0. 0. 278 | 210 2 1 2 -2 -1 -1 0 0 0 0 0 0 15.50109966 0. -2311958. 0. 0. 279 | 211 2 1 2 -2 1 -1 0 0 0 0 0 0 15.51038329 0. 2447956. 0. 0. 280 | 212 2 1 2 -2 1 0 0 0 0 0 0 0 15.51258969 0. -76974608. 0. 0. THE1 281 | 213 2 1 2 -2 1 1 0 0 0 0 0 0 15.51479610 0. -15231725. 0. 0. 282 | 214 2 1 2 -1 -1 0 1 0 0 0 0 0 15.54437667 0. -2447956. 0. 0. 283 | 215 2 1 2 -1 0 0 0 0 0 0 0 0 15.54901652 0. 2175961. 0. 0. 284 | 216 2 1 2 0 -1 -1 0 0 0 0 0 0 15.58323694 0. 11831786. 0. 0. 285 | 217 2 1 2 0 -1 0 0 0 0 0 0 0 15.58544335 0. -403096711. 0. 0. J1 286 | 218 2 1 2 0 -1 1 0 0 0 0 0 0 15.58764975 0. -79830557. 0. 0. 287 | 219 2 1 2 0 -1 2 0 0 0 0 0 0 15.58985616 0. 1767968. 0. 0. 288 | 220 3 1 2 0 0 0 0 0 0 0 0 0 15.59008516 28447623. 0. 0. 0. 289 | 221 2 1 2 0 1 0 0 0 0 0 0 0 15.59472697 0. 6255887. 0. 0. 290 | 222 2 1 2 0 1 1 0 0 0 0 0 0 15.59693338 0. 3943929. 0. 0. 291 | 223 2 1 2 0 1 2 0 0 0 0 0 0 15.59913979 0. 2311958. 0. 0. 292 | 224 2 1 2 1 -1 0 -1 0 0 0 0 0 15.62651003 0. 2039963. 0. 0. 293 | 225 2 1 2 2 -1 0 0 0 0 0 0 0 15.66758063 0. 1631970. 0. 0. 294 | 226 2 1 3 -3 0 0 1 0 0 0 0 0 16.01589772 0. -4351921. 0. 0. 295 | 227 2 1 3 -2 0 -1 0 0 0 0 0 0 16.05475799 0. -2175961. 0. 0. 296 | 228 2 1 3 -2 0 0 0 0 0 0 0 0 16.05696440 0. -66910790. 0. 0. SO1 297 | 229 2 1 3 -2 0 1 0 0 0 0 0 0 16.05917081 0. -13055764. 0. 0. 298 | 230 2 1 3 0 -2 0 0 0 0 0 0 0 16.12981805 0. -32639410. 0. 0. 299 | 231 2 1 3 0 -2 1 0 0 0 0 0 0 16.13202446 0. -6527882. 0. 0. 300 | 232 3 1 3 0 -1 0 0 0 0 0 0 0 16.13445987 4721597. 0. 0. 0. 301 | 233 3 1 3 0 -1 1 0 0 0 0 0 0 16.13666627 1888639. 0. 0. 0. 302 | 234 2 1 3 0 0 0 0 0 0 0 0 0 16.13910168 0. -220724009. 0. 0. OO1 303 | 235 2 1 3 0 0 1 0 0 0 0 0 0 16.14130809 0. -141301445. 0. 0. 304 | 236 2 1 3 0 0 2 0 0 0 0 0 0 16.14351449 0. -29647464. 0. 0. 305 | 237 2 1 3 0 0 3 0 0 0 0 0 0 16.14572090 0. -1903966. 0. 0. 306 | 238 2 1 4 -4 1 0 0 0 0 0 0 0 16.52848545 0. -2039963. 0. 0. 307 | 239 2 1 4 -2 -1 0 0 0 0 0 0 0 16.60133911 0. -10607808. 0. 0. 308 | 240 2 1 4 -2 -1 1 0 0 0 0 0 0 16.60354551 0. -2039963. 0. 0. 309 | 241 2 1 4 -2 1 0 0 0 0 0 0 0 16.61062273 0. -8023855. 0. 0. 310 | 242 2 1 4 -2 1 1 0 0 0 0 0 0 16.61282914 0. -5167907. 0. 0. 311 | 243 2 1 4 0 -3 0 0 0 0 0 0 0 16.67419276 0. -2583953. 0. 0. 312 | 244 2 1 4 0 -1 0 0 0 0 0 0 0 16.68347639 0. -42295235. 0. 0. V1 313 | 245 2 1 4 0 -1 1 0 0 0 0 0 0 16.68568279 0. -27063511. 0. 0. 314 | 246 2 1 4 0 -1 2 0 0 0 0 0 0 16.68788920 0. -5711897. 0. 0. 315 | 247 2 1 5 -2 0 0 0 0 0 0 0 0 17.15499744 0. -6799877. 0. 0. 316 | 248 2 1 5 -2 0 1 0 0 0 0 0 0 17.15720385 0. -4351921. 0. 0. 317 | 249 2 1 5 0 -2 0 0 0 0 0 0 0 17.22785109 0. -5575899. 0. 0. 318 | 250 2 1 5 0 -2 1 0 0 0 0 0 0 17.23005750 0. -3671934. 0. 0. 319 | 251 2 1 6 -2 -1 0 0 0 0 0 0 0 17.69937215 0. -1631970. 0. 0. 320 | 252 2 2 -5 2 3 0 0 0 0 0 0 0 26.33508436 2039963. 0. 0. 0. 321 | 253 2 2 -5 4 1 0 0 0 0 0 0 0 26.40793801 2447956. 0. 0. 0. 322 | 254 2 2 -4 0 4 0 0 0 0 0 0 0 26.80660542 3671934. 0. 0. 0. 323 | 255 2 2 -4 2 2 0 0 0 0 0 0 0 26.87945907 15095727. 0. 0. 0. 324 | 256 2 2 -4 4 0 0 0 0 0 0 0 0 26.95231272 9383830. 0. 0. 0. 325 | 257 3 2 -3 0 2 0 0 0 0 0 0 0 27.34633831 0. -3605767. 0. 0. 326 | 258 2 2 -3 0 3 0 0 0 0 0 0 0 27.35098012 35223363. 0. 0. 0. 3N2 327 | 259 2 2 -3 1 1 0 1 0 0 0 0 0 27.38276710 -1631970. 0. 0. 0. 328 | 260 3 2 -3 2 0 0 0 0 0 0 0 0 27.41919196 0. -3605767. 0. 0. 329 | 261 2 2 -3 2 1 -1 0 0 0 0 0 0 27.42162737 -3399939. 0. 0. 0. 330 | 262 2 2 -3 2 1 0 0 0 0 0 0 0 27.42383377 91254350. 0. 0. 0. EPS2 331 | 263 2 2 -3 3 1 0 -1 0 0 0 0 0 27.46490045 7343867. 0. 0. 0. 332 | 264 2 2 -3 4 -1 0 0 0 0 0 0 0 27.49668743 17679680. 0. 0. 0. 333 | 265 2 2 -3 5 -1 0 -1 0 0 0 0 0 27.53775411 2039963. 0. 0. 0. 334 | 266 2 2 -2 -1 2 0 1 0 0 0 0 0 27.85428815 -4215924. 0. 0. 0. 335 | 267 2 2 -2 0 0 -2 0 0 0 0 0 0 27.88165839 -1903966. 0. 0. 0. 336 | 268 3 2 -2 0 1 -1 0 0 0 0 0 0 27.88850661 0. -3605767. 0. 0. 337 | 269 3 2 -2 0 1 0 0 0 0 0 0 0 27.89071301 0. -20833322. 0. 0. 338 | 270 2 2 -2 0 2 -1 0 0 0 0 0 0 27.89314842 -11695789. 0. 0. 0. 339 | 271 2 2 -2 0 2 0 0 0 0 0 0 0 27.89535483 312930342. 0. 0. 0. 2N2 340 | 272 2 2 -2 1 0 0 1 0 0 0 0 0 27.92714180 -5439902. 0. 0. 0. 341 | 273 2 2 -2 1 1 0 0 0 0 0 0 0 27.93178165 -3399939. 0. 0. 0. 342 | 274 2 2 -2 1 2 0 -1 0 0 0 0 0 27.93642151 4895911. 0. 0. 0. 343 | 275 3 2 -2 2 -1 0 0 0 0 0 0 0 27.96356667 0. -3872861. 0. 0. 344 | 276 2 2 -2 2 0 -1 0 0 0 0 0 0 27.96600207 -14143744. 0. 0. 0. 345 | 277 2 2 -2 2 0 0 0 0 0 0 0 0 27.96820848 377665171. 0. 0. 0. MI2 346 | 278 2 2 -2 3 0 0 -1 0 0 0 0 0 28.00927516 25703535. 0. 0. 0. 347 | 279 2 2 -2 4 -2 0 0 0 0 0 0 0 28.04106213 11559791. 0. 0. 0. 348 | 280 2 2 -1 -2 1 -2 0 0 0 0 0 0 28.35317944 -2039963. 0. 0. 0. 349 | 281 2 2 -1 -2 3 0 0 0 0 0 0 0 28.36687588 -7615862. 0. 0. 0. 350 | 282 2 2 -1 -1 1 0 1 0 0 0 0 0 28.39866286 -19991639. 0. 0. 0. 351 | 283 2 2 -1 0 -1 -2 0 0 0 0 0 0 28.42603309 -8567845. 0. 0. 0. 352 | 284 3 2 -1 0 0 -1 0 0 0 0 0 0 28.43288131 0. -12954053. 0. 0. 353 | 285 3 2 -1 0 0 0 0 0 0 0 0 0 28.43508772 0. -75988205. 0. 0. 354 | 286 2 2 -1 0 0 0 1 0 0 0 0 0 28.43508968 1903966. 0. 0. 0. 355 | 287 2 2 -1 0 1 -1 0 0 0 0 0 0 28.43752313 -88126407. 0. 0. 0. 356 | 288 2 2 -1 0 1 0 0 0 0 0 0 0 28.43972953 2364589245. 0. 0. 0. N2 357 | 289 3 2 -1 0 2 0 0 0 0 0 0 0 28.44437135 0. 1469016. 0. 0. 358 | 290 2 2 -1 1 -1 0 1 0 0 0 0 0 28.47151651 -4487919. 0. 0. 0. 359 | 291 2 2 -1 1 0 0 0 0 0 0 0 0 28.47615636 -12783769. 0. 0. 0. 360 | 292 2 2 -1 1 1 0 -1 0 0 0 0 0 28.48079621 22167599. 0. 0. 0. 361 | 293 2 2 -1 2 -1 -1 0 0 0 0 0 0 28.51037678 -16727698. 0. 0. 0. 362 | 294 2 2 -1 2 -1 0 0 0 0 0 0 0 28.51258319 449199878. 0. 0. 0. NI2 363 | 295 3 2 -1 2 0 0 0 0 0 0 0 0 28.51722500 0. 2003204. 0. 0. 364 | 296 2 2 -1 2 1 0 0 0 0 0 0 0 28.52186681 2311958. 0. 0. 0. 365 | 297 2 2 -1 2 1 1 0 0 0 0 0 0 28.52407322 -1631970. 0. 0. 0. 366 | 298 2 2 -1 3 -1 0 -1 0 0 0 0 0 28.55364987 20807624. 0. 0. 0. 367 | 299 2 2 0 -3 2 0 1 0 0 0 0 0 28.87018391 -1495973. 0. 0. 0. 368 | 300 2 2 0 -2 0 -2 0 0 0 0 0 0 28.89755415 -5439902. 0. 0. 0. 369 | 301 2 2 0 -2 2 0 0 0 0 0 0 0 28.91125059 -37127329. 0. 0. 0. GAM2 370 | 302 2 2 0 -1 0 0 1 0 0 0 0 0 28.94303756 -42703228. 0. 0. 0. ALF2 371 | 303 2 2 0 -1 1 0 0 0 0 0 0 0 28.94767741 1903966. 0. 0. 0. 372 | 304 3 2 0 0 -1 0 0 0 0 0 0 0 28.97946243 0. 4273502. 0. 0. 373 | 305 2 2 0 0 0 -2 0 0 0 0 0 0 28.97969143 6391884. 0. 0. 0. 374 | 306 2 2 0 0 0 -1 0 0 0 0 0 0 28.98189783 -460487674. 0. 0. 0. 375 | 307 2 2 0 0 0 0 0 0 0 0 0 0 28.9841042412350208689. 0. 0. 0. M2 376 | 308 3 2 0 0 1 0 0 0 0 0 0 0 28.98874605 0. 11485036. 0. 0. 377 | 309 3 2 0 0 1 1 0 0 0 0 0 0 28.99095246 0. 2136751. 0. 0. 378 | 310 2 2 0 0 2 0 0 0 0 0 0 0 28.99338787 7207870. 0. 0. 0. 379 | 311 2 2 0 0 2 1 0 0 0 0 0 0 28.99559427 2583953. 0. 0. 0. 380 | 312 2 2 0 1 0 0 -1 0 0 0 0 0 29.02517092 37535321. 0. 0. 0. BET2 381 | 313 2 2 0 2 -2 0 0 0 0 0 0 0 29.05695789 -7071872. 0. 0. 0. 382 | 314 3 2 0 2 -1 0 0 0 0 0 0 0 29.06159971 0. 2270298. 0. 0. 383 | 315 2 2 0 2 0 0 0 0 0 0 0 0 29.06624152 14551737. 0. 0. 0. DLT2 384 | 316 2 2 0 2 0 1 0 0 0 0 0 0 29.06844793 -6935875. 0. 0. 0. 385 | 317 2 2 0 2 0 2 0 0 0 0 0 0 29.07065433 2447956. 0. 0. 0. 386 | 318 2 2 1 -3 1 0 1 0 0 0 0 0 29.41455862 -4487919. 0. 0. 0. 387 | 319 2 2 1 -2 1 -1 0 0 0 0 0 0 29.45341889 3263941. 0. 0. 0. 388 | 320 2 2 1 -2 1 0 0 0 0 0 0 0 29.45562529 -91118352. 0. 0. 0. LMB2 389 | 321 2 2 1 -1 -1 0 1 0 0 0 0 0 29.48741227 -1359975. 0. 0. 0. 390 | 322 2 2 1 -1 0 0 0 0 0 0 0 0 29.49205212 2311958. 0. 0. 0. 391 | 323 2 2 1 0 -1 -1 0 0 0 0 0 0 29.52627254 12919766. 0. 0. 0. 392 | 324 2 2 1 0 -1 0 0 0 0 0 0 0 29.52847895 -349105688. 0. 0. 0. L2 393 | 325 3 2 1 0 0 -1 0 0 0 0 0 0 29.53091435 0. -4139955. 0. 0. 394 | 326 3 2 1 0 0 0 0 0 0 0 0 0 29.53312076 0. 70112140. 0. 0. 395 | 327 3 2 1 0 0 1 0 0 0 0 0 0 29.53532717 0. 13221146. 0. 0. 396 | 328 2 2 1 0 1 -1 0 0 0 0 0 0 29.53555617 -1631970. 0. 0. 0. 397 | 329 2 2 1 0 1 0 0 0 0 0 0 0 29.53776257 87446419. 0. 0. 0. 398 | 330 2 2 1 0 1 1 0 0 0 0 0 0 29.53996898 38487304. 0. 0. 0. 399 | 331 2 2 1 0 1 2 0 0 0 0 0 0 29.54217539 5439902. 0. 0. 0. 400 | 332 2 2 1 2 -1 0 0 0 0 0 0 0 29.61061623 16727698. 0. 0. 0. 401 | 333 2 2 1 2 -1 1 0 0 0 0 0 0 29.61282263 8023855. 0. 0. 0. 402 | 334 2 2 2 -4 0 0 2 0 0 0 0 0 29.91786664 13735752. 0. 0. 0. 2T2 403 | 335 2 2 2 -3 0 0 1 0 0 0 0 0 29.95893332 337137904. 0. 0. 0. T2 404 | 336 2 2 2 -2 0 -1 0 0 0 0 0 0 29.99779359 12783769. 0. 0. 0. 405 | 337 2 2 2 -2 0 0 0 0 0 0 0 0 30.00000000 5760583840. 0. 0. 0. S2 406 | 338 2 2 2 -1 0 0 -1 0 0 0 0 0 30.04106668 -48143129. 0. 0. 0. R2 407 | 339 2 2 2 -1 0 0 1 0 0 0 0 0 30.04107060 12511774. 0. 0. 0. 408 | 340 3 2 2 0 -1 0 0 0 0 0 0 0 30.07749547 0. 3872861. 0. 0. 409 | 341 2 2 2 0 0 -1 0 0 0 0 0 0 30.07993087 -19991639. 0. 0. 0. 410 | 342 2 2 2 0 0 0 0 0 0 0 0 0 30.08213728 1564787706. 0. 0. 0. K2 411 | 343 2 2 2 0 0 1 0 0 0 0 0 0 30.08434369 465519583. 0. 0. 0. 412 | 344 2 2 2 0 0 2 0 0 0 0 0 0 30.08655009 50591085. 0. 0. 0. 413 | 345 2 2 2 1 0 0 -1 0 0 0 0 0 30.12320396 12511774. 0. 0. 0. 414 | 346 2 2 2 2 0 0 0 0 0 0 0 0 30.16427456 10607808. 0. 0. 0. 415 | 347 2 2 3 -2 1 0 0 0 0 0 0 0 30.55365833 16727698. 0. 0. 0. KSI2 416 | 348 2 2 3 -2 1 1 0 0 0 0 0 0 30.55586474 7343867. 0. 0. 0. 417 | 349 2 2 3 0 -1 -1 0 0 0 0 0 0 30.62430558 -1631970. 0. 0. 0. 418 | 350 2 2 3 0 -1 0 0 0 0 0 0 0 30.62651199 87446419. 0. 0. 0. ETA2 419 | 351 2 2 3 0 -1 1 0 0 0 0 0 0 30.62871839 38079311. 0. 0. 0. 420 | 352 2 2 3 0 -1 2 0 0 0 0 0 0 30.63092480 4079926. 0. 0. 0. 421 | 353 3 2 3 0 0 0 0 0 0 0 0 0 30.63115380 0. 6410253. 0. 0. 422 | 354 3 2 3 0 0 1 0 0 0 0 0 0 30.63336021 0. 4139955. 0. 0. 423 | 355 2 2 4 -2 0 0 0 0 0 0 0 0 31.09803304 14551737. 0. 0. 0. 424 | 356 2 2 4 -2 0 1 0 0 0 0 0 0 31.10023945 6255887. 0. 0. 0. 425 | 357 2 2 4 0 -2 0 0 0 0 0 0 0 31.17088669 7207870. 0. 0. 0. 426 | 358 2 2 4 0 -2 1 0 0 0 0 0 0 31.17309310 3127943. 0. 0. 0. 427 | 359 2 2 4 0 0 0 0 0 0 0 0 0 31.18017032 22847587. 0. 0. 0. 428 | 360 2 2 4 0 0 1 0 0 0 0 0 0 31.18237673 19855641. 0. 0. 0. 429 | 361 2 2 4 0 0 2 0 0 0 0 0 0 31.18458313 6391884. 0. 0. 0. 430 | 362 2 2 5 -2 -1 0 0 0 0 0 0 0 31.64240775 2311958. 0. 0. 0. 431 | 363 2 2 5 0 -1 0 0 0 0 0 0 0 31.72454503 4351921. 0. 0. 0. 432 | 364 2 2 5 0 -1 1 0 0 0 0 0 0 31.72675143 3807931. 0. 0. 0. 433 | 365 3 3 -3 2 1 0 0 0 0 0 0 0 41.91588589 -2140457. 0. 0. 0. 434 | 366 3 3 -2 0 2 0 0 0 0 0 0 0 42.38740695 -7050918. 0. 0. 0. 435 | 367 3 3 -2 2 0 0 0 0 0 0 0 0 42.46026060 -7176828. 0. 0. 0. 436 | 368 3 3 -1 0 1 -1 0 0 0 0 0 0 42.92957525 2266367. 0. 0. 0. 437 | 369 3 3 -1 0 1 0 0 0 0 0 0 0 42.93178165 -41046418. 0. 0. 0. 438 | 370 3 3 -1 2 -1 0 0 0 0 0 0 0 43.00463531 -7680465. 0. 0. 0. 439 | 371 3 3 0 0 0 -1 0 0 0 0 0 0 43.47394995 8310011. 0. 0. 0. 440 | 372 3 3 0 0 0 0 0 0 0 0 0 0 43.47615636 -149580197. 0. 0. 0. M3 441 | 373 3 3 1 -2 1 0 0 0 0 0 0 0 43.94767741 2140457. 0. 0. 0. 442 | 374 3 3 1 0 -1 0 0 0 0 0 0 0 44.02053107 8435920. 0. 0. 0. 443 | 375 3 3 1 0 1 0 0 0 0 0 0 0 44.02981469 -3147731. 0. 0. 0. 444 | 376 3 3 1 0 1 1 0 0 0 0 0 0 44.03202110 -1385002. 0. 0. 0. 445 | 377 3 3 2 0 0 0 0 0 0 0 0 0 44.57418940 -19515935. 0. 0. 0. 446 | 378 3 3 2 0 0 1 0 0 0 0 0 0 44.57639581 -8561829. 0. 0. 0. 447 | 999999 448 |  -------------------------------------------------------------------------------- /pygtide/commdat/etddt.dat: -------------------------------------------------------------------------------- 1 | File : etddt.dat 2 | Updated : 20/11/2023 3 | Contents : Table to interpolate DDT=TT-UTC. For epochs less 4 | than 1820, DDT is not defined within this table. 5 | Source : ftp://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat 6 | Note : File must have an empty line at the end! 7 | Explanation: 8 | ============================================================= 9 | https://www.ucolick.org/~sla/leapsecs/timescales.html 10 | ============================================================= 11 | ET 1960-1983 12 | TDT 1984-2000 13 | UTC 1972- GPS 1980- TAI 1958- TT 2001- 14 | ----+---------+-------------+-------------------------+----- 15 | | | | | 16 | |<-- TAI-UTC (leaps) -->|<----- TT-TAI ----->| 17 | | | | 32.184s fixed | 18 | ||<- TAI-GPS ->| | 19 | | | 19s fixed | | 20 | | | 21 | |<----- DDT = TT-UTC = delta-T + delta-UT ------->| 22 | | | 23 | <->| delta-UT = UT1-UTC (max +/-0.9 sec) | 24 | -------+----------------------------------------------+----- 25 | |<------------ delta-T = TT-UT1 -------------->| 26 | UT1 (UT) TT/TDT/ET 27 | ============================================================= 28 | 29 | Year Julian date DDT (TT-UTC) [s] 30 | C************************************************************* 31 | 1820.00000 2385800.50000 12.000 32 | 1821.00000 2386166.50000 11.700 33 | 1822.00000 2386531.50000 11.400 34 | 1823.00000 2386896.50000 11.100 35 | 1824.00000 2387261.50000 10.600 36 | 1825.00000 2387627.50000 10.200 37 | 1826.00000 2387992.50000 9.600 38 | 1827.00000 2388357.50000 9.100 39 | 1828.00000 2388722.50000 8.600 40 | 1829.00000 2389088.50000 8.000 41 | 1830.00000 2389453.50000 7.500 42 | 1831.00000 2389818.50000 7.000 43 | 1832.00000 2390183.50000 6.600 44 | 1833.00000 2390549.50000 6.300 45 | 1834.00000 2390914.50000 6.000 46 | 1835.00000 2391279.50000 5.800 47 | 1836.00000 2391644.50000 5.700 48 | 1837.00000 2392010.50000 5.600 49 | 1838.00000 2392375.50000 5.600 50 | 1839.00000 2392740.50000 5.600 51 | 1840.00000 2393105.50000 5.700 52 | 1841.00000 2393471.50000 5.800 53 | 1842.00000 2393836.50000 5.900 54 | 1843.00000 2394201.50000 6.100 55 | 1844.00000 2394566.50000 6.200 56 | 1845.00000 2394932.50000 6.300 57 | 1846.00000 2395297.50000 6.500 58 | 1847.00000 2395662.50000 6.600 59 | 1848.00000 2396027.50000 6.800 60 | 1849.00000 2396393.50000 6.900 61 | 1850.00000 2396758.50000 7.100 62 | 1851.00000 2397123.50000 7.200 63 | 1852.00000 2397488.50000 7.300 64 | 1853.00000 2397854.50000 7.400 65 | 1854.00000 2398219.50000 7.500 66 | 1855.00000 2398584.50000 7.600 67 | 1856.00000 2398949.50000 7.700 68 | 1857.00000 2399315.50000 7.700 69 | 1858.00000 2399680.50000 7.800 70 | 1859.00000 2400045.50000 7.800 71 | 1860.00000 2400410.50000 7.880 72 | 1861.00000 2400776.50000 7.820 73 | 1862.00000 2401141.50000 7.540 74 | 1863.00000 2401506.50000 6.970 75 | 1864.00000 2401871.50000 6.400 76 | 1865.00000 2402237.50000 6.020 77 | 1866.00000 2402602.50000 5.410 78 | 1867.00000 2402967.50000 4.100 79 | 1868.00000 2403332.50000 2.920 80 | 1869.00000 2403698.50000 1.820 81 | 1870.00000 2404063.50000 1.610 82 | 1871.00000 2404428.50000 0.100 83 | 1872.00000 2404793.50000 -1.020 84 | 1873.00000 2405159.50000 -1.280 85 | 1874.00000 2405524.50000 -2.690 86 | 1875.00000 2405889.50000 -3.240 87 | 1876.00000 2406254.50000 -3.640 88 | 1877.00000 2406620.50000 -4.540 89 | 1878.00000 2406985.50000 -4.710 90 | 1879.00000 2407350.50000 -5.110 91 | 1880.00000 2407715.50000 -5.400 92 | 1881.00000 2408081.50000 -5.420 93 | 1882.00000 2408446.50000 -5.200 94 | 1883.00000 2408811.50000 -5.460 95 | 1884.00000 2409176.50000 -5.460 96 | 1885.00000 2409542.50000 -5.790 97 | 1886.00000 2409907.50000 -5.630 98 | 1887.00000 2410272.50000 -5.640 99 | 1888.00000 2410637.50000 -5.800 100 | 1889.00000 2411003.50000 -5.660 101 | 1890.00000 2411368.50000 -5.870 102 | 1891.00000 2411733.50000 -6.010 103 | 1892.00000 2412098.50000 -6.190 104 | 1893.00000 2412464.50000 -6.640 105 | 1894.00000 2412829.50000 -6.440 106 | 1895.00000 2413194.50000 -6.470 107 | 1896.00000 2413559.50000 -6.090 108 | 1897.00000 2413925.50000 -5.760 109 | 1898.00000 2414290.50000 -4.660 110 | 1899.00000 2414655.50000 -3.740 111 | 1900.00000 2415020.50000 -2.720 112 | 1901.00000 2415385.50000 -1.540 113 | 1902.00000 2415750.50000 -0.020 114 | 1903.00000 2416115.50000 1.240 115 | 1904.00000 2416480.50000 2.640 116 | 1905.00000 2416846.50000 3.860 117 | 1906.00000 2417211.50000 5.370 118 | 1907.00000 2417576.50000 6.140 119 | 1908.00000 2417941.50000 7.750 120 | 1909.00000 2418307.50000 9.130 121 | 1910.00000 2418672.50000 10.460 122 | 1911.00000 2419037.50000 11.530 123 | 1912.00000 2419402.50000 13.360 124 | 1913.00000 2419768.50000 14.650 125 | 1914.00000 2420133.50000 16.010 126 | 1915.00000 2420498.50000 17.200 127 | 1916.00000 2420863.50000 18.240 128 | 1917.00000 2421229.50000 19.060 129 | 1918.00000 2421594.50000 20.250 130 | 1919.00000 2421959.50000 20.950 131 | 1920.00000 2422324.50000 21.160 132 | 1921.00000 2422690.50000 22.250 133 | 1922.00000 2423055.50000 22.410 134 | 1923.00000 2423420.50000 23.030 135 | 1924.00000 2423785.50000 23.490 136 | 1925.00000 2424151.50000 23.620 137 | 1926.00000 2424516.50000 23.860 138 | 1927.00000 2424881.50000 24.490 139 | 1928.00000 2425246.50000 24.340 140 | 1929.00000 2425612.50000 24.080 141 | 1930.00000 2425977.50000 24.020 142 | 1931.00000 2426342.50000 24.000 143 | 1932.00000 2426707.50000 23.870 144 | 1933.00000 2427073.50000 23.950 145 | 1934.00000 2427438.50000 23.860 146 | 1935.00000 2427803.50000 23.930 147 | 1936.00000 2428168.50000 23.730 148 | 1937.00000 2428534.50000 23.920 149 | 1938.00000 2428899.50000 23.960 150 | 1939.00000 2429264.50000 24.020 151 | 1940.00000 2429629.50000 24.330 152 | 1941.00000 2429995.50000 24.830 153 | 1942.00000 2430360.50000 25.300 154 | 1943.00000 2430725.50000 25.700 155 | 1944.00000 2431090.50000 26.240 156 | 1945.00000 2431456.50000 26.770 157 | 1946.00000 2431821.50000 27.280 158 | 1947.00000 2432186.50000 27.780 159 | 1948.00000 2432551.50000 28.250 160 | 1949.00000 2432917.50000 28.710 161 | 1950.00000 2433282.50000 29.150 162 | 1951.00000 2433647.50000 29.570 163 | 1952.00000 2434012.50000 29.970 164 | 1953.00000 2434378.50000 30.360 165 | 1954.00000 2434743.50000 30.720 166 | 1955.00000 2435108.50000 31.070 167 | 1956.00000 2435473.50000 31.350 168 | 1957.00000 2435839.50000 31.680 169 | 1958.00000 2436204.50000 32.180 170 | 1959.00000 2436569.50000 32.680 171 | 1960.00000 2436934.50000 33.150 172 | 1961.00000 2437300.50000 33.590 173 | 1962.00000 2437665.50000 34.032 174 | 1962.50000 2437846.50000 34.235 175 | 1963.00000 2438030.50000 34.441 176 | 1963.50000 2438211.50000 34.644 177 | 1964.00000 2438395.50000 34.950 178 | 1964.50000 2438577.50000 35.286 179 | 1965.00000 2438761.50000 35.725 180 | 1965.50000 2438942.50000 36.160 181 | 1966.00000 2439126.50000 36.498 182 | 1966.50000 2439307.50000 36.968 183 | 1967.00000 2439491.50000 37.444 184 | 1967.50000 2439672.50000 37.913 185 | 1968.00000 2439856.50000 38.390 186 | 1968.25000 2439947.50000 38.526 187 | 1968.50000 2440038.50000 38.760 188 | 1968.75000 2440130.50000 39.000 189 | 1969.00000 2440222.50000 39.238 190 | 1969.25000 2440312.50000 39.472 191 | 1969.50000 2440403.50000 39.707 192 | 1969.75000 2440495.50000 39.946 193 | 1970.00000 2440587.50000 40.185 194 | 1970.25000 2440677.50000 40.420 195 | 1970.50000 2440768.50000 40.654 196 | 1970.75000 2440860.50000 40.892 197 | 1971.00000 2440952.50000 41.131 198 | 1971.08500 2440983.50000 41.211 199 | 1971.16200 2441011.50000 41.284 200 | 1971.24700 2441042.50000 41.364 201 | 1971.32900 2441072.50000 41.442 202 | 1971.41400 2441103.50000 41.522 203 | 1971.49600 2441133.50000 41.600 204 | 1971.58100 2441164.50000 41.680 205 | 1971.66600 2441195.50000 41.761 206 | 1971.74800 2441225.50000 41.838 207 | 1971.83300 2441256.50000 41.919 208 | 1971.91500 2441286.50000 41.996 209 | 1972.00000 2441317.50000 42.184 210 | 1972.49727 2441499.50000 43.184 211 | 1973.00000 2441683.50000 44.184 212 | 1974.00000 2442048.50000 45.184 213 | 1975.00000 2442413.50000 46.184 214 | 1976.00000 2442778.50000 47.184 215 | 1977.00000 2443144.50000 48.184 216 | 1978.00000 2443509.50000 49.184 217 | 1979.00000 2443874.50000 50.184 218 | 1980.00000 2444239.50000 51.184 219 | 1981.49589 2444786.50000 52.184 220 | 1982.49589 2445151.50000 53.184 221 | 1983.49589 2445516.50000 54.184 222 | 1985.49589 2446247.50000 55.184 223 | 1988.00000 2447161.50000 56.184 224 | 1990.00000 2447892.50000 57.184 225 | 1991.00000 2448257.50000 58.184 226 | 1992.49727 2448804.50000 59.184 227 | 1993.49589 2449169.50000 60.184 228 | 1994.49589 2449534.50000 61.184 229 | 1996.00000 2450083.50000 62.184 230 | 1997.49589 2450630.50000 63.184 231 | 1999.00000 2451179.50000 64.184 232 | 2006.00000 2453736.50000 65.184 233 | 2009.00000 2454832.50000 66.184 234 | 2012.49727 2456109.50000 67.184 235 | 2015.49589 2457204.50000 68.184 236 | 2017.00000 2457754.50000 69.184 237 | -------------------------------------------------------------------------------- /pygtide/commdat/etddt_tmpl.dat: -------------------------------------------------------------------------------- 1 | File : etddt.dat 2 | Updated : 27/11/2020 3 | Contents : Table to interpolate DDT=TT-UTC. For epochs less 4 | than 1820, DDT is not defined within this table. 5 | Source : ftp://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat 6 | Note : File must have an empty line at the end! 7 | Explanation: 8 | ============================================================= 9 | https://www.ucolick.org/~sla/leapsecs/timescales.html 10 | ============================================================= 11 | ET 1960-1983 12 | TDT 1984-2000 13 | UTC 1972- GPS 1980- TAI 1958- TT 2001- 14 | ----+---------+-------------+-------------------------+----- 15 | | | | | 16 | |<-- TAI-UTC (leaps) -->|<----- TT-TAI ----->| 17 | | | | 32.184s fixed | 18 | ||<- TAI-GPS ->| | 19 | | | 19s fixed | | 20 | | | 21 | |<----- DDT = TT-UTC = delta-T + delta-UT ------->| 22 | | | 23 | <->| delta-UT = UT1-UTC (max +/-0.9 sec) | 24 | -------+----------------------------------------------+----- 25 | |<------------ delta-T = TT-UT1 -------------->| 26 | UT1 (UT) TT/TDT/ET 27 | ============================================================= 28 | 29 | Year Julian date DDT (TT-UTC) [s] 30 | C************************************************************* 31 | 1820.00000 2385800.500000 12.000 32 | 1821.00000 2386166.500000 11.700 33 | 1822.00000 2386531.500000 11.400 34 | 1823.00000 2386896.500000 11.100 35 | 1824.00000 2387261.500000 10.600 36 | 1825.00000 2387627.500000 10.200 37 | 1826.00000 2387992.500000 9.600 38 | 1827.00000 2388357.500000 9.100 39 | 1828.00000 2388722.500000 8.600 40 | 1829.00000 2389088.500000 8.000 41 | 1830.00000 2389453.500000 7.500 42 | 1831.00000 2389818.500000 7.000 43 | 1832.00000 2390183.500000 6.600 44 | 1833.00000 2390549.500000 6.300 45 | 1834.00000 2390914.500000 6.000 46 | 1835.00000 2391279.500000 5.800 47 | 1836.00000 2391644.500000 5.700 48 | 1837.00000 2392010.500000 5.600 49 | 1838.00000 2392375.500000 5.600 50 | 1839.00000 2392740.500000 5.600 51 | 1840.00000 2393105.500000 5.700 52 | 1841.00000 2393471.500000 5.800 53 | 1842.00000 2393836.500000 5.900 54 | 1843.00000 2394201.500000 6.100 55 | 1844.00000 2394566.500000 6.200 56 | 1845.00000 2394932.500000 6.300 57 | 1846.00000 2395297.500000 6.500 58 | 1847.00000 2395662.500000 6.600 59 | 1848.00000 2396027.500000 6.800 60 | 1849.00000 2396393.500000 6.900 61 | 1850.00000 2396758.500000 7.100 62 | 1851.00000 2397123.500000 7.200 63 | 1852.00000 2397488.500000 7.300 64 | 1853.00000 2397854.500000 7.400 65 | 1854.00000 2398219.500000 7.500 66 | 1855.00000 2398584.500000 7.600 67 | 1856.00000 2398949.500000 7.700 68 | 1857.00000 2399315.500000 7.700 69 | 1858.00000 2399680.500000 7.800 70 | 1859.00000 2400045.500000 7.800 71 | 1860.00000 2400410.500000 7.880 72 | 1861.00000 2400776.500000 7.820 73 | 1862.00000 2401141.500000 7.540 74 | 1863.00000 2401506.500000 6.970 75 | 1864.00000 2401871.500000 6.400 76 | 1865.00000 2402237.500000 6.020 77 | 1866.00000 2402602.500000 5.410 78 | 1867.00000 2402967.500000 4.100 79 | 1868.00000 2403332.500000 2.920 80 | 1869.00000 2403698.500000 1.820 81 | 1870.00000 2404063.500000 1.610 82 | 1871.00000 2404428.500000 0.100 83 | 1872.00000 2404793.500000 -1.020 84 | 1873.00000 2405159.500000 -1.280 85 | 1874.00000 2405524.500000 -2.690 86 | 1875.00000 2405889.500000 -3.240 87 | 1876.00000 2406254.500000 -3.640 88 | 1877.00000 2406620.500000 -4.540 89 | 1878.00000 2406985.500000 -4.710 90 | 1879.00000 2407350.500000 -5.110 91 | 1880.00000 2407715.500000 -5.400 92 | 1881.00000 2408081.500000 -5.420 93 | 1882.00000 2408446.500000 -5.200 94 | 1883.00000 2408811.500000 -5.460 95 | 1884.00000 2409176.500000 -5.460 96 | 1885.00000 2409542.500000 -5.790 97 | 1886.00000 2409907.500000 -5.630 98 | 1887.00000 2410272.500000 -5.640 99 | 1888.00000 2410637.500000 -5.800 100 | 1889.00000 2411003.500000 -5.660 101 | 1890.00000 2411368.500000 -5.870 102 | 1891.00000 2411733.500000 -6.010 103 | 1892.00000 2412098.500000 -6.190 104 | 1893.00000 2412464.500000 -6.640 105 | 1894.00000 2412829.500000 -6.440 106 | 1895.00000 2413194.500000 -6.470 107 | 1896.00000 2413559.500000 -6.090 108 | 1897.00000 2413925.500000 -5.760 109 | 1898.00000 2414290.500000 -4.660 110 | 1899.00000 2414655.500000 -3.740 111 | 1900.00000 2415020.500000 -2.720 112 | 1901.00000 2415385.500000 -1.540 113 | 1902.00000 2415750.500000 -0.020 114 | 1903.00000 2416115.500000 1.240 115 | 1904.00000 2416480.500000 2.640 116 | 1905.00000 2416846.500000 3.860 117 | 1906.00000 2417211.500000 5.370 118 | 1907.00000 2417576.500000 6.140 119 | 1908.00000 2417941.500000 7.750 120 | 1909.00000 2418307.500000 9.130 121 | 1910.00000 2418672.500000 10.460 122 | 1911.00000 2419037.500000 11.530 123 | 1912.00000 2419402.500000 13.360 124 | 1913.00000 2419768.500000 14.650 125 | 1914.00000 2420133.500000 16.010 126 | 1915.00000 2420498.500000 17.200 127 | 1916.00000 2420863.500000 18.240 128 | 1917.00000 2421229.500000 19.060 129 | 1918.00000 2421594.500000 20.250 130 | 1919.00000 2421959.500000 20.950 131 | 1920.00000 2422324.500000 21.160 132 | 1921.00000 2422690.500000 22.250 133 | 1922.00000 2423055.500000 22.410 134 | 1923.00000 2423420.500000 23.030 135 | 1924.00000 2423785.500000 23.490 136 | 1925.00000 2424151.500000 23.620 137 | 1926.00000 2424516.500000 23.860 138 | 1927.00000 2424881.500000 24.490 139 | 1928.00000 2425246.500000 24.340 140 | 1929.00000 2425612.500000 24.080 141 | 1930.00000 2425977.500000 24.020 142 | 1931.00000 2426342.500000 24.000 143 | 1932.00000 2426707.500000 23.870 144 | 1933.00000 2427073.500000 23.950 145 | 1934.00000 2427438.500000 23.860 146 | 1935.00000 2427803.500000 23.930 147 | 1936.00000 2428168.500000 23.730 148 | 1937.00000 2428534.500000 23.920 149 | 1938.00000 2428899.500000 23.960 150 | 1939.00000 2429264.500000 24.020 151 | 1940.00000 2429629.500000 24.330 152 | 1941.00000 2429995.500000 24.830 153 | 1942.00000 2430360.500000 25.300 154 | 1943.00000 2430725.500000 25.700 155 | 1944.00000 2431090.500000 26.240 156 | 1945.00000 2431456.500000 26.770 157 | 1946.00000 2431821.500000 27.280 158 | 1947.00000 2432186.500000 27.780 159 | 1948.00000 2432551.500000 28.250 160 | 1949.00000 2432917.500000 28.710 161 | 1950.00000 2433282.500000 29.150 162 | 1951.00000 2433647.500000 29.570 163 | 1952.00000 2434012.500000 29.970 164 | 1953.00000 2434378.500000 30.360 165 | 1954.00000 2434743.500000 30.720 166 | 1955.00000 2435108.500000 31.070 167 | 1956.00000 2435473.500000 31.350 168 | 1957.00000 2435839.500000 31.680 169 | 1958.00000 2436204.500000 32.180 170 | 1959.00000 2436569.500000 32.680 171 | 1960.00000 2436934.500000 33.150 172 | 1961.00000 2437300.500000 33.590 173 | 1962.00000 2437665.500000 34.032 174 | 1962.50000 2437846.500000 34.235 175 | 1963.00000 2438030.500000 34.441 176 | 1963.50000 2438211.500000 34.644 177 | 1964.00000 2438395.500000 34.950 178 | 1964.50000 2438577.500000 35.286 179 | 1965.00000 2438761.500000 35.725 180 | 1965.50000 2438942.500000 36.160 181 | 1966.00000 2439126.500000 36.498 182 | 1966.50000 2439307.500000 36.968 183 | 1967.00000 2439491.500000 37.444 184 | 1967.50000 2439672.500000 37.913 185 | 1968.00000 2439856.500000 38.390 186 | 1968.25000 2439947.500000 38.526 187 | 1968.50000 2440038.500000 38.760 188 | 1968.75000 2440130.500000 39.000 189 | 1969.00000 2440222.500000 39.238 190 | 1969.25000 2440312.500000 39.472 191 | 1969.50000 2440403.500000 39.707 192 | 1969.75000 2440495.500000 39.946 193 | 1970.00000 2440587.500000 40.185 194 | 1970.25000 2440677.500000 40.420 195 | 1970.50000 2440768.500000 40.654 196 | 1970.75000 2440860.500000 40.892 197 | 1971.00000 2440952.500000 41.131 198 | 1971.08500 2440983.500000 41.211 199 | 1971.16200 2441011.500000 41.284 200 | 1971.24700 2441042.500000 41.364 201 | 1971.32900 2441072.500000 41.442 202 | 1971.41400 2441103.500000 41.522 203 | 1971.49600 2441133.500000 41.600 204 | 1971.58100 2441164.500000 41.680 205 | 1971.66600 2441195.500000 41.761 206 | 1971.74800 2441225.500000 41.838 207 | 1971.83300 2441256.500000 41.919 208 | 1971.91500 2441286.500000 41.996 209 | -------------------------------------------------------------------------------- /pygtide/core.py: -------------------------------------------------------------------------------- 1 | """ 2 | PyGTide - A python class to calculate time series of the gravitational tides on Earth 3 | ------------------------------------------------------------------------------- 4 | Author: Gabriel C. Rau (gabriel@hydrogeo.science) 5 | Website: https://hydrogeo.science 6 | Based on: 7 | ETERNA 3.4 PREDICT (by Prof. Wenzel, 1996) 8 | Updated updated by Kudryevtsev (2004) 9 | 10 | Publications: 11 | Wenzel, H.-G. The nanogal software: Earth tide data processing package ETERNA 3.30, 12 | Bull. Inf. Marées Terrestres (1996) 124, 9425–9439. 13 | Kudryavtsev, S. Journal of Geodesy (2004) 77: 829. https://doi.org/10.1007/s00190-003-0361-2 14 | ------------------------------------------------------------------------------- 15 | How to run: 16 | import pygtide 17 | pt = pygtide.pygtide() 18 | pt.predict(latitude, longitude, height, startdate, duration, samprate, **control): 19 | data = pt.results() 20 | 21 | pt.results() returns: 22 | either False, or a Pandas dataframe with the respective data. 23 | 24 | Python status messages can be suppressed by setting: self.msg = False. 25 | The routine relies on files in the subdirectory 'commdat'. This includes the tidal 26 | catalogues, corrections of the pole rotation as well as leap seconds. 27 | Wave group parameters are being read from the "self.waves.ini" file. 28 | ------------------------------------------------------------------------------- 29 | The original code was written in Fortran 77/90 and is available for download from: 30 | http://igets.u-strasbg.fr/soft_and_tool.php 31 | ------------------------------------------------------------------------------- 32 | Subroutines used in the Fortran program: 33 | --- new --- 34 | PREDICT: New Python interface subroutine to hand over arguments and calculate 35 | INIT: New subroutine which sets the variables in module out for access in Python. 36 | --- existing --- 37 | ETASTN: computes astronomical elements. 38 | PREDIN: reads control parameters. 39 | ETDDTA: reads tabel of DDT = TDT - UTC. 40 | ETDDTB: interpolates DDT = TDT - UTC from table. 41 | ETGCON: computes geodetic coefficients. 42 | ETGREN: computes date from Julian date. 43 | ETJULN: computes JULIAN date. 44 | ETLEGN: computes fully normalized Legendre spherical harmonics. 45 | ETLOVE: computes elastic parameters from Wahr-Dehant model. 46 | ETPOLC: computes DUT1. 47 | ETPHAS: computes the phases and frequencies of the tidal waves. 48 | ETPOTS: computes amplitudes, frequencies and phases of tidal waves. 49 | GEOEXT: computes JOBTIME. 50 | =============================================================================== 51 | Note: While Prof. Wenzel passed away, his legacy continues to live as PyGTide 52 | ------------------------------------------------------------------------------- 53 | ####### ######## ####### ####### ## ## #### 54 | ## ## ## ## ## ### ## ## ## 55 | ## ## ## ## ## #### ## ## ## 56 | ###### ## ###### ####### ## ## ## ## ## 57 | ## ## ## ## ## ## #### ######## 58 | ## ## ## ## ## ## ### ## ## 59 | ####### ## ####### ## ## ## ## ## ## 60 | 61 | Prof. Dr.-Ing. Hans-Georg Wenzel 62 | Black Forest Observatory 63 | Universitaet Karlsruhe 64 | Englerstr. 7 65 | D-76128 KARLSRUHE 66 | Germany 67 | Phone : ++49-0721-6082307 68 | Telefax : ++49-0721-694552 69 | e-mail : wenzel@gik.bau-verm.uni-karlsruhe.de 70 | =============================================================================== 71 | This Python module was created based on the Fortran code PREDICT as part of 72 | ETERNA 3.4, originally written by Prof. Hans George Wenzel in 1996. PREDICT is used to 73 | calculate Earth tide gravity time series. The original PREDICT Fortran code was 74 | updated to implement the new tidal catalogue by Kudryatvtsev (2004). The code 75 | was then modernised (Fortran 90) for compilation as Python 3 module. This interface 76 | provides a convenient way to utilise ETERNA PREDICT within Python. 77 | 78 | The module relies on external files in the directory "commdat". The folowing files require 79 | regular updating: 80 | 81 | - etddt.dat - contains the difference between ephemeris time and UTC (include any leap seconds) 82 | - etpolut.dat - contains the earth's pole rotation 83 | 84 | The original Fortran code was also modified for use with f2py: 85 | - COMMON blocks were transformed into modules 86 | - continuous lines were updated for F90 compatibility 87 | - the main program was changed into a subroutine (for f2py compliance) 88 | - various other modernisations and enhancements 89 | - BUG FIX: the original date and time data contained a rounding bug when the 90 | sampling rate was lower than 60 seconds. This was successfully fixed. 91 | =============================================================================== 92 | """ 93 | import pygtide.etpred as etpred 94 | from datetime import datetime, timedelta, date 95 | from warnings import warn 96 | import numpy as np 97 | import pandas as pd 98 | from pkg_resources import resource_filename 99 | import os 100 | 101 | class pygtide(object): 102 | """ 103 | The PyGTide class will initialise internal variables 104 | """ 105 | def __init__(self, msg=True): 106 | """ 107 | pygtide.init() initialises the etpred (Fortran) module and sets global variables 108 | """ 109 | self.msg = msg 110 | self.fortran_version = etpred.inout.vers.astype(str) 111 | self.data_dir = resource_filename('pygtide', 'commdat/') 112 | etpred.params.comdir = self.data_dir + ' ' * (256 - len(self.data_dir)) 113 | # set OS dependent module output 114 | etpred.params.nullfile = os.devnull + ' ' * (10 - len(os.devnull)) 115 | self.args = [] 116 | # set some common variables for external access 117 | etpred.init() 118 | # capture end date of file "etddt.dat" from module 119 | year = int(etpred.inout.etd_start) 120 | self.etddt_start = datetime(year, 1, 1) 121 | year = etpred.inout.etd_end 122 | self.etddt_end = (datetime(int(year), 1, 1) + timedelta(days=(year - int(year)) * 365)) 123 | # capture end date of file "etpolut1.dat" from module 124 | self.etpolut1_start = datetime.strptime(str(etpred.inout.etpol_start), "%Y%m%d") 125 | self.etpolut1_end = datetime.strptime(str(etpred.inout.etpol_end), "%Y%m%d") 126 | 127 | self.headers = np.char.strip(etpred.inout.header.astype('str')) 128 | # self.units = ['(m/s)**2','nm/s**2','mas','mm','mm','nstr','nstr','nstr','nstr','nstr','mm'] 129 | self.exec = False 130 | 131 | self.wavegroup_def = np.asarray([[0, 10, 1., 0.]]) 132 | self.set_wavegroup(self.wavegroup_def) 133 | 134 | #%% sync the Python object 135 | def update(self): 136 | """ 137 | self.update() refreshes the variables of PyGTide based on the Fortran module etpred 138 | """ 139 | self.headers = np.char.strip(etpred.inout.header.astype('str')) 140 | self.args = etpred.inout.argsin 141 | self.unit = etpred.inout.etpunit.astype('str') 142 | 143 | #%% set wave group parameters 144 | def set_wavegroup(self, wavedata=None): 145 | if (wavedata is None): 146 | wavedata = self.wavegroup_def 147 | # require at least 4 columns 148 | if (wavedata.shape[1] != 4): 149 | raise ValueError("The wave group input must have 4 columns!") 150 | return False 151 | # require frequency ranges to increase and not overlap 152 | freq_diffs = np.diff(wavedata[:, 0:1].flatten()) 153 | if ((freq_diffs < 0).any()): 154 | raise ValueError("Wave group frequency ranges must be increasing and not overlapping!") 155 | return False 156 | if ((wavedata[:, 2] < 0).any()): 157 | raise ValueError("Amplitude factors must be positive!") 158 | return False 159 | # set the wave group parameters 160 | etpred.waves(wavedata[:, 0], wavedata[:, 1], wavedata[:, 2], wavedata[:, 3], int(wavedata.shape[0])) 161 | return True 162 | 163 | #%% reset the wave group 164 | def reset_wavegroup(self): 165 | self.set_wavegroup(self.wavegroup_def) 166 | return True 167 | 168 | # run module etpred and return numbers 169 | def predict(self, latitude, longitude, height, startdate, duration, samprate, **control): 170 | """ 171 | self.predict(latitude, longitude, height, startdate, duration, samprate, **control): 172 | ------------------------------------------------------------------------------- 173 | Explanation of parameters used as numeric array "argsin". Parameters which are set 174 | will overwrite default control parameters (ETERNA ini file input is disabled). 175 | ------------------------------------------------------------------------------- 176 | Required parameters: 177 | --- 178 | Latitude Ellipsoidal latitude of the station in degree referring to 179 | WGS84 reference system (ETERNA: STATLATITU). 180 | Longitude Ellipsoidal longitude of the station in degree referring 181 | to WGS84 reference system (ETERNA: STATLONITU). 182 | Height Ellipsoidal height of the station in meters referring to 183 | WGS84 reference system (ETERNA: STATELEVAT). 184 | Startdate Initial epoch, used to compute the Fourier development of 185 | the specific earth tide component. Format is either string 186 | 'YYYY-MM-DD' or a datime object (ETERNA: INITIALEPO). 187 | Duration Time span for the prediction in hours. The model tide series 188 | will start at the initial epoch INITIALEPO and the time span 189 | will be PREDICSPAN hours (ETERNA: PREDICSPAN). 190 | Samprate Data sample interval in seconds (ETERNA: SAMPLERATE). 191 | ------------------------------------------------------------------------------- 192 | Optional keyword (**control) parameters: 193 | --- 194 | statgravit= Gravity of the station in m/s^2, necessary for tidal tilt 195 | only. If the gravity is unknown, use a value of less than 1.0 196 | and the program will compute and subsequently use the 197 | normal gravity value referring to GRS80 reference system. 198 | statazimut= azimuth of the instrument in degree decimal, reckoned 199 | clockwise from north. This parameter is used for tidal tilt, 200 | horizontal displacement and horizontal strain only. 201 | tidalpoten= Parameter for the tidal potential catalog to be used: 202 | 1 = Doodson (1921) tidal potential catalog, 203 | 2 = Cartwright-Tayler-Edden (1973) tidal potential catalog 204 | 3 = Buellesfeld (1985) tidal potential catalog, 205 | 4 = Tamura (1987) tidal potential catalog, 206 | 5 = Xi (1989) tidal potential catalog, 207 | 6 = Roosbeek (1996) tidal potential catalog, 208 | 7 = Hartmann and Wenzel (1995) tidal potential catalog. 209 | 8 = (default) Kudryavtsev (2004) tidal potential catalog. 210 | tidalcompo= Earth tide component: 211 | = -1 for tidal potential (m**2/s**2) 212 | = 0 (default) for tidal gravity in (nm/s**2) 213 | = 1 for tidal tilt (mas), at azimuth STATAZIMUT. 214 | = 2 for tidal vertical displacement (mm) 215 | = 3 for tidal horizontal displacement (mm) azimuth STATAZIMUT. 216 | = 4 for tidal vertical strain (10**-9 = nstr) 217 | = 5 for tidal horizontal strain (10**-9 = nstr) azimuth STATAZIMUT. 218 | = 6 for tidal areal strain (10**-9 = nstr) 219 | = 7 for tidal shear strain (10**-9 = nstr) 220 | = 8 for tidal volume strain (10**-9 = nstr) 221 | The computed model tides will be given in the units defined above. 222 | amtruncate= Amplitude threshold (default 0) for the tidal potential catalogue (m^2/s^2). 223 | Only tidal waves with amplitudes exceeding the 224 | amplitude threshold are used for the computation. This 225 | reduces the execution time, but also the accuracy of the 226 | computed tidal signales. For mean latitudes, the relation 227 | between amplitude threshold and gravity tide accuracy is 228 | for the Hartmann and Wenzel (1995) tidal potential catalog 229 | threshold rms error [nm/s^2] 230 | 1.D-01 88.40 231 | 1.D-02 14.40 232 | 1.D-03 2.250 233 | 1.D-04 0.440 234 | 1.D-05 0.068 235 | 1.D-06 0.011 236 | 1.D-07 0.002 237 | 1.D-08 0.001 238 | 1.D-09 0.001 239 | 1.D-10 0.001 240 | poltidecor= Amplitude factor for gravity pole tide. If the amplitude 241 | factor is greater zero, gravity pole tides will be computed using 242 | the IERS daily pole coordinates. Default value is 1.16. 243 | lodtidecor= Amplitude factor for gravity LOD tide. If the amplitude 244 | factor is greater zero, gravity LOD tides will be computed 245 | using the IERS daily pole coordinates. Default value is 1.16. 246 | fileout= Defaults value is 0 (output is suppressed). If set to 1, the routine 247 | writes two text files called "self.inout.prd" and "self.inout.prn" 248 | in the original format into the directory of the module. 249 | screenout= Defaults value is 0 (output is silenced). If set to 1, the routine 250 | writes output to the screen (but not the Python terminal). 251 | ------------------------------------------------------------------------------- 252 | """ 253 | # prepare full input argument array 254 | argsin = np.zeros(18) 255 | # define default values as given by the Fortran code 256 | # tidal catalog 257 | argsin[10] = 8 258 | # amplitude truncation 259 | argsin[12] = 1.0E-10 260 | # values from: https://dx.doi.org/10.1016/j.jog.2005.08.035 261 | argsin[13] = 1.16 262 | argsin[14] = 1.16 263 | 264 | # iterate through optional arguments passed 265 | if 'statgravit' in control: 266 | if not (0 <= control['statgravit'] <= 20): 267 | raise ValueError('Station gravity exceeds permissible range!') 268 | else: 269 | argsin[8] = control['statgravit'] 270 | if 'statazimut' in control: 271 | if not (0 <= control['statazimut'] <= 180): 272 | raise ValueError('Statazimut exceeds permissible range!') 273 | else: 274 | argsin[9] = control['statazimut'] 275 | if 'tidalpoten' in control: 276 | if control['tidalpoten'] not in range(1,9): 277 | raise ValueError('Tidalpoten must be an integer between 1 and 8!') 278 | else: 279 | argsin[10] = control['tidalpoten'] 280 | if 'tidalcompo' in control: 281 | if control['tidalcompo'] not in range(-1,10): 282 | raise ValueError('Tidalcompo must be an integer between -1 and 9!') 283 | else: 284 | argsin[11] = control['tidalcompo'] 285 | if 'amtruncate' in control: 286 | if not (0 <= control['amtruncate']): 287 | raise ValueError('Amtruncate must be greater than 0!') 288 | else: 289 | argsin[12] = control['amtruncate'] 290 | if 'poltidecor' in control: 291 | if not (control['poltidecor'] >= 0): 292 | raise ValueError('Poltidecor must be >= 0!') 293 | else: 294 | argsin[13] = control['poltidecor'] 295 | if 'lodtidecor' in control: 296 | if not (control['lodtidecor'] >= 0): 297 | raise ValueError('Lodtidecor must be >= 0!') 298 | else: 299 | argsin[14] = control['lodtidecor'] 300 | # additional control parameters 301 | if 'fileprd' in control: 302 | if control['fileprd'] not in range(0,2): 303 | raise ValueError('Fileprd flag must be 0 or 1!') 304 | else: 305 | argsin[15] = control['fileprd'] 306 | if 'fileprn' in control: 307 | if control['fileprn'] not in range(0,2): 308 | raise ValueError('Fileprn flag must be 0 or 1!') 309 | else: 310 | argsin[16] = control['fileprn'] 311 | if 'screenout' in control: 312 | if control['screenout'] not in range(0,2): 313 | raise ValueError('Screenout flag must be 0 or 1!') 314 | else: 315 | argsin[17] = control['screenout'] 316 | # process required parameters here 317 | if not (-90 <= latitude <= 90): 318 | raise ValueError('Latitude exceeds permissible range!') 319 | else: 320 | argsin[0] = latitude 321 | if not (-180 <= longitude <= 180): 322 | raise ValueError('Longitude exceeds permissible range!') 323 | else: 324 | argsin[1] = longitude 325 | if not (-500 <= height <= 5000): 326 | raise ValueError('Height exceeds permissible range!') 327 | else: 328 | argsin[2] = height 329 | if not (0 < duration <= 10*24*365): 330 | raise ValueError("Duration exceeds permissible range!") 331 | else: 332 | argsin[6] = int(duration) 333 | 334 | # test startdate format and validity 335 | if not (isinstance(startdate, date)): 336 | try: 337 | startdate = datetime.strptime(startdate, "%Y-%m-%d") 338 | except ValueError: 339 | raise ValueError("Startdate has incorrect format (YYYY-MM-DD)!" ) 340 | enddate = startdate + timedelta(hours=duration) 341 | # check if requested prediction series exceeds permissible time 342 | if (startdate < self.etddt_start): 343 | fname = str(etpred.params.etddtdat) 344 | warn("Prediction timeframe is earlier than the available time database (%s). " 345 | "For details refer to the file '%s'." % (self.etddt_start, fname)) 346 | if (enddate > (self.etddt_end + timedelta(days=365))): 347 | fname = str(etpred.params.etddtdat) 348 | warn("Please consider updating the leap second database '%s' (last value is from %s)." % (fname, self.etddt_end)) 349 | # if not (-50*365 < (startdate - dt.datetime.now()).days < 365): 350 | if ( ((argsin[13] > 0) or (argsin[14] > 0)) and ((startdate < self.etpolut1_start) or (enddate > self.etpolut1_end)) ): 351 | fname = str(etpred.params.etddtdat) 352 | warn("Dates exceed permissible range for pole/LOD tide correction (interval %s to %s). Consider update file '%s'." % (self.etpolut1_start, self.etpolut1_end, fname)) 353 | if ( ((argsin[13] > 0) or (argsin[14] > 0)) and (startdate < datetime.strptime('1600-01-01', "%Y-%m-%d")) ): 354 | raise ValueError("PyGTide should not be used for dates before the year 1600.") 355 | # set the start date and time 356 | argsin[3:6] = [startdate.year,startdate.month,startdate.day] 357 | # test sammprate validity 358 | if not (0 < samprate <= 24*3600): 359 | raise ValueError("samprate exceeds permissible range!") 360 | else: 361 | argsin[7] = int(samprate) 362 | # test that samprate is not larger than duration 363 | if (samprate/3600 > duration): 364 | raise ValueError("samprate exceeds duration!") 365 | # print(argsin) 366 | self.args = argsin 367 | if self.msg: 368 | print('%s is calculating, please wait ...' % (self.fortran_version)) 369 | 370 | # hand over variables 371 | etpred.predict(argsin) 372 | 373 | self.exec = True 374 | self.update() 375 | return True 376 | 377 | # easy access to the raw data calculated by the Fortran module 378 | def results(self, digits=6): 379 | """ 380 | self.results(digits=6) 381 | Returns: 382 | - If predict() was executed, returns a dataframe with the results 383 | - False 384 | keyword 'digits' sets the number of digits returned. 385 | """ 386 | if self.exec: 387 | # get the headers from Fortran 388 | cols = np.char.strip(etpred.inout.header.astype('str')) 389 | allcols = np.insert(cols[2:], 0, 'UTC') 390 | etdata = pd.DataFrame(columns=allcols) 391 | # format date and time into padded number strings 392 | etpred_data = np.array(etpred.inout.etpdata) 393 | # print(etpred.inout.etpdata[:, 0]) 394 | # catch non-complete container fills from odd duration/sampling pairs 395 | etpred_data = etpred_data[etpred_data[:,0] > 0, :] 396 | # convert 397 | date = np.char.mod("%08.0f ", etpred_data[:,0]) 398 | time = np.char.mod("%06.0f", etpred_data[:,1]) 399 | # merge date and time arrays 400 | datetime = np.core.defchararray.add(date, time) 401 | etdata['UTC'] = pd.to_datetime(datetime, format="%Y%m%d %H%M%S", utc=True) 402 | # obtain header strings from routine and convert 403 | etdata[cols[2:]] = np.around(etpred_data[:, 2:], digits) 404 | return etdata 405 | else: 406 | return None 407 | 408 | # easy access to the raw data calculated by Fortran 409 | def raw(self): 410 | """ 411 | self.raw() 412 | Returns: 413 | - If predict() was executed, returns the raw data from the etpred module 414 | - False 415 | """ 416 | if self.exec: 417 | return etpred.inout.etpdata 418 | else: 419 | return None 420 | 421 | # easy access to the formatted data calculated by Fortran 422 | def data(self, digits=6): 423 | """ 424 | self.data(digits=6): 425 | Returns: 426 | - If predict() was executed, returns a numpy array with the results 427 | - False 428 | keyword 'digits' sets the number of digits returned. 429 | """ 430 | if self.exec: 431 | return np.around(etpred.inout.etpdata[:, 2:], digits) 432 | else: 433 | return None 434 | 435 | # easy access to the raw datetime calculated by Fortran 436 | def datetime(self): 437 | """ 438 | self.datetime(): 439 | Returns: 440 | - If predict() was executed, returns a numpy string array with the 441 | calculated dates and times in seperate columns 442 | - False 443 | """ 444 | if self.exec: 445 | # reformat the date and time values obtained from ETERNA 446 | date = np.char.mod("%08.0f", etpred.inout.etpdata[:,0]) 447 | time = np.char.mod("%06.0f", etpred.inout.etpdata[:,1]) 448 | return np.stack((date, time), axis=1) 449 | else: 450 | return None 451 | 452 | 453 | def predict_table(*args, msg=False, **kwargs): 454 | kwargs.setdefault('screenout', int(msg)) 455 | pt = pygtide(msg=msg) 456 | pt.predict(*args, **kwargs) 457 | return pt.results() 458 | 459 | 460 | def predict_series(*args, msg=False, index=0, **kwargs): 461 | kwargs.setdefault('screenout', int(msg)) 462 | pt = pygtide(msg=msg) 463 | pt.predict(*args, **kwargs) 464 | return pt.data()[:, index] 465 | 466 | 467 | def predict_spectrum(*args, nfft=None, **kwargs): 468 | from numpy.fft import rfft, rfftfreq 469 | sr = args[-1] 470 | data = predict_series(*args, **kwargs) 471 | if nfft is None: 472 | nfft = len(data) 473 | freq = rfftfreq(nfft, sr) 474 | spec = rfft(data, nfft) * 2 / len(data) 475 | return freq, spec 476 | 477 | 478 | def plot_series(*args, indices=(0, 1), show=True, **kwargs): 479 | table = predict_table(*args, **kwargs) 480 | table.plot(*indices) 481 | if show: 482 | import matplotlib.pyplot as plt 483 | plt.show() 484 | 485 | def plot_spectrum(*args, ax=None, show=True, **kwargs): 486 | import matplotlib.pyplot as plt 487 | freq, spec = predict_spectrum(*args, **kwargs) 488 | if ax is None: 489 | ax = plt.subplot(111) 490 | ax.plot(freq * 24 * 3600, np.abs(spec)) 491 | ax.set_xlabel('freq (cycles per day)') 492 | ax.set_ylabel('amplitude') 493 | if show: 494 | plt.show() 495 | -------------------------------------------------------------------------------- /pygtide/tests.py: -------------------------------------------------------------------------------- 1 | # PyGTide tests 2 | import numpy as np 3 | from pygtide import predict_series, predict_spectrum, predict_table 4 | from pygtide import plot_series, plot_spectrum 5 | from pygtide import pygtide 6 | 7 | def test(msg=False): 8 | pt = pygtide(msg) 9 | args = (-20.82071, -70.15288, 830.0, '2017-01-01', 6, 600) 10 | pt.predict(*args, statazimut=90, tidalcompo=8) 11 | pt.results() 12 | 13 | # test against a proven array 14 | args = (49.00937, 8.40444, 120, '2018-01-01', 50, 3600) 15 | series = predict_series(*args, tidalcompo=5) 16 | expected = np.array([ 20.120256, 11.371802, 0.303512, -10.684455, -19.316747, 17 | -23.986328, -24.121086, -20.285591, -13.997906, -7.31219 , 18 | -2.274406, -0.387909, -2.221906, -7.260202, -14.028836, 19 | -20.472805, -24.490089, -24.490442, -19.837274, -11.056935, 20 | 0.244288, 11.741719, 20.946235, 25.812105, 25.243209, 21 | 19.366281, 9.499723, -2.173853, -13.145977, -21.192355, 22 | -24.899299, -23.975888, -19.27862 , -12.549307, -5.938311, 23 | -1.436475, -0.358888, -3.008326, -8.60056 , -15.468955, 24 | -21.497314, -24.673643, -23.626746, -18.009927, -8.631809, 25 | 2.704171, 13.61692 , 21.720306, 25.207537, 23.297815, 26 | 16.429417]) 27 | np.testing.assert_almost_equal(series, expected, 5) 28 | 29 | args = (-20.82071, -70.15288, 830.0, '2020-01-01', 29.5 * 24, 600) 30 | predict_table(*args, statazimut=90, tidalcompo=8, msg=msg) 31 | freq, spec = predict_spectrum(*args, statazimut=90, tidalcompo=8) 32 | index = np.argmax(np.abs(spec)) 33 | freqM2 = freq[index] * 3600 34 | freqM2expected = 1 / 12.421 35 | assert abs(freqM2 - freqM2expected) / freqM2expected < 2e-3 36 | 37 | try: 38 | import matplotlib.pyplot as plt 39 | except ImportError: 40 | pass 41 | else: 42 | plot_spectrum(*args, statazimut=90, tidalcompo=8, show=False) 43 | plot_series(*args, statazimut=90, tidalcompo=8, show=False) 44 | if msg: 45 | plt.show() 46 | 47 | print('------------------------------------') 48 | print('Successfully finished PyGTide tests!') 49 | 50 | 51 | def plot_pole_and_lod_tide(): 52 | try: 53 | import matplotlib.pyplot as plt 54 | except ImportError: 55 | return False 56 | ploty = ['Signal [nm/s**2]', 'Pole tide [nm/s**2]', 'LOD tide [nm/s**2]'] 57 | dates = ['1961-12-24', '2016-12-24', '2023-06-01'] 58 | for date in dates: 59 | args = (20, 0, 0, date, 24*30, 600) 60 | tab = predict_table(*args) 61 | tab.plot(x='UTC', y=ploty, sharex=True, subplots=True) 62 | plt.savefig(f'tides_{date}.png') 63 | args = (-20.82071, -70.15288, 830.0, '2017-01-01', 10, 600) 64 | tab = predict_table(*args, statazimut=90) 65 | tab.plot(x='UTC', y=ploty, sharex=True, subplots=True) 66 | plt.savefig('tides_2017-01-01_10h.png') 67 | plt.show() 68 | 69 | # test() 70 | #_plot_tides() 71 | -------------------------------------------------------------------------------- /pygtide/update_etpred_data.py: -------------------------------------------------------------------------------- 1 | """ 2 | PyGTide Update - A python class to update the files upon which PyGTide depends 3 | ------------------------------------------------------------------------------- 4 | Author: Gabriel C. Rau (gabriel@hydrogeo.science) 5 | Website: https://hydrogeo.science 6 | """ 7 | import pygtide.etpred as etpred 8 | from pkg_resources import resource_filename 9 | from pathlib import Path 10 | import numpy as np 11 | import time as tt 12 | import pandas as pd 13 | import datetime as dt 14 | import urllib, urllib.request, re, os 15 | 16 | def timestampToDecyear(ts): 17 | year=ts.year 18 | jan1=pd.Timestamp(year,1,1) 19 | jan1next=pd.Timestamp(year+1,1,1) 20 | yrlen=(jan1next-jan1).total_seconds() 21 | return year+(ts-jan1).total_seconds()/yrlen 22 | 23 | class update_etpred_db(object): 24 | """ 25 | The pygtide_update class will initialise internal variables 26 | """ 27 | def __init__(self, msg=True): 28 | self.msg = msg 29 | self.data_dir = resource_filename('pygtide', 'commdat/') 30 | etpred.params.comdir = self.data_dir + ' ' * (256 - len(self.data_dir)) 31 | # set OS dependent module output 32 | etpred.params.nullfile = os.devnull + ' ' * (10 - len(os.devnull)) 33 | self.etddt_file = str(etpred.params.etddtdat, 'UTF-8').strip() 34 | self.etpolut1_dat_file = str(etpred.params.etpolutdat, 'UTF-8').strip() 35 | self.etpolut1_bin_file = str(etpred.params.etpolutbin, 'UTF-8').strip() 36 | 37 | #%% remote data files 38 | # IERS leap seconds history file 39 | self.etddt_tmpl = 'etddt_tmpl.dat' 40 | self.leapsec_rfile = 'https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second_History.dat' 41 | # IERS pole coordinate observations 42 | # self.iauhist_rfile = 'http://hpiers.obspm.fr/iers/eop/eopc04/eopc04_IAU2000.62-now' 43 | self.iauhist_rfile = 'ftp://hpiers.obspm.fr/iers/eop/eopc04/eopc04_IAU2000.62-now' 44 | # US navy pole coordinate predictions 45 | self.iaucurr_rfile = 'https://datacenter.iers.org/data/9/finals2000A.all' 46 | # self.iaucurr_rfile = 'ftp://cddis.gsfc.nasa.gov/pub/products/iers/finals2000A.all' 47 | 48 | 49 | #%% update the pole coordinates and UT1 to TAI times 50 | def update_etpolut1(self): 51 | global etpolut 52 | status = True 53 | etpolut1_file = Path(self.data_dir + '/' + self.etpolut1_dat_file) 54 | leapsec_file = Path(self.data_dir + '/' + '[raw]_Leap_Second_History.dat') 55 | iauhist_file = Path(self.data_dir + '/' + '[raw]_eopc04_IAU2000.dat') 56 | iaucurr_file = Path(self.data_dir + '/' + '[raw]_finals2000A.dat') 57 | 58 | print("--------------------------------------") 59 | print("-->> Updating the Earth orientation database '{:s}':".format(etpolut1_file.as_posix())) 60 | start = tt.time() 61 | if status: 62 | try: 63 | urllib.request.urlopen(self.leapsec_rfile) 64 | except OSError as error: 65 | print("ERROR: Could not connect to remote server: {:s}".format(self.leapsec_rfile)) 66 | print("MESSAGE: {0}.".format(error)) 67 | status=False 68 | pass 69 | else: 70 | print('Start downloading: {:s} ...'.format(self.leapsec_rfile)) 71 | urllib.request.urlretrieve(self.leapsec_rfile, leapsec_file) 72 | end = tt.time() 73 | print('Finished downloading ({:.1f} s).'.format((end - start))) 74 | 75 | if status: 76 | try: 77 | urllib.request.urlopen(self.iauhist_rfile) 78 | except OSError as error: 79 | print("ERROR: Could not connect to remote server: {:s}".format(self.iauhist_rfile)) 80 | print("MESSAGE: {0}.".format(error)) 81 | status=False 82 | pass 83 | else: 84 | print('Start downloading: {:s} ...'.format(self.iauhist_rfile)) 85 | urllib.request.urlretrieve(self.iauhist_rfile, iauhist_file) 86 | end = tt.time() 87 | print('Finished downloading ({:.1f} s).'.format((end - start))) 88 | 89 | if status: 90 | try: 91 | urllib.request.urlopen(self.iaucurr_rfile) 92 | except OSError as error: 93 | print("ERROR: Could not connect to remote server: {:s}".format(self.iaucurr_rfile)) 94 | print("MESSAGE: {0}.".format(error)) 95 | status=False 96 | pass 97 | else: 98 | print('Start downloading: {:s} ...'.format(self.iaucurr_rfile)) 99 | urllib.request.urlretrieve(self.iaucurr_rfile, iaucurr_file) 100 | end = tt.time() 101 | print('Finished downloading ({:.1f} s).'.format((end - start))) 102 | 103 | #%% 104 | if status: 105 | try: 106 | open(leapsec_file, "r") 107 | except OSError as error: 108 | print("ERROR: Could not open file: {:s}".format(leapsec_file.as_posix())) 109 | print("MESSAGE: {0}.".format(error)) 110 | status = False 111 | pass 112 | 113 | if status: 114 | try: 115 | open(iauhist_file, "r") 116 | except OSError as error: 117 | print("ERROR: Could not open file: {:s}".format(iauhist_file.as_posix())) 118 | print("MESSAGE: {0}.".format(error)) 119 | status = False 120 | pass 121 | 122 | if status: 123 | try: 124 | open(iaucurr_file, "r") 125 | except OSError as error: 126 | print("ERROR: Could not open file: {:s}".format(iaucurr_file.as_posix())) 127 | print("MESSAGE: {0}.".format(error)) 128 | status = False 129 | pass 130 | 131 | if status: 132 | #%% read leap second history 133 | leapsdf = pd.read_csv(leapsec_file, comment='#', header=None, parse_dates= {'date':[1,2,3]}, \ 134 | date_format='%d %m %Y', delimiter=r"\s+") 135 | leapsdf.columns = ['date', 'MJD', 'leaps'] 136 | leapsdf.drop(['MJD'], axis=1, inplace=True) 137 | leapsdf.index += 1 138 | # insert row at the beginning 139 | leapsdf.loc[0] = [dt.datetime(1962,1,1), 10] 140 | leapsdf.sort_index(inplace=True) 141 | 142 | #%% read historic pole coordinates 143 | # convert = {3: lambda x: np.around(np.float64(x), 3)} 144 | iauhist = pd.read_csv(iauhist_file, skiprows=13, header=None, parse_dates= {'date':[0,1,2]}, \ 145 | date_format='%Y %m %d', delimiter=r"\s+", usecols=[0,1,2,3,4,5,6]) 146 | iauhist.columns = ['date', 'MJD', 'x', 'y', 'UT1-UTC'] 147 | #iauhist = iauhist.set_index('date') 148 | 149 | #%% read current pole coordinates 150 | # dateparse = lambda x,y,z: pd.to_datetime(x.zfill(2)+y.zfill(2)+z.zfill(2), format='%y%m%d') 151 | # convert = {'date': lambda x,y,z: pd.to_datetime(x.zfill(2)+y.zfill(2)+z.zfill(2), format='%y%m%d')} 152 | fw = [2,2,2,9,3,9,9,10,9,3,10,10] 153 | iaucurr = pd.read_fwf(iaucurr_file, header=None, widths=fw, usecols=[0,1,2,3,5,7,10]) 154 | iaucurr.iloc[:, 0] = pd.to_datetime(iaucurr.iloc[:, 0].astype(str).str.zfill(2) + '-' + iaucurr.iloc[:, 1].astype(str).str.zfill(2) + '-' + iaucurr.iloc[:, 2].astype(str).str.zfill(2), format='%y-%m-%d') 155 | iaucurr.drop(iaucurr.columns[[1, 2]], axis=1, inplace=True) 156 | iaucurr.columns = ['date', 'MJD', 'x', 'y', 'UT1-UTC'] 157 | #iaucurr = iaucurr.set_index('date') 158 | mask = (iaucurr['date'] > iauhist['date'].values[-1]) 159 | # etpolut = iauhist.append(iaucurr[mask]) 160 | etpolut = pd.concat([iauhist, iaucurr[mask]]) 161 | etpolut = etpolut[np.isfinite(etpolut['x'])] 162 | #iauhist.combine_first(iaucurr) 163 | 164 | #%% 165 | etpolut['Date'] = etpolut['date'].dt.strftime('%Y%m%d') 166 | etpolut['Time'] = etpolut['date'].dt.strftime('%H%M%S') 167 | etpolut['MJD'] = etpolut['MJD'].map('{:8.3f}'.format) 168 | etpolut['x'] = etpolut['x'].map('{:9.5f}'.format) 169 | etpolut['y'] = etpolut['y'].map('{:9.5f}'.format) 170 | etpolut['TAI-UT1'] = etpolut['UT1-UTC'] 171 | etpolut['UT1-UTC'] = etpolut['UT1-UTC'].map('{:9.6f}'.format) 172 | 173 | #%% 174 | # prepare the last column 175 | for idx, val in leapsdf.iterrows(): 176 | # print(idx, val[1]) 177 | # find mask for leap seconds 178 | if idx+1 in leapsdf.index: 179 | mask = ((etpolut['date'] >= leapsdf['date'].loc[idx]) & (etpolut['date'] < leapsdf['date'].loc[idx+1])) 180 | #print(mask) 181 | # subtract leap seconds from UTC 182 | etpolut.loc[mask, 'TAI-UT1'] = leapsdf['leaps'].loc[idx] - etpolut.loc[mask, 'TAI-UT1'] 183 | else: 184 | mask = (etpolut['date'] >= leapsdf['date'].loc[idx]) 185 | etpolut.loc[mask, 'TAI-UT1'] = leapsdf['leaps'].loc[idx] - etpolut.loc[mask, 'TAI-UT1'] 186 | 187 | etpolut['TAI-UT1'] = etpolut['TAI-UT1'].map('{:9.6f}'.format) 188 | 189 | #%% 190 | #etpolut[0] = etpolut[0].map('${:,.2f}'.format) 191 | header = \ 192 | """File : etpolut1.dat 193 | Updated : $1$ 194 | Contents : Pole coordinates and earth rotation one day sampling interval, 195 | given at 0 hours UTC. Historic data is combined with predictions. 196 | Data are from IERS and USNO. 197 | Period : $2$ 198 | Historic : $3$ 199 | Current : $4$ 200 | Leap sec.: $5$ 201 | 202 | Date Time MJD x y UT1-UTC TAI-UT1 203 | ["] ["] [sec] [sec] 204 | C****************************************************************\n""" 205 | header = header.replace("$1$", dt.datetime.utcnow().strftime('%d/%m/%Y')) 206 | header = header.replace("$2$", etpolut['date'].iloc[0].strftime('%d/%m/%Y') \ 207 | + ' to ' + etpolut['date'].iloc[-1].strftime('%d/%m/%Y')) 208 | header = header.replace("$3$", self.iauhist_rfile) 209 | header = header.replace("$4$", self.iaucurr_rfile) 210 | header = header.replace("$5$", self.leapsec_rfile) 211 | 212 | pd.options.display.max_colwidth = 200 213 | 214 | # IMPORTANT: newline needs to comply with windows platform! 215 | # https://pythonconquerstheuniverse.wordpress.com/2011/05/08/newline-conversion-in-python-3/ 216 | with open(etpolut1_file, "w", newline='') as myfile: 217 | myfile.write(header) 218 | # myfile.write(etpolut['combined'].to_string(index=False, header=False).replace('\n ', '\n')) 219 | # etpolut['combined'].to_string(myfile, index=False, header=False) 220 | # WEIRD PANDAS BUG: to_string() puts white space at beginning of each line 221 | for index, row in etpolut.iterrows(): 222 | string = "{:s} {:s} {:s} {:s} {:s} {:s} {:s}".format(row['Date'], row['Time'], row['MJD'],\ 223 | row['x'], row['y'], row['UT1-UTC'], row['TAI-UT1']) 224 | myfile.write(string + '\r\n') 225 | myfile.write("99999999") 226 | myfile.close() 227 | end = tt.time() 228 | # update also bin file 229 | self.etpolut1_dat2bin() 230 | print('Finished updating {:s} ({:.1f} s).'.format(etpolut1_file.as_posix(), (end - start))) 231 | else: 232 | print('Update failed!') 233 | pass 234 | 235 | #%% remove temporary files 236 | os.remove(leapsec_file) 237 | os.remove(iauhist_file) 238 | os.remove(iaucurr_file) 239 | return 240 | 241 | #%% update the etpolut1 binary file from the text file 242 | def etpolut1_dat2bin(self): 243 | etpolut1_dat = Path(self.data_dir + '/' + self.etpolut1_dat_file) 244 | etpolut1_bin = Path(self.data_dir + '/' + self.etpolut1_bin_file) 245 | header = [] 246 | # find the end of the header 247 | with open(etpolut1_dat, "r") as f: 248 | for num, line in enumerate(f, 1): 249 | header.append(line) 250 | if "C*******" in header[-1]: break 251 | 252 | # read into dataframe 253 | cols = ['Date', 'Time', 'MJD', 'x', 'y', 'UT1-UTC', 'TAI-UT1'] 254 | etpolut = pd.read_csv(etpolut1_dat, names=cols, skiprows=num, header=None, delimiter=r"\s+") 255 | # drop the last row with EOL ('99999999') 256 | etpolut = etpolut[:-1] 257 | print("File '{:s}' has {:d} rows.".format(etpolut1_dat.as_posix(), etpolut.shape[0])) 258 | #%% 259 | # write as binary for use in fortran: each record has 4*8 bytes = 32 bytes 260 | # header contains start date in MJD and number of rows + 1 261 | head = np.array([np.int32(etpolut.iloc[0, 2]), np.int32(etpolut.shape[0]+1)]) 262 | data = np.float64(etpolut.values[:, 3:]) 263 | #print(data) 264 | with open(etpolut1_bin,'wb+') as f: 265 | # write header integers 266 | f.write(head.tobytes()) 267 | # advance to next record (32 bytes) 268 | f.seek(32) 269 | # write the flattened matrix (this may have 64 bytes) 270 | f.write(data.flatten().tobytes()) 271 | f.close() 272 | print("File '{:s}' has been updated (Header: {:.0f}, {:d}).".format(etpolut1_bin.as_posix(), etpolut.iloc[0, 2], etpolut.shape[0]+1)) 273 | 274 | 275 | #%% update the time conversion database (leap seconds) 276 | def update_etddt(self): 277 | global etddt, leapsdf, tmp 278 | leapsec_file = Path(self.data_dir + '/' + '[raw]_Leap_Second_History.dat') 279 | old_etddt_file = Path(self.data_dir + '/' + self.etddt_tmpl) 280 | etddt_file = Path(self.data_dir + '/' + self.etddt_file) 281 | 282 | #%% 283 | print("--------------------------------------") 284 | print("-->> Updating time conversion database '{:s}':".format(leapsec_file.as_posix())) 285 | #%% download leap second history 286 | start = tt.time() 287 | try: 288 | urllib.request.urlopen(self.leapsec_rfile) 289 | except OSError as error: 290 | print("ERROR: Could not connect to remote server!") 291 | print("MESSAGE: {0}.".format(error)) 292 | pass 293 | else: 294 | print('Start downloading: {:s} ...'.format(leapsec_file.as_posix())) 295 | urllib.request.urlretrieve(self.leapsec_rfile, leapsec_file) 296 | end = tt.time() 297 | print('Finished downloading ({:.1f} s).'.format((end - start))) 298 | 299 | #%% READ THE EXISTING FILE 300 | # print(etddt_file) 301 | # find the end of the header 302 | with open(old_etddt_file, "r") as f: 303 | print("Processing file '{:s}' ...".format(etddt_file.as_posix())) 304 | header = [] 305 | regex = re.compile(r"^\s*updated\s*\:.*$", re.IGNORECASE) 306 | for num, line in enumerate(f, 1): 307 | line = regex.sub("Updated : %s" % dt.datetime.utcnow().strftime('%d/%m/%Y'), line) 308 | header.append(line) 309 | if "C*******" in header[-1]: break 310 | 311 | cols = ['year','JD','DDT'] 312 | etddt = pd.read_csv(old_etddt_file, names=cols, skiprows=num, header=None, delimiter=r"\s+") 313 | 314 | #%% read leap second history 315 | leapsdf = pd.read_csv(leapsec_file, comment='#', header=None, parse_dates= {'date':[1,2,3]}, date_format='%d %m %Y', delimiter=r"\s+") 316 | leapsdf.columns = ['date', 'MJD', 'leaps'] 317 | # leapsdf = leapsdf.set_index('date') 318 | # DDT = delta-T + delta-UT = leaps + 32.184 s offset 319 | leapsdf['DDT'] = leapsdf['leaps'] + 32.184 320 | 321 | #%% 322 | leapsdf['JD'] = [dt.to_julian_date() for dt in leapsdf['date']] 323 | leapsdf['year'] = [timestampToDecyear(dt) for dt in leapsdf['date']] 324 | 325 | #%% 326 | mask = (leapsdf['year'] > etddt['year'].values[-1]) 327 | indices = leapsdf.index[mask] 328 | # print(indices) 329 | # tmp = [] 330 | for i, val in enumerate(indices): 331 | # for each record create a new row 332 | etddt.loc[len(etddt) + 1] = {'year': leapsdf.loc[val, 'year'], 'JD': leapsdf.loc[val, 'JD'], 'DDT': leapsdf.loc[val, 'DDT']} 333 | 334 | # number of new records 335 | records = sum(mask) 336 | if (records > 0): 337 | # write header 338 | with open(self.data_dir + '/' + self.etddt_file, "w+", newline='\r\n') as f: 339 | f.write("".join(header)) 340 | #etddt['combined'].to_string(f, index=False, header=False) 341 | #f.write("\n") 342 | # WEIRD PANDAS BUG: to_string() puts white space at beginning of each line 343 | for index, row in etddt.iterrows(): 344 | string = "{:.5f} {:.5f} {:8.3f}".format(row['year'], row['JD'], row['DDT']) 345 | # print(string) 346 | f.write(string + '\n') 347 | f.close() 348 | end = tt.time() 349 | print('{:d} records were added to the template ({:.1f} s).'.format(records, end - start)) 350 | print("The leap second File ('{:s}') is now up to date ({:.1f} s).".format(self.etddt_file, end - start)) 351 | 352 | #%% run the update 353 | def update(msg=True): 354 | pt = update_etpred_db(msg) 355 | pt.update_etddt() 356 | print(etddt.iloc[-10:, :]) 357 | pt.update_etpolut1() 358 | print("---------------------") 359 | 360 | update() -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | long_description = file: README.md 3 | long_description_content_type = text/markdown 4 | license_files=LICENSE -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import os.path 2 | import re 3 | 4 | from numpy.distutils.core import setup, Extension 5 | 6 | def find_version(*paths): 7 | fname = os.path.join(os.path.dirname(__file__), *paths) 8 | with open(fname) as fp: 9 | code = fp.read() 10 | match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", code, re.M) 11 | if match: 12 | return match.group(1) 13 | raise RuntimeError("Unable to find version string.") 14 | 15 | 16 | VERSION = find_version('pygtide', '__init__.py') 17 | 18 | ext = [Extension(name='pygtide.etpred', 19 | sources=['src/etpred.f90'])] 20 | 21 | setup( 22 | name='pygtide', 23 | version=VERSION, 24 | packages=['pygtide'], 25 | package_data={'pygtide': ['commdat/*']}, 26 | ext_modules=ext, 27 | install_requires=['numpy', 'pandas','requests'], 28 | author='Gabriel C. Rau, Tom Eulenfeld', 29 | author_email='gabriel@hydrogeo.science', 30 | url='https://github.com/hydrogeoscience/pygtide', 31 | description=('A Python module and wrapper for ETERNA PREDICT to compute ' 32 | 'gravitational tides on Earth'), 33 | ) 34 | -------------------------------------------------------------------------------- /windows/pygtide-0.8-cp310-cp310-win_amd64.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/windows/pygtide-0.8-cp310-cp310-win_amd64.whl -------------------------------------------------------------------------------- /windows/pygtide-0.8-cp311-cp311-win_amd64.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/windows/pygtide-0.8-cp311-cp311-win_amd64.whl -------------------------------------------------------------------------------- /windows/pygtide-0.8-cp38-cp38-win_amd64.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/windows/pygtide-0.8-cp38-cp38-win_amd64.whl -------------------------------------------------------------------------------- /windows/pygtide-0.8-cp39-cp39-win_amd64.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hydrogeoscience/pygtide/cb510836a712526f740fb361d1a6135b016e6df9/windows/pygtide-0.8-cp39-cp39-win_amd64.whl --------------------------------------------------------------------------------