Integrated fire, horticulture and pond disturbance model
ESRI python distribution which contains arcpy library (WCS license information)
64-bit Background Geoprocessing Python 2.7.10 [MSC v.1500 64 bit (AMD64)]
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.
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.
- 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)
In tables:
- site_index_curve_table.csv
- dbh_lookup.csv
- basal_area_growth_coeffecients.csv
In tables > fire:
- custom_fuel.fmd
- fuel_adjustment.adj
- fuel_moisture.fms
- wtr record
- wind.wnd
- mannahatta-psdi.txt
- psdi-years.txt
*Refer to FARSITE Setup below on how to generate these files
- PROJECT.FPJ
- LANDSCAPE.LCP
In tables > garden:
- proximity_reclass.txt
- slope_reclass.txt
- aspect.asc
- dem.asc
- slope.asc
- canopy.asc
- fuel.asc
- fire_trails.tif
- hunting_sites.tif
- garden_sites.shp
- proximity_suitability.tif
- slope_suitability.tif
- dem.tif
- flow_direction.tif
- stream_suitability.tif
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.
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).
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).
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
- Clone WelikiaDisturbance repository
- Download Welikia full extent inputs to a suitable local data directory
- Make copy of settings_template.py as settings.py and set variables at top
- Run initiate_disturbance_inputs.py
- Create FARSITE PROJECT and LANDSCAPE files manually in FARSITE GUI (refer to FARSITE Setup below)
- Run disturbance_script.py
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.
- 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