[software] [catdoc] [tcl] [geography] [old things]
[f(GIS) home]

Environmental Planning Utilities


Environmental planning utilities is set of stand-alone programs, which performs GIS operations on EPPL7 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 Tcl.

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 f(GIS).


EPU include:
  • border - 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 algorithm to do so, but it is still awaiting implementation. (man page)
  • cluster Assigns unique numbers to clusters of points in space which are separated by some boundaries. Curently supported types of boundaries include:
    1. Lines plotted in the raster with particular attribute (like EPPL7 cluster command).
    2. Class changes of the existing raster (counting unique polygons)
    3. Lines of vector file (like EPPL7 rasterize command). (buggy)
    Supports more up to 65534 polygons on map without limitations of EPPL7, which have troubles with more than 32767 temporary polygons. (man page).
  • fill - 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 (man page)
  • outtable - 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 cluster command. (man page)
  • intable - creates map from existing maps and substitution table (man page)
  • mapcalc - anything which can be compute from limited surrounding of point. Extendent descendant of EPPL7 evaluate command. Also replaces such EPPL commands as moving, jumping, neighbour and border (EPP version) (man page).

    Not written yet

  • mapclass which does same thing as mapcalc for maps whose values cannot be interpreted is numbers. Descendant of EPPL7 multi-file RECLASS command. (man page). See also reclass1

    Not written yet

  • thiessen - anything which requires computation of distance to far points. Replaces EPPL7 commands radius, buffer, guarded. Planned to overcome 16384 colums limitation of EPPL7 RADIUS command. (man page)

    Not written yet

  • interpolate spatial interpolations. Planned methods: Inverse distantion, Kriging, Landscape-oriented interpolation.

    Not written yet

  • transform anything which changes coordinate system, including projection transformation. Projection handling code is based on USGS Public Domain Projection program.

    Not written yet

  • conversion tools various format conversions. Currently only dgt2gen is written . Second most important part is epptoppm and ppmtoepp which would allow to interoperate with lots of formats already supported by netpbm library.
  • raster file manipulation tools - set of small things, which operate with raster files on low level. This includes eheader which views and edits header of EPP file (only program of EPU which can be compilied as 16-bit DOS application), window which cuts a rectangular region from map, mosaic which combines several maps together and clip which cuts a part from map using an area of given class from other maps as cutted region boundary.
  • extents print table of minimal and maximal coordinates for each class. (man page)
  • neighbours. - for each class in file prints list of classes, which are neighbouring to it. (man page).

System requirements

EPU should work on any system which is 32-bit and has ANSI C compilier. They have been tested under Linux, Solaris/Sparc and MS-DOS with DOS4GW 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.
[f(GIS) home]