Optimizing Barrier Removal Projects

Fishwerks is a web-based GIS platform that integrates with sophisticated optimization tools to help maximize the efficiency of habitat improvement projects for migratory fish in the Great Lakes basin.

The Context

Populations of migratory fish are dependent on their ability to access quality habitat in order to reproduce. In the Midwest, this often means swimming upstream from the Great Lakes, penetrating inland via adjacent watersheds. Unfortunately, their passage is often blocked by man-made features which act as barriers to fish movement (like the perched culvert in the next image). There are currently over 250,000 such barriers in the Great Lakes basin that can potentially inhibit fish movement. Due to the sheer volume of these barriers and the associated cost of reparing them, only a small proportion receive attention each year. We have constructed this tool to optimally target candidate barriers in order to maximize the return on investment from the improvement projects which are funded each year. Our hope is that this tool can be applied at various scales covering multiple juridictions, and help to coordinate efforts to maximize increases in fish habitat.

Perched culvert

The Science

Check back for more information soon.

The People

Fishwerks is the result of a collaboriation between the McIntyre lab at the University of Wisconsin Center for Limnology and the Optimization Group at the Wisconsin Institute for Discovery.


Esox lucius (Northern Pike)

System / Software Design

This system relies on a client-server architecture where users access the tool via a browser-based client. We utilize the Play! web framework as the backbone for the project; it handles the majority of routing requests and serving up the intial page. Most of the client-side functionality is provided via javascript, utilizing the ExtJs framework for most of the layouts and functionality, while the OpenLayers (v.2) library is utilized for the mapping functions.

The server logic is largely composed of Java running on the Play! framework. Data is primarly stored in a Postgres database. This database is enabled with the PostGIS extension, which allows for the storage of spatial data in the database. This permits us to render database objects using a GeoServer, which provides automated tiling and georeferencing of spatial data from the database that can then be rendered on the web client. Optimization models are run using the GAMS modeling system via a Java API.

Optimization Modeling

A GAMS model was written to create a linear mixed-integer optimization model which traverses each river network and calculates the accessible habitat upstream of every barrier. The model tracks the cumulative passability at every barrier, and calculates the increase in passability obtainable by removing that barrier. The CPLEX solver is then called to determine the optimal solution.


Funding for the development of this project has been provided by the U.S. Fish and Wildlife Service along with in-kind material contributions from the Wisconsin Institute for Discovery.

Lepisosteus osseus (Longnose Gar)


Click for contact information