Navigation : Top/netcdf
* Outline [#nad6ad73]
- netcdf -> mexncと改名 
- Combination
-- MEXNC + SNCTOOLS
-- MEXNC + NetCDF Toolbox
** MEXNC [#k310753e]
MEXNC is a mex-file interface to NetCDF files for MATLAB, and has roughly a one-to-one equivalence with the C API for NetCDF. In fact, there's no better introduction to MEXNC than to read the  NetCDF User's Guide for C  provided by Unidata. 
** SNCTOOLS [#q02f7551]
SNCTOOLS is a set of m-files that sit on top of MEXNC. You might find them a little easier to use in day-to-day activities than the mex-file itself. Check the tutorial for some examples.
** NetCDF Toolbox [#q3e8e17b]
Completely unsupported. It's available here as a download, but I didn't write it and so I can't answer any questions about it. Seriously. If you download it, you are on your own.


* Linuxの場合 (2007b) [#n5c5f95d]

**ダウンロード [#z99791e5]
http://mexcdf.sourceforge.net
+ mexcdf.tar.gz をダウンロード 
+ snctools-X.zip をダウンロード

**インストール [#i32a18b9]
*** mexnc [#l8459333]
- mexcdf.tar.gzを解凍し、mexncの下にあるmakefileをコンパイルする.
- ifortの環境ではmexopts.shに以下の変更が必要
 CC='icc'    
 NETCDF="/usr/local/netcdf-ifort"
- mexncを生成.
-- make -f makefile
- test
 >> mexnc ( 'STRERROR', 0 )
 ans =
 No error
! 注意) 環境に合わせて[[mexopt.sh]](サンプル)の編集が必要
-- tests/test_mexnc.mを実施して,動作確認
*** snctools [#pda2fe7c]
- unzip snctools-X.zip
- pathを定義する.
- tests/test_snctoos.mを実施して,動作確認

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



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

**ダウンロード [#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を実行するとテストプログラムが起動する。 
ちゃんと起動したら、正しくインストールされたことになる。 


* Archive [#fa3266fb]
- [[netcdf - R14]]

* 使い方 [#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 = 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]
- [[mexnc:http://mexcdf.sourceforge.net/]]
- [[snctools:http://mexcdf.sourceforge.net/tutorial/]]

- [[NetCDF:http://www.unidata.ucar.edu/software/netcdf/]]
-[[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]]