IGIS.TK: Integrated Geographic Information System - Tool Kit
News:
- 04.03.2024 - Since Freenom has discontinued registration of .tk, .cf, and .gq domains, IGIS.TK, Tiles.CF, and GSDR.GQ have moved to igis.n-kov.com, tiles.n-kov.com, and gsdr.n-kov.com, correspondingly.
- 31.05.2020 - IGIS.TK is finally on HTTPS (thanks, Letsencrypt). HTTP is redirected to HTTPS.
- 03.03.2020 - Dai has allowed me “to use ezdit for any purpose, including change the license.“ Now, we can use ezdit as a basis for IGIS.TK's GUI without any license issues. Thanks a lot, Dai!
About IGIS
Collection of GIS tools and libs related to the following tasks:
- OSM Data Processing and data conversion,
- Data Quality Assessment,
- Spatial Data Fusion,
- (3D) Generalization...
Prospectively, IGIS can be utilized as a general-purpose GIS application or advanced GIS programming environment.
Motivation and Aims
IGIS would provide a command-line and GUI environment for quick prototyping and professional development of GIS applications and conducting geoprocessing. The environment will be utilized to build a highly pluggable and extendable general-purpose GIS application, like QGIS or ArcView3.2 (but much better).
Most current GIS solutions prefer Python (or R, rarely). IGIS would mainly use the Tcl/Tk programming language, which offers the following benefits:
- As everything is a string, in Tcl, the code can be treated as data and vice versa (e.g., the code can be sent through an open socket to be executed remotely). Thus, there are no data types and almost no predefined constructions. The behavior of any construction could be easily modified.
- Tcl is the best glue language; utilising any libraries written in C, C++, Java, and even Python is relatively trivial.
- The Threads extension is very straightforward and clear, in contrast to other languages.
- The concepts of interpreters and, especially, safe interpreters give us excellent benefits, unreachable with other solutions.
- Tk GUI library is one of the greatest advantages of Tcl. Now, it is even running on Android with Androwish. Tk-based Tkinter is still an unreplaceable solution for many applications.
- Tcl is probably the best in metaprogramming and event-based programming.
Concept
The integrating concept of IGIS is presented in the following figure.
The IGIS core consists of a Tcl/TK and many Tcl extensions/libraries/applications included in Androwish. The core is tightly integrated (mainly through Tcl bindings) with GIS (Proj.6, GEOS, GDAL/OGR, Spatialite, GRASS GIS) and other libraries and applications (GNUPlot, GraphicsMagick, VTK, OpenCV, MxNet).
IGIS will provide an integrated environment for multiple plugins/widgets. They can be represented in the two following forms:
- *.igis - a widget providing GIU,
- *.igis.tcl or any command-line application - command-line applications, IGIS will automatically make a GUI using its help instructions (using --help or -h dry-runs); instructions must follow/correspond to the IGIS' conventions (to be defined).
Planned Work
Further development steps are as follows:
- GUI Development and Refinement. *.igis.tcl and *.igis will be pluggable applications to be executed in the frame of a GUI container as a separate thread and, sometimes, in a safe interpreter (for untrusted code). The former is for command-line tools, and a GUI will be generated on the fly based on help instructions.
- Provide map widgets as *.igis pluggable applications.
- 2D Maps:
tkcanvas is the main widget providing essential functionality (does not support transparency).
tkpath is an advanced vector graphics, modern-looking widget based on tkcanvas (both use a shared library).
- 3D Maps: 3dcanvas is an independent, minimalistic 3D widget VTK is a separate advanced 3D VTK canvas widget
- 2D Maps:
- GNUPlot widget is provided for advanced chart functionality. Graphical widgets may utilize GraphicsMagick.
Support the following vector formats (data providers):
- SpatialLite (main native vector data format)
- Shapefile
- WKT
- CSV
- GeoJSON
- GRASSGISText
- OGR
-
Support the following raster formats:
RasterLite (main native raster data format)
- PND
- JPG
- GIF
- BMP
- NetCDF
- GeoTIFF
- GRASSGISText
- VTK(Text)
- GDAL
Native support for tiled maps, WMS, and WFS.
- Gradually improve and prepare new high-level GIS tools utilizing the environment.
- Writing lacking binding (or integration mechanisms) for the mentioned libraries and applications.
All generic functionality that can be used in other projects should go to Tiles or other related projects. Only the IGIS' specific code should reside in this repository.
More Screenshots

