WKT और Proj4 स्ट्रिंग के बीच प्रोग्रामेटिक रूप से कन्वर्ट करने का सबसे अच्छा तरीका क्या है?


14

। कभी-कभी मुझे डब्ल्यूकेटी को प्रोज 4 स्ट्रिंग में बदलने की आवश्यकता होती है, और कभी-कभी मुझे इसे वापस बदलने की आवश्यकता होती है।

क्या ऐसा करने के लिए कोई तैयार पुस्तकालय है?

जवाबों:


12

GDAL के OGR स्थानिक संदर्भ भाग को चाल करना चाहिए। 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जिसकी आवश्यकता नहीं है , जो पायथन 3 के लिए काम नहीं करता है?
डैन गुयेन

ओपी ने प्रोज 4 के बारे में पूछा। क्या आप ExportToProj4()इसके बजाय अंतिम पंक्ति में थे?
एस्ट्रोजूनलू

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 बाइंडिंग के साथ काम करती है। यहाँ यह है


धन्यवाद, लेकिन मुझे उस प्रोग्राम को करने की आवश्यकता है।
कुई पेंगफई

1
कुछ googling के बाद: spatialreference.org GDAL द्वारा संचालित है और समान कोड पथ (अधिक या कम) का उपयोग करता है, ऐसा लगता है।
दान एस।

यह दिलचस्प है
पाब्लो

0

मुझे प्राग्मैटेक्स्ट स्ट्रिंग के आधार पर कस्टम प्रोजेक्शन को प्राग्रामिक रूप से बदलने की आवश्यकता है, इसलिए इसका उपयोग किया जाता है

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)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.