--- /dev/null
+<HTML>
+<HEAD>
+<TITLE>Environmental Planning Utilities</TITLE>
+</HEAD>
+<BODY>
+[<A HREF=index.html><I>f(</I><B>GIS</B><I>)</I> home</A>]
+<HR>
+<H1>Environmental Planning Utilities</H1>
+
+<H3>Overview</H3>
+Environmental planning utilities is set of stand-alone programs, which
+performs GIS operations on <A HREF="http://www.mnplan.state.mn.us/EPPL7/">EPPL7</A> data files. EPPL stands for "Environmental Planning Program Language". When I begin to reimplement some EPPL commands trying to overcome some
+limitations of 16-bit DOS environment, I found that it is complete waste of effort - attempt to implement yet another scripting language while we have such
+a wonderful things as Unix shell or <A HREF=http://www.scriptics.com>Tcl</A>.
+<P>
+So, it is not a language, but set of utilities. They are designed to operate
+non-interactively, from batch files or scripts. Interactive front end is
+provided by <A HREF=index.html><I>f(</I><B>GIS</B><I>)</I></A>.
+<P>
+<H3>Utilities</H3>
+
+EPU include:
+ <UL>
+ <LI><B>border</B> - converts raster to vector by plotting vector
+ lines on every class change of vector file. Exceeds some limitation
+ of EPPL7 border command and have more elaborate algorithm of line
+ smoothing, but currently is not able to label polygons with points
+ and generate Arc/Info-like topology. I've invented
+ <A HREF=topology.html>algorithm</A> to do
+ so, but it is still awaiting implementation.
+ (<A HREF=man/border.1.html>man page</A>)
+ <LI><B>cluster</B> Assigns unique numbers to clusters of points in
+ space which are separated by some boundaries. Curently supported
+ types of boundaries include:
+ <OL>
+ <LI>Lines plotted in the raster with particular attribute
+ (like EPPL7 <B>cluster</B> command).
+ <LI>Class changes of the existing raster (counting unique polygons)
+ <LI>Lines of vector file (like EPPL7 <B>rasterize</B> command).
+ (<B>buggy</B>)
+ </OL>
+ Supports more up to 65534 polygons on map without limitations of EPPL7, which have troubles with more than 32767 temporary polygons.
+ <A HREF=man/cluster.1.html>(man page)</a>.
+ <LI><B>fill</B> - Fills small holes in raster data files left after
+ rasterization or combining of several maps.
+ Returns non-zero exit code if there are some holes left and another
+ pass is neccessary (<A HREF=man/fill.1.html>man page</A>)
+
+ <LI><B>outtable</B> - computes tabular reports from set of maps.
+ Works siginificantly faster than EPPL outtable due to different
+ storage structures, especially on files which are results from
+ <B>cluster</B> command. (<A HREF=man/outtable.1.html>man page</A>)
+ <LI><B>intable</B> - creates map from existing maps and
+ substitution table (<A HREF=man/intable.1.html>man page</A>)
+ <LI><B>mapcalc</B> - anything which can be compute from limited
+ surrounding of point. Extendent descendant of
+ EPPL7 <B>evaluate</B> command. Also replaces such EPPL commands
+ as <B>moving</B>, <B>jumping</B>, <B>neighbour</B> and <B>border</B>
+ (EPP version) (<A HREF=man/mapcalc.1.html>man page</A>).
+ <P>
+ <B>Not written yet</B>
+ <P>
+ <LI><B>mapclass</B> which does same thing as mapcalc for maps
+ whose values cannot be interpreted is numbers. Descendant of
+ EPPL7 multi-file <B>RECLASS</B> command. <A
+ HREF=man/mapclass.1.html>(man page)</a>. See also <A
+ HREF=man/reclass1.1.html>reclass1</a>
+ <P>
+ <B>Not written yet</B>
+ <P>
+ <LI><B>thiessen</B> - anything which requires computation of distance
+to far points. Replaces EPPL7 commands <B>radius</B>, <B> buffer</B>,
+ <B>guarded</B>. Planned to overcome 16384 colums limitation of EPPL7
+ RADIUS command.
+ (<A HREF=man/thiessen.1.html>man page</A>)
+
+ <P>
+ <B>Not written yet</B>
+ <P>
+ <LI><B>interpolate</B> spatial interpolations. Planned methods:
+ Inverse distantion, Kriging, <A HREF=/~vitus/loi.html>Landscape-oriented interpolation</A>.
+ <P>
+ <B>Not written yet</B>
+ <P>
+ <LI><B>transform</B> anything which changes coordinate system,
+ including projection transformation. Projection handling code is
+ based on <A HREF="http://kai.er.usgs.gov">USGS Public Domain
+Projection program.</A>
+ <P>
+ <B>Not written yet</B>
+ <P>
+ <LI><B>conversion tools</B> various format conversions. Currently
+ only <a href=man/dgt2gen.1.html>dgt2gen</a> is written . Second most important part is
+ <B>epptoppm</B> and <B>ppmtoepp</B> which would allow to interoperate
+ with lots of formats already supported by netpbm library.
+
+ <LI><B>raster file manipulation tools</B> - set of small things,
+ which operate with raster files on low level. This includes
+ <A HREF=man/eheader.1.html>eheader</a> which views and edits
+ header of EPP file (only program of EPU which can be compilied
+ as 16-bit DOS application), <A
+ HREF=man/window.1.html>window</a> which cuts a rectangular region from
+ map, <A HREF=man/mosaic.1.html>mosaic</a> which combines several maps
+ together and <A HREF=man/clip.1.html>clip</a> which cuts a part
+ from map using
+ an area of given class from other maps as cutted region boundary.
+ <LI><b>extents</b> print table of minimal and maximal
+coordinates for each class. (<A href=man/extents.1.html>man page</a>)
+ <LI><b>neighbours</b>. - for each class in file prints list
+ of classes, which are neighbouring to it.
+ (<a href=man/neighbours.1.html>man page</a>).
+ </UL>
+<H3>System requirements</H3>
+
+EPU should work on any system which is 32-bit and has ANSI C compilier.
+They have been tested under <B>Linux</B>, <B>Solaris/Sparc</B> and
+<B>MS-DOS</B> with <B>DOS4GW</B> extender (Watcom C 10.0). It is essential
+that system should support concept of standard input/output and exit codes,
+so porting to Win32 should be trivial, but porting to MacOS would require
+major redesign.
+
+<HR>
+[<A HREF=index.html><I>f(</I><B>GIS</B><I>)</I> home</A>]
+</BODY>
+</HTML>