เป็นวิธีที่ดีที่สุดในการแปลงโดยทางโปรแกรมระหว่างสตริง WKT และ Proj4 คืออะไร?


14

บาง Shapefiles มีไฟล์. prj ที่เชื่อมโยงกับมันและไฟล์. prj มีข้อมูลการฉายของ Shapefile ในรูปแบบของ WKT บางครั้งฉันต้องแปลง WKT เป็นสตริง proj4 และบางครั้งฉันต้องแปลงกลับ

มีห้องสมุดสำเร็จรูปที่จะทำเช่นนี้หรือไม่?

คำตอบ:


12

OGR Spatial Reference ส่วนหนึ่งของ GDAL ควรทำตามขั้นตอนดังกล่าว 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/

แก้ไข: ฉันพบสคริปต์ python ที่ทำงานกับ ogr python bindings เพื่อทำสิ่งนั้น นี่ไง


ขอบคุณ แต่ฉันต้องทำโดยทางโปรแกรม
Cui Pengfei 崔鹏飞

1
หลังจาก googling: spatialreference.org ได้รับการสนับสนุนโดย GDAL และใช้เส้นทางรหัสเดียวกัน (มากหรือน้อย) ดูเหมือนว่า
Dan S.

นั่นน่าสนใจ
Pablo

0

ฉันต้องแปลง pragrammatically ไปเป็นโปรเจคที่กำหนดเองตามสตริง 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.