]> wagner.pp.ru Git - sites/home_page.git/commitdiff
Added fGIS
authorVictor Wagner <vitus@wagner.pp.ru>
Sat, 25 Feb 2006 14:08:38 +0000 (14:08 +0000)
committerVictor Wagner <vitus@wagner.pp.ru>
Sat, 25 Feb 2006 14:08:38 +0000 (14:08 +0000)
28 files changed:
geography/fGIS/EPU.html [new file with mode: 0644]
geography/fGIS/TODO.txt [new file with mode: 0644]
geography/fGIS/concept.html [new file with mode: 0644]
geography/fGIS/concepts.html [new file with mode: 0644]
geography/fGIS/drawing-modes.gif [new file with mode: 0644]
geography/fGIS/index.html [new file with mode: 0644]
geography/fGIS/install.html [new file with mode: 0644]
geography/fGIS/levels.gif [new file with mode: 0644]
geography/fGIS/lib_doc.pdf [new file with mode: 0755]
geography/fGIS/man/border.1.html [new file with mode: 0644]
geography/fGIS/man/clip.1.html [new file with mode: 0644]
geography/fGIS/man/cluster.1.html [new file with mode: 0644]
geography/fGIS/man/eheader.1.html [new file with mode: 0644]
geography/fGIS/man/extents.1.html [new file with mode: 0644]
geography/fGIS/man/fgisRasterColorImage.n.html [new file with mode: 0644]
geography/fGIS/man/legend.n.html [new file with mode: 0644]
geography/fGIS/man/mosaic.1.html [new file with mode: 0644]
geography/fGIS/man/neighbours.1.html [new file with mode: 0644]
geography/fGIS/man/outtable.1.html [new file with mode: 0644]
geography/fGIS/man/palette.n.html [new file with mode: 0644]
geography/fGIS/man/planchet.n.html [new file with mode: 0644]
geography/fGIS/man/projection.n.html [new file with mode: 0644]
geography/fGIS/man/raster.n.html [new file with mode: 0644]
geography/fGIS/man/reclass1.1.html [new file with mode: 0644]
geography/fGIS/man/window.1.html [new file with mode: 0644]
geography/fGIS/tclext.html [new file with mode: 0644]
geography/fGIS/topology.html [new file with mode: 0644]
geography/index.html

diff --git a/geography/fGIS/EPU.html b/geography/fGIS/EPU.html
new file mode 100644 (file)
index 0000000..596966b
--- /dev/null
@@ -0,0 +1,125 @@
+<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 &quot;Environmental Planning Program Language&quot;. 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>
diff --git a/geography/fGIS/TODO.txt b/geography/fGIS/TODO.txt
new file mode 100644 (file)
index 0000000..0c9dbc0
--- /dev/null
@@ -0,0 +1,82 @@
+Near future
+
+Fgis tcl extension:
+
+1. Compile tcl extension for NT/Win 95
+
+2. Finish pattern handling (patterns set index xbm-data)
+
+3. Write drawing of patterned raster
+
+4. Write projection object
+
+5. Finish editing primitives
+
+6. Separate tk-dependent part from non-GUI part of C code.
+
+Tcl scripts
+
+1. Invent interface to call EPU from within TCL
+
+2. Complete chart (choropleth) type of layer
+
+3. Write tag (point) type of layer
+
+4. Invent standartized interface to SQL databases (Postgres, Oracle,
+   ODBC for start)
+
+5. Write ``object'' layer  - collection of arbitrary Tk canvas items,
+   which are treated as layer and can be saved and loaded
+
+6. Add grid visualisation code to planchet
+
+7. Write postgres Tcl-dbi module. Polish TclDBI for Oracle, ODBC and
+   postgres and include them into distribution
+
+8. Finish layer properties dialog in mapview
+
+EPU
+
+1. Debug outtable
+
+2. Write projection conversion tool
+
+3. Write evaluate AKA mapcalc
+
+4. Do something with border and debug rasterize
+
+5. Write ppmtoepp and epptoppm converters
+
+6. Design and write RADIUS
+
+7. Design and write INTERPOLATE
+
+8. Design and write mapclass
+
+Distribution:
+
+1. Polish top-level Makefile
+
+2. Provide example dataset
+
+3. Write installation program for Win32 binary distr.
+
+4. Separate third-party extensions like Hobbs' megawidgets from
+   home-grown scripts
+
+5. Put binary distribution of Tcl with neccessary extensions
+   on ftp 
+
+Documentation
+
+1. Fill holes in docs for already written commands
+
+3. Translte epp_lib docs to English
+
+4. Complete (and translate to english) EPU manual
+
+IDEAS TO CONSIDER
+
+fGIS user environment should be able to store layers in RCS
+
+Invent and document, and eventually implement, vector format
diff --git a/geography/fGIS/concept.html b/geography/fGIS/concept.html
new file mode 100644 (file)
index 0000000..ddddc78
--- /dev/null
@@ -0,0 +1,313 @@
+<HTML>
+<HEAD>
+<TITLE>fGIS Concept</TITLE>
+</HEAD>
+<BODY>
+<H1>ëÏÎÃÅÐÃÉÑ ÆÕÎËÃÉÏÎÁÌØÎÏÊ GIS</H1>
+
+<blockquote>
+ <font color="#AA0000"><B>üÔÏÔ ÄÏËÕÍÅÎÔ ÕÓÔÁÒÅÌ!</b></font><i>
+ ôÅËÕÝÅÅ ÏÐÉÓÁÎÉÅ ËÏÎÃÅÐÃÉÉ ÉÍÅÅÔÓÑ ÔÏÌØËÏ × <a href="concepts.html">×
+ÁÎÇÌÉÊÓËÏÊ ×ÅÒÓÉÉ</a>, ËÁËÏ×ÏÅ ÐÏÌÏÖÅÎÉÅ É ÓÏÈÒÁÎÉÔÓÑ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ
+ËÔÏ-ÎÉÂÕÄØ ÉÚ ÒÕÓÓËÏÑÚÙÞÎÙÈ ÞÌÅÎÏ× ËÏÍÁÎÄÙ ÎÅ ×ÏÚØÍÅÔÓÑ ÐÏÄÄÅÒÖÉ×ÁÔØ
+ÒÕÓÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁÃÉÉ. õ ÍÅÎÑ ÐÒÏÓÔÏ ÎÅÔ ÓÉÌ ÎÁ Ä×Å ×ÅÒÓÉÉ
+ÄÏËÕÍÅÎÔÁÃÉÉ
+ÏÄÎÏ×ÒÅÍÅÎÎÏ, ÐÏÜÔÏÍÕ Ñ ÐÏÄÄÅÒÖÉ×ÁÀ ÔÏÌØËÏ ÁÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ, ËÁË
+ÄÏÓÔÕÐÎÙÊ ÂÏÌØÛÅÍÕ ÞÉÓÌÕ ÐÏÔÅÎÃÉÁÌØÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ.</i>
+</blockquote>
+<!--CONTENT NUMBERED BACKREFS--><OL>
+<LI><A NAME="toc_entry0"></A><A HREF="#toc_section0"> ïÐÒÅÄÅÌÅÎÉÅ</A>
+<LI><A NAME="toc_entry1"></A><A HREF="#toc_section1"> ôÏÞÎÏÓÔØ ËÁÒÔÙ.</A>
+<LI><A NAME="toc_entry2"></A><A HREF="#toc_section2"> çÄÅ ÖÅ ËÏÎÔÕÒ?</A>
+<LI><A NAME="toc_entry3"></A><A HREF="#toc_section3"> ïÐÅÒÁÃÉÉ Ó ËÁÒÔÁÍÉ.</A>
+<LI><A NAME="toc_entry4"></A><A HREF="#toc_section4">÷ÉÚÕÁÌÉÚÁÃÉÑ ËÁÒÔ É ÍÅÔÁÄÁÎÎÙÅ.</A>
+<LI><A NAME="toc_entry5"></A><A HREF="#toc_section5">íÁÓÛÔÁÂÎÙÊ ÒÑÄ ÉÌÉ ÉÅÒÁÒÈÉÑ ÒÅÇÉÏÎÏ×</A>
+<LI><A NAME="toc_entry6"></A><A HREF="#toc_section6">ðÒÉÎÃÉÐÙ ÐÏÓÔÒÏÅÎÉÑ ÓÉÓÔÅÍÙ</A>
+<LI><A NAME="toc_entry7"></A><A HREF="#toc_section7">á×ÔÏÍÁÔÉÞÅÓËÁÑ ÁËÔÕÁÌÉÚÁÃÉÑ ËÁÒÔ.</A>
+</OL>
+<!-- END CONTENT -->
+
+
+÷ ÄÁÎÎÏÍ ÔÅËÓÔÅ ÐÒÅÄÌÁÇÁÅÔÓÑ ÎÏ×ÙÊ ÐÏÄÈÏÄ Ë ÐÒÅÄÓÔÁ×ÌÅÎÉÀ 
+ÐÒÏÓÔÒÁÎÓÔ×ÅÎÎÏÊ ÉÎÆÏÒÍÁÃÉÉ. ïΠÎÅ ÓÏ×ÓÅÍ ÎÏ×ÙÊ. íÎÏÇÉÅ ÓÕÝÅÓÔ×ÕÀÝÉÅ
+çéó, ÏÓÏÂÅÎÎÏ ÏÒÉÅÎÔÉÒÏ×ÁÎÎÙÅ ÎÁ ÏÂÒÁÂÏÔËÕ ÓÎÉÍËÏ×, ÎÅÑ×ÎÏ ÉÓÐÏÌØÚÕÀÔ
+ÅÇÏ. îÏ ÎÉËÔÏ ÅÝÅ ÎÅ ÐÙÔÁÌÓÑ × Ñ×ÎÏÍ ×ÉÄÅ ÓÆÏÒÍÕÌÉÒÏ×ÁÔØ ÅÇÏ É ÐÏËÁÚÁÔØ
+ÅÇÏ ÄÏÓÔÁÔÏÞÎÏÓÔØ ÄÌÑ ÂÏÌØÛÉÎÓÔ×Á çéó-ÚÁÄÁÞ.
+<P>
+<A NAME="toc_section0"></A><A HREF="#toc_entry0"><h3> ïÐÒÅÄÅÌÅÎÉÅ</H3></A>
+  îÁÚÏ×ÅÍ <I>ËÁÒÔÏÊ</I> ÆÕÎËÃÉÀ ÏÔ ËÏÏÒÄÉÎÁÔ, ÏÐÒÅÄÅÌÅÎÎÕÀ ÎÁ ÎÅËÏÔÏÒÏÍ
+  ÐÏÄÍÎÏÖÅÓÔ×Å ÐÏ×ÅÒÈÎÏÓÔÉ ÚÅÍÎÏÇÏ ÛÁÒÁ É ÐÒÉÎÉÍÁÀÝÕÀ ÌÉÂÏ ÞÉÓÌÏ×ÙÅ
+  (×ÅÝÅÓÔ×ÅÎÎÙÅ) ÚÎÁÞÅÎÉÑ, ÌÉÂÏ ÚÎÁÞÅÎÉÑ ÉÚ ËÁËÏÇÏ-ÔÏ ËÏÎÅÞÎÏÇÏ ÍÎÏÖÅÓÔ×Á.
+  <P>
+  ðÏÞÅÍÕ ÜÔÏÇÏ ÄÏÓÔÁÔÏÞÎÏ?
+  <OL>  
+  <LI> ïÂÌÁÓÔØ ÏÐÒÅÄÅÌÅÎÉÑ ÍÏÖÅÔ ÂÙÔØ ÌÉÂÏ ÎÅÐÒÅÒÙ×ÎÙÍ ÕÞÁÓÔËÏÍ ÔÅÒÒÉÔÏÒÉÉ,
+    ÅÓÌÉ ÎÁÓ ÉÎÔÅÒÅÓÕÅÔ ÆÅÎÏÍÅÎ, ÉÍÅÀÝÉÊ ÐÌÏÝÁÄÎÕÀ ÐÒÉÒÏÄÕ,
+    ÌÉÂÏ ÍÎÏÖÅÓÔ×ÏÍ ÌÉÎÉÊ (ÄÏÒÏÖÎÁÑ ÓÅÔØ, ÒÅÞÎÁÑ ÓÅÔØ), ÌÉÂÏ ËÏÎÅÞÎÙÍ 
+ÍÎÏÖÅÓÔ×ÏÍ ÉÚÏÌÉÒÏ×ÁÎÎÙÈ ÔÏÞÅË (ÎÁÓÅÌÅÎÎÙÅ ÐÕÎËÔÙ, ÔÏÞËÉ ÏÐÒÏÂÏ×ÁÎÉÑ).
+  <P>
+   ïÞÅ×ÉÄÎÏ, ÞÔÏ ×ÓÅ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÓÐÏÓÏÂÙ ËÁÒÔÏÇÒÁÆÉÞÅÓËÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ
+   ÐÏÚ×ÏÌÑÀÔ ÉÚÏÂÒÁÚÉÔØ ÏÂßÅËÔÙ, ÏÔÎÏÓÑÝÉÅÓÑ Ë ÏÄÎÏÊ ÉÚ ÔÒÅÈ ÜÔÉÈ ÇÒÕÐÐ.
+
+   <LI> ìÀÂÏÊ ÐÁÒÁÍÅÔÒ, ËÏÔÏÒÙÊ ÍÙ ÍÏÖÅÍ ÉÚÏÂÒÁÚÉÔØ  ÎÁ ËÁÒÔÅ, ÌÉÂÏ 
+   ËÏÌÉÞÅÓÔ×ÅÎÎÙÊ, ÌÉÂÏ ËÁËÉÍ-ÔÏ ÏÂÒÁÚÏÍ ËÌÁÓÓÉÆÉÃÉÒÏ×ÁÎ. åÓÌÉ ÍÙ ÒÁÓÓÍÏÔÒÉÍ
+   ËÌÁÓÓÉÆÉËÁÃÉÀ ËÁË ËÏÎÅÞÎÏÅ ÍÎÏÖÅÓÔ×Ï ËÌÁÓÓÏ×, ÔÏ ÓÔÁÎÅÔ ÏÞÅ×ÉÄÎÏ, ÞÔÏ
+   ×ÓÅ ËÁÒÔÙ ËÁÞÅÓÔ×ÅÎÎÙÈ ÐÒÉÚÎÁËÏ× (ÐÏÞ×ÅÎÎÙÅ, ÒÁÓÔÉÔÅÌØÎÙÅ É ÄÁÖÅ ÁÄÍÉÎÉÓÔÒÁ-
+   ÔÉ×ÎÏÅ ÒÁÊÏÎÉÒÏ×ÁÎÉÅ) ÐÏÐÁÄÁÀÔ ÐÏÄ ÎÁÛÅ ÏÐÒÅÄÅÌÅÎÉÅ.
+  </OL>
+åÄÉÎÓÔ×ÅÎÎÏÅ × ÎÁÛÅÍ ÏÐÒÅÄÅÌÅÎÉÉ, ÞÔÏ ÍÏÖÅÔ ×ÏÚÍÕÔÉÔØ ÞÅÌÏ×ÅËÁ, ÐÒÉ×ÙËÛÅÇÏ
+ÒÁÂÏÔÁÔØ Ó ÂÕÍÁÖÎÙÍÉ ËÁÒÔÁÍÉ, ÜÔÏ ÔÏ, ÞÔÏ ÍÙ ÐÏÚ×ÏÌÑÅÍ ËÁÒÔÅ ÉÚÏÂÒÁÖÁÔØ ÔÏÌØËÏ
+ÏÄÉΠÐÏËÁÚÁÔÅÌØ, × ÔÏ ×ÒÅÍÑ ËÁË ÎÁ ÂÕÍÁÖÎÙÈ ËÁÒÔÁÈ ÏÂÙÞÎÏ ÏÄÎÏ×ÒÅÍÅÎÎÏ
+ÉÚÏÂÒÁÖÁÅÔÓÑ ÎÅÓËÏÌØËÏ ÔÅÍÁÔÉÞÅÓËÉ ÓÈÏÄÎÙÈ ÐÏËÁÚÁÔÅÌÅÊ, ÎÅ ÓÞÉÔÁÑ 
+ÏÂÝÅÇÅÏÇÒÁÆÉÞÅÓËÏÊ ÓÉÔÕÁÃÉÉ. 
+<P>
+íÙ ÎÁÍÅÒÅÎÎÏ ÉÄÅÍ ÎÁ ÜÔÏ ÏÇÒÁÎÉÞÅÎÉÅ, ÐÏÓËÏÌØËÕ ÏÎÏ ÏÂÌÅÇÞÁÅÔ ÄÁÌØÎÅÊÛÕÀ
+ÒÁÂÏÔÕ Ó ËÁÒÔÁÍÉ. òÁÚÄÅÌÉ× ËÁÖÄÕÀ ÉÓÈÏÄÎÕÀ ËÁÒÔÕ ÎÁ ÎÅÓËÏÌØËÏ ÓÌÏÅ×,
+ËÁÖÄÙÊ ÉÚ ËÏÔÏÒÙÈ ÏÔ×ÅÞÁÅÔ ÔÏÌØËÏ ÚÁ ÏÄÉΠÐÏËÁÚÁÔÅÌØ, ÍÙ ÐÏÌÕÞÁÅÍ ÐÏÌÎÕÀ
+Ó×ÏÂÏÄÕ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÐÒÏÉÚ×ÏÄÎÙÈ ËÁÒÔ. íÙ ÍÏÖÅÍ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÉ 
+ÁÎÁÌÉÚÅ ÌÀÂÙÅ ÐÏËÁÚÁÔÅÌÉ, ÎÅ ÏÂÒÁÝÁÑ ×ÎÉÍÁÎÉÅ ÎÁ ÔÏ, ËÁËÉÍ ÐÕÔÅÍ 
+ÜÔÁ ÉÎÆÏÒÍÁÃÉÑ ÐÏÌÕÞÅÎÁ. ÷ÓÅ ËÁÒÔÙ Õ ÎÁÓ ÎÅÚÁ×ÉÓÉÍÙ É ÒÁ×ÎÏÐÒÁ×ÎÙ.
+
+<A NAME="toc_section1"></A><A HREF="#toc_entry1"><H3> ôÏÞÎÏÓÔØ ËÁÒÔÙ.</H3></A>
+
+ìÀÂÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÒÅÁÌØÎÏ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÏÂßÅËÔÁÈ ÉÍÅÅÔ ÏÇÒÁÎÉÞÅÎÎÕÀ ÔÏÞÎÏÓÔØ.
+ðÏÜÔÏÍÕ ÎÕÖÎÏ ××ÅÓÔÉ ÓÐÏÓÏ ÏÃÅÎËÉ ÔÏÞÎÏÓÔÉ ËÁÒÔ. 
+õ ÐÒÏÂÌÅÍÙ ÔÏÞÎÏÓÔÉ ËÁÒÔÙ ÅÓÔØ Ä×Å ÓÔÏÒÏÎÙ:
+<OL>
+ <LI> ôÏÞÎÏÓÔØ ÏÐÒÅÄÅÌÅÎÉÑ ËÏÏÒÄÉÎÁÔ
+ <LI> ôÏÞÎÏÓÔØ ÉÎÆÏÒÍÁÃÉÉ Ï ÚÎÁÞÅÎÉÉ ËÁÒÔÙ.
+</OL>
+ôÏÞÎÏÓÔØ ÏÐÒÅÄÅÌÅÎÉÑ ËÏÏÒÄÉÎÁÔ ÜË×É×ÁÌÅÎÔÎÁ ÔÏÞÎÏÓÔÉ ÐÒÏ×ÅÄÅÎÉÑ
+ËÏÎÔÕÒÏ× ÉÓÈÏÄÎÏÊ ËÁÒÔÙ É ÏÂÙÞÎÏ ÎÅ ÐÒÅ×ÙÛÁÅÔ 1-2 ÍÍ × ÍÁÓÛÔÁÂÅ ÉÓÈÏÄÎÏÊ
+ËÁÒÔÙ. ïÐÒÅÄÅÌÅÎÎÙÅ ÐÏÇÒÅÛÎÏÓÔÉ ×ÎÏÓÉÔ É ××ÏÄ ËÁÒÔ × ÍÁÛÉÎÕ, ÎÏ ÏÎÉ
+ÏÂÙÞÎÏ ÎÁ ÐÏÒÑÄÏË ÍÅÎØÛÅ.
+<P>
+÷ ËÁÞÅÓÔ×Å ÏÃÅÎËÉ ËÏÏÒÄÉÎÁÔÎÏÊ ÔÏÞÎÏÓÔÉ ËÁÒÔÙ ÍÙ ÂÕÄÅÍ ÉÓÐÏÌØÚÏ×ÁÔØ
+ÐÒÏÓÔÒÁÎÓÔ×ÅÎÎÏÅ ÒÁÚÒÅÛÅÎÉÅ. üÔÏ ÍÉÎÉÍÁÌØÎÏÅ ÒÁÓÓÔÏÑÎÉÅ ÍÅÖÄÕ ÔÏÞËÁÍÉ
+× ËÏÔÏÒÙÈ ËÁÒÔÁ ÍÏÖÅÔ ÉÍÅÔØ ÒÁÚÌÉÞÎÙÅ ÚÎÁÞÅÎÉÅ. ôÅ ËÏÍÕ ÐÒÉÈÏÄÉÌÏÓØ
+ÒÁÂÏÔÁÔØ Ó ÏÔÓËÁÎÉÒÏ×ÁÎÎÙÍÉ ÉÚÏÂÒÁÖÅÎÉÑÍÉ ÓÒÁÚÕ ÚÁÍÅÔÑÔ ÓÈÏÄÓÔ×Ï 
+ÜÔÏÇÏ ÐÏÎÑÔÉÑ Ó ÒÁÚÒÅÛÅÎÉÅÍ ÒÁÓÔÒÏ×ÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ. üÔÏ ÄÅÊÔÓ×ÉÔÅÌØÎÏ
+ÏÄÎÏ É ÔÏ ÖÅ ÐÏÎÑÔÉÅ, ÐÏÓËÏÌØËÕ ÄÌÑ ÈÒÁÎÅÎÉÑ ËÁÒÔ ÉÓÐÏÌØÚÕÅÔÓÑ ÒÁÓÔÒÏ×ÙÊ
+ÆÏÒÍÁÔ.
+<P>
+þÔÏ ËÁÓÁÅÔÓÑ ÔÏÞÎÏÓÔÉ ÚÎÁÞÎÅÎÉÊ, ÔÏ ÔÕÔ ×ÏÐÒÏÓ ÂÏÌÅÅ ÓÌÏÖÎÙÊ. 
+äÁÔØ ÆÏÒÍÁÌÉÚÏ×ÁÎÎÕÀ ÏÃÅÎËÕ ÔÏÞÎÏÓÔÉ ËÌÁÓÓÉÆÉËÁÃÉÉ ÎÅÌØÚÑ, ÅÓÌÉ ÔÏÌØËÏ
+ÜÔÁ ËÌÁÓÓÉÆÉËÁÃÉÑ ÎÅ ÐÏÌÕÞÅÎÁ × ÒÅÚÕÌØÔÁÔÅ ËÁËÏÇÏ-ÌÉÂÏ ÓÔÁÔÉÓÔÉÞÅÓËÏÇÏ
+ÍÅÔÏÄÁ.
+<P>
+ôÅÏÒÉÑ ÔÏÞÎÏÓÔÉ ÉÚÍÅÒÅÎÉÊ ËÏÌÉÞÅÓÔ×ÅÎÎÙÈ ÐÏËÁÚÁÔÅÌÅÊ É ÔÏÞÎÏÓÔÉ 
+ÉÎÔÅÒÐÏÌÑÃÉÉ, ÎÁÐÒÏÔÉ×, ÈÏÒÏÛÏ ÒÁÚÒÁÂÏÔÁÎÁ.
+<P>
+ëÒÏÍÅ ÔÏÇÏ ÓÕÝÅÓÔ×ÕÅÔ ÔÏÞÎÏÓÔØ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÞÉÓÅÌ × ËÏÍÐØÀÔÅÒÅ.
+<P>
+ðÏÜÔÏÍÕ ÄÌÑ ËÁÒÔ ËÏÌÉÞÅÓÔ×ÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ËÒÏÍÅ ÒÁÚÒÅÛÅÎÉÑ ÉÓÐÏÌØÚÕÅÔÓÑ
+ÐÏÎÑÔÉÅ Z-ÔÏÞÎÏÓÔÉ - ÍÉÎÉÍÁÌØÎÁÑ ÒÁÚÎÉÃÁ ÍÅÖÄÕ ÚÎÁÞÅÎÉÑÍÉ ËÁÒÔÙ,
+ÐÒÉ ËÏÔÏÒÙÈ ÜÔÉ ÚÎÁÞÅÎÉÑ ÓÞÉÔÁÀÔÓÑ ÎÅÒÁ×ÎÙÍÉ. Z-ÔÏÞÎÏÓÔØ ÜÔÏ
+
+<A NAME="toc_section2"></A><A HREF="#toc_entry2"><H3> çÄÅ ÖÅ ËÏÎÔÕÒ?</H3></A>
+
+÷Ï ×ÓÅÍ ×ÙÛÅÉÚÌÏÖÅÎÎÏÍ ÞÅÌÏ×ÅË ÐÒÉ×ÙËÛÉÊ ÒÁÂÏÔÁÔØ Ó ËÁÒÔÁÍÉ ÎÅ ÎÁÊÄÅÔ
+ÏÄÎÏÇÏ ×ÁÖÎÏÇÏ ÐÏÎÑÔÉÑ - ËÏÎÔÕÒÁ. åÇÏ ÚÄÅÓØ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÅÔ.
+<P>
+ëÏÎÔÕÒ ÜÔÏ Ó×ÑÚÎÏÅ ÍÎÏÖÅÓÔ×Ï ÔÏÞÅË, × ËÏÔÏÒÙÈ ËÁÒÔÁ ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÏÅ ÚÎÁÞÅÎÉÅ.
+åÓÌÉ ÍÙ ÒÁÓÓÍÏÔÒÉÍ ËÁÒÔÕ ËÏÌÉÞÅÓÔ×ÅÎÎÏÇÏ ÐÏËÁÚÁÔÅÌÑ, ËÏÔÏÒÁÑ ÏÂÙÞÎÏ
+ÉÚÏÂÒÁÖÁÅÔÓÑ Ó ÐÏÍÏÝØÀ ÐÏÓÌÏÊÎÏÊ ÒÁÓËÒÁÓËÉ, ÔÏ ÍÙ Õ×ÉÄÉÍ, ÞÔÏ
+ËÏÎÔÕÒ ÚÄÅÓØ - ÏÂÌÁÓÔØ × ËÏÔÏÒÏÊ ÚÎÁÞÅÎÉÑ ÐÏËÁÚÁÔÅÌÑ ÚÁËÌÀÞÅÎÙ × ÏÐÒÅÄÅÌÅÎÎÏÍ
+ÉÎÔÅÒ×ÁÌÅ - ÏÔ ÏÄÎÏÊ ÉÚÏÌÉÎÉÉ ÄÏ ÓÏÓÅÄÎÅÊ. åÓÌÉ ÍÙ ÉÚÍÅÎÉÍ ÇÒÁÎÉÃÙ
+ÉÎÔÅÒ×ÁÌÏ×, ÉÚÍÅÎÉÔÓÑ É ×ÓÑ ËÏÎÔÕÒÎÁÑ ÓÅÔØ, ÈÏÔÑ ÓÁÍÁ ËÁÒÔÁ, ÔÏ ÅÓÔØ
+ÐÒÏÓÔÒÁÎÓÔ×ÅÎÎÏÅ ÒÁÓÐÒÅÄÅÌÅÎÉÅ ÚÎÁÞÅÎÉÊ ÐÏËÁÚÁÔÅÌÑ, ÏÓÔÁÌÁÓØ ÐÒÅÖÎÅÊ.
+<P>
+äÌÑ ËÁÒÔ ËÌÁÓÓÉÆÉËÁÃÉÊ ËÏÎÔÕÒ --- ×ÅÝØ ÂÏÌÅÅ ÕÓÔÏÊÞÉ×ÁÑ. ïΠÍÏÖÅÔ
+ÉÚÍÅÎÉÔØÓÑ ÅÓÌÉ ÐÏ ËÁËÉÍ-ÔÏ ÐÒÉÞÉÎÁÍ ÉÚÍÅÎÉÔÓÑ ËÌÁÓÓÉÆÉËÁÃÉÑ ÌÉÂÏ
+ÎÁÛÉ ÚÎÁÎÉÑ Ï ÔÅÒÒÉÔÏÒÉÉ. 
+<P>
+ðÏÜÔÏÍÕ ÄÌÑ ÜÔÉÈ ËÁÒÔ ×ÏÚÍÏÖÎÁ ÒÁÂÏÔÁ ÎÁ ÕÒÏ×ÎÅ ËÏÎÔÕÒÏ×. ÷ ÏÓÎÏ×ÎÏÍ
+ÏÐÅÒÁÃÉÉ Ó ËÏÎÔÕÒÁÍÉ ÜÔÏ ÉÈ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ, ËÏÔÏÒÏÅ
+Ó ÔÏÞËÉ ÚÒÅÎÉÑ ÆÕÎËÃÉÏÎÁÌØÎÏÊ ËÁÒÔÙ ÏÚÎÁÞÁÅÔ: ÍÙ ×ÙÄÅÌÑÅÍ ËÁËÕÀ-ÔÏ ÇÒÕÐÐÕ
+ÔÏÞÅË (ÎÁÐÒÉÍÅÒ, ÎÁÒÉÓÏ×Á× ÚÁÍËÎÕÔÕÀ ÌÉÎÉÀ) É ÇÏ×ÏÒÉÍ: ÚÎÁÞÅÎÉÅ ËÁÒÔÙ
+× ÜÔÉÈ ÔÏÞËÁÈ ÔÅÐÅÒØ ÂÕÄÅÔ ÔÁËÏÅ-ÔÏ.
+<P>
+ïÞÅ×ÉÄÎÏ, ÜÔÏÊ ÏÐÅÒÁÃÉÅÊ ÎÁÄÏ ÐÏÌØÚÏ×ÁÔØÓÑ Ó ÏÓÔÏÒÏÖÎÏÓÔØÀ, ÏÓÔÁ×É×
+ÅÇÏ ÄÌÑ ÜÔÁÐÏ× ÐÅÒ×ÉÞÎÏÇÏ ××ÏÄÁ ÉÎÆÏÒÍÁÃÉÉ É ÅÅ ÏÂÎÏ×ÌÅÎÉÑ.
+
+<A NAME="toc_section3"></A><A HREF="#toc_entry3"><H3> ïÐÅÒÁÃÉÉ Ó ËÁÒÔÁÍÉ.</H3></A>
+
+ôÅÐÅÒØ ÐÅÒÅÊÄÅÍ Ë ÔÏÍÕ, ÄÌÑ ÞÅÇÏ ×ÓÅ ÜÔÏ ÚÁÔÅ×ÁÌÏÓØ - Ë ÏÐÅÒÁÃÉÑÍ ÁÎÁÌÉÚÁ
+ËÁÒÔ.
+<P>
+éÈ ÍÏÖÎÏ ÓÒÁÚÕ ÒÁÚÄÅÌÉÔØ ÎÁ Ä×Å ÂÏÌØÛÉÅ ÇÒÕÐÐÙ:
+<OL>
+<LI> ëÏÇÄÁ ÎÁÍ × ÒÅÚÕÌØÔÁÔÅ ÎÕÖÎÏ ÐÏÌÕÞÉÔØ ËÁÒÔÕ
+<LI> ëÏÇÄÁ × ÒÅÚÕÌØÔÁÔÅ ÍÙ ÐÏÌÕÞÁÅÍ ËÁËÕÀ-ÔÏ ÓÕÍÍÁÒÎÕÀ ÉÎÆÏÒÍÁÃÉÀ
+  (ÏÂÙÞÎÏ × ÆÏÒÍÅ ÔÁÂÌÉÃÙ).
+</OL>
+ïÇÒÁÎÉÞÉÍÓÑ ÐÏËÁ ÐÅÒ×ÏÊ ÇÒÕÐÐÏÊ ÏÐÅÒÁÃÉÊ.
+<P>1. úÁÞÁÓÔÕÀ, ÞÔÏÂÙ ÐÏÌÕÞÉÔØ ÉÎÔÅÒÅÓÕÀÝÉÊ ÎÁÓ ÐÏËÁÚÁÔÅÌØ × ËÁËÏÊ-ÔÏ
+ÔÏÞËÅ, ÎÁÍ
+ÄÏÓÔÁÔÏÞÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÌØËÏ ÚÎÁÞÅÎÉÑ ÎÅËÏÔÏÒÙÈ ÄÒÕÇÉÈ ÐÏËÁÚÁÔÅÌÅÊ
+× ÔÏÊ ÖÅ ÔÏÞËÅ.
+<P>
+îÁÐÒÉÍÅÒ, ÄÌÑ ÒÁÓÞÅÔÁ ÐÏÔÅÎÃÉÁÌØÎÏÊ ÜÒÏÚÉÉ ÎÁÍ ÎÕÖÎÙ Ó×ÅÄÅÎÉÑ Ï
+ÍÅÈÁÎÉÞÅÓËÏÍ ÓÏÓÔÁ×Å ÐÏÞ×, ÕËÌÏÎÁÈ, ÄÌÉÎÅ ÓËÌÏÎÏ×, ÎÁÐÏÞ×ÅÎÎÏÍ ÐÏËÒÏ×Å
+É Ô.Ä. åÓÌÉ ×ÓÅ ÜÔÉ ÄÁÎÎÙÅ ÅÓÔØ Õ ÎÁÓ × ×ÉÄÅ ËÁÒÔ, ÔÏ ÐÒÉÍÅÎÉ×
+ÉÚ×ÅÓÔÎÏÅ ÕÒÁ×ÎÅÎÉÅ Ë ËÁÖÄÏÊ ÔÏÞËÅ ÔÅÒÒÉÔÏÒÉÉ, ÍÙ ÐÏÌÕÞÉÍ ÎÏ×ÕÀ ËÁÒÔÕ.
+<P>
+ôÒÁÄÉÃÉÏÎÎÏ × ÄÌÑ ÜÔÏÇÏ ÓÎÁÞÁÌÁ ÎÁËÌÁÄÙ×ÁÀÔ ÄÒÕÇ ÎÁ ÄÒÕÇÁ ×ÓÅ ÉÓÈÏÄÎÙÅ
+ËÁÒÔÙ É ÐÏÌÕÞÁÀÔ ÓÅÔËÕ ÍÉÎÉÍÁÌØÎÙÈ ËÏÎÔÕÒÏ×, × ËÏÔÏÒÙÈ ×ÓÅ ÉÓÈÏÄÎÙÅ
+ÐÏËÁÚÁÔÅÌÉ ÏÄÎÏÒÏÄÎÙ, Á ÐÏÔÏÍ ÄÌÑ ËÁÖÄÏÇÏ ÔÁËÏÇÏ ËÏÎÔÕÒÁ ÒÁÓÞÉÔÙ×ÁÀÔ
+ÉÔÏÇÏ×ÙÊ ÐÏËÁÚÁÔÅÌØ.
+<P>
+åÓÌÉ ÖÅ ÍÙ ×ÙÐÏÌÎÉÍ ÒÁÓÓÞÅÔ ÄÌÑ ËÁÖÄÏÊ ÔÏÞËÉ ËÁÒÔÙ (Á ÉÈ ËÏÎÅÞÎÏÅ ÞÉÓÌÏ,
+ÐÏÓËÏÌØËÕ ×ÓÅ ÉÓÈÏÄÎÙÅ ËÁÒÔÙ ÉÍÅÀÔ ËÏÎÅÞÎÏÅ ÒÁÚÒÅÛÅÎÉÅ), ÔÏ
+ÉÔÏÇÏ×ÙÅ ËÏÎÔÕÒÁ ÏÂÒÁÚÕÀÔÓÑ ÓÁÍÉ, ËÁË ÇÒÕÐÐÙ ÔÏÞÅË ÇÄÅ ×ÙÞÉÓÌÅÎÎÙÊ
+ÐÏËÁÚÁÔÅÌØ ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÙÅ ÚÎÁÞÅÎÉÑ.
+<P>
+íÁÔÅÍÁÔÉÞÅÓËÉ ÜÔÏ ÏÐÉÓÙ×ÁÅÔÓÑ ÐÏÎÑÔÉÅÍ ÆÕÎËÃÉÏÎÁÌÁ - ÏÐÅÒÁÃÉÉ,
+ËÏÔÏÒÁÑ ÐÏ ÎÅÓËÏÌØËÉÍ ÉÓÈÏÄÎÙÍ ÆÕÎËÃÉÑÍ ÓÔÒÏÉÔ ÒÅÚÕÌØÔÉÒÕÀÝÕÀ.
+<P>
+ó ÐÒÁËÔÉÞÅÓËÏÊ ÔÏÞËÉ ÚÒÅÎÉÑ ÐÒÏ×ÅÓÔÉ ×ÙÞÉÓÌÅÎÉÑ × ÎÅÓËÏÌØËÉÈ ÍÉÌÌÉÏÎÁÈ
+ÔÏÞÅË ÇÏÒÁÚÄÏ ÂÙÓÔÒÅÅ, ÞÅÍ ×ÙÞÉÓÌÑÔØ ÐÅÒÅÓÅÞÅÎÉÑ ÓÏÔÅΠËÏÎÔÕÒÏ×.
+<P>
+2. éÎÏÇÄÁ ÄÌÑ ×ÙÞÉÓÌÅÎÉÑ ÚÎÁÞÅÎÉÑ ÐÏËÁÚÁÔÅÌÑ × ÔÏÞËÅ ÎÁÍ ÎÕÖÎÁ
+ ÉÎÆÏÒÍÁÃÉÑ Ï ÎÅËÏÔÏÒÏÊ ÏËÒÅÓÔÎÏÓÔÉ ÜÔÏÊ ÔÏÞËÅ (ÔÅÏÒÅÔÉÞÅÓËÉ -
+× ÂÅÓËÏÎÅÞÎÏ ÍÁÌÏÊ, ÎÁ ÐÒÁËÔÉËÅ - ÎÅ ÍÅÎØÛÅ ÒÁÚÒÅÛÅÎÉÑ ËÁÒÔÙ)
+ëÌÁÓÓÉÞÅÓËÉÊ ÐÒÉÍÅÒ ÔÁËÏÊ ÚÁÄÁÞÉ - ÎÁÈÏÖÄÅÎÉÅ ÕËÌÏÎÏ× ÐÏ
+ÇÉÐÓÏÍÅÔÒÉÞÅÓËÏÊ ËÁÒÔÅ. äÒÕÇÏÊ, ÓÔÏÌØ ÖÅ ÈÁÒÁËÔÅÒÎÙÊ ÐÒÉÍÅÒ - ÔÅËÓÔÕÒÁ
+ÉÚÏÂÒÁÖÅÎÉÑ ÎÁ ÁÜÒÏÆÏÔÏÓÎÉÍËÅ.
+<P>
+3. é, ÎÁËÏÎÅÃ, ÉÎÏÇÄÁ ÎÁÍ ÎÕÖÎÙ ÕÄÁÌÅÎÎÙÅ ÔÏÞËÉ, ÏÂÌÁÄÁÀÝÉÅ
+ÏÐÒÅÄÅÌÅÎÎÙÍÉ Ó×ÏÊÓÔ×ÁÍÉ. îÁÐÒÉÍÅÒ, ×Ï ÍÎÏÇÉÈ ÚÁÄÁÞÁÈ ÒÁÚÍÅÝÅÎÉÑ 
+ÎÁÓ ÉÎÔÅÒÅÓÕÅÔ ÒÁÓÓÔÏÑÎÉÅ ÄÏ ÂÌÉÖÁÊÛÅÊ ÄÏÒÏÇÉ, ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ
+ËÁÒÔ ÈÉÍÉÞÅÓËÏÇÏ ÓÏÓÔÁ×Á ÎÁÓ ÉÎÔÅÒÅÓÕÀÔ ÎÅÓËÏÌØËÏ ÂÌÉÖÁÊÛÉÈ ÔÏÞÅË
+ÏÐÒÏÂÏ×ÏÁÎÉÑ.
+<P>
+éÎÔÅÒÅÓÎÏÊ ÔÅÍÏÊ ÄÌÑ ÉÓÓÌÅÄÏ×ÁÎÉÑ Ñ×ÌÑÅÔÓÑ ×ÏÚÍÏÖÎÏÓÔØ ËÏÍÐÏÚÉÃÉÉ
+ÆÕÎËÃÉÏÎÁÌÏ×, ÐÏÓËÏÌØËÕ ÒÁÂÏÔÁ Ó ËÏÍÐÏÚÉÃÉÑÍÉ ÆÕÎËÃÉÏÎÁÌÏ×
+ÐÏÚ×ÏÌÑÅÔ ÓÞÉÔÁÔØ ÓÌÏÖÎÙÅ ÍÏÄÅÌÉ ÚÁ ÏÄÉΠÐÒÏÈÏÄ, ÂÅÚ ÓÏÚÄÁÎÉÑ
+ÓÌÏÖÎÙÈ ÐÒÏÍÅÖÕÔÏÞÎÙÈ ËÁÒÔ.
+<P>
+ïÞÅ×ÉÄÎÏ, Ë ÏÐÅÒÁÃÉÑÍ 1-Ê ÇÒÕÐÐÙ ËÏÍÐÏÚÉÃÉÑ ÐÒÉÍÅÎÉÍÁ ×ÓÅÇÄÁ
+z=f(g(x)) ÐÏÓÞÉÔÁÔØ ÎÅ ÓÌÏÖÎÅÅ ÞÅÍ y=g(x) z=f(y).
+<P>
+óÌÏÖÎÅÅ Ó ÏÐÅÒÁÃÉÑÍÉ ×ÔÏÒÏÊ ÇÒÕÐÐÙ, ÐÏÓËÏÌØËÕ ÅÓÌÉ × ×ÙÞÉÓÌÅÎÉÉ 
+f(x) ÕÞÁÓÔ×ÕÀÔ ÚÎÁÞÅÎÉÑ g(x+dx) ÉÈ ÎÁÄÏ ×ÙÞÉÓÌÉÔØ ÚÁÒÁÎÅÅ, Á ÅÓÌÉ
+É ÏÎÉ ÔÒÅÂÕÀÔ ÏËÒÅÓÔÎÏÓÔÉ... óÒÁ×ÎÉÔÅ, ÎÁÐÒÉÍÅÒ, Ó ÆÏÒÍÕÌÏÊ ×ÔÏÒÏÊ
+ÐÒÏÉÚ×ÏÄÎÏÊ ÓÌÏÖÎÏÊ ÆÕÎËÃÉÉ.
+<P>
+åÓÌÉ ÖÅ ÒÅÞØ ÉÄÅÔ Ï ÎÅÌÏËÁÌØÎÙÈ ÏÐÅÒÁÃÉÑÈ, ÔÁËÉÈ ËÁË ÂÕÆÅÒÉÚÁÃÉÑ
+É ÉÎÔÅÒÐÏÌÑÃÉÑ, ÂÅÚ ÓÏÈÒÁÎÅÎÉÑ ÐÒÏÍÅÖÕÔÏÞÎÙÈ ÒÅÚÕÌØÔÁÔÏ× × ×ÉÄÅ
+ËÁÒÔ ×ÉÄÉÍÏ ÎÅ ÏÂÏÊÔÉÓØ.
+<P>
+
+<A NAME="toc_section4"></A><A HREF="#toc_entry4"><H3>÷ÉÚÕÁÌÉÚÁÃÉÑ ËÁÒÔ É ÍÅÔÁÄÁÎÎÙÅ.</H3></A>
+
+äÁÔØ ÓÔÒÏÇÏÅ ÍÁÔÅÍÁÔÉÞÅÓËÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ËÁÒÔÙ ËÏÎÅÞÎÏ ÈÏÒÏÛÏ, ÎÏ
+ÉÓÓÌÅÄÏ×ÁÔÅÌÉ ÐÒÉ×ÙËÌÉ ×ÉÄÅÔØ ËÁÒÔÕ ÐÅÒÅÄ ÇÌÁÚÁÍÉ. 
+<P>
+üÔÏ ËÁË ÒÁÚ ÔÏ, ÞÅÇÏ ÎÅ ÐÏÚ×ÏÌÑÀÔ ÓÕÝÅÓÔ×ÕÀÝÉÅ çéó. ÷ ÎÉÈ ÓÏÚÄÁÎÉÅ
+ËÁÒÔÏÇÒÁÆÉÞÅÓËÏÊ ËÏÍÐÏÚÉÃÉÉ ÎÁ ÜËÒÁÎÅ ÉÌÉ ÎÁ ÂÕÍÁÇÅ - ÄÌÉÔÅÌØÎÙÊ
+É ÓÌÏÖÎÙÊ ÐÒÏÃÅÓÓ, ÓÏ×ÅÒÛÅÎÎÏ ÎÅ Ó×ÑÚÁÎÎÙÊ Ó ÓÏÂÓÔ×ÅÎÎÏ ÐÒÏÓÔÒÁÎÓÔ×ÅÎÎÙÍ
+ÁÎÁÌÉÚÏÍ É ÍÏÄÅÌÉÒÏ×ÁÎÉÅÍ. 
+<P>
+äÁ, ÓÔÁÄÉÑ ÄÉÚÁÊÎÁ ÎÅÏÂÈÏÄÉÍÁ, ËÏÇÄÁ ×Ù ÇÏÔÏ×ÉÔÅ ËÁÒÔÕ ÄÌÑ ÐÕÂÌÉËÁÃÉÉ,
+ÎÏ ×ÏÚÍÏÖÎÏÓÔØ ÂÙÓÔÒÏ Õ×ÉÄÅÔØ ÒÅÚÕÌØÔÁÔ ËÁËÏÊ-ÔÏ ÏÐÅÒÁÃÉÉ × ÂÏÌÅÅ
+ÍÅÎÅÅ ÁÄÅË×ÁÔÎÙÈ ËÁÒÔÏÇÒÁÆÉÞÅÓËÉÈ ÚÎÁËÁÈ ÍÏÖÅÔ ÉÚÂÁ×ÉÔØ ÏÔ ÍÎÏÖÅÓÔ×Á
+ÏÛÉÂÏË.
+<P>
+æÕÎËÃÉÏÎÁÌØÎÙÅ ËÁÒÔÙ ÍÏÇÕÔ ÐÏÍÏÞØ É ÚÄÅÓØ.
+ðÏÓËÏÌØËÕ ËÁÖÄÁÑ ËÁÒÔÁ Õ ÎÁÓ ÏÔÏÂÒÁÖÁÅÔ ÒÏ×ÎÏ ÏÄÉΠÐÏËÁÚÁÔÅÌØ,
+ÍÙ ÍÏÖÅÍ Ó×ÑÚÁÔØ ÓÐÏÓÏ ËÁÒÔÏÇÒÁÆÉÞÅÓËÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ
+Ó ÍÎÏÖÅÓÔ×ÏÍ ÚÎÁÞÅÎÉÊ ËÁÒÔÙ. (×Ï ÍÎÏÇÉÈ ÏÂÌÁÓÔÑÈ ÎÁÕË Ï ÚÅÍÌÅ ÜÔÏ
+ÕÖÅ É ÔÁË ÓÄÅÌÁÎÏ - ÓÕÝÅÓÔ×ÕÀÔ ÓÔÁÎÄÁÒÔÎÙÅ Ã×ÅÔÁ ÄÌÑ ÔÉÐÏ× ÐÏÞ× ÉÌÉ
+ÇÅÏÈÒÏÎÏÌÏÇÉÞÅÓËÉÈ ÜÐÏÈ).
+<P>
+ðÏÓÌÅ ÜÔÏÇÏ, ÐÏÓÔÒÏÉ× ËÁÒÔÕ ÍÙ ÍÏÖÅÍ ÎÅÍÅÄÌÅÎÎÏ ÅÅ ÉÚÏÂÒÁÚÉÔØ × 
+ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÕÓÌÏ×ÎÙÈ ÚÎÁËÁÈ, Á ÚÁÄÁÞÁ ÄÉÚÁÊÎÁ ËÁÒÔÏÇÒÁÆÉÞÅÓËÏÊ
+ËÏÍÐÏÚÉÃÉÉ ÒÁÓÐÁÄÁÅÔÓÑ ÎÁ ÓÏÚÄÁÎÉÅ ÎÁÂÏÒÁ ÚÎÁËÏ× ÄÌÑ ËÁÖÄÏÇÏ
+ÐÏËÁÚÁÔÅÌÑ É ÉÚÏÂÒÁÖÅÎÉÅ ÎÁ ÏÄÎÏÍ ÌÉÓÔÅ ÔÅÈ ÓÌÏÅ×, ËÏÔÏÒÙÅ ÔÅÍÁÔÉÞÅÓËÉ
+ÉÎÔÅÒÅÓÎÏ ÒÁÓÓÍÁÔÒÉ×ÁÔØ ×ÍÅÓÔÅ, ÔÁË , ÞÔÏÂÙ ÏÎÉ ÎÅ ÍÅÛÁÌÉ ÄÒÕÇ ÄÒÕÇÕ.
+<P>
+<A NAME="toc_section5"></A><A HREF="#toc_entry5"><H3>íÁÓÛÔÁÂÎÙÊ ÒÑÄ ÉÌÉ ÉÅÒÁÒÈÉÑ ÒÅÇÉÏÎÏ×</H3></A>.
+äÁÌÅËÏ ÎÅ ×ÓÅÇÄÁ ÒÁÂÏÔÁ Ó ËÁÒÔÁÍÉ Ó×ÏÄÉÔÓÑ Ë ÒÁÂÏÔÅ Ó ÏÄÎÏÊ É ÔÏÊ ÖÅ 
+ÔÅÒÒÉÔÏÒÉÅÊ. äÏÓÔÁÔÏÞÎÏ ÞÁÓÔÏ ÐÒÉÈÏÄÉÔÓÑ ÉÍÅÔØ ÄÅÌÏ Ó ÉÅÒÁÒÈÉÅÊ
+ÍÁÓÛÔÁÂÏ× É ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÅÊ ÉÅÒÁÒÈÉÅÊ ÔÅÒÒÉÔÏÒÉÊ.
+<P>
+ðÒÉ ÜÔÏÍ ÉÓÐÏÌØÚÕÅÍÙÅ ËÁÒÔÏÇÒÁÆÉÞÅÓËÉÅ ÐÒÏÅËÃÉÉ É ËÌÁÓÓÉÆÉËÁÃÉÉ
+ËÁÞÅÓÔ×ÅÎÎÙÈ ÐÏËÁÚÁÔÅÌÅÊ (ÐÏÞ×, ÒÁÓÔÉÔÅÌØÎÏÓÔÉ É Ô.Ä.) ÚÁËÏÎÏÍÅÒÎÏ
+ÍÅÎÑÀÔÓÑ Ó ÉÚÍÅÎÅÎÅÍ ÍÁÓÛÔÁÂÁ.
+<P>
+äÁÌÅËÏ ÎÅ ×ÓÅÇÄÁ ÎÁ ÎÕÖÎÏÍ ÍÁÓÛÔÁÂÎÏÍ ÕÒÏ×ÎÅ ÅÓÔØ ×ÓÑ ÎÅÏÂÈÏÄÉÍÁÑ
+ÉÎÆÏÒÍÁÃÉÑ. ðÏÜÔÏÍÕ ÞÁÓÔÏ ×ÏÚÎÉËÁÅÔ ÚÁÄÁÞÁ ÌÉÂÏ ÓÏÂÒÁÔØ ËÁÒÔÕ
+ÉÚ ÂÏÌÅÅ ËÒÕÐÎÏÍÁÓÛÔÁÂÎÙÈ ËÕÓËÏ×, Ó ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÇÅÎÅÒÁÌÉÚÁÃÉÅÊ,
+ÌÉÂÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÒÁÇÍÅÎÔ ÂÏÌÅÅ ÍÅÌËÏÍÁÓÛÔÁÂÎÏÊ ËÁÒÔÙ. ðÏÔÅÒÑ ÔÏÞÎÏÓÔÉ
+ÔÕÔ ÎÅÉÚÂÅÖÎÁ, ÎÏ ÞÁÓÔÏ ÌÕÞÛÅ ÎÅÔÏÞÎÙÅ ÄÁÎÎÙÅ, ÞÅÍ ÎÉËÁËÉÈ.
+<P>
+ðÏÜÔÏÍÕ ÍÙ ××ÏÄÉÍ ËÏÎÃÅÐÃÉÀ ÒÅÇÉÏÎÁ. òÅÇÉÏΠÜÔÏ ÇÒÕÐÐÁ ËÁÒÔ ÎÁ ÏÄÎÕ
+É ÔÕ ÖÅ ÔÅÒÒÉÔÏÒÉÀ. ÷ÓÅ ËÁÒÔÙ ÒÅÇÉÏÎÁ ÉÍÅÀÔ ÏÄÎÕ É ÔÕ ÖÅ ËÏÏÒÄÉÎÁÔÎÕÀ
+ÓÉÓÔÅÍÕ (ËÁÒÔÏÇÒÁÆÉÞÅÓËÕÀ ÐÒÏÅËÃÉÀ) ÎÏ ÍÏÇÕÔ ÒÁÚÌÉÞÁÔØÓÑ ÐÏ ÒÁÚÒÅÛÅÎÉÀ.
+ðÏÓÌÅÄÎÅÅ ÎÅ ÍÅÛÁÅÔ ÓÏ×ÍÅÓÔÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ × ÁÎÁÌÉÚÅ. 
+äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ ËÁÒÔÕ ÉÚ ÄÒÕÇÏÇÏ ÒÅÇÉÏÎÁ ×ÍÅÓÔÅ Ó ËÁÒÔÁÍÉ
+ÔÅËÕÝÅÇÏ, ÅÅ ÎÁÄÏ ÓËÏÐÉÒÏ×ÁÔØ × ÜÔÏÔ ÒÅÇÉÏÎ. ðÒÉ ÜÔÏÍ ÏÎÁ ÂÕÄÅÔ
+Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÅÏÂÒÁÚÏ×ÁÎÁ × ÎÕÖÎÕÀ ÐÒÏÅËÃÉÀ, ÎÏ ÓÏÈÒÁÎÉÔ Ó×ÏÅ ÏÒÉÇÉÎÁÌØÎÏÅ
+ÒÁÚÒÅÛÅÎÉÅ É ÌÅÇÅÎÄÕ. åÅ ÇÅÎÅÒÁÌÉÚÁÃÉÑ (ÕÍÅÎØÛÅÎÉÅ ÒÁÚÒÅÛÅÎÉÑ) É
+ÐÅÒÅËÌÁÓÓÉÆÉËÁÃÉÑ ÌÅÇÅÎÄÙ - ÄÅÌÏ ÐÏÌØÚÏ×ÁÔÅÌÑ.
+<P>
+òÅÇÉÏÎÙ ÉÍÅÀÔ ÉÅÒÁÒÈÉÞÅÓËÕÀ ÓÉÓÔÅÍÕ ÓÏÐÏÄÞÉÎÅÎÉÑ. ðÏËÁÖÅÍ, ÞÔÏ ÜÔÏ
+ÔÁËÏÅ ÎÁ ÐÒÉÍÅÒÅ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÇÏ ÄÅÌÅÎÉÑ òÏÓÓÉÉ.
+<P>
+òÅÇÉÏΠ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ - òÏÓÓÉÑ × ÃÅÌÏÍ. èÁÒÁËÔÅÒÎÏÅ ÒÁÚÒÅÛÅÎÉÅ 1-2ËÍ,
+ ÐÒÏÅËÃÉÑ ÓËÏÒÅÅ ×ÓÅÇÏ ËÏÎÉÞÅÓËÁÑ.
+÷ ÜÔÏÔ ÒÅÇÉÏΠ×ÈÏÄÑÔ 86 ÐÏÄÒÅÇÉÏÎÏ× - ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÏÂÌÁÓÔÅÊ.
+òÁÚÒÅÛÅÎÉÅ × ÎÉÈ ÏÔ 500 ÄÏ 100 Í, Á ÐÒÏÅËÃÉÑ ÍÏÖÅÔ ÂÙÔØ ËÏÎÉÞÅÓËÏÊ,
+ËÏÓÏÊ ÁÚÉÍÕÔÁÌØÎÏÊ ÉÌÉ UTM(çÁÕÓÓÁ), × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÒÁÚÍÅÒÏ× ÏÂÌÁÓÔÉ.
+<P>
+åÓÌÉ ÄÅÌÅÎÉÅ ÏÄÎÏÇÏ ÒÅÇÉÏÎÁ ÓÒÁÚÕ ÎÁ 86 ÞÁÓÔÅÊ ËÁÖÅÔÓÑ ÓÌÉÛËÏÍ ÍÅÌËÉÍ,
+ÍÏÖÎÏ ××ÅÓÔÉ ÐÒÏÍÅÖÕÔÏÞÎÙÊ ÕÒÏ×ÅÎØ ÜËÏÎÏÍÉÞÅÓËÉÈ ÒÁÊÏÎÏ×.
+<P>
+ëÁÖÄÁÑ ÏÂÌÁÓÔØ ÓÏÓÔÏÉÔ ÉÚ ÒÁÊÏÎÏ×. ðÒÉ ÎÁÌÉÞÉÉ ÉÓÈÏÄÎÙÈ ÄÁÎÎÙÈ
+ÍÏÖÎÏ ××ÅÓÔÉ ÅÝÅ É ÐÏÄÒÅÇÉÏÎÙ ÄÌÑ ÒÁÊÏÎÏ× - ÏÔÄÅÌØÎÙÅ ÈÏÚÑÊÓÔ×Á Ó
+ÒÁÚÒÅÛÅÎÉÅÍ ÐÏÒÑÄËÁ ÍÅÔÒÏ× (ÍÁÓÛÔÁ 1:5000 - 1:10000)
+<P>
+óÉÓÔÅÍÁ ÐÏÚ×ÏÌÑÅÔ ÐÅÒÅÊÔÉ ÎÁ ÓÏÓÅÄÎÉÊ ÕÒÏ×ÅÎØ × ÜÔÏÊ ÉÅÒÁÒÈÉÉ - ÌÉÂÏ
+ÐÏÄÎÑÔØÓÑ ××ÅÒÈ × ÏÂßÅÍÌÀÝÉÊ ÒÅÇÉÏÎ, ÌÉÂÏ, ×ÙÂÒÁ× ÎÕÖÎÙÊ ÐÏÄÒÅÇÉÏÎ
+ÎÁ ÓÐÅÃÉÁÌØÎÏÊ ËÁÒÔÅ (× ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÊ) ÐÅÒÅÊÔÉ
+× ÎÅÇÏ.
+<P>
+ðÒÉ ËÏÐÉÒÏ×ÁÎÉÉ ËÁÒÔÙ Ó ÎÉÖÎÅÇÏ ÕÒÏ×ÎÑ ÎÁ ×ÅÒÈÎÉÊ, ÏÎÁ ËÏÐÉÒÕÅÔÓÑ
+ÃÅÌÉËÏÍ, Á ×ÏÔ ÐÒÉ ÏÂÒÁÔÎÏÍ ËÏÐÉÒÏ×ÁÎÉÉ ×ÏÚÎÉËÁÅÔ ÚÁÄÁÞÁ ×ÙÒÅÚÁÎÉÑ
+ÎÕÖÎÏÇÏ ËÕÓËÁ. ïÄÉΠÉÚ ×ÏÚÍÏÖÎÙÈ ÐÕÔÅÊ ÅÅ ÒÅÛÅÎÉÑ - ÉÍÅÔØ × ËÁÖÄÏÍ
+ÒÅÇÉÏÎÅ ÓÐÅÃÉÁÌØÎÕÀ ËÁÒÔÕ (×ÉÄÉÍÏ, ÔÕ ÖÅ, ËÏÔÏÒÁÑ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ
+ÐÏÉÓËÁ ÓÕÂÒÅÇÉÏÎÏ×), ÏÂÌÁÓÔØ ÏÐÒÅÄÅÌÅÎÉÑ ËÏÔÏÒÏÊ ÓÏ×ÐÁÄÁÅÔ ÓÏ ×ÓÅÊ
+ÔÅÒÒÉÔÏÒÉÅÊ ÒÅÇÉÏÎÁ, É ÐÏÌØÚÏ×ÁÔØÓÑ ÅÊ ËÁË ÍÁÓËÏÊ.
+
+<A NAME="toc_section6"></A><A HREF="#toc_entry6"><H3>ðÒÉÎÃÉÐÙ ÐÏÓÔÒÏÅÎÉÑ ÓÉÓÔÅÍÙ</H3></A>
+
+óÉÓÔÅÍÁ ÓÔÒÏÉÔÓÑ ×ÏËÒÕÇ ×ØÀÅÒÁ/ÒÅÄÁËÔÏÒÁ ËÁÒÔ.
+üÔÏÔ ×ØÀÅÒ/ÒÅÄÁËÔÏÒ ÕÍÅÅÔ ×Ù×ÏÄÉÔØ ËÁÒÔÙ ÂÏÌÅÅ-ÍÅÎÅÅ ×ÓÅÍÉ
+ÓÕÝÅÓÔ×ÕÀÝÉÍÉ ÓÐÏÓÏÂÁÍÉ ËÁÒÔÏÇÒÁÆÉÞÅÓËÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ, × ÔÏÍ ÞÉÓÌÅ
+ÎÁÐÒÉÍÅÒ ÓÌÏÊ ÛÔÒÉÈÏ×ËÁÍÉ ÐÏ×ÅÒÈ ÓÌÏÑ Ã×ÅÔÏ×.
+<P>
+ïÔËÒÙÔØ ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ × ËÁÖÄÙÊ ËÏÎËÒÅÔÎÙÊ ÍÏÍÅÎÔ ÍÏÖÎÏ ÔÏÌØËÏ ÏÄÉÎ
+ÓÌÏÊ. 
+<P>
+ðÒÉ ÔÙËÁÎØÅ ÍÙÛØÀ × ÏËÎÏ ËÁÒÔÙ ÏÂÙÞÎÏ × ËÁËÏÍ-ÔÏ ÄÒÕÇÏÍ ÏËÎÅ 
+ÐÏËÁÚÙ×ÁÅÔÓÑ ÚÎÁÞÅÎÉÅ ÐÏ ÎÅËÏÔÏÒÙÍ ×ÙÂÒÁÎÎÙÍ ËÁÒÔÁÍ (×ÓÅ ×ÉÄÉÍÙÅ +
+ÔÅ ËÏÔÏÒÙÅ ÐÏÌØÚÏ×ÁÔÅÌØ ÕËÁÚÁÌ Ñ×ÎÏ) × ÜÔÏÊ ÔÏÞËÅ.
+<P>
+íÅÎÀ ÓÉÓÔÅÍÙ ÐÏÚ×ÏÌÑÅÔ ×ÙÐÏÌÎÉÔØ ÌÀÂÙÅ ÏÐÅÒÁÃÉÉ ÁÎÁÌÉÚÁ, ÐÅÒÅÈÏÄ
+ÍÅÖÄÕ ÒÅÇÉÏÎÁÍÉ É Ô.Ð. åÓÌÉ × ÒÅÚÕÌØÔÁÔÅ ÏÐÅÒÁÃÉÉ ÏÂÒÁÂÏÔËÉ ËÁÒÔ
+ÓÏÚÄÁÎÁ ÒÏ×ÎÏ ÏÄÎÁ ÎÏ×ÁÑ ËÁÒÔÁ, ÔÏ ÏÎÁ ÚÁÍÅÝÁÅÔ × ÏËÎÅ ×ØÀÅÒÁ ÔÕ,
+ËÏÔÏÒÁÑ ÂÙÌÁ ×Ù×ÅÄÅÎÁ Ã×ÅÔÏÍ (ÓÌÕÞÁÊ ÓÉÎÈÒÏÎÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ).
+ <P>
+÷ÓÅ ÏÐÅÒÁÃÉÉ, ËÏÔÏÒÙÅ ÐÏÌØÚÏ×ÁÔÅÌØ ÍÏÖÅÔ ÐÒÏÉÚ×ÅÓÔÉ ÉÚ ÍÅÎÀ ÓÉÓÔÅÍÙ
+ÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ÉÚ ÐÒÏÇÒÁÍÍÙ ÎÁ Tcl, ×ËÌÀÞÁÑ ÔÁËÉÅ ËÁË ÒÉÓÏ×ÁÎÉÅ
+ÔÏÞËÉ ÉÌÉ ÌÉÎÉÉ × ÒÅÄÁËÔÏÒÅ
+
+<A NAME="toc_section7"></A><A HREF="#toc_entry7"><H3>á×ÔÏÍÁÔÉÞÅÓËÁÑ ÁËÔÕÁÌÉÚÁÃÉÑ ËÁÒÔ.</H3></A>
+
+äÌÑ ËÁÒÔ ÓÏÚÄÁÎÎÙÈ × ÒÅÚÕÌØÔÁÔÅ ÏÐÅÒÁÃÉÊ ÏÂÒÁÂÏÔËÉ ÈÒÁÎÉÔÓÑ
+ËÏÍÁÎÄÁ, ÓÏÚÄÁ×ÛÁÑ ËÁÒÔÕ, É ÓÐÉÓÏË ÉÓÈÏÄÎÙÈ ËÁÒÔ. ðÒÉ ×ÉÚÕÁÌÉÚÁÃÉÉ
+ÜÔÏÊ ËÁÒÔÙ ÐÒÏ×ÅÒÑÅÔÓÑ, ÎÅ ÂÙÌÉ ÌÉ ÉÚÍÅÎÅÎÙ ËÁËÉÅ-ÔÏ ÉÚ ÉÓÈÏÄÎÙÈ
+ËÁÒÔ, É ÅÓÌÉ ÄÁ, ÐÒÅÄÌÁÇÁÅÔÓÑ ÐÏ×ÔÏÒÉÔØ ÇÅÎÅÒÁÃÉÀ ËÁÒÔÙ. 
+</BODY>
+</HTML>
diff --git a/geography/fGIS/concepts.html b/geography/fGIS/concepts.html
new file mode 100644 (file)
index 0000000..9ef78bb
--- /dev/null
@@ -0,0 +1,398 @@
+<HTML>
+<HEAD>
+<TITLE>
+f(GIS) concepts
+</TITLE>
+</HEAD>
+<BODY>
+<H1><FONT SIZE="+3"><I>f(</I></FONT><FONT SIZE="+2"><B>GIS</B></FONT><FONT SIZE="+3"><I>)</I></FONT>
+    concepts</H1>
+
+<!-- CONTENTS NUMBERED NESTED --><OL>
+<LI><A HREF="#toc_section0">Data model</A>
+<OL>
+<LI><A HREF="#toc_section1">Functional model</A>
+<LI><A HREF="#toc_section2">Layer classification</A>
+<LI><A HREF="#toc_section3">Implementation of data model</A>
+<LI><A HREF="#toc_section4">Regions and chartographic projection</A>
+</OL>
+<LI><A HREF="#toc_section5">Program design</A>
+<OL>
+<LI><A HREF="#toc_section6">Layer as Tcl object</A>
+<LI><A HREF="#toc_section7">Planchet - object for displaying maps</A>
+<LI><A HREF="#toc_section8">Drawing modes for raster layer</A>
+<LI><A HREF="#toc_section9">Low level objects</A>
+<LI><A HREF="#toc_section10">GIS operation</A>
+<LI><A HREF="#toc_section11">Utilities</A>
+<LI><A HREF="#toc_section12">Data access library</A>
+</OL>
+</OL>
+<!-- END CONTENT -->
+
+
+
+
+
+<A NAME="toc_section0"></A><H3>Data model</H3>
+
+GIS is a software system for processing spatial data. So, adequate model
+of spatial phenomena is most important thing for GIS. 
+<P>
+It should provide way to represent spatial phenomena in computer memory,
+allow to perform desired operation on this representation and let user
+see the results in form, he used to. Ideally, GIS system should hide
+complicated issues of internal data storage from user as well as text
+processor hides questions of font rendering or kerning or SQL database
+hides actual file layout and search technologies, providing simple,
+but powerful relational operations instead.
+<P>
+Many modern
+GIS systems, especially vector based, like ARC/Info, try to 
+represent map of spatial phenomena rather than spatial phenomena
+itself. It leads to overcomplication of storage format and processing
+algorithms, and makes user worry about such technical things as polygon
+topology, which are completely irrelevant to his problem (say geology
+or soil science), as font rendering hints and kerning is irrelevant to
+contents of article, typesetted with some partcular font. Maps are
+tool for analyse spatial data, widely used, but no more than tool.
+GIS system should deal with them, becouse it is neccesary to use
+existing data, which are represented on maps, and present results to
+user in understandable form of maps, but while processing data we should
+take into account properties of actual phenomena, rather then properties
+of chartographic representation like polygons.
+<P>
+<A NAME="toc_section1"></A><H4>Functional model</H4>
+
+In f(GIS) we use term <I>layer</I> to denote computer representation of
+spatial phenomena. We define layer as function which maps geographical
+coordinates to value of some property. Closest analogue of our
+<I>layer</I> is <I>spatial variable</I> in geostatistics.
+<P>
+Layer values can be either real numbers or elements of some finite sets.
+If you want to study more complicated spatial phenomena, it is better
+to describe it as set of layers rather then individual layer with
+structured value. Obvoisly you'll not need values of all attributes in
+question for all desired calculations, and separating them makes your
+actions more clear.
+<P>
+Becouse layers are defined as functions it is theoretically possible to
+apply well develped mathematical apparatus of functional analysis to
+them.
+
+<A NAME=layerclass></A>
+<A NAME="toc_section2"></A><H4>Layer classification</H4>
+Layers can be classified by their area of definition and their set of
+values. By area of definition we can distinguish between:
+
+<DL>
+<DT> Two-dimensional layers
+<DD> which are defined on some contineous area.
+  It is most frequently used type of layers for physical geography. 
+  Relief and soil type are perfect examples of such layers. Area of
+  definition of two-dimensional layers is usially finite, limited by
+  boundaries of study area or by availability of data. Areas which are
+  outside of area of definition are called <I>offsite</I> areas.
+<DT> One-dimensional layers
+<DD>  are defined on set of lines within study area. Examples of such
+   layers are hydrography or railroad network.
+<DT> Zero-dimensional layers
+<DD> are defined on set of separate points. This layers can be used
+  for store information about sampling points or weather station
+networks.
+</DL> 
+
+By the set of values layers can be classified to:
+<DL>
+<DT>Numeric layers
+<DD> whose values belong to some contineous interval on numeric axis,
+for example relief layers, which have any value between lowest and
+highest altitude in the study area.
+<DT>Classification layers
+<DD>which have finite set of values. f(GIS) allows to use arbitrary
+strings as elements of such set. Soil map which has names of soil series
+as values can be used as an example.
+</DL>
+
+This simple classification covers all theoretically important types of
+layers. Dealing with implementation we'll have to classify layers
+further, for example, according to source of thematic data. But for 
+data analysis it is not significant whether data are stored in disk
+file or come from some data asquition system on the fly. It is only
+important to know type of values and whether they are defined for
+any point of study area or not.
+
+<A NAME="toc_section3"></A><H4>Implementation of data model</H4>
+
+Spatial phenomena seldom can be expressed by some mathematical equation.
+Even if they can, finding of this equation is usially aim of analysis,
+not a starting point. So, we need to store values of layers in any
+point they are defined. Raster is natural way to store data for 
+two-dimensional layers.<P>
+<FONT SIZE=-2> (Raster is just big matrix of numeric values, stored 
+in special format to reduce storage space. If raster is used in GIS
+processing, it should be known, how to find row and column numbers given
+real word coordinates and vice versa)</FONT>
+<P>
+f(GIS) uses raster data format developed for EPPL7 GIS system. This
+format have several advantages - it is compressed and allows random
+access at the same time and it is able to deal with very fine
+resolution. For example Landscape map of exUSSR with spatial resolution
+(raster cell size) 500m and more than 3000 distinct kinds of landscapes
+occupies about 9MB of disk space. Due  to such properties of data
+format, it is advisable to work with raster cell size significantly less
+then known accuracy of data. Resolution of maps can be compatible with
+resolution of your scanner and printer - modern processors are powerful
+enough to bear it, so raster doesn't mean loss of precession.
+<P>
+This data format is able to hold values in range 0..65535. While it is
+always sufficient for classification layers, it can look that for
+numeric layers it is better to use real numbers. But data always have
+finite accuracy, which is usially less than 1/65535 of total range,
+and even if we can take measurements with larger precession, we should
+take into account spatial variability within one raster cell.
+<P>
+For example, if we have map of relief of Russia with 500 meter cell, 
+we need to represent range from -28 (Caspian coast) to 5642 (Elbrus)
+meters above sea level. Thus smallest usable unit is about 10 cm.
+Some points' altitude may be measured with more accuracy (for example,
+triangualtion points), but each raster cell represents 500x500 meters
+square which always would have more than 10cm of variability.
+Even if value of our layer should have more precession in some part
+of its range, we could use non-linear (for instance logarithmic) mapping
+of raster cell values to layer values.
+<P>
+But even with compression, raster files occupy significant storage
+space. So, we should avoid duplication of them if possible. Thus we 
+introduce concept of <I>reclass tables</I>. Reclass table maps values
+of raster cell to another set of integer in arbitrary order. Don't mix
+reclass table with mapping function which is used for convert raster
+cell values to real units of numeric layer. For example if we have
+statistical data of populations by county and want to create population 
+them as map, we can use reclass table over county map. Several counties
+with different names, which have distinct values in county map raster,
+can be mapped to same class in population density map if their population
+density is same.
+<P>
+Point layer is just list of triplets &lt; X, Y, Value &gt;.  Typically
+point layer doesn't contain more than few thousands of points, so there
+is no need to optimize performance or storage space.
+<P>
+Natural storage form of one-dimensional layer is vector format. 
+It is most questionable area in current fGIS design. There are a lot of
+advantages of EPPL7 vector format (compactness, speed of processing),
+but it have only one drawback, which overcomes them all - it can
+associate only one value with whole vector object (polyline). But
+if we are talking about the function, defined on set of lines, whe
+should be prepared that this function (stream depth for instance) would
+vary from one end of line to other. 
+<P>
+It is also a question how intersections and joints of lines should
+be stored/interpreted, becouse most interesting network analysis
+algorithmes require ability to cross joints and intersections.
+<P>
+
+<A NAME="toc_section4"></A><H4>Regions and chartographic projection</H4>
+
+Study area usially have hierarchical structure. For example Russia
+can be subdivided to administrative regions, which consists of
+districts. United States consists  of states, which are divided into
+counties. Often study is concerned only with one of such hierarchy
+levels, but there are opposite examples. 
+<P>
+Each hierarchy level have its typical data accuracy (which is rough 
+representation of map scale in GIS world, becouse GIS maps can be
+arbitrarily scaled, but only certain scale range make sense for
+particular data accuracy), chartographic projection (especially
+significant for large areas like whole country or continent).
+On thematic maps like soils or vegetation, different classifications
+can be used in different scales.
+<P>
+So, f(GIS) uses concept of <I>regions</I>. Region is set of layers,
+which cover almost same territory, have exactly same projection and
+simular spatial resolution. Regions can be nested, i.e. region of 
+Russia can have several subregions of administrative regions, which
+have subregions of districts etc. In this case there should be <i>base
+layer</i>
+which have subregion names as values. When copiing data between regions
+f(GIS) authomatically performs neccessary projection and resolution
+ conversion using base layer as reference. Classification conversion,
+if neccessary, should be performed by user, becouse it requires
+knowledge in problem area.
+
+<A NAME="toc_section5"></A><H3>Program design</H3>
+f(GIS) is designed as set of extensions to Tcl programming language
+and set of independent utilities, which perform most time consuming
+raster and vector processing tasks. Thus long operations can be launched
+in background as separate while user continues to view/analyze data in 
+main program.
+<P>
+From users point of view, fGIS is Tcl application which allows him
+to operate with set of layers from GUI as well as from Tcl command line.
+It is essential design constraing that there should be no operation,
+which can be performed from GUI, but couldn't be from Tcl script. There
+should be way to automate everything. Other way around is enusred by
+very nature of Tcl. Nothing prevent user, which have direct access to
+Tcl interpreter from creating new button or menu item and binding any
+Tcl command to it. 
+<P>
+From programmers point of view, fGIS consists of several abstraction
+levels, all available for extension and modification. And I think that
+every fGIS user can eventually become programmer, if he discoveres need
+to implement some, just invented, data analysis algorithm, or customize
+graphical user interface to his needs. Relationship between fGIS
+abstraction levels is shown on this figure.
+<P>
+<IMG SRC=levels.gif ALIGN=center ALT="Figure 1">
+<P>
+<A NAME="toc_section6"></A><H4>Layer as Tcl object</H4>
+Layers in fGIS behave like objects in object-oriented programming
+language. Once created with <B>layer</b> command they become tcl
+commands itself (i.e. name of layer can be used as Tcl command),
+just like Tk widget. Options of layer command allow to manipulate
+properties of layer and store layer definition to file. This file
+is just Tcl script which creates neccessary subobjects and invokes
+appropriate command to create layer.
+<P>Layer have following properties
+<DL>
+<DT>It can return value by coordinates
+<DD> It is why whole thing is about
+<DT> It can one or more ways to draw itself
+<DD> Raster layer can be drawn in opaque colors, so only offsite area is
+transparent or using transparent monochrome patterns, thus allowing to
+overlay one raster over another. In most existing raster GIS, like
+Idrisi only vector or point layers can be overlayed over raster. 
+<P>
+In f(GIS) <B>any</B> 
+layer can be drawn as overlay
+There are three <A HREF="#modes">drawing modes</a> for raster layer,
+color, pattern and symbol.
+<DT> It has underlying data source
+<DD> Data source for layers typically consist of some object which can
+ return integer value given coordinate (raster file, combined with
+reclass table, for example) and <i>legend table</i> or <i>map
+function</i> which maps values of underlying raster object to
+thematically meaningful values.
+<DT> It has visualization parameters
+<DD> visualization fo layer is controlled by several parameters such as
+color palette, pattern set, flag, indicating if boundaries between
+classes are drawn or not. All these parameters can be changed
+interactively.
+<DT> It has metadata
+<DD> Metadata for layer typically include layer title, units in which
+its values are managed, spatial resolution and value precession.
+Chartographic projection is property of region rather than layer.
+</DL> 
+
+Besides layer types described <A HREF="#layerclass">above</A> fGIS have
+<I>object</I> layer type. This layer type can consist of any objects
+allowed in Tcl canvas - lines, arcs, polygons, images with only one
+thematic value for each object. This type is primarily for annotation
+purposes, but also can be used as substitute for vector layers, while
+later are not developed
+<P>
+<A NAME="toc_section7"></A><H4>Planchet - object for displaying maps</H4>
+Another type of object which is essential for fGIS user is
+<i>planchet</I>. It is Tk widget like canvas (and actially derived from
+canvas) which has chartographic projection and real-world coordinates.
+It is used for displaying layers and picking points on them. Becouse
+it has real-world coordinates and physical size on the screen, it always
+knows its scale. When scale is changed (via zoom or window resize operation),
+all layers currently displayed on planchet are redrawn appropriately.
+<P>
+
+Planchet also have <i>look feature</I>. If right mouse button is pressed
+on some point in planchet, it displays values of several layers in this
+point in pop-up window.
+<P>
+There can be also &quot;friend widgets&quot; like status line which
+display current coordinates if mouse is over planchet or zoom/unzoom
+buttons which change its state depending of current state of planchet.
+<P>
+<A NAME="modes"></A><A NAME="toc_section8"></A><H4>Drawing modes for raster layer</H4>
+
+f(GIS) supports three drawing modes for raster layers - color, pattern
+and symbol mode.
+<DL>
+<DT> In color mode,<DD> each value (or range of values, if
+values are real number) of layer corresponds with particular color on
+screen/paper. This is simplest drawing mode and it is supported by all
+raster-oriented GIS.
+<DT> In pattern mode<DD> contineous areas of same class are filled
+by black and white patterns, which is suitable for black and white
+printers. But this mode allows much more - patterns can have any color
+and background of pattern is transparent rather then white, so patterned
+layer can be overlaid over other raster layers.  Boundaries between
+areas with different classes (polygons) can be highlighted in this mode as well as
+in color mode.
+<DT> Symbol mode<DD> looks much like pattern mode and use same pattern
+sets as it. But it handles patterns differently. In pattern mode,
+patterns can be cut if polygon boundary crosses rectangle, representing
+pattern element. In symbol mode pattern elemet is interpreted like icon,
+which can be either drawn entirely, or not drawn at all. So visible area
+of map is divided into rectangular grid of size of pattern element and
+each cell of this grid is filled with pattern, apropriate for central
+point of this cell. 
+</DL>
+Differences between these thre modes are shown on following figure:
+<IMG SRC="drawing-modes.gif" ALIGN=center ALT="Figure 2">
+
+
+<A NAME="toc_section9"></A><H4>Low level objects</H4>
+
+There are additional objects like rasters, palettes and pattern sets.
+But user seldom need to operate on them directly. They are primarily
+for developers of new layer types.
+
+
+<A NAME="toc_section10"></A><H4>GIS operation</H4>
+GIS operation like calculationg buffer zones or computing new layer
+from several existing are performed by separate <A
+HREF="#epu">utilities</A> running in background. For user convinience
+there are tcl procedures which take one or more layer names as arguments
+and call appropriate utility.
+<P>
+Example of such procedure is interregion copy command, which tooks
+layer name and name of target region, determines projections and calls
+projection conversion program.
+<P>
+In some cases such procedures need to perform sufficient preprocessing
+of user-supplied arguments 
+<A NAME="epu"></A>
+<A NAME="toc_section11"></A><H4>Utilities</H4>
+
+GIS processing utilities are more general than fGIS. They use just
+data files and user-supplied arguments. So they can be used separately
+from fGIS, for example by users of EPPL7 GIS. Utilities are designed
+for batch environment, so they use exit codes to report status and
+stdin/stdout to recieve and return values which are not fit in command
+line. Important concept of these utilities is that user shouldn't worry
+about raster cell size. All utilites which operate on several raster
+files are able to deal with files with different cell sizes as long
+as there is non-empty intersection in terms of real-world coordinates.
+
+<A NAME=""></A><A NAME="toc_section12"></A><H4>Data access library</H4>
+
+Both low-level Tcl objects (rasters, vectors) and utilites use common
+C library to access data files. This library provides appropriately
+high-level framework for those who want implement own data analysis
+ algorithmes. For example it includes iterator routines, which recieve
+user-written function and open raster file and perform this function
+on every cell of given file. While library operates primarily in terms
+of raster cells (which can be important for cellular automata
+algorithmes, which need to distinguish between ``this cell'' and
+``neighbouring cell'') it provides ways to process files with different
+cell sizes simulateously.
+
+
+</BODY>
+</HTML> 
+
+
+
+
+
+
+
+
+
diff --git a/geography/fGIS/drawing-modes.gif b/geography/fGIS/drawing-modes.gif
new file mode 100644 (file)
index 0000000..d47f341
Binary files /dev/null and b/geography/fGIS/drawing-modes.gif differ
diff --git a/geography/fGIS/index.html b/geography/fGIS/index.html
new file mode 100644 (file)
index 0000000..9fe5611
--- /dev/null
@@ -0,0 +1,131 @@
+<HTML>
+<HEAD>
+<TITLE>fGIS project</TITLE>
+</HEAD>
+<BODY>
+<H1>f(GIS) project</H1>
+
+fGIS stands for &quot;functional GIS&quot;. It means that fGIS uses
+functional data model rather than object-oriented. Spatial phenomena
+are interpreted as functions of spatial coordinates, defined on
+some subset of earth surface. Such subset can be contineous area,
+or set of lines, like transport or hydrography network, or even
+set of isolated points.
+<P>
+
+I hope that such approach would allow to develop powerful map operation
+language much like simple relational model of tabular data give birth to SQL.
+<P>
+Idea of fGIS was born when I've worked on DOS with <A HREF="http://www.mnplan.state.mn.us/EPPL7/">EPPL7</A> and <A HREF="http://www.esri.com">Arc/Info</A> GIS systems. I've found that
+on most tasks, related with natural sciences, EPPL7 outperforms Arc/Info
+hundred times or so. So, I wanted to have system which is open-source,
+have purified ideology, and is free from some EPPL7 limitations, caused
+by 16-bit nature of DOS. Later I've found that <A HREF="http://www.laum.uni-hannover.de/iln/grass/grass42/">GRASS</A> already implements most of my ideas,
+but GRASS is huge and knowing how other raster GIS like IDRISI are outperformed
+by EPPL7, I have very few hopes that its existense makes my efforts useless.
+<P> 
+Concepts of project, both data model and program design are described
+on <A HREF=concepts.html>separate page</A>
+<P>
+If you could read Russian, you can read <A HREF=concept.html>old conceptual paper</A> on functional GIS.
+
+<H2> Project structure</H2>
+
+To avoid inventing of yet another, incompatible scripting language, we
+decided to develop f(GIS) as extension to <A
+HREF="http://www.scriptics.com">Tcl/Tk</A>. It give us not only
+full-featured macro language, but also cross-platform GUI and large set
+of extensions, including interfaces to major RDBMS servers.
+<P> 
+fGIS project now consists of following parts:
+<OL>
+<LI>Portable C library to access EPPL7 data files.<BR>
+    <A HREF="lib_doc.pdf">Documentation</A> in russian language and PDF format
+    is available. Later, I've decided to drop EPPL DGT vecrtor format in
+    favor of my own, which would be more suitable for fGIS concept. DGT
+    is bit too object oriented for me, while it is most compact and fast
+    of non-topology vector GIS formats available.
+<LI><A HREF="EPU.html">Environmental planning Utilities</A> - reimplementation of major EPPL7
+    commands. EPPL7 stands for Environmental Planning Programming Language,
+    but I don't want special language for it. There are lot of existing ones.
+    I prefer to use Unix toolbox philosophy, so it is set of independednt
+    utilities. 
+    <P>
+       Not all of this utilites are written yet.
+
+<LI><A HREF=tclext.html>Tcl extensions to visualize data</A>
+   It is simple and most portable way to write map viewer. Planned
+   features include drawing of raster maps as semi-transparent patterned
+   images, which allow to overlay raster over raster, but now only
+   colored maps work. This extension includes commands for editing raster
+   files and for spatial queries
+
+<LI><B>Set of Tcl libraries</B> to implement high-level tools. 
+  It should lead
+  to complete graphical application with powerful macro language (TCL itself),
+  access to most of SQL servers (all which have Tcl interface libraries, 
+  including ODBC standard on Win32 platform). 
+  This libraries should include wrappers
+  for utilities, to hide from user two important things:
+<OL>
+<LI> that raster values are always integer numbers rather than text strings
+or real numbers and &quot;legend files&quot; are used to map one to another
+<LI> that logical map layer is not nessecary stored in separate raster file.
+It can share raster with other layer and differ from it only in value
+remapping (reclass) table.
+</OL>
+  This libraries consist of several abstraction layers, which are not properly
+  documented yet.
+<LI> Tcl application which provides graphical user environment. Idea behind
+ it is that most everyday tasks should be performed by few mouse clicks,
+but if you want more you always can open Tcl console and have a full power
+of Tcl at your fingertips, including ability to modify GUI.
+</UL>
+
+<H2>Current state</H2>
+
+<I>f(</I><B>GIS</B><I>)</I> project haven't reach evel alpha stage yet.
+I would consider it alpha not sooner than at least 80% of features would
+be implemented. But it is already usable for those who own <A HREF="http://www.mnplan.state.mn.us/EPPL7/">EPPL7</A> and want portable viewer for their maps 
+or utilities which overcome some limitations of EPPL7. You can browse
+<A HREF="TODO.txt">TO DO list</a>. I would be grateful if you would peek
+something from it and attempt to implement it.
+
+<P>
+There is no snapshots and releases. This page have only historical
+interest
+<P>
+Be sure to read <A HREF="install.html">installation instructions</A>
+before attempt to install fGIS.
+<P>
+Of course, it is not guaranteed even to compile, nevertheless to run,
+although it have been used successfully on Linux (GCC 2.7.2),
+Solaris-SPARC (GCC 2.7.2) and (utilities only) DOS (Watcom C 10).
+It would almost undoubtely fail to compile on 64-bit platform (any
+brave soul with Alpha or UltraPenguin to port?).
+<P>
+Current version of visualisation library works with Tcl/Tk 8.0p2.
+It should also work with Tcl 7.6p2/Tk 4.2p2.
+
+Note that <A HREF="http://home.wxs.nl/~nijtmans/dash.html">dash patch</A> is
+almost neccessary, becouse without it Tk would unable
+to print (save to postscript) raster maps, produced by <I>f(</I><B>GIS</B><I>)</I>.
+
+<A HREF="http://home.wxs.nl/~nijtmans/img.html">Img extension</A>can also 
+be helpful, if your raster data are not limited to GIS maps.
+Note that
+current version of patch, accompaniing this extension, allows to make <B>offsite</B> of raster maps transparent. In future, this would be requirement, but
+for now, while fGIS is not fully functional. I don't like to force you to
+ apply patches which could break your
+other Tcl scripts or extensions. 
+
+<H2>Distribution policy</H2>
+Once <I>f(</I><B>GIS</B><I>)</I> would be released, it would be distributed
+under <A HREF="http://www.gnu.org/copyleft/gpl.html">GNU Public license</A>.
+Pre-alpha versions are freely downloadable, but can be used for evaluation
+only unless you are planning to take part in development. If <I>f(</I><B>GIS</B><I>)</I> is useful for you even in such limited state, <A HREF="mailto:vitus@ice.ru">contact me</A> and I would consider marking some parts of project alpha,
+thus allowing their redistribution.
+</HTML>
+
+
diff --git a/geography/fGIS/install.html b/geography/fGIS/install.html
new file mode 100644 (file)
index 0000000..eeabc61
--- /dev/null
@@ -0,0 +1,66 @@
+<HTML>
+<HEAD>
+<TITLE>fGIS installation instruction</TITLE>
+</HEAD>
+<BODY>
+
+
+<H1>fGIS installation instructions</H1>
+<B>Before compiling and installing fGIS you should have working
+installation of Tcl/Tk 8.0</B>
+<P>
+Pre-alpha snapshots of fGIS source tree do not include correct
+install target in makefile.
+<P>
+So, you must install it by hand. Source tree is organized such way that
+fGIS can be loaded directly from compilation directory.
+<P>
+fGIS library directory should reside somewhere Tcl can find its packages
+i.e. as subdirectory of one of directories in tcl_pkgPath.
+<P>
+Directory tree should have following structure:
+<PRE>
+  fgis
+    |
+    +-pkgIndex.tcl
+    +-fgis.so (fgis.dll)
+    +-fgis.rc
+    +-tcl/
+    |   |
+    |   +- various scripts
+    |
+    +--colors/
+    |   |
+    |   +-color palettes (*.clr)
+    |
+    +--symbols/
+        |
+       +-- symbol files (*.sym)
+
+</PRE>
+
+fGIS initialization code uses some heuristics to find where its support
+files are located, but sureest method is to set Tcl variable
+fGIS_HOME to the top of fGIS library directory before loading dynamic
+library.
+<P>
+your pkgIndex.tcl can look as
+<PRE>
+package ifneeded Fgis 1.0 {set fGIS_HOME /usr/local/lib/fgis; load /usr/local/lib/fgis/fgis.so}
+</PRE>
+<P>
+Directory tcl in fgis source tree contain two executable scripts -
+<CODE>mapview</CODE> and <CODE>hypermap</CODE>. They are sample fGIS
+applications. In Unix they can be easily moved to any directory in your
+PATH - with correctly set up pkgIndex.tcl they'll find support files
+anywhere. On windows they should be renamed to <CODE>mapview.tcl</CODE> and
+<CODE>hypermap.tcl</CODE> so they could be started with double click.
+<P>
+More to follow soon..
+</BODY>
+</HTML>
+
+
+
+
+
diff --git a/geography/fGIS/levels.gif b/geography/fGIS/levels.gif
new file mode 100644 (file)
index 0000000..c4b1bb7
Binary files /dev/null and b/geography/fGIS/levels.gif differ
diff --git a/geography/fGIS/lib_doc.pdf b/geography/fGIS/lib_doc.pdf
new file mode 100755 (executable)
index 0000000..8edcebe
Binary files /dev/null and b/geography/fGIS/lib_doc.pdf differ
diff --git a/geography/fGIS/man/border.1.html b/geography/fGIS/man/border.1.html
new file mode 100644 (file)
index 0000000..cace5a6
--- /dev/null
@@ -0,0 +1,72 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>BORDER(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+border - plots contour boundaries of raster file into vector file 
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>border</B> [-v] [-m] [-l] [-t <I>value</I> ] [-o <I>output_file</I> ]  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION 
+</A></H2>
+Creates a  <B>dgt</B> file with lines which delimit different classes in input 
+<B>epp file.</B> If  <B>-l</B> option given, puts a label point into each closed polygon. 
+ <P>
+Default output filename is constructed from name of input file, by replacing 
+suffix  <I>.epp</I> by <I>.dgt</I> . <P>
+Lines can be created "staircase"-like or smooth. Smoothing 
+is controlled by  <B>tolerance </B> factor, which defines maximum size of line 
+segment, which can be changed. <P>
+  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>Display brief usage information 
+and exit successifully. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>Display version number and exit successifully. 
+</DD>
+
+<DT><B>-%, --verbose</B>  </DT>
+<DD>Display progress indication. Useful on large files, but significantly 
+decreases performans on small ones. </DD>
+
+<DT><B>-m, --margins</B>  </DT>
+<DD>Controls behavouir on file 
+edges. By default  <B>border</B> treats all areas outside file as  <I>offsite,</I> but 
+when this option given, it assumes that all classes at the file edge are 
+continued outside it. </DD>
+
+<DT><B>-t --tolerance</B>  </DT>
+<DD>Defines tolerance value. Default is zero 
+-- no smoothing. </DD>
+
+<DT><B>-o --output-file</B>  </DT>
+<DD>Allows to specify output file name explicitly. 
+</DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">BUGS </A></H2>
+Label creation is unwritten yet <P>
+ <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/clip.1.html b/geography/fGIS/man/clip.1.html
new file mode 100644 (file)
index 0000000..c4f2bfb
--- /dev/null
@@ -0,0 +1,76 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>CLIP(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+clip - clips a region from old file using mask file   
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>clip 
+</B> [-%] [-m number] [-o filename] [--help][--version] file mask  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+Clip 
+creates new file, containing part of old file, which corresponds to given 
+onsite area or specified class of mask file.  <P>
+Cell size of new file would 
+be equial to cell size of mask file. If cell sizes don't match, ``nearest 
+neighbour'' algorithm would be used for rescaling. <P>
+  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>displays 
+brief usage information. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>displays version number </DD>
+
+<DT><B>-%</B>  </DT>
+<DD>Displays percentage 
+of processed lines in file. </DD>
+
+<DT><B>-o</B><I> file </I><B>--output-file=</B><I>file</I>  </DT>
+<DD>gives the name for 
+output file. Defaults to <I>mosaic.out.epp</I> </DD>
+
+<DT><B>-m</B><I> number</I><B>--mask-value=</B><I>number</I>  </DT>
+<DD>Clip region 
+which has class <I>number</I> in the mask file. Otherwise all onsite area of mask 
+file would be clipped. </DD>
+</DL>
+<H2><A NAME="sect4" HREF="#toc4">SEE ALSO </A></H2>
+<B><A HREF="window.1.html">window(1)</A>
+,</B><A HREF="mosaic.1.html">mosaic(1)</A>
+,<B><A HREF="eheader.1.html">eheader</B>(1)</A>
+ <P>
+  
+<H2><A NAME="sect5" HREF="#toc5">AUTHOR 
+</A></H2>
+<P>
+ Victor B. Wagner &lt;vitus@agropc.msk.su&gt; <P>
+  
+<H2><A NAME="sect6" HREF="#toc6">BUGS </A></H2>
+<P>
+ Should deal with different 
+cell sizes. <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">SEE ALSO</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">AUTHOR</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/cluster.1.html b/geography/fGIS/man/cluster.1.html
new file mode 100644 (file)
index 0000000..0b8dba8
--- /dev/null
@@ -0,0 +1,90 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>CLUSTER(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+cluster - fills each contour on raster map with its own color  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS 
+</A></H2>
+<B>cluster </B> [-v] [-f]  <I>input_file</I>  [-o  <I>output_file</I> ] [-c  <I>line_color</I> ] [-T  <I>temp_dir]</I> 
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+Paints each area in  <B>epp</B> file, surrounded by color <I>line_color</I> 
+by unique color from 1 to maximal contour number. Can handle up to 65535 
+contours in file. <P>
+Requires at least three time more space in temporary 
+directore then input file occupies. <P>
+By default assumes that line color 
+is 0 and output file name <I>cluster.out.epp</I> <P>
+Performs two passes on input file 
+and between them prints to stdout information about number of contours 
+in output file and temporary numbers assigned when calculating  contours. 
+So, redirect standard output, if start cluster in background mode.  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS 
+</A></H2>
+
+<DL>
+
+<DT><B>-v</B>  </DT>
+<DD>Verbose mode. Information about current line in processing is printed 
+to stderr. </DD>
+
+<DT><B>-c</B><I> line_color</I>  </DT>
+<DD>- Set contour separation color to <I> line_color</I>. </DD>
+
+<DT><B>-o</B><I> 
+output_file</I>  </DT>
+<DD>- overrides default name of output file. </DD>
+
+<DT><B>-f</B><I> input_file</I>  </DT>
+<DD>- Equivalent 
+of simple command-line parameter without option prefix. </DD>
+
+<DT><I>-?</I> " -h"  </DT>
+<DD>- Print brief 
+help message and exit successifully. </DD>
+
+<DT><B>-T</B><I> directory</I><B></B>  </DT>
+<DD>- Uses <I>directory</I>  instead 
+of  <I>/tmp</I>  for storing temporary files </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">SEE ALSO </A></H2>
+<B><A HREF="lessa.1.html">lessa</B>(1)</A>
+, <B><A HREF="mappaint.1.html">mappaint</B>(1)</A>
+, 
+<B><A HREF="mapcopy.1.html">mapcopy</B>(1)</A>
+, <B><A HREF="eheader.1.html">eheader</B>(1)</A>
+, <B><A HREF="epp.5.html">epp</B>(5)</A>
+, <B><A HREF="dgt.5.html">dgt</B>(5)</A>
+ <P>
+  
+<H2><A NAME="sect5" HREF="#toc5">BUGS </A></H2>
+For some unknown reason 
+reports very strange errors (usially page faults) or produces very strange 
+results, when compilied under DOS. So use unix versions. <P>
+It seems obvouis, 
+that same program must perform  <B>rasterize</B> operation, but this still not 
+implemented.  
+<H2><A NAME="sect6" HREF="#toc6">AUTHOR </A></H2>
+Vitus Wagner, <B>SoftWeyr.</B> <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">SEE ALSO</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">BUGS</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">AUTHOR</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/eheader.1.html b/geography/fGIS/man/eheader.1.html
new file mode 100644 (file)
index 0000000..1a377c4
--- /dev/null
@@ -0,0 +1,209 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>EHEADER(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+eheader - display and modify headers of EPPL7 data files  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS 
+</A></H2>
+<B>eheader </B> options files <P>
+<B>maplist</B> files <P>
+<B>mapalign</B> base_file  <B>[-v]</B> files  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION 
+</A></H2>
+Applies given editing commands to list of <B>epp</B> or <B>dgt</B>  files. <P>
+Several commands 
+are applicable to both file types and several to  <B>epp</B> (raster) files only. 
+No warning is issued when  <B>dgt</B> file is processed during section when epp-specific 
+commands used, becouse several epp-files can be processed at same time. 
+<P>
+No warning is issued also when no editing commands given, therefore  this 
+utility can be used just for viewing header information. <P>
+When invoked as 
+<B>maplist,</B> simply dumps headers of given files.  <P>
+when invoked as <B>mapalign</B> 
+performs same operations as with <B>-A </B> key, but only other option accepted 
+is  <B>-v.</B> This option may be given as before, as after base file. <P>
+ <P>
+  
+<H2><A NAME="sect3" HREF="#toc3">UNIVERSAL 
+OPTIONS </A></H2>
+This commands can be applied to both  <B>dgt </B> (vector) and <B>epp</B> (raster) 
+files. 
+<DL>
+
+<DT><B>-v</B>  </DT>
+<DD>- dumps file header information <B>after</B> applying any edit options 
+to <I>stdout.</I> </DD>
+</DL>
+<P>
+<DL>
+
+<DT><B>-x increment</B>  </DT>
+<DD>  - shifts alternative x by  <B>increment.</B> Increment 
+can be any real number, both positive and negative. </DD>
+
+<DT><B>-y increment</B>  </DT>
+<DD>  - same 
+with alternative y </DD>
+
+<DT><B>-s factor </B>  </DT>
+<DD>- multiplies all coordinates by factor </DD>
+</DL>
+<P>
+This 
+commands cannot be used together with explicit settings of some alternative 
+coordinate limit. 
+<DL>
+
+<DT><B>-Xl value</B> or  <B>-XL value</B>  </DT>
+<DD>- sets alternative x of left border 
+to specified value </DD>
+
+<DT><B>-Xr value</B> or <B>-XR value</B>  </DT>
+<DD>- same with right border </DD>
+
+<DT><B>-Yb value</B> 
+or <B>-YB value</B>,<B>-Yt value</B> or <B>-YT</B>  </DT>
+<DD>- same with bottom and top y </DD>
+
+<DT><B>-p name</B>  </DT>
+<DD>  - set 
+projection type to name. Available projection types ( <B>EPPL7 version 3.0</B> 
+) are:  <blockquote></DD>
+
+<DT><B>none</B>  </DT>
+<DD>- cause EPPL ver 3 to say "No alternate coordinates" </DD>
+
+<DT><B>utm</B> 
+or <B>UTM</B>  </DT>
+<DD>- UTM projection </DD>
+
+<DT><B>stplate </B>  </DT>
+<DD>- state plane (projection for US state 
+maps) </DD>
+
+<DT><B>ll </B>  </DT>
+<DD>- latitude and longitude (geographic coordinates) </DD>
+</DL>
+ </blockquote>
+<H2><A NAME="sect4" HREF="#toc4">EPP SPECIFIC 
+COMMANDS </A></H2>
+Following is applicable to EPP files only: 
+<DL>
+
+<DT><B>-o n</B>  </DT>
+<DD> - set offsite 
+value to n. Value can be in range -32768 65535. Negative values are equivalent 
+to 65536-abs(n). Values above 255, applied to  <I>8-bit</I>  data files are silently 
+translated into -1 (no offsite) </DD>
+
+<DT><B>-fr n </B>  </DT>
+<DD>- set first row to n and updates 
+last row field respectively. </DD>
+
+<DT><B>-fc n</B>  </DT>
+<DD> - set first column to n and updates 
+last column field. </DD>
+
+<DT><B>-A filename </B>  </DT>
+<DD>- align to specified file, i.e updates row/column 
+coordinates so row and column with same number have same alternative coordinates. 
+</DD>
+
+<DT><B>-a  value</B>  </DT>
+<DD>- set cell area to value. </DD>
+
+<DT><B>-c "string"</B>  </DT>
+<DD> - fills description field 
+of the header. String must be single command line argument, but not nessecary 
+need quotes. </DD>
+
+<DT><B>-u name </B>  </DT>
+<DD>- set area unit type, where unit type may be:  <blockquote></DD>
+
+<DT><B>none 
+</B>  </DT>
+<DD>- cause EPPL ver 3 to say "No alternate coordinates" </DD>
+
+<DT><B>ft</B>  </DT>
+<DD>  - square feet 
+</DD>
+
+<DT><B>m </B>  </DT>
+<DD>- square meters </DD>
+
+<DT><B>km</B>  </DT>
+<DD> - square kilometers </DD>
+
+<DT><B>mile - square miles</B>  </DT>
+<DD></DD>
+
+<DT><B>ha</B>  </DT>
+<DD> - hectares 
+</DD>
+
+<DT><B>acre </B>  </DT>
+<DD>- acres </DD>
+</DL>
+<P>
+This command does not perform any recalculation, it just 
+update  unit name field. Use  <B>-a</B> command for change cell area value respectively. 
+ </blockquote>
+<H2><A NAME="sect5" HREF="#toc5">OPTION COMPATIBILYTY </A></H2>
+Some options of  <B>eheader</B> cannot coexist together 
+in same command line. there are two groups of options with incompatibilities 
+between subgroup of each group. <P>
+ First, options dealing with alternative 
+coordinates. There are options <B>-Xl -Xr -Yt -Yb,</B> which set alternative coordinates 
+explicitely, and options <B>-x -y -s,</B> which change coordinates by arithmetic 
+calculations. Explicit and arithmetic changes of coordinates are not allowed 
+simulateneously, becouse it is to hard to understand, which kind user 
+want to apply first. <P>
+ Second, options dealing with row/column coordinates 
+of  <B>epp</B> files. Here there are options  <B>-A</B> and <B>-fr -fc</B> which performs directly 
+opposite task. (usially  <B>-fr -lr</B> are used to set first row and column to 
+one, to process file cutted from large   file separately and  <B>-A</B> to change 
+it back to <B><A HREF="mosaic.1.html">mosaic</B>(1)</A>
+ file into larger one.  <P>
+  
+<H2><A NAME="sect6" HREF="#toc6">SEE ALSO </A></H2>
+<B><A HREF="lessa.1.html">lessa</B>(1)</A>
+, <B><A HREF="mappaint.1.html">mappaint</B>(1)</A>
+, 
+<B><A HREF="mapcopy.1.html">mapcopy</B>(1)</A>
+ <B><A HREF="epp.5.html">epp</B>(5)</A>
+, <B><A HREF="dgt.5.html">dgt</B>(5)</A>
+  
+<H2><A NAME="sect7" HREF="#toc7">BUGS </A></H2>
+No check is performed by  <B>-fr</B> and <B>-lr</B> command 
+to ensure that row/column values are in valid range. <P>
+<B>-A</B> command sometimes 
+miscalculates one cell. (but EPPL ver 2.1 does the same).  
+<H2><A NAME="sect8" HREF="#toc8">AUTHOR </A></H2>
+Vitus Wagner, 
+<B>SoftWeyr.</B> <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">UNIVERSAL OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">EPP SPECIFIC COMMANDS</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">OPTION COMPATIBILYTY</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">SEE ALSO</A></LI>
+<LI><A NAME="toc7" HREF="#sect7">BUGS</A></LI>
+<LI><A NAME="toc8" HREF="#sect8">AUTHOR</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/extents.1.html b/geography/fGIS/man/extents.1.html
new file mode 100644 (file)
index 0000000..3695de3
--- /dev/null
@@ -0,0 +1,104 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>EXTENTS(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+extents - displays information about class extents in given EPP file. 
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>extents </B> [-%ahlrtbxtA] [-o file] file.epp  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+<P>
+ Extents 
+calculates area extents of all classes in given file and displays it in 
+tabular form. <P>
+ This information includes minimal and maximal coordinates 
+and area of class. <P>
+By default information is printed to  <I>stdout.</I> <P>
+ It may 
+be given in row/column and alternative coordinates.  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>displays 
+brief usage information. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>displays version number </DD>
+
+<DT><B>-% --verbose</B>  </DT>
+<DD>Displays 
+percentage of processed lines in file. </DD>
+
+<DT><B>-o</B><I> file </I><B>--output-file=</B><I>file</I>  </DT>
+<DD>gives the 
+name for output file, to write results to, instead of standard  output. 
+</DD>
+
+<DT><B>-a --alt-coords</B>  </DT>
+<DD>display coordinates in alternative system and area in real 
+units, insted of row/col and cell count. </DD>
+
+<DT><B>-h --header</B>  </DT>
+<DD>display one-line header 
+above table. </DD>
+
+<DT><B>-l --sort-left</B>  </DT>
+<DD>sort classes by leftmost coordinate </DD>
+
+<DT><B>-r --sort-right</B> 
+ </DT>
+<DD>sort classes by rightmost coordinate </DD>
+
+<DT><B>-t --sort-top</B>  </DT>
+<DD>same for topmost coordinate 
+</DD>
+
+<DT><B>-b --sort-bottom</B>  </DT>
+<DD>I'm tired with this sort orders </DD>
+
+<DT><B>-A --sort-area</B>  </DT>
+<DD>Sort classes 
+by count of cells. </DD>
+
+<DT><B>-x --sort-x-center</B>  </DT>
+<DD>Sort by x-coordinate of center of rectangle, 
+containing all cells of that class. <B>-y --sort-y-center</B> same, but by y-coordinate 
+</DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">SEE ALSO </A></H2>
+<B><A HREF="outtable.1.html">outtable</B>(1)</A>
+ <P>
+  
+<H2><A NAME="sect5" HREF="#toc5">AUTHOR </A></H2>
+<P>
+ Victor B. Wagner &lt;vitus@agropc.msk.su&gt; <P>
+  
+<H2><A NAME="sect6" HREF="#toc6">BUGS 
+</A></H2>
+<P>
+ ??? <P>
+ <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">SEE ALSO</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">AUTHOR</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/fgisRasterColorImage.n.html b/geography/fGIS/man/fgisRasterColorImage.n.html
new file mode 100644 (file)
index 0000000..32d0167
--- /dev/null
@@ -0,0 +1,144 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>palette(n) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<P>
+  
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+fgisRasterColorImage, fgisRasterBWImage - render raster object into 
+planchet item <P>
+  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>fgisRasterColorImage<I> raster planchet item </I></B> ?<I>option 
+</I>? <P>
+ <B>fgisRasterBWImage<I> raster planchet item </I></B> ?<I>option </I>? <P>
+  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+<P>
+ These 
+commands perform visualisation of fGIS raster objects in fGIS planchet 
+(essentially same as Tk canvas). They work on platform independent manner, 
+creating visible representation of layer in Tk image object, which should 
+be previously created.  <P>
+ User (and even application writer) seldom accesses 
+this commands directly. Raser layer objects and planchet subcommands should 
+be used to visualize raster layers. <P>
+ These commands controls all attributes 
+of layer appearance, which have no semantic meaning. I.e. raster file class 
+to palette index correspondence is part of raster object, becouse it also 
+used for access legend and GIS operation, while palette itself appear 
+only in call to this command, becouse it used only to visualisation. <P>
+  
+
+<H2><A NAME="sect3" HREF="#toc3">ARGUMENTS </A></H2>
+<P>
+<DL>
+
+<DT><I>raster </I> -  </DT>
+<DD>name of fGIS raster object (see <B><A HREF="raster.n.html">raster </B>(n)</A>
+). </DD>
+</DL>
+<P>
+<DL>
+
+<DT><I>planchet 
+</I> -  </DT>
+<DD>name of fGIS planchet widget. Planchet should be mapped and have coordinate 
+system already defined. </DD>
+</DL>
+<P>
+<DL>
+
+<DT><I>item </I> -  </DT>
+<DD>ID of planchet item to render raster in. 
+It should exist, be of type image and contain valid image (photo for <B>fgisRasterColorImage 
+</B> and bitmap for <B>fgisRasterBWImage </B>) in its -image atribute. </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>-border<I> 
+option </I></B> -  </DT>
+<DD>specifies whether borders between raster object classes or base 
+file classes (polygon borders) should be drawn. <I>Option </I> can be one of <B>none 
+</B>, <B>yes </B>, <B>base </B>. Abbreviations are not allowed (bug?). <B>yes </B> means that borders 
+are drawn only between distinct classes of current raster object, <B>base 
+</B> means that borders should be drawn if base file classes are distinct, 
+even if they are reclassed into same value. Useful for choropleth plots. 
+</DD>
+</DL>
+<P>
+ For symbol plots option is ignored. Defaults to <B>none </B> for color images 
+and <B>yes </B> for BW images. 
+<DL>
+
+<DT><B>-color<I> color </I></B>   </DT>
+<DD>- specifies color to plot borders 
+in color mode or for entire image in pattern or symbol mode. <I>color </I> can 
+be any form of color specification, acceptable by Tk. Defaults to "black". 
+</DD>
+
+<DT><B>-map<I> option </I></B> -  </DT>
+<DD>specifies how to deal with map classes, which exceed palette 
+or pattern range (0-255). Option is one of <B>wrap </B> - use symbol (color) <I>class%255 
+</I> for classes which exceeds 255, <B>none </B> - use symbol (color) 255 for all 
+these clases and <I>number </I> - map range 0-<I>max class </I> to range 0-<I>number </I>. Defaults 
+to <B>wrap </B>. </DD>
+
+<DT><B>-palette <I>palettename </I></B> (color only) -  </DT>
+<DD>specifies fGIS palette object 
+to use for coloring of map classes. Defaults to <B>defaultpalette </B>. </DD>
+
+<DT><B>-patterns 
+<I>patternname </I></B> (BW only) -  </DT>
+<DD>sets plotting mode to pattern and specifies pattern 
+set to plot. In pattern mode patterns are clipped by polygon boundaries, 
+and thus any border modes are allowed. Defaults to {} (empty pattern). This 
+mode is default for  <B>fgisRasterBWImage </B> </DD>
+
+<DT><B>-symbols <I>patternname </I></B> (BW only) 
+-  </DT>
+<DD>sets plotting mode to symbol and specifies pattern set to plot. In symbol 
+mode patterns can be drawn only at whole, so if central point of pattern 
+belongs to certain class, pattern for this class would be drawn on entire 
+rectangle. Borders are never plotted in this mode No defaults, becouse 
+this mode must be turned on explicitely. </DD>
+
+<DT><B>-update <I>{x1 y1 x2 y2} </I></B>  </DT>
+<DD>- Specifies, 
+that only part of image should be replotted. Useful for raster editing 
+application. Rectangle to update is given in map coordinates. It is clipped 
+by image boundaries. </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect5" HREF="#toc5">SEE ALSO </A></H2>
+<B><A HREF="raster.n.html">raster</B>(n)</A>
+,<B><A HREF="planchet.n.html">planchet</B>(n)</A>
+,<B><A HREF="palette.n.html">palette</B>(n)</A>
+,<B></B> <B><A HREF="patterns.n.html">patterns</B>(n)</A>
+<P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">ARGUMENTS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">OPTIONS</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/legend.n.html b/geography/fGIS/man/legend.n.html
new file mode 100644 (file)
index 0000000..1720471
--- /dev/null
@@ -0,0 +1,134 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>legend(n) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+legend - Create and manipulate EPTcl  legends <P>
+  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>legend read<I> 
+filename </I></B> options <P>
+ <B>legend parse<I> string </I></B> <P>
+ <B>legend set<I> list </I></B> <P>
+  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION 
+</A></H2>
+<P>
+ <B>legend </B> creates legend object, which is used to store and manipulate 
+descriptive information about maps. There are three ways to create legend: 
+
+<DL>
+
+<DT>from file, which shoild be an EPPL7 legend file  </DT>
+<DD></DD>
+
+<DT>from string, which should 
+hold content of such file  </DT>
+<DD></DD>
+
+<DT>from Tcl list, simular to one, used for <B>array 
+set </B> command  </DT>
+<DD></DD>
+</DL>
+<P>
+<B>legend </B> command returns handle for legend which is unique 
+identifier, used for subsequent references for this legend. It creates 
+new Tcl command with name of this identifier, that used to manipulate 
+legend.  <P>
+Actually, legend object is combination of global array and Tcl 
+procedure, and legend handle is simply name of both of them. <P>
+  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS 
+</A></H2>
+
+<DL>
+
+<DT><B>legend read<I> filename </I></B>  </DT>
+<DD>Opens and reads text file in EPPL7 format. Each 
+line of this file contain number and descriptive text, separated by two 
+spaces (originally, there should be some information concering printing 
+map on line printer (not graphical one) between this spaces, but this 
+format is no longer used and supported. Numbers between 0 and 65535 are 
+considered map classes and numbers -2 and -1 have special meaning - they 
+are considered legend title and subtitle respecitvely. There can be several 
+lines with same classes in legend. They are concatenated. Note that EPTcl 
+never uses this line separations as line breaks when outputting legend 
+(may be this should go to BUGS section) </DD>
+
+<DT><B>legend parse<I> string </I></B>  </DT>
+<DD>Produces 
+legend from string which should be identical to content of EPPL7 legend 
+file. </DD>
+
+<DT><B>legend set<I> list </I></B>  </DT>
+<DD>Produces legend from Tcl list. Such list can be 
+obtained by <B>array get  <I>legendname </I></B> command. Differ from <B>array set </B> in that 
+finds correct name for legend and defines object command for it. Can be 
+used to create empty legend for subsequentual filling by <I>legendname <B>set 
+</B></I> subcommand.  In this case empty list should be specified. </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">OBJECT COMMAND 
+</A></H2>
+
+<DL>
+
+<DT><I>legendName<B> classes </B></I>  </DT>
+<DD>Return sorted list of classes defined in legend </DD>
+
+<DT><I>legendName<B> 
+delete </B></I>  </DT>
+<DD>Destructor of object. Unsets all data and destroys object command. 
+</DD>
+
+<DT><I>legendName<B> drawable<I> ?boolean?  </I></B></I></DT>
+<DD>if boolean specified, set legend drawmode 
+and return nothing. Otherwise returns 0 or 1, depending of current settings. 
+Drawmode controls if legend could be displayed in legend box. </DD>
+
+<DT><I>legendName<B> 
+get <I> class </I></B></I>   </DT>
+<DD>Returns value of given class or string "Not defined",such 
+class is not defined. String could be changed by changing value of element 
+<B>udefined_legend </B> of global array <B>fgis </B> </DD>
+
+<DT><I>legendName<B> print<I>  </I></B></I></DT>
+<DD>Returns content 
+of legend in form of EPPL7 legend format as string. </DD>
+
+<DT><I>legendName<B> set <I>class 
+value </I></B></I>  </DT>
+<DD>Changes description of given class </DD>
+
+<DT><I>legendName<B> subtitle </B></I> ?<I>string 
+</I>?  </DT>
+<DD>If no <I>string </I> specified, returns current legend subtitle. Otherwise 
+replaces subtitle by given string </DD>
+
+<DT><I>legendName<B> title </B></I> ?<I>string </I>?  </DT>
+<DD>If no <I>string 
+</I> specified, returns current legend title. Otherwise replaces title by given 
+string </DD>
+</DL>
+<H2><A NAME="sect5" HREF="#toc5">BUGS </A></H2>
+None noticed <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">OBJECT COMMAND</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/mosaic.1.html b/geography/fGIS/man/mosaic.1.html
new file mode 100644 (file)
index 0000000..3f33a61
--- /dev/null
@@ -0,0 +1,94 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>MOSAIC(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+mosaic - merges several epp files together  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>mosaic </B> [-%RA] 
+[-O number] [-o filename] [--help][--version]files  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+Mosaic merges 
+several  <I>epp</I>-files into one. If some cell has non-offsite value in several 
+files, value from last files would be used. <P>
+Cell sizes of all old files 
+must be equial. Usially  <B>mosaic</B> deals with properly aligned files, but 
+it can deal with misaligned files, taking into account row/column or alternative 
+coordinates regarding to command-line options. <P>
+If  <I>offsite</I> value is not 
+explicitely given in command line, it defaults to  offsite of first (base) 
+file if it is not used as data class in one of overlay files. In last case 
+offsite would be set to 255 for 8-bit and to 65535 to 16-bit files.  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS 
+</A></H2>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>displays brief usage information. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>displays version 
+number </DD>
+
+<DT><B>-%</B>  </DT>
+<DD>Displays percentage of processed lines in file. </DD>
+
+<DT><B>-o</B><I> file </I><B>--output-file=</B><I>file</I> 
+ </DT>
+<DD>gives the name for output file. Defaults to <I>mosaic.out.epp</I> </DD>
+
+<DT><B>-A --force-alt</B>  </DT>
+<DD>Do 
+not complain, if files are misaligned. Use alternate coordinates to reference 
+them. </DD>
+
+<DT><B>-R --force-row</B>  </DT>
+<DD>Same, but use row/col cordinates. </DD>
+</DL>
+<P>
+<DL>
+
+<DT><B>-O</B><I> value </I><B>--offsite=</B><I>value</I> 
+ </DT>
+<DD>specifies offsite value of new file. </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect5" HREF="#toc5">SEE ALSO </A></H2>
+<B><A HREF="eheader.1.html">eheader</B>(1)</A>
+,<B><A HREF="window.1.html">window</B>(1)</A>
+ <P>
+<H2><A NAME="sect6" HREF="#toc6">AUTHOR </A></H2>
+<P>
+ Victor B. Wagner &lt;vitus@agropc.msk.su&gt; <P>
+  
+<H2><A NAME="sect7" HREF="#toc7">BUGS </A></H2>
+<P>
+ ??? <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">OPTIONS</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">AUTHOR</A></LI>
+<LI><A NAME="toc7" HREF="#sect7">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/neighbours.1.html b/geography/fGIS/man/neighbours.1.html
new file mode 100644 (file)
index 0000000..debc57d
--- /dev/null
@@ -0,0 +1,75 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>NEIGHBOURS(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+neighbours - prints list of neighbouring clasees in epp-file  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS 
+</A></H2>
+<B>neighbours [-%][-d] file</B>  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+This command searches  <I>epp</I>-file for 
+all class boundaries and print a table of class pair which are neighbouring 
+at least in one place.  DO NOT MIX it with EPPL7 NEIGHBOUR command, which 
+is part of <B><A HREF="evaluate.1.html">evaluate</B>(1)</A>
+ in EPU. <P>
+ It prints pairs of classes to stdout, one 
+per line separated by commas. <P>
+ Each pair of classes can be printed once 
+or twice, first among neighbours of first class in pair, than neighbours 
+of second. <P>
+  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>displays brief usage information. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>displays 
+version number </DD>
+
+<DT><B>--verbose -%</B>  </DT>
+<DD>Displays percentage of processed lines in file. 
+</DD>
+
+<DT><B>-d --double</B>  </DT>
+<DD>print each pair twice.  </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">SEE ALSO </A></H2>
+<B><A HREF="outtable.1.html">outtable</B>(1)</A>
+,<B><A HREF="mapcolor.1.html">mapcolor</B>(1)</A>
+,<B><A HREF="evaluate.1.html">evaluate</B>(1)</A>
+,<B><A HREF="extents.1.html">extents</B>(1)</A>
+.<B></B> 
+<P>
+  
+<H2><A NAME="sect5" HREF="#toc5">AUTHOR </A></H2>
+<P>
+ Victor B. Wagner &lt;vitus@agropc.msk.su&gt; <P>
+  
+<H2><A NAME="sect6" HREF="#toc6">BUGS </A></H2>
+<P>
+ ??? <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">SEE ALSO</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">AUTHOR</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/outtable.1.html b/geography/fGIS/man/outtable.1.html
new file mode 100644 (file)
index 0000000..a9c327d
--- /dev/null
@@ -0,0 +1,192 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>OUTTABLE(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+outtable - computes table of statistics from several epp files.  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS 
+</A></H2>
+<B>outtable </B> [<I>options</I>]<I></I> [<I>function</I>] file [ [<I>function</I>] file ...]<I></I> <P>
+  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION 
+</A></H2>
+<B>outtable </B> takes several  <I>epp</I>-files counts all possible combinations of 
+classes in them and produces table of them.  <P>
+Some files  can be preceded 
+by  <I>function</I> Such files wouldn't be used to define new combination. Instead, 
+corresponding column of table would contain value of function, computed 
+from this file for area, defined by combination of classes of all "function-less" 
+files. <P>
+All files, used to define combination, should be specified before 
+first file with function. <P>
+If no function defined, table would be appended 
+by column, containing area of each combination. <P>
+If all files have function, 
+table would contain only one row, containing values of the functions for 
+all area. <P>
+If files have different cell size and limits, limits and coordinate 
+systems of the first file are used, unless overriden by  <B></B> --base option. 
+<P>
+By default, semantic value of classes are considered equial to values 
+of classes. This can be overridden by specifying parameters of linear mapping 
+function using  <P>
+ <B>-z</B> and <B>-Z</B> options. This option can be specified only once 
+per invocation, becouse usially <B>outtable</B> is used to calculate statistics 
+for one file in combinations, given by several other files. <P>
+By default, 
+all area-related values are calculated in alternative coordinate units. 
+It can be overriden using  <B>-c</B> option.  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>displays brief usage 
+information. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>displays version number </DD>
+
+<DT><B>--verbose -%</B>  </DT>
+<DD>Displays percentage 
+of processed lines in file. </DD>
+
+<DT><B>-u --union </B>  </DT>
+<DD>Take into account all cells, where 
+at least one of output files is not offsite. By default, only cells where 
+all input files are onsite are taken into account. </DD>
+
+<DT><B>-c --cells</B>  </DT>
+<DD>Output areas 
+in cells. By default map units as specified in file header are used to 
+compute areas. </DD>
+
+<DT><B>-d</B><I>char </I><B>--delimiter=</B><I>char</I><B></B>  </DT>
+<DD>sets table column separator to  <I>char.</I> 
+Defaults to comma. </DD>
+
+<DT><B>-b</B><I> file</I><B>--base</B><I> file</I>  </DT>
+<DD>Specifies epp file, used as reference 
+grid. Cell area and cell size of this file, as well as its coordinate limits 
+would be used for processing.  Defaults to first file in the command line. 
+</DD>
+
+<DT><B>-z</B><I> value</I>  </DT>
+<DD>Specifies multiplier for calculating semantic value from class 
+value. </DD>
+
+<DT><B>-Z</B><I> value</I>  </DT>
+<DD>Specifies offset of semantic values, i.e. semantic value 
+of class 0. </DD>
+</DL>
+<H2><A NAME="sect4" HREF="#toc4">FUNCTIONS </A></H2>
+
+<DL>
+
+<DT><B>-sum</B>  </DT>
+<DD>Sum of classes in given file for combination, 
+multiplied by cell area. </DD>
+
+<DT><B>-cnt</B>  </DT>
+<DD>Count of onsite cells of given file. </DD>
+
+<DT><B>-avg</B>  
+</DT>
+<DD>Average cell value </DD>
+
+<DT><B>-min</B>  </DT>
+<DD>Minimum cell value </DD>
+
+<DT><B>-nmin</B>  </DT>
+<DD>Area of cells with minimum 
+value </DD>
+</DL>
+<P>
+<DL>
+
+<DT><B>-max</B>  </DT>
+<DD>Maximum cell value </DD>
+
+<DT><B>-nmax</B>  </DT>
+<DD>Area of cells with maximum value 
+</DD>
+
+<DT><B>-mode</B>  </DT>
+<DD>Modal value (value of most cells) </DD>
+
+<DT><B>-nmode</B>  </DT>
+<DD>Area of cells with modal 
+value </DD>
+
+<DT><B>-fewest</B>  </DT>
+<DD>Class with fewest cells </DD>
+
+<DT><B>-nfewest</B>  </DT>
+<DD>Area of cells in fewest 
+class </DD>
+
+<DT><B>-range</B>  </DT>
+<DD>Range of classes (maximum-minimum) </DD>
+
+<DT><B>-classes</B>  </DT>
+<DD>Number of different 
+classes </DD>
+
+<DT><B>-or</B>  </DT>
+<DD>Bitwise or of all cells (values of  <B>-z</B> and <B>-Z</B> options are not 
+used) </DD>
+
+<DT><B>-and</B>  </DT>
+<DD>Bitwise and of all cells (values of  <B>-z</B> and <B>-Z</B> options are not 
+used) </DD>
+
+<DT><B>-std</B>  </DT>
+<DD>Standard deviation of classes </DD>
+
+<DT><B>-var</B>  </DT>
+<DD>Variance of classes </DD>
+
+<DT><B>-corr</B> 
+ </DT>
+<DD>Correlation coefficient between two files. Requires two arguments. </DD>
+</DL>
+<H2><A NAME="sect5" HREF="#toc5">SEE 
+ALSO </A></H2>
+<B><A HREF="intable.1.html">intable</B>(1)</A>
+,<B><A HREF="reclass.1.html">reclass</B>(1)</A>
+,<B><A HREF="evaluate.1.html">evaluate</B>(1)</A>
+,<B><A HREF="resample.1.html">resample</B>(1)</A>
+,<B><A HREF="eheader.1.html">eheader</B>(1)</A>
+ <P>
+  
+<H2><A NAME="sect6" HREF="#toc6">AUTHOR 
+</A></H2>
+<P>
+ Victor B. Wagner &lt;vitus@agropc.msk.su&gt; <P>
+  
+<H2><A NAME="sect7" HREF="#toc7">BUGS </A></H2>
+<P>
+ ??? <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">FUNCTIONS</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">AUTHOR</A></LI>
+<LI><A NAME="toc7" HREF="#sect7">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/palette.n.html b/geography/fGIS/man/palette.n.html
new file mode 100644 (file)
index 0000000..6a81f42
--- /dev/null
@@ -0,0 +1,110 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>palette(n) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<P>
+  
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+palette - Create and manipulate color palettes  <P>
+  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B> palette 
+<I>option </I></B> ?<I>arg </I>? <P>
+  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+<P>
+This command creates palette object, which 
+is used for map visualisation. Palette is array of 256 RGB color specifications, 
+indexed by integers from 0 to 255.  Typically palette entry N is used for 
+displaying map class N. Upon creation of object new Tcl command with same 
+name as object is defined and can be used for manipulating palette. <B>palette 
+</B> command returns name of created object. One palette, named <B>defaultpalette 
+</B> is created during initialization of fGIS. In difference of user-created 
+palettes it cannot be modified. <P>
+  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>palette read <I>filename </I></B>  </DT>
+<DD>- reads 
+palette from specified file. File should confirm EPPL7 clr file syntax. 
+</DD>
+
+<DT><B>palette parse <I>string </I></B>  </DT>
+<DD>- reads palette from string. String should have same 
+format as EPPL7 clr file. </DD>
+
+<DT><B>palette set <I>list </I></B>  </DT>
+<DD>- creates palette from list 
+of color specification. Each element of list should have format #rrggbb. 
+Color names are not supported by palettes. Color specifications are assigned 
+to palette indices in sequentual order. </DD>
+
+<DT><B>palette blank </B>  </DT>
+<DD>- creates new palette 
+with all entries set to white (#ffffff). </DD>
+</DL>
+<P>
+<DL>
+
+<DT><B>palette copy <I>paletteName </I></B>  </DT>
+<DD>- creates 
+a copy of existing palette. This allows to create modifable copy of default 
+palette. </DD>
+</DL>
+<H2><A NAME="sect4" HREF="#toc4">OBJECT COMMAND </A></H2>
+Palette object names can be used as command names. 
+They support folowing  options: 
+<DL>
+
+<DT><I>paletteName<B> delete </B></I> -  </DT>
+<DD>destroys palette 
+object.  </DD>
+
+<DT><I>paletteName<B> get<I> index </I></B></I>  </DT>
+<DD>- return color for given index in palette. 
+Color is returned as #rrggbb, and can be used as color specification in 
+Tk commands. </DD>
+
+<DT><I>paletteName<B> list </B></I>  </DT>
+<DD>- return list of all colors in palette. This 
+list always contains 256 elements. This list can be used as argument for 
+<B>palette set </B> command, to create same palette. </DD>
+
+<DT><I>paletteName<B> print </B></I>  </DT>
+<DD>- returns 
+string, containing content of valid EPPL7 clr file, which can be used 
+to reproduce this palette. </DD>
+
+<DT><I>paletteName<B> set<I> index value </I></B></I>  </DT>
+<DD>- changes contents 
+of given entry to <I>value </I>. Value should be in form #rrggbb. Other forms of 
+colors, supported by Tk are not supported by palettes. </DD>
+</DL>
+<H2><A NAME="sect5" HREF="#toc5">SEE ALSO </A></H2>
+<B><A HREF="patterns.n.html">patterns</B>(n)</A>
+,<B><A HREF="fgisRasterColorImage.n.html">fgisRasterColorImage</B>(n)</A>
+. 
+<P>
+ <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">OBJECT COMMAND</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/planchet.n.html b/geography/fGIS/man/planchet.n.html
new file mode 100644 (file)
index 0000000..542b3d5
--- /dev/null
@@ -0,0 +1,617 @@
+    <!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>planchet(n) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+ <BR>
+     <BR>
+    
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+planchet - Create and manipulate planchet widgets  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS 
+</A></H2>
+<B>planchet<I> <I>pathName  </I></I></B>?<I>options </I>?  
+<H2><A NAME="sect2" HREF="#toc2">STANDARD OPTIONS </A></H2>
+<P>
+<P>
+<B> -background<tt> </tt>&nbsp;<tt> </tt>&nbsp;-insertwidth<tt> </tt>&nbsp;<tt> </tt>&nbsp;-state 
+<BR>
+ -insertbackground<tt> </tt>&nbsp;<tt> </tt>&nbsp;-relief<tt> </tt>&nbsp;<tt> </tt>&nbsp;-tile <BR>
+ -cursor<tt> </tt>&nbsp;<tt> </tt>&nbsp;-insertborderwidth<tt> </tt>&nbsp;<tt> </tt>&nbsp;-selectbackground<tt> </tt>&nbsp;<tt> </tt>&nbsp;-takefocus 
+<BR>
+ -highlightbackground<tt> </tt>&nbsp;<tt> </tt>&nbsp;-insertofftime<tt> </tt>&nbsp;<tt> </tt>&nbsp;-selectborderwidth<tt> </tt>&nbsp;<tt> </tt>&nbsp;-xscrollcommand <BR>
+ -highlightcolor<tt> </tt>&nbsp;<tt> </tt>&nbsp;-insertontime<tt> </tt>&nbsp;<tt> </tt>&nbsp;-selectforeground<tt> </tt>&nbsp;<tt> </tt>&nbsp;-yscrollcommand 
+<BR>
+ <P>
+</B>See the <B>options </B> manual entry for details on the standard options.  <P>
+<B>Note: 
+</B> Standard optiosn -highlightthickness  and <B>-bordewidth </B> are ignored by planchet, 
+and set to 0. Therefore <B>-relief </B> options have no effect.  
+<H2><A NAME="sect3" HREF="#toc3">WIDGET-SPECIFIC 
+OPTIONS </A></H2>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-coordformat </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>coordFormat </B> <BR>
+ Database 
+Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>CoordFormat </B> <BR>
+<DL>
+
+<DT> Specifies format string to display current map coordinates, 
+if no projection  </DT>
+<DD>defined. Defaults to "X=%0.8g Y=%0.8g" </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-orient 
+</B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>orient </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>Orient </B> <BR>
+<DL>
+
+<DT> Specifies printing orientation 
+for this planchet. May be either portrait  </DT>
+<DD>or landscape. Defaults to landscape 
+</DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-lookwidth </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>lookWidth </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>LookWidth 
+</B> <BR>
+<DL>
+
+<DT> Wraplength of text in popup look window. Defaults to 200.  </DT>
+<DD></DD>
+</DL>
+<P>
+<P>
+Command-Line 
+Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-shiftfactor </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>shiftFactor </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>ShiftFactor 
+</B> <BR>
+<DL>
+
+<DT> Specifies share of window size to move on <B>shift </B> widget command.  </DT>
+<DD>Defaults 
+to 0.75 </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-resizable </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>resizable </B> <BR>
+ Database 
+Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>Resizable </B> <BR>
+<DL>
+
+<DT> Specifies a boolean value that indicates whether or 
+not should planchet  </DT>
+<DD>adjust its width/height ratio, when coordinate limits 
+are first defined. </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-rulerpos </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>rulerPos </B> 
+<BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>RulerPos </B> <BR>
+<DL>
+
+<DT> Indicates position of scale ruler in planchet. 
+(its left end). Should be  </DT>
+<DD>list of two coordinates in any form, acceptable 
+by Tk. Positive values are measured from top and left and negative from 
+lower and right side  of planchet </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-scalevar </B> <BR>
+ Database 
+Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>scaleVar </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>Variable </B> <BR>
+<DL>
+
+<DT> Specifies the name of variable. 
+Current scale of map would be stored in  </DT>
+<DD>this variable automatically upon 
+each change of scale in form 1:denominator. If variable doesn't exist in 
+global scope, it would be created. </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-statusline </B> <BR>
+ Database 
+Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>statusLine </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies name of label widget 
+which would be used for displaying status  </DT>
+<DD>information of planchet (i.e. 
+current mouse pointer coordinates). Widget should exist before creating 
+planchet or before passing it to planchet configure command. </DD>
+</DL>
+<P>
+<P>
+Command-Line 
+Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-legbox </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>legBox </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies 
+name of canvas widget which would display scrollable legend of   </DT>
+<DD>base 
+layer. Note, that scrollable legend is not printed automatically by print 
+command. All contents of this widget would be erased each time base layer 
+changed in planchet. </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-zoombutton </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>zoomButton 
+</B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies name of button, which is used to initiate 
+zoom operation on  </DT>
+<DD>canvas. (usially via <B>zoom </B>) widget command. Planchet 
+controls its state, disabling it, if coordinate system is not defined. 
+It should exist before it passed to planchet. </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-unzoombuttons 
+</B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>unzoomButtons </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies list 
+of buttons, which are used to perform various unzoom operations  </DT>
+<DD>(like 
+<B>unzoom </B> or <B>limits default </B> widget commands). Planchet controls their state, 
+disabling them if such operations are impossible. </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-shiftbuttons 
+</B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>shiftButtons </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies list of 
+four buttons for perform shift operation on planchet.  </DT>
+<DD>Buttons are specified 
+in following order  left(west) down(south) <A HREF="up.north.html">up(north)</A>
+ and right(west), 
+the same way as vi cursor movement keys are situated on keyboard. </DD>
+</DL>
+<P>
+<P>
+Command-Line 
+Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-zoombutton </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>zoomButton </B> <BR>
+ Database Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies 
+name of button, which is used to initiate zoom operation on  </DT>
+<DD>canvas. (usially 
+via <B>zoom </B>) widget command. Planchet controls its state, disabling it, if 
+coordinate system is not defined. It should exist before it passed to planchet. 
+</DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-unzoombuttons </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>unzoomButtons </B> <BR>
+ Database 
+Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies list of buttons, which are used to perform various 
+unzoom operations  </DT>
+<DD>(like <B>unzoom </B> or <B>limits default </B> widget commands). Planchet 
+controls their state, disabling them if such operations are impossible. 
+</DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-shiftbuttons </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>shiftButtons </B> <BR>
+ Database 
+Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies list of four buttons for perform shift operation 
+on planchet.  </DT>
+<DD>Buttons are specified in following order  left(west) down(south) 
+<A HREF="up.north.html">up(north)</A>
+ and right(west), the same way as vi cursor movement keys are 
+situated on keyboard. This buttons should be either all be specified or 
+all be empty, in which case list of four empty elements should be passed. 
+Planchet not only controls state of buttons, but also redefines their 
+commands. </DD>
+</DL>
+<P>
+<P>
+Command-Line Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>-projection </B> <BR>
+ Database Name:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>projection </B> <BR>
+ Database 
+Class:<tt> </tt>&nbsp;<tt> </tt>&nbsp;<B>none </B> <BR>
+<DL>
+
+<DT> Specifies Fgis projection object which is used to convert 
+chartographic   </DT>
+<DD>coordinates of planchet into geographic (latitude and 
+longitude) and vice versa. </DD>
+</DL>
+<P>
+ <P>
+In addition to these all options of <B>canvas 
+</B> widget are supported.  
+<H2><A NAME="sect4" HREF="#toc4">INTRODUCTION </A></H2>
+<P>
+The <B>planchet </B> command creates a new 
+window (given by the <I>pathName </I> argument and makes it into planchet widget. 
+<P>
+ Additional options, described above, can be given to control its behavoir. 
+Currently they could be specified only in command line, not in option 
+database, but it shoudl change in future. <P>
+ <B>planchet </B> command returns its 
+<I>pathName </I> argument. At the time this command is invoked, there must not 
+exist a window, named <I>pathName </I>, but <I>pathName </I>'s parent must exist. <B>planchet 
+</B> command also creates new Tcl command named <I>pathName </I> which can be used 
+to control widget. <P>
+ <P>
+ Planchet widget have all behavoir supported by Tk 
+<B>canvas </B> widget, but, in addition it could have  chartographic coordinate 
+system and able to visualize and manipulate maps. <P>
+  
+<H2><A NAME="sect5" HREF="#toc5">COORDINATE SYSTEM </A></H2>
+<P>
+Planchet coordinate system is real-world coordinate system. Its coordinates 
+should be in meters of earth surface, not in pixels, millimeters or other 
+map sheet or screen-related units. It can be defined either explicitely 
+via <B>limits </B> widget command, or implicitely, when first map is shown in 
+planchet. <P>
+ There are special commands which allow to recalculate from map 
+(realword) coordinates to screen coordinates. Screen coordinate system 
+of planchet is same as of canvas.   
+<H2><A NAME="sect6" HREF="#toc6">LAYERS </A></H2>
+Planchet can visualize maps, 
+which are represented as Fgis layer objects. There are two ways of display 
+layer - as base layer or as ovelay. <P>
+Base layers are opaque, they are typically 
+raster layers, shown by colors. There can be only one base layer in plachet 
+in given time. If <B>legbox </B> helper widget is defined, and legend for base 
+layer is drawable, it would be displayed in this widget. Several layer 
+types couldn't be displayed as base layers. <P>
+ <P>
+Overlay layers are transparent, 
+although visible. There can be several  overlay layers in planchet at given 
+time. Any layer can be displayed as overlay. <P>
+When first layer is displayed 
+in planchet, with undefined coordinate system, coordinate system limits 
+for planchet are got from limits of layer. If layer cannot provide this 
+information, it causes an error. <P>
+  
+<H2><A NAME="sect7" HREF="#toc7">HELPER WIDGETS </A></H2>
+<P>
+ Planchet can be accompanied 
+with several other widgets, which are used to interact with user. If this 
+widgets are passed to planchet via commandline options (or via widget 
+<B>configure </B>) command, it can control them automatically and disable them, 
+if corresponding action is impossible. See <B>OPTIONS ABOVE </B>. <P>
+  
+<H2><A NAME="sect8" HREF="#toc8">SCALE INDICATION 
+</A></H2>
+<P>
+ There are two traditional ways of scale indication - numerical and graphical. 
+As numerical indication, <B>-scalevar </B> option of planchet widget allows to 
+specfy Tcl global variable, which would always hold current value of map 
+scale. <P>
+As graphical representation of scale, planchet can display scale 
+ruler which shows how some realword distance is visible in planchet. <P>
+  
+
+<H2><A NAME="sect9" HREF="#toc9">LOOK FEATURE </A></H2>
+<P>
+ Planchet allows to collect information from several layers 
+in given point. By default it pops up window with this information on right 
+button click. Set of layers which included in this information is called 
+<B>look list </B>. <P>
+  
+<H2><A NAME="sect10" HREF="#toc10">WIDGET COMMAND </A></H2>
+<P>
+<P>
+ The <B>planchet </B> command creates a new Tcl command 
+whose name is <I>pathName </I>. This command can be used to invoke various operaitons 
+on the widget. It has following general form:  <blockquote><P>
+ <I>pathName option  </I>?<I>arg arg 
+.. </I>? <BR>
+  </blockquote>
+ <I>Option </I> and the <I>arg </I>s determine the exact behavior of the command. 
+Planchet supports all  widget commands, defined for <B>canvas </B> widget and 
+following special commands, specific to planchet: 
+<DL>
+
+<DT><I>pathName <B>clear </B></I>  </DT>
+<DD>Removes 
+all layers from planchet, and from look list and unsets coordinate system 
+</DD>
+
+<DT><I>pathName <B>cget<I> option </I></B></I>  </DT>
+<DD>Returns value of specified configuration option. 
+In addition to standard options and widget specific options, supports 
+all options of canvas widget. Several internal variables can also be obtained 
+this way, but it is dirty and undocumented hack. </DD>
+
+<DT><I>pathName <B>configure<I> option 
+arg ?option arg ...? </I></B></I>  </DT>
+<DD>Allows to change value of one or more options.  </DD>
+
+<DT><I>pathName 
+<B>fit<I> x y </I></B></I>  </DT>
+<DD>Returns 1 if point, given in real world coordinates is inside 
+current planchet limits, and 0 otherwise. </DD>
+
+<DT><I>pathName <B>hide<I> pattern ?pattern...? 
+</I></B></I>  </DT>
+<DD>Removes all layers which matches pattern from planchet. </DD>
+
+<DT><I>pathName <B>layers 
+</B></I> ?<I>pattern </I>?  </DT>
+<DD>Return list of all visible layers, either base or overlays, 
+which match given pattern. By default - all layers. </DD>
+
+<DT><I>pathName <B>limits </B></I>  </DT>
+<DD>Used 
+to control limits of realword coordinate system. Can have one of following 
+form  <blockquote></DD>
+
+<DT><B>limits </B>   </DT>
+<DD>Without any arguments return list of four double values, 
+representing real world coordinates of window sides. They are given in 
+folowing order:  <blockquote><P>
+ <I>XLeft YBottom XRight YTop </I><BR>
+ </DD>
+</DL>
+ </blockquote>
+<DL>
+
+<DT><B>limits <I>list </I></B>  </DT>
+<DD></DD>
+
+<DT><B>limits <I>xleft 
+ybottom xright ytop </I></B>  </DT>
+<DD>Given list of four double values or four double 
+values as separate arguments, sets planchet limits for this value. If <B>-resizable 
+</B> option is true and no coordinate system was defined before, adjusts width/height 
+ratio of planchet to reflect this ratio of given limits. Otherwise expands 
+given limits to have same width/height ratio as widget. </DD>
+</DL>
+<P>
+ If directions 
+of axes of given limits doesn't match those of currently defined coordinate 
+system, silently reverts them. Therefore order of coordinates in insignificant, 
+once coordinate system is defined. <P>
+ If coordinate system was defined, assumes 
+that zooming operation is performed and stores old limits in zoom stack 
+for subsequent unzoom operation. If scale of given limits is smaller, then 
+of some limits in zoom stack, discards all elements with scale larger 
+than given for unzoom operation shouldn't increase scale. Nevertheless initial 
+limits are never discarded this way. 
+<DL>
+
+<DT><B>limits default </B>  </DT>
+<DD>Clears zoom stack 
+and restores coordinate limits to their initial values. </DD>
+</DL>
+ </blockquote>
+  
+<DL>
+
+<DT><I>pathName <B>look 
+</B></I>  </DT>
+<DD>Controls <B>LOOK FEATURE </B> of planchet. Can have one of following forms  
+<blockquote></DD>
+
+<DT><B>look add <I>layer </I></B>  </DT>
+<DD>adds layer to look list. </DD>
+
+<DT><B>look list  </B>?<I>pattern </I>?  </DT>
+<DD>Returns 
+list of layers in look list, which match pattern. By default all layers 
+</DD>
+
+<DT><B>look remove <I>pattern </I></B>  </DT>
+<DD>removes layers which match pattern from look list 
+</DD>
+
+<DT><B>look remove all </B>  </DT>
+<DD>clears look list entirely </DD>
+
+<DT><B>look <I>x y  </I></B>?<B>-titled|-list|-raw </B>? 
+ </DT>
+<DD>return list of information for all layers in look list at given point. 
+If <B>-titled </B> option is specified, each element in list is formatted string. 
+Otherwise it is two element list which first element - layer title, and 
+second - layer value. <B>-raw </B> option returns only values, without layer title 
+information.  </DD>
+</DL>
+<P>
+ Length of this list not neccesary matches length of look 
+list, becouse if some layers are undefined in given point, they do not 
+create list element.  </blockquote>
+
+<DL>
+
+<DT><I>pathName <B>mapx <I>x </I></B></I>  </DT>
+<DD></DD>
+
+<DT><I>pathName <B>mapy </B></I>  </DT>
+<DD>Given screen coordinate 
+in any form, acceptable by Tk, returns realword coordinate. </DD>
+
+<DT><I>pathName <B>print 
+</B></I> ?option arg ...?  </DT>
+<DD>Wrapper around <B>postscript </B> command. Uses default Fgis font 
+mapping and print system, also widget default orientation. By default, 
+send output to default Fgis printer using command, defined in fgis configuration 
+file. </DD>
+</DL>
+<P>
+ Following options are supported:  <blockquote><B>-colormode<I> mode </I></B> Same as <B>colormode 
+</B> option in canvas <B>postscript </B> command. 
+<DL>
+
+<DT><B>-file<I> filename </I></B>  </DT>
+<DD>Write postscript 
+representation of planchet into given file, instead of piping it to print 
+command. </DD>
+
+<DT><B>-fontmap <I>variable </I></B>  </DT>
+<DD>array used to map screen fonts to postscript 
+fonts. See canvas <B>postscript </B> command for more information. </DD>
+
+<DT><B>-printer <I>printername 
+</I></B>  </DT>
+<DD>Overrides default printer, specified in fgis.rc file. </DD>
+</DL>
+ </blockquote>
+
+<DL>
+
+<DT><I>pathName <B>ruler<I> 
+?on|off? </I></B></I>  </DT>
+<DD>Controls scale ruler. </DD>
+
+<DT><I>pathName <B>scale </B></I> ?<I>denominator </I>?  </DT>
+<DD>With no 
+arguments returns current scale denominator. If <I>denominator </I> is given, 
+adjust coordinate limits so that scale would be as specified and center 
+point of widget would have same realworld coordinates as before. </DD>
+</DL>
+<P>
+ If any 
+other arguments are specified, behaves as <B>canvas </B> widget <B>scale </B> command. 
+<P>
+<DL>
+
+<DT><I>pathName <B>scrx <I>x </I></B></I>  </DT>
+<DD></DD>
+
+<DT><I>pathName <B>scry <I>y </I></B></I>  </DT>
+<DD>Given realworld coordinate, returns 
+screen coordinate in pixels. </DD>
+
+<DT><I>pathName <B>setstatus </B></I>  </DT>
+<DD>Displays message if <B>-statusline 
+</B> helper widget, if defined, otherwise does nothing. Can have one of two 
+form:  <blockquote></DD>
+
+<DT><B>setstatus<I> message </I></B>  </DT>
+<DD>displays message as specified </DD>
+
+<DT><B>setstatus<I> x y 
+</I></B>  </DT>
+<DD>Displays given coordinates. If no projection defined, they would be displayed 
+using Tcl <B>format </B> command with value of <B>-coordformat </B> option as first argument. 
+Otherwise they would be displayed using <B>format </B> object command of current 
+projection. </DD>
+</DL>
+ </blockquote>
+
+<DL>
+
+<DT><I>pathName <B>shift <I>direction </I></B></I>  </DT>
+<DD>Changes current coordinate limits 
+so that current view shifts in specified <I>direction </I> by share of corresponding 
+widget size, specified by  <B>-shiftfactor </B> option. </DD>
+
+<DT><I>pathName <B>show <I>layer  </I></B></I>?<B>-base 
+</B>|<B>-overlay </B>?  </DT>
+<DD>Displays specified layer. If neither <B>-base </B> nor <B>-overlay </B> is specifed, 
+shows layer as base if no base layer currently present and layer can be 
+displayed as base. Otherwise displays it as overlay. </DD>
+
+<DT><I>pathName <B>unzoom </B></I>  </DT>
+<DD>Pops 
+last coordinate limits from zoom stack </DD>
+
+<DT><I>pathName <B>zoom </B></I> ?<I> x y </I>? x y ??  
+</DT>
+<DD>Initiates interactive zoom operation. If no coordinates are specified, 
+prompts user to pick both corners of rectangle to display. If one pair 
+is specified, prompts only for second pair. With two pairs just converts 
+values from canvas to realworld coordinates and performs <B>limits </B> command 
+on them.  <blockquote><P>
+ <I>pathName <B>zoom cancel </B></I> <BR>
+ </DD>
+</DL>
+ </blockquote>
+ can be used to abort interactive zoom 
+operation currently in progress.  <blockquote><P>
+ <I>pathName <B>zoom cancel </B></I> <BR>
+  </blockquote>
+ can be used 
+to abort interactive zoom operation currently in progress.  
+<H2><A NAME="sect11" HREF="#toc11">SEE ALSO </A></H2>
+<B><A HREF="layer.n.html">layer</B>(n)</A>
+<H2><A NAME="sect12" HREF="#toc12">BUGS </A></H2>
+No care taken to do something useful if interactive zoom operation 
+is performed on two planchets simulateously. <P>
+ <P>
+ <P>
+ <P>
+ <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">STANDARD OPTIONS</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">WIDGET-SPECIFIC OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">INTRODUCTION</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">COORDINATE SYSTEM</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">LAYERS</A></LI>
+<LI><A NAME="toc7" HREF="#sect7">HELPER WIDGETS</A></LI>
+<LI><A NAME="toc8" HREF="#sect8">SCALE INDICATION</A></LI>
+<LI><A NAME="toc9" HREF="#sect9">LOOK FEATURE</A></LI>
+<LI><A NAME="toc10" HREF="#sect10">WIDGET COMMAND</A></LI>
+<LI><A NAME="toc11" HREF="#sect11">SEE ALSO</A></LI>
+<LI><A NAME="toc12" HREF="#sect12">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/projection.n.html b/geography/fGIS/man/projection.n.html
new file mode 100644 (file)
index 0000000..a93bb9a
--- /dev/null
@@ -0,0 +1,147 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>projection(n) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+.SH NAME<BR>
+
+projection \- Create and manipulate projection objects
+<P>
+.SH SYNOPSIS<BR>
+
+\fB projection \fItype\fR ?\fIparameters\fR?<BR>
+
+.PP
+<P>
+.SH DESCRIPTION<BR>
+
+.PP
+
+<H2><A NAME="sect0" HREF="#toc0">This command creates projection object, used to recalculate geographic</A></H2>
+
+<P>
+coordinates (latitude and longitude) into map projection coodrinates.
+.PP<BR>
+
+\fBprojection\fR command takes list of options and
+returns name of newly created projection object.
+
+<H2><A NAME="sect1" HREF="#toc1">Name of object can be used as Tcl command which have several subcommands</A></H2>
+
+<P>
+(see \fBPROJECTION SUBCOMMANDS\fR below) used for manipulation
+of projections.
+<P>
+.SH PROJECTION TYPES
+
+<H2><A NAME="sect2" HREF="#toc2">Most important property of projection is projection type. fGIS supports</A></H2>
+
+<P>
+following types of projections:
+<P>
+\&raquo; list should be here
+<P>
+.SH PROJECTION OPTIONS
+<P>
+\&raquo; list should be here
+<P>
+.SH PROJECTION SUBCOMMANDS<BR>
+
+.TP 8<BR>
+
+\fIprojName \fBforward\fI long lat\fR<BR>
+
+recieves two arguments - geographic longitude and latitude as degrees in
+decimal format and returs list of two double values representing map
+coordinates in meters.
+<P>
+.TP 8<BR>
+
+\fIprojName \fBbackward\fI X Y \fR<BR>
+
+performs backword transformation - given map coordinates in meters
+returns longitude and latitude in decimal degrees,
+.TP 8<BR>
+
+\fIprojName \fBformat\fI X Y\fR ?\fB-format\fI formatString\fR
+
+<H2><A NAME="sect3" HREF="#toc3">Returns formatted representation of latitude and longitude. String</A></H2>
+
+<P>
+can contain following escapes sequences:<BR>
+
+.RS<BR>
+
+.TP<BR>
+
+\fB%lt\fR<BR>
+
+unsigned latitude in DDMMSS format<BR>
+
+.TP<BR>
+
+\fB%lg\fR<BR>
+
+unsigned longitude in DDMMSS format<BR>
+
+.TP<BR>
+
+\fB%-t\fR \fB%-g\fR<BR>
+
+optionally signed latitude and longitude in DDMMSS format
+.TP<BR>
+
+\fB%+t\fR \fB%+g\fR<BR>
+
+explicitely signed latitude and longitude in DDMMSS format
+.TP<BR>
+
+\fB%lG %lT %-G %-T %+G %+T\fR<BR>
+
+same as above, but in decimal fractions of degree
+.TP<BR>
+
+\fB%dl %dg\fR<BR>
+
+direction indicator - letters N and S for latitude and E and W for
+longitude (or some other national language values as defined in fgis.rc
+file).<BR>
+
+.RE<BR>
+
+
+<H2><A NAME="sect4" HREF="#toc4">If \fIformatString\fR omitted, default &laquo;%lt%dt %lg%dg&raquo; is used.</A></H2>
+
+<P>
+.TP 8<BR>
+
+\fIprojName\fB dump\fR<BR>
+
+returns argumets for projection command used to create this projection
+object.<BR>
+
+.TP 8<BR>
+
+\fIprojName\fB delete\fR<BR>
+
+destroys projection object.
+<P>
+.SH &laquo;SEE ALSO"
+<P>
+.BR proj &laquo;(1), &laquo; pj_init &laquo;(3), &laquo; transform (1)
+<P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">This command creates projection object, used to recalculate geographic</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">Name of object can be used as Tcl command which have several subcommands</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">Most important property of projection is projection type. fGIS supports</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">Returns formatted representation of latitude and longitude. String</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">If \fIformatString\fR omitted, default "%lt%dt %lg%dg" is used.</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/raster.n.html b/geography/fGIS/man/raster.n.html
new file mode 100644 (file)
index 0000000..ad48a97
--- /dev/null
@@ -0,0 +1,417 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>raster(n) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<P>
+  
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+raster - Create and manipulate raster object  <P>
+  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B> raster 
+<I>filename </I></B> ?<I>options </I>? <P>
+  
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+<P>
+This command allows to create raster 
+objects. Raster objects are more low-level concept than fGIS <B>layers </B>. They 
+directly correspond to raster files in EPPL7 format. Their values are always 
+unsigned short integer.  They even make cell size visible to user. This 
+command returns name of raster object which is used for manipulating this 
+object. By default it requires existing raster file without reclass table. 
+ <P>
+ Raster files are objects which holds information of certain integer 
+spatial variable in given rectangular area. Value is stored with certain 
+granulariry. Minimal square, which can be addressed as separate unit, is 
+named cell. Of course, you can specify coordinates with any precision, 
+but while they are in same cell, same value would be returned. Moreover, 
+when you edit raster, you can change values only on per cell basis. <P>
+ Raster 
+file is always rectangular, but spatial variable can be defined on any 
+arbitrary area. So, special value is reserved for "undefined" areas of 
+raster. It is named <B>offsite </B> value. Typically you can read raster it any 
+coordinates, but if no information is provided for this area, offsite 
+would be returned.  <P>
+ There are certain limitation on raster files - file 
+cannot contain more than 32767 cells per row or per column. Possible values 
+of raster should be in range 0-65535. Rows and columns of cells can be numbered 
+starting from any integer, provided that no row or column in file has 
+number out of range -32767- 32767. fGIS, however never relies on column numbers. 
+They are supported only for compatibility with EPPL7.  <P>
+ Raster objects 
+differs from raster files in the way that they include <B>reclass table </B>. 
+This allows to store information about several spatial variables in one 
+file, provided that total count of value combination doesn't exceed raster 
+file limit. Reclass table defines correspondence between file classes (values) 
+and values, returned by raster object. It can be defined by two ways - using 
+special syntax like in EPPL7 RECLASS command (see RECLASS SYNTAX below) 
+or using Tcl list, each element of which is pair of values, first base, 
+then reclassed. <P>
+ When raster objects are accessed or created via GIS operations, 
+user may not be aware about underlying raster file level. But when objects 
+are created by interative editing, certain properties of raster (i.e. cell 
+size) should be specified. <P>
+ Raster objects behave like other fGIS objects 
+- layers, legends, palettes etc. Once object is created, new Tcl command 
+with same name is created. This command is used to access and modify rasters. 
+<P>
+  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>-reclass <I>statements </I></B>  </DT>
+<DD>-specifies reclass table for created raster 
+object. <I>statements </I> is string, containing set of reclass statements. See 
+<B>RECLASS SYNTAX </B> below for details </DD>
+
+<DT><B>-table <I>list </I></B>   </DT>
+<DD>-specifies reclass table 
+in form of Tcl list. Each element of this list should be list of two integers, 
+first of them representing value in raster file, and second - representing 
+value which would be value of new raster object. </DD>
+
+<DT><B>-new </B>   </DT>
+<DD>- specifies that 
+new raster file should be created instead of opening old. This option should 
+be specified immediately after file name and followed by several other 
+options, defining properties of new raster. All subsequent options are 
+applicable only if <B>-new </B> is specified. </DD>
+
+<DT><B>-like<I> rasterObject </I></B>   </DT>
+<DD>- specifies that 
+all important properties  should be copied from existing raster object. 
+</DD>
+
+<DT><B>-width<I> integer </I></B>   </DT>
+<DD>- specifies how many cells should appear in each row. Cannot 
+be used together with <B>-like </B> </DD>
+
+<DT><B>-height<I>integer </I></B>   </DT>
+<DD>- specifies how many cells 
+should be in each column. </DD>
+
+<DT><B>-offsite<I>integer </I></B>  </DT>
+<DD> - specifies which value would 
+be used as "no data" value. Default is 65535 for 16-bit files and 255 for 
+8-bit. Value -1 can be specified for 8-bit files. It means that all classes 
+are onsite. For 16-bit files it is equivalent to 65535. </DD>
+
+<DT><B>-8bit </B> - specifies 
+that only one byte should be used for storing  </DT>
+<DD>values of raster. This limits 
+value range to 0-255, slightly decreases file size (usially much less than 
+two times) and makes file compatible with EPPL7 ver. 2.1. </DD>
+
+<DT><B>-limits<I>{x1 y1 x2 
+y2} </I></B>   </DT>
+<DD>- Allows to specify list of four double values, determinig map coordinates 
+of file. </DD>
+
+<DT><B>-cell<I> value </I></B> - specifies size of cell. In conjunction with <B>-limits 
+</B>  </DT>
+<DD>it gives more convinient way to create new raster, becouse limits defines 
+ area of interest and cell size - accuracy of map. </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect4" HREF="#toc4">OBJECT COMMAND </A></H2>
+<B>raster 
+</B> command creates new Tcl command with same name as raster object, which 
+can be used to manipulate this object.  <P>
+ <I>rasterName<B> box<I>value x1 y1 x2 y2 
+</I></B></I> - fills rectangular region with given value. Raster should be opened in 
+read-write mode (either by <B>-new<I> option of object command or by <B>load </B></I></B> object 
+command). Returns list of four double values, specifying region actually 
+affected by command. (Can be less that specified region, if it exceeds 
+raster boundary). Value is class of base raster file, not reclassed value. 
+<P>
+<DL>
+
+<DT><I>rasterName<B> bpp </B></I> - returns size of data in this raster file  </DT>
+<DD>(8 for 8-bit 
+and 16 for 16 bit rasters). </DD>
+
+<DT><I>rasterName<B> cache  </B></I>?<I>new size </I>?  </DT>
+<DD>- controls size 
+of cache. If raster file is accessed from disk (default read only mode) 
+setting sufficient cache can improve performance of operations, which 
+require nonsequentual access, like <B>transect </B>. </DD>
+
+<DT><I>rasterName <B>cell </B></I> ?<B>-area </B>? 
+ </DT>
+<DD>- returns parameters of cell. By default, returns cell width in map  coordinates, 
+which should be meters, and with <B>-area<I> flag returns cell area in current 
+units (see <B>unit </B></I></B> object command). </DD>
+
+<DT><I>rasterName <B>celllimit </B></I>  </DT>
+<DD>- returns list 
+of four intergers, representig start and end numbers of cells in order 
+<I>first column </I>, <I>last row </I>, <I>last column<B>, <I>first row </I></B></I>. (Why this order? X direction 
+of cell numbers is same as of coordinates  (usially), and Y coodinates 
+usially go from bottom to top, while cells - from top to bottom. So, order 
+of values is same as order of values in <B>limits<I> object command. </DD>
+
+<DT><I>rasterName 
+<B>classes <I>value </I></B></I></I></B>  </DT>
+<DD>- returns list of base file classes which are mapped to 
+specified value of this raster object. </DD>
+
+<DT><I>rasterName <B>circle<I> value x y radius 
+ </I></B></I>?<B>-cells </B>?  </DT>
+<DD>- fills circulare region in read-write raster with given value. 
+If <B>-cells </B>,flag is given, radius is assumed to be in raster cells. Otherwise 
+it is assumed to be in coordinate units. Returns list of coordinates, specifying 
+actualy affected region. </DD>
+
+<DT><I>rasterName <B>col<I> x </I></B></I>  </DT>
+<DD>- returns cell number corresponding 
+to given X coordinate. Returns error, if coordinate is out of file boundaries. 
+</DD>
+
+<DT><I>rasterName <B>comment </B></I> ?<I>string </I>?   </DT>
+<DD>- returns (or modifies) comment, stored 
+in file header. Comment length is limited by 32 symbols. </DD>
+
+<DT><I>rasterName <B>count 
+</B></I> ?<B>options </B>?  </DT>
+<DD>- performs various area-calculating operation General formats 
+folows: </DD>
+
+<DT><I>rasterName <B>count </B></I> ?<B>-- </B>? <I> varname  </I>?<I>region specification </I>?  </DT>
+<DD>fills 
+dynamic array <I>varname </I> indexed by raster classes by areas of these classes 
+in given region.  </DD>
+
+<DT><I>rasterName <B>count -classes <I>list  </I></B></I>?<I>region specification 
+</I>?  </DT>
+<DD>returns area of given classes within given region. </DD>
+</DL>
+<P>
+ Region specification 
+defaults to whole file. Other possible formats are: 
+<DL>
+
+<DT><B>-box<I> x1 y1 x2 y2 </I></B>   
+</DT>
+<DD>- within given rectangular area </DD>
+
+<DT><B>-polygon<I> x y x y ... </I></B>  </DT>
+<DD>- within polygon, given 
+by set of coordinate pairs </DD>
+
+<DT><B>-radius<I> distance x y ... </I></B>  </DT>
+<DD>within given distance 
+of any of given points. </DD>
+
+<DT><B>-mask<I> rasterObject list </I></B>  </DT>
+<DD>in areas where value of 
+another rasterObject is in given list. </DD>
+</DL>
+<P>
+<DL>
+
+<DT><I>rasterName <B>delete </B></I>  </DT>
+<DD>- destroys raster 
+object. If raster was in readwrite mode, all unsaved changes are lost. </DD>
+
+<DT><I>rasterName 
+<B>extents<I> value </I></B></I>  </DT>
+<DD>- returns list of four coordinates, within those all values 
+of given class are contained. </DD>
+
+<DT><I>rasterName <B>filename </B></I>  </DT>
+<DD>- returns name of file, 
+corresponding to this raster object. </DD>
+
+<DT><I>rasterName <B>fill<I> value x y  </I></B></I>?<B>-stop </B>?<I> 
+value </I>  </DT>
+<DD>- fills area, starting with given coordinates with value. By default, 
+stops on encounter of any value other than in given point. If <B>-stop </B> option 
+is specified, stops only when encountering given value. Returns list of 
+coordinates, specifying actually affected region. </DD>
+
+<DT><I>rasterName <B>frame<I> value 
+ x1 y1 x2 y2 </I></B></I> ?<B>-width<I> cells </I></B>?  </DT>
+<DD>- a rectangle with given value, not changing 
+inside area. By default this rectangle is 1 cell wide. </DD>
+
+<DT><I>rasterName <B>get<I> x 
+y  </I></B></I>?<B>-base </B>?  </DT>
+<DD>Returns value of raster in given point. By default returns 
+reclassed value, but if <B>-base </B> is specified, returns class of raster file. 
+</DD>
+
+<DT><I>rasterName <B>limits </B></I>  </DT>
+<DD>Returns list of four doubles, specifying physical 
+limits of raster file, in order <I>XLeft </I>, <I>YBottom </I>, <I>XRight </I>, <I>YTop </I>. </DD>
+
+<DT><I>rasterName 
+<B>line<I> value x y x y ....  </I></B></I>?<B>-width <I>cells </I></B>?  </DT>
+<DD>draws a line with given value. By 
+default one-cell wide. Returns boundaries of region affected. </DD>
+
+<DT><I>rasterName 
+<B>load </B></I>  </DT>
+<DD>Loads raster file into memory, changing it from readonly to readwrite 
+mode, and enabling all editing operation. (<B>-new </B> option of <B>raster </B> command 
+performs <B>load </B> implicitely).  </DD>
+
+<DT><I>rasterName <B>max </B></I>  </DT>
+<DD>-returns maximal value of 
+raster object. </DD>
+
+<DT><I>rasterName <B>min </B></I>  </DT>
+<DD>- returns minimal value of raster object. 
+</DD>
+
+<DT><I>rasterName <B>offsite </B></I> ?<I>value </I>?  </DT>
+<DD>- returns offsite value for raster object, 
+or modifies it. </DD>
+
+<DT><I>rasterName <B>polygon<I> value x y x y ... </I></B></I>  </DT>
+<DD>- fills given polygon 
+of given value. Returns boundaries of region affected. </DD>
+
+<DT><I>rasterName <B>put<I> value 
+x y </I></B></I>  </DT>
+<DD>Changes value of individual cell. Returns nothing. </DD>
+
+<DT><I>rasterName <B>reclass 
+</B></I> ?<I>option </I>? ?<I>arg </I>?  </DT>
+<DD>- manipulates reclass table. Without any options, returns 
+reclass table as Tcl list. </DD>
+
+<DT><I>rasterName <B>reclass -statements </B></I>  </DT>
+<DD>option returns 
+reclass table in form of reclass statements. (see <B> RECLASS SYNTAX </B> below). 
+</DD>
+
+<DT><I>rasterName <B>reclass -table<I> list </I></B></I>  </DT>
+<DD>modifies current reclass using given Tcl 
+list. Values for classes given in this list would be changed as specified, 
+all other remains unchanged. </DD>
+
+<DT><I>rasterName <B>reclass <I>statements </I></B></I>  </DT>
+<DD>modifies reclass 
+using specified reclass statements. As <B>-table </B> options, applies statements 
+to base classes and leaves all nonspecified classes as is. </DD>
+
+<DT><I>rasterName <B>reclass 
+-clear </B></I>  </DT>
+<DD>clears all changes in reclass table and makes reclassed classes 
+equial to base classes. </DD>
+
+<DT><I>rasterName <B>row<I> y </I></B></I>  </DT>
+<DD>return cell number, correspondign 
+to given Y coordinate. Raises error, if coodinnate is outside file limits. 
+</DD>
+
+<DT><I>rasterName <B>save </B></I> ?<I>options </I>?  </DT>
+<DD>- saves raster file. By default, if raster 
+is in readwrite mode, saves changes to current filename. </DD>
+
+<DT><I>rasterName <B>save 
+-as<I> filename </I></B></I>  </DT>
+<DD>- saves raster, open for editing into other file, and makes 
+this file current file of this raster object. </DD>
+
+<DT><B>-backup </B>   </DT>
+<DD>option can be specified 
+for both <B>save </B> and <B>save -as  </B>commands. It makes raster object to keep old 
+version of file with suffix <I>.bak </I> appended to name. </DD>
+
+<DT><I>rasterName <B>save -to<I> filename 
+</I></B></I> ?<B>-8bit </B>?  </DT>
+<DD>allows to write raster object into raster file. Reclass table 
+is applied to this operation, so new file would have base classes like 
+classes of raster object, rather than classes of its base file. </DD>
+</DL>
+<P>
+ If <B>-8bit 
+</B> switch is specified, resulting raster will be forced to 8-bit by discarding 
+high-order byte, even if max value or offsite are outside 0-255 range. (in 
+latter case offsite would be set to 65535). 
+<DL>
+
+<DT><I>rasterName <B>shift <I> dx dy </I></B></I>  </DT>
+<DD>changes 
+origin of cell (row/column) numbers. This is required for certain command 
+of DOS version of EPPL7, although fGIS always uses map (alternative) coordinates) 
+</DD>
+
+<DT><I>rasterName <B>transect </B></I> ?<B>-count<I> varname </I></B>? <I>x y x y ... </I>  </DT>
+<DD>by default, return list 
+consisting of pairs {value width} along the given line. If <B>-count </B> is specified, 
+fills dynamic array <I>varname </I>, indexed by classes, by total widthes of 
+given value along this line. </DD>
+
+<DT><I>rasterName <B>unused </B></I>  </DT>
+<DD>returns value which is 
+never encountered in this raster. </DD>
+
+<DT><I>rasterName <B>unit </B></I> ?<I>new-unit </I>?  </DT>
+<DD>- returns 
+(or changes) area unit of this raster Unit can be one of following: <B>undefined 
+</B>,<B>ft </B>.<B>m </B>,<B>km </B>,<B>mile </B>,<B>ha </B>,<B>acre </B>. All subsequent count operations would return 
+result in given units. <B>Note: </B> map coordinates are always in meters. </DD>
+
+<DT><I>rasterName 
+<B>xleft </B></I> ?<I>new value </I>?  </DT>
+<DD>- returns (or modifies) left boundary coordinate.<B>Note: 
+</B> it simply modifies value, without appropriate changes in other limits 
+or cell area value.  </DD>
+
+<DT><I>rasterName <B>xright </B></I> ?<I>new value </I>?  </DT>
+<DD>- returns (or modifies) 
+right boundary coordinate.  </DD>
+
+<DT><I>rasterName <B>ybottom </B></I> ?<I>new value </I>?  </DT>
+<DD>- returns 
+(or modifies) bottom boundary coordinate.  </DD>
+
+<DT><I>rasterName <B>ytop </B></I> ?<I>new value 
+</I>?  </DT>
+<DD>- returns (or modifies) left boundary coordinate.  </DD>
+</DL>
+<H2><A NAME="sect5" HREF="#toc5">RECLASS SYNTAX </A></H2>
+<P>
+ Syntax 
+of reclass syntax is inherited from EPPL7. General form of reclass statement 
+is line, terminated by newline (<B>Note: </B> trailing newline is obligatory), 
+which consist of new value and list of old (base) values. New value separated 
+from list by equal sign. List of old values can contain individual values 
+and ranges, which are two values, separated by colon. <P>
+<DL>
+
+<DT>Example  </DT>
+<DD>1=1:10 
+20 </DD>
+</DL>
+<P>
+means, that all values from one to ten and value 20 should be reclassed 
+into 1. <P>
+ Set of statements can contain arbitrary number of lines, same 
+value can occur on left side of several lines. If some value occur on right 
+side more than once, last occurence have precedence. <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">OBJECT COMMAND</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">RECLASS SYNTAX</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/reclass1.1.html b/geography/fGIS/man/reclass1.1.html
new file mode 100644 (file)
index 0000000..2fb13f4
--- /dev/null
@@ -0,0 +1,103 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>RECLASS(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+reclass1 - Change classes of given EPPL7 data file  
+<H2><A NAME="sect0" HREF="#toc0">SYNOPSIS </A></H2>
+<B>reclass1 [</B> 
+ ] [  reclass_file] [ <I>-o</I> output_file] file  
+<H2><A NAME="sect1" HREF="#toc1">DESCRIPTION </A></H2>
+Applies given set 
+of reclass statements to  <B>epp</B> file. Reclass statements have simular syntax 
+to DOS version of EPPL7 and may be read from  <I>stdin</I> (both from terminal 
+or pipe) and from file. <P>
+By default, creates file named <I>reclass.out.epp</I> in 
+current directory, but this behavoir can be overriden by  <I>-o</I> option. <P>
+This 
+version can perform only <B>one-way</B> reclass. For multy-file reclass use <B><A HREF="intable.1.html">intable</B>(1)</A>
+instead. <P>
+Output file is created as 16-bit and if after reclass it would 
+contain only classes less than 255, it would be converted into 8-bit. <P>
+If 
+offsite value of old file appears in right side of any reclass statement, 
+offsite value of new file would be from left side of this statement. <P>
+ <P>
+<P>
+  
+<H2><A NAME="sect2" HREF="#toc2">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>- display brief usage message and exit successifully </DD>
+
+<DT><B>--version</B> 
+ </DT>
+<DD>- display version information and exit successifully </DD>
+
+<DT><B>-v</B>  </DT>
+<DD>- verbose. Display 
+number of rows processed during reclass. </DD>
+
+<DT><B>-f</B> reclass_file  </DT>
+<DD>- read reclass 
+statements from given file, instead of  <B>stdin</B> </DD>
+
+<DT><B>-o</B> output_file  </DT>
+<DD>- write result 
+into given file, instead of  <B>reclass.out.epp.</B> Suffix .epp would be substituted, 
+if absent. </DD>
+</DL>
+<P>
+  
+<H2><A NAME="sect3" HREF="#toc3">RECLASS STATEMENT SYNTAX </A></H2>
+<P>
+ Set of reclass statements consists 
+of zero or more lines, each of which has following structure: <P>
+new_class 
+<B>=</B> list of old classes <P>
+<P>
+ New class is number in range 0-65535. List of old 
+classes is space separated list of classes (numbers) and ranges. Range 
+is two numbers, separated by colon. First of them must be less then second, 
+or this range would have no effect. <P>
+If one old class occurs in several 
+statements, only last occurence would take effect, so it is possible to 
+write: <P>
+1=1:255 <P>
+2=2 <P>
+3=12 <P>
+to reclass all classes between 1 and 255, exept 
+2 and 12 to 1 and reclass 12 to 3. <P>
+  
+<H2><A NAME="sect4" HREF="#toc4">SEE ALSO </A></H2>
+<B><A HREF="eheader.1.html">eheader</B>(1)</A>
+,<B><A HREF="cluster.1.html">cluster</B>(1)</A>
+,<B><A HREF="rescale.1.html">rescale</B>(1)</A>
+,<B><A HREF="outtab.1.html">outtab</B>(1)</A>
+,<B><A HREF="intable.1.html">intable</B>(1)</A>
+<P>
+  
+<H2><A NAME="sect5" HREF="#toc5">AUTHOR </A></H2>
+<P>
+ Victor B. Wagner, SoftWeyr. <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">SYNOPSIS</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">DESCRIPTION</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">OPTIONS</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">RECLASS STATEMENT SYNTAX</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">SEE ALSO</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">AUTHOR</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/man/window.1.html b/geography/fGIS/man/window.1.html
new file mode 100644 (file)
index 0000000..1505421
--- /dev/null
@@ -0,0 +1,74 @@
+<!-- manual page source format generated by PolyglotMan v3.0.4, -->
+<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
+
+<HTML>
+<HEAD>
+<TITLE>WINDOW(1) manual page</TITLE>
+</HEAD>
+<BODY>
+<A HREF="#toc">Table of Contents</A><P>
+<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
+window - cuts a portion of epp file  
+<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS </A></H2>
+<B>window </B> [-a%] [-o output_file] 
+ input_file fr lr fc lc   
+<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
+<P>
+ Window creates new  <I>epp</I>-file with 
+given limits. If new limits exceeds limits of old file, this areas would 
+be filled by  <I>offsite</I>  value. <P>
+By default limits are given in rows/columns, 
+but with  <I>-a</I> option you may use alternate coordinates. <P>
+Output file would 
+always be properly aligned with input.  
+<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
+
+<DL>
+
+<DT><B>--help</B>  </DT>
+<DD>displays brief usage 
+information. </DD>
+
+<DT><B>--version</B>  </DT>
+<DD>displays version number </DD>
+
+<DT><B>-%</B>  </DT>
+<DD>Displays percentage of 
+processed lines in file. </DD>
+
+<DT><B>-o</B><I> file </I><B></B>  </DT>
+<DD>gives the name for output file. Defaults 
+to <I>window.out.epp</I> </DD>
+
+<DT><B>-a </B>  </DT>
+<DD>specifies that limits are given in alternate coordinates. 
+</DD>
+</DL>
+<H2><A NAME="sect4" HREF="#toc4">SEE ALSO </A></H2>
+<B><A HREF="mosaic.1.html">mosaic</B>(1)</A>
+,<B><A HREF="eheader.1.html">eheader</B>(1)</A>
+ <P>
+  
+<H2><A NAME="sect5" HREF="#toc5">AUTHOR </A></H2>
+<P>
+ Victor B. Wagner &lt;vitus@agropc.msk.su&gt; 
+<P>
+  
+<H2><A NAME="sect6" HREF="#toc6">BUGS </A></H2>
+<P>
+ ??? <P>
+
+<HR><P>
+<A NAME="toc"><B>Table of Contents</B></A><P>
+<UL>
+<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
+<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
+<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
+<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
+<LI><A NAME="toc4" HREF="#sect4">SEE ALSO</A></LI>
+<LI><A NAME="toc5" HREF="#sect5">AUTHOR</A></LI>
+<LI><A NAME="toc6" HREF="#sect6">BUGS</A></LI>
+</UL>
+</BODY></HTML>
diff --git a/geography/fGIS/tclext.html b/geography/fGIS/tclext.html
new file mode 100644 (file)
index 0000000..c57d8dc
--- /dev/null
@@ -0,0 +1,185 @@
+<html>
+<head>
+<title>fGIS Tcl extension</title>
+<head>
+<body>
+
+<H1>fGIS Tcl extension</h1>
+
+<!-- CONTENT NUMBERED NESTED --><OL>
+<LI><A HREF="#toc_section0">Data objects</A>
+<LI><A HREF="#toc_section1">Layers</A>
+<LI><A HREF="#toc_section2">Regions</A>
+<LI><A HREF="#toc_section3">Planchets - map visualisation</A>
+<LI><A HREF="#toc_section4">Layer visualisation modes</A>
+<LI><A HREF="#toc_section5">External program interface</A>
+<LI><A HREF="#toc_section6">Database connectivity</A>
+<LI><A HREF="#toc_section7">Tools and bricks</A>
+</OL>
+<!-- END CONTENT -->
+
+fGIS Tcl extnesion consists of two parts:
+<OL>
+<LI> one that allows GIS data manipulation within Tcl script
+<LI> one that allows to view maps in Tk interface.
+</OL>
+In future version they would be separated into different Tcl packages,
+thus allowing to use non-Tk part for processing data without graphical
+interface.
+<P>
+<A NAME="toc_section0"></A><H3>Data objects</H3>
+<DL>
+<DT><A HREF=man/raster.n.html>raster</A>
+<DD> An object which represents raster file in Tcl script. Allows
+   to access data by coordinates, access metadata, stored in raster file
+   itself, edit raster, and even performs some, relatively simple,
+   analysis. 
+   <P>
+   <b>raster</b> object is combination of raster file and reclass table,
+   thus you can create many raster objects with different semantics from
+   one raster file thus saving disk space and other system resources.
+<DT><A HREF=man/vector.n.html>vector</A>
+<DD>The same thing for vector maps <B>(not written yet)</B>
+<DT><A HREF=man/palette.n.html>palette</a>
+<DD>   Object which handles color table
+<DT><A HREF=man/patterns.n.html>patterns</A>
+<DD> Handles set of patterns used to visualize maps
+<DT><A HREF=man/legend.n.html>legend</A>
+<DD>Stores table of corespondence between raster object classes and
+semantic (string) values
+<DT><A HREF=man/projection.n.html>projection</a>
+<DD>stores projection information and converts coordinates from lat/long
+to X/Y and vice versa. It is based on <A
+HREF="http://kai.er.usgs.gov/ftp/mapgenproj.html">Projection library by
+ Gerald Ian Evenden</a>
+</DL>
+
+<A NAME="toc_section1"></A><H3>Layers</H3>
+
+<A HREF=man/layer.n.html>Layer</a> Tcl representation of functional map
+concept. This is an object, which can return you semantic information
+for given coordinate, or draw itself as chartographic representation of
+information it keeps.
+<P>
+There are lot of different layer types which are created from different
+data sources. Classification looks like:
+<OL>
+<LI>raster layers
+ <OL><LI> raster - static data, read from file with tabular legend
+ <LI> dem - static data with values calculated from file classes by
+  mathematical function
+ <LI> chart - dynamic data obtained from database query 
+</OL>
+<LI>vector layers
+ <Blockquote>
+   <I>Needs further investigation</I>
+ </blockquote>
+<LI>point layers
+ <OL>
+  <LI>tag - set of points with arbitrary values, plots itself as labeled
+    signs
+  <LI>diagram - set of points with vector of numeric values each,
+plotted as bar or pie chart
+  <LI>observation - set of points which get values from database query
+ </OL>
+</OL>
+
+Layer object have some methods and properties, but usially end-user
+should operate with layer as whole, passing its name to high-level
+library procedures, rather than invoking its individual method. Even
+visualisation of layer is handled by &quot;asking plachet (mapping
+window) to show particular layer&quot; as opposed to &quot;asking layer
+to show itself in particular planchet&quot;.
+
+<A NAME="toc_section2"></A><H3>Regions</H3>
+
+Region is collection of map, which cover same territory and have same
+projection, but may differ in spatial resolution. <A
+HREF="man/region.n.html">region</a> tcl object exist, becouse there
+are some properties of region itself - projection and division into
+subregions. It is high level object, which intended to be manipulited
+by end-user rather than application programmer, like layer.
+
+<A NAME="toc_section3"></A><H3>Planchets - map visualisation</H3>
+
+Map visualisation in f(GIS) is handled via special Tk widget, called
+<a href=man/planchet.n.html>planchet</a>. Planchet is much like Tk
+canvas and supports all operation of canvas (Actually, it is derived
+from canvas). In addition, it has real-world coordinates, and knows its
+current scale. It also keeps track of layers currently displayed, which
+allows it to handle panning and scaling. 
+<P>
+It also have &quot;look
+feature&quot; which allows it to return values some list of layers (not
+neccessary ones currently displayed). By default it displays this
+list in pop-up window upon right mouse click. 
+<P>
+Planchet also knows if
+it has geographical projection defined. If so, it is able to display 
+current latitude/longitude of mouse pointer. Otherwise it just shows
+real-world coordinates.
+<P>
+To simplify designing of user-interfaces we've introduced a notion of
+<I>helper widgets</I>. It means that planchet keeps track of several
+widgets (status line, legend box, zoom/unzoom buttons) and updates 
+their states according to its own state changes. These widgets are not
+part of planchet and their placement in application GUI is left to
+application designer.
+<P> Additional attributes of planchet are <i>scale ruler</I> and
+<I>geographic grid</I>, which can be shown or hidden at any time.
+    
+<A NAME="toc_section4"></A><H3>Layer visualisation modes</H3>
+
+f(GIS) supports various layer visualisation modes. 
+Raster layers can be drawn in opaque colors (which is traditional for
+raster GIS), in patterns, and symbols. Both symbol and pattern view
+are transparent and can be overlaid over other layers. They both use
+same pattern set object to store information about pattern symbol
+shapes. Difference between pattern and symbol mode is that in pattern
+mode patterns can be clipped by polygon boundaries when in symbol mode
+symbol is drown wholly if its central point belong to corresponding
+class or not drawn at all, and never would be drawn partially.
+<img src=drawing-modes.gif align=center> 
+
+<A NAME="toc_section5"></A><H3>External program interface</H3>
+
+Most GIS operations in f(GIS) are implemented as <A HREF="EPU.html">
+external utilities</a>, which allows to execute them in parallel with
+main GUI applications. But there should be easy way to invoke them from
+GUI as well as from Tcl prompt. So, Tcl library provides helper
+procedures which allows to construct <A
+HREF="usercmd.html">high-level</a> commands, which invokes utility, 
+translating high-level concepts as layers and region to lower-level
+concepts, which are understood by utilities, and displays its progress
+in separate window.
+
+<A NAME="toc_section6"></A><H3>Database connectivity</H3>
+
+It has been said already, that f(GIS) doesn't even try to implement
+home-grown database management system. Instead, it uses various 
+<A HREF="http://www.neosoft.com/tcl/ftparchive/sorted/databases/">RDBMS
+connectivity extensions</a>, available for Tcl. Unfortunately these
+extensions don't have so unified interface as provided by DBI package
+for Perl language. So, it was neccessary to develop additional
+abstraction layer <A HREF=TclDBI.html>TclDBI</a> which allows to write
+database-related parts of f(GIS) without regard to particular RDBMS
+server behind it. 
+
+<A NAME="toc_section7"></A><H3>Tools and bricks</H3>
+
+Being a large and complicated Tcl application, f(GIS) uses a lot of
+general purpose procedures, widgets and other reusable pieces of code.
+In difference with commercial applications, all this tools are open 
+and usable for application developer and even end user. Most notable of 
+them include:
+<UL>
+<LI><A HREF="http://www.cs.uoregon.edu/research/tcl/script/widget/">
+ megawidget library</a> by J. Hobbs
+<LI><A HREF="http://www.cs.uoregon.edu/research/tcl/capp/">Tabular
+widget</a> by same author
+<LI><A
+HREF="http://www.fe.msk.ru/~vitus/works/works_tcl.html#getopt">Getopt</a>
+library
+<LI><B>Object orientend extension</B> used for developing layers.
+</UL>
+
diff --git a/geography/fGIS/topology.html b/geography/fGIS/topology.html
new file mode 100644 (file)
index 0000000..a0a6fee
--- /dev/null
@@ -0,0 +1,128 @@
+<HTML>
+<HEAD>
+<TITLE>
+ Creating topology from raster
+</TITLE>
+<BODY>
+
+
+[<A HREF=index.html><I>f(</I><B>GIS</B><I>)</I> home</A>]
+[<A HREF=EPU.html>EPU</A>]
+<HR>
+<H1>Creating topology from raster and vice versa</H1>
+<!--CONTENT NUMBERED BACKREFS--><OL>
+<LI><A NAME="toc_entry0"></A><A HREF="#toc_section0">Generation of polygon labels</A>
+<LI><A NAME="toc_entry1"></A><A HREF="#toc_section1">Generation of vector topology from raster</A>
+<LI><A NAME="toc_entry2"></A><A HREF="#toc_section2">Rasterizing polygon coverages</A>
+</OL>
+<!-- END CONTENT -->
+
+<A NAME="toc_section0"></A><A HREF="#toc_entry0"><H3>Generation of polygon labels</H3></A>
+<A HREF=EPU.html>EPU</A> border command should have option to generate
+polygon labels along with polygon boundaries.
+<P>
+This would allow to import polygon maps into vector-based systems like
+Arc/Info and also have some additional applications like plotting barchart
+and piecharts on the map.
+<P>
+Currently both EPPL7 and Arc/Info are able to generate polygon labels
+given raster map (EPPL7) or correct set of polygon boundaries (ARC/Info).
+But their algorithms both have shortcomings. EPPL7 always and Arc/Info in case
+of polygon with complex shape put label point too close to polygon boundary.
+<P>
+While it can be bearable if sole purpose of this label point is to identify
+polygon in vector topology map, it is not good for plotting charts other 
+possible applications of label points.
+<P>
+So following algorithm is proposed:
+<OL>
+<LI> Generate unique numbers for polygons (EPU <B>cluster</b> command
+     already can do this)
+<LI> Calculate distance of each raster cell to nearest polygon boundary
+     (combination of EPPL7  <B>border</B>(epp) and <B>radius</B> commands 
+     can do this and
+      EPU <B>thiessen</B> command eventually would)
+<LI> Find out maximal distance from boundaries for each polygon
+    (<B>outtable</B> command)
+<LI> Retrieve coordinates of any point with given distance and polygon
+     ID and use it as label point. (can be done with EPPL7
+     <B>intable</B> and  <B>evaluate</B> and is trivial thing if coded
+     in C.
+</OL>
+
+Analysis of this algorithm shows that it can be performed using at most
+two passes over raster, given that all intermediate structures are kept
+in memory.
+<P>
+<I>First pass</I> perform cluster and radius operations in parallel. 
+Write three intermediate rasters, two of which contain low and high half-words of uniquie polygon numbers and third - distance to boundaries. During
+this pass table of maximal distance for each polygon should be accumulated.
+<P>
+<I>Second pass</I> Find a point for each entry of polygon-distance table and
+write its coordinates along with polygon ID.
+<P>
+
+<A NAME="toc_section1"></A><A HREF="#toc_entry1"><H3>Generation of vector topology from raster</H3></A>
+
+Vector topology as used by arc/info consist of following parts
+<OL>
+  <LI> No arc in coverage should intersect each other
+  <LI> Each polygon should have exactly one label
+  <LI> Each arc should have atributes denoting left and right polygons.
+  <LI> Each point where arcs are joined (node) should have a record
+      which lists IDs of arcs joined in it.
+</OL>
+If we are building polygon coverage from file, generated via EPPL7 or EPU
+<B>border</B> commands, constraints 1 and 2 are ensured by border algorithm.
+If we are using algorithm described above, for label points, we have
+enough information to assign left and right polygon IDs for any polyline
+(arc), provided that polylines are generated on second pass of above algorithm.
+<P>
+So, only thing we need is to create list of nodes. It is also much simplier
+to do during raster scan, than processing vector file, becouse while we are
+passing location of node, we have all lines joined here at hand, while in
+the vector file they can be very far from each other, becouse lines which
+<I>starts</I> at this node would be written to the file only when they would
+<I>end</I>.
+<P>
+The only thing which prevents me (and possible other authors of raster-based GIS) to export ready to use topology to ARC/Info instead of exporting GEN files
+and requiring user to do time-consuming CLEAN or BUILD operation, is closeness of ARC/Info export format.
+<A NAME="toc_section2"></A><A HREF="#toc_entry2"><H3>Rasterizing polygon coverages</H3></A>
+
+EPPL7 <B>rasterize</B> command operates on non-topological vector files.
+Therefore it have to do three passes over file and often leave small
+holes which have to be eliminated using <b>fill</B> command. But it works
+very fast and have (especially in incarnation of EPU <B>cluster</B> command)
+almost no limitation concerning raster size and polygon complexity.
+<P>
+ARC/Info <B>polygrid</B> command produces raster without holes, but it works
+very slowly (it seems that it scans entire vector file for each point of 
+generated raster. In PC Arc/Info 3.5 it also have some very restrictive size
+limitation (5000x5000) and doesn't understand EPPL format correctly (doesn't
+write coordinate information into header, doesn't support 16-bit rasters).
+<P>
+But combining of these two algorithms can produce rasterization algorithm
+which would be even faster than EPPL7 rasterize and work without holes.
+<P>
+Idea is that while drawing lines from vector file in the raster (as EPPL
+does on the first pass) we plot each line two-cell wide, giving left cell
+value of left polygon and right cell value of right polygon. The only thing
+left is  to fill remaining parts of file by color of nearest non-offsite
+point, which is guarantied to be same for all surrounding lines, due to
+ARC/Info topology.
+<P>
+This algorithm can be implemented without knowledge of ARC/Info propieritary
+formats, becouse lines from coverage along with their unique IDs can
+be legitimately exported into open GEN format, and arc attribute table,
+which contains IDs of right and left polygons can be exported into RDBMS,
+as well as polygon attribute table which contain information we really
+want to plot.
+
+
+</BODY>
+</HTML>
+   
+
+
+
index fb28016e17c7455f840183a9bb4d3ecbb10fd623..74eba44197eff2f5d7781e520a3227799aea2f57 100644 (file)
@@ -6,6 +6,7 @@
 <H1>íÏÉ ÒÅÚÕÌØÔÁÔÙ × ÏÂÌÁÓÔÉ ÇÅÏÇÒÁÆÉÉ</h1>
 
 <dl>
+<!--[DIR: fGIS list.tpl] -->
 <!--[DIR: *.html list.tpl ]-->
 </dl>
 </BODY>