2012-01-14 243 views
2

我有一个netcdf文件,我想使用命令行工具将其转换为图像(joed,png,gif)。将netcdf转换为图像

是否有人可以帮助我的图书馆名称,并可能链接到它是如何完成的。

问候 大卫

+0

要创建或显示你真的需要提供更多的信息,在这些的NetCDF 3D阵列或只是2D的例子吗?什么样的颜色映射是必需的,只是字节灰度或调色板的东西。 – mdsumner 2012-05-23 08:36:20

+0

这个问题有没有解决?我厌倦了VERDI和GDAL,并希望以编程方式从大型的netCDF文件集创建大量的图像集。我想我更喜欢Java或Python,但任何语言都会是一种改进。 – theJollySin 2012-12-07 22:27:25

回答

2

下面是软件操作的NetCDF正式名单。

http://www.unidata.ucar.edu/software/netcdf/software.html

如果有任何它可能是在那里。但是,如果您有兴趣,我对这个主题有几点意见。

您使用的是哪个平台? Linux,Windows等?无论答案如何,我认为答案是你会努力找到一个命令行工具,而无需自己创建它。

使用Java或Python以及某些GDAL库或类似软件创建某些内容可能相对容易。如果你有这个,我使用ArcGIS做了类似的事情,但它不是命令行,因为这很难实现。

您将面对的问题的一部分是,在使用命令行时,您需要获得关于如何导出设置的额外信息,但此信息不适用于非GUI环境。

这样的问题是灰度还是颜色。如果颜色是由于这些颜色需要定义的颜色。假设我们使用蓝色到红色的渐变色,然后是红色的高值或低值。颜色如何分配给值。它是渐进的还是会逐步增加值0-10对应于单色,然后10-20对应于另一种颜色。

这不是命令行,但'NcView'可能适合你。

http://meteora.ucsd.edu/~pierce/ncview_home_page.html

0

IDV是一个创建NetCDF良好的可视化工具,但是,据我所知,没有命令行界面。

我会推荐Matlab。它具有NetCDF的读取和写入功能,以及一个广泛的绘图库...可能是最好的之一。然后,您可以编译matlab代码并从命令行运行它。

0

GDAL能做到这一点,你可以通过多种方式控制输出调色板,并且rgdal包为其中的一些提供了R接口。

R有支持读取的NetCDF文件,并通过一些贡献的包,即ncdfRNetCDFncdf4的写入图像文件。

9

其他人已经提到了使用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) 

产生这一形象:enter image description here