【问题标题】:maskoceans with no ocean in mask and no datamaskoceans,面具中没有海洋,也没有数据
【发布时间】:2015-12-10 22:14:00
【问题描述】:

我想从我拥有的 netcdf 文件中绘制南极洲的表面高程,但掩盖了海洋。因此,我使用了“maskoceans”。但是,使用它时,一切都是白色的。如果我看一下创建的面具,它到处都写着“True”,所以它没有识别出海洋的表面。此外,与陆地/海洋掩码关联的创建数组是空的。我不明白发生了什么。我尝试过使用其他底图投影,但问题仍然相同。我也使用投影坐标。

我用 drawlsmask 做了测试:

  1. 不使用 maskoceans,只有 lon=180°(我遇到的另一个问题!)的空白区域被指定的颜色填充。
  2. 使用 maskoceans,它正确地填满了陆地和海洋。

最后,我遇到的最后一个问题是 lon=180° 处的空白空间(一条线)仍然存在。

我希望有人能够帮助我,并提前感谢那些愿意尝试的人。

这是我的代码:

#!/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()

【问题讨论】:

    标签: python-2.7 matplotlib-basemap


    【解决方案1】:

    好吧,我已经设法填满了 180° 的空白:

    var=f(var,longitude=(0,360,'cc'))
    

    但是我仍然无法掩盖海洋:(

    有人帮忙吗?

    森提亚

    【讨论】:

      【解决方案2】:

      我已经解决了 maskoceans 的问题:

      我将 x,y 坐标放在 maskoceans 中,而不是 lats lons 中。现在可以了=)

      【讨论】:

        猜你喜欢
        • 2022-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-16
        相关资源
        最近更新 更多