Python中二维数组子集的重采样
我想比较散点图中不同卫星的空间数据(卫星图像),看看它们的可比性。对于两颗卫星中的每一颗,我都有一个数据框,其中包含要比较的数据,以及lat和lon阵列(从.nc文件中提取)。这两颗卫星的像素大小不同,导致阵列的形状不同:卫星A(426512)、卫星B(403512)。我的计划是创建由lat和lon定义的图像子集,以去除有时包含污染像素的边缘,然后将阵列重新采样为相同形状以创建散点图 我尝试使用np.where和np.argmin来创建子集Python中二维数组子集的重采样,python,arrays,numpy,Python,Arrays,Numpy,我想比较散点图中不同卫星的空间数据(卫星图像),看看它们的可比性。对于两颗卫星中的每一颗,我都有一个数据框,其中包含要比较的数据,以及lat和lon阵列(从.nc文件中提取)。这两颗卫星的像素大小不同,导致阵列的形状不同:卫星A(426512)、卫星B(403512)。我的计划是创建由lat和lon定义的图像子集,以去除有时包含污染像素的边缘,然后将阵列重新采样为相同形状以创建散点图 我尝试使用np.where和np.argmin来创建子集 lat_bnds, lon_bnds = [69.35
lat_bnds, lon_bnds = [69.35, 69.8], [-138.3 -139.8]
lat_inds = np.where((latsA > lat_bnds[0]) & (latsA < lat_bnds[1]))
lon_inds = np.where((lonsA > lon_bnds[0]) & (lonsA < lon_bnds[1]))
dataA_subset = dataA[lat_inds,lon_inds]
# li lower index ui upper index
latli = np.argmin(np.abs(latsA - lat_bnds[0]))
latui = np.argmin(np.abs(latsA - lat_bnds[1]))
lonli = np.argmin(np.abs(lonsA - lon_bnds[0]))
lonui = np.argmin(np.abs(lonsA - lon_bnds[1]))
dataA_subset = dataA[latli:latui, lonli:lonui]
卫星B的阵列看起来相似,但形状相同(403512)指示节点数据点。您应该发布一些示例数据。阅读
print(data_A.shape)
print(data_A)
(426, 512)
[[6.556140422821045 6.661336898803711 6.8396315574646 ...
18.65336799621582 20.378625869750977 22.448087692260742]
[6.54307746887207 6.7673659324646 6.920936107635498 ...
19.052120208740234 20.783668518066406 23.25980567932129]
[6.752928733825684 6.766547203063965 6.862030506134033 ...
19.63921356201172 21.45486068725586 23.114635467529297]
...
[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]
[-- -- -- ... -- -- --]]
print(lat_A.shape)
print(lat_A)
(426, 512)
[[70.31494 70.31635 70.315346 ... 69.80224 69.80116 69.80009 ]
[70.31252 70.313934 70.31293 ... 69.79987 69.7988 69.79772 ]
[70.310104 70.311516 70.31051 ... 69.79751 69.79643 69.79536 ]
...
[69.28807 69.28942 69.28844 ... 68.79676 68.79573 68.79469 ]
[69.28565 69.28707 69.28605 ... 68.79437 68.79334 68.792305]
[69.28317 69.28469 69.2837 ... 68.791985 68.790955 68.789925]]