Transcript TerraLib: 2012
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 SPRING for workstations SPRING for PC 1984 DPI was created!
1990 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
2002
Our experience in FOSS4G
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
License under GNU General Public 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
User TeView Ado TeVisual TeTheme TeProjection TeDatabase TeLayer TeGeometry TeTable MySQL Oracle …
Web TeView Extensions TeVisual TeTheme Algorithms TeProjection … TeQuerier 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
Database Drawing area Views and Themes Grid
General purpose GIS to view and analyze a TL database FOSS – LGPL Customized with plugins www.dpi.inpe.br/terraview
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
: Object Based 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: Code documentation Wiki pages distributed version control system 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: QWT OGR
TerraLib 5 - Architecture
Well-defined modules Extensible Reusable components DIP RP SRS Style Geometry Canvas Raster plugin ST graph Aggregation Structures Persistence Layer Queries DatSet Query Processor Sub-queries DatSet Data Access
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 - ... Coverage Events Time Series Trajectory
TerraLib 5
Reenginnering of the R TerraLib 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, trainin g 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 …