为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ibeautiful 2021-04-02 10:11:39
我知道之前曾有人问过这个问题,但是重点是Cartopy。我目前的工作是在日期线上观察一个现象,并将在穿越日期线的太平洋中的一个盒子上工作。管理和绘制此数据一直是一个挑战,因为一个索引的值从179变为-179。我可以轻松地将自己的纬度归为一类lat_mask=[(lat<=20)&(lat>=-20)]  #Tropics +-20* onlylat_masked=lat[lat_mask]哪个工作正常。lon=np.add(lon,180)  #Reset longitudes to 0-360 from -180 to 180lon_mask=[(lon>=110)&(lon<=300)]  也可以正常工作...但是我正在寻找的完全相反的区域。但是我确实想要的区域:lon_mask=[(lon<=110)|(lon>=300)]  不起作用。 我可以分别做这些事,并为日期线的东部和西部的每个区域制作图形,但我希望将它们组合为一个数据集/图形。这样我就可以为[300-360 0-110]设置一个蒙版,可以将其绘制为单个图像。我正在寻找一种存储信息的简便方法,以提高可用性和可绘制性。我一直在尝试寻找如何重新索引所有索引的方法,但这使我的头部受伤。我正在寻找一种可靠的解决方案,因为它将经常使用。我本来以为这是matplotlib问题,但我认为这是存储数据的方式。编辑:更改为| -但是现在出现了这个问题。我感到lon= np.roll(lon,len(lon)/2)或可能有助于有效地将日期变更表移至其他地方,但我无法完全解决。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

使用的XArray:

    dataset= dataset.assign_coords(lon=(dataset.lon % 360)).roll(lon=(dataset.dims['lon'] // 2))


查看完整回答
反对 回复 2021-04-13
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

lon_mask=[(lon<=110)|(lon>=300)]是你想要的。经度是任一小于110大于300。当然没有数目可小于110在同一时间大于300。


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信