我有一个高程阵列从.tif激光雷达表面。下面的数组示例。
from scipy.ndimage import rotate
import numpy as np
test_surface_nan = [[np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
[np.nan, np.nan, np.nan, 1, np.nan, np.nan, np.nan],
[np.nan, np.nan, 1, 2, 1, np.nan, np.nan],
[np.nan, 1, 2, 3, 2, 1, np.nan],
[np.nan, np.nan, 1, 2, 1, np.nan, np.nan],
[np.nan, np.nan, np.nan, 1, np.nan, np.nan, np.nan],
[np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]]
我尝试使用以下代码旋转test_surface_nan
中的值,使值以row[1]
开头。
test_surface_array_nan = np.array(test_surface_nan)
test_surface_array_nan_rotated = rotate(test_surface_array_nan,45,reshape=True)
我收到下面的数组。为什么大于0的元素变成了np.nan值,np.nan值变成了0?
这绝对不是我在看scipy.ndimage.rotate website时所期待的
我的期望是沿着下面的例子
maybe_test_surface_nan = [ [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
[np.nan, 1, np.nan, 1, np.nan, 1, np.nan],
[np.nan, np.nan, 2, np.nan, 2, np.nan, np.nan],
[np.nan, 1, np.nan, 3, np.nan, 1, np.nan],
[np.nan, np.nan, 2, np.nan, 2, np.nan, np.nan],
[np.nan, 1, np.nan, 1, np.nan, 1, np.nan],
[np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]]
1条答案
按热度按时间yacmzcpb1#
问题出在控制插值的
order=
参数中。尝试将此参数设置为0
:图纸: