QGIS में विभिन्न शैलियों के साथ ऑटो-जनरेटिंग मैप छवियां? [बन्द है]


9

मुझे QGIS में एक सरल नक्शा मिला है, जिसमें केवल 1 परत है जिसमें 10+ विशेषताएं हैं। अब मुझे (प्रोग्रामिक रूप से) एक ही क्षेत्र के लगभग 200 अलग-अलग JPEG मैप चित्र बनाने की आवश्यकता है। प्रत्येक मानचित्र में बहुत समान मानचित्र विस्तार और सभी सुविधाएँ दृश्यमान होनी चाहिए। हालाँकि, प्रत्येक जेनरेट किए गए मैप में फीचर्स में अलग-अलग रंग होने चाहिए। विस्तार से, मेरे पास एक CSV फ़ाइल है जिसमें प्रत्येक सुविधा के लिए वर्गीकृत रंग (प्रत्येक छवि के लिए 1 पंक्ति, 1 कॉलम और प्रति रंग), कुछ इस तरह है:

"A","B","C","D","E","F" (header line, 6 columns in this file)
"#000000","#FF0000","#00FF00","#0000FF","#0000FF","#808080"
"#000000","#FF0000","#FF0000","#00FF00","#00FF00","#808080"
"#FF0000","#FF0000","#000000","#800080","#FFFFFF","#FFFF00"
...

मेरी वर्तमान योजना इस CSV फ़ाइल के आधार पर 200 अलग-अलग QML फ़ाइलों को बनाने के लिए Perl या समान का उपयोग करने की है। फिर मैंने एक पायथन स्क्रिप्ट लिखने की योजना बनाई

  1. QML फ़ाइलों के माध्यम से लूप
  2. प्रत्येक QML फ़ाइल खोलें, एक बार में, और इससे परत शैली लागू करें
  3. मानचित्र संगीतकार खोलें और रेखापुंज छवि फ़ाइल सहेजें
  4. मानचित्र संगीतकार को बंद करें और अगले QML फ़ाइल में कूदें

अब मैं किसी भी इनपुट के बारे में पूछ रहा हूँ:

  • क्या यह QGIS + पायथन के भीतर किया जा सकता है?
  • मेरे लक्ष्य को प्राप्त करने का कोई बेहतर तरीका?
  • इसे प्राप्त करने के लिए किसी भी मौजूदा स्रोत कोड या प्लगइन पर संकेत?

जवाबों:


21

यह बिना किसी अजगर प्रोग्रामिंग के क्यूजीआईएस में संभव है, लेकिन आपको क्यूजीआईएस 2.6 के वर्तमान विकास स्नैपशॉट की आवश्यकता होगी क्योंकि यह 2.4 जारी होने के बाद जोड़े गए विशेषताओं पर निर्भर करता है। यहाँ आवश्यक कदम हैं:

  • वांछित के रूप में अपने नक्शे परतों को सेट करें (सुविधाओं के रंग की अनदेखी करना जिसमें गतिशील रंग भरना होगा)

  • एक नया प्रिंट कंपोजर बनाएँ। संरचना में एक मानचित्र आइटम जोड़ें और वांछित के रूप में इसके अंश सेट करें।

  • अपनी CSV फ़ाइल को वांछित मानचित्र आउटपुट फीचर रंगों से आयात करें

  • प्रिंट कंपोज़र में, आयातित CSV परत को "एटलस कवरेज लेयर" ("एटलस जेनरेशन" टैब के लिए देखें) के रूप में सेट करें। (यदि आपने अभी एटलस का निर्यात किया है, तो आपको ठीक उसी नक्शे की 200 प्रतियां मिलनी चाहिए ...)

यहां छवि विवरण दर्ज करें

  • अगला, आपको अपनी सुविधाओं को सेटअप करने की आवश्यकता है ताकि वे आपके CSV फ़ाइल में सूचीबद्ध रंगों के साथ स्टाइल किए जा सकें। यह "डेटा निर्धारित गुण" बटन के माध्यम से परत की शैली टैब के नीचे किया जाता है:

यहां छवि विवरण दर्ज करें

  • आपको "रंग" संपत्ति पर टिक करने की आवश्यकता होगी, और फिर अभिव्यक्ति संपादक को खोलने के लिए "ई" बटन पर क्लिक करें।

  • अभिव्यक्ति कुछ इस तरह होगी:

    attribute(  $atlasfeature , 'A' )
    

यहां छवि विवरण दर्ज करें

  • मूल रूप से, यह अभिव्यक्ति वर्तमान एटलस सुविधा से "ए" कॉलम में संग्रहीत मूल्य को पुनः प्राप्त करेगी। चूंकि आपके मामले में यह मूल्य एक रंग होगा (उदाहरण # FF0000), इस रंग का उपयोग करके स्टाइल को स्टाइल किया जाएगा। (यह अभिव्यक्ति वह भाग है जो QGIS> 2.4 पर निर्भर करता है - 2.4 जारी होने के बाद "विशेषता" फ़ंक्शन जोड़ा गया था)।

  • अन्य विशेषताओं को समान तरीके से स्टाइल करें, लेकिन वांछित रूप में 'बी', 'सी', 'डी', आदि कॉलम का उपयोग करें

  • प्रिंट कंपोजर में वापस, आप टूलबार पर तीर का उपयोग करके अपनी CSV फ़ाइल से पंक्तियों के माध्यम से एटलस पूर्वावलोकन (एटलस मेनू -> पूर्वावलोकन एटलस) को सक्षम कर सकते हैं। यदि सब कुछ सही लगता है, तो एटलस मेनू में विकल्पों का उपयोग करके एटलस को निर्यात करें ... और आपका काम हो गया! कोई प्रोग्रामिंग आवश्यक नहीं है!

आउटपुट के उदाहरण:

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

आदि आदि

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