TerraLib: 2012

Report
DPI/INPE experience on building open and
free software for geoinformation
presented by Karine Reis and Lubia Vinhas
Who are we?
OBT – Earth Observation General
Coordination
DPI – Image Processing
Division
DSR – Remote Sensing
Division
DGI – Image Generation
Division
DPI’s mission is to conduct research and development in GIScience and Image Processing.
Designing, prototyping and deployment of GIS and Image Processing systems
Promote capacity building in academic, government and private sectors, as well as for
the general public
Participate of relevant projects of national scope
We are in charge of some of INPE’s strategic
goals
• Objetivo #11: “Produzir dados, software e metodologias para
fortalecer a atuação do INPE nas áreas de aplicações
espaciais, da saúde, educação, segurança pública e
desenvolvimento urbano”.
• Goal #11: Produce data, software and methodologies to
strengthen the performance of INPE in the areas of space
applications, health, education, public safety and urban
development
Our experience in FOSS4G
SITIM/SGI
1984
DPI was created!
SPRING for
workstations
1990
SPRING for PC
1996
www.dpi.inpe.br/spring
General purpose GIS mainly suitable for a desktop single-user
environment
Dual architecture
Offers all of the “traditional” GIS functionalities such as Image
Processing, DTM, Map Algebra, Geostatistics, Cadastral
management, etc.
It is an OGC WMS and WFS client
Freeware since 1996 and Open Source since 2011
Does not allow customizations: all-in-one philosophy
Current version is 5.2.5 for Windows and Linux, 32 and 64 bits
SPRING
SPRING follows an object-oriented development in C++
Qt as UI framework
Apache Subversion (SVN) for software versioning and revision control
Source code available at www.spring.org under GNU General Public
License
Design, project management and funding by INPE
Until 2006 the development was in house with a few external
collaborators
After that maintenance and new developments are being contracted in
IT industry under INPE guidance
SPRING
Largely used for capacity building in Brazil and
Latin America. More than 2000 people trained
(face-to-face and remotely)
Used in the Remote Sensing and Applied
Computing grad courses at INPE
Solid user support system using e-mail
provided by INPE
Over 189000 registered users in our database
and ~10000 new users per year
“What worked X didn’t work”






Portuguese interface, manuals, etc.
Solid and consistent user support (e-mail, phone)
A training program
A theoretically sound data model
Solid algorithms and functionalities
A development team focused on one big goal
✗
✗
✗
✗
All-in-one architecture
Emphasis on the desktop environment
Time taken to open the source code
Lack of compliance to OGC standards
Our experience in FOSS4G
2002
NOT a final application, but blocks (C++) to build different applications
Benefit from object-relational DBMS
Benefit from spatially enabled DBMS: Oracle Spatial, PostGIS, …
Use OGC (and others) standards to promote interoperability
To develop innovative algorithms (e.g. spatio-temporal data, high-resolution image
processing, multiprocessing)
To develop innovative data types (e.g. cell spaces, Generalize Proximity Matrix)
Able to deal with large datasets and ubiquitous data
Free and Open Source Software
Platform to develop the tools needed to address the demands presented to INPE
Platform to materialize our research in GIScience
Platform to develop tools that enable collaboration within INPE and with other
organizations
TerraLib/TerraView
TerraLib/TerraView is written in C++
CMake
Qt as UI framework
Apache Subversion (SVN) for software versioning and revision control
Source code available at www.terralib.org under GNU General Public
License
Design, project management and funding by INPE
Internal team, students, short term projects, collaboration with
universities (UFOP, UFMG), research centers (CEM), foundations
(FUNCATE, TecGraf).
It became a family of applications
TeVisual
User
TeTheme
TeView
TeProjection
TeLayer
TeGeometry
TeDatabase
Ado
MySQL
Oracle
…
TeTable
Web
Extensions
Algorithms
…
TeVisual
TeQuerier
TeTheme
TeView
TeProjection
TeLayer
TeGeometry
TeTable
BDQueimadas
Fire monitoring application:
daily fire sports detection
using satellite data, for Brazil
and South America
dissemination in the web for
the general public
alerts sent to law enforcement
organization
Santos Digital
GeoSan
Sanitation GIS
116-112
116-113
166-112
General purpose GIS to
view and analyze a TL
database
Database
FOSS – LGPL
Drawing
area
Customized with plugins
www.dpi.inpe.br/terraview
Views and
Themes
Grid
TerraPDI: Image
processing plugin
conn = openConn(u="art",dbms="mysql")
db = openDb(conn, "dbname")
thpoints = openTheme(db, "themepts")
thcontour = openTheme(db, "thcontr")
points = getPoints(thpoints)
contour = getPolygons(thcontour)
data = getData(thpoints)
raster = krige(points, contour, data)
l = createLayer(db, "lraster")
addRaster(l, raster)
thraster = createTheme(l, "thrstr")
TerraLib Applications
Others
GeoDMA: ObjectBased Image
Analysis
Amazonia Basin
Hydrology studies:
DTM Upscaling
Accumulated flux
Drainage definition
River segments detection
Basin delimitation
Special interest in large areas that
require heavy processing
Brazilian Semi-Arid
(see TerraME page)
“What worked X didn’t work”





Building a library not only a final application
Building TerraView as well
The plugin solution to extend functionalities
Collaboration
Innovation (Cell Spaces, Spatial Statistics,…)
✗
✗
✗
✗
Difference from the OGC SFS model
Re-programming of basic functionalities (geometry, SFS)
Dependency of DBMS
Mixing of application code and library code
Our experience in FOSS4G
5.0: the new
generation!
2008
TerraLib 5
Software tools to improve collaborative code development,
documentation, test and interactions among developers:
Wiki pages
distributed version
control system
Code documentation
Windows, Linux and
Mac OS X platforms
automates the
compile/test of code
tracking system for
software development
projects
TerraLib 5
Use of third-party libraries:
OGR
QWT
TerraLib 5 - Architecture
DIP
RP
Aggregation Structures
SRS
Style
Persistence Layer
Geometry
Well-defined modules
Extensible
Reusable components
Canvas
Queries
DatSet
Raster
Query Processor
plugin
ST
Sub-queries
graph
Data Access

DatSet
TerraLib 5
Integration of data
from different sources
through a simple API
Not database-oriented
architecture
TerraLib 5
Representation, intergration,
processing, analysis and
presentation of:
- Vector
- Raster
- Graph
- Spatio-temporal Data
- ...
Time Series
Coverage
Events
Trajectory
TerraLib 5
Reenginnering of the RTerraLib interface
Offer bindings to other
languages (LUA)
Currently we are investing our time
to have the first TerraView 5.0.
A better support to plugins
TerraLib 5
Design, project management and funding by INPE
A contract with FUNCATE until December 2014
A tagged version in December 2013 to beta testers
Public version in the end of December 2014
Conclusions
Developing FOSS4G at DPI/INPE has being an interesting task and also
a challenge:
awareness of the state-of-the art (data, methodologies, market, users,
etc.) => adapt to the moment
users want it all: best functionalities, innovation, robustness, flexibility,
multi-platform, documentation, support, training
find good C++ programmers with the expertize in Geoinformation
We have been very successful in building a users community, but not
so much in building a developers community
Funding is also a challenge for us
We will continue to do it …

similar documents