ROMS input and output files are self-describing, machine independent NetCDF files. The history and averages files are 100% compliant with the CF 1.0 Metadata Standard for gridded data. These files can be accessed with a wide variety of software tools. But some of our favorite tools are mentioned below.
Python is a scripting language that is easy to learn and use (like MATLAB), is object-oriented and very powerful, and is rapidly becoming a standard language for scientific scripting. Many scientists are developing packages and toolboxes in python, for example www-pcmdi.llnl.gov/software-portal/cdat, www.pyngl.ucar.edu, and countless other, smaller packages. Many utilities are being developed with python hooks build in (like VTK, a 3D visualization library). Python has all of the basic tools required for working with numerical model data, in particular NetCDF support. Python can also be used as a wrapper for C and FORTRAN code, so you can have the speed of FORTRAN for number crunching with the ease of a high level language for data I/O. Finally, python is free and open source, and is available on all major computer platforms.
A good place to learn about scientific computing using Python is http://www.scipy.org. You will need a few packages installed in order to work with ROMS output in Python:
- numpy: http://numpy.scipy.org (basic numeric array mathematics)
- matplotlib: http://matplotlib.sourceforge.net (and the basemap toolkit for geospatial plotting)
- python-netcdf4: http://code.google.com/p/netcdf4-python/ (follow the install directions *exactly)
You can find a number of scripts designed to work explicitly with ROMS files at http://pong.tamu.edu/svn/python/trunk/. You can either browse online, or download the entire reposatory with [subversion (http://subversion.tigris.org/)]. Check out the repository with:
$ svn co http://pong.tamu.edu/svn/python/trunk/ python-roms
Install each of the packages by going to the top of the directory, say the 'roms' package for the basic ROMS tools by
$ cd python-roms/roms
$ python setup.py build
$ sudo python setup.py install
- MEXNC, SNCTOOLS, and the NetCDF Toolbox:
- MEXNC: For maximum flexibility accessing NetCDF files with Matlab, you need to install the machine-dependent MEXNC for your system.
- SNCTOOLS: If you just want to access NetCDF files with Matlab (not write them), you can use use the SNCTOOLS, which have a mode that uses machine-independent Java instead of the machine-dependent MEXNC.
- NetCDF Toolbox: An overloaded "language" for dealing with NetCDF files, developed by Chuck Denham. Not under active development.
- RSLICE: A GUI specifically for ROMS files. Arbitrary vertical and horizontal slices, velocity overlays, and more. Accesses local NetCDF (or remote OpenDAP) files, and since it depends on SNCTOOLS, can work via Java without MEXNC.
- ROMS_TOOLS: GUI and tools specifically for ROMS files. An integral part of the ROMS-AGRIF system. Requires MEXNC.
- A Example Isosurface Script that demonstrates using the NetCDF-Java CF API.
- NcVIEW: A general non-ROMS specific NetCDF viewer, good for quick exploration and animation. Plots in coordinate index space only, however.
- Integrated Data Viewer (IDV): A GUI for visualizing a variety of file formats, including CF-Compliant NetCDF. A 100% Java application that uses the NetCDF-Java library. Under active development by Unidata.