मैं इस समय मॉडल आउटपुट के साथ काम कर रहा हूं, और मैं डेटा के दो एरे संयोजन के एक अच्छे तरीके से नहीं आ सकता। Arrays ए और बी अलग-अलग डेटा स्टोर करते हैं, और प्रत्येक में प्रविष्टियां कुछ स्थानिक (x, y) बिंदु से मेल खाते हैं - ए में कुछ पैरामीटर होता है, और बी मॉडल आउटपुट रखता है। समस्या यह है कि बी ए का एक स्थानिक उपखंड है - यानी, यदि मॉडल पूरी दुनिया के लिए था, तो ए पृथ्वी पर प्रत्येक बिंदु पर पैरामीटर स्टोर करेगा, और बी केवल अफ्रीका के उन बिंदुओं के लिए मॉडल आउटपुट स्टोर करेगा ।दो 2-डी सरणी एक-दूसरे को ओवरलैप करना शुरू करते हैं?
इसलिए मुझे यह पता लगाना होगा कि बी से कितना ऑफसेट होता है - एक और तरीका है, मुझे उन इंडेक्स को ढूंढना होगा जिन पर वे ओवरलैप करना शुरू कर देते हैं। तो अगर एशप = (1000,1500), बी (750: 850, 200: 300) का हिस्सा है, या (783: 835, 427: 440) उपधारा? मेरे पास ए और बी दोनों से जुड़े सरणी हैं जो प्रत्येक के लिए ग्रिडपॉइंट्स की (x, y) स्थितियों को संग्रहित करती हैं।
यह एक साधारण समस्या प्रतीत होता है - यह पता लगाएं कि दो सरणी ओवरलैप हैं। और मैं इसे scipy.spatial केडीटी के साथ बस हल कर सकता हूं, लेकिन यह बहुत धीमा है। किसी के पास कोई बेहतर विचार है?
इस प्रश्न का उत्तर वास्तव में आपके ग्रिड के प्रकार पर निर्भर करता है। क्या यह एक समान दूरी पर कार्टेशियन ग्रिड है? –
ए और बी के ग्रिडपॉइंट्स की स्थिति के लिए क्षैतिज और लंबवत दोनों समन्वय समन्वयित हैं? यदि ऐसा है, तो बस कुछ बाइनरी खोजें। –
यदि यह वैश्विक जलवायु मानचित्र है, तो क्या बी अफ्रीका जैसे भौगोलिक क्षेत्र से मेल खाता है (यानी ऐसा कुछ जो आकार में बिल्कुल आयताकार नहीं होगा) या यह सिर्फ एक आयताकार उपखंड है? –