क्यूजीआईएस फील्ड कैलकुलेटर में उपयोग किए जाने वाले बचत समीकरण?


10

Im एक नए परिकलित बिंदु के कुछ मूल्यों की गणना करने की कोशिश कर रहा है। इसलिए मैं मानों को निर्धारित करने के लिए समीकरण लिखने के लिए फ़ील्ड कैलकुलेटर का उपयोग करता हूं।

क्या उस समीकरण को सहेजने का कोई तरीका है, ताकि अगर और जब मैं एक नया काम शुरू करूं, तो मुझे उसे वापस नहीं लेना पड़ेगा?

कुछ इसी तरह कि आप किस तरह से अंक के लिए शैलियों और सहजीवन को बचा सकते हैं।


यह एक अच्छा फीचर अनुरोध है और इसे जोड़ना काफी आसान होगा।
नाथन डब्ल्यू

जवाबों:


5

QGIS टैब "हाल" के तहत फ़ील्ड कैलकुलेटर में उपयोग किए गए अंतिम समीकरण को बचाता है जहां आप इसे डबल-क्लिक करके पुन: उपयोग कर सकते हैं

क्षेत्र कैल्क की img


बाद में ओपी ने अन्य समीकरणों का उपयोग नहीं किया, तो यह सही है। लेकिन यह तब तक गायब हो जाएगा जब ओपी नए समीकरणों का उपयोग करेगा। Recentकंटेनर सिर्फ अस्थायी रूप से है।
अहमदनब सिप २५'१

5

आप एक नए फ़ंक्शन में अपना समीकरण लिख सकते हैं, और फिर आपको केवल गणना को फिर से लागू करने के लिए फ़ंक्शन को कॉल करना होगा।

फ़ील्ड कैलकुलेटर खोलें, Function Editorटैब पर क्लिक करें , new fileफिर फ़ंक्शन को संपादित करें। का चयन करें load। ध्यान दें कि okइस बिंदु पर उपलब्ध नहीं होगा।

Expressionटैब पर वापस जाएं , customफ़ंक्शन समूह का चयन करें और अपने फ़ंक्शन पर डबल क्लिक करें। अद्यतन किए जाने वाले फ़ील्ड का चयन करें, और हिट करें ok


यदि आप केवल फ़ील्ड मान और स्थिरांक का उपयोग करना चाहते हैं, तो आप डिफ़ॉल्ट फ़ंक्शन हस्ताक्षर को संपादित कर सकते हैं, जो इसके साथ शुरू होता है value1। मेरे उदाहरण में मैंने इसे हटा दिया है, लेकिन आप नए तर्कों को पारित करने के लिए इस क्षेत्र का उपयोग कर सकते हैं।

आप तब फ़ीचर फ़ील्ड मानों का उपयोग कर सकते हैं feature["fieldName"].... इस फ़ंक्शन को केवल उक्त फ़ील्ड वाली परतों पर कॉल करने के लिए लापरवाही बरतें!

@qgsfunction(args='auto', group='Custom')
def funcTestCalc( feature, parent):
    return feature["fieldA"]+feature["fieldB"];

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


3

इसके अतिरिक्त @LaughU के समाधान से, आप किसी भी फ़ील्ड कैलकुलेटर ऑपरेशन को ग्राफ़िकल मॉडल में शामिल कर सकते हैं और फिर मॉडल को सहेज और चला सकते हैं। इसके लिए आपके कॉलम नामों की आवश्यकता हमेशा एक जैसी होनी चाहिए।


2

यदि आप किसी मौजूदा परत में एक नया बिंदु जोड़ रहे हैं, और आप उस बिंदु के लिए उसी गणना को चलाना चाहते हैं, जो अन्य सभी बिंदुओं के लिए है, तो यहां दो उपयोगी विशेषताएं हैं:

आभासी क्षेत्र

एक आभासी क्षेत्र स्वचालित रूप से हर नई विशेषता के लिए एक अभिव्यक्ति की गणना करता है। इसे नियमित रूप से अपडेट भी किया जाता है। इसलिए, उदाहरण के लिए, "अक्षांश" नामक एक आभासी क्षेत्र के लिए आप अभिव्यक्ति का उपयोग कर सकते हैं $y

वर्चुअल फ़ील्ड के पेशेवरों और विपक्ष:

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

डिफ़ॉल्ट फ़ील्ड मान के साथ नियमित फ़ील्ड

आप अभिव्यक्ति के आधार पर डिफ़ॉल्ट मान रखने के लिए फ़ील्ड सेट कर सकते हैं। जब आप एक नया बिंदु बनाते हैं, तो इसकी विशेषता डिफ़ॉल्ट मान के साथ स्वतः भर जाएगी। आप विशेषता मान को बदल सकते हैं। यह स्वचालित रूप से अपडेट नहीं है। *

डिफ़ॉल्ट फ़ील्ड मानों के पेशेवरों और विपक्ष:

  • जब भी आप एक नया बिंदु जोड़ते हैं, तो यह स्वचालित रूप से इस फ़ील्ड में जोड़े गए अभिव्यक्ति का आउटपुट होगा।
  • स्वचालित रूप से अपडेट नहीं किया गया। उदाहरण में इसका मतलब है कि यदि आप एक मौजूदा बिंदु ले गए हैं, तो इसका "अक्षांश" मान अपडेट नहीं किया जाएगा।
  • आप इस फ़ील्ड का मान बदल सकते हैं।
  • आकृति के भाग के रूप में सहेजा गया। इसलिए यदि आप एक अलग परियोजना में परत खोलते हैं, तो इसकी विशेषता तालिका में यह क्षेत्र होगा।

* QGIS 3.2 में, डिफ़ॉल्ट फ़ील्ड मान (वैकल्पिक रूप से) "अपडेट पर डिफ़ॉल्ट मान लागू करने के लिए" सेट किया जा सकता है। इस विकल्प के साथ, यदि आप एक बिंदु को स्थानांतरित करते हैं, जहां डिफ़ॉल्ट मान $yवर्तमान मूल्य को नए y- समन्वय से बदल दिया जाएगा।


मुझे लगता है कि QGIS 3.2 में डिफ़ॉल्ट फ़ील्ड मान को ऑटो-अपडेट में सेट किया जा सकता है।
she_weeds

@she_weeds आपको इंगित करने के लिए धन्यवाद। मैं उस जानकारी को शामिल करने के लिए अपने उत्तर को अपडेट करूंगा।
csk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.