我想将NetCDF文件转换为CSV格式。我曾尝试在论坛上寻求帮助,但无法获得所需的信息。我有三个变量,一维纬度数组,一维经度数组和二维变量数组。是否可以获取包含LAT,LON,VAR等列的CSV格式文件?
我尝试使用pandas Dataframe。
from netCDF import Dataset
data = Dataset('popd.nc')
latd=data.variables['latitude']
longd=data.variables['longitude']
popd = data.variables['PopD'][3] # 2D array
popd2015 = pd.DataFrame(popd,index=latd,columns=longd)
popd2015.to_csv('popd2015.csv',index=True,header=True)
结果是我的变量的2d数组,其中列位于纬度,行作为经度。但是我希望可以看到类似LAT,LON,VAR的三列。
答案 0 :(得分:1)
您可以从以下位置找到一种解决方案:
How to match netCDF variables' values in an array in MATLAB
但这是其中的一部分:
# =============================================
def ncread(filename,varname):
ncin=Dataset(filename);
vardata = ncin.variables[varname][:];
ncin.close()
return vardata
# ---------------------------------------------
# Convert to text:
filein = 'popd.nc'
lonin=ncread(filein,'longitude'); # read longitude
latin=ncread(filein,'latitude'); # read latitude
popin=ncread(filein,'PoPD'); # read data
# ---------------------------------------------
latm,lonm = np.meshgrid(latin,lonin);
# ---------------------------------------------
dataout=np.concatenate((lonm.flatten()[:,np.newaxis],latm.flatten()[:,np.newaxis],popin.flatten()[:,np.newaxis]),axis=1) # make one matrice from all the data
np.savetxt('test.txt',dataout); # save data
# ==============================================
没有数据,我不能保证它能正常工作,但万一您应该知道如何做到这一点。