Individual-based modeling

A schematic view of an individual-based model

I use a variety of programming languages, and developmental tools (e.g. Python and Fortran) for my ecological modeling research.  During the last few years I have created two individual-based models (IBM) for simulating the early life history of larval and juvenile Atlantic cod (read more on my special IBM page).  The models are mechanistic and can if be used for any given geographical location in the North Atlantic.  They can also be used for  species other than cod by changing the  biological characteristics (such as e.g. metabolic rate and growth rates).  The IBM model I created for my thesis was written in Fortran and contains a variety of options that you can turn on and off to simulate different scenarios that the larvae can experience.  For example, the input files for this model are environmental data from the Georges Bank region, but can be replaced with any other temperature, turbulence, and prey data.  Please contact me for more information on the models.

Individual-based modeling with ROMS

I also model the physics of the ocean in combination with IBM models using the ROMS model (Regional Ocean Modeling System). This combination of IBM and ROMS can track the movement of organisms in a three dimensional physical-biological environment.  In addition, my models can be used to analyze how differences in wind and turbulence may affect the year to year dispersal and drift of larval fish from their spawning grounds to their nursery habitats. You can read more about drift and growth of larval cod in the following publications that I have written or collaborated on:

soda2roms

If you ever want to use the ROMS model system, you will soon experience that the ROMS model is huge and requires the users’ patience during the steep learning curve.  One of the difficulties of setting up the model for a specific region is to create the forcing files

Using soda2roms to interpolate temperature to North Atlantic grid

Using soda2roms to interpolate temperature to North Atlantic grid

necessary to run the model. Most people use the Matlab scripts that are available, but I prefer to write my own code and use Python and Fortran.  I have now written a set of tools that does the necessary job of creating the Init, Clim, and Bry files for ROMS using either SODA or Hycom as input data files.  Currently, the toolbox, which I call soda2roms, is working efficiently for SODA monthly or 5-day average files, and can easily be adapted to use Hycom files instead.  The toolbox runs on any Linux, Mac, or Windows computer that has the necessary libraries and programs installed.  This includes a valid Fortran compiler, Python, Matplotlib, NetCDF4, NetCDF4 for Python, Basemap, HDF5, Numpy, and f2py. Setting up all of these libraries and programs is tiresome so I have written a webpage (see here) that takes you through 21 steps that allows you to have a Intel Mac that allows you to do development, and to compile soda2roms.  Soda2roms is available from my subversion website: