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.
Check back for more information soon.
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.
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.