-3.4e + 38 नोडटा मान के साथ क्या करना है?


17

मैं कुछ bioclimatic रेखापुंज फ़ाइलों को संसाधित करने का प्रयास कर रहा हूं, जैसे कि http://www.worldclim.org/current (बायोस्लीम सेट) से डाउनलोड किया जा सकता है । उन्हें -3.4e+38QGIS के अनुसार नियतता मान निर्धारित होता है (गालिनफो के आउटपुट को देखते हुए, यह -3.39999999999999996e+38)।

ऐसा लगता है कि गदल उपकरण इस नोडता मूल्य से निपटने में सक्षम नहीं हैं, और क्यूजीस इसे पहचानने में सक्षम नहीं लगता है। लेयर स्टाइलिंग में, -3.4e + 38 में 100% पारदर्शी के लिए एक प्रविष्टि है, लेकिन यह अभी भी ऐसे मूल्यों को प्रदर्शित करता है, भले ही "पहचानें" पिकर उन्हें मूल्य -3.4e + 38 के रूप में दिखाता है।

मैंने nodata मान को -9999 में बदलने के लिए vrt बनाने का प्रयास किया है, लेकिन यह भी काम नहीं किया है।

मैं ऐसी फाइलों को कैसे संसाधित कर सकता हूं जिनके उपयोग करने योग्य नोडता मूल्य हैं?

नोडटा मान फ़ाइल से उठाया गया पारदर्शिता स्थापित करने का कोई प्रभाव नहीं है


नए संस्करण में माना जाता है कि क्यूजीस के पास बेहतर नोडा सपोर्ट है। मेरे पास 1.8 के साथ कई "नोडाटा" मुद्दे थे (विशेषकर जब मैं हिस्टोग्राम या एक क्षेत्र के भीतर साधनों की गणना करने की कोशिश कर रहा था)।
निक

जवाबों:


4

GDAL इन मूल्यों को संभाल सकता है। वास्तव में GDAL का डिफ़ॉल्ट NoData मान आपके जैसा ही है। मुझे लगता है कि समस्या QGIS में एक अस्थायी बिंदु त्रुटि है। मुझे फ्लोटिंग पॉइंट NoData मानों के साथ एक ही समस्या है।

यदि आप GDAL का उपयोग करके NoData मान को बदलना चाहते हैं तो आप gdalwarp या शायद gdal_translate का उपयोग कर सकते हैं और वहां से एक पूर्णांक के लिए nodata मान सेट कर सकते हैं (-dstnodata और -a_nodor क्रमशः)। अनर्थ के लिए, मुझे पिछले दिनों 64 नॉट फ्लॅट रास्टर में अपने NoData मान को -999 पर सेट करने में सफलता मिली है। हालाँकि, यह देखते हुए कि हमने इस संबंध में एक अस्थायी मुद्दा जारी किया है, मैं इस बात की गारंटी नहीं देना चाहूंगा कि यह सभी मामलों में काम करेगा।


आपके उत्तर के लिए धन्यवाद, सिल्वेस्टर। मैं gdal_translate काम नहीं कर सका, gdal_translate -a_nodata -9999 input.tif output.tifहालांकि gdalwarp -dstnodata -9999 input.tif output.tifइस चाल का उपयोग किया। 9MB इनपुट फ़ाइल से, मेरा दृष्टिकोण 26MB फ़ाइल के रूप में परिणत हुआ, जबकि गालवडप में 52MB आउटपुट फ़ाइल थी। हालाँकि, यदि रेखापुंज में फ्लोट मान होते हैं, तो मेरा दृष्टिकोण यह काम नहीं करेगा जहाँ यह होगा।
रुडिवोनेस्टेन 14

क्या आपने जाँच की है कि क्या इसके लिए QGIS बग ट्रैकर में एक खुला टिकट है?
UnderDark

1
डेटा ब्लोट या तो अधिक पिक्सेल गहराई (63-बिट बनाम 16 बिट, कहते हैं) का उपयोग करने के कारण हो सकता है या मूल रूप से जेपीईजी होने के कारण हो सकता है और आपका नया परिणाम टीआईएफएफ हो सकता है। @underdark - क्षमा करें! नहीं, मैंने चेक नहीं किया है कि कोई ओपन टिकट है या नहीं।
मप्पाग्नोसिस 16

@underdark मुझे इस से मेल खाते हुए टिकट नहीं मिला, इसलिए मैंने एक बग रिपोर्ट ( hub.qgis.org/issues/6786 ) जोड़ी
रुडिवोस्ताडेन

1
छोटे फ़ाइल आकार के लिए, आपको बस जोड़ना होगा -co COMPRESS=LZW
j00000ue

11

मैं इस समस्या के लिए डेटा स्वरूप को फ़्लैट 32 से Int16 में कनवर्ट करके वर्कअराउंड खोजने में कामयाब रहा। न्यूनतम मूल्य तब -32768 है और इसे नोडटा मान के रूप में संसाधित किया जा सकता है। निम्नलिखित कमांड ने चाल चली:

gdal_translate -ot Int16 -a_nodata -32768 input.tif output.tif

वहाँ शायद एक बेहतर समाधान है, लेकिन यह मेरी तत्काल समस्या को कम से कम हल करता है।

nodata ने सही ढंग से उठाया


0

इस प्रश्न का उत्तर भी शायद इस समस्या को हल करेगा: QGIS में एक अलग संख्या में -3.40282347e + 38 के नोडटा पिक्सेल बदलना

सारांश में, आप मूल्यों को बदलने के लिए संसाधन टूलबॉक्स से r.null का उपयोग कर सकते हैं।


0

आप gdal_calc.py input.tif --outfile = output.tif --calc = "A * (A> 0)" --NDDVValue = 0 आज़मा सकते हैं

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