【发布时间】:2018-06-20 08:23:41
【问题描述】:
我确信有一个简单的解决方法,我对 Python 相当陌生,可以在 Matlab 中完成此操作。
我正在尝试为海洋数据屏蔽某个纬度和经度框。
我可以为纬度和经度创建布尔蒙版图。这给了我 101 个纬度乘 131 个经度(来自全球数据集 181 x 361)。但无法弄清楚如何以相同的方式屏蔽我的 2d 数据集,因此我可以将其绘制在 pcolormesh 图上。
基本上,我的形状不正确。 如何屏蔽我的数据集(与 lat x lon 的原始形状相同),以便子集的形状与我的 lats/longs 相同,因此所选区域是可绘制的?
lat_mask=[(lat<=50)&(lat>=-50)] #boolean for lat area
lat_masked=lat[lat_mask] #the lat subset i want
lon_mask=[(lon>=-120)&(lon<=70)]
lon_masked=lon[lon_mask]
#Mask the Dataset - Error here. How I imagine it should work but does not
data_masked=data[lat_mask,long_mask] #this is how i would do it in matlab but not even close
#something like this works a bit better but is still not functional
lam,lom= np.meshgrid(lat_mask,lon_mask)
data_masked = np.ma.array(data,mask=lom)
#plot
plt.pcolormesh(lom,lam,data)
感谢您的宝贵时间。
【问题讨论】:
-
data是 2Dnp.ndarray吗?什么是ch1?请提供一个最小、完整和可验证的示例,请参阅stackoverflow.com/help/how-to-ask。
标签: python numpy matplotlib