GDAL Driver for FARSITE v.4 LCP Format

FARSITE v. 4 landscape file (LCP) is a multi-band raster format used by wildland fire behavior and fire effect simulation models such as FARSITE, FLAMMAP, and FBAT (www.fire.org). The bands of an LCP file store data describing terrain, tree canopy, and surface fuel. The USGS National Map for LANDFIRE distributes data in LCP format, and programs such as FARSITE and LFDAT can create LCP files from a set of input rasters. The GDAL driver for LCP supports reading only.

An LCP file (.lcp) is basically a raw format with a 7,316-byte header described below. The data type for all bands is 16-bit signed integer. Bands are interleaved by pixel. Five bands are required: elevation, slope, aspect, fuel model, and tree canopy cover. Crown fuel bands (canopy height, canopy base height, canopy bulk density), and surface fuel bands (duff, coarse woody debris) are optional.

The LCP driver reads the linear unit, cell size, and extent, but the LCP file does not specify the projection. UTM projections are typical, but other projections are possible.

The GDAL LCP driver reports dataset- and band-level metadata:

Dataset

LATITUDE: Latitude of the dataset, negative for southern hemisphere
LINEAR_UNIT: Feet or meters
DESCRIPTION: LCP file description

Band

<band>_UNIT or <band>_OPTION: units or options code for the band
<band>_UNIT_NAME or <band>_OPTION_DESC: descriptive name of units/options
<band>_MIN: minimum value
<band>_MAX: maximum value
<band>_NUM_CLASSES: number of classes, -1 if > 100
<band>_VALUES: comma-delimited list of class values (fuel model band only)
<band>_FILE: original input raster file name for the band

Note: The LCP driver derives from the RawDataset helper class declared in gdal/frmts/raw. It should be implemented as gdal/frmts/raw/lcpdataset.cpp.

LCP header format:

Start byte No. of bytes Format Name Description
0 4 long crown fuels 20 if no crown fuels, 21 if crown fuels exist (crown fuels = canopy height, canopy base height, canopy bulk density)
4 4 long ground fuels 20 if no ground fuels, 21 if ground fuels exist (ground fuels = duff loading, coarse woody)
8 4 long latitude latitude (negative for southern hemisphere)
12 8 double loeast offset to preserve coordinate precision (legacy from 16-bit OS days)
20 8 double hieast offset to preserve coordinate precision (legacy from 16-bit OS days)
28 8 double lonorth offset to preserve coordinate precision (legacy from 16-bit OS days)
36 8 double hinorth offset to preserve coordinate precision (legacy from 16-bit OS days)
44 4 long loelev minimum elevation
48 4 long hielev maximum elevation
52 4 long numelev number of elevation classes, -1 if > 100
56 400 long elevation values list of elevation values as longs
456 4 long loslope minimum slope
460 4 long hislope maximum slope
464 4 long numslope number of slope classes, -1 if > 100
468 400 long slope values list of slope values as longs
868 4 long loaspect minimum aspect
872 4 long hiaspect maximum aspect
876 4 long numaspects number of aspect classes, -1 if > 100
880 400 long aspect values list of aspect values as longs
1280 4 long lofuel minimum fuel model value
1284 4 long hifuel maximum fuel model value
1288 4 long numfuel number of fuel models -1 if > 100
1292 400 long fuel values list of fuel model values as longs
1692 4 long locover minimum canopy cover
1696 4 long hicover maximum canopy cover
1700 4 long numcover number of canopy cover classes, -1 if > 100
1704 400 long cover values list of canopy cover values as longs
2104 4 long loheight minimum canopy height
2108 4 long hiheight maximum canopy height
2112 4 long numheight number of canopy height classes, -1 if > 100
2116 400 long height values list of canopy height values as longs
2516 4 long lobase minimum canopy base height
2520 4 long hibase maximum canopy base height
2524 4 long numbase number of canopy base height classes, -1 if > 100
2528 400 long base values list of canopy base height values as longs
2928 4 long lodensity minimum canopy bulk density
2932 4 long hidensity maximum canopy bulk density
2936 4 long numdensity number of canopy bulk density classes, -1 if >100
2940 400 long density values list of canopy bulk density values as longs
3340 4 long loduff minimum duff
3344 4 long hiduff maximum duff
3348 4 long numduff number of duff classes, -1 if > 100
3352 400 long duff values list of duff values as longs
3752 4 long lowoody minimum coarse woody
3756 4 long hiwoody maximum coarse woody
3760 4 long numwoodies number of coarse woody classes, -1 if > 100
3764 400 long woody values list of coarse woody values as longs
4164 4 long numeast number of raster columns
4168 4 long numnorth number of raster rows
4172 8 double EastUtm max X
4180 8 double WestUtm min X
4188 8 double NorthUtm max Y
4196 8 double SouthUtm min Y
4204 4 long GridUnits linear unit: 0 = meters, 1 = feet, 2 = kilometers
4208 8 double XResol cell size width in GridUnits
4216 8 double YResol cell size height in GridUnits
4224 2 short EUnits elevation units: 0 = meters, 1 = feet
4226 2 short SUnits slope units: 0 = degrees, 1 = percent
4228 2 short AUnits aspect units: 0 = Grass categories, 1 = Grass degrees, 2 = azimuth degrees
4230 2 short FOptions fuel model options: 0 = no custom models AND no conversion file, 1 = custom models BUT no conversion file, 2 = no custom models BUT conversion file, 3 = custom models AND conversion file needed
4232 2 short CUnits canopy cover units: 0 = categories (0-4), 1 = percent
4234 2 short HUnits canopy height units: 1 = meters, 2 = feet, 3 = m x 10, 4 = ft x 10
4236 2 short BUnits canopy base height units: 1 = meters, 2 = feet, 3 = m x 10, 4 = ft x 10
4238 2 short PUnits canopy bulk density units: 1 = kg/m^3, 2 = lb/ft^3, 3 = kg/m^3 x 100, 4 = lb/ft^3 x 1000
4240 2 short DUnits duff units: 1 = Mg/ha x 10, 2 = t/ac x 10
4242 2 short WOptions coarse woody options (1 if coarse woody band is present)
4244 256 char[] ElevFile elevation file name
4500 256 char[] SlopeFile slope file name
4756 256 char[] AspectFile aspect file name
5012 256 char[] FuelFile fuel model file name
5268 256 char[] CoverFile canopy cover file name
5524 256 char[] HeightFile canopy height file name
5780 256 char[] BaseFile canopy base file name
6036 256 char[] DensityFile canopy bulk density file name
6292 256 char[] DuffFile duff file name
6548 256 char[] WoodyFile coarse woody file name
6804 512 char[] Description LCP file description

Chris Toney, 2009-02-14