Skip to main content

Calculate sundial geometry and the equation of time, and plot the analemma

Project description

Python package CICD Documentation Status

<style> .center { display: block; margin-left: auto; margin-right: auto; } .quote-text { text-align: center; margin: 0 auto; font-size: 1.5em; } .source-text{ text-align: right; margin-right: 10%; font-size: 0.9em; } </style>

They deciphered my analemma!

- Fraa Orolo in Anathem by Neal Stephenson (2008)


The analemma is the beautiful double-loop path traced by the shadow on a sundial (or the sun in the sky) when observed at the same time each day throughout one year. This package calculates and plots the analemma for all types of sundial anywhere on earth, or any planet.

pip install analemma
PyPI https://pypi.org/project/analemma/
Documentation https://analemma.readthedocs.io/en/stable/
Source https://github.com/russellgoyder/analemma
Issue Tracker https://github.com/russellgoyder/analemma/issues
Discussions https://github.com/russellgoyder/analemma/discussions
Changelog https://analemma.readthedocs.io/en/stable/changelog

Resources

The analemma package implements the mathematics of sundial and orbits for an arbitrary sundial geometry and orientation placed anywhere on any planet. The analemma expressed in an exact parametric expression which reduces to standard results for the special cases of common dial types. Despite sundials being thousands of years old, I cannot find an expression for the analemma quite as general as this in the literature.

Reference Article

The analemma is derived from first principles in The sundial problem from a new angle - Russell Goyder.pdf - the latest version of a paper originally published in the European Journal of Physics in 2006. The LaTeX source and figures for the paper are in the analemma repository.

Jupyter Notebooks

You can view and run Jupyter notebooks which reproduce all derivations and calculations in the article using symbolic algebra.

I used geometric algebra for this work and have a cheat sheet which could you useful if you familiar with the topic.

Presentations

I presented this work in part 1 and part 2 of a metauni seminar.

Building the LaTeX source

To build, run latexmk -pdf in docs/paper. To clean up, latexmk -C and if you want, find figs -name 'figure?.eps-converted-to.pdf' | xargs rm. Note - fixed a typo in figure 3 (DialFrame.fig) using inkscape which couldn't save as fig, so I saved it as DialFrame.svg.


CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

© Russell Goyder

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

analemma-0.4.1.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

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

analemma-0.4.1-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file analemma-0.4.1.tar.gz.

File metadata

  • Download URL: analemma-0.4.1.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for analemma-0.4.1.tar.gz
Algorithm Hash digest
SHA256 de4e966fd10058d849ad8035e46235f6ef40a8a6ea6588585d99107aef263325
MD5 6438f033fde45e913aaf64d6d8a87897
BLAKE2b-256 3ae6beaee7f3a38040997bdd7c20ba83736188bd5d2c72f25360a71aa981ea6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for analemma-0.4.1.tar.gz:

Publisher: publish-to-pypi.yml on russellgoyder/analemma

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file analemma-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: analemma-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for analemma-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37bd29389bae26676642ff619f4092b45a16eba7e03dbbd52317a6cb329c327d
MD5 ef41305e8eb00056256f309db4d5d8a2
BLAKE2b-256 ddd83d6c5ad94071e3860e7d87da80c8deff8bdcf22a3b0761c2b787cc1aec4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for analemma-0.4.1-py3-none-any.whl:

Publisher: publish-to-pypi.yml on russellgoyder/analemma

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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