Project: InaSAFE

Changelog for version: 3.1.0

This release includes a huge amount of polishing and cleaning in the InaSAFE code base. Many of these improvements are not things that you will immediately notice in the user interface, but rather represent incremental refinements to the software. There have been over 725 changes made in the code since 3.0 was released. The most fundamental change has been the implementation of a new architecture for impact functions. We have added two new impact functions and polished the user interface in various places. In particular the OSM downloader has been improved to give better feedback during downloads and to provide more flexible options. Read on in our change log below to see the highlights of this release!


Feature: Support for downloading building point data

The OSM Downloader tool can now download buildings as points (based on point-on-surface centroids). This makes it easy to use InaSAFE for doing hazard on point analyses such as flood on building points, earthquake on buildings points etc.

Feature: OSM Downloader can now use user defined extents

Now when you download data using the OSM Downloader tool, you can specify the extents of the data to be downloaded, either by entering specific coordinates, or by dragging a rectangle on the map canvas in QGIS. You can also now specify if you want the downloader to overwrite existing files, or to save the downloaded files with a unique filename on each download.

Feature: Option to specify where impact results are saved

You can now specify a directory that will be used when saving analysis results. In previous versions it was not obvious where InaSAFE would save its output data. Now you can provide a directory explicitly so that you can easily find your analysis results again in the future.

Feature: Support for setting the analysis extents from a QGIS bookmark

You can now set the analysis extents using a QGIS bookmark. This makes it easy to create a collection of well defined, named analysis areas and then run impact assessments on them as needed.

Feature: Improvements to OSM Downloader progress feedback

The OSM downloader now gives more useful progress feedback, showing the elapsed and total download sizes in megabytes.

Feature: Improved menu layout

We have improved the menu layout so that items listed are more logically consistent using this logic:

  • first items relating to setup of the analysis environment
  • then items relating to performing the analysis
  • then items relating to downloading and transforming datasets
  • then items relating to post-processing and analysis replication

Feature: Saving a layer now also saves layer keywords to the destination

In previous versions of InaSAFE, if you used the QGIS 'save as' feature on an impact layer, the keywords and other associated files were not transferred. In InaSAFE 3.1 these files are now correctly transferred to the new destination, ensuring that when you create copies of your data, their metadata are propagated too.

Note: You need version 2.8 or better of QGIS in order for this feature to work.

Code Internals

Feature: Unicode support

InaSAFE 3.1 is now Unicode compliant. That means that if you have accented / special characters in your file names, InaSAFE should deal with them gracefully instead of raising an error when you try to use them.

Impact Functions

Feature: New impact function for classified polygon on population

Feature: New classified polygon on buildings generic impact function

We have a new generic impact function that allows you to use a polygon layer containing classified hazard data (e.g. flood layer where polygons are tagged with high, medium, low flood depth) against a buildings layer.

Feature: Improvements to Impact Functions that deal with polygon hazards and raster exposure

All impact functions that work on polygon hazard and raster exposure will return the raster exposure. These are:

  • Classified Polygon on Population
  • Volcano Point on Population
  • Volcano Polygon on Population
  • Flood Polygon on Population

The impact layer will return the population layer with some modifications:

  • For Classified Polygon on Population, Volcano Point/Polygon on Population, the impact layer grids values will follow this rule: If the grid covered by polygon, the grid will be assigned the pops grid value. If it's not covered, the grid will be assigned no data value (see interpolate_polygon_on_raster)
  • For Flood Polygon on Population, the impact layer grids values will follow this rule: If the grid covered by polygon AND match the parameters (value in the affected field == affected value), the grid will be assigned the source population grid. If it's not covered, the grid will be assigned no data value. If it doesn't match the criteria in the parameter, it will be assigned 0

Feature: Reorganised impact functions

We have done a lot of work to internally organise the impact functions in a more logical and consistent way. There are multiple aims behind this work including:

  • making the source code easier to understand for developers
  • sharing code as much as possible between impact functions
  • improving the consistency of reporting and experience between impact functions
  • separating concerns in impact functions (separating metadata from impact function logic)

In InaSAFE 3.1 each impact function is in it's own python package and we are introducing a new API for impact functions with the intention that Impact Functions can be used in different contexts (web, desktop, API) and be able to do all the pre-and-post processing work currently hard wired into the desktop code of InaSAFE. For example with the new API you will be able to clip input layers and generate post processing summaries and PDF reports. This is the first iteration of this API overhaul and additional implementation towards this goal will be coming in future releases of InaSAFE

blog comments powered by Disqus