我正在使用土地利用类的专题栅格。目标是将栅格分割成给定大小的较小的平铺。例如,我有一个1490像素的光栅,我想把它分成250x250像素的瓦片。为了得到相同大小的瓦片,我希望将光栅的宽度增加到1500像素,以恰好适合6个瓦片。为此,我需要将光栅的大小增加10个像素。
我目前正在使用rasterio库打开栅格,该库返回一个NumPy ndarray。有没有一个函数可以在这个数组周围添加一个缓冲区?目标应该是这样的:
import numpy as np
a = np.array([
[1,4,5],
[4,5,5],
[1,2,2]
])
a_with_buffer = a.buffer(a, 1) # 2nd argument refers to the buffer size然后,a_with_buffer将如下所示:
[0,0,0,0,0]
[0,1,4,5,0],
[0,4,5,5,0],
[0,1,2,2,0],
[0,0,0,0,0]发布于 2021-10-04 11:10:34
您可以使用np.pad
>>> np.pad(a, 1)
array([[0, 0, 0, 0, 0],
[0, 1, 4, 5, 0],
[0, 4, 5, 5, 0],
[0, 1, 2, 2, 0],
[0, 0, 0, 0, 0]])发布于 2021-10-04 11:09:27
您可以创建np.zeros,然后在索引中插入a,如下所示。
试试这个:
>>> a = np.array([[1,4,5],[4,5,5],[1,2,2]])
>>> b = np.zeros((5,5))
>>> b[1:1+a.shape[0],1:1+a.shape[1]] = a
>>> b
array([[0., 0., 0., 0., 0.],
[0., 1., 4., 5., 0.],
[0., 4., 5., 5., 0.],
[0., 1., 2., 2., 0.],
[0., 0., 0., 0., 0.]])https://stackoverflow.com/questions/69434864
复制相似问题