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.