天体座標の地理データを保存するには、どの座標系を使用する必要がありますか?


37

私は天文学プロジェクトをしています。画像に関する情報を空間的に有効化されたデータベースに保存したい。空は完全に球体として扱うことができ、地球の表面のような楕円形の処理を必要としないため、これはGIS機能の非常に簡単な特別なケースになるはずです。残念ながら、私はまだこれを行う方法を見つけていませんし、楕円地球を使用する空間関数で地雷をかわしています。(度ではなくメートルを返すほとんどの関数は、楕円計算を使用している可能性があります。幸いなことに、必要なPostGIS関数の多くは、返された結果が球ではなく楕円体。しかし、それは将来のバージョンで変わる可能性があり、懸念の原因です)

背景:現在、PostGISおよびWGS 84座標(SRID = 4326)でPostgreSQLを使用しています。これはかなりうまくいきます。画像の四隅の赤経と赤緯から閉じたポリゴンを作成しています。たくさんの画像(10k以上)があり、空の広い領域をカバーしています。各画像は約1度の正方形です。これらの画像のセットから、15〜30個の画像の小さなサブセットからモザイクを作成しています。各モザイクは約1.5度の正方形です。

現在、モザイクの地理を、モザイクに入った各画像に対応するすべてのポリゴンで構成されるマルチポリゴンとして保存しています。[より良い解決策は、すべての個々のポリゴンの結合の周囲を記述する単一のPOLYGONを作成することです。これが球面座標(つまり、地理タイプ)で実行できるかどうかはわかりません。これも私にとって興味深い答えです。]日付変更線と天の極がデータセットの画像に含まれている可能性があるため、可能な限り平面座標への投影を避けています。

PostGIS関数を使用して天体座標に使用する必要がある座標系は何ですか?

私はhttp://spatialreference.org/を見まし たが、これまでのところ何も見つかりませんでした。Googleはほとんど姿を見せていない。私は困惑しています。基本的に、関数が距離としてメートルを返す場合、それは球上の大円に沿ったメートルであることを確認したいです。

より一般的には、空間データベースで天体座標を使用するためのアドバイスも歓迎します。

PostGISを選択することでエラーが発生しましたか?

はるかに優れた商業的選択肢はありますか?

FOSSの選択?


PostGIS 1.5.2を使用しています。PostGIS 2.0はまだ試していません。ST_CoveredBy関数がタイプgeographyの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を試しました。この関数は、ポイントとポリゴンでのみ機能し、より一般的な形状では機能しません。


これはwcs2kmlの機能と似ていないのですか?もしそうなら、多分あなたはあなたの使用のためにいくつかのコードを適応させることができます。code.google.com/p/wcs2kml
カーク

このUSGSのプレゼンテーション「PLANETARY GIS 101」に出会ったところ、プロジェクションに関するスライドが少しありましたが、それが役に立つかもしれません。
jonatr

マルチポリゴンを作成するのではなく、グループIDを共有する複数のポリゴンを作成してみませんか?
ラファエル14年

回答:


17

天文データを処理するために特別に設計されたpgsphereをご覧ください。

http://pgsphere.projects.postgresql.org/


これは非常に良いものです。残念ながら、「smultipoly」ジオメトリクラスをサポートしていないようです。しかし、このプロジェクトの素晴らしいヘッズアップに感謝します。
博士人人II

1
このリンクをたどろうとすると、「このサーバーへのアクセス/アクセス許可がありません」と表示されます。
PolyGeo

12

天体の位置をPostGISに保存することができます-独自の座標系を作成するだけです!

PostGIS spatial_ref_sysは、通常、データベースの初期化時に設定されるテーブルから、すべての座標系と投影情報を取得します。しかし、あなたがあなた自身のプロジェクションを追加するのを止めるものは何もありません-実際、それは実際に奨励されています。

ほぼすべてのGIS /空間データベース/マッピング製品と同様に、PostGISは投影のニーズにProj4を使用するため、Proj4文字列をspatial_ref_sysテーブルに配置する必要があります。Proj4形式の単純な球状SRSは次のとおり+proj=longlat +ellps=sphere +no_defsです。PostGISにはWKTバージョンのプロジェクションも必要ですが、それは単なるきれいなテキストとして使用されていると思います。

また、新しいSRSの一意のSRIDと「権限」を作成する必要がありますが、これは任意のものです。

したがって、新しいエントリをに挿入するにはspatial_ref_sys、次のSQLを実行します。

insert into spatial_ref_sys values(40000, 'ME', 1, 
'GEOGCS["Normal Sphere (r=6370997)",DATUM["unknown",SPHEROID["sphere",6370997,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]]',
'+proj=longlat +ellps=sphere +no_defs');

SRIDとして40000を選択したことに注意してください-これは、天体テーブルで使用する番号です。権限は「ME」ですが、これはあなたの名前、組織、または実際には最大256文字です。次の番号1は、そのエントリの、機関に対する相対的な一意の識別子です。理論的には、このエントリをME:1と呼ぶこともできますが、すべてのPostGIS処理では、その一意のSRIDが重要です。GDALとPythonで生成したWKTエントリ:

import osgeo.osr as osr
srs = osr.SpatialReference()
srs.ImportFromProj4('+proj=longlat +ellps=sphere +no_defs')
srs.ExportToWkt()

ここで注意点:

  • 赤経は時間角ではなく度で指定する必要があります。
  • 多くのPostGIS関数は、投影されていないデータ用に設計されていませんが、WGS84 long / latに地上データがある場合は同じ問題です。
  • 現状では、データは地心的です。観測的な作業をしたい場合は、PyEphemのようなものを使用することをお勧めします。
  • このSRSでデータを作成しようとしていないので、YMMVです。
  • でも今はこれにとても興味があるので、ヒッパルチョスのカタログをインポートするのをいじる必要があるかもしれません...

2
+1。HYGデータベースのバージョンをロードし、右アセンションに15を掛け、180を引いて標準GISの「経度」に変換し、任意の完全に球形のデータムを使用することで、空のマッピングを開始できます。表示とマッピングの場合、ノモニック投影と正投影はかなり標準です。
whuber

@whuber:そして緯度?DECは何ですか?
マグノC 14年

@MagnoCはい、それは正しいです。フィールドは、リンク先のWebサイトで説明されています。少し下にスクロールしてください。それを確認するために、「小さな」バージョン(31K星のみ)を3D表示プログラムにダンプし、デカルト座標(単位天球上の距離を無視)に変換してプロットしました。
whuber

@whuber:「RA、12月:2000.0のエポックの星の赤経と赤緯。1950.0座標を使用するグリーゼカタログにのみ存在する星は、これらの座標が2000年に歳差運動していた」Lat / Lonについてはあまり明確ではありません。それで、LON = (RA*15) - 180そしてLAT = DEC
マグノC 14年

@MagnoC en.wikipedia.org/wiki/Equatorial_coordinate_systemがこれを整理するのに役立つことがわかりました。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.