skyfielders / python-skyfield

Elegant astronomy for Python
MIT License
1.39k stars 209 forks source link

First and last sighting of the moon each lunar month #779

Closed sgbmzm closed 1 year ago

sgbmzm commented 1 year ago

Hi. Both Jews and Muslims use the first sighting of the moon each month to determine that a new month has begun. (Most Jews today use it only theoretically). It would be very useful if it would be possible to calculate it using skyfield and/or ephem, because I don't know of an option to calculate it using python. The basic principle is that for the first sight two conditions must be met.

  1. That the moon opened a sufficient angle on the ecliptic plane, or that the percentage of the moon's illumination exceeded the minimum necessary threshold.
  2. That the moon does not set too early. This can be estimated using the time difference between geometric sunset of the sun and geometric sunset of the moon, (or using the "RA" difference between them?). Another option is to check the height of the moon above the horizon when the sun is 4.5 degrees below the horizon. Various criteria were examined around this issue, and observations were made. Of course there is a difference between first sight with the eye, and first sight with binoculars.

see also: 1 "Rational Design of Lunar Visibility Criteria", R. E. Hoffman, Observatory, 125, 156-168 (2005). 2 "Prediction of the time of the new Moon's appearance" R. E. Hoffman and T. Kaatz, Yodei Binah, 1, 115-143, (2001) 3 Schaefer, B. E., 1993, Vistas Astron., 36, 311. 4 Schaefer, B. E., May 1998, Sky Telescop., 57.

There is also LunaCal 5.0.1 but it uses Java and not Python.

Thank you!

hidp123 commented 1 year ago

This maybe of interest to you, looks like we are working on the same goal regarding crescent visibility:

crescent-moon-visibility

brandon-rhodes commented 1 year ago

Thank you for the link to that project, @hidp123!

Since that project will show @sgbmzm one way of performing the calculation in Python, I'm going to go ahead and close this Skyfield issue, because I expect that culturally specific astronomy calculations like this will thrive better as separate projects, than if they become part of Skyfield—and have to wait on its release cycle, and can only make progress through Skyfield pull requests (which I often take longer to review than I would like).

But, please feel free to keep commenting here if your conversation needs to continue (though probably the conversation can even better be moved to that repository). I'm only closing the issue because I don't plan on adding this to Skyfield any time soon.

sgbmzm commented 1 year ago

Thank you very much everyone. Special thanks to brandon-rhodes for skyfield. It's an amazing thing. While using for the Moon, I discovered a problem for Venus. But I opened a new request for it. https://github.com/skyfielders/python-skyfield/issues/797