2012-01-14 22 views
2

コマンドラインツールを使用してイメージ(joed、png、gif)に変換したいnetcdfファイルがあります。netcdfをイメージに変換する

誰かが図書館の名前と、おそらくそれがどのように行われているかのリンクを教えてくれますか?

よろしく デビッド

+0

は、NetCDFのか、単に2Dでこれらの3D配列ですか?どのような種類のカラーマッピングが必要ですか、グレースケールのバイトかパレットのあるものだけです。 – mdsumner

+0

この問題は解決されましたか?私はVERDIとGDALにうんざりしており、大規模なnetCDFファイルセットから大規模なイメージセットをプログラムで作成したいと考えています。私はJavaやPythonを好むだろうと思っていますが、どんな言語でも改善されます。 – theJollySin

答えて

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

これは役立つかもしれません様々な方法で出力カラーパレットを制御することができ、rgdalパッケージは、これの一部にRインタフェースを提供します。

R、すなわちncdfRNetCDFncdf4、netCDFファイルを読み込み、貢献したパッケージの数を介して画像ファイルへの書き込みをサポートしています。

9

他の人は、ArcGIS、IDL、Matlabの商用ソリューションについて言及していますが、ここではPythonを使用してnetcdfファイルを読み取るnetCDF4モジュールを使用し、画像を作成するmatplotlibを使用する方法の1つです。 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

関連する問題