Sto facendo un progetto di astronomia. Voglio che le informazioni sulle nostre immagini siano archiviate in un database abilitato spazialmente. Questo, penso, dovrebbe essere un caso speciale molto semplice per le funzioni GIS perché il cielo può essere trattato come perfettamente sferico e non richiede un trattamento ellittico come la superficie della terra. Sfortunatamente, non ho ancora trovato un modo per farlo e ho schivato le mine con funzioni spaziali che usano una terra ellittica. (Praticamente qualsiasi funzione che restituisce metri anziché gradi potrebbe usare un calcolo ellittico. Fortunatamente, molte delle funzioni PostGIS di cui ho bisogno sembrano avere implementazioni incomplete in cui la documentazione afferma esplicitamente che i risultati restituiti sono per una sfera e non per l'ellissoide. Ma ciò potrebbe cambiare con le versioni future, il che è motivo di preoccupazione.)
Sfondo: Attualmente sto usando PostgreSQL con coordinate PostGIS e WGS 84 (SRID = 4326). Funziona abbastanza bene. Sto creando un POLIGONO chiuso dalla giusta ascensione e declinazione dei quattro angoli dell'immagine. Ho molte immagini (10k o più), che coprono una vasta area del cielo. Ogni immagine è di circa 1 grado quadrato. Dall'insieme di queste immagini, sto realizzando mosaici da piccoli sottogruppi di 15-30 immagini. Ogni mosaico è di circa 1,5 gradi quadrati.
Attualmente, sto memorizzando la geografia dei mosaici come MULTIPOLIGONO che consiste in tutti i POLIGONI corrispondenti a ciascuna immagine che è entrata nel mosaico. [Una soluzione migliore sarebbe quella di creare un singolo POLIGONO che descriva il perimetro dell'unione di tutti i singoli poligoni. Non so se questo può essere fatto in coordinate sferiche (cioè, il tipo di geografia). Questa sarebbe anche una risposta interessante anche per me.] La linea della data e i poli celesti potrebbero essere inclusi in un'immagine nell'insieme di dati, quindi ho evitato di proiettare per quanto possibile le coordinate planari.
Quale sistema di coordinate dovrei usare per le coordinate celesti con le funzioni PostGIS?
Ho guardato http://spatialreference.org/ ma non ho trovato nulla finora. Google è cresciuto poco. Sono perplesso. Fondamentalmente, voglio assicurarmi che se una funzione restituisce metri come distanza, è metri lungo un grande cerchio su una sfera.
Più in generale, sarebbero anche apprezzati alcuni consigli per l'uso delle coordinate celesti in un database spaziale.
Ho sbagliato scegliendo PostGIS?
Ci sono scelte commerciali di gran lunga superiori?
Scelte FOSS?
Sto usando PostGIS 1.5.2. Non ho ancora provato PostGIS 2.0. Sono curioso di sapere se la funzione ST_CoveredBy funziona con un POLYGON e un MULTIPOLYGON di tipo geografico. Se qualcuno esegue 2.0, potresti dirmi se si ottiene lo stesso errore di questo:
mydb=# select ST_CoveredBy(ST_GeographyFromText('MULTIPOLYGON(( (10.37795 -69.57926,8.9498 -69.54875,9.0178 -69.21643,10.4242 -69.24648,10.37795 -69.57926),(10.42436 -69.24618,9.01774 -69.2162, 9.08363 -68.88389,10.46914 -68.91344,10.42436 -69.24618)))'),ST_GeographyFromText('POLYGON((10.46915 -68.91315,9.08371 -68.88364,9.14755 -68.5513,10.5125 -68.58038,10.46915 -68.91315))'));
ERROR: geography_covers: only POLYGON and POINT types are currently supported
CONTEXT: SQL function "st_coveredby" statement 1
Ho provato PostGIS 2.0. Questa funzione funziona ancora solo su punti e poligoni, non su forme più generali.