कई चूहों को अधिक समान बनाते हैं


10

मैंने कुछ रिस्तेदारों को आयात किया है जो कि लगातार जुड़े रहने वाले हैं, लेकिन इसके बजाय वे उनके बीच कुछ प्रकार के बॉर्डर ग्रिड बनाते हैं। मैं यह मान सकता हूं कि यह व्यक्तिगत आपदाओं के बीच के अंशांकन का मामला है, लेकिन मुझे यकीन नहीं है कि इसे एक डेटाविज तरीके से कैसे निष्पादित किया जाए।

क्या किसी ने पहले ऐसा कुछ अनुभव किया है और शायद एक संभावित समाधान के बारे में जानते हैं ताकि सभी चूहों की समग्रता अधिक चिकनी हो।

इन सभी को भौगोलिक रूप से जुड़ा माना जाता है। इसलिए वर्ग की 'सीमाओं' की परेशानी।

मैं खिड़कियों पर क्यूजीआईएस का उपयोग कर रहा हूं।

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

जवाबों:


11
  1. आप चूहों को एक में मिलाने की कोशिश कर सकते हैं:

    • टूलबार से:

      रेखापुंज> विविध> विलय

    • प्रसंस्करण टूलबॉक्स से:

      GDAL / OGR> विविध> विलय

    • GDAL कंसोल से:

      gdal_merge.py -o merged.tif input1.tif input2.tif
      

  1. या एक आभासी रेखापुंज बनाएँ:

    • रेखापुंज> विविध> आभासी रेखापुंज बनाएँ

1
वर्चुअल रास्टर बनाने के लिए +1। यह एक बहुत छोटी फ़ाइल बनाएगा जो एकल मर्ज की गई छवि की तरह काम करेगा।
अलेक्जेंड्रे नेटो

@AlexandreNeto - धन्यवाद, मैंने देखा है कि अलग-अलग चूहों की तुलना में फ़ाइल के आकार में अंतर काफी चौंका देने वाला हो सकता है =)
जोसेफ

जब मर्ज चुनते हैं या वर्चुअल रास्टर का निर्माण करते हैं, तो मुझे यह घोषणा करते हुए एक त्रुटि मिलती है कि प्रक्रिया शुरू नहीं हो सकी। पोरग्राम मौजूद नहीं है या मेरे पास सही अधिकार नहीं हैं। इसलिए मैं सभी चूहों को मेनू-मेनू में लोड करके और वहाँ से चुनकर एक मर्ज या बिल्ड करने में सफल रहा। Gdal_merge.bat कमांड लाइन बहुत लंबी हो सकती है, कम से कम inputx.tif 1000 x (अलग-अलग
आपदाओं

@ मिचेल - अजीब त्रुटि लेकिन खुशी है कि आपको अपना परिणाम पाने का एक और तरीका मिला :)
जोसेफ

1
@Michael पर कमांड लाइन आप फ़ीड कर सकते हैं gdalbuildvrtgdalbuildvrt -input_file_list my_liste.txt doq_index.vrt: फ़ाइलों की एक सूची वाली फ़ाइल का फ़ाइल नाम के साथ, बल्कि उसके बाद कई छवि फ़ाइलों को तर्कों के रूप देना
Detlev

3

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

जब दोनों, मर्ज और वीआरटी, एक विकल्प नहीं है तो निम्नलिखित स्क्रिप्ट मदद कर सकता है।

पहले लूप में, मैं सभी परतों पर पुनरावृति करता हूं, आपदाओं को उठाता हूं और उनके न्यूनतम / अधिकतम अंतराल का अनुमान लगाता हूं। यह तरीका है जैसे कि QGIS खुद काम करता है। इन न्यूनतम / अधिकतम मूल्यों से मैं वैश्विक मिनट / अधिकतम की गणना करता हूं

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

gmin = 9999
gmax = -9999
layers = []
# loop over all layers, take rasters and estimate min, max values
for layer in iface.mapCanvas().layers():
    if isinstance(layer, QgsRasterLayer):
        # change percentages and sample size to increase or decrease accuracy
        min_max = layer.dataProvider().cumulativeCut(1, 0.02, 0.98, theSampleSize=250000)
        gmin = min(gmin, min_max[0])
        gmax = max(gmax, min_max[1])
        layers.append(layer)

# for all rasters create a single band gray scale renderer with 
# gray scale stretched across the interval [gmin..gmax]
for rasterlayer in layers:
    renderer = QgsSingleBandGrayRenderer(rasterlayer.dataProvider(), 1)
    # take the first band (0)
    ce = QgsContrastEnhancement(rasterlayer.dataProvider().dataType(0))
    ce.setContrastEnhancementAlgorithm(QgsContrastEnhancement.StretchToMinimumMaximum)
    ce.setMinimumValue(gmin)
    ce.setMaximumValue(gmax)
    renderer.setContrastEnhancement(ce)

    rasterlayer.setRenderer(renderer)

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