我知道这个问题以前就有人问过,但重点是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)或者,一些东西可能有助于将日期线有效地移到其他地方,但我无法很好地解决它。
干杯
发布于 2018-07-05 00:06:16
用过的XArray:
dataset= dataset.assign_coords(lon=(dataset.lon % 360)).roll(lon=(dataset.dims['lon'] // 2)) 发布于 2018-06-22 03:14:13
lon_mask=[(lon<=110)|(lon>=300)]是你想要的。经度不是小于110,就是大于300。当然,没有一个数字可以同时小于110和大于300。
https://stackoverflow.com/questions/50980067
复制相似问题