Ich mache ein Astronomieprojekt. Ich möchte, dass die Informationen zu unseren Bildern in einer räumlich aktivierten Datenbank gespeichert werden. Ich denke, dies sollte ein sehr einfacher Spezialfall für GIS-Funktionen sein, da der Himmel als perfekt kugelförmig behandelt werden kann und keine elliptische Behandlung wie die Erdoberfläche erfordert. Leider habe ich noch keinen Weg gefunden, dies zu tun, und ich bin Minen mit räumlichen Funktionen ausgewichen, die eine elliptische Erde verwenden. (So gut wie jede Funktion, die Meter anstelle von Grad zurückgibt, verwendet möglicherweise eine elliptische Berechnung. Glücklicherweise scheinen viele der von mir benötigten PostGIS-Funktionen unvollständig implementiert zu sein, wobei in der Dokumentation ausdrücklich angegeben ist, dass die zurückgegebenen Ergebnisse für eine Kugel und nicht für eine Kugel gelten das Ellipsoid. Dies kann sich jedoch mit zukünftigen Versionen ändern, was Anlass zur Sorge gibt.)
Hintergrund: Ich verwende derzeit PostgreSQL mit PostGIS- und WGS-84-Koordinaten (SRID = 4326). Das funktioniert ziemlich gut. Ich erschaffe ein geschlossenes POLYGON aus dem richtigen Auf- und Abstieg der vier Ecken des Bildes. Ich habe viele Bilder (10k oder mehr), die einen großen Bereich des Himmels bedecken. Jedes Bild hat ein Quadrat von etwa 1 Grad. Aus diesen Bildern mache ich Mosaike aus kleinen Teilmengen von 15 bis 30 Bildern. Jedes Mosaik ist ungefähr 1,5 Grad im Quadrat.
Gegenwärtig speichere ich die Geographie der Mosaike als MULTIPOLYGON, das aus allen POLYGONEN besteht, die jedem Bild entsprechen, das in das Mosaik eingegangen ist. [Eine bessere Lösung wäre, ein einziges POLYGON zu erstellen, das den Umfang der Vereinigung aller einzelnen Polygone beschreibt. Ich weiß nicht, ob dies in sphärischen Koordinaten (dh dem Geografietyp) möglich ist. Dies wäre auch für mich eine interessante Antwort.] Die Datumsgrenze und die Himmelspole sind möglicherweise in einem Bild des Datensatzes enthalten, sodass ich es nach Möglichkeit vermieden habe, auf planare Koordinaten zu projizieren.
Welches Koordinatensystem soll ich für Himmelskoordinaten mit PostGIS-Funktionen verwenden?
Ich habe auf http://spatialreference.org/ geschaut, aber noch nichts gefunden. Google ist wenig aufgetaucht. Ich bin ratlos Grundsätzlich möchte ich sicherstellen, dass eine Funktion, die Meter als Distanz zurückgibt, Meter entlang eines großen Kreises auf einer Kugel ist.
Allgemeiner wäre auch ein Rat für die Verwendung von Himmelskoordinaten in einer räumlichen Datenbank wünschenswert.
Habe ich mich geirrt, als ich PostGIS gewählt habe?
Gibt es weitaus bessere kommerzielle Möglichkeiten?
FOSS Entscheidungen?
Ich benutze PostGIS 1.5.2. Ich habe PostGIS 2.0 noch nicht ausprobiert. Ich bin gespannt, ob die Funktion ST_CoveredBy mit einem POLYGON und einem MULTIPOLYGON vom Typ Geographie funktioniert. Wenn jemand 2.0 ausführt, können Sie mir sagen, ob Sie den gleichen Fehler wie diesen erhalten:
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
Ich habe PostGIS 2.0 ausprobiert. Diese Funktion kann nur für Punkte und Polygone verwendet werden, nicht für allgemeinere Formen.