Qualcuno che sappia leggere il MPCORB

Ciao Ragazzi,
non scrivevo da un po’.
Ho ripreso il gioco spaziale ma questa volta partendo da qalcosa di molto più semplice.
Trovavamo carino usare gli esteroidi e coordinate reali.
Però ci serve recuperare le informazioni.
Ho trovato questo sito
http://www.minorplanetcenter.org/iau/MPCORB.html
su cui sono raccolte le informazioni su 530.000 asteroidi e relative orbite aggiornate giornalmente.
le informazioni sono dentro un file di testo da 100MB
(sotto riporto i primi 10 asteroidi)

Avrei bisogno che qualche anima pia con un po’ di esperienza possa dare una mano nella lettura delle informazioni.
cosi che il ragazzo che programma possa calcolare le distanze i corpi e basta.

Qualcuno che ci capisca c’è? :slight_smile:
Ciau
Michele

Des’n H G Epoch M Peri. Node Incl. e n a Reference #Obs #Opp Arc rms Perts Computer


00001 3.34 0.12 K107N 113.41048 72.58976 80.39321 10.58682 0.0791382 0.21432817 2.7653485 0 MPO110568 6063 94 1802-2006 0.61 M-v 30h MPCW 0000 (1) Ceres 20061025
00002 4.13 0.11 K107N 96.14829 310.15090 173.12949 34.84091 0.2309995 0.21353950 2.7721533 0 MPO135420 7253 93 1827-2008 0.59 M-v 28h MPCW 0000 (2) Pallas 20080101
00003 5.33 0.32 K107N 32.09611 248.10804 169.91138 12.98211 0.2549812 0.22589931 2.6700913 0 MPO135420 6278 91 1824-2008 0.60 M-v 38h MPCW 0000 (3) Juno 20080308

Ehm, si è capito di cosa parlo? :roll_eyes:
In pratica sto ambientando un gioco nel sistema solare e vorrei mettere le posizioni corrette di pianeti ed asteroidi.
Se c’e qualcuno in grado di dare una mano ben venga.

Ciao
Micky

Qui puoi trovare la descrizione del formato del file, che in pratica contiene i paremtri orbitali per calcolare le effemeridi.

fin li c’ero arrivato anche io…
ma qualcuno saprebbe dare una mano per calcolare le distanze tra un corpo e l’altro?
e’ elaborato il calcolo?

Fermo restando che l’epoch di calcolo dei parametri orbitali sia lo stesso (altrimenti andrebbero propagate le traiettorie per renderle coerenti con lo stesso istante voluto), occorre calcolare il vettore posizione rispetto al corpo centrale rispetto al quale sono calcolati: per gli asteroidi e le comete il Sole, per i satelliti naturali il pianeta attrattore primario. In teoria dato il vettore posizione nelle sue tre componenti per tutti i corpi voluti, ovviamente rispetto allo stesso sistema di riferimento, basterebbe calcolare la distanza tra due punti nello spazio (se è quella che ti serve). Nel caso ellittico il calcolo da PO => R,V può essere ottenuto seguendo, per farla breve, http://www.cdeagle.com/omnum/pdf/demosvoe.pdf

Ciao Narghat,
premetto che non ho capito esattamente il calcolo di cui hai bisogno (le distanze fra i corpi celesti variano nel tempo, hai bisogno di una funzione approssimata? O vuoi una mappatura di un universo statico come base reale del gioco?) e non so leggere MPSCORB, ma oggi mi sono installata Celestia e credo che possa esserti utile fare qualche domanda agli sviluppatori per creare il tuo gioco, è sofware libero penso ti risponderanno.

Mal che vada il programma è carino da provare :slight_smile:

Sorry :slight_smile: Usare le parole appropriate non è il mio forte :flushed:
Abbiamo 3 opzioni e sceglieremmo al più pratica.

  1. “Allora ci accontentiamo di una mappatura di un universo statico come base reale del gioco”
    Scegliendo una data ed usando quella per avere la posizione dei vari oggetti.
  2. Oppure avere un sistema dinamico (pure approssimativo), che gira 30 volte più veloce della realtà. (in quanto è un gioco )
  3. Oppure, altra ipotesi, avere una mappatura statica ed aggiornarla giornalmente (sempre 30 volte piu veloce della realtà).

Nel gioco servono le posizioni dei pianeti e di circa 350.000 asteroidi e sapere come calcolare le distanze tra loro perché il gioco consiste in missioni tra i vari asteroidi.

Un’altra fonte con i dati su asteroidi e pianeti e’ la Jet Propulsion Laboratory
http://ssd.jpl.nasa.gov/sbdb_query.cgi

Io sono il grafico del gioco.
Il programmatore vorrebbe un aiuto per leggere quei dati, per metterli nel db del gioco e calcolare le distanze tra i corpi.
Spero che ora sia un po’ piu chiaro :slight_smile:

ho visto ora la risposta. Intanto grazie mille, ma ti seguo giusto fin qui.
Se voglio calcolare la distanza ad esempio tra la terra ed un asteroide, che informazioni mi serve sapere?
e che calcoli faccio?
ipotizzando un viaggio lineare anche se non è il massimo, ed ipotizzando che il sistema sia statico, quindi nel frattempo il corpo non si è mosso.

Poi se è possibile avere calcoli più precisi, con traiettorie non lineari, in un sistema dinamico benvenga :slight_smile:
PS: dici che i vettori posizioni dei satelliti dei pianeti sia rispetto ad un’altro sistema di riferimento? ovvero rispetto al pianeta a cui orbitano intorno; quindi li il calcolo si complica?

Se vuoi calcolare la distanza tra la terra e l’asteroide occorrono i due vettori di stato eliocentrici (rispetto ad un riferimento solare inerziale), ciascuno dei quali a tre componenti scalari. Essi si possono calcolare a partire dai sei parametri orbitali che si possono prendere dalle tabelle che hai indicato tu, e sono Peri (anomalia di perielio), a (semiasse maggiore), e (eccentricità), Incl (inclinazione orbitale), node (ascensione o longitudine del nodo ascendente dell’orbita) e l’angolo dal perielio (o il tempo, da cui ricavare l’angolo) con il suo epoch. Da questi sei parametri più il tempo (epoch) per renderli (se non lo sono già) coerenti, si possono ricavare i vari Rx,Ry,Rz, sia della Terra che degli asteroidi o comete (vedasi il link che ti avevo indicato oppure un testo di dinamica orbitale). Per la distanza, banalmente si usa la radice della sommatoria dei quadrati delle differenze. Il fatto è che non capisco che senso ha parlare di “viaggio lineare”…
Non credo inoltre che sia sensato un approccio non stazionario per il gioco perchè difficilmente apprezzabile a causa dei tempi lunghi e delle distanze tra i corpi. Infine, il fatto del corpo attrattore cambia solo la costante planetaria “mu” e non dà problemi di sorta, bisogna solo accorgersi :wink:

Beh, io ho pensato a viaggio lineare solo perche mi pareva di semplificare le cose. Quindi per andare da un punto all’altro vai dritto come fosse una retta tra due punti. Ma se intendi dire che si possono fare calcoli piu realistici ben venga.
Tieni conto che per come e’ fatto il gioco al momento mi serve solo sapere quanto è distante A da B e quanto tempo ci si metterebbe a raggiungerlo, cosi da avere i costi e tempi delle missioni. Stop :slight_smile:
poi eventualmente si possono complicare i calcoli in una seconda release.

Dici “Non credo inoltre che sia sensato un approccio non stazionario” hai usato 2 non nella frase che mi mettono in crisi :roll_eyes:
intendi che un approccio stazionario sia migliore?

Intando grazie mille, dal tuo intervento capisco che ahime mi servono 6 parametri di ogni corpo piu il tempo…
La mia paura e’ che con tutti questi calcoli il database del gioco inizi a lamentarsi.

Beh probabilmente le semplifica, ma l’effetto sarebbe avere una propulsione che funziona per tutto il viaggio da A a B, bypassando completamente i vantaggi dati dal moto orbitale non forzato.

L’approccio stazionario è quello più sensato per un gioco, visto che altrimenti dovresti in real time fare “muovere” ogni corpo.

Hai una soluzione migliore per un gioco fatto da 2 persone grafico e programmatore? eheheheh :stuck_out_tongue_winking_eye: :nerd:

Beh, essendo un gioco puoi usare stratagemmi, come aggiornare giornalmente le posizioni degli asteroidi.
(ovviamente immaginando un mondo che va 30 volte piu velocemente. I giocatori sapendolo si regolano di conseguenza)
é solo un’idea.

Innanzitutto AJ grazie sei gentilissimo
Quale dei due database consigliate usare ?

Il Minore Planet Center Orbit Database
http://www.minorplanetcenter.org/iau/MPCORB.html
oppure le Jet Propulsion Laboratory
http://ssd.jpl.nasa.gov/sbdb_query.cgi

Dove trovo le informazioni per le coordinate dei pianeti?
Poi mi servirebbe un aiutino sulle formule. :flushed:
il pdf che hai linkato aveva un bel po’ di roba.

Io uso i dati delle effemeridi JPL.
Le coordinate dei pianeti sono proprio date dai parametri orbitali ad un certo epoch di riferimento, che possono essere convertite in posizione e velocità. Gli elementi orbitali sono descritti anche qui https://spaceflight.nasa.gov/realdata/elements/
e le trasformazioni puoi trovarle anche alle pagg. 172 e seguenti del libro Orbital mechanics for engineering students (si vedono con Google Books).

Io consiglio di usare il database del JPL. Ho a che fare con le loro effemeridi e le cose dovrebbero essere ancora più semplici rispetto all’utilizzo dei parametri orbitali, in quanto forniscono direttamente dei coefficienti che permettono di calcolare posizione e velocità in coordinate cartesiane rispetto al baricentro del sistema solare (in pratica molto vicino al sole).
Leggiti bene tutto il sito http://ssd.jpl.nasa.gov/, in particolare la parte sulle effemeridi. Se mi ricordo bene sono presenti anche i sorgenti di routine per manipolare i dati, come ricavare appunto la posizione.

Non so di che tipo di gioco si tratti, ma vista la bassa frequenza di aggiornamento, puoi prendere in considerazione anche di contattare il servizio online HORIZONS per chiedergli la posizione degli oggetti, senza bisogno di maneggiare database un pochino pesanti, come le varie effemeridi JPL.

scusate ma sto facendo piu confusione che capire di più :disappointed:
non è possibile ottenere coordinate, se possibile simili a quelle cartesiane x,y,z.
che a noi semplificherebbero la vita.

Dici “convertite in posizione”, ma che posizioni e come convertire?
Voi siete molto gentili ma state parlando con una persona molto ignorante :flushed:
Il libro che mi indichi dice proprio “for engineering students”
io so matematica a livello neppure liceale ci serve solo una mappatura statica del sistema solare per un gioco per gente qualunque.

Se leggi quanto ho scritto sopra, le effemeridi del JPL (almeno quelle che ho usato io) forniscono dei coefficienti che permettono di ottenere direttamente la posizione in coordinate cartesiane (x,y,z). Tra l’altro, come ho scritto sopra, il JPL fornisce anche direttamente il codice sorgente (C, fortran, matlab) per manipolare le effemeridi ed ottenere le posizioni.
Come ho scritto sopra ( :nerd:) spulciati i seguenti siti:
http://ssd.jpl.nasa.gov/?ephemerides
Da cui si va a:
http://naif.jpl.nasa.gov/naif/index.html

Ciao Raga, innanzitutto volevo dire una cosa,
io non sono un ingegnere che non ha voglia di mettersi li a fare i calcoli. :zzz:
Sono un grafico e sto realizzando questo gioco con un ragazzo che sviluppa siti web.
e sviluppare il gioco di per sè è gia complesso solo quello.

Mi avete dato informazioni interessanti ed utili ma al momento non so ancora metterle in pratica, :nerd:
tant’è che al momento ho preso i nomi degli asteroidi, il perielio ho buttato tutto dentro un file Excel e l’ho utilizzato per generare casualmente le coordinare X,Y,Z.
Mi sarebbe piacere avere una formula per ottenere le coordinate cartesiane reali (o simili alla realtà) in modo che poi posso buttare tutto sul database.
La richiesta quindi e’ che paramentri devo prendere e qual’è la formula.
Chiedo troppo?

Mi fareste un grosso piacere perché questo vorrebbe dire che realizzeremmo il primo gioco dove viene riprodotto il sistema solare e se il gioco diventasse famoso mi ricorderei di voi :beer:

Michele