MEXNC

From WikiROMS
Jump to: navigation, search
Matlab MEXNC, SNCTOOLS and ROMS tool-kit
Note Post questions and comments regarding this tutorial in THIS forum thread.


MATLAB is powerful software that is commonly used to create ROMS inputs and to visualize and analyze ROMS output. However, out-of-the-box Matlab doesn't come with the capabilities to read/write ROMS NetCDF files. For that you need to download and install MEXNC, which is a mex-file interface to NetCDF files for MATLAB. In simple terms, it is a set of files (mex and .m files) that allows Matlab to read and write NetCDF files. Also, if you want to fully exploit Matlab's capabilities to manipulate/analyze ROMS files, you may want to download/install SNCTOOLS and the ROMS Matlab tool-kit, which are Matlab routines (that sit on top of MEXNC) that facilitate the manipulation, visualization and analysis of ROMS input/output NetCDF files. There are free alternatives to Matlab (see links below), however in this tutorial I will only review (some) tools for Matlab.

Quick links:
MATLAB MEXNC project page SNCTOOLS tutorial (for Matlab)
Scilab Free Matlab-clone Scilab/NetCDF Interface NetCDF Toolbox (for Matlab)
Octave Free Matlab-clone OCTCDF Octave/NetCDF interface



How to install MEXNC?

You have to download the MEXNC version that matches BOTH, your specific Matlab version and your operating system.

  1. First determine what Matlab version you have by typing on the Matlab command line:
    version('-release')
  2. Then, go to the download area, scroll down and click on your Matlab version (verify that you operating system is listed as an option).
  3. Download the latest release
  4. Extract (i.e. unzip or unpack) the file in a location where it can stay indefinitely
  5. In Matlab, add the path of your recently extracted mexnc directory. To do this...
    • Click on File > Set Path... (a GUI will pop-up)
    • Click on the Add with Subfolders... button, and add the path to your new mexnc folder
    • Click on the Save button, and close the GUI

  6. If you are using WINDOWS operating system (I don't know if others too), you will have to add the netcdf.dll file to your Matlab system directory. To do this...
    • Go to your recently extracted mexnc directory and go inside the win32 folder...
    • Copy the netcdf.dll file and PASTE it into one (or both) of the following directories:
      C:\MATLAB\bin

      and/or

      C:\MATLAB\bin\win32
      Warning In the example above, C:\MATLAB is the location where matlab is located, but this may be different in your computer.

    • Similarly as in (5), add the path to the directory(ies) above (i.e. C:\MATLAB\bin and C:\MATLAB\bin\win32) to the Matlab search path.
      Note NOTE: In some cases, it will be important to have C:\MATLAB\bin and C:\MATLAB\bin\win32 at the TOP of the searching path.

    • Done! However, you may need to download SNCTOOLS and the matlab tool-kit to be fully operational... read below.


Note If you are using Scilab (free Matlab-clone)... Click here to get the Scilab interface to NetCDF files.
Note If you are using Octave (another free Matlab-clone)... Click here to get the Octave interface to NetCDF files.

How to install SNCTOOLS?

Written by John Evans, SNCTOOLS is a set of m-files that sit on top of MEXNC (and optionally, java) and strive to provide the user with a kinder, gentler interface (rather than MEXNC alone). Here is a tutorial and below are instructions for download and "installation":

  1. Go to the download page and get the latest release.
  2. Extract the file in a location where it can stay indefinitely
  3. Similar to step (5) above, add the path to the recently extracted directory to the Matlab search path.


How to install ROMS Matlab tool-kit?

This is a compilation (from Hernan Arango) of matlab tools (i.e. m-files), that sit on top of SNCTOOLS (which sits on top of MEXNC). Here are instructions for download and "installation":

  1. Go to the download page, enter the matlab directory, and download the matlab.tar.gz file.
  2. Extract the file in a location where it can stay indefinitely
  3. Similar to step (5) above, add the path to the recently extracted directory to the Matlab search path.


The Matlab ROMS_WILKIN tool-kit

John Wilkin (jwilkin@rutgers.edu) provides a set of matlab m-files that read ROMS netcdf files using SNCTOOLS, and create simple plots, extract data subsets (e.g. slices at constant depths), or perform simple operations on data (e.g. depth integrals). Most of the tools optionally return the data that form the basis of each plot and the graphics handles so that you can replot according to your own requirements if desired. The tools are designed primarily to work with 'realistic' model output in longitude and latitude coordinates, but will replace the lon/lat with ROMS x/y coordinates if necessary.

  1. How to use the tools and instructions for download are provided via tiddlywiki at romsmatlab.tiddlyspot.com
  2. There is some discussion of these tools at this thread on the User Forum.