猿问

在日期线上管理和绘制数据

我知道之前曾有人问过这个问题,但是重点是Cartopy。


我目前的工作是在日期线上观察一个现象,并将在穿越日期线的太平洋中的一个盒子上工作。管理和绘制此数据一直是一个挑战,因为一个索引的值从179变为-179。


我可以轻松地将自己的纬度归为一类


lat_mask=[(lat<=20)&(lat>=-20)]  #Tropics +-20* only

lat_masked=lat[lat_mask]

哪个工作正常。


lon=np.add(lon,180)  #Reset longitudes to 0-360 from -180 to 180

lon_mask=[(lon>=110)&(lon<=300)]  

也可以正常工作...但是我正在寻找的完全相反的区域。但是我确实想要的区域:


lon_mask=[(lon<=110)|(lon>=300)]  

不起作用。 我可以分别做这些事,并为日期线的东部和西部的每个区域制作图形,但我希望将它们组合为一个数据集/图形。这样我就可以为[300-360 0-110]设置一个蒙版,可以将其绘制为单个图像。


我正在寻找一种存储信息的简便方法,以提高可用性和可绘制性。


我一直在尝试寻找如何重新索引所有索引的方法,但这使我的头部受伤。我正在寻找一种可靠的解决方案,因为它将经常使用。我本来以为这是matplotlib问题,但我认为这是存储数据的方式。


编辑:更改为| -但是现在出现了这个问题。


我感到


lon= np.roll(lon,len(lon)/2)

或可能有助于有效地将日期变更表移至其他地方,但我无法完全解决。

ibeautiful
浏览 183回答 2
2回答

饮歌长啸

使用的XArray:&nbsp;&nbsp;&nbsp;&nbsp;dataset=&nbsp;dataset.assign_coords(lon=(dataset.lon&nbsp;%&nbsp;360)).roll(lon=(dataset.dims['lon']&nbsp;//&nbsp;2))

qq_花开花谢_0

lon_mask=[(lon<=110)|(lon>=300)]是你想要的。经度是任一小于110或大于300。当然没有数目可小于110和在同一时间大于300。
随时随地看视频慕课网APP

相关分类

Python
我要回答