Я делаю астрономический проект. Я хочу, чтобы информация о наших изображениях сохранялась в пространственно включенной базе данных. Это, я думаю, должно быть очень простым особым случаем для ГИС-функций, потому что небо можно рассматривать как совершенно сферическое и не требует эллиптической обработки, как поверхность земли. К сожалению, я еще не нашел способ сделать это, и я уклоняюсь от шахт с пространственными функциями, которые используют эллиптическую землю. (Практически любая функция, которая возвращает метры вместо градусов, может использовать эллиптическое вычисление. К счастью, многие из необходимых мне функций PostGIS имеют неполные реализации, где в документации явно говорится, что возвращаемые результаты относятся к сфере, а не к эллипсоид. Но это может измениться с будущими версиями, что является причиной для беспокойства.)
Справочная информация: в настоящее время я использую PostgreSQL с координатами PostGIS и WGS 84 (SRID = 4326). Это работает довольно хорошо. Я создаю замкнутый ПОЛИГОН из правильного восхождения и склонения четырех углов изображения. У меня есть много изображений (10k или более), охватывающих большую область неба. Каждое изображение около 1 градуса. Из набора этих изображений я делаю мозаику из небольших подмножеств от 15 до 30 изображений. Каждая мозаика имеет площадь около 1,5 градуса.
В настоящее время я сохраняю географию мозаик как МНОГОПОЛИГОН, который состоит из всех ПОЛИГОНОВ, соответствующих каждому изображению, которое вошло в мозаику. [Лучшим решением было бы создать один полигон, который описывает периметр объединения всех отдельных полигонов. Я не знаю, может ли это быть сделано в сферических координатах (то есть, что тип географии). Это также было бы интересным ответом и для меня.] Линия даты и небесные полюса могут быть включены в изображение в наборе данных, поэтому я избегаю проецирования на плоские координаты в максимально возможной степени.
Какую систему координат я должен использовать для небесных координат с функциями PostGIS?
Я посмотрел на http://spatialreference.org/, но пока не нашел ничего. Гугл появился мало. Я в тупике. По сути, я хочу убедиться, что если функция возвращает метры как расстояние, то это метры вдоль большого круга на сфере.
В более общем смысле, некоторые советы по использованию небесных координат в пространственной базе данных также будут оценены.
Я ошибся, выбрав PostGIS?
Есть ли намного более высокий коммерческий выбор?
Выбор FOSS?
Я использую PostGIS 1.5.2. Я еще не пробовал PostGIS 2.0. Мне любопытно, если функция ST_CoveredBy работает с POLYGON и MULTIPOLYGON типа география. Если кто-нибудь использует 2.0, не могли бы вы сказать мне, если вы получаете ту же ошибку, как это:
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
Я попробовал PostGIS 2.0. Эта функция все еще работает только с точками и полигонами, а не с более общими фигурами.