নম্পি অ্যারে থেকে পিআইএসএল প্রাকৃতিক বিরতি


11

আমি পাইথন ব্যবহার করে একজন রাস্টার থেকে প্রাকৃতিক বিরতির মানগুলি বের করার চেষ্টা করছি।

উদ্দিষ্ট প্রক্রিয়াটি চলে যায়: নম্পপি অ্যারেতে আর্কি রাস্টার বস্তু ( রাস্টারটোমপাইআরাই ব্যবহার করে ) প্রাকৃতিক বিরতির মানগুলিতে ( পিএসএল প্রাকৃতিক বিরতি ফাংশন ব্যবহার করে )।

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-মাত্রিক অ্যারে।


1
প্রাকৃতিক_ব্রিক্স দিয়ে প্রক্রিয়া করার চেষ্টা করার আগে আপনি কি সবুজআরে মাত্রা পরীক্ষা করার চেষ্টা করেছেন? দেখে মনে হচ্ছে অ্যারেতে। শেপ করা আপনাকে অ্যারের মাত্রা দেবে give আমি এর আগে এর আগে কোনও কাজ করিনি, তবে এই পোস্টটি সহায়ক বলে মনে হচ্ছে ... stackoverflow.com/questions/3061761/numpy-array-dimetions
Branco

1
ধন্যবাদ, ব্র্যাঙ্কো আমি সেই থ্রেডটি পেরিয়ে এসেছি, যা আমাকে বিশ্বাস করে যে আমার অ্যারেটি 2-মাত্রিক। সবুজআরে.শ্যাপ = (1536,2048), এবং সবুজআর.ইডিম = ২ এর প্রত্যাবর্তন আমি মনে করি আমি একটি সমাধান নিয়ে এসেছি (numpy.ravel () ব্যবহার করে), যা আমি শীঘ্রই লিখব।
phloem

1
@ ফ্লোয়েম পিআইএসএল ডোকোর দিকে তাকিয়ে আমার মনে হয় আপনি flattenএবং ব্যবহারের মাধ্যমে ঠিক বলেছেন ravel; Natural_Breaksকেবলমাত্র মানগুলির 1 ডি ভেক্টর (বা, একটি (n, 1)ভেক্টর) গ্রহণ করে বলে মনে হয় ।
om_henners

উত্তর:


6

সহায়তার জন্য ধন্যবাদ, ব্র্যাঙ্কো এবং ওম_হেনাররা।

আমার সমস্যার উত্তরটি প্রতীয়মান হয় যে আরকিপি দ্বারা উত্পাদিত অ্যারে পরিবর্তন করতে numpy.ravel () ব্যবহার করা হবে aster

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.ravel(),k=2,initial=20)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.