我有一个netcdf文件,希望使用命令行工具将其转换为图像(joed、png、gif)。
请问有谁可以提供库名称以及可能的转换方法链接?
谢谢, David
其他人已经提到了使用ArcGIS、IDL和Matlab等商业解决方案,但这里介绍一种使用Python的方法,使用netCDF4模块读取netcdf文件,并使用matplotlib创建图像。netCDF4模块可以读取NetCDF3、NetCDF4文件,也可以通过OPeNDAP服务读取远程NetCDF(或其他文件)。 下面我使用OPeNDAP服务读取地形数据,因此您应该能够在不更改程序的情况下运行程序。netCDF4模块可能有点难以构建,但它已包含在Python(x,y)、Enthought Canopy和Continuum Anaconda发行版中。
import matplotlib.pyplot as plt
import netCDF4
# open a local NetCDF file or remote OPeNDAP URL
url = 'http://www.ngdc.noaa.gov/thredds/dodsC/relief/ETOPO1/thredds/ETOPO1_Bed_g_gmt4.nc'
nc = netCDF4.Dataset(url)
# examine the variables
print nc.variables.keys()
print nc.variables['z']
# sample every 10th point of the 'z' variable
topo = nc.variables['z'][::10,::10]
# make image
plt.figure(figsize=(10,10))
plt.imshow(topo,origin='lower')
plt.title(nc.title)
plt.savefig('image.png', bbox_inches=0)
这将产生以下图像:
_r
"(我找不到这些映射的文档,只有一个列表可供参考:链接),然后从结果数组创建一个iris数据立方体并保存。 - HelloGoodbyehttp://www.unidata.ucar.edu/software/netcdf/software.html
如果有的话,可能就在那里了。但是如果您感兴趣,我对此有一些评论。ncplot infile.nc
from ncplot import ncplot
ncplot("infile.nc")
这可能有所帮助:
http://gmt.soest.hawaii.edu/gmt/html/man/grdimage.html
这里有一些例子:
web.ics.purdue.edu/~ecalais/teaching/gmt/GMT_6.pdf
ncview file.nc
可以使用“打印到文件”生成ps图,但是由于没有包括色条图例,因此并不是很有用。
2. Panoply
第二种点选方法是使用Panoply。
panoply
这里提供了一个链接:https://www.giss.nasa.gov/tools/panoply/
3. CDO
第三种方法是使用CDO命令行工具(但请确保已经编译并包含了MAGICS++支持)。
例如,您可以使用以下命令制作一个简单的PNG数据地图:
cdo shaded,device="png" in.nc plot
这将提供一个名为“plot_variablename.png”的文件。
在此处查看文档:https://code.mpimet.mpg.de/projects/cdo/wiki/Tutorial#Plotting
IDV是NetCDF的一个很好的可视化工具,但据我所知,它没有命令行界面。
我建议使用Matlab。它有NetCDF的读写函数以及一个广泛的绘图库...可能是最好的之一。然后,您可以编译Matlab代码并从命令行运行它。