프로그래밍 방식으로 WKT와 Proj4 문자열을 변환하는 가장 좋은 방법은 무엇입니까?


14

일부 shapefile에는 .prj 파일이 연결되어 있으며 .prj 파일에는 WKT 형식의 shapefile 투영 정보가 포함되어 있습니다. 때로는 WKT를 proj4 문자열로 변환해야하며 때로는 다시 변환해야합니다.

이를 위해 기성품 라이브러리가 있습니까?

답변:


12

GDAL의 OGR Spatial Reference 부분은 트릭을 수행해야합니다. capooti 는 shapefile에서 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에서는 작동하지 않는 것 같습니다.
Dan Nguyen

OP는 Proj4에 대해 물었습니다. ExportToProj4()마지막 줄 을 의미 했습니까 ?
astrojuanlu

2

PyCRS를 사용할 수도 있습니다 .

import pycrs

print(pycrs.parser.from_esri_wkt(wkt_text).to_proj4())
# +proj=longlat +ellps=WGS84 +a=6378137.0 +f=298.257223563 +pm=0.0  +no_defs

1

라이브러리를 모르지만이 사이트를 사용하여 번역을 얻을 수 있습니다. http://spatialreference.org/

편집 : ogr python 바인딩과 함께 작동하는 python 스크립트를 찾았습니다. 여기 있습니다 .


고맙지 만 프로그래밍 방식으로해야합니다.
Cui Pengfei 崔鹏飞

1
인터넷 검색 후 : patialreference.org는 GDAL에 의해 구동되며 동일한 코드 경로를 사용합니다 (더 많거나 적음).
Dan S.

흥미 롭습니다
Pablo

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.