Estoy haciendo un proyecto de astronomía. Quiero que la información sobre nuestras imágenes se almacene en una base de datos con capacidad espacial. Esto, pensaría, debería ser un caso especial muy fácil para las funciones GIS porque el cielo puede ser tratado como perfectamente esférico, y no requiere un tratamiento elíptico como la superficie de la tierra. Desgraciadamente, todavía no he encontrado la manera de hacerlo y he estado esquivando minas con funciones espaciales que utilizan una tierra elíptica. (Prácticamente cualquier función que devuelva metros en lugar de grados puede estar utilizando un cálculo elíptico. Por suerte, muchas de las funciones de PostGIS que he necesitado parecen tener implementaciones incompletas en las que la documentación indica explícitamente que los resultados devueltos son para una esfera y no para el elipsoide. Pero eso puede cambiar con futuras versiones, lo que es motivo de preocupación).
Antecedentes: Actualmente estoy utilizando PostgreSQL con PostGIS y coordenadas WGS 84 (SRID=4326). Esto funciona bastante bien. Estoy creando un POLÍGONO cerrado a partir de la ascensión recta y la declinación de las cuatro esquinas de la imagen. Tengo muchas imágenes (10k o más), que cubren una gran área del cielo. Cada imagen tiene un cuadrado de aproximadamente 1 grado. A partir del conjunto de estas imágenes, estoy haciendo mosaicos de pequeños subconjuntos de 15 a 30 imágenes. Cada mosaico tiene un cuadrado de aproximadamente 1,5 grados.
Actualmente, estoy almacenando la geografía de los mosaicos como un MULTIPOLÍGONO que consiste en todos los POLÍGONOS correspondientes a cada imagen que entró en el mosaico. [Una mejor solución sería crear un único POLÍGONO que describa el perímetro de la unión de todos los polígonos individuales. No sé si esto se puede hacer en coordenadas esféricas (es decir, que el tipo de geografía). Esto también sería una respuesta interesante para mí también]. La línea de la fecha y los polos celestes pueden estar incluidos en una imagen en el conjunto de datos, por lo que he estado evitando proyectar a coordenadas planas en la medida de lo posible.
¿Qué sistema de coordenadas debo utilizar para coordenadas celestes con las funciones de PostGIS?
He mirado http://spatialreference.org/ pero no he encontrado nada hasta ahora. En Google se ha encontrado poco. Estoy perplejo. Básicamente, quiero asegurarme de que si una función devuelve metros como distancia, son metros a lo largo de un gran círculo en una esfera.
Estoy utilizando PostGIS 1.5.2. Todavía no he probado PostGIS 2.0. Tengo curiosidad por saber si la función ST_CoveredBy funciona con un POLÍGONO y un MULTIPOLÍGONO de tipo geográfico. Si alguien está ejecutando la versión 2.0, podría decirme si obtiene el mismo error que este:
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
He probado PostGIS 2.0. Esta función sigue funcionando sólo con puntos y polígonos, no con formas más generales.