Concept
This page summarizes the concepts and technical framework behind
Thuban. If you think some decisions are not well done or can be
improved, please let us know.
Below each decision,
open discussion on features is
presented. Your contributions are welcome.
WikiPedia has a short article on Thuban in German.
Programming Language
Thuban is implemented using the Python
programming language. Python has been choosen as a multi-platform,
object-oriented scripting language that allows simple incorporation
of modules written in other languages (e.g. computational intensive tasks
in C). It is taken care that Thuban is compatible with Python 2.2.1; newer
versions should work as well.
As a multi-platform GUI toolkit, Thuban uses
wxPython.
wxPython is based upon
wxWindows, a GUI toolkit that
uses a platform's native GUI to embed consistently into
the users system (i.e. GTK on Linux or Microsoft Windows NT).
Thuban requires wxPython of at least version 2.4.0.4.
It is taken care that Thuban is compatible with the latest
release of the 2.4 series; newer versions should work as well.
Data Types and Formats
A layer in Thuban may be of one of these basic types:
- Line
- Polygon
- Point
- Georeferenced Image
We do not intend to develop new software for reading GIS files in
various formats. Instead Thuban will only support formats for which
adequate libraries are available. The initial releases use Frank
Warmerdams
Shapelib and thus
can handle the Shapefile format only.
The shapelib is to be substituted by the
GDAL
/
OGR
library for a broader range of vector and raster formats.
Thuban will connect to databases, e.g.
the
GRASS database
and PostGIS.
Simple add-ons for and whole applications based on Thuban
We think that extending Thuban via Add-ons is a good alternative
to directly adding features to Thuban. It allows you to add some
specific elements you need for your work. It even is possible to create
your own custom applications with all the features of Thuban without
the need of forking the development and maintaining your own branch of
Thuban.
One example for a comprehensive extension of Thuban is
GREAT-ER.
It is a environmental simulation tool for chemical
exposure in river networks.
It is possible
- to add additional menus to the menu bar
- to add additional menu items to existing menus
- to add tools
- to store additional information in the
xml-based session
Session storage
Thuban stores its information on a session in an XML format of its own.
The routine to read/write a .thuban-file are kept central
in Thuban/Model/load.py and Thuban/Model/save.py. We've decided against
distributing the knowledge how to write each object with the object itself
in order to better maintain different versions of the file format
and different file formats in general.
Feature Discussion
Some features are not too easy to decide on. Please
feel free to contribute to the following feature discussions
(or even raise a new one).
Handling of Cartouches (North Arrows)
(feature discussion overview)
Featuring a northarrow very much reaveals the same problem
as a scalebar.
One customary map element is a cartouche, or north arrow.
Should Thuban offer a north arrow and if yes, how should it be
handled?
This problem is not new. How do others handle it?
|
Multiple Maps in One Session
(feature discussion overview)
Currently a session contains only one map
to work with.
Should Thuban allow to work with more than one
map in one session?
How should it then be handled?
|
String Encoding and i18n
(feature discussion overview)
As brought up by Evgeny Cherkashin, it is desirable
to handle other encodings than latin-1 (like russian
encoding).
As first steps, Thuban should support i18n and should
be made unicode-clean.
The question on how to handle filenames best remains
open.
The Edit Menu
(feature discussion overview)
Many programs offer an "Edit" menu where general
edit opportunities are summarized. Users
get used this though it does not make sense in some
cases.
We think that Thuban should have one.
What actions should be collected under
the "Edit" menu besides the standard
'undo', 'redo', 'copy', 'cut', 'paste'?
|
Tool Activation via Menu
(feature discussion overview)
Currently Thuban allows the activation of tools either
via the toolbar or via the menu.
Once selected, a tool is active until another
one is selected.
It occured in a discussion that it might make sense
to have the menu-way select a tool for exactly one
action and then return to the previously active
tool.
Does this make sense or would it confuse
the user?
Alternatives?
|
2004/11/03
|