TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
1/8
Free Software – An Inspiration for Virtual Academy
Ales CEPEK and Jan PYTEL, Czech Republic
Key words: GNU, Free Software, Virtual Academy, Geodetic Network Adjustment.
ABSTRACT
Most of the nowadays projects from the field of Virtual Academy are oriented more or less
towards the mass education on the bachelor and master level. This paper tries to present a
different complementary approach focused on individual education and collaboration of
selected master and PhD students. The inspiration comes from the field of Free Software
projects, the well established and successful phenomenon which could hardly exist without
Internet, where groups of programmers scattered all around the world are developing
software.
Free software project GNU GaMa for adjustment of geodetic networks, with input data
described in XML, is given as an concrete example. Free Software (or Open Source) projects
need not be necessarily limited only to software development but generally can cover any
professional project based on free information exchange; a suggested example is a planned
collection of model geodetic networks described in XML.
Probably it is due to our different background (our country is still in a specific transitional
period) that we put more emphasis on our PhD students’ programs and the idea of Virtual
Academy is more attractive to as the field for building professional international contacts and
collaboration. Our PhD students will be responsible for our future development from them
our academics are going to be recruited in the coming years.
CONTACT
Ales Cepek and Jan Pytel
Dept. of Mapping and Cartography, CTU Prague
Thakurova 7, 166 29 Prague
Prague
CZECH REPUBLIC
Tel. + 420 2 2435 4657
Fax + 420 2 2435 5419
E-mail:
cepek@fsv.cvut.cz ,
pytel@gama.fsv.cvut.czWeb site:
http://www.gnu.org/software/gama/TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
2/8
Free Software – An Inspiration for Virtual Academy
Ales CEPEK and Jan PYTEL, Czech Republic
1. ANOTHER MOTIVATION
In our paper we would like to look at the subject of Virtual Academy from a rather different
point of view than usual. If we consider discussions and projects presented at FIG workshop
and seminar in Helsinki last year, we can say that Virtual Academy is mainly associated with
exploitation of technical facilities or communication tools (provided by the Internet today)
and most of the nowadays projects from the field of Virtual Academy are oriented more or
less towards the mass education on the bachelor or master level.
Probably it is due to our different background (our country is still in a specific transitional
period) that we put more emphasis on our PhD students’ programs and the idea of Virtual
Academy is more attractive to us as the field for building professional international contacts
and collaboration. Our PhD students will be responsible for our future development from
them our academics are going to be recruited in the coming years.
Possibilities of avoiding time consuming and routine tasks like testing students’ knowledge or
easy and effective communication are undoubtedly attractive and must be extensively
supported and developed in education. But whatever fascinating might be the present
technologies, they are not yet matured compared with traditional educational tools and
courses. Technically speaking we have systems and educational programs today that are
capable of serving almost unlimited number of students. Does it mean the end of the most of
traditional universities and are they going to be replaced by several virtual universities
equipped with sufficiently powerful hardware and sophisticated educational programs?
Surely it does not because distinction of a university reflects first of all quality of its people,
importance of its equipments is always secondary.
We are convinced that when thinking about Virtual Academy, more emphasis must be put on
human communication and collaboration than on technical facilities. In this sense the best
inspiration for Virtual Academy are successful Free Software projects like GNU and many
others.
2. ABOUT GNU GaMa
The project GaMa (the acronym comes from Geodesy and Mapping) is a free software
written in C++, released under the terms of GNU General Public Licence, aimed at geodetic
networks adjustment.
http://www.gnu.org/software/gama/It was started by Ales Cepek in 1998 but soon first students joined the project. The original
idea was to start a project to demonstrate to students the capability and power of object
TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
3/8
programming and at the same time to present and conserve practical experience and
knowledge gained in previous years in the Research institute for geodesy (VUGTK Zdiby).
The project GaMa was strongly influenced by work of Frantisek Charamza, namely his
research in the field of application of Gram-Schmidt orthogonalisation as a general numerical
adjustment method (algorithm GSO). Without going into details we can say that GSO is an
orthogonalisation algorithm that solves the adjustment without normal equations directly
from the project equations and thus avoids possible numerical problems in the case of illconditioned
systems (condition number of normal equations matrix is the square of the
condition number of the design matrix). In the project GaMa Singular Value Decomposition
algorithm (SVD) is used for numerical solution of the adjustment but GSO is also available
as an alternative. Thanks to its object-oriented design GaMa is prepared to easily adopt other
numerical methods like Cholesky decomposition of normal equations or some numerical
solutions exploiting the sparse structure of the design matrix (but in our plans these
enhancements have lower priority).
Originally the project was not expected to be presented outside our faculty so it was all in
Czech from C++ names to the documentation. This version of the program allowed only
uncorrelated horizontal directions and distances in local triangulation network to be adjusted.
The project was first introduced to wider public at FIG Working Week 2000, 21-26 May,
Prague (Cepek and Hnojil). Because it was proposed by Professor Henrik Haggren (from
HUT Findland) that project GaMa should be presented in the following year at Workshop and
Seminar in Helsinki, we have started working on changes necessary for GaMa to be
acceptable outside local community of Czech users. Two major changes had to be done
− redefinition of Czech tags in XML input data into their English equivalents and
− implementation of new observation data structures to enable general adjustment of
correlated observations.
Namely the second point was luckily influenced by discussions with Henrik Haggren and his
interest in possible future enhancements to enable adjustment of photogrammetric
observations together with classical observation types. Implementation of data structures is
the corner-stone of any software project. To implement a new observation type in our project,
it is just needed to derive the new corresponding class and define a few virtual functions. The
design of GaMa classes enables to implement adjustment of any information with given
variance-covariance matrix that can be linearized in respect to coordinates and other
unknown parameters.
In parallel with the above mentioned changes we worked on more enhancements and
improvements necessary for making GaMa into GNU software. We succeeded to pass
successfully GNU evaluation process and in last November GaMa was dubbed a GNU
package.
TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
4/8
Figure 1: Basic observation data structures
Project GaMa comes with a concept of cluster to effectively handle possibly correlated
observations of a general kind. In C++ terminology it is a container class that maintains a set
of observations with common variance-covariance matrix (symmetric, band or diagonal) as
depicted on fig. 1. Observations are independent on point data which are in the current
version defined only for local geodetic network (adjustment on ellipsoid is one of our planned
goals). Observation data structures have been designed to enable easy implementation of
sparse matrix algorithms in the adjustment in future versions. Currently the following
observation types are supported
− horizontal directions and distances,
− horizontal angles,
− slope distances and zenith angles,
− height differences,
− observed coordinates (used in sequential adjustment etc.) and
− observed coordinate differences (vectors).
To add a new observation type into the project it is necessary to define virtual functions for
linearization and to derive appropriate class from Cluster. This way, for example,
photogrammetric measurements could be incorporated and simultaneously adjusted together
with classical surveying observables in a common three dimensional network.
TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
5/8
2.1 XML INPUT DATA
The primary motivation for usage of Extensible Markup Language (XML) in project GaMa
was to define structured input data for adjustment of local geodetic network. Extensible
Markup Language
http://www.w3.org/TR/REC-xmldescribes a class of data objects called XML documents and is generally expected to be one
of the most important communication standards in the near future. The data are described
(similarly to HTML) with a set of XML user defined markup tags. What is probably the most
important feature of XML is the fact that we can relatively easily define a grammar for our
data (a class of XML documents) and thus we can validate them, even independently of our
application. This grammar is known as a document type definition, or DTD.
Document type definition for GaMa XML input data format is
http://www.gnu.org/software/gama/gama-xml.dtdDTD is not the the only one possible schema for defining XML syntax and generally not even
the best one but it is quite sufficient for relatively simple syntax of GaMa input, as shown in
the following short (but complete) example.
<?xml version="1.0" ?>
<!DOCTYPE gama-xml SYSTEM "gama-xml.dtd">
<gama-xml version="2.0">
<network>
<points-observations>
<point id= "1" y="644498.590" x="1054980.484" fix="xy" />
<point id= "2" y="643654.101" x="1054933.801" adj="XY" />
<point id="407" y="644025.978" x="1054821.167" adj="xy" />
<obs from="1">
<direction to="2" val="0.0000" stdev="10.0" />
<direction to="407" val="382.8182" stdev="10.0" />
<distance to="2" val="845.777" stdev="5.0" />
<distance to="407" val="498.750" stdev="5.0" />
</obs>
<obs from="2">
<direction to="1" val="0.0000" stdev="10.0" />
<direction to="407" val="22.2376" stdev="10.0" />
<distance to="407" val="388.562" stdev="5.0" />
</obs>
<obs from="407">
<direction to="1" val="0.0000" stdev="10.0" />
<direction to="2" val="239.4204" stdev="10.0" />
</obs>
</points-observations>
</network>
</gama-xml>
TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
6/8
Most of the this example can surely be understood intuitively without bothering about the
syntax but formal parsing XML is not a trivial task. Without going into technical details let us
just note that GaMa is using expat parser version 1.1 written by James Clark
2.2 Rosinante
XML is replacement for ASCII data files and can be viewed or edited with a text editor or
simply printed. There are many tools available for XML processing like viewing or
transforming it into HTML or even editing but a typical user would never edit XML input
manually as a raw text file.
Project GaMa was started at the beginning with main focus on development of a platform
independent C++ library (GaMaLib) with only a simple command line tool (program gama)
for processing XML input data. Our primary platform is GNU/Linux and to help our users to
use GaMa adjustment we have been running a mail-server and a web interface (WebGaMa)
based on PHP scripting language.
Figure 2: Rosinante the Qt based GUI for GNU GaMa
TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
7/8
We were considering a possibility of presenting our adjustment as a web-based application
implemented with C++ CGI scripts but this way proved to be impractical and for various
reasons we did not want use Java language. As majority of our potential users comes from
Microsoft Windows platform we came with a windows application (GaMaWed) built with
Borland C++ Builder. Actually, we wanted to be prepared in advance for the case when
Inprise/Borland would port their C++ Builder to Linux; but until now only Kylix is available.
Anyway, none of these was a satisfying solution.
It was in the midst of the last year when Jan Pytel (a student from our faculty) definitely
decided to write a graphical user interface (GUI) for GaMa based on Qt graphical library
http://www.troltech.no/First beta versions of his program Rosinante were available on November, it has become a
part of GaMa project and you can see an example screen-shot at fig. 2.
What should be stressed is that Rosinante is platform independent GUI; the Qt library has
been ported to Linux, MS Windows and MacOs. C++ Qt library is one of the best graphical
libraries available, for example it used in Borland Kylix or Linux KDE, and for Linux it is
available free. Talking about Virtual University, we present here Rosinante as a model
example how students could be involved and actively contribute to the project.
3. TO DO
To conclude our paper we briefly summarise what is still missing in the project GaMa and
has to be done and what are our plans for its future development.
− Our project is prepared for producing outputs in any language which can be expressed in
the UTF-8 encoding (Unicode). Technically it is done by separating all texts into XML
files, with possibly different input encodings, from which the corresponding C++
functions for dynamic language switching and UTF-8 strings are generated. This, we
believe, is a possible ground for a students‘ international project (one doesn‘t have to be
programmer to participate).
− Naturally, adjustment results should also be available in XML format as well as the input
data are, this is one of our plans. This point was deliberately postponed because we have
not decided yet whether to define an ad hoc GaMa XML adjustment output format or to
use a more general scheme inspired by the Borland XML general data packets.
− Another goal of our project is to gather a collection of model geodetic networks and to
present them with their adjustment results on the web XML is the best tool for such a
purpose. A lack of a collection of reliable model data that could be used for debugging
and testing (namely in the case of 3D networks) was one of the troubles we had to cope
with. Typically examples given in textbooks on geodetic adjustment and least squares are
trivial and useful only as a demonstrations and can not be used in software development.
TS2.1: Virtual Academy – Case Studies and Experiences
Ales Cepek and Jan Pytel
Free Software – An Inspiration for Virtual Academy
FIG XXII International Congress
Washington, D.C. USA, April 19-26 2002
8/8
− This year we plan to add to Rosinante a plug-in for graphical output described in Scalable
Vector Graphics (SVG); a general graphical format based on XML.
− Closely related to GaMa is our another project aimed at processing of levelling
observations, namely the project of general XML format for describing levelling data
from various recording units.
− A major enhancement planned for GaMa is implementation of adjustment in a global
coordinate system together with classes for handling cartographic projections (that could
be added as plug-ins)
Project GaMa is a GNU software, anybody can use it without paying a fee, all source codes
are available under GPL licence and the more, it is platform independent and currently runs
on GNU/Linux as well as on Microsoft Windows (we hope to get a volunteer to port it to
MacOs operating system).
Starting this year we have included GNU GaMa/Rosinante into one of our undergraduate
courses in which our students are introduced into basic geodetic software used at our faculty.
At the current stage Rosinante is ready to be used in areas from basic surveying computations
(intersections, traverses, etc) to the adjustment of special measurements of 3D networks in
engineering geodesy.
REFERENCES
FIG Workshop and Seminar: Virtual Academy, June 5-8, 2001, Helsinki University of
Technology, Lifelong Learning Institute Dipoli
ACKNOWLEDMENT
Support of the Ministry of Education, Youth and Sports of the Czech Republic, project
MSM:210000007 is highly appreciated.
BIOGRAPHICAL NOTES
Ales Cepek is Assoc. Professor at the Dept. of Mapping and Cartography, CTU Prague, Jan
Pytel is his student. For more information see their CVs at