Navigation : Top/netcdf

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*netcdf -> mexncと改名 [#d8a431c1]
Matlabでnetcdfを使うときのメモ

* Linuxの場合 [#q520e6ed]
- 2008/12 MATLAB 2008bからnetcdfがサポートされた.
- 2013/07 [[nctoolbox>MATLAB/nctoolbox]]も便利

**ダウンロード [#z99791e5]
http://mexcdf.sourceforge.net
+mexcdf.tar.gz 
をダウンロード 
* Outline [#nad6ad73]
** Official netcdf [#u45d05f8]
MATLAB 2008bからnetcdfがサポートされた.mexncとコマンド体系が全く違うが,とりあえずデータを読むだけならsnctoolsが依然として便利.
** Free netcdf toolbox [#d1dad0d7]
snctoolsとnetcdf toolboxがある.どちらにもmexncが必要.
*** Outline [#af116de5]
-- 2008bからエンジン(DLL)はMATLABの本体を使用
- snctoolsだけでOK(mexncは必要ない)
--snctoolsはユーザーが使いやすいように用意されたコマンド群

**インストール [#i32a18b9]
* Install [#re652c07]
- [[mexncおよびsnctoolsのインストール>MATALB/mexncおよびsnctoolsのインストール]]

mexcdf.tar.gzを解凍し、mexncの下にあるmakefileをコンパイルする.
matlab/bin/mexopt.shをコピ−し.
 make -f makefile
とし,mexncを生成.
注意) 環境に合わせて[[mexopt.sh]](サンプル)の編集が必要

startup.mに以下を記述する。 
 addpath /usr/local/matlab6/toolbox/netcdf/netcdf/ncutility 
 addpath /usr/local/matlab6/toolbox/netcdf/netcdf/nctype 
 addpath /usr/local/matlab6/toolbox/netcdf/netcdf 
 addpath /usr/local/matlab6/toolbox/netcdf 
matlabを起動し、mexnc/test/test_mexnxを実行するとテストプログラムが起動する。 
ちゃんと起動したら、正しくインストールされたことになる(はず)。 
* 使い方 [#pbb40c1e]
- MATLABオリジナル機能
-- [[MATLAB netcdfの使い方>MATLAB/MATLAB netcdfの使い方]]
- Free Toolbox
- [[nctoolbox>MATLAB/nctoolbox]] (gribも読める)
- [[snctoolsの使い方>MATLAB/snctoolsの使い方]](昔からあるコマンド群)
//- [[netcdf toolboxの使い方>MATLAB/netcdf toolboxの使い方]]

[[USGS作成のマニュアル:http://woodshole.er.usgs.gov/staffpages/cdenham/public_html/MexCDF/nc4ml5_guide.html]]



* Windows (R2006x) の場合 [#r85897e1]
* Link [#z7919b6c]
- [[mexnc:http://mexcdf.sourceforge.net/]]
- [[snctools:http://mexcdf.sourceforge.net/tutorial/]]

**ダウンロード [#k32b487d]
http://mexcdf.sourceforge.net
+ mexnc.R2006a.w32-2.0.19-1.zipをダウンロード 
[[netcdf_toolbox:http://sourceforge.net/project/showfiles.php?group_id=119464&package_id=130912&release_id=425915]]もダウンロード

**インストール [#r6a07402]

mexnc.R2006a.w32-2.0.19-1.zipを解凍し、netcdf.dll or mexnc.dllを$(matlab)/bin/w32の下におく.
これまでの命令と互換性を持たせるため,[[netcdf_toolbox:http://sourceforge.net/project/showfiles.php?group_id=119464&package_id=130912&release_id=425915]]]もダウンロードして解凍する.

startup.mに以下を記述する。 
 addpath /usr/local/matlab7/toolbox/mexnc
 addpath /usr/local/matlab7/toolbox/netcdf_toolbox
 addpath /usr/local/matlab7/toolbox/netcdf_toolbox/nctype
 addpath /usr/local/matlab7/toolbox/netcdf_toolbox/ncutility
もしくは,『ファイル』→『パス設定』で必要なdirectory(mexnc等)を選んで保存する.
matlabを起動し、mexnc/test/test_mexnxを実行するとテストプログラムが起動する。 
ちゃんと起動したら、正しくインストールされたことになる。 



* Windows (R14) の場合 [#r85897e1]

**ダウンロード [#k32b487d]
http://mexcdf.sourceforge.net
+ mexcdf.zip, mexnc-R14-win.zip, snctools.zip, netcdf_toolbox.zip
をダウンロード 

**インストール [#r6a07402]

mexnc-R14-win.zipを解凍し、mexnc.dllを$(matlab)/binおよび$(matlab)/bin/w32の下におく.

startup.mに以下を記述する。 
 addpath /usr/local/matlab7/toolbox/mexnc
 addpath /usr/local/matlab7/toolbox/netcdf_toolbox/netcdf/ncutility 
 addpath /usr/local/matlab7/toolbox/netcdf_toolbox/netcdf/nctype 
 addpath /usr/local/matlab7/toolbox/netcdf_toolbox/netcdf/source
 addpath /usr/local/matlab7/toolbox/snctools
matlabを起動し、mexnc/test/test_mexnxを実行するとテストプログラムが起動する。 
ちゃんと起動したら、正しくインストールされたことになる(はず)。 



* 使い方 [#y289845d]
***  netCDFデータを読む [#i44ca6e7]
- 文法
-- nc = netcdf('path', 'mode')
-- nc -- The output "netcdf" object, or [] if error.
-- path -- The path (filename) as a string.
-- mode -- The string 'nowrite' or 'write'.
- 例
-- nc = netcdf('foo.nc', 'nowrite')

*** ファイルを閉じる [#y1832081]
- 文法
-- result = close(nc)

*** ファイルの情報を得る [#ae1d44d1]
- 文法
-- theDims = dim(nc)
-- theVars = var(nc)
-- theGAtts = att(nc)
-- theRecdim = recdim(nc)
- 内容
-- nc -- "netcdf" object.
-- theDims -- List of "ncdim" dimension objects.
-- theVars -- List of "ncvar" variable objects.
-- theGAtts -- List of "ncatt" global attribute objects.
-- theRecdim -- The "ncdim" record-dimension object.
- 例
-- nc = netcdf('foo.nc', 'write')
-- if isempty(nc), error(' ## Bad netcdf operation.'), end
-- theDims = dim(nc)        % List of "ncdim" dimension objects.
-- theVars = var(nc)        % List of "ncvar" variable objects.
-- theGAtts = att(nc)       % List of "ncatt" global attribute objects.
-- theRecdim = recdim(nc)   % The "ncdim" record-dimension object.

*** オブジェクトからデータを得る [#n065f6ef]
- 文法
--  theVar = nc{'theVarname'}
-- theVar = ncvar('theVarname', nc)
- 内容
-- theVar -- The "ncvar" variable object.
-- nc -- The parent "netcdf" object.
-- theVarname -- The string-name of the variable.
- 例
--  theVar = nc{'elevation'}

*** データを書き込む [#g39c8167]
nc=netcdf(fname,'write');
nc{'h'}(:)=h;
close(nc);

*Link [#z7919b6c]
- [[NetCDF:http://www.unidata.ucar.edu/software/netcdf/]]
-- [[netcdf time convention:http://www.unidata.ucar.edu/software/netcdf/time/]]

-[[CSIRO matlab/netCDF interface:http://www.marine.csiro.au/sw/matlab-netcdf.html]]
-[[MexCDF and NetCDF Toolbox For Matlab-5&6:http://woodshole.er.usgs.gov/staffpages/cdenham/public_html/MexCDF/nc4ml5.html]]
- [[NetCDF Toolbox Interface Descriptions:http://mexcdf.sourceforge.net/netcdf_toolbox_guide.html]]
- [[NetCDF Simple Demo:http://www.ems.psu.edu/~young/meteo473/netcdf_demo.m]]