We built the InaSAFE Realtime based off InaSAFE libraries, and made numerous enhancements to QGIS in order to support the activities of InaSAFE and InaSAFE Realtime.
1.3 QGIS Enhancements
In this area of work, we will implemented enhancements to the core of QGIS to provide the infrastructure on top of which we will build the RTIS application and more generally to InaSAFE. These enhancement relate particularly to the print composition capabilities of QGIS and to the support for dealing with rasters (including Web Coverage Service, Styled Layer Descriptor and raster rendering improvements). We integrated the development of tests, processes for integrating code into the mainstream development branch of QGIS and facilitating the actual release of the software to the public so that the work is perpetually curated by the QGIS project and made directly available to would be users.
All tests were integrated into the core QGIS test suite where are visible via our testing dash board: http://dash.orfeo-toolbox.org/index.php?project=QGIS
Each change / addition to the core of QGIS were be accompanied by bindings for Python and tests for both C++ and Python. In this way we ensured that all enhancements are available to the RTIS application.
All code was be implemented according to QGIS coding guidelines for style, indentation etc. so that the work is easily accepted into the mainstream version of QGIS. While under development all work was carried out in GIT branches and will is publicly visible and under full revision control.
The SLD component of this work will be a scoping assessment only to determine the amount of work that will be needed in order to support a test suite of SLD documents provided by AusAID and Worldbank.
1.4 InaSAFE enhancements
During this project made numerous enhancements to the InaSAFE code base. The primary emphasis was on building a robust, stand alone application that implements a near real time earthquake impact scenario report. It should be understood that the system is part of a chain of events that follow an earth shaking event and is reliant on upstream processes to provide datasets to the RTIS environment before processing can take place. As a general goal our aim will be to produce a RTIS within 5 minutes of the upstream datasets being accessible.
In this project we will specifically focused on porting a legacy system written in GMT (Generic Mapping Tools), to the InaSAFE environment. InaSAFE leverages the QGIS API for its mapping capabilities as well as providing an easy to use graphical user interface for desktop based scenario modelling. The underlying algorithms within InaSAFE for carrying out scenario modelling are discrete (having no dependencies on QGIS) and are internally referred to as the 'SAFE' library.
Other major activities that took place within the project:
- Implementation of a new map generation system within InaSAFE. The goal here is wasto port existing work carried out in the is_map.py module of InaSAFE in order to facilitate 'headless' (automated on a server with no GUI and no user interaction) generation of scenario maps. The existing code base was overhauled to make use of improvements described in the QGIS Enhancements section above and in the QGIS component of our workplan provided elsewhere in this document. Our primary objective was to be able to recreate a similar or improved version of the Shake Map product produced by the legacy GMT tool, and to make the process of enhancing that map in the future a much easier one.
- The second objective was to port the legacy GMT code base and to integrate it cleanly into the InaSAFE code tree. The benefit of doing this was that it will be easier to extend and enhance the RTIS tool in the future (the legacy GMT based implementation was built as a prototype and not intended to be used as a long term extensible application). This porting process allowed us to make SAFE impact functions available to the RTIS – initially the Shake Map function (as described in item (1) above), but in the future other RTIS systems could be built (e.g. flood impact scenarios) using the same framework. The ported RTIS uses the enhancements in order to deliver cartographic outputs.
WCS support was added to QGIS to enable future desktop and RTIS like applications to directly use hazard and exposure datasets from an online resource. For example as new earthquakes occur, the ground shaking datasets produced by telemetry / observation infrastructure can be made directly available to the RTIS without requiring file transfer of shake products via FTP. This has huge ramifications as it will facilitate the rapid deployment of RTIS applications as new WCS's become available (e.g. current flood data).
We included in our proposal a support component that ran beyond the initial development period and provided a sustained presence from our team in order to ensure that the software continues to be robust and reliable as it is put into production.