【发布时间】:2014-08-13 09:46:09
【问题描述】:
我一直在为此苦苦寻找很长一段时间,所以如果我能得到任何帮助或提示,我将不胜感激。
我正在尝试在南极海域绘制一些海冰干舷数据(netCDF,网格化总干舷),但应该在南极洲周围很好地绘制的数据位于我的图像底部。 NetCDF 和 matplotlib 对我来说相当新,所以错误可能是例如处理尺寸或投影。
from scipy.io.netcdf import netcdf_file as Dataset
import numpy as np
import matplotlib.pyplot as plt
FB = Dataset('./datasets/fb-0217-0320.nc', 'r')
f = FB.variables['f'][:,:]
lat = FB.variables['lat'][:,0]
lon = FB.variables['lon'][0,:]
masked_fb = np.ma.masked_where(np.isnan(f), f)
mtx_lon, mtx_lat = np.meshgrid(lon, lat)
m = Basemap(projection='spstere',boundinglat=-50, lon_0=180., resolution='l')
m.bluemarble()
plt.figure()
m.pcolormesh(mtx_lon, mtx_lat, masked_fb, latlon=True)
plt.show()
ncdump 给出:
dimensions:
x = 79 ;
y = 83 ;
variables:
float lat(y, x) ;
lat:standard_name = "latitude" ;
lat:long_name = "latitude coordinate" ;
lat:units = "degrees_north" ;
float lon(y, x) ;
lon:standard_name = "longitude" ;
lon:long_name = "longitude coordinate" ;
lon:units = "degrees_east" ;
float f(y, x) ;
f:long_name = "total_freeboard" ;
f:units = "mm" ;
f:coordinates = "lat lon" ;
我注意到一个奇怪的事情是 min lat 是 -5156.6201 但我不知道如何计算其中有多少......
编辑:按照 Neil 建议的方式格式化代码以适应通用方式。
【问题讨论】:
标签: python matplotlib netcdf