Skip to content

WildlifeConservationSocietyCI/WelikiaDisturbance

Repository files navigation

WelikiaDisturbance

Integrated fire, horticulture and pond disturbance model

Requirements

Python 2.7 + arcpy

ESRI python distribution which contains arcpy library (WCS license information)

64-bit Background Geoprocessing Python 2.7.10 [MSC v.1500 64 bit (AMD64)]

Python Libraries

The only necessary libraries not included as part of the esri python distribution are WMI, pywin32 and pywinauto, which can be installed via:
pip install pywinauto==0.5.4 or
(if using conda) conda install pywinauto==0.5.4
Later versions may work, but have not been tested.

FARSITE

FARSITE 4.1.055

Initial Model Inputs

Welikia full extent inputs: This is the template set of full-extent data inputs required to run all modules of the disturbance model. Model run input and output data should be saved to the runs folder.

General
  • DEM (dem)
  • Ecological communities (Welikia_Ecocommunities)
  • Welikia region boundaries (region_boundaries)
  • Lenape trails (trails)
  • Lenape garden sites (garden_sites)
  • Tables (includes welikia_community_table_int.csv and tables below)
  • Hunting sites (hunting_sites)
Tree Allometery

In tables:

  • site_index_curve_table.csv
  • dbh_lookup.csv
  • basal_area_growth_coeffecients.csv
Fire Tables

In tables > fire:

  • custom_fuel.fmd
  • fuel_adjustment.adj
  • fuel_moisture.fms
  • wtr record
  • wind.wnd
  • mannahatta-psdi.txt
  • psdi-years.txt
FARSITE Spatial Data

*Refer to FARSITE Setup below on how to generate these files

  • PROJECT.FPJ
  • LANDSCAPE.LCP
Garden Tables

In tables > garden:

  • proximity_reclass.txt
  • slope_reclass.txt

Model Inputs Generated by Script

Fire Spatial Data
  • aspect.asc
  • dem.asc
  • slope.asc
  • canopy.asc
  • fuel.asc
  • fire_trails.tif
  • hunting_sites.tif
Garden Spatial Data
  • garden_sites.shp
  • proximity_suitability.tif
  • slope_suitability.tif
Pond Spatial Data
  • dem.tif
  • flow_direction.tif
  • stream_suitability.tif

Disturbances Types

Fire

This class uses FARSITE to simulate the historical burning regime. Fire spread is modeled by FARSITE and the outputs of burning events are used to calculate tree mortality and update forest age and canopy rasters. Changes to these rasters are then used to modify ecosystem types.

Beaver Ponds

This class adds beaver disturbance to the landscape, including ponding and pond abandonment. Ponds are created by flooding the DEM at randomly selected dam points. Pond shape is determined by topography (flow direction -> watershed) and dam height (flooding depth). Location of ponds is random along the paths of mapped streams with slopes of eight degrees or less. Density is determined by a minimum territory distance parameter (1000 m).

Horticulture

This class adds and abandons horticultural fields. The general placment of gardens is determined by the location of lenape sites (identified in the ethnohistorical, cartographic, archaeological records) which meet slope and distance to freshwater criteria. At the site scale gardens are positioned based on a horticultural suitability index(slope, ecosystem, proximity to habitation site).

Ecological Succession

This class updates the growth of forest type communities (DBH, age, tree height) and transitions early succesional communities to advanced states using pathways defined in welikia_community_table_int.csv

Module Integration

Setup

  1. Clone WelikiaDisturbance repository
  2. Download Welikia full extent inputs to a suitable local data directory
  3. Make copy of settings_template.py as settings.py and set variables at top
  4. Run initiate_disturbance_inputs.py
  5. Create FARSITE PROJECT and LANDSCAPE files manually in FARSITE GUI (refer to FARSITE Setup below)
  6. Run disturbance_script.py

FARSITE Setup

Creating landscape (.LCP) and project (.FPJ) files

*To be done right before running the disturbance script (disturbance_script.py)

After running the initiate disturbance file (initiate_disturbance_inputs.py), first create a landscape (.LCP) file using the inputs generated/moved by this script.

The inputs are ASCII files, which include

  • Elevation (dem.asc)
  • Slope (slope.asc)
  • Aspect (aspect.asc)
  • Fuel model (fuel.asc)
  • Canopy cover (canopy.asc)

Open FARSITE and from the main menu select INPUT > LANDSCAPE UTILITES > GENREATE LANDSCAPE FILE. A dialogue box will appear with the option to specify paths to these 5 ASCII files.

Save the landscape file in the same location as the ASCII fire input files as LANDSCAPE.LCP. This is important because FARSITE will have issues executing if all files are NOT in the same directory.

Next, create a project (.FPJ) file using the newly created landscape (.LCP) file and initial inputs (in the full extent inputs directory) that include

  • Adjustments (fuel_adjustment.adj)
  • Moistures (fuel_moisture.fms)
  • Custom Models (custom_fuel.fmd)
  • Weather Files (weather.wtr)
  • Wind Files (wind.wnd)

From the main menu select INPUT > PROJECT INPUTS. A dialogue box will appear with the option to specify the path to the landscape (.LCP) file and the 5 initial input files.

Save the project file (.FPJ) as PROJECT.FPJ in the same location as the landscape file (.LCP) because FARSITE will have issues running if all files are NOT in the same directory.

TODO:

  • hunt down other sources of script not finishing
  • sort out arcpy/gdal/numpy library conflicts definitively
  • optimize for efficiency and run time
  • refactor/clean up topographic_exposure, disturbance_model_notes, analysis as necessary

About

Integrated fire and horticulture disturbance modeling

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •