मैं पायथन का उपयोग करके एक रैस्टर से प्राकृतिक ब्रेक वैल्यू निकालने का प्रयास कर रहा हूं।
इच्छित प्रक्रिया इस प्रकार है: प्राकृतिक विराम मूल्यों ( प्यर्सल नेचुरल ब्रेक्स फंक्शन का उपयोग करके) के लिए न्युपी ऐरे ( RasterToNumPyArray का उपयोग करते हुए ) के लिए आर्ची रैस्टर ऑब्जेक्ट ।
import arcpy, pysal
from pysal.esda.mapclassify import Natural_Breaks as nb
# code to create greenIndex arcpy Raster object here
greenArray = arcpy.RasterToNumPyArray(greenIndex)
breaks = nb(greenArray,k=2,initial=20)
यह कोड त्रुटि देता है, "ValueError: मैट्रिक्स 2-आयामी होना चाहिए"।
जहाँ तक मुझे पता है, ग्रीनअरे 2-आयामी सरणी है।
1
क्या आपने Natural_Breaks के साथ प्रक्रिया करने से पहले ग्रीनअरे आयामों की जाँच करने की कोशिश की है? सरणी पर कॉल .shape की तरह लग रहा है आप सरणी आयाम दे देंगे। मैंने इससे पहले ऐसा नहीं किया है, लेकिन यह पोस्ट मददगार लगती है ... stackoverflow.com/questions/3061761/numpy-array-dimensions
—
Branco
धन्यवाद, ब्रांको। मैं उस धागे के पार आया, जो मुझे विश्वास दिलाता है कि मेरी सरणी 2-आयामी थी। GreenArray.shape = (1536,2048) की वापसी, और greenArray.ndim = 2. मुझे लगता है कि मैं एक समाधान (numpy.ravel () का उपयोग करके) के साथ आया हूं, जिसे मैं जल्द ही लिखूंगा।
—
फ्लोएम
@ पाओलो पायलस डोको को देखते हुए मुझे लगता है कि आप उपयोग करने के साथ सही हैं
—
om_henners
flatten
और ravel
; Natural_Breaks
मानों के केवल एक 1d वेक्टर (या, एक को स्वीकार करने के लिए प्रकट होता है (n, 1)
वेक्टर)।