.. _changelog: # Release Changelog ## v1.1.0 *Built 5 May 2022* ### Enhancements - An optional :ref:`beta-plugin` has been added to make new/experimental features available. The beta plugin is not enabled by default, and any beta plugin features may still change significantly in future releases of RiskScape. (GL716) - Preliminary support has been added to the beta plugin for: - Saving results to a :ref:`PostGIS ` database. (GL705) - Reading and writing vector data in the GeoPackage (`.gpkg`) file format (GL706, GL728) - New functions have been added to the beta plugin, including: - `list_to_tuple`, which makes it easier to save the contents of a list to CSV or shapefile. Each item in the list will be written as a separate column or attribute. (GL719) - `switch`, which is useful when you have a range of possible input values that you want to map to a smaller subset of values. E.g. you want to map any of the value codes `0, 12, 44, 22` to simply `'Timber'`. - Using raster data as your exposure-layer now results in polygon geometries that cover the extent of each raster point. Previously the geometry produced was a point rather than a polygon. (GL620) - Type expressions can now use hyphens in struct attribute names as well as quoted identifiers, e.g `struct(value_0-100: integer, "Total Cost": floating)` (GL686) - More tutorials have been added to the RiskScape documentation, including an 'Intermediate Concepts' section that covers: - How the various RiskScape spatial sampling and consequence analysis techniques work. (GL649) - Improved CPython setup instructions and an example damage state function. - How the `riskscape model batch` lets you run a model repeatedly by varying the hazard-layer. (GL168) - How the various RiskScape geoprocessing features operate. (GL722) - A new `riskscape bookmark evaluate` command has been added. This lets you visualize the input data, typically in shapefile form, *after* it has been manipulated by any RiskScape bookmark settings. This is useful to check the CRS axis-order is correct when you need to construct geometry manually, such as from CSV input data. (GL608) ### Fixes - Table rendering on Windows has been improved for `info` commands. Previously, commands such as `riskscape format info shapefile`, could result in poor rendering if the content being displayed contained line-breaks. (GL703) - The default `validate-geometry` setting is `error`, which means RiskScape detects and automatically fixes any invalid geometry in the input data. However, the default `validate-geometry` project setting was not being applied correctly when geometry was reprojected. This meant that geometry could become invalid as a result of reprojection and RiskScape would not detect or fix it (unless `validate-geometry = error` was explicitly set in the `project.ini` file). This issue has now been fixed. (GL724) - When setting up CPython support in RiskScape, you no longer need double backslashes in the `python3-bin` file path in `settings.ini`. For example, you can now use `C:\Users\Ronnie\Anaconda3\python.exe` instead of `C:\\Users\\Ronnie\\Anaconda3\\python.exe`. Existing `settings.ini` files that contain double backslashes for the Python path should still continue to work fine. Previously, exceptions or other errors could occur when single backslashes were used, but this has now been fixed. (GL-735) - Setting the `output-base-location` in the project would result in an extra `output` directory appearing in the output path. This has been fixed now. (GL743) - Running RiskScape without a `project.ini` or home directory would result in unusual errors if a relative file was accessed, e.g `riskscape bookmark info FILE.csv`. This has now been fixed. (GL710) - Spatial sampling has been improved for the `sample_one()` function, which is used by `CLOSEST` sampling in the wizard. For complex line and polygon geometry, such as shapes that look like a 'C' or multi-polygons, the geometric centroid of the shape can fall outside the shape itself. Previously, RiskScape would always attempt to use the geometric centroid first when sampling the hazard value, even if this centroid fell outside the shape itself. Now `sample_one` will always ensure that the sampled value falls inside the input geometry. (GL737) - When CPython functions were enabled on your system, sometimes the `riskscape model run` command could exit with a `java.lang.NullPointerException` error. This only occurred if the shapefile input data for the exposure-layer contained `NULL` values. This issue has now been fixed. (GL-739) - When all-intersections sampling is used, the wizard will now produce a single value for the `exposed_ratio` attribute. Previously `exposed_ratio` was a `List` type, which made it harder to use. (GL741) - Model run `--parameter` values may now contain white space around the equals sign. E.g `--parameter "input-exposures.layer = Roads_SE_Upolu"`. (GL741) ## v1.0.0 *Built 4 February 2022* Version 1.0.0 is the first official public release of RiskScape. If you have been using older, evaluation versions of RiskScape, you can view a record of the changes in functionality between releases :ref:`here `.