Si deve ad André Barbault, insigne astrologo francese, l'introduzione di un indice sintetico che rappresenta il grado di maggiore o minore allontanamento reciproco dei pianeti, che, prescindendo dalle metodologie tradizionali dell'astrologia, basate sulla posizione dei pianeti nei segni e sugli aspetti, cioè distanze angolari discrete dotate di tolleranze contenute nell'ordine di qualche grado, consentirebbe la lettura degli eventi collettivi (astrologia mondiale) secondo cicli complessi che variano tra minimi e massimi nell'arco di giorni, mesi, anni o addirittura secoli. Per i necessari approfondimenti rimando all'opera dell'autore citato, in particolare a:
- A. Barbault. Il pronostico sperimentale in astrologia. Mursia ed. 1979
- A. Barbault. Astrologia mondiale (trad. Clara Negri). Armenia 1980
Per il calcolo dell'indice ho pensato di fornire un piccolo contributo personale ai lettori esperti di linguaggio Python, appoggiandomi ad alcune librerie esterne per Python:
La prima è pyephem di Brandon Rhodes, una libreria astronomica (non astrologica come swisseph di Astrodienst)
la seconda è pylab, dedicata alla grafica matematica, che fornisce una sintesi di numpy, scipy e matplotlib per fornire un ambiente simile all'ambiente MATLAB, realizzato per il linguaggio C.
Come sempre fornisco un listato (quick and dirty) per il calcolo dell'indice. Ho dato un orizzonte temporale di 50 anni, ma, ovviamente, chi ha già familiarità con Python puo' divertirsi a cambiare data di inizio, lunghezza del periodo, e altri parametri. Le librerie datetime e time sono incluse nell'installazione Python di base, quindi vanno solo importate. Per pylab nel repository di Ubuntu trovate il pacchetto python-matplotlib. Numpy può essere installata attraverso pip o dai repository di Ubuntu senza particolari difficoltà.
Ok, vi passo il codice per l'indice di concentrazione planetaria, considerando i pianeti lenti da Giove a Plutone. Nel grafico compare anche (quasi incomprensibile, lo so) la posizione all'inizio di ogni anno dei cinque pianeti considerati, nell'intervallo 0-360 gradi. Puo' aiutare a capire almeno quando si realizzano delle congiunzioni importanti.
import pylab , numpy import ephem import time , datetime planets = { 0 :ephem.Sun, 1 :ephem.Moon, 2 :ephem.Mercury, 3 :ephem.Venus, 4 :ephem.Mars, 5 :ephem.Jupiter, 6 :ephem.Saturn, 7 :ephem.Uranus, 8 :ephem.Neptune, 9 :ephem.Pluto} def longitude (x): return ephem.Ecliptic (x) year = 1990 month = 1 day = 1 hour = 0 minute = 0 time_span = 50 initial_date = datetime.datetime (year, month, day, hour, minute) x = [] y = [] jup = [] sat = [] ura = [] nep = [] plu = [] for i in range ( 0 , time_span): date = datetime.datetime (year + i, month, day, hour, minute) b = [] icp = 0 for key in range ( 5 , 10 ): a = planets[key](date, epoch = date) b.append(ephem.degrees(ephem.Ecliptic(a).lon) / ephem.pi * 180 ) for j in range ( 0 , len (b)): for k in range (j, len (b)): _icp = (b [k] - b [j]) if _icp < 0 : _icp += 360 if _icp > 180 : _icp = 360 - _icp icp += _icp x.append (i + year) y.append (icp) jup.append (b[0]) sat.append (b[1]) ura.append (b[2]) nep.append (b[3]) plu.append (b[4]) pylab.figure(1,figsize =(15 , 10 )) pylab.title ( 'Index planetary concentration' ) pylab.xlabel ( 'year' ) pylab.ylabel ( 'ICP' ) pylab.xticks (numpy.linspace (year, year + time_span, 50 , endpoint = True ), rotation = - 90 ) pylab.plot (x, y, 'r' , label = 'ICP' ) pylab.plot (x, jup, 'bo' , label = 'jupiter' ) pylab.plot (x, sat, 'g ^' , label = 'saturn' ) pylab.plot (x, ura, 'c.' , label = 'uranus' ) pylab.plot (x, nep, 'm,' , label = 'neptune' ) pylab.plot (x, plu, 'k.' , label = 'bar' ) pylab.grid (axis = 'Both' ) pylab.legend (loc = 'best' ) pylab.show ()
A fra qualche giorno con l'ultima puntata di SVG2Tk.
No comments:
Post a Comment