muller-eot


Namemuller-eot JSON
Version 1.3.1 PyPI version JSON
download
home_pagehttps://github.com/cyschneck/Muller-EOT
SummaryA Python package for M. Müller implementation of the 'Equation of Time - Problem in Astronomy' to calculate EOT and the effect of eccentricity/obliquity
upload_time2022-12-06 06:39:12
maintainer
docs_urlNone
authorcyschneck (C. Y. Schneck)
requires_python>=3.7
licenseMIT
keywords astronomy python eot equation of time eccentricity obliquity
VCS
bugtrack_url
requirements matplotlib numpy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Muller-EOT
![PyPi](https://img.shields.io/pypi/v/muller-eot)
![license](https://img.shields.io/github/license/cyschneck/Muller-EOT)

A Python package for [M. Müller implementation of the "Equation of Time - Problem in Astronomy"](http://info.ifpan.edu.pl/firststep/aw-works/fsII/mul/mueller.pdf) to calculate EOT and the effect of eccentricity/obliquity

The combined effect of eccentricity and obliquity create the Equation of Time components.

| Effect of Eccentricity | Effect of Obliquity |
| ------------- | ------------- |
| ![effect_eccentricity](https://raw.githubusercontent.com/cyschneck/Muller-EOT/main/examples/earth_eccentricity_testing.png) | ![effect_obliquity](https://raw.githubusercontent.com/cyschneck/Muller-EOT/main/examples/earth_obliquity_testing.png) |

Combined Effect of the Eccentricity and Obliquity = Equation of Time
![effect_eot](https://raw.githubusercontent.com/cyschneck/Muller-EOT/main/examples/earth_eot_testing.png)

## Overview

There are only four times of year where the length of the day is almost exactly 24 hours. 
The rest of the year when the sun is at its highest point (solar noon), a clock can run 
as much as 16 minutes ahead (12:16pm) or 13 minutes behind (11:47am). This discrepency is 
the result of combined effect of a planet's obliquity (axial tilt) and its eccentricity (as
well as other smaller gravitional forces like moons that are ignored here). Both of thsee 
features form two sine curves that oscillate throughout the year. The combined sum
of these two curves form the Equation of Time, a non-uniform change in time to fix to a clock.
A planet with an obliquity of 0° and perfectly circular orbit (zero eccentricity) would have
no difference in the Expected Solar Noon and the Actual Solar Noon.

Equation of Time = (Apparent Solar Time) - (Mean Solar Time) 

**Effect of Eccentricity:**
<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203484492-bf0f6098-fe13-44d3-b372-bcb8cc4120f8.png" />
</p>

**Effect of Obliquity:**
<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203484389-613ffb3e-9719-4962-a316-eeeb887af1c5.png" />
</p>

"Equation of time is determined by the following parameters: the eccentricity of 
the orbit of the Earth, the angle between the ecliptic and the equatorial planes, the 
angle P between the winter solstice and the perihelion relative to the sun or: 
the time span ∆t from the beginning of winter to the passage through periehlion" (Müller, 1995)

<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203484797-23c81e99-0eee-4431-bc21-31429a615e4f.png" />
</p>
<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203484692-b07bad99-3c6c-43e5-904f-04200f72c571.png" />
</p>

The effect of obliquity and eccentricity are the caused as a result of Kepler's law:

"Two well-known features of our solar system are at the basis of the variations
 in the apparent motion of the sun: 1.) According to Kepler's second law, the angular
 velocity of the Earth relative to the sun varies throughout a year. 2) Equal angles
 which the sun in its apparent movement goes through in the eclipitic do not correspond
 to equal angles we measure on the equatorial plane. However, it is these latter angles
 which are relevant for the measure of time, since the daily movement of the sun is
 parallel to the equatorial plane" (Müller, 1995)
 
**Effect on Angular Velocity:**

As a result of Kepler's law, planets moving in an ellipitc orbit will have variable angular velocity 
as a result of the second law where the area swept during a constant period of time is constant (=dA/dt)

<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203687968-4055d194-afe0-49e8-8b73-94f1b58a3969.png" />
</p>

"1.) parameter: the eccentricity. If e = 0 a regular variation results that is caused by
the inclination of the ecliptic plane. The deviations of the apparent solar time from the
mean solar time increase with growing e in winter and autumn. Thus, the yearly variation
becomes dominant. Since at the perihelion and aphelion the equation of time is only a
function of the ecliptic inclination and the angle P, all plots have the same value at these
two points.
2.) parameter: the inclination of the ecliptic. ε = 0 yields a plot which is symmetric to
the passage through the aphelion. The greater ε the more dominant the variation with a
period of half a year. All plots have four common points at the beginning of each season,
for the equation of time depends only on the two other parameters there (eccentricity
and P). As the projection from the ecliptic plane onto the equatorial plane does not
change the polar angle relative to the winter solstice, ε does not influence the value of the
equation of time at the beginning of a season.
3.) parameter: the time interval between the beginning of winter and the passage
through the perihelion. If ∆t = 0 the two main variations vanish both at the beginning
of winter and summer (because winter begins when the earth passes the perihelion; the
aphelion is the summer solstice). Therefore, the resulting function is symmetric and the
extreme values are in autumn and winter. If ∆t increases, the two components tend to
compensate each other in winter whereas the negative value in summer begins to dominate." (Müller, 1995)

Equation of Time is the combination of the effect of eccentricity and obliquity
<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203484851-c96be35a-2d4a-44df-a2ee-a9d88974aa9e.png" />
</p>

To calculate the difference in time for an individual day:
<p align="center">
  <img src="https://user-images.githubusercontent.com/22159116/203877814-c2d710f3-0681-4f72-8607-0f96e2a33256.png" />
</p>

## Documentation
Calculate the difference in time (in minutes) based on orbital period, eccentricity, and obliquity. Returns a list of differences in time for each day in the orbital year
```
calculateDifferenceEOTMinutes(eccentricity=None,
				obliquity_deg=None,
				orbit_period=None)
```

Plot the differences in time for the EOT as well as the individual effect of obliquity and eccentricity
```
plotEOT(planet_name=None,
	eot_dict={},
	effect_title_str=None,
	plot_title=None,
	plot_x_title=None,
	plot_y_title=None,
	showPlot=True,
	fig_plot_color="C0",
	figsize_n=12,
	figsize_dpi=100,
	save_plot_name=None)
```
## Dependencies
Python 3.7
```
pip3 install -r requirements.txt
```
## Install
PyPi pip install at [pypi.org/project/muller-eot/](https://pypi.org/project/muller-eot/)

```
pip install muller-eot
```
## Examples

Get a list of differences in time for each day of the Earth's orbit and then plot it as a function of days in orbit

```
import muller_eot

# Get a list of time differences for each day
eot_combined_dict = muller_eot.calculateDifferenceEOTMinutes(eccentricity=0.0167,
															obliquity_deg=23.45,
															orbit_period=365.25)

# Plot differences in time as a function of days
muller_eot.plotEOT(planet_name="Earth",
					eot_dict=eot_combined_dict,
					effect_title_str="Eccentricity (0.0167) and Obliquity (23.45)")
```

## Tests

TODO

## TODO:

calculateOrbitalPeriod(semimajor_axis) function

calculateDistanceBetweenSolisticePerhelion() function

calculatePerihelionDay() function

calculateWinterSolsticeDay() function

calculateEccentricity() function

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cyschneck/Muller-EOT",
    "name": "muller-eot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "astronomy,python,eot,equation of time,eccentricity,obliquity",
    "author": "cyschneck (C. Y. Schneck)",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/0c/7b/2a6d6994bb40e0352af3c5c64b8f8056ec62ae569bde2f4552fe4c0c5691/muller-eot-1.3.1.tar.gz",
    "platform": null,
    "description": "# Muller-EOT\n![PyPi](https://img.shields.io/pypi/v/muller-eot)\n![license](https://img.shields.io/github/license/cyschneck/Muller-EOT)\n\nA Python package for [M. M\u00fcller implementation of the \"Equation of Time - Problem in Astronomy\"](http://info.ifpan.edu.pl/firststep/aw-works/fsII/mul/mueller.pdf) to calculate EOT and the effect of eccentricity/obliquity\n\nThe combined effect of eccentricity and obliquity create the Equation of Time components.\n\n| Effect of Eccentricity | Effect of Obliquity |\n| ------------- | ------------- |\n| ![effect_eccentricity](https://raw.githubusercontent.com/cyschneck/Muller-EOT/main/examples/earth_eccentricity_testing.png) | ![effect_obliquity](https://raw.githubusercontent.com/cyschneck/Muller-EOT/main/examples/earth_obliquity_testing.png) |\n\nCombined Effect of the Eccentricity and Obliquity = Equation of Time\n![effect_eot](https://raw.githubusercontent.com/cyschneck/Muller-EOT/main/examples/earth_eot_testing.png)\n\n## Overview\n\nThere are only four times of year where the length of the day is almost exactly 24 hours. \nThe rest of the year when the sun is at its highest point (solar noon), a clock can run \nas much as 16 minutes ahead (12:16pm) or 13 minutes behind (11:47am). This discrepency is \nthe result of combined effect of a planet's obliquity (axial tilt) and its eccentricity (as\nwell as other smaller gravitional forces like moons that are ignored here). Both of thsee \nfeatures form two sine curves that oscillate throughout the year. The combined sum\nof these two curves form the Equation of Time, a non-uniform change in time to fix to a clock.\nA planet with an obliquity of 0\u00b0 and perfectly circular orbit (zero eccentricity) would have\nno difference in the Expected Solar Noon and the Actual Solar Noon.\n\nEquation of Time = (Apparent Solar Time) - (Mean Solar Time) \n\n**Effect of Eccentricity:**\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203484492-bf0f6098-fe13-44d3-b372-bcb8cc4120f8.png\" />\n</p>\n\n**Effect of Obliquity:**\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203484389-613ffb3e-9719-4962-a316-eeeb887af1c5.png\" />\n</p>\n\n\"Equation of time is determined by the following parameters: the eccentricity of \nthe orbit of the Earth, the angle between the ecliptic and the equatorial planes, the \nangle P between the winter solstice and the perihelion relative to the sun or: \nthe time span \u2206t from the beginning of winter to the passage through periehlion\" (M\u00fcller, 1995)\n\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203484797-23c81e99-0eee-4431-bc21-31429a615e4f.png\" />\n</p>\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203484692-b07bad99-3c6c-43e5-904f-04200f72c571.png\" />\n</p>\n\nThe effect of obliquity and eccentricity are the caused as a result of Kepler's law:\n\n\"Two well-known features of our solar system are at the basis of the variations\n in the apparent motion of the sun: 1.) According to Kepler's second law, the angular\n velocity of the Earth relative to the sun varies throughout a year. 2) Equal angles\n which the sun in its apparent movement goes through in the eclipitic do not correspond\n to equal angles we measure on the equatorial plane. However, it is these latter angles\n which are relevant for the measure of time, since the daily movement of the sun is\n parallel to the equatorial plane\" (M\u00fcller, 1995)\n \n**Effect on Angular Velocity:**\n\nAs a result of Kepler's law, planets moving in an ellipitc orbit will have variable angular velocity \nas a result of the second law where the area swept during a constant period of time is constant (=dA/dt)\n\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203687968-4055d194-afe0-49e8-8b73-94f1b58a3969.png\" />\n</p>\n\n\"1.) parameter: the eccentricity. If e = 0 a regular variation results that is caused by\nthe inclination of the ecliptic plane. The deviations of the apparent solar time from the\nmean solar time increase with growing e in winter and autumn. Thus, the yearly variation\nbecomes dominant. Since at the perihelion and aphelion the equation of time is only a\nfunction of the ecliptic inclination and the angle P, all plots have the same value at these\ntwo points.\n2.) parameter: the inclination of the ecliptic. \u03b5 = 0 yields a plot which is symmetric to\nthe passage through the aphelion. The greater \u03b5 the more dominant the variation with a\nperiod of half a year. All plots have four common points at the beginning of each season,\nfor the equation of time depends only on the two other parameters there (eccentricity\nand P). As the projection from the ecliptic plane onto the equatorial plane does not\nchange the polar angle relative to the winter solstice, \u03b5 does not influence the value of the\nequation of time at the beginning of a season.\n3.) parameter: the time interval between the beginning of winter and the passage\nthrough the perihelion. If \u2206t = 0 the two main variations vanish both at the beginning\nof winter and summer (because winter begins when the earth passes the perihelion; the\naphelion is the summer solstice). Therefore, the resulting function is symmetric and the\nextreme values are in autumn and winter. If \u2206t increases, the two components tend to\ncompensate each other in winter whereas the negative value in summer begins to dominate.\" (M\u00fcller, 1995)\n\nEquation of Time is the combination of the effect of eccentricity and obliquity\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203484851-c96be35a-2d4a-44df-a2ee-a9d88974aa9e.png\" />\n</p>\n\nTo calculate the difference in time for an individual day:\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/22159116/203877814-c2d710f3-0681-4f72-8607-0f96e2a33256.png\" />\n</p>\n\n## Documentation\nCalculate the difference in time (in minutes) based on orbital period, eccentricity, and obliquity. Returns a list of differences in time for each day in the orbital year\n```\ncalculateDifferenceEOTMinutes(eccentricity=None,\n\t\t\t\tobliquity_deg=None,\n\t\t\t\torbit_period=None)\n```\n\nPlot the differences in time for the EOT as well as the individual effect of obliquity and eccentricity\n```\nplotEOT(planet_name=None,\n\teot_dict={},\n\teffect_title_str=None,\n\tplot_title=None,\n\tplot_x_title=None,\n\tplot_y_title=None,\n\tshowPlot=True,\n\tfig_plot_color=\"C0\",\n\tfigsize_n=12,\n\tfigsize_dpi=100,\n\tsave_plot_name=None)\n```\n## Dependencies\nPython 3.7\n```\npip3 install -r requirements.txt\n```\n## Install\nPyPi pip install at [pypi.org/project/muller-eot/](https://pypi.org/project/muller-eot/)\n\n```\npip install muller-eot\n```\n## Examples\n\nGet a list of differences in time for each day of the Earth's orbit and then plot it as a function of days in orbit\n\n```\nimport muller_eot\n\n# Get a list of time differences for each day\neot_combined_dict = muller_eot.calculateDifferenceEOTMinutes(eccentricity=0.0167,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tobliquity_deg=23.45,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\torbit_period=365.25)\n\n# Plot differences in time as a function of days\nmuller_eot.plotEOT(planet_name=\"Earth\",\n\t\t\t\t\teot_dict=eot_combined_dict,\n\t\t\t\t\teffect_title_str=\"Eccentricity (0.0167) and Obliquity (23.45)\")\n```\n\n## Tests\n\nTODO\n\n## TODO:\n\ncalculateOrbitalPeriod(semimajor_axis) function\n\ncalculateDistanceBetweenSolisticePerhelion() function\n\ncalculatePerihelionDay() function\n\ncalculateWinterSolsticeDay() function\n\ncalculateEccentricity() function\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python package for M. M\u00fcller implementation of the 'Equation of Time - Problem in Astronomy' to calculate EOT and the effect of eccentricity/obliquity",
    "version": "1.3.1",
    "split_keywords": [
        "astronomy",
        "python",
        "eot",
        "equation of time",
        "eccentricity",
        "obliquity"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "2411fe8c27d1d42db202d6e33a87aa29",
                "sha256": "cc667dd7d188cc35d499945abae38dbdac9260e75b344c8cfd9aca7f4a05ddd3"
            },
            "downloads": -1,
            "filename": "muller_eot-1.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2411fe8c27d1d42db202d6e33a87aa29",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 9660,
            "upload_time": "2022-12-06T06:39:10",
            "upload_time_iso_8601": "2022-12-06T06:39:10.279895Z",
            "url": "https://files.pythonhosted.org/packages/f1/ef/f5d391c7dfc6b57e1f80120b9503e23407149f95d72c6b6df41b99ebdef8/muller_eot-1.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "0595fd5a97f142b8589d18974c95aa2f",
                "sha256": "ee686b5072360546a5737edf6e4036d53109093c19084366bcd9db7c16c9d7ac"
            },
            "downloads": -1,
            "filename": "muller-eot-1.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "0595fd5a97f142b8589d18974c95aa2f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 8902,
            "upload_time": "2022-12-06T06:39:12",
            "upload_time_iso_8601": "2022-12-06T06:39:12.107324Z",
            "url": "https://files.pythonhosted.org/packages/0c/7b/2a6d6994bb40e0352af3c5c64b8f8056ec62ae569bde2f4552fe4c0c5691/muller-eot-1.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-06 06:39:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "cyschneck",
    "github_project": "Muller-EOT",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.21.6"
                ]
            ]
        }
    ],
    "lcname": "muller-eot"
}
        
Elapsed time: 0.02276s