我有一个netcdf文件,我想使用命令行工具将其转换为图像(joed,png,gif)。
是否有人可以帮助我使用图书馆名称,并可能链接到它如何完成。
此致 大卫
答案 0 :(得分:11)
其他人已经提到了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)
生成此图像:
答案 1 :(得分:2)
以下是操作NetCDF的官方软件列表。
http://www.unidata.ucar.edu/software/netcdf/software.html
如果有任何东西可能存在。但如果你有兴趣,我会就这个问题发表一些评论。
您使用的是什么平台? Linux,Windows等?无论答案是什么,我认为答案是你将努力寻找一个命令行工具而不用自己创建它。
使用Java或Python以及一些GDAL库等创建内容可能相对容易。我已经使用ArcGIS做了类似的事情,但是它不是命令行,因为这很难实现。
您将面临的部分问题是,在使用命令行时,您需要获得有关如何手动导出设置的其他信息,但此信息不适合非GUI环境。
诸如灰度或颜色之类的问题。如果颜色因为这些颜色需要定义。假设我们使用蓝色到红色渐变然后是红色高值或低值。如何将颜色分配给值。它是渐进的还是会逐步的,例如值0 - 10对应单色,然后10 - 20对应另一种颜色。
这不是命令行,但'NcView'可能适合你。
答案 2 :(得分:1)
可以使用我的新软件包ncplot(可通过pypi或conda-forge获得)来完成此操作。它既可以用作命令行工具,也可以在Python中使用,并将从NetCDF文件生成交互式绘图。
在命令行上执行以下操作:
ncplot infile.nc
在Python中(最好在Jupyter笔记本中)。只需执行以下操作:
from ncplot import ncplot
ncplot("infile.nc")
答案 3 :(得分:0)
IDV是NetCDF的一个很好的可视化工具,但据我所知,没有命令行界面。
我会推荐Matlab。它具有NetCDF的读写功能以及广泛的绘图库......可能是最好的之一。然后,您可以编译matlab代码并从命令行运行它。
答案 4 :(得分:0)
这可能有所帮助:
http://gmt.soest.hawaii.edu/gmt/html/man/grdimage.html
这里有一些例子: web.ics.purdue.edu/~ecalais/teaching/gmt/GMT_6.pdf
答案 5 :(得分:0)
答案 6 :(得分:0)
如果您希望使用命令行工具来生成简单图而无需进行任何编码,则可以使用
1。 ncview
ncview file.nc
它可以生成带有“打印到文件”的ps图,但是由于不包括颜色条图例,它并不是很有用
2。全景
第二种点击方法是使用
panoply
可在此处使用:https://www.giss.nasa.gov/tools/panoply/
3。 CDO
第三种方法是从命令行使用CDO(但请确保已使用MAGICS ++支持对其进行了编译)。
例如,您可以使用以下命令在netcdf文件中制作简单的PNG数据映射:
cdo shaded,device="png" in.nc plot
它将提供一个名为“ plot_variablename.png”的文件
在此处查看文档:{{3}}