संक्षेप
नीचे दी गई 3 छवियों के प्रत्येक सेट को "ग्रे (बैंड) + अपारदर्शिता (बैंड) = पारदर्शी परिणाम" जैसे पढ़ा जाना चाहिए । आप इन प्रक्रियाओं को संबंधित गिथब होस्टेड मेकफाइल के माध्यम से मिनटों में परीक्षण कर सकते हैं । प्रक्रिया # 3 वह है जो मैं सुझाता हूं, 170 (मजबूत छाया रखता है) और 220 (सभी छाया रखता है) के बीच की सीमा के साथ। प्रक्रिया 3 सबसे मजबूत छाया प्रदान करती है और ग्रे-वाइटनिंग प्रभाव से बचती है। आवश्यकतानुसार परिणामस्वरूप परत की समग्र अपारदर्शिता को अनुकूलित करें। आवश्यकतानुसार समीकरणों में --calc="<equation>"
सुधार किया जा सकता है gdal_calc
।
इस दृष्टिकोण पर एक निर्धारित वीडियो के लिए, एक फ़ोटोशॉप डिज़ाइनर द्वारा समझाया गया, फ़ोटोशॉप में शेडेड रिलीफ जोड़ें (16mins) देखें।
पृष्ठभूमि
gdaldem hillshade
पिक्सल वैल्यू रेंज के साथ एक बैंड ग्रे स्केल फाइल तैयार करता है = [1-255], सबसे गहरे छाया से लेकर सबसे प्रबुद्ध पिक्सेल तक उर्फ। समतल क्षेत्रों के लिए, px = 221 (#DDDDDD)। NoDataValue
पिक्सल डिफॉल्ट नोडोडैवल्यू प्राप्त करते हैं 0
, साथ ही, इनपुट और आउटपुट में सबसे गहरा काला है और होना चाहिए 1
। अपारदर्शिता बैंड परिभाषित नहीं होने से, अपारदर्शिता 100% है ।
gdaldem hillshade input.tif hillshade.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges
हम एक 2 अपारदर्शिता बैंड को परिभाषित और नियंत्रित करना चाहते हैं!
उद्देश्य
हम एक ग्रेस्केल बैंड चाहते हैं -b 1
, यह पहाडी है। गदल से, यह एक ग्रे बैंड है जिसमें निरंतर रेंज जैसे px = [1-255] है। हम गैर-प्रासंगिक क्षेत्रों (# 2) को काट सकते हैं, या इसे px = 1 पर काला कर सकते हैं और अपारदर्शिता बैंड (# 3) पर भरोसा कर सकते हैं।
हम एक अपारदर्शिता बैंड चाहते हैं -b 2
, आम तौर पर पहाड़ियों का उलटा या उससे संबंधित कार्य। हम गैर-प्रासंगिक क्षेत्रों (# 2) को काट सकते हैं। यह इस तरह के px = [1-255] opacities की एक सतत श्रृंखला होनी चाहिए, अन्य कोई लालित्य नहीं है।
gdal_calc
दोनों का उपयोग इनपुट फाइल ए, बी, सी ... से पिक्सल पर गणित कर सकते हैं और बूलियन मानों की जांच कर सकते हैं A<220
, जैसे कि 1 (सच्चा) या 0 (गलत) रिटर्न। यह सशर्त पथरी की अनुमति देता है। यदि स्थिति झूठी है, तो समीकरण का संबंधित भाग शून्य है।
1. ग्रे पहाड़ियों को पारदर्शी बनाया
निम्नलिखित मानक gdal hillshade
ग्रैस और व्हिटर क्षेत्रों के साथ बहुत अच्छे दो-बैंड परिणाम प्रदान करता है जो तेजी से पारदर्शी बना है:
# hillshade px=A, opacity is its invert: px=255-A
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./opacity.tif --calc="255-A"
# assigns to relevant bands -b 1 and -b 2
gdalbuildvrt -separate ./final.vrt ./hillshade.tmp.tif ./opacity.tif
2. छद्म फसल के माध्यम से अनुकूलन (-b 1 और -बी 2)
पर -b 1
(पिक्सेलस) पिक्सल के 2/3 नंगे आंखों के लिए अदृश्य हो जाते हैं जब अपारदर्शिता -b 2
को जोड़ा जाता है, फिर भी, ये पिक्सेल विभिन्न व्हिटर -b 1
और कम अपारदर्शिता -b 2
मान रखते हैं। उन्हें सभी सफेद पारदर्शी [255,1]
पिक्सेल बनाए जा सकते हैं , जिससे बेहतर संपीड़न दर की अनुमति मिलती है:
# filter the color band, keep greyness of relevant shadows below limit
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./color_crop.tmp.tif \
--calc="255*(A>220) + A*(A<=220)"
# filter the opacity band, keep opacity of relevant shadows below limit
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./opacity_crop.tmp.tif \
--calc=" 1*(A>220) +(256-A)*(A<=220)"
# gdalbuildvrt -separate ./final.vrt ./color_crop.tmp.tif ./opacity_crop.tmp.tif
# gdal_translate -co COMPRESS=LZW -co ALPHA=YES ./final.vrt ./final_crop.tif
3. आगे-बी 1 अनुकूलन (फसल + काला)
चूँकि हमारे पास एक प्रगतिशील अपारदर्शिता बैंड -b 2
है जिस पर भरोसा करने के लिए, हम -b 1
पिक्सेल को या तो सफेद px = 255 के माध्यम से 255*(A>220)
, या काले px = 1 के माध्यम से बना सकते हैं 1*(A>220)
।
gdal_calc.py -A ./hillshade.tmp.tif --outfile=./color.tmp.tif \
--calc="255*(A>220) + 1*(A<=220)"
# gdal_calc.py -A ./hillshade.tmp.tif --outfile=./opacity_crop.tmp.tif \
# --calc=" 1*(A>220) +(256-A)*(A<=220)".
# gdalbuildvrt -separate ./final.vrt ./color.tmp.tif ./opacity_crop.tif
# gdal_translate -co COMPRESS=LZW -co ALPHA=YES ./final.vrt ./final.tif
यह परिणाम मजबूत छाया दिखाता है ।
परिणाम
मैदान के पूर्व ग्रे क्षेत्रों को हटाने और अवांछित लेकिन सर्वव्यापी ग्रेइंग-लुप्त होती प्रभाव को हटाने के लिए तत्काल उद्देश्य के लिए एक पारदर्शी पहाड़ी बनाएं । अंतिम दृश्य उत्पाद पर बढ़ा हुआ बायप्रोडक्ट एक नियंत्रित नियंत्रण है। वर्णित प्रक्रिया सबसे ग्रे और सभी सफेद पिक्सेल को हटा देती है। पारदर्शी-से-काली पहाड़ियों द्वारा ओवरले होने पर रंगीन पृष्ठभूमि की सादे छवि अपने चुने हुए रंगों को बनाए रखेगी, केवल छाया वाले क्षेत्रों को गहरा किया जाएगा। नीचे # 2 (बाएं) और # 3 (दाएं) प्रक्रिया की तुलना।
अवलोकन :
ज़ूम करें, कृपया छाया पर ध्यान दें (पहले बनाम बाद में):
आगे के अनुकूलन
सफेद क्षेत्र : 3 डी के एहसास को बढ़ाने के लिए सबसे प्रबुद्ध क्षेत्रों को रखने की इच्छा भी हो सकती है। यह वास्तव में मामूली दहलीज परिवर्तनों के साथ इस वर्तमान दृष्टिकोण का सममित होगा, फिर दोनों आउटपुटों का मर्ज gdal_calc के माध्यम से होगा। यह मैदान 100% पारदर्शी, सबसे गहरा छाया और सबसे हल्का प्रबुद्ध क्षेत्र अपारदर्शी होगा।
चौरसाई: एक बेहतर अंतिम परिणाम प्राप्त करने के लिए इनपुट पहाड़ियों को पूर्व- चौरसाई किया जा सकता है, GRASS का उपयोग करते हुए चौरसाई डेम देखें ?
समग्र पहाडी ( समग्र पहाडी कैसे बनाये? )।
ऊबड़ खाबड़ पहाड़ियों के रूप में दिलचस्प है ( विवरण )
टिप्पणियाँ
- फ्लैट क्षेत्र सीमा में
gdal hillshade
उत्पादन समतल क्षेत्रों अंकन px = 221 (#DDDDDD = [221,221,221]) है। इसके अलावा, हिलशेड का px = 221 इन-शैडो स्लोप (A <221) और इन-लाइट स्लोप (A> 221) पिक्सल के बीच की छवियों को विभाजित करता है।
- Px में एक प्रोसेसिंग थ्रेशोल्ड = [१20०-२२०] जैसा कि अच्छा साबित हुआ है, यह आंखों के ध्यान देने योग्य छाया के करीब १००% रहता है, जो खुद बमुश्किल राहत क्षेत्र के १५-३५% तक खड़े होते हैं।
- फ़ाइलइज़ > संपीडन: अंतिम 1। # 1, # 2, # 3 से बाहर है ~ बिना संपीड़न के 1.3MB, फिर ~ 0.3-0.16MB संपीड़न के बाद, 80% की बचत!
- Filesize> क्रॉपिंग: # 1 में .326KB से, फसल का रंग और अपारदर्शिता (# 2) 310kb पर मिलता है, काला रंग (# 3) 160kb पर मिलता है। फ़ाइलें पर प्रभाव फसल के बीच 5 ~ 50% की कमी के बीच है px = 220 और मेरे इनपुट पर सीमा।