WKTとProj4文字列をプログラムで変換する最良の方法は何ですか?


14

一部のシェープファイルには.prjファイルが関連付けられており、.prjファイルにはシェープファイルの投影情報がWKT形式で含まれています。WKTをproj4文字列に変換する必要がある場合もあれば、元に戻す必要がある場合もあります。

これを行うための既製のライブラリはありますか?

回答:


12

GDALのOGR Spatial Reference部分がこのトリックを行うはずです。capootiはシェープファイルからWKTへの翻訳を実行する方法を示す別の質問に対する優れた回答を提供しましたクラス参照をチェックアウトすることもできます。逆は単純です:

from osgeo import osr

srs = osr.SpatialReference()
wkt_text = 'GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",' \
           'SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],'\
           'UNIT["Degree",0.017453292519943295]]'
# Imports WKT to Spatial Reference Object
srs.ImportFromWkt(wkt_text)
srs.MorphToESRI() # converts the WKT to an ESRI-compatible format
print "ESRI compatible WKT for use as .prj:" % srs.ExportToWkt()

誰もが必要としないソリューションを持っていますがosgeo、Python 3では機能しないようです?
ダングエン

OPはProj4について尋ねました。ExportToProj4()代わりに最後の行で意味しましたか?
-astrojuanlu


1

ライブラリは知りませんが、このサイトを使用して翻訳を取得できます:http : //spatialreference.org/

編集:私はそれを行うためにOGRのPythonバインディングで動作するPythonスクリプトを見つけました。ここにあります。


おかげで、プログラムでそれをする必要があります。
ui Pengfei崔鹏飞

1
いくつかのグーグル検索の後、spatialreference.orgはGDALによっても機能し、同じコードパスを(多かれ少なかれ)使用しているようです。
ダンS.

それは面白いです
パブロ

0

私はproj4text文字列に基づいてカスタム投影に実際に変換する必要があるので、

projection = '+proj=lcc +lat_1=53 +lat_2=70 +lat_0=0 +lon_0=136 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs'

source = osr.SpatialReference() source.ImportFromEPSG(4326) target = osr.SpatialReference() target.ImportFromProj4(projection) transform = osr.CoordinateTransformation(source, target)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.