Skip to main content

Tidal Dynamics and Thermal-Orbital Evolution Software Suite Implemented in Cython and Python

Project description

TidalPy

Windows Tests MacOS Tests Ubuntu Tests
DOI Python Version 3.9-3.12

TidalPy Version 0.5.1 Alpha

Tidal Dynamics and Thermal-Orbital Evolution Software Suite Implemented in Cython and Python

TidalPy is an open-source software suite that utilizes a semi-analytic approach to estimate tidal heating, orbit-rotation evolution, and thermal changes for rocky and icy worlds. It has been used to simulate the thermal-orbital evolution of moons within our Solar System as well as exoplanets beyond. TidalPy's RadialSolver package can accurately estimate the viscoelastic Love and Shida numbers for a multi-layered world, including the effects of liquid layers, compressibility, dynamic tides, and advanced rheological models. This model has been used to study the tidal response of Mercury, Venus, Earth, our Moon, and Mars.

Have any questions? Feel free to leave an issue or send a message to TidalPy@gmail.com.

Related Software

Below is a non-exhaustive list of publicly available software that perform similar or parallel calculations as TidalPy.

  • Are you interested in the habitability of a planet? With considerations of tides, atmospheres, water content, solar interactions? Check out...
  • Are you interested in the orbital evolution of multiple planets with each planet influencing one another? Consider an N-body approach like...
  • Don't care about tides or orbital dynamics but are instead interested in interior structure and composition of planets?
  • Are you interested in tides, interiors, and the chemical evolution of small worlds but don't care about non-synchronous rotation or compressibility of planets?

However, if you want high fidelity tidal, orbital, spin, and interior models --- then you have come to the right place! Read below for instructions on how to install and use TidalPy.

How to Install

Compatibility

As of TidalPy v0.5.0:

  • Windows-Latest: Installation & tests passed.
  • MacOS-Latest: Installation & tests passed.
  • Ubuntu-Latest: Installation & tests passed.

Basic Installation

Installing TidalPy is ass simple as ensuring 64-bit Python 3.9+ is installed on your system and performing the following in a terminal:

pip install TidalPy

TidalPy can not currently be installed via conda install.

Accessing Jupyter Notebooks

There are several jupyter notebooks with TidalPy demos found in the /Demos/ folder of this repository. In order to access these you will need to make sure you install Jupyter and a few related packages:

pip install ipympl ipython ipywidgets jupyter

or

conda install ipympl ipython ipywidgets jupyter

You can then clone this GitHub repository,

git clone https://github.com/jrenaud90/TidalPy

to a local directory. Navigate to this directory and the Demos sub-directory then access the notebooks by using the command, jupyter notebook.

Cartopy

TidalPy offers the ability to make nice 2D plots using the cartopy package for some of 3d projection map plotting. In turn, cartopy relies on GEOS which is not a python package and must be installed outside of pip.

The easiest way to install cartopy is using an Anaconda environment by,

conda install -c conda-forge cartopy

If you are not using a conda environment then you will need to find and install the GEOS binaries manually:

Windows: Follow instructions here On Ubuntu: sudo apt-get install libgeos-dev On MacOS: brew install geos

After GEOS is installed you can pip install the rest,

pip install pyproj shapely pyshp cartopy

DiffEqPy / Julia

TidalPy provides the option to use the Julia programming language's differential equation solver for python: diffeqpy. To utilize this package you first need to ensure that Julia is installed on your machine and available via the system's environment path.

  • Install the Julia language from https://julialang.org/downloads/
  • Add Julia's directory and its bin subdirectory to your system's path.
  • Open an elevated ("as administrator") terminal, command prompt, or powershell.
    • If you are using a virtual Python environment make sure it is active.
  • Install julia and diffeqpy for python using pip
    • Run pip install julia diffeqpy
  • Open Python on your elevated terminal (the following steps may take a while to compile).
    • Run import julia; julia.install(); import diffeqpy; diffeqpy.install()

Installation Troubleshooting

If you ran into a problem that is not listed below please submit an issue and we will work on addressing it!

Known Problems:

  • The setuptools package is required before TidalPy can be installed. Usually it is automatically installed, but if you are starting with a clean virtual environment it may not have been.
    • For Anaconda: conda install setuptools
    • Or for regular Python: pip install setuptools

How to Use TidalPy

Check out the Documentation\Getting Started.md file. This is pretty bare bones at the moment but offers some basic info about TidalPy. For now the best way to learn how to use TidalPy is by checking out the Demos directory. There are "beginner" Jupyter notebooks that are a great starting point.

Using TidalPy for Science

TidalPy has been used in several studies already, and we encourage you to use it in yours. We would appreciate you include a link back to this page and cite one of the papers discussed in the next section. We also would love to see where TidalPy is being used! Please feel free to send us an email: TidalPy@gmail.com when a paper or presentation utilized TidalPy. Anyone is welcome to make forks or copies of TidalPy as long as their work references back to this page. License information can be found at the end of this file.

Citing TidalPy

If you use TidalPy for your research please cite its Zenodo doi: 10.5281/zenodo.7017474.

The science used in TidalPy is described in the following papers and software (and references therein):

Contribute to TidalPy

TidalPy is in early alpha and there are lots of areas where it can improve! If you are interested in helping out, please check out the information in Documentation\Contribute.md.

Found a bug or have an idea for a new feature?

  • Go to TidalPy's Github page and click the "Issues" tab then make a new report.
    • If you ran into a bug please include a code snippet (in markdown: code is designated by Grave accents surrounding the text) that reproduces the error (please keep this snippet as concise as possible).
    • It is helpful to triage issues when they are made. If you think you know the severity of a bug or can provide any other at-a-glance context, consider adding a "label" (right-hand side of the github issue form) to the issue.

License Information

You are welcome to copy/fork TidalPy and make modifications assuming the following conditions are met:

  • Links are included that point back to this page.
  • Any software derived from TidalPy must remain open-source and non-commercial.

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

Acknowledgements

TidalPy was partially developed with support from NASA Goddard Space Flight Center's Sellers Exoplanet Environments Collaboration (SEEC) and Geodesy ISFM. TidalPy is partially based upon work supported by NASA under award number 80GSFC21M0002 and the Center for Research and Exploration in Space Science & Technology II (CRESST II) administered at the University of Maryland, College Park.

TidalPy has been improved by numerous contributors some of which you can find here.

TidalPy has benefited from work and conversations with the following:

  • Wade G. Henning (U. of Maryland, College Park / NASA GSFC)
  • Sander Goossens (NASA GSFC)
  • Marc Neveu (U. of Maryland, College Park / NASA GSFC)
  • Gael Cascioli (U. of Maryland, Baltimore County / NASA GSFC)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TidalPy-0.5.1.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

TidalPy-0.5.1-cp312-cp312-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12Windows x86-64

TidalPy-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

TidalPy-0.5.1-cp312-cp312-macosx_10_9_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

TidalPy-0.5.1-cp311-cp311-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11Windows x86-64

TidalPy-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

TidalPy-0.5.1-cp311-cp311-macosx_10_9_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

TidalPy-0.5.1-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10Windows x86-64

TidalPy-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

TidalPy-0.5.1-cp310-cp310-macosx_10_9_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

TidalPy-0.5.1-cp39-cp39-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.9Windows x86-64

TidalPy-0.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

TidalPy-0.5.1-cp39-cp39-macosx_10_9_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file TidalPy-0.5.1.tar.gz.

File metadata

  • Download URL: TidalPy-0.5.1.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for TidalPy-0.5.1.tar.gz
Algorithm Hash digest
SHA256 275c9f6b994269388fd92f4e5f2c2ae4a27a108040c64dee9bddf8d09a0858b1
MD5 c3a23e8fef5f5f93b3f821eb8bd12f42
BLAKE2b-256 ce02465d84a0d65b5d8715799a1deba06552d2429b786fd5bc196157ac099474

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: TidalPy-0.5.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for TidalPy-0.5.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e1cf806ca320633952868d98827258d3648f1b3567844b02551635fe754985d4
MD5 70f0fa7bc83550f70f07759f33924145
BLAKE2b-256 d5519819df16c724d8e11a234ef61f77dfc4ed7dcfe53a5e26305fe488e866a2

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c75e5116667421b4b5b2da45a5947be327b0c89a2564de082f4b093173a3f6c5
MD5 9bab04cf870e25612a8a6da5ca8b0d0b
BLAKE2b-256 d52987df8993bc0180b37d17b64fc8966d219699598f38d918e8daaa8683a0a8

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ad6744c20ebf0d04b8df5351c61041fda67cf1e86fc0fea84df97fa07755cdc5
MD5 d27607aa3363c64c7ab28f8230450ade
BLAKE2b-256 9df608871a24c097b1499d5198d2319b073a48f9da29c3e74c4ca3817cc06ae6

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: TidalPy-0.5.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for TidalPy-0.5.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1876813b1be9c809000442f1a9905fb9ff27528ac9e3e95d0896669b9c96558f
MD5 fea7b2c1df3e150c6a1e7bdd39eb32a1
BLAKE2b-256 5e1faf56b0cee781ab7e5a04d8c716668420721f1b7466ae14f20668cc81c174

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9813eb9098f20ea7800958a7efcb6fb49ab8c7a60fdea5927dcc00be69e3ba3
MD5 ad331e719daca059164d5a85bd929ea2
BLAKE2b-256 563a36d3274f7097fd34e2ebb886a87aeb73e37bb40c1526d6ac6c09d1516726

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bfb12e3d83141b5423c568771ec5533506e138cd530f120d1db151f237be5fdc
MD5 e450f40db6b26a35c004ac7df5aefbb5
BLAKE2b-256 758d3cd79f2605da375c520017c214a36d85ac354224b3783ce7979337647cdb

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: TidalPy-0.5.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for TidalPy-0.5.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b88e43030e12b4c0730b0a21309d6a40ca426fe275cf2fcba9a9cf67e7cef5b6
MD5 0993eb42197762a597949064b9634bb8
BLAKE2b-256 57810e3e720c8a97c72a0226b2b33a5e11e62a21f24e57e0d667d7d49be61244

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8b7eaa63623687920c222921a75cf35a01af5d27eac64185186c2d555f658c8d
MD5 fe42915ebc0918cca5f5ee736c9ab402
BLAKE2b-256 fd9b113848cfce2f68e8ed428acabc6cb93c4362abfe978105e52f561765ac4a

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e394e140591e23b32d897e9bd62352109888bbf81b1bfafd02ee2a181d8e6d79
MD5 d01b4c415b99bcdb96d8d82e9164784c
BLAKE2b-256 f0cfc6d95ecadb54ace361dfe82bb801cbc605a2a39a380510546a8fe403108f

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: TidalPy-0.5.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for TidalPy-0.5.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 42594020257887b45cc0073e6419f2050869ac68c7f42b5b2fe21bc60f25bbf2
MD5 7b311400625bd3195367275921138a94
BLAKE2b-256 521cfb7ec1188faa039df2db780ccbdebd2aae0d38fd00df805b81fa6496fb0a

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc1f136e7fc419e02bb35dfef2a438506164776b51063812d8db6a8240d35fa0
MD5 762bcf97c25d8967ef4b7295aef2fc88
BLAKE2b-256 02dc9c1ff4823d022ba34f407c8ce3a35db2e82c42cf840c99634adf7f0c93c4

See more details on using hashes here.

File details

Details for the file TidalPy-0.5.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for TidalPy-0.5.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a4f0a887b775e34981c872198f8801b18ee5aace542baf994d00eb90fdcce62b
MD5 d933bb3c18d5ff642297541856a888a9
BLAKE2b-256 40a48c9cddb2f65d328f8cb218291afa44627cd8d25c5da62e637a4726a90904

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page