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 …