爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11270|回复: 0

[求助] nc数据缺少经纬度信息,如何添加坐标信息

[复制链接]

新浪微博达人勋

发表于 2018-4-19 21:34:47 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 chongzika 于 2018-4-19 21:39 编辑

具体绘图脚本来自:http://wrf-python.readthedocs.io/en/latest/plot.html
数据见附件
##########具体错误如下:
bm = get_basemap(temp)from netCDF4 import Dataset
ValueError: 'var' object does not contain coordinate attributes
主要是我的数据里面的变量有经纬度变量,但是绘图使用变量没有坐标属性,似乎没有和坐标关联起来。
ncl可以通过   var@lat2d = lat2d var@lon2d = lon2d重新赋值,但是python不知道怎么操作,前来求教!
###############################具体脚本:from netCDF4 import MFDataset
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.cm import get_cmap
from wrf import getvar, interplevel, to_np, get_basemap, latlon_coords


ncfile1 = Dataset('mode_obj.nc','r')
# 不清楚怎么直接向ncl一样添加坐标信息,就直接新建了数据文件,然后创建变量
data = Dataset('./data.nc', 'w', format='NETCDF4_CLASSIC')
var = ncfile1.variables['fcst_clus_id']##绘图需要的变量
latf = ncfile1.variables['lat']##经纬度变量
lonf = ncfile1.variables['lon']
nlats = len(ncfile1.dimensions["lat"])
nlons = len(ncfile1.dimensions["lon"])
lat = data.createDimension("lat", nlats)###重新创建好像不行
lat = latf
lon = data.createDimension("lon", nlons)
lon = lonf
latitudes = data.createVariable('latitude', np.int32,('lat','lon'))
print(latitudes)
latitudes[:]=latf[:]
#print(latitudes)
longitudes = data.createVariable('longitude', np.int32,('lat','lon'))
longitudes[:] = lonf[:]
temp = data.createVariable('temp', np.int32,('lat','lon'))
temp[:]=var[:]

# Get the lat/lon coordinates
#lats, lons = latlon_coords(temp)
# Get the basemap object
bm = get_basemap(temp)#####

# Create the figure
fig = plt.figure(figsize=(12,9))
ax = plt.axes()

# Convert the lat/lon coordinates to x/y coordinates in the projection space
x, y = bm(to_np(lonf), to_np(latf))
# Add the 500 hPa geopotential height contours
#我的数据是mask后的数据,只有-1,1,2,三个值,其他都是缺省
levels = [-1,0,1,2]
contours = bm.contour(x, y, to_np(temp), levels=levels, colors="black")
plt.clabel(contours, inline=1, fontsize=10, fmt="%i")
# Add the wind speed contours

plt.savefig('a.png')


mode_obj.nc

294.1 KB, 下载次数: 9, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表