<html>
<head>
	<title>Leveller --- Daylon Leveller heightfield</title>
</head>

<body bgcolor="#ffffff">

<h1>Leveller --- Daylon Leveller Heightfield</h1>

Leveller heightfields store 32-bit elevation values.
Format versions 4 through 9 are supported with various caveats
(see below). The file extension for Leveller heightfields is "TER" (which
is the same as Terragen, but the driver only recognizes Leveller files).<p>

Blocks are organized as pixel-high scanlines (rows), with the first scanline
at the top (north) edge of the DEM, and adjacent pixels on each line
increasing from left to right (west to east).<p>

The band type is always Float32, even though format versions 4 and 5
physically use 16.16 fixed-point. The driver auto-converts them to
floating-point.<p>


<h2>Reading</h2>
<tt>dataset::GetProjectionRef()</tt> will return only a local coordinate system
for file versions 4 through 6.<p>

<tt>dataset::GetGeoTransform()</tt> returns a simple world scaling with a centered
origin for formats 4 through 6. For versions 7 and higher, it returns a real-world transform
except for rotations. The identity transform is not considered an error condition;
Leveller documents often use them.<p>

<tt>band::GetUnitType()</tt> will report the measurement units used
by the file instead of converting unusual types to meters.
A list of unit types is in the <tt>levellerdataset.cpp</tt> module.<p>

<tt>band::GetScale()</tt> and <tt>band::GetOffset()</tt> will
return the physical-to-logical (i.e., raw to real-world) transform
for the elevation data.<p>


<h2>Writing</h2>
The <tt>dataset::Create()</tt> call is supported, but for version 7 files only.<p>

<tt>band::SetUnitType()</tt> can be set to any of the unit types listed
in the <tt>levellerdataset.cpp</tt> module.<p>

<tt>dataset::SetGeoTransform()</tt> should not include rotation data.<p>

As with the Terragen driver, the <tt>MINUSERPIXELVALUE</tt> option must be
specified. This lets the driver correctly map from logical (real-world) elevations
to physical elevations.<p>

Header information is written out on the first call to <tt>band::IWriteBlock</tt>.<p>

<h2>History</h2>
v1.3 (Aug 30/14): Added v9 read support, fixed missing typecast warnings.<p>
v1.2 (Jul 17/07): Added v7 and Create support.<p>
v1.1 (Oct 20/05): Fixed coordsys and elev scaling errors.<p>

<h2>See Also:</h2>

<ul>
<li> Implemented as <tt>gdal/frmts/leveller/levellerdataset.cpp</tt>.<p>

<li> Visit <a href="http://www.daylongraphics.com">Daylon Graphics</a>
for the Leveller SDK, which documents the Leveller format.<p>

</ul>


</body>
</html>