PostGISデータベースにSHPファイルを挿入しようとしていますが、データが少しずれています。これは間違ったSRIDを使用しているためだと思います。 PRJファイルの内容は次のとおりです。
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]
これはどのSRIDと関連していますか?さらに一般的には、PRJファイルにある情報に基づいてSRIDを検索するにはどうすればよいですか?すべてのSRIDとそれに対応する「geogcs」をリストするルックアップテーブルはどこかにありますか?
srid=4269
と4326を使用してインポートされたデータは、まったく同じ結果でした。
これは間違ったSRIDを使用していることを意味しますか、それともこれは予想されるエラーのマージンですか?
Shpファイルは here からのものです。
synecdoche の答えを詳しく説明するために、SRIDは「EPSG」コードと呼ばれることがあります。 SRID/EPSGコードは、投影のWell-Known-Text表現の事実上の省略形です。
SRIDテーブルでクイック検索を実行して、完全一致または類似の一致が見つかるかどうかを確認できます。SELECT srid, srtext, proj4text FROM spatial_ref_sys WHERE srtext ILIKE '%BLAH%'
上記は http://www.bostongis.com/?content_name=postgis_tut01 で見つかりました。
spatialreference.org でこれらの種類のものを検索することもできます。検索ツールは基本的なものなので、Google検索を使用してサイトを指定する必要があるかもしれませんが、結果にはESRI PRJコンテンツ、PostGIS SQL INSERT、および他の多くの表現が表示されます。
あなたのPRJは次の場所にあると思います http://spatialreference.org/ref/sr-org/15/
Prj2EPSG は、まさにこの問題を目的とした小さなWebサイトです。 PRJコンテンツに貼り付けます。一致するEPSGを見つけることが最善です。 WebサービスAPI もあります。それは正確な科学ではありません。彼らはLuceneとEPSGデータベースを使用して一致のテキスト検索を行うようです。
データはNAD83で、SRIDは4269のようです。PostGISデータベースにはspatial_ref_sys
テーブルはSRIDルックアップテーブルです。
SR269が4269(NAD83)と4326(WGS84)のデータが同じように見える場合は、何か問題があります。
GDALのOSR Pythonモジュールを使用して、コードを決定します。
from osgeo import osr
srsWkt = '''GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]'''
# Load in the projection WKT
sr = osr.SpatialReference(srsWkt)
# Try to determine the EPSG/SRID code
res = sr.AutoIdentifyEPSG()
if res == 0: # success
print('SRID=' + sr.GetAuthorityCode(None))
# SRID=4269
else:
print('Could not determine SRID')
必ずご覧ください: http://www.epsg-registry.org/
[フィルターで照会]オプションを使用して、「North American Datum 1983」と入力します。
これは-> EPSG:6269をもたらします。
これがうまくいくことを願っています。