f(GIS) project
fGIS stands for "functional GIS". 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.
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.
Idea of fGIS was born when I've worked on DOS with EPPL7 and Arc/Info 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 GRASS 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.
Concepts of project, both data model and program design are described
on separate page
If you could read Russian, you can read old conceptual paper on functional GIS.
Project structure
To avoid inventing of yet another, incompatible scripting language, we
decided to develop f(GIS) as extension to Tcl/Tk. 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.
fGIS project now consists of following parts:
- Portable C library to access EPPL7 data files.
Documentation 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.
- Environmental planning Utilities - 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.
Not all of this utilites are written yet.
- Tcl extensions to visualize data
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
- Set of Tcl libraries 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:
- that raster values are always integer numbers rather than text strings
or real numbers and "legend files" are used to map one to another
- 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.
This libraries consist of several abstraction layers, which are not properly
documented yet.
- 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.
Current state
f(GIS) 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 EPPL7 and want portable viewer for their maps
or utilities which overcome some limitations of EPPL7. You can browse
TO DO list. I would be grateful if you would peek
something from it and attempt to implement it.
There is no snapshots and releases. This page have only historical
interest
Be sure to read installation instructions
before attempt to install fGIS.
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?).
Current version of visualisation library works with Tcl/Tk 8.0p2.
It should also work with Tcl 7.6p2/Tk 4.2p2.
Note that dash patch is
almost neccessary, becouse without it Tk would unable
to print (save to postscript) raster maps, produced by f(GIS).
Img extensioncan 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 offsite 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.
Distribution policy
Once f(GIS) would be released, it would be distributed
under GNU Public license.
Pre-alpha versions are freely downloadable, but can be used for evaluation
only unless you are planning to take part in development. If f(GIS) is useful for you even in such limited state, contact me and I would consider marking some parts of project alpha,
thus allowing their redistribution.
|