LCP -- FARSITE v.4 LCP Format

Driver short name

LCP

Driver built-in by default

This driver is built-in by default

FARSITE v. 4 landscape file (LCP) is a multi-band raster format used by wildland fire behavior and fire effect simulation models such as FlamMap (firelab.org). The bands of an LCP file store data describing terrain, tree canopy, and surface fuel. The LANDFIRE Program provides geospatial data in LCP format to support fire simulation modeling.

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 reports several band-level metadata items described below. The band names used are: ELEVATION, SLOPE, ASPECT, FUEL_MODEL, CANOPY_COV, CANOPY_HT, CBH, CBD, DUFF and CWD.

The LCP driver reads the linear unit, cell size, and extent, but the .lcp file does not specify a projection internally. UTM projections are typical, but other projections are possible. The driver will look for a file with .prj extension and read the coordinate system in ESRI pseudo-OGC WKT format.

LCP does not support an inherent no data value, but -9999 is used by convention to mark pixels that are not valid data.

Driver capabilities

Supports CreateCopy()

This driver supports the GDALDriver::CreateCopy() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

Metadata

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 frmts/raw. It should be implemented as lcpdataset.cpp.

Creation Options

The LCP driver supports CreateCopy() and metadata values can be set via creation options. Below is a list of options with default values listed first.

  • ELEVATION_UNIT=[METERS/FEET]: Defaults to METERS. Vertical unit for elevation band.

  • SLOPE_UNIT=[DEGREES/PERCENT]: Defaults to DEGREES.

  • ASPECT_UNIT=[AZIMUTH_DEGREES/GRASS_CATEGORIES/GRASS_DEGREES]: Defaults to AZIMUTH_DEGREES.

  • FUEL_MODEL_OPTION=[NO_CUSTOM_AND_NO_FILE/CUSTOM_AND_NO_FILE/NO_CUSTOM_AND_FILE/CUSTOM_AND_FILE]: Defaults to NO_CUSTOM_AND_NO_FILE. Specify whether or not custom fuel models are used, and if a custom fuel model file is present.

  • CANOPY_COV_UNIT=[PERCENT/CATEGORIES]: Defaults to PERCENT.

  • CANOPY_HT_UNIT=[METERS_X_10/FEET/METERS/FEET_X_10]: Defaults to METERS_X_10.

  • CBH_UNIT=[METERS_X_10/METERS/FEET/FEET_X_10]: Defaults to METERS_X_10.

  • CBD_UNIT=[KG_PER_CUBIC_METER_X_100/POUND_PER_CUBIC_FOOT/KG_PER_CUBIC_METER/POUND_PER_CUBIC_FOOT_X_1000/TONS_PER_ACRE_X_100]: Defaults to KG_PER_CUBIC_METER_X_100.

  • DUFF_UNIT=[MG_PER_HECTARE_X_10/TONS_PER_ACRE_X_10]: Defaults to MG_PER_HECTARE_X_10.

  • CALCULATE_STATS=[YES/NO]: Defaults to YES. Calculate and write the min/max for each band and write the appropriate flags and values in the header. This is mostly a legacy feature used for creating legends.

  • CLASSIFY_DATA=[YES/NO]: Defaults to YES. Classify the data into 100 unique values or less and write and write the appropriate flags and values in the header. This is mostly a legacy feature used for creating legends.

  • LINEAR_UNIT=[SET_FROM_SRS/METER/FOOT/KILOMETER]: Defaults to SET_FROM_SRS. Set the linear unit, overriding (if it can be calculated) the value in the associated spatial reference. If no spatial reference is available, it defaults to METER.

  • LATITUDE=-90-90: Override the latitude from the spatial reference. If no spatial reference is available, this should be set, otherwise creation will fail.

  • DESCRIPTION=value: A short description(less than 512 characters) of the dataset

Creation options that are units of linear measure are fairly lenient. METERS=METER and FOOT=FEET for the most part.

Note: CreateCopy does not scale or change any data. By setting the units for various bands, it is assumed that the values are in the specified units.

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