首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面具中没有海洋,也没有数据的掩蔽海洋

面具中没有海洋,也没有数据的掩蔽海洋
EN

Stack Overflow用户
提问于 2015-12-08 10:25:54
回答 1查看 699关注 0票数 1

我想用我有的netcdf文件来绘制南极洲的表面海拔,但是掩盖了海洋。因此,我使用了“掩蔽海洋”。然而,当使用它时,一切都是白色的。如果我看看创建的面具,它是写着“真”到处,所以它不承认表面的海洋。此外,创建的与陆地/海洋掩码相关联的数组是空的。我不明白发生了什么事。我试过其他的基本地图预测,但问题仍然是一样的。我也使用投影坐标。

我用画图做了测试:

  1. 在不使用掩蔽海洋的情况下,只需使用lon=180°中的空白(这是我遇到的另一个问题!)用指定的颜色填充。
  2. 利用掩蔽海洋,它正确地填满了陆地和海洋。

最后,我遇到的最后一个问题是,lon=180°的一个平淡的空间(一行)仍然存在。

我希望有人能帮助我,并提前感谢那些试图帮助我的人。

这是我的代码:

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import numpy as np
import cdms2 as cdms
import cdtime

from mpl_toolkits.basemap import Basemap,shiftgrid,maskoceans

import matplotlib.pyplot as plt

##################################################

path='/home/dryas/Sentia/data_ECHAM/T106.surf_height.nc'
var='geosp'

tstart=cdtime.comptime(1960,1,1,0,1,0)
tstop=cdtime.comptime(2013,1,1,23,59)

#Extraction
f=cdms.open(path)
var=f(var)
f.close

lat=var.getLatitude() 
lon=var.getLongitude()

timax=var.getTime()
timax.getBounds()
timax.asComponentTime()
var=var(time=(tstart,tstop))
var=var[0,:,:]
var=var.filled()

#Map
fig=plt.figure()

m=Basemap(projection='spstere',boundinglat=-60,lon_0=-180,resolution='l')

lons,lats=np.meshgrid(lon,lat)
x,y=m(lons,lats)

mdata=maskoceans(x,y,var,resolution='h',grid=1.25,inlands=True)
cs=m.contourf(x,y,mdata)

cbar=m.colorbar(cs,location='right')
cbar.set_label('surface elevation (m)')

m.drawcoastlines()
m.drawmapboundary()

m.drawparallels(np.arange(-90.,90.,10.),labels=[1,0,0,0],fontsize=10)
m.drawmeridians(np.arange(-180,180,30.),labels=[0,0,0,1],fontsize=10)

plt.title('Surface Elevation')
plt.show()

EN

回答 1

Stack Overflow用户

发布于 2015-12-10 13:40:07

嗯,我已经在180°处填满了空白处:

代码语言:javascript
复制
var=f(var,longitude=(0,360,'cc'))

然而,我仍然不能掩盖海洋:

有人要帮忙吗?

塞蒂亚

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34153455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档