<p>Thank you for your guiding comments. Compute Moon's declination and searching for Moon to begin ascend/descend can be quite easily achieved though skyfield API so I am posting some starter python code here:</p>

<pre><code>from calendar import monthrange 
from skyfield.api import load

planets = load('de431_part-2.bsp') 
earth, moon = planets['earth'], planets['moon']

ts = load.timescale() 
year, month = 2020, 1 

for day in range(1, monthrange(year, month)[1] + 1):
    this_day = ts.utc(year, month, day)
    ra, dec, dist = earth.at(this_day).observe(moon).radec()
    print(this_day.utc_strftime('%Y-%m-%d %H:%M'), '    ', dec)
</code></pre>

<p>which yields Moon's declinations through January 2020 in degrees or radians:</p>

<pre><code>2020-01-01 00:00      -10deg 04' 51.8" 
2020-01-02 00:00      -05deg 39' 57.1" 
2020-01-03 00:00      -01deg 02' 59.5" 
2020-01-04 00:00      +03deg 37' 53.6" 
2020-01-05 00:00      +08deg 14' 18.8" 
2020-01-06 00:00      +12deg 36' 35.0" 
2020-01-07 00:00      +16deg 32' 47.3" 
2020-01-08 00:00      +19deg 48' 21.8" 
2020-01-09 00:00      +22deg 06' 43.7" 
2020-01-10 00:00      +23deg 11' 39.4"  -&gt; begins to descend
2020-01-11 00:00      +22deg 51' 15.5" 
2020-01-12 00:00      +21deg 02' 03.9" 
2020-01-13 00:00      +17deg 50' 48.5" 
2020-01-14 00:00      +13deg 32' 46.2" 
2020-01-15 00:00      +08deg 27' 58.8" 
2020-01-16 00:00      +02deg 57' 34.2" 
2020-01-17 00:00      -02deg 38' 26.5" 
2020-01-18 00:00      -08deg 01' 50.7" 
2020-01-19 00:00      -12deg 56' 07.5" 
2020-01-20 00:00      -17deg 06' 14.0" 
2020-01-21 00:00      -20deg 18' 51.8" 
2020-01-22 00:00      -22deg 23' 29.7" 
2020-01-23 00:00      -23deg 13' 57.4"  -&gt; begins to ascend
2020-01-24 00:00      -22deg 49' 43.7" 
2020-01-25 00:00      -21deg 16' 03.0" 
2020-01-26 00:00      -18deg 42' 36.5" 
2020-01-27 00:00      -15deg 21' 24.7" 
2020-01-28 00:00      -11deg 24' 47.8" 
2020-01-29 00:00      -07deg 04' 09.9" 
2020-01-30 00:00      -02deg 29' 33.7" 
2020-01-31 00:00      +02deg 10' 07.1"
</code></pre>

CC BY-SA 4.0
2020-01-22T17:32:14.427Z
Note that "ascending node" and "descending node" are specific terms in astronomy, and they are not what you are calculating. A node is where an orbit crosses another plane. The Moon's ascending node is the location where it crosses the ecliptic moving from south to north. This is different than when the Moon reaches its maximum southern declination and then begins to "ascend in the sky".
JohnHoltz
CC BY-SA 4.0
2020-01-24T21:42:37.117Z
Thank you for that comment, I updated response accordingly.
Kube Kubow
CC BY-SA 4.0
2024-07-14T15:30:58.553Z
What's the purpose for this question.
Vetrivel
CC BY-SA 4.0
2020-01-22T00:37:23.737Z
2020-01-24T21:43:22.193Z
2020-01-24T21:43:22.193Z
Kube Kubow
<p>I am struggling to find out an information about how to determine ascending/descending cycle of the Moon.</p>

<p>I can find from <a href="https://www.calendrier-lunaire.fr/en/the-moon/the-ascending-and-descending-moon/" rel="nofollow noreferrer">this source</a> and a bunch of <a href="https://biodynamics.net.au/cycle-of-the-moon/" rel="nofollow noreferrer">others</a>, that Moon begins to descend when reaches Gemini and minimum when reaches Sagittarius.</p>

<p>I tried to do a simple comparison using flatlib library:</p>

<pre><code>from flatlib import const
from flatlib.datetime import Datetime
from flatlib.geopos import GeoPos
from flatlib.chart import Chart

d1 = Datetime("2020/1/21")
d2 = Datetime("2020/1/22")
d3 = Datetime("2020/1/23")
pos = GeoPos('50n06', '14e24') #I concentrate to a specific place on northern hemisphere
c1 = Chart(d1, pos)
c2 = Chart(d2, pos)
c3 = Chart(d3, pos)

m1 = c1.get(const.MOON)
m2 = c2.get(const.MOON)
m3 = c3.get(const.MOON)
print(m1)
print(m2)
print(m3)
</code></pre>

<p>Which prints:</p>

<pre><code>Moon Sagittarius +14:07:19 +13:16:13
Moon Sagittarius +27:17:06 +13:03:28
Moon Capricorn +10:14:25 +12:51:13
</code></pre>

<p>Am I right that moon is ascending during these days (21-23rd Jan 2020) as it moves from Sagittarius to Capricorn and further to Gemini? </p>

<p>I am aware of <a href="https://space.stackexchange.com/questions/18718/calculating-positions-of-moons-ascending-and-descending-nodes-from-ephemeris-fi">this answer</a>, but I am not exactly sure if it deals with same problematics.</p>

CC BY-SA 4.0
2020-01-21T22:18:28.540Z
What are those numbers in the printout? I do not recognize them (and am not familiar with flatlib). For an accurate answer, you want to calculate the declination of the Moon. The Moon will be "ascending" between the time it reaches the minimum declination and the maximum declination, and "descending" between the time it reaches the maximum declination and minimum declination.
JohnHoltz
CC BY-SA 4.0
2020-01-21T22:54:34.570Z
Yes, maybe a flatlib is not a wise choice as it is focused more on astrology and charts. I've found a topic on declination https://astronomy.stackexchange.com/questions/29932/how-to-calculate-declination-of-moon and even more cute python library called skyfield, declination can be computed here: https://rhodesmill.org/skyfield/api.html#astronomical-positions
Kube Kubow
CC BY-SA 4.0
2020-01-21T23:05:21.420Z
Are you asking about the Moon's ascending and descending nodes, when it crosses the ecliptic?
Mike G
CC BY-SA 4.0
2020-01-21T23:17:46.047Z
Yes, as JohnHoltz noted, I am after declination which seems to define also ascending and descending nodes. Then the last link to answer is valid also.
Kube Kubow
<the-moon><python><declination>
How to compute Ascension / Descension cycle of the Moon
Kube Kubow
# How to compute Ascension / Descension cycle of the Moon

(Asked by: username_0 on 2020-01-21)

I am struggling to find out an information about how to determine ascending/descending cycle of the Moon.
I can find from this source and a bunch of others, that Moon begins to descend when reaches Gemini and minimum when reaches Sagittarius.
I tried to do a simple comparison using flatlib library:
from flatlib import const
from flatlib.datetime import Datetime
from flatlib.geopos import GeoPos
from flatlib.chart import Chart

d1 = Datetime("2020/1/21")
d2 = Datetime("2020/1/22")
d3 = Datetime("2020/1/23")
pos = GeoPos('50n06', '14e24') #I concentrate to a specific place on northern hemisphere
c1 = Chart(d1, pos)
c2 = Chart(d2, pos)
c3 = Chart(d3, pos)

m1 = c1.get(const.MOON)
m2 = c2.get(const.MOON)
m3 = c3.get(const.MOON)
print(m1)
print(m2)
print(m3)

Which prints:
Moon Sagittarius +14:07:19 +13:16:13
Moon Sagittarius +27:17:06 +13:03:28
Moon Capricorn +10:14:25 +12:51:13

Am I right that moon is ascending during these days (21-23rd Jan 2020) as it moves from Sagittarius to Capricorn and further to Gemini? 
I am aware of this answer, but I am not exactly sure if it deals with same problematics.

**Tags:** the-moon, python, declination
> **Comments:**
> **username_1**: What are those numbers in the printout? I do not recognize them (and am not familiar with flatlib). For an accurate answer, you want to calculate the declination of the Moon. The Moon will be "ascending" between the time it reaches the minimum declination and the maximum declination, and "descending" between the time it reaches the maximum declination and minimum declination.  
> **username_0**: Yes, maybe a flatlib is not a wise choice as it is focused more on astrology and charts. I've found a topic on declination https://astronomy.stackexchange.com/questions/29932/how-to-calculate-declination-of-moon and even more cute python library called skyfield, declination can be computed here: https://rhodesmill.org/skyfield/api.html#astronomical-positions  
> **username_2**: Are you asking about the Moon's ascending and descending nodes, when it crosses the ecliptic?  
> **username_0**: Yes, as JohnHoltz noted, I am after declination which seems to define also ascending and descending nodes. Then the last link to answer is valid also.  

---

## 1 answers

### Answer by username_0 on 2020-01-22. Score: 1 | Accepted answer

Thank you for your guiding comments. Compute Moon's declination and searching for Moon to begin ascend/descend can be quite easily achieved though skyfield API so I am posting some starter python code here:
from calendar import monthrange 
from skyfield.api import load

planets = load('de431_part-2.bsp') 
earth, moon = planets['earth'], planets['moon']

ts = load.timescale() 
year, month = 2020, 1 

for day in range(1, monthrange(year, month)[1] + 1):
    this_day = ts.utc(year, month, day)
    ra, dec, dist = earth.at(this_day).observe(moon).radec()
    print(this_day.utc_strftime('%Y-%m-%d %H:%M'), '    ', dec)

which yields Moon's declinations through January 2020 in degrees or radians:
2020-01-01 00:00      -10deg 04' 51.8" 
2020-01-02 00:00      -05deg 39' 57.1" 
2020-01-03 00:00      -01deg 02' 59.5" 
2020-01-04 00:00      +03deg 37' 53.6" 
2020-01-05 00:00      +08deg 14' 18.8" 
2020-01-06 00:00      +12deg 36' 35.0" 
2020-01-07 00:00      +16deg 32' 47.3" 
2020-01-08 00:00      +19deg 48' 21.8" 
2020-01-09 00:00      +22deg 06' 43.7" 
2020-01-10 00:00      +23deg 11' 39.4"  -> begins to descend
2020-01-11 00:00      +22deg 51' 15.5" 
2020-01-12 00:00      +21deg 02' 03.9" 
2020-01-13 00:00      +17deg 50' 48.5" 
2020-01-14 00:00      +13deg 32' 46.2" 
2020-01-15 00:00      +08deg 27' 58.8" 
2020-01-16 00:00      +02deg 57' 34.2" 
2020-01-17 00:00      -02deg 38' 26.5" 
2020-01-18 00:00      -08deg 01' 50.7" 
2020-01-19 00:00      -12deg 56' 07.5" 
2020-01-20 00:00      -17deg 06' 14.0" 
2020-01-21 00:00      -20deg 18' 51.8" 
2020-01-22 00:00      -22deg 23' 29.7" 
2020-01-23 00:00      -23deg 13' 57.4"  -> begins to ascend
2020-01-24 00:00      -22deg 49' 43.7" 
2020-01-25 00:00      -21deg 16' 03.0" 
2020-01-26 00:00      -18deg 42' 36.5" 
2020-01-27 00:00      -15deg 21' 24.7" 
2020-01-28 00:00      -11deg 24' 47.8" 
2020-01-29 00:00      -07deg 04' 09.9" 
2020-01-30 00:00      -02deg 29' 33.7" 
2020-01-31 00:00      +02deg 10' 07.1"

> **Comments:**
> **username_1**: Note that "ascending node" and "descending node" are specific terms in astronomy, and they are not what you are calculating. A node is where an orbit crosses another plane. The Moon's ascending node is the location where it crosses the ecliptic moving from south to north. This is different than when the Moon reaches its maximum southern declination and then begins to "ascend in the sky".  
> **username_0**: Thank you for that comment, I updated response accordingly.  
> **username_3**: What's the purpose for this question.  

---

