Coastal Ocean Modeling Tools

This is the main organizing page for the collection of realistic ocean modeling tools being developed by Parker MacCready and Neil Banas at the University of Washington. The tools and data sources have the NE Pacific, Salish Sea, and Puget Sound in mind, but can be applied more generally.

This work is supported by the Dept. of Energy through the SciDAC Program, NOAA through the ECOHAB Program, and NSF through Physical Oceanography. Generous support is has also come from the Vetlesen Foundation, the UW PRISM project, and NANOOS.

The "tools" are a collection of both data files and software, that allow you to design a grid for a ROMS simulation, create data files for forcing it, and then to post-process and plot the output, ideally even comparing it to observations.

NOTE: these tools have been cobbled together over the past few years, using code from many other people, notably Manu di Lorenzo, Pierrick Peneven, Mark Warner, John Wilkin, Rob Hetland and others. Of course, any mistakes are ours, and there are NO guarantees that the code will work, or be correct!


Links to useful pages:


Below is the default directory structure that the tools assume. It has three main directories: tools/, tools_data/, and tools_output/. The concept is that we try to separate out CODE (which is expected to evolve) from DATA (which often involves huge files that don't change often), and to also keep the user-specific files separate.

A single user doesn't need everything, but be warned that not every part is self-contained. There are links below to separate pages that describe components in more detail. In many cases you would also want to look at the README file contained in the actual directory, e.g. to find out where the data came from and how it was processed. In general, you should get CODE (like rtools) from one of our servers. DATA (like the things in mossea_forcing_data) live in /pmraid3/parker/tools_data which is accessible from both waddle and skua. The links below don't lead to /pmraid3, but rather to pages that document the processing of the files involved. Usually the actual README files are in the relevant directory on /pmraid3/parker/.

How to get the code


1. tools/ The directory for code:

  • alpha/ Contains the central organizing code toolstart.m. This is intended to be the ONE PLACE where a user would edit the path in order to run rtools on their own machine. It sets paths, like to the software packages in shared/, and it returns a very handy structure called Tdir, which has paths to everywhere else in all three directories. It may not even be necessary to edit toolstart.m.
  • rtools/ This is the set of matlab-based tools we use to create the NetCDF files required to force a ROMS realistic simulation. It calls on a number of raw forcing data sets (in geo_data and forcing_data). Curated by Parker MacCready.
    • grid/ Object-oriented Matlab code to create your NetCDF grid file, starting from grid_maker.m. Its output ends up in tools_output/mossea_grids/.
    • runs/ Object-oriented Matlab code to create all your NetCDF forcing files, starting from run_maker.m. Its output ends up in tools_output/mossea_run_files/.
    • Z_utils/ Used by the above.
  • rtools_user/ This is where a user of rtools would keep their own versions of things that are used with rtools. In particular you would keep your own grid and run definition files, and any associated custom methods. The idea is that a user could then download the newest version of rtools/ at any time without worrying about overwriting their own code.
  • post_tools/ Post-processing code, curated by Neil Banas.
    • obs/ Corinne Bassin's code for accessing mossea_obs_data.
    • roms/ Very powerful and general tools for working with ROMS history files. Some functions are called by pandora.
    • rompy/ Nick Lederer's python tools (obsolete?).
    • utility/ Used by the above (and elsewhere).
    • examples/ has examples of how to do low-pass filtering or observation extraction
  • pandora/ A collection of tools for making plots and movies from ROMS runs, curated by Parker MacCready. It also has tools for tidal averaging, mooring extraction, and slice extraction.
    • Z_functions/ Used by the above (and elsewhere).
  • moor/ tools for doing mooring extraction from a ROMS run, and for plotting the mooring extractions, curated by Parker MacCready.
  • shared/ A place for rarely-updated code shared by several sets of tools (e.g. the SEAWATER routines, the SNCTOOLS, and t_tide). These are included in the path by alpha/toolstart.m.
  • whatever_you_call_it/ Your own personal code for plotting, analysis validation, etc. Output could go to a folder in tools_output/.

2. tools_data/ An archive for data files used to force a run, and for the observations used to test a run. Official versions live (mostly) in /pmraid3/parker (visible from waddle or skua)

  • geo_data/ Coastline and bathymetric data, curated by Parker MacCready.
    • coast/
    • topo/
    • useful_lines/ Things like thalweg section lines, and polygons that define regions. [need data]
  • forcing_data/ Forcing fields, curated by Sarah Giddings and Parker MacCready.
    • river/ River flow and temperature data files.
    • ocn/ Open ocean fields, e.g. from the Global NCOM model (1998-2009).
    • atm/ Fields of wind and atmospheric heat flux, etc., e.g. from the MM5 and WRF models run by UW Atmospheric Sciences Dept. Currently we have mid-2001 through the end of 2009.
    • tide/ Making maps of amplitude and phase (both SSH and current ellipses) for tides
  • obs_data/ An achive of regional observations. It contains a number of files that used to be curated by Corinne Bassin at APL (her original version is in /skua1/cbassin, where one can also find the folder of pre-processing codes). In the new organizational structure (6/26/2014) we have moved things into sub-folders:
    • mooring/ All the mooring data from the Bassin repository, in NetCDF format, notabely for ECOHAB, IOS, and ORCA. I replaced her RISE moorings with our best version - including Ryan McCabe's reprocessing of the ADCP data. The RISE moorings are mat files, and maybe they should be converted to the same NetCDf format as the other moorings.
    • ctd_bottles/ All the CTD and bottle data from the Bassin Repository (no ORCA, because that was all moorings)
    • tide_gauge/ [has some data folders from Ryan]
    • satellite/ [need data]
    • ndbc/ [currently only has some atm pressure data in sg_baro/]

3. tools_output/ The place for files created by rtools & other code.

  • rtools_grids/ A place to store the ROMS grid files created by rtools/grid.
  • rtools_run_files/ A place for folders full of the NetCDF files created by rtools
  • pandora_out/ For output files created by pandora.
  • moor_out/ For output created by moor.
  • NOTE: This doesn't have to be in the same place as tools/; you can use tools/alpha/toolstart.m to point to any location for it.
  • NOTE: this directory and sub-directories are created automatically by some of the code, e.g. when you run pandora/pan_plot.m

Parker MacCready 11/20/2014