वेक्टर डेटा से सरल छवि बनाना


14

क्या कोई किसी व्यक्ति को एक आकृति बनाने के लिए एक त्वरित (और अधिमानतः खुला स्रोत) तरीका सुझा सकता है। उदाहरण के लिए, मेरे पास पार्सल सीमाओं वाली एक आकृति है, मैं इन पार्सल को दर्शाते हुए एक png फ़ाइल बनाना चाहता हूं। इस छवि के लिए आवश्यक सिम्बोलॉजी नंगे-हड्डियों (ठोस रूपरेखा और भरण) होगी।

मुझे पता है कि MapServer से shp2img ट्रिक करेगा। अगर कुछ और उपलब्ध है तो मैं बस उत्सुक हूं।

पूर्व-संकलित टूल या एपीआई / sdks के किसी भी संदर्भ का स्वागत है।


शायद इस सवाल को "वेक्टर डेटा (जैसे आकार) से सरल छवि बनाना" को दोहराया जा सकता है ताकि यह अधिक सामान्य प्रश्न हो? आपको अभी भी अपना उत्तर मिलता है, लेकिन अन्य लोगों के लिए भी प्रोत्साहन / उत्तर देखने के लिए अधिक है। मैं एक ही कारण के लिए "और खुले स्रोत" को "अधिमानतः खुला स्रोत" बदलने का भी सुझाव दूंगा।
मार्क आयरलैंड

अच्छे अंक, संपादन लागू होते हैं।
user890

जवाबों:


15

आप अजगर (मॉड्यूल: उपयोग कर सकते हैं Shapley , GDAL / OGR , numpy , matplotlib ) और GDAL / OGR , लगभग किसी भी वेक्टर डेटा souce से छवि आकर्षित करने के लिए आप मामले शेपफ़ाइल। शायद इससे आपको मदद मिलेगी।

उदाहरण:

from shapely.geometry import Polygon
from shapely.wkb import loads
from osgeo import ogr
from matplotlib import pyplot

def drawPoligon(poligon,graf):
    xLista,yLista = poligon.exterior.xy
    graf.fill(xLista,yLista,"y")
    graf.plot(xLista,yLista, "k-")

fig = pyplot.figure(figsize=(4, 4),dpi=180)
ax = fig.add_subplot(111)
file1 = ogr.Open("d:\\temp02\\datafile.shp")

layer = file1.GetLayerByName("datafile")
parcel = layer.GetNextFeature()

while parcel is not None:
    geometryParcel = loads(parcel.GetGeometryRef().ExportToWkb())
    drawPoligon(geometryParcel , ax)
    parcel = layer.GetNextFeature()


pyplot.savefig('datafile.png')

बिल्कुल वही जो मुझे चाहिए था। यह दृष्टिकोण विशेष रूप से उपयोगी है क्योंकि यह आकार के डेटा स्रोतों से बंधा नहीं है। धन्यवाद।
user890

6

त्वरित, सस्ता (और गंदा):

  • अपने आकार की फ़ाइल को एक qgis , udig , openjump या किसी भी अन्य मुक्त GIS के साथ खोलें और प्रतीक दें ,
  • प्रेस " प्रिंट स्क्रीन " बटन,
  • जिम्प में पेस्ट करें और पीएनजी फ़ाइल के रूप में सहेजें।

दोष: निश्चित रूप से, छवि रिज़ॉल्यूशन स्क्रीन की तुलना में बेहतर नहीं हो सकता है।


3

GeoTools http://geotools.org इसमें आपके द्वारा किए जाने वाले सभी बिट्स शामिल हैं, अगर किसी को पहले से ही ऐसा करने के लिए कोड नहीं है तो मुझे आश्चर्य होगा।


2

मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप क्या मतलब है। क्या आपका मतलब है कुछ आसान स्थापित करने के लिए या कुछ ऐसा है जिसे एक बार इंस्टॉल करने के बाद उपयोग करना आसान है।

आप MapServer और shp2img का उल्लेख करते हैं। यदि आपके पास MapServer स्थापित है, तो आप शायद एक बहुत ही सरल MapScript (पायथन या php) स्क्रिप्ट लिख सकते हैं जो कि आकृतिफाइल्स के एक फ़ोल्डर के माध्यम से लूप करेगा और डिफ़ॉल्ट सिम्बोलॉजी के साथ उनमें से छवियों को प्रस्तुत करेगा।


1

यह प्रश्न पहले से ही उत्तर दिया गया है, लेकिन मैं कुछ अतिरिक्त जानकारी डालूंगा, क्योंकि यह किसी के लिए उपयोगी हो सकता है। इस मेलिंग लिस्ट में बताया गया है कि कैसे SHP को इमेजेस में जोड़ें, और वर्तमान में मैं इसे पूरा करने के लिए काम कर रहा हूं: http://lists.osgeo.org/pipermail/qgis-user/2010-ctct/010239.html


0

मैंने दो अलग-अलग तरीकों का उपयोग करके थोड़ी देर पहले इस सॉल्यूशन का दस्तावेजीकरण किया।

शुद्ध अजगर का उपयोग करने वाला एक जो पायथन कहीं भी चलेगा: http://geospatialpython.com/2010/12/rasterizing-shapefiles-2-pure-python.html

और एक पायथन इमेजिंग लाइब्रेरी का उपयोग कर रहा है: http://geospatialpython.com/2010/12/rasterizing-shapefin.html

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