ฉันได้รับการพยายามที่จะตรวจสอบตัวกรองของฉันในแรสเตอร์ DEM สำหรับการรับรู้รูปแบบและมันมักจะมีผลในการหายไปแถวสุดท้ายและคอลัมน์ (like..20) ฉันลองห้องสมุด PIL แล้วโหลดภาพ จากนั้นด้วย numpy ผลลัพธ์เหมือนกัน
ฉันคิดว่ามีบางอย่างผิดปกติกับลูปของฉันเมื่อตรวจสอบค่าในอาร์เรย์ (แค่เลือกพิกเซลด้วย Identification ใน ArcCatalog) ฉันรู้ว่าค่าพิกเซลไม่ได้ถูกโหลดลงในอาร์เรย์
ดังนั้นเพียงแค่เปิดใส่เข้าไปในอาร์เรย์และบันทึกภาพจากอาร์เรย์:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
ผลลัพธ์ในการตัดแถวและคอลัมน์สุดท้ายออกไป ขออภัยไม่สามารถโพสต์ภาพได้
ทุกคนสามารถช่วยให้เข้าใจทำไม และให้คำแนะนำวิธีแก้ปัญหาบางอย่าง?
แก้ไข:
ดังนั้นฉันจึงประสบความสำเร็จในการโหลดแรสเตอร์ขนาดเล็กลงในอาร์เรย์ที่มีค่ามากด้วยความช่วยเหลือของผู้ชาย แต่เมื่อมีภาพที่ใหญ่ขึ้นฉันเริ่มได้รับข้อผิดพลาด ฉันคิดว่ามันเป็นเรื่องเกี่ยวกับข้อ จำกัด ของ numpy array ดังนั้น array จะถูกเปลี่ยนรูปร่างโดยอัตโนมัติหรือ smth เช่นนั้น ... ดังนั้นอดีต:
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
ประเด็นคือฉันไม่ต้องการอ่านบล็อกโดยบล็อกตามที่ฉันต้องการกรองหลายครั้งด้วยตัวกรองที่แตกต่างกันขนาดแตกต่างกัน .. มีงานแก้ไขหรือฉันต้องเรียนรู้ rading โดยบล็อก: O