पायथन में एक शेपफाइल बहुभुज का उपयोग करते हुए NetCDF से डेटा निकालें [डुप्लिकेट]


11

मुझे किसी विशिष्ट आकृति का उपयोग करके NetCDF से डेटा को सब्मिट करना होगा। डेटा 1/4 डिग्री रिज़ॉल्यूशन पर समुद्र की सतह का तापमान और समुद्र का रंग है। मेरे पास अमेरिका का वर्णन करने वाले 4 बहुभुज हैं। पूर्वोत्तर महाद्वीपीय शेल्फ बड़े समुद्री पारिस्थितिकी तंत्र और यह उप-घटक हैं जिन्हें मुझे डेटा निकालने के लिए उपयोग करने की आवश्यकता है। मैं 1982-2014 से मासिक कम्पोजिट फ़ाइलों के साथ काम कर रहा हूं, इसलिए इस डेटा निष्कर्षण दिनचर्या को स्वचालित करने की आवश्यकता है। फाइलें पहले से ही [35, 45, -80, -60] के अनुमानित कार्य क्षेत्र ग्रिड के अधीन हैं।

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

पहले, हम HDF5 डेटा फ़ाइलों को R में चूहों को परिवर्तित कर रहे थे और उन्हें इस तरह से संसाधित कर रहे थे, लेकिन यह विधि वास्तव में अक्षम है और मुझे यकीन है कि वर्तमान NetCDF फ़ाइलों का उपयोग करके पायथन में बेहतर समाधान है।

इस प्रकार अब तक मैं GDAL और Fiona का उपयोग डेटा फ़ाइलों को लोड करने के लिए शेपफाइल्स और NetCDF4 में पढ़ने के लिए कर रहा हूँ। मुझे यकीन नहीं है कि डेटा को कैसे कम किया जाए। मुझे मिला:

पायथन के लिए GDAL: NetCDF फ़ाइल से उप-डोमेन निकालना?

लेकिन मुझे इस बात का कतई अंदाजा नहीं है कि एक साधारण बाउंडिंग बॉक्स के अलावा किसी अन्य चीज का उपयोग करके NetCDF फाइल को कैसे कम किया जाए, जो कि निश्चित रूप से ये बहुभुज नहीं हैं।

बहुभुज रूटीन में स्थित बिंदु शायद काम करने के लिए अनंत काल लेगा, लेकिन शायद मैं एक छोटे बाउंडिंग बॉक्स का उपयोग करके डेटा को कम कर सकता हूं जो इन आकृतियों को इस तरह से फिट करने के लिए घुमाया जाता है जैसे कि प्रारंभिक शुरुआती बिंदु और फिर एक बिंदु-इन-पॉली खोज करें:

एक कर्नेलनियर netCDF फ़ाइल (ROMS मॉडल आउटपुट) को एक लोन / लैट बाउंडिंग बॉक्स का उपयोग करके।

कोई विचार?

संपादित करें 1:

मैं अभी-अभी OpenClimateGIS पैकेज पर आया हूं, जो ऐसा लगता है कि यह बिल को पूरी तरह से फिट कर सकता है ... मेरे पास यह देखने के लिए होगा कि क्या मुझे यह काम करने के लिए मिल सकता है: http://ncpp.github.io/ocgis/examples। एचटीएमएल # उन्नत-subsetting


: संपादित करें 1 आइटम दिखाई देता है आपकी आखिरी कड़ी dead.This होने के लिए सबसे अच्छा विकल्प नहीं दिखाई देता है earthsystemcog.org/projects/openclimategis
हारून

जवाबों:


1

यह आपकी आवश्यकताओं के लिए अनुकूल हो सकता है।

अगर आपको अजगर से कमांड लाइन बुलाने में कोई आपत्ति नहीं है, तो आप कुछ ऐसा कर सकते हैं gdalwarp -cutline clip.shp -cl clip -crop_to_cutline input_raster output_raster_clipped.tif-cwhereऔर कतरन के लिए चार बहुभुजों में से एक का चयन करने के लिए -csqlअधिक उपयुक्त गदलवारप विकल्प हो सकते हैं ।


1

इस पर नज़र डालें: /programming/34585582/how-to-mask-the-specific-array-data-based-on-the-shapefile

आप जो ध्यान रखना चाहते हैं, वह यह है कि एक बार आपने अपना NetCDF लोड कर लिया, तो आप एक NumPy सरणी के साथ काम कर रहे हैं।

क्या आप आउटपुट के लिए कोशिश कर रहे हैं? बहुभुज क्षेत्रों के आधार पर सारांश आँकड़े?

किसी भी तरह, यहाँ मैं क्या करूँगा:

  1. अपने शेपफाइल को लोड करें और अपने क्षेत्रों को एक समर्थित प्रारूप में लाएं (उपरोक्त लिंक ध्वनियों में matplotlib मास्क प्रक्रिया के लिए लक्ष्य)
  2. अपनी NetCDF फ़ाइल लोड करें और डेटा को एक एकल X, Y, T संख्या में सरणी में प्राप्त करें
  3. बहुभुज (एक समय में एक?) का उपयोग कर उस सरणी मास्क
  4. अपने सारांश आँकड़े निर्यात करें।

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