আমি প্যাটার্ন সনাক্তকরণের জন্য আমার ফিল্টারগুলি ডিইএম রাস্টারগুলিতে চেক করার চেষ্টা করেছি এবং এটি সর্বদা সর্বশেষ সারি এবং কলাম (যেমন..২০) অনুপস্থিত হয় । আমি পিআইএল লাইব্রেরি, চিত্র লোড দিয়ে চেষ্টা করেছি। তারপরে নম্পুটি দিয়ে। আউটপুট একই।
আমি ভেবেছিলাম, আমার লুপগুলির সাথে কিছু ভুল আছে, যখন অ্যারেতে মানগুলি পরীক্ষা করা হয় (কেবল অর্কগ্ল্যাটালগে আইডেন্টিফিকেশন সহ পিক্সেল বাছাই করা) আমি বুঝতে পেরেছিলাম যে পিক্সেল মানগুলি অ্যারেতে লোড করা হয়নি।
সুতরাং, খালি খালি খালি, অ্যারে মধ্যে রাখা এবং অ্যারে থেকে চিত্র সংরক্ষণ:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
শেষ সারি এবং কলামগুলি কেটে ফেলার ফলাফল। দুঃখিত, ছবিটি পোস্ট করা যাবে না
কেউ বুঝতে সাহায্য করতে পারে কেন? এবং কিছু সমাধান পরামর্শ?
সম্পাদনা করুন:
সুতরাং, আমি ছেলেদের সহায়তায় ছোট ছোট রেস্টারগুলিকে নিম্পার অ্যারেতে লোড করতে সাফল্য পেয়েছি, তবে একটি বড় চিত্র পাওয়ার পরে আমি ত্রুটি পেতে শুরু করি। আমি মনে করি এটি অদ্ভুত অ্যারের সীমা সম্পর্কে, এবং তাই অ্যারেটি স্বয়ংক্রিয়ভাবে পুনরায় আকার দেওয়া হয় বা এর মতো স্মিথ হয় ... সুতরাং প্রাক্তন:
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
ima=numpy.array(inDs.GetRasterBand(1).ReadAsArray())
File "C:\Python25\lib\site-packages\osgeo\gdal.py", line 835, in ReadAsArray
buf_xsize, buf_ysize, buf_obj )
File "C:\Python25\lib\site-packages\osgeo\gdal_array.py", line 140, in BandReadAsArray
ar = numpy.reshape(ar, [buf_ysize,buf_xsize])
File "C:\Python25\lib\site-packages\numpy\core\fromnumeric.py", line 108, in reshape
return reshape(newshape, order=order)
ValueError: total size of new array must be unchanged
মুল বক্তব্যটি হ'ল আমি ব্লক করে ব্লকটি পড়তে চাই না কারণ আমার ফিল্টারিং দরকার, বিভিন্ন ফিল্টার, বিভিন্ন আকারের সাথে কয়েকবার .. আশেপাশে কোনও কাজ আছে বা আমাকে ব্লক দ্বারা রেডিং শিখতে হবে: ও