How Our Model Works

 

Input Data:

We started with a USGS National Elevation Dataset10 m elevation data as the base of our topography data. We edited it by using a fill tool to remove local low points in the landscape. From this filled dataset we calculated 10 m slope and flow direction maps. All maps were then reprojected into NAD 1983 Zone 10N. To maintain landowner privacy about the exact land cover types and presence or absence of existing wetlands on their lands, we created one “flow barrier” raster map that included a variety of irrigation-flow-disrupting land cover types. These included emergent wetland, open water, and rice (manually delineated in Google Earth from 2013 GeoEye Imagery), roads (from USGS National Transportation Dataset), medium to high development (from National Land Cover Dataset 2011) and irrigation canals, creeks, rivers, and lakes (from National Hydrography Dataset). These datasets were merged into one 10 m raster map of flow barriers. When assigning raster cell values, we used a centroid rule for polygon and raster input datasets, and an intersection rule for line datasets.

 

Parameterizing the Simulation Model: We coded our water flow and wetland creation model as an agent-based model in NetLogo 5.20. There are five global variables that control the behavior of water flows and wetland formation: water loss rate, slope parameter, slope cutoff, accumulation floor and accumulation ceiling. The values of these five parameters were fit based on 28 real-world wetlands with known areas and irrigation release points and values. The model was run for each wetland landscape over a range of possible parameter combinations, and the parameter values that produced the lowest classification error + size estimation error used, to split the difference between a fitting that maximized spatial accuracy and overall size estimation accuracy. We considered "tracked patches" any patches that either were actually open water, pasture, or wetland, or any patches that simulated water flowed over in the model run.

 

Classification error was defined as:

(# of tracked patches classified incorrectly - # of tracked patches classified correctly) / # of tracked patches

 

Size estimation error was defined as:

Abs((estimated area - actual area) / total tracked area)

 

These metrics were calculated separately for flow of any kind, and for each land cover type (wetland, pasture, and open water). Metrics were standardized so that each was weighted evenly, and then all eight error metrics were summed for an overall error metric. We also assessed several other potential error metrics formulations, but this performed best at producing qualitiatively accurate model behavior. After an exploratory analysis examining model behavior over a wide range of parameter values, we tested the following range of parameter values that produced realistic behavior in the models:

 

 

We then selected the five parameter values that minimized the overall error metric. Water loss rate dropped out of the final model (this parameter was zero in the top model), but is included in the description below as it was tested.

 

Agents in the Model:

 

1. Patches: contain the information on slope, elevation, and flow direction, contain landscape data (barriers or channels), and total water accumulation and wetlands acreage.

 

2. Gates: release irrigation water (create initial irrigations) and have a flow amount.

 

3. Irrigations: inherit their gate’s flow amount, then move and spread downhill, adding water accumulation to patches as they move over them.

 

Once a parcel is read into our NetLogo model, the slope, elevation, and flow direction data raster maps are loaded in.

 

Before running the model, users set up the scenario by modify this landscape in four ways:

 

1. Create or destroy gates. Gates can be set to release any flow amount of water, and can vary from gate to gate within one scenario. Units for gates’ flow amount are shared amongst all gates can be changed at any time after gate creation, as they are not calculated until the scenario is run, when all units are converted to Miner’s Inches for calculation.

 

2. Create or remove barriers to flow.

 

3. Create or remove channels that direct the flow.

 

4. Create or remove forcings that force water to flow a specific direction and not spread.

 

Once the landscape scenario is set up, the user clicks a button to run the scenario and the flows are estimated according to the rules below.

 

Flow rules:

 

  1. Each gate spawns one irrigation on its location, with a variable flow amount that contains the total water flow released from this point.

  2. It subtracts water loss from its current flow amount and is deleted if the flow amount ≤ 0 (note: this was dropped from the final model because this parameter converged to zero).

  3. Each irrigation "spreads" executing in sequence:
    1. If it is in a forcing, it changes its heading to the direction of the forcing and then exits this procedure (skips to step 4).
    2. If it is in a channel: It changes its heading to face an adjacent channel patch that flowing into would not require flowing against the current flow direction (i.e., the difference between the flow direction and the direction flowing to the new channel would be cannot be greater than 90 degrees). The selected patch cannot be the patch the flow just came from. If there is more than one suitable patch, it changes direction towards the one with the lowest accumulation + flow amount of irrigations current on it, and if is still more than one suitable patch, whichever has the lowest elevation. It then exits the current procedure (skips to step 3). If there are patches that meet the above criteria, then the irrigation acts as if it is not in a channel and continues to step c (“overflows the channel”).
    3. It changes it’s heading to the downslope direction (the flow direction of the patch it is on).
    4. It assesses whether to spread left or right 45 degrees off of the central flow-direction. For each direction, if there is a suitable patch ahead of it (i.e., it is not at the boundary of the simulated area) and the patch either is a channel or the patch’s slope – (slope parameter * flow amount / slope) is less than slope cutoff, the irrigation spawns a copy of itself facing that direction.
    5. The flow amount of the original irrigation is evenly divided amongst the original and new irrigations.
    6. If any of the 1-3 irrigations would try to flow “through” two kitty-corner channels/forcings or barriers, those irrigations redirect their heading to one of those two kitty-corner patches, using the same decision process as step 3b above.

  4. Each irrigation moves ahead one patch.

  5. If the new patch is off the edge of the map or a barrier, the irrigation is deleted. For the latter case, it is presumed that in reality it either joins the larger flow (if the barrier represents an existing creek, wetland, or irrigation ditch) or flows into a ditch (if the barrier represents a road).

  6. All the irrigations on each patch are summed together into one irrigation.

  7. The water accumulation on each patch is updated by adding to its current value the flow amount of the irrigation, if any, on the patch.
  8. Steps 1-5 are repeated until all irrigations are gone.

 

Once the flow simulation is complete, patches change to wetland if their water accumulation is above accumulation floor (not enough water for a wetland to form; pasture) and below accumulation ceiling (too much water for a wetland to form; open water). The model then tallies and reports the total amount of each land cover type created.

Return