บาง Shapefiles มีไฟล์. prj ที่เชื่อมโยงกับมันและไฟล์. prj มีข้อมูลการฉายของ Shapefile ในรูปแบบของ WKT บางครั้งฉันต้องแปลง WKT เป็นสตริง proj4 และบางครั้งฉันต้องแปลงกลับ
มีห้องสมุดสำเร็จรูปที่จะทำเช่นนี้หรือไม่?
บาง Shapefiles มีไฟล์. prj ที่เชื่อมโยงกับมันและไฟล์. prj มีข้อมูลการฉายของ Shapefile ในรูปแบบของ WKT บางครั้งฉันต้องแปลง WKT เป็นสตริง proj4 และบางครั้งฉันต้องแปลงกลับ
มีห้องสมุดสำเร็จรูปที่จะทำเช่นนี้หรือไม่?
คำตอบ:
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()
ExportToProj4()
ในบรรทัดสุดท้ายแทนหรือไม่?
คุณยังสามารถใช้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
ฉันไม่รู้จักห้องสมุดใด ๆ แต่คุณสามารถใช้เว็บไซต์นี้เพื่อรับการแปล: http://spatialreference.org/
แก้ไข: ฉันพบสคริปต์ python ที่ทำงานกับ ogr python bindings เพื่อทำสิ่งนั้น นี่ไง
ฉันต้องแปลง 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)
osgeo
ซึ่งไม่สามารถใช้กับ Python 3 ได้?