Difference between revisions of "Tools"

From WikiROMS
Jump to navigationJump to search
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<div class="title">Tools</div>
__TOC__
== NetCDF Format==
ROMS input and output files are self-describing, machine independent [http://www.unidata.ucar.edu/software/netcdf/ NetCDF] files.  The history and averages files are 100% compliant with the [http://cf-pcmdi.llnl.gov/ CF 1.0 Metadata Standard] for gridded data. These files can be accessed with a [http://www.unidata.ucar.edu/software/netcdf/software.html wide variety of software tools].  But some of our favorite tools are mentioned below.
== Python ==
== Python ==


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.
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.
Line 6: Line 11:
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:
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)
* numpy:  http://numpy.scipy.org (basic numeric array mathematics)
matplotlib:  http://matplotlib.sourceforge.net (and the basemap toolkit for geospatial plotting)
* 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)
* 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:
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
$ svn co http://pong.tamu.edu/svn/python/trunk/ python-roms
Line 23: Line 28:
$ sudo python setup.py install
$ sudo python setup.py install


== Visualization ==
== MATLAB ==
 
* [http://mexcdf.sourceforge.net/ MEXNC, SNCTOOLS, and the NetCDF Toolbox]:
ROMS output files are NetCDF CF-1.0 Compliant files.  
** 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.
* [http://marine.rutgers.edu/~jevans/rslice/rslice/doc/html/ch01.html 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. 
* [http://www.brest.ird.fr/Roms_tools/ ROMS_TOOLS]: GUI and tools specifically for ROMS  files.  An integral part of the ROMS-AGRIF system.  Requires MEXNC.
* A [http://stellwagen.er.usgs.gov/rps/share/java_isosurface_demo2.m Example Isosurface Script] that demonstrates using the NetCDF-Java CF API.


There are a variety of tools you can use for visualizing ROMS output.
== Other Tools ==


* [http://meteora.ucsd.edu/~pierce/ncview_home_page.html NcVIEW]: A general non-ROMS specific NetCDF viewer, good for quick exploration and animation.  Plots in coordinate index space only, however.
* [http://meteora.ucsd.edu/~pierce/ncview_home_page.html NcVIEW]: A general non-ROMS specific NetCDF viewer, good for quick exploration and animation.  Plots in coordinate index space only, however.
* Matlab Tools
* [http://www.unidata.ucar.edu/software/idv/ 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.
** [http://marine.rutgers.edu/~jevans/rslice/rslice/doc/html/ch01.html RSLICE]: A GUI specifically for ROMS files.  Works with ROMS files served via OpenDAP also.
** [http://www.brest.ird.fr/Roms_tools/ ROMS_TOOLS]: GUI and tools specifically for ROMS output files (ROMS-AGRIF).
* The [http://www.unidata.ucar.edu/software/idv/ 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.
* Python Tools
* NCAR_Graphics Environment

Latest revision as of 18:54, 8 December 2006

Tools

NetCDF Format

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

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:


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

MATLAB

  • 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.

Other Tools

  • 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.