Sunday, March 16, 2014

Quarto intermezzo - L'indice di concentrazione planetaria

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:

  1. A. Barbault. Il pronostico sperimentale in astrologia. Mursia ed. 1979
  2. 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

How to create a virtual linux machine with qemu under Debian or Ubuntu with near native graphics performance

It's been a long time since my latest post. I know, I'm lazy. But every now and then I like to publish something that other people c...