Washington 30-meter DEM as big bils

This directory contains a Digital Elevation Model of Washington State west of the 120 meridian. A chunk of Oregon is included. Elevations at 30-meter intervals are given.

For your convenience, the area has been divided into 100km 100km squares, (adjusted to fit the underlaying 30-meter grid.) as shown. Each square has been written out as a band-interleaved-by-line (BIL) file. (We might call it a degenerate BIL or BIP file, as it has only one band.) The BIL file consists of a series of binary 16-bit integers describing each row from left to right, starting with the top row. ARC/INFO and arcview know about this format, as do many other software packages. ARC/INFO considers this an image. It can, with the supplemental grid package (aka spatial data analyst) be converted to a grid format for further analysis. Each bil file is accompanied by three small ASCII files. The blw and hdr files are necessary for reading and georeferencing the bil file. The stx file is used to for the display of the image.

Consider for example, elv5_51. The lower left corner has approximate UTM zone 10 coordinates of 500000 east, 5100000 north. elv5_51.blw reads:

These are the coefficients of a 33 transformation matrix. The xy coordinates of the upper-left point are 500010,5199990. If this is imported as an ARC/INFO grid, you we see the corner listed as 499995,5200005. That is the corner of the 30-meter square centered on the corner elevation. For more technical details, ask someone else.
Most of the data comes from USGS 30-meter DEMs, available as 7.5' ASCII files. Oregon data came from Oregon. Much of the data (shown in a missing illustration) were resampled from 10-meter DEMs, also available at my 10-meter page or the University of Washington Digital Map Library. Some (but not enough) shorelines were fixed. The ocean, and some lakes, are shown as zero meters high. A procedure
rename elv oldelv
nulls = con(isnull(oldelv),1)
groups = regiongroup(nulls,#,EIGHT)
fm = int(focalmean(oldelv,RECTANGLE,3,3,DATA))
elv = con(isnull(groups),oldelv,(groups.count le 2) AND (fm gt 20),fm,oldelv)

was used to eliminate erroneous null values, but further examination shows that it was too conservative to catch some big slivers in the south. (or have the 10-meter fixes eliminated this problem?)

Big data/big files


Full tiles are 22 megs, compressed files are as large as 15meg.
SW corner=300000 E, 5200000N
SW corner=300000 E, 5300000N
SW corner=400000 E, 5000000N (8/03/01)
SW corner=400000 E, 5100000N (8/03/01)
SW corner=400000 E, 5200000N
SW corner=400000 E, 5300000N
SW corner=400000 E, 5400000N
SW corner=500000 E, 5000000N (8/03/01)
SW corner=500000 E, 5100000N (8/03/01)
SW corner=500000 E, 5200000N
SW corner=500000 E, 5300000N
SW corner=500000 E, 5400000N
SW corner=600000 E, 5000000N (8/03/01)
SW corner=600000 E, 5100000N
SW corner=600000 E, 5200000N
SW corner=600000 E, 5300000N
SW corner=600000 E, 5400000N
SW corner=700000 E, 5000000N (8/03/01)
SW corner=700000 E, 5100000N
SW corner=700000 E, 5200000N
SW corner=700000 E, 5300000N
SW corner=700000 E, 5400000N

duff home page
Good luck fromHarvey Greenberg, your Web and GIS curator