Tôi đã cố gắng kiểm tra các bộ lọc của mình trên DEM raster để nhận dạng mẫu và nó luôn dẫn đến thiếu các hàng và cột cuối cùng (như..20) . Tôi đã thử với thư viện PIL, tải hình ảnh. Sau đó với numpy. Đầu ra là như nhau.
Tôi nghĩ, có điều gì đó không ổn với các vòng lặp của tôi, khi kiểm tra các giá trị trong mảng (chỉ chọn các pixel bằng Nhận dạng trong ArcCatalog) tôi nhận ra rằng các giá trị pixel không được tải vào một mảng.
Vì vậy, chỉ cần mở, đưa vào mảng và lưu hình ảnh từ mảng:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
Kết quả trong việc cắt đi các hàng và cột cuối cùng. Xin lỗi, không thể đăng hình ảnh
Bất cứ ai cũng có thể giúp để hiểu tại sao? Và tư vấn giải pháp nào?
CHỈNH SỬA:
Vì vậy, tôi đã thành công trong việc tải các trình quét nhỏ vào mảng gọn gàng với sự giúp đỡ của các chàng trai, nhưng khi có một hình ảnh lớn hơn, tôi bắt đầu gặp lỗi. Tôi cho rằng đó là về các giới hạn của mảng numpy, và vì vậy mảng được tự động định hình lại hoặc smth như thế ... Vì vậy, ví dụ:
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
Vấn đề là tôi không muốn đọc từng khối vì tôi cần lọc, nhiều lần với các bộ lọc khác nhau, kích cỡ khác nhau .. Có công việc nào xung quanh không hoặc tôi phải học cách phát xạ theo khối: O