Je fais un projet d'astronomie. Je souhaite que les informations sur nos images soient stockées dans une base de données activée spatialement. Je pense que cela devrait constituer un cas spécial très simple pour les fonctions SIG car le ciel peut être traité comme parfaitement sphérique et ne nécessite pas de traitement elliptique comme la surface de la Terre. Malheureusement, je n'ai pas encore trouvé le moyen de le faire et j'ai esquivé des mines avec des fonctions spatiales utilisant une terre elliptique. (Pratiquement toutes les fonctions qui renvoient des mètres au lieu de degrés utilisent un calcul elliptique. Heureusement, beaucoup de fonctions PostGIS dont j'ai besoin semblent avoir des implémentations incomplètes où la documentation indique explicitement que les résultats renvoyés sont pour une sphère et non pour. l’ellipsoïde. Mais cela pourrait changer avec les versions futures, ce qui est un sujet de préoccupation.)
Contexte: J'utilise actuellement PostgreSQL avec les coordonnées PostGIS et WGS 84 (SRID = 4326). Cela fonctionne assez bien. Je crée un POLYGONE fermé à partir de l'ascension droite et de la déclinaison des quatre coins de l'image. J'ai beaucoup d'images (10k ou plus), couvrant une grande partie du ciel. Chaque image correspond à environ 1 degré carré. À partir de l’ensemble de ces images, je réalise des mosaïques à partir de petits sous-ensembles de 15 à 30 images. Chaque mosaïque mesure environ 1,5 degré carré.
Actuellement, je stocke la géographie des mosaïques en tant que MULTIPOLYGONE qui comprend tous les POLYGONES correspondant à chaque image entrée dans la mosaïque. [Une meilleure solution serait de créer un POLYGONE unique décrivant le périmètre de l'union de tous les polygones individuels. Je ne sais pas si cela peut être fait en coordonnées sphériques (c'est-à-dire le type de géographie). Cela constituerait également une réponse intéressante pour moi aussi.] La ligne de date et les pôles célestes peuvent être inclus dans une image du jeu de données, de sorte que j'ai évité de projeter autant que possible vers des coordonnées planaires.
Quel système de coordonnées dois-je utiliser pour les coordonnées célestes avec les fonctions PostGIS?
J'ai regardé http://spatialreference.org/ mais je n'ai rien trouvé jusqu'à présent. Google a peu tourné. Je suis perplexe. En gros, je veux m'assurer que si une fonction renvoie des mètres en distance, elle parcourt des mètres le long d'un grand cercle sur une sphère.
Plus généralement, des conseils sur l'utilisation de coordonnées célestes dans une base de données spatiale seraient également appréciés.
Ai-je commis une erreur en choisissant PostGIS?
Y at-il des choix commerciaux de loin supérieurs?
Choix de logiciels libres?
J'utilise PostGIS 1.5.2. Je n'ai pas encore essayé PostGIS 2.0. Je suis curieux de savoir si la fonction ST_CoveredBy fonctionne avec un POLYGONE et un MULTIPOLYGONE de type geography. Si quelqu'un utilise la version 2.0, pouvez-vous me dire si vous obtenez la même erreur que celle-ci:
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
J'ai essayé PostGIS 2.0. Cette fonction ne fonctionne toujours que sur des points et des polygones, pas de formes plus générales.