From 818a8980eb05373d225318e41cb2cca863154d03 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 13:41:22 +0200 Subject: [PATCH 01/73] up --- docs/glossary.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++++ docs/index.md | 3 +- 2 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 docs/glossary.md diff --git a/docs/glossary.md b/docs/glossary.md new file mode 100644 index 00000000..60fd171a --- /dev/null +++ b/docs/glossary.md @@ -0,0 +1,88 @@ + + +# Glossary of terms + +In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. Definitions are taken from the [UNDRR Terminology](https://www.undrr.org/terminology). + +## Disaster risk + +Disaster risk is the potential loss of life, injury, or destroyed or damaged assets which could occur to a system, society or a community in a specific period of time, determined probabilistically as a function of hazard, exposure, vulnerability and coping capacity. + +Disaster risk comprises different types of potential impacts and losses (direct and indirect, tangible and intangible) which are sometimes difficult to quantify. Nevertheless, with knowledge of the prevailing hazards, the patterns of population and socio-economic development and their tendency to suffer impacts, disaster risks can be assessed and mapped, at least in broad terms. + +Source: [Disaster Risk, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk) + +## Disaster risk management + +Disaster risk management is the application of disaster risk reduction policies and strategies to prevent new disaster risk, reduce existing disaster risk and manage residual risk, contributing to the strengthening of resilience and reduction of disaster losses. + +Source: [Disaster Risk Management, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-management) + +## Disaster risk assessment + +A qualitative or quantitative approach to determine the nature and extent of disaster risk by analysing potential hazards and evaluating existing conditions of exposure and vulnerability that together could harm people, property, services, livelihoods and the environment on which they depend. + +Source: [Disaster Risk Assessment, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-assessment) + +## Disaster risk information (risk data) + +Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. + +Disaster risk information also includes the results of disaster risk assessments often expressed in terms of potential losses or impacts. + +Source: [Disaster Risk Information, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-information) + + + +## Hazard + +An hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. + +Hazards can have natural or anthropogenic origin. Natural hazards are associated with natural processes and phenomena (geological, geophysical and hydrometeorological). + +Source: [Hazard, UNDRR Terminology](https://www.undrr.org/terminology/hazard) + +````{grid} auto +:gutter: 3 +```{grid-item-card} Hazard: map of flood water depth +![Hazard](img/sample_hzd.jpg) +``` +```` + +## Exposure + +The situation of people, infrastructure, housing, production capacities and other tangible human assets located in hazard-prone areas. Measures of exposure can include the number of people or types of assets in an area. These can be combined with the specific vulnerability and capacity of the exposed elements to any particular hazard to estimate the quantitative risks associated with that hazard in the area of interest + +Source: [Exposure, UNDRR Terminology](https://www.undrr.org/terminology/exposure) + +````{grid} auto +:gutter: 3 +```{grid-item-card} Exposure: buildings footprints and population +![Exposure](img/sample_exp.jpg) +``` +```` + +## Vulnerability +Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience. + +Source: [Vulnerability, UNDRR Terminology](https://www.undrr.org/terminology/vulnerability) + +````{grid} auto +:gutter: 3 +```{grid-item-card} Vulnerability: depth-damage function +![Vulnerability](img/sample_vln.jpg) +``` +```` + +## Impact model +An impact model (also damage model; loss model) is used to combine Hazard, Exposure and Vulnerability compoments to calculate the amount of value that is expected to be impacted (damaged or lost). + +Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/files/solving-the-puzzle-report.pdf) + +````{grid} auto +:gutter: 3 +```{grid-item-card} Impacts and losses: USD costs of replacement +![Loss](img/sample_lss.jpg) +``` +```` \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 3ff03346..e95f6be9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -27,12 +27,11 @@ The RDL is a collaborative project managed by the [Global Facility for Disaster :hidden: keyconcepts - standards taxonomies/index usecases data_model/index implementation/index tutorials/index about/index - + glossary ``` From 92077bae6f4e2c6b3692486687566f4e949bd205 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 13:59:22 +0200 Subject: [PATCH 02/73] quick_restruct --- docs/guidance/formats.md | 30 ++++ docs/{implementation => guidance}/index.md | 6 +- docs/guidance/preparation.md | 200 +++++++++++++++++++++ docs/implementation/jkan.md | 10 -- docs/implementation/local.md | 38 ---- docs/implementation/postgres.md | 8 - docs/index.md | 16 +- docs/rdl/core-standards.md | 8 + docs/rdl/index.md | 20 +++ docs/rdl/overview.md | 4 + docs/rdl/roadmap.md | 8 + 11 files changed, 279 insertions(+), 69 deletions(-) create mode 100644 docs/guidance/formats.md rename docs/{implementation => guidance}/index.md (94%) create mode 100644 docs/guidance/preparation.md delete mode 100644 docs/implementation/jkan.md delete mode 100644 docs/implementation/local.md delete mode 100644 docs/implementation/postgres.md create mode 100644 docs/rdl/core-standards.md create mode 100644 docs/rdl/index.md create mode 100644 docs/rdl/overview.md create mode 100644 docs/rdl/roadmap.md diff --git a/docs/guidance/formats.md b/docs/guidance/formats.md new file mode 100644 index 00000000..5269b9c1 --- /dev/null +++ b/docs/guidance/formats.md @@ -0,0 +1,30 @@ +# Data formats + +Risk data can be made of spatial or non-spatial data. + +- Non-spatial data most often consist of table data stored as excel or csv files for greater compatibility. + +- Spatial data (geodata) can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type. Below is a list of recommended and supported geodata formats. + +## Recommended geodata formats + +### Vector data: GeoPackage + +**GeoPackage** (`.gpkg`) is an open, non-proprietary SQLite3 extended Database container. It is platform-independent and standards-based (OGC, QGIS, GDAL). Similar to ESRI geodatabase, but more responsive. It is a single-file format that can store anything from vector data and attributes, symbology, pyramids, table data as individual layers within one geopackage. It is possible to store rasters, but its supports for raster data is still limited and we don't recommend storing those as geopackage. Supports SQL and API to DB - fit for web applications, can export to PostGIS. There is no limit of attributes, attribute name size, or file size (unlike shapefile). Internal metadata specifications are under development. + +### Raster data: GeoTIFF / COG (.tif) +**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation). These should be packed together with the .tif files for sharing. +A Cloud Optimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted ona geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). + +## Supported geodata formats + +### Vector data +- **ESRI ShapeFile (SHP)** +Well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, other optional for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. + +### Raster data +- **Network Common Data Form (NetCDF)** +NetCDF GIS format is an interface for array-oriented data for storing multi-dimensional variables. Commonly used in the scientific community for multidimensional geodata storage (e.g. climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. + +- **GRIdded Binary or General Regularly-distributed Information in Binary (GRIB)** +GRIB was standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. \ No newline at end of file diff --git a/docs/implementation/index.md b/docs/guidance/index.md similarity index 94% rename from docs/implementation/index.md rename to docs/guidance/index.md index dc2ebcbb..6efe3073 100644 --- a/docs/implementation/index.md +++ b/docs/guidance/index.md @@ -13,8 +13,6 @@ The RDL schema and standard can be adopted to risk project data in different way :maxdepth: 1 :hidden: - local - jkan - postgres - + preparation + formats ``` diff --git a/docs/guidance/preparation.md b/docs/guidance/preparation.md new file mode 100644 index 00000000..d851c4a2 --- /dev/null +++ b/docs/guidance/preparation.md @@ -0,0 +1,200 @@ +# Data packaging + +The data structure and packaging of the output as obtained from the data analysts may not always align with the way we want users of the RiskDataLibrary to search and download data. + +Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search?fq=(identification%2Fcollection_code%2Fany(col:col%20eq%20%27RDL%27))&q=&start=0&sort=last_updated_date%20desc)) are provided as individual RESOURCES, which should be packed (grouped) according to two main criteria: + +- **GEOGRAPHY**: For example, in a regional analysis, users may want to access data for one/each country - so data should be packaged to download the dataset with coverage for each country. +- **THEME**: Data resources may be grouped by hazard type, sector type, etc. + +We also need to consider: +- **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. +- **EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. + +Where there are many resources for a dataset, there is a temptation to include a folder structure in Data Catalog. This does not enable easy access to resources. Datasets and Resources should be set up to facilitate easy finding of the specific component of analysis, and grouping resources together in a sensible fashion, without creating problematically large download sizes. + +Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. However, here are a few examples: +________________ + +## Hazard data +### Format / data types +Hazard data includes: +- Return period hazard maps +- Scenario/historical event footprints +- Hazard curves +- (Stochastic) event set tables +- Historical event catalogue +- River network / cyclone track / seismic fault databases +- Other input files including flood protection data, intensity-duration-frequency curves, ground motion relationships, etc. + +Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`). +Supporting data (hazard curves, historical catalogue) often come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). +They can also be packaged in a similar fashion. + +### Thematic grouping +The main thematic groupings in hazard data are: +- **Hazard type**: data produced for seismic hazard, wildfire, fluvial flood, pluvial flood, etc. +- **Year**: e.g., current, projected 2050, 2080, etc. using climate projections + +### Geographic grouping +- **Scale, location and resolution**: Hazard data may be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level analysis) might be grouped for individual locations (city) whenever the dataset becomes too large. + +```{caution} +In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. If required for data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. +``` + +[FIGURE EXAMPLE: BORDER CLIP vs EXTENT CLIP OF GLOBAL LAYER ON A COUNTRY] + +### Packaging recommendation +We recommend grouping exposure data in the following hierarchy: +- **Hazard type** + - *Geographic scale and location* (country; sub-national; city) + - Year of data (current or projected) + +**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** + +For example: +``` +* Dataset: hazard data + * Dataset: RP maps + * Dataset: data + * Zipped Resource: _2020 + * Zipped Resource: _2050 + * Zipped Resource: _2080 + * Dataset: data + * Zipped Resource: _2020 + * Zipped Resource: _2050 + * Zipped Resource: _2080 + * Dataset: RP maps + * … + * … + * Dataset: historical catalog +``` + ________________ + +## Exposure data +### Format +Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). +In some cases, exposure comes as table (`csv`, `xls`). + +[EXAMPLE PIC FOR EACH FORMAT] + +```{note} +Geopackage (`.gpkg`) are preferred for vector data over shapefiles (`.shp`). Conversion from .shp to g.pkg is lossless and usually size-efficient. Where shp format is maintained, they should be provided as a zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). +Read more: (link to format page - next post) +``` +### Thematic grouping +The main thematic groupings in exposure data are: +- **Asset type / sector / construction type**: e.g. Structure, Content, Product / Residential, Commercial / Masonry, Wood +- **Year**: reference period or year, e.g., current, projected (2040-2060), etc. + +### Geographic grouping +- **Scale, location and resolution**: Exposure data may be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level) might be grouped for individual locations (city) whenever the dataset becomes too large. + +```{caution} +In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. If required for data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. +``` +### Packaging recommendation +We recommend grouping exposure data in the following hierarchy: +- **Geographic scale and location** (country; sub-national; city) + - *Year of data* (current or projected) + - (optional) Sector or asset type (Residential; Commercial / Population, Buildings). + +**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** + +For example: +``` +* Dataset: exposure data + * Dataset: exposure data + * Dataset: exposure data - 2020 + * Resource: _2020_exposure_RES + * Resource: _2020_exposure_COM + * Resource: _2020_exposure_EDU + * Resource: _2020_exposure_ROAD + * Dataset: exposure data - 2050 + * Resource: _2050_exposure_RES + * Resource: _2050_exposure_COM + * Resource: _2050_exposure_EDU + * Resource: _2050_exposure_ROAD + * Dataset: exposure data + * … + * … +``` + +## Vulnerability data +### Format +Vulnerability data are usually provided as table data (`csv`, `xls`) containing the impact model function and parameters. +Often, vulnerability models are proprietary data and only shared as pictures; this has low reusability and should be avoided. Always try to obtain a mathematical description for this component. + +### Thematic grouping +The main thematic groupings in vulnerability data are: +- **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. +- **Asset type / sector / construction type**: e.g. Structure, Content, Product / Residential, Commercial / Masonry, Wood + +### Geographic grouping +Vulnerability curves may be developed for individual countries or environments within a project. Where this is the case, this grouping should be retained. + +### Packaging recommendation +We recommend to group exposure data in the following hierarchy: +- **Hazard type** + - *Geographic* (unless global function, one dataset per country) + - **Asset type / sector / construction type**: e.g. Structure, Content, Product / Residential, Commercial / Masonry, Wood + +Note that this hierarchy should be maintained even when packing all the data in one file, e.g. multiple sheetx of an excel file. + +[EXAMPLE OF MULTIPLE IMPACT MODELS IN ONE FILE] + +**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** + +For example: +``` +* Dataset: vulnerability data + * Dataset: vulnerability data + * Resource: _RES_timber + * Resource: _RES_RC + * Resource: _COM_steel + * Resource: _COM_RM + * Or Resource: _vulnerability _curves_all_types (if data all in one file) + * Dataset: vulnerability data + * … + * … +``` +________________ + +## Loss data +### Format +Loss data often comes in the form of: +- tabulated event losses, and loss per exceedance probability +- Mapped return period loss / annual average loss - in vector files/choropleth maps + +### Thematic grouping +The main thematic groupings in loss data are: +* Hazard type: there may also be a multi-hazard loss metric included. +- **Asset type / sector**: e.g. Structure, Content, Product / Residential, Commercial +* Year: e.g., current, projected 2050, 2080, etc. + +### Geographic grouping +Losses are usually aggregated at national or subnational administrative level (ADM2, ADM1, or ADM0). +Losses can also be provided per asset (e.g. individual buildings or raster footprints) but it is not usual - although these files are often generated by the analysts. + +### Packaging recommendation +We recommend grouping exposure data in the following hierarchy: +- **Hazard type** + - *Sector/asset type* + - Year + +**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** + +For example: +``` +* Dataset: loss data + * Dataset: loss data 2020 + * Resource: _RES + * Resource: _COM + * Resource: _AllSectors + * Dataset: loss data 2020 + * … + * … + * Dataset: loss data 2050 + * Dataset: loss data 2080 +``` \ No newline at end of file diff --git a/docs/implementation/jkan.md b/docs/implementation/jkan.md deleted file mode 100644 index a91a9aee..00000000 --- a/docs/implementation/jkan.md +++ /dev/null @@ -1,10 +0,0 @@ -# JKAN catalogue - -Live istance of RDL JKAN catalogue available at [jkan.riskdatalibrary.org](https://jkan.riskdatalibrary.org). - - - - - - -

diff --git a/docs/implementation/local.md b/docs/implementation/local.md deleted file mode 100644 index 1e85712c..00000000 --- a/docs/implementation/local.md +++ /dev/null @@ -1,38 +0,0 @@ -# Local schema implementation - -Structuring and naming of risk data files within a project folder represent the simplest and most direct level of implementation of the Risk Data Standard. - -## Structure of project folder - -
- -## Naming convention for files - -To help univocally identify the content of a dataset file, the filename should summarise all the key information that allow to distinquish it from the others. -The general format, all in lower caps, uses a tag approach to build the full filename: - - [component_code]-{project_name}-[country_iso]-{schema_specifics}-{time} - -The name is made of [required] and {optional} attributes. Each component uses the most relevant attribute as schema_specifics, for example: - -- Hazard:
-`hzd-[country_iso]-{project_name}-{hazard_type}-{process_type}-{hazard_trigger}-{frequency}-{time}`
-Example: pluvial flood hazard scenario with return period 10 years in 2050 for Afghanistan is named:
-**hzd-afg-mhra-fl-fpf-rp10-2050** -

-- Exposure:
-`exp-[country_iso]-{project_name}-{occupancy}-{exposure_model}-{time}`
-Example: residential exposure in Madagascar from Open Street Map 2015 is named:
-**exp-mdg-swio_rafi-residential-osm-2015** -

-- Vulnerability:
-`vln-[country_iso]-{project_name}-{hazard_type}-{occupancy}-{vulnerability_model}`
-Example: flood depth-damage function developed for India by JRC over industrial land cover is named:
-**vln-ind-fl-industrial-jrc** -

-- Loss:
-`lss-[country_iso]-{project_name}-{hazard_type}-{occupancy}-{time}`
-Example: eartquake losses over Madagascar infrastructures over the period 1920-2012 is named:
-**lss-mdg-eq-infrastructrure-1920_2012** - -

\ No newline at end of file diff --git a/docs/implementation/postgres.md b/docs/implementation/postgres.md deleted file mode 100644 index 6ba59971..00000000 --- a/docs/implementation/postgres.md +++ /dev/null @@ -1,8 +0,0 @@ -# PostGRESQL database - - - - - - -

diff --git a/docs/index.md b/docs/index.md index e95f6be9..c2758154 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,10 +10,10 @@ The RDLS has been developed by World Bank GFDRR for disaster and climate risk as This documentation provides a technical overview of the RDLS and its different elements: -- [**Core standards**](standards.md): description of existing open data standards used in the RDLS -- [**Taxonomy**](taxonomies/index.md): details of taxonomies adopted by the RDLS +- [**Overview**](rdl/index.md): purpose of RDL and core standards adopted - [**Data model**](data_model/index.md): how to organize and link the data using the RDLS schema -- [**Implementation**](implementation/index.md): how to apply the RDLS in your project +- [**Taxonomy**](taxonomies/index.md): details of taxonomies adopted by the RDLS +- [**Guidance**](guidance/index.md): how to implement the RDLS in your project - [**Tutorials**](tutorials/index.md): how to adopte and use RDLS for different pruposes - [**About**](about/index.md): other information on the roadmap, history, governance and license @@ -26,12 +26,10 @@ The RDL is a collaborative project managed by the [Global Facility for Disaster :maxdepth: 1 :hidden: - keyconcepts - taxonomies/index - usecases + rdl/index data_model/index - implementation/index - tutorials/index - about/index + taxonomies/index + guidance/index glossary + about/index ``` diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md new file mode 100644 index 00000000..735d55a1 --- /dev/null +++ b/docs/rdl/core-standards.md @@ -0,0 +1,8 @@ +# Core Standards + + + + + + +

\ No newline at end of file diff --git a/docs/rdl/index.md b/docs/rdl/index.md new file mode 100644 index 00000000..76376fd1 --- /dev/null +++ b/docs/rdl/index.md @@ -0,0 +1,20 @@ +# Risk Data Library + +Following [key concepts](../keyconcepts.md), the Risk Data Library Standard schema includes four components: + +- [**Hazard**](hazard.md): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. +- [**Exposure**](exposure.md): asset category, occupancy and specific taxonomy, cost type and value. +- [**Vulnerability**](vulnerability.md): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. +- [**Loss**](loss.md): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. + +

+ +```{eval-rst} +.. toctree:: + :maxdepth: 1 + :hidden: + + overview + core-standards + roadmap +``` diff --git a/docs/rdl/overview.md b/docs/rdl/overview.md new file mode 100644 index 00000000..081840eb --- /dev/null +++ b/docs/rdl/overview.md @@ -0,0 +1,4 @@ +# Risk Data Library + + +

\ No newline at end of file diff --git a/docs/rdl/roadmap.md b/docs/rdl/roadmap.md new file mode 100644 index 00000000..1047e70d --- /dev/null +++ b/docs/rdl/roadmap.md @@ -0,0 +1,8 @@ +# History and Roadmap + + + + + + +

\ No newline at end of file From 4e0586a419865149ef4a31f1286e986c3ce3d440 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 14:06:50 +0200 Subject: [PATCH 03/73] Update index.md --- docs/guidance/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/guidance/index.md b/docs/guidance/index.md index 6efe3073..e87c3eb3 100644 --- a/docs/guidance/index.md +++ b/docs/guidance/index.md @@ -1,10 +1,10 @@ -# Implementation +# Guidance -The RDL schema and standard can be adopted to risk project data in different ways: +Below is the guidance on best practices for dataset creation and distribution. -- [**Structure and naming convention**](local.md) of risk data files and folders -- [**Catalogue implementation**](jkan.md) based on open-source *JKAN* static content creator for simple file storage and download -- [**Database implementation**](postgres.md) based on *PostGRESQL* for advanced features +- [**Data preparation and packaging*](praparation.md) of risk data files and folders +- [**Data formats**](formats.md) based on *PostGRESQL* for advanced features +- [**Catalogue implementation**](cat.md) to update on online catalogues

From b984b4931dcdd64d49cae2d92dae04b2839e8840 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 14:50:41 +0200 Subject: [PATCH 04/73] Update extra.css --- docs/_static/extra.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/_static/extra.css b/docs/_static/extra.css index 979cbf5c..d1283c03 100644 --- a/docs/_static/extra.css +++ b/docs/_static/extra.css @@ -39,6 +39,9 @@ display: block; h1, h2, h3 { color: #0b3860; } +h2 { + margin-top: 25px; +} ul { line-height: 1.7em!important; From e9af9e5373d69f74e082c3e18fdd561b2efc0ef2 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 14:54:13 +0200 Subject: [PATCH 05/73] up --- docs/guidance/index.md | 2 +- docs/guidance/preparation.md | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/guidance/index.md b/docs/guidance/index.md index e87c3eb3..85e60a4f 100644 --- a/docs/guidance/index.md +++ b/docs/guidance/index.md @@ -2,7 +2,7 @@ Below is the guidance on best practices for dataset creation and distribution. -- [**Data preparation and packaging*](praparation.md) of risk data files and folders +- [**Data preparation and packaging**](preparation.md) of risk data files and folders - [**Data formats**](formats.md) based on *PostGRESQL* for advanced features - [**Catalogue implementation**](cat.md) to update on online catalogues diff --git a/docs/guidance/preparation.md b/docs/guidance/preparation.md index d851c4a2..b8e34d47 100644 --- a/docs/guidance/preparation.md +++ b/docs/guidance/preparation.md @@ -70,7 +70,7 @@ For example: * … * Dataset: historical catalog ``` - ________________ +
## Exposure data ### Format @@ -120,6 +120,7 @@ For example: * … * … ``` +
## Vulnerability data ### Format @@ -159,7 +160,7 @@ For example: * … * … ``` -________________ +
## Loss data ### Format From 0e43006b350b5aecc764ac532d364f89fef0fda2 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 14:59:21 +0200 Subject: [PATCH 06/73] up --- docs/guidance/index.md | 2 +- docs/rdl/overview.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/guidance/index.md b/docs/guidance/index.md index 85e60a4f..920944c3 100644 --- a/docs/guidance/index.md +++ b/docs/guidance/index.md @@ -3,7 +3,7 @@ Below is the guidance on best practices for dataset creation and distribution. - [**Data preparation and packaging**](preparation.md) of risk data files and folders -- [**Data formats**](formats.md) based on *PostGRESQL* for advanced features +- [**Data formats**](formats.md) recommended and supported by the [RDL collection](https://datacatalog.worldbank.org/int/search/collections/rdl). - [**Catalogue implementation**](cat.md) to update on online catalogues

diff --git a/docs/rdl/overview.md b/docs/rdl/overview.md index 081840eb..ba7bdd13 100644 --- a/docs/rdl/overview.md +++ b/docs/rdl/overview.md @@ -1,4 +1,5 @@ -# Risk Data Library +# Overview +Purpose and rationalle

\ No newline at end of file From 29e31db4a80dd3a17a94acb72279d8294fe54a40 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Thu, 4 May 2023 15:37:21 +0200 Subject: [PATCH 07/73] up --- docs/_static/extra.css | 2 +- docs/guidance/formats.md | 4 +++- docs/guidance/preparation.md | 15 ++++----------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/docs/_static/extra.css b/docs/_static/extra.css index d1283c03..31856b06 100644 --- a/docs/_static/extra.css +++ b/docs/_static/extra.css @@ -39,7 +39,7 @@ display: block; h1, h2, h3 { color: #0b3860; } -h2 { +h2, h3 { margin-top: 25px; } diff --git a/docs/guidance/formats.md b/docs/guidance/formats.md index 5269b9c1..9a2667e2 100644 --- a/docs/guidance/formats.md +++ b/docs/guidance/formats.md @@ -27,4 +27,6 @@ Well established, de facto standard in the GIS community. Accepted by all GIS so NetCDF GIS format is an interface for array-oriented data for storing multi-dimensional variables. Commonly used in the scientific community for multidimensional geodata storage (e.g. climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. - **GRIdded Binary or General Regularly-distributed Information in Binary (GRIB)** -GRIB was standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. \ No newline at end of file +GRIB was standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. + +

\ No newline at end of file diff --git a/docs/guidance/preparation.md b/docs/guidance/preparation.md index b8e34d47..8558f87e 100644 --- a/docs/guidance/preparation.md +++ b/docs/guidance/preparation.md @@ -41,9 +41,8 @@ The main thematic groupings in hazard data are: ```{caution} In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. If required for data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. -``` - [FIGURE EXAMPLE: BORDER CLIP vs EXTENT CLIP OF GLOBAL LAYER ON A COUNTRY] +``` ### Packaging recommendation We recommend grouping exposure data in the following hierarchy: @@ -51,8 +50,6 @@ We recommend grouping exposure data in the following hierarchy: - *Geographic scale and location* (country; sub-national; city) - Year of data (current or projected) -**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** - For example: ``` * Dataset: hazard data @@ -99,8 +96,6 @@ We recommend grouping exposure data in the following hierarchy: - **Geographic scale and location** (country; sub-national; city) - *Year of data* (current or projected) - (optional) Sector or asset type (Residential; Commercial / Population, Buildings). - -**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** For example: ``` @@ -145,8 +140,6 @@ Note that this hierarchy should be maintained even when packing all the data in [EXAMPLE OF MULTIPLE IMPACT MODELS IN ONE FILE] -**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** - For example: ``` * Dataset: vulnerability data @@ -184,8 +177,6 @@ We recommend grouping exposure data in the following hierarchy: - *Sector/asset type* - Year -**NOTE THAT EACH PROJECT WILL HAVE ITS OWN NUANCES WHICH MAY REQUIRE AN ALTERNATIVE PACKAGING HIERARCHY** - For example: ``` * Dataset: loss data @@ -198,4 +189,6 @@ For example: * … * Dataset: loss data 2050 * Dataset: loss data 2080 -``` \ No newline at end of file +``` + +

\ No newline at end of file From 4c9fd5ef9e2aeafd9c2c5abed621af96a632f3d4 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 16:04:34 +0200 Subject: [PATCH 08/73] Content update --- docs/data_model/index.md | 10 +-- docs/guidance/index.md | 18 ----- docs/guides/ddh-rdl.md | 78 ++++++++++++++++++++ docs/{guidance => guides}/formats.md | 0 docs/guides/index.md | 19 +++++ docs/{guidance => guides}/preparation.md | 14 +--- docs/img/rdl_collection.png | Bin 0 -> 202039 bytes docs/img/rdl_ddh1.png | Bin 0 -> 53418 bytes docs/img/rdl_ddh2.png | Bin 0 -> 81512 bytes docs/img/rdl_ddh3.png | Bin 0 -> 48447 bytes docs/img/rdl_ddh4.png | Bin 0 -> 42895 bytes docs/img/rdl_ddh_add.png | Bin 0 -> 45040 bytes docs/img/rdl_ddh_mydata.png | Bin 0 -> 130659 bytes docs/index.md | 4 +- docs/keyconcepts.md | 86 ----------------------- docs/rdl/index.md | 10 +-- 16 files changed, 111 insertions(+), 128 deletions(-) delete mode 100644 docs/guidance/index.md create mode 100644 docs/guides/ddh-rdl.md rename docs/{guidance => guides}/formats.md (100%) create mode 100644 docs/guides/index.md rename docs/{guidance => guides}/preparation.md (94%) create mode 100644 docs/img/rdl_collection.png create mode 100644 docs/img/rdl_ddh1.png create mode 100644 docs/img/rdl_ddh2.png create mode 100644 docs/img/rdl_ddh3.png create mode 100644 docs/img/rdl_ddh4.png create mode 100644 docs/img/rdl_ddh_add.png create mode 100644 docs/img/rdl_ddh_mydata.png delete mode 100644 docs/keyconcepts.md diff --git a/docs/data_model/index.md b/docs/data_model/index.md index b28a2158..c40de330 100644 --- a/docs/data_model/index.md +++ b/docs/data_model/index.md @@ -1,11 +1,11 @@ # Data model -Following [key concepts](../keyconcepts.md), the Risk Data Library Standard schema includes four components: +The Risk Data Library Standard schema includes four components: -- [**Hazard**](hazard.md): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. -- [**Exposure**](exposure.md): asset category, occupancy and specific taxonomy, cost type and value. -- [**Vulnerability**](vulnerability.md): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. -- [**Loss**](loss.md): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. +- [**Hazard**](data_model/hazard.md): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. +- [**Exposure**](data_model/exposure.md): asset category, occupancy and specific taxonomy, cost type and value. +- [**Vulnerability**](data_model/vulnerability.md): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. +- [**Loss**](data_model/loss.md): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. The diagram below shows the core relationships between schema components, rather than listing all of their attributes. diff --git a/docs/guidance/index.md b/docs/guidance/index.md deleted file mode 100644 index 920944c3..00000000 --- a/docs/guidance/index.md +++ /dev/null @@ -1,18 +0,0 @@ -# Guidance - -Below is the guidance on best practices for dataset creation and distribution. - -- [**Data preparation and packaging**](preparation.md) of risk data files and folders -- [**Data formats**](formats.md) recommended and supported by the [RDL collection](https://datacatalog.worldbank.org/int/search/collections/rdl). -- [**Catalogue implementation**](cat.md) to update on online catalogues - -

- -```{eval-rst} -.. toctree:: - :maxdepth: 1 - :hidden: - - preparation - formats -``` diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md new file mode 100644 index 00000000..5f9326b4 --- /dev/null +++ b/docs/guides/ddh-rdl.md @@ -0,0 +1,78 @@ +# RDL collection + +The [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/Risk-Data-Library) sits within the [World Bank Data Catalog](https://datacatalog.worldbank.org) and is meant to store standard risk data. +The collection can be accessed from the [collections page](https://datacatalog.worldbank.org/search/collections/) or used as a filter on the left bar to search for data within the collection. + +![Screenshot](../img/rdl_collection.png) + +## Add datasets +Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`.
+Datasets needs to be packaged according to the [**data preparation guidelines**](guides/preparation.md).
+
+Two options to upload data: +- **Individually**: using the upload wizard +- **Bulk**: for large number of datasets, requires support by the [DDH team](#ddh-team) + +In both cases, datasets can be added to the [RDL Collection](https://datacatalog.worldbank.org/search/collections/Risk-Data-Library) only by the [RDL team](#rdl-team), after approval. + +### Individual datasets +- Log in to the [Data Catalog](https://datacatalog.worldbank.org/int/home) (top right bar) +- View [My datasets](https://datacatalog.worldbank.org/int/data/mydata) (top right bar) + ![Screenshot](../img/rdl_ddh_mydata.png) + The page shows dataset number, name, modified date, status (Published, Draft, Under review, Publishing in progress) for datasets you have uploaded or for which you are listed as a contributor + - Under `Action` you can `edit` or `submit for review` to the [DDH team](#ddh-team). + - When status is `Published`, the dataset will be visible on the World Bank Data Catalog. +- Click [Add data](https://datacatalog.worldbank.org/int/data/add) (top right bar) +Select the option on the right: _`continue`_. +![Screenshot](../img/rdl_ddh1.png) + + 1. **Essential Information** + ![Screenshot](../img/rdl_ddh2.png)

+ + 2. **Data Resources** + - Upload dataset from your local storage + - Add a resource title and description + - When one resource has been submitted, another one can be added + ![Screenshot](../img/rdl_ddh3.png)

+ + 3. **Additional information** + ![Screenshot](../img/rdl_ddh_add.png) + - **Tags**: These are important for being able to search the data in the catalog. Suggestions for RDLS data: + - Climate Risk or Disaster Risk + - Hazard, Exposure, Vulnerability, Loss (depending on the component type) + - Flood, Earthquake, Landslide, Tsunami (hazard type) + - **Topics**: There is currently no topic for risk analytics or climate and disaster risk - leave blank + - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](ddh-team) with request to assign data to RDL Colelction. + ![Screenshot](../img/rdl_ddh4.png) + +When all required (and optional) information has been entered, click on `Save as draft`. The dataset will appear under `My datasets` list. + +### Bulk upload +In cases where large volumes of project data should be uploaded, DDH team can assist with bulk upload. +The workflow steps are: +1. Store project data in folders on OneDrive. +2. Create an excel spreadsheet describing the datatype with each dataset name, URL to data and URL to prepared JSON metadata. +3. Describe the data structure to be achieved on DDH. +4. DDH team will copy the data and metadata to DDH Sharepoint. +5. DDH team will use scripts to upload datasets; these will appear in your `My Datasets` for review and any further editing. + +## RDL metadata +- Create metadata following to Risk Data Library schema in JSON format. Metadata should be created for each dataset, and includes the description and name of resources under that dataset. Either: + 1. Write directly into JSON file + 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH). It exports a JSON file to be saved with the dataset. +- Upload metadata with the dataset. Metadata will become available to download from the dataset page. This will contain the standard DDH metadata plus the RDL metadata. + +## Contacts +### RDL Team +- Mattia Amadio <[mamadio@worldbank.org](mailto:mamadio@worldbank.org)> +- Stuart Fraser <[sfraser@worldbank.org](mailto:sfraser@worldbank.org)> +- Pierre Chrzanowski <[pchrzanowski@worldbank.org](mailto:pchrzanowski@worldbank.org)> + +### DDH Team +- Kamwoo Lee <[klee16@worldbank.org](mailto:klee16@worldbank.org)> +- Gaurav Bhardwaj <[gbhardwaj1@worldbank.org](mailto:gbhardwaj1@worldbank.org)> +- Rochelle O’Hagan <[rohagan@worldbank.org](mailto:rohagan@worldbank.org)> (DDH lead) + +DDH team is responsible for review and publication of submitted datasets, and to assign datasets to RDL collection. + +
\ No newline at end of file diff --git a/docs/guidance/formats.md b/docs/guides/formats.md similarity index 100% rename from docs/guidance/formats.md rename to docs/guides/formats.md diff --git a/docs/guides/index.md b/docs/guides/index.md new file mode 100644 index 00000000..cfb1227e --- /dev/null +++ b/docs/guides/index.md @@ -0,0 +1,19 @@ +# Guides + +Below is the guidance on best practices for dataset creation, packaging, metadata creation according to the RDL schema and distribution. + +- [**Data preparation and packaging**](preparation.md) of risk data files and folders +- [**Data formats**](formats.md) recommended and supported formats to store and share data +- [**Upload to the World Bank Data Catalog**](ddh-rdl.md) to store the risk data on the [Risk Data Library collection](https://datacatalog.worldbank.org/int/search/collections/rdl) + +

+ +```{eval-rst} +.. toctree:: + :maxdepth: 1 + :hidden: + + preparation + formats + ddh-rdl +``` diff --git a/docs/guidance/preparation.md b/docs/guides/preparation.md similarity index 94% rename from docs/guidance/preparation.md rename to docs/guides/preparation.md index 8558f87e..89dc5987 100644 --- a/docs/guidance/preparation.md +++ b/docs/guides/preparation.md @@ -18,18 +18,8 @@ ________________ ## Hazard data ### Format / data types -Hazard data includes: -- Return period hazard maps -- Scenario/historical event footprints -- Hazard curves -- (Stochastic) event set tables -- Historical event catalogue -- River network / cyclone track / seismic fault databases -- Other input files including flood protection data, intensity-duration-frequency curves, ground motion relationships, etc. - -Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`). -Supporting data (hazard curves, historical catalogue) often come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). -They can also be packaged in a similar fashion. +Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). Less often, hazard curves and stochastic event set tables are generated. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
+Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). ### Thematic grouping The main thematic groupings in hazard data are: diff --git a/docs/img/rdl_collection.png b/docs/img/rdl_collection.png new file mode 100644 index 0000000000000000000000000000000000000000..557d6bcdc94b0c070307b2e4a2d73b0a383e0f18 GIT binary patch literal 202039 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 YtuT$@?(t#cR)LSR(+`eS_5rE?1K!((1ONa4 literal 0 HcmV?d00001 diff --git a/docs/img/rdl_ddh1.png b/docs/img/rdl_ddh1.png new file mode 100644 index 0000000000000000000000000000000000000000..72fa391678ad17aaf1f1c1104361b9be1528d1d9 GIT binary patch literal 53418 zcmdqIbx>SQ6fa1W00Dvrhv4q63GOa~1`iH{dk7ZX9R_!Im*DQs;I4x^!%n{Md%Lgd z)mH64TlIEt)ztLuzJ2fM)7__!{7$fg4sJq7 zO7yF$tKRX7i!i1cROrmtDNhn3m-^T1*Ix>MqE{J-iByV*r+mi3;OHZm{On*B;*#je z)VJ?ODgNAxZ4`_iu3PC#h)?p1{Z*b6+NZA}M_rKQ>Ua|uXEB`X=Z80@rWtNa{4F&Z z>82AC6T+`xWWcVUf}epe|CQGRL^M(UtBT1M!4Vv>$?OclHe$y9)EDWdlZRdZ-_cJl#Mq*e+Js^;t4|HBBJ~9$w zNtCkaWJvk-9q$+7V?K+;^HMDvgnvi#(|^vut*>eeU?ptBd)6Xj4gi=V@R>P(#}+oC zu@usA=GW*M{f}|f6TI}}qYT^m?rqogeo@)}*w~a{bXT<2gg)ac!vuHx;eX$`zLV>u z2`#KnNwuIL|Jr21V=3W~CF0BYOR#EzKxcbaRzFZu7trnOL~q~>Jfuxw-$KSuC$2yy⩔Xq( z{FE4)jVe*2RCQ2DLps&iekFRhu9r3JtP`(O!&vT?lvr!KNWG@CrbBHKvtNF=T>vR> zRsPmru$j`e$;+nV>_(QYO(%|;)<#L06B2A9riRO6X^M)n5;fRbTzDm{xn5}U7;~{u z`?d(!H%mDD?VAR8iU3jOU+NPRF`G=C&syIsacMeQs_m~2u0-amYXx%BA!BM>l|RYL5WbW{aBpCqMJLDd#RzeECJ&QyJ=pKk#w>KrIfbxH~G zYJ+l!vhD!^_YQ2*qGk!LEzvDDdJ)tDy1-6tamU@YHBq)?-j23__AbHuV;7N;Kwr==7&A2hknX@>gk{3WU&WGS1(B?L(ZBeS1EE!^$ms)AI{uqlN6Mvz2vvbgaEG| z0KU+j`a#%VaRIx2(9|Lf_ghn*uO5$ESYyZp?RFDriWXW9sBzkc zHH-ix_||lv2v-L4u|6WaF#c}uTJ15nxFeU?6_ZX&b`E+nDt{%!tD&5B3C@{1m0oP4 zN;a>$^cdcAOPavh@2GOL5uzjvUYwq8q-oC{@2MtS80%eL{ROS_n=!lIi_sUqu@>r< z{dXwBGM8x)39*fy7b8l?gPYZjI*hcaM07l+y7p(Ea8wXqxAV3d6mt=(BQmrW*l<5# z;Vgz4y)3A8${q}`9X~SjKB(2t8mz>{{~{IdehC=sc0Lx$4HnsEr5P;J z(LCmUlDpq}>5A@tu!{|!iK9qcx}2WBJm8yk^6>BwY)E37%xOtPwFR6n%0BejuMRWX zht_e~jo2Nqc-fDxl<+|x8xH=owFx|i0jlqt`#c8z6HcrA9hGT4HCsW${X0OV`+fUr z=KCT^VBEq;S4`@rrdE=@iXj7v7#HQI`px{iA8||5IrfVB7!Bq(-xVOM7=llaJ}#nC z5Y_&~!n6H(+nd8(KF5c(_Lat$G;sKq;}?QvV1JCB^`Zlku_%SqV|yw;vtnZEe_!tm zJtOD_hT!oUWfQV}?cb>`^hc&)Jnh1VrOAq#f!)E!s0+;WvNmK6uG_&2HcX7vZX~NqE2`=2`C~TG zk^!~d`!ZO!)BMRfgV>(z{CLa+(!OCs$x{KMU=%vvxxnBy{`X{>Ko^*=OuHb)rw<;! zE!)ioeqB$hx{&B?ac{O$v6n!lC75Lpa8(5!y3d1#8WhII6FjT{@>gQk3M3l4r;7o6 z3p&mZjZe6j*%(SVafZ+^>*c1S2|0Lg7aAIt!${)9F{0H`o%3jU zo(B{4J`5jEmM4Gf=JR0`v>UuUkkPU*+`G?=y?F61Nug(Gtc4WVe*5oqWEj0f9;SJz zGzX1{p0CP9%c|P&TI?DJILz{e5l+Xp)GXKe1dT1HKS_!jZb%Ha>;*tmk-XpeLS&CR zWu5F#dY-6)6)Ns;Xwz#cZ?~%#h0Hx57k%$hwr!XtupkfL`%Lrk$RSvGQk8{rw_cEuVi81+y=liW`2)71Aq>w|w z@HUgS;5v`BiGU-{k%YAP@8zCe|Ly{~+7IJA^aW}C;ig-_sw4z4xgdWOCI0@DL*`3; zhek8!P$UI}B801>#*>d1^AAsfJj-rY-VE z5#P?o(N8yK$nhxtRbSgmEEitcL>HUT(EVx@`$`8o`Fip107=eUyMaUZCoHRAasvV9 z2g$s`w01`K1CWzZV?i7pn)}E~jZ6EnvSS6$h6tXJq|Q38G07TIOR8w``E(2@oQ;c^ zwI?!l+cD|#K=cM`v01uO^Ef$q!)Ixuju@abJ#?BYvuSZl`n))Ow}Y&E)c~@Z8d`ve zyG?Jr6a*pCWJMkQ8ewPX)~o3CP>(RS5M@o9NZpn!W{-Pp>hc^IvIYu#_?J?K0SDCK zB9!S>gg8;KGbzTKCMhvaviY<&`@0sGHM<5@19T+WQt+DVZOefFK;G1JD=z02r>Hdo z>gK7XI297&8W4JCwnA>g|Hk0<-Y0#LF|o;SyzuPAj5A1!g=zRhP&t2cVp!Bbb|td&X^8`&FyMN z)r)Go3;w@j?6f>;B4oe`-rs7=mKaRMDc?K=o8s_ev-}UObHss93shy{de%&D6S#p( z5dL%7vXg4By@)*dtE++N$t-hQ52j@Q zb9K7DYViC|QH7fYy}X(FuOSoR|2tam|9>d;3k-a3gASVlJ<~k-Q!pm1RLjrVgbR-Q zLcs9<)ZPf+t!(xEGx~QTZ5M)IcGyqxVn`1tBSQfillbxD#{~pamOOSOShIA>l2bK? ze@+e=-{i3!l{4(o1lbn8sv3RD0h|x4q%U&6(oG6r=Wiy{I|;1L z&CC?u0p1+FYuAR=u~V)H4M7-ps)qTTj|WD%xc(vc$6yMtRyjdJjXv4M<>lheHj|Qu zhK9B_9eOZG5UXYo)-jU?Hsrv-z;9U-3kwSa1HX?o5vtRkm$O9RowFB7{~B3823-So zj8i<7NPHG8hl2|gGSt=7qABw8^UJgwDD_zv{+eHz;$B|Qu~Z7hB_)Fqvm+y=Y9;Dm zB+S_=BMIlA;ZZK)YXhEpT9TE6*x=^o=Irdvz(99P%Og(frGfcRu>Lb71{YiXk;6kn zFbtA!{$)T(WF z^rnO9r%XG(RIZ^9tUWxqb5e3~aF}4gsQFnxU=tTUG8m!O97_S}p9EenOi6JJXar?v z8#*{3;p1E0P{1CWc(oWC^Gvf?65~a;*bS7a>krsDE>G!|7jnDsmnETuG0#=p*i72F z$hd!KRAvC;ssB;=%O4$(dgNc4))%Ayc4mE4$7@iP(a~fSNR>~~kds3;gc+4ZfrSzw=Z1+tFV44NdJtpC3XkfTngKD*euHdwqW5V;u0!L zyb|#L3NB$4&~<|Cl;v_|$$Jo`41pMuL zJm9U~ylj%#`uUgZ^y>ctC z`oGteI4Ql)AG2v#w^mSP_h0jb2B2B)Xi5kxvGYBjT33bsodR#i)p1$^hW=GN7|-8z zqTs-qbM37Ehfx3D)0Oc59idwBT~m*sX5$gkvGz%2Wb`Ovl;#WIx>VeA$}*Koe-Lfy z_RnSUu*0+t*4$p8I|auny}gO)$Ryo3G{KWdOLWE2t^0K=2*tmNbNBQ_=*LLR=sc2` z4(-WIE(CO2K?eSKHg84PZ#DbZsZxrVqSE?NPlrxf{cUu17m8ht|896*gW#^d-GOf< z=rrrdp>Z*BEcC=s$zUXeqGJfrlAl_Sz$@Vy{m&UH)~1&WTAs@*+WN6*k?12=)0 zl^jk`GN(YaOL6jObJ00D%oqohavj#h;HzRQrwCBbMf}>gsd5_Tb}^ z$|_N_c7XFYf{Vz!l>jih;!%<0h@5>K{JUE2e-_C4j_D@5^XNvr$Ow)7MRPorBVQsR zoK|VtH65zjl3W@G`d6OT>W_GM`$l5h6>*yM?LIHw_V&R!M(~`Ip-QT%s)~w=Dk?^X zhEp(!4>J%?-!WkITP>hJPSD!bZ!cif{6tJ6-1WY#*ups#aQ%}1wrttS-DpAkjgD+G zCcQnta69X=NGv}4{Tl=AL_xAQAn}u6uYK$x!doLYQ!~pgmuDv0{vMYls+?_wJhTF0 z%^IQEftR*O30~UVy&o$6am4}IG5#15Oa<|(QGJTJJPGw6FA?#FC27IZ7_xSuG@5yM zPst$w0XZ-5Y$QGZv4|DYS2Q34$g9hKKP3FaX05KnbCMsQw0xx1lmCIXhDVaIk5j%a zDD3pel<~X1DRWutfMa6wFOWz8hcz{{$E0XaLHD=OQc<>5b96(F0!VJijFUper`P*C zXP)+cjKSuBh?y;ppef#>$(=uoKzW==Sy3_d9%LD7KA?Q$HN5Aw|w_ zb_0+rH?hq-%{&XsEVi2M)s#P{({dsAV=Ls39|;Hv2lZ)AcXkyIx5wm)43pEpIiFu&Ul$dbdwaKor*JlJ zPL>f65O#KUjGL{O>)YGgSDKxS^ryyrndikOXQF0lBk#9M2?=W{<(Q4HPe!-MZE;}x z?7`>BY&pI(h~p}gs|t9+b_sdm5*qN8kE;GcZJYz1bON+nXjp2&+@Tdh+Qjh*8e%W( zBpFj{69DInAYeuDYYJ3f>cE zJm|_wwFQf0^md#i$=Q14BMK49(2!%{Byqd8H7Pc|&UFHyy?l6KiVY+`5ZDUJ5NLQ$ zAL0!1U^gvFBpu`;{+|pE= zV#ujz^YaPf#j8{~XhA9rTm1V8Ui_b>HDbN@A8oy#=pq(FXqP&jp@+2){}YgWt<|>Kj6R{ z*^6zI4KVOA3T-R%`?accSOvGLh}_18T3hC4)Qj#$-F}wQakV)LBs80n?(K7=(>d1G zh|T7DA&Ax)&0Ejob$iMGjkJg*UQdpJ8W~}_IaP{;mWq-;14PIz+ingeFJky&{bbSs z{5q3=E8R5Gj<^IFp4gDMlh~p+KE^Gi1gy@?B#2Wu}&cDevX zwIcAPAe`{p`O?wY^{*~Gxu=ee+<3-e;8&RkO%d*Z$O%{QUj~ZV2A2oA%0(<~sxXWG z%rQhaNFUPk#UM^_6dJxC7AfNwh&djELJqZbUar`{ny4GF34vnd#{9I)&MOMRlA>1L>dVB;v#4W`~Mt z_OdzusW%3`ISD5+G}e0(6&wTo#f(hmYt>PMz`fa6b`i7E;K9P03tUWs<9S9%&(yk$ zi@>_x&Y83*c|}V7Q#K1tX=0m{hCVOlUU8JF#je;K`7oWb{2p6^w>ZZ>Ka4t^s?D)E>m)2h8x!&mOm8y+%Em&Tng8|dpNn3NT{?lttg#ulDe2yG?-BPO z8t&g$e@30HRbVQmAIPrSVVXtDzK_r&oqxa7-F^8B=d{Uk)r)&^YEA(u_J)Cw4f6B2 zrHidL7XJK%Sfrq|QF*b6smO3oox^x*Bx#|itS4nbGsXN+;l-sdR&=SS;G7Gl^+2jT=jgutHLKhEFHWwYKlD}=r5DEG3TebjB363xJ@wix@DPQcr zPO~qO;{%3KWq;)6`R}}Y_YNElb7yZ3zdj;%m8iP_8M?(x<3@Jly-l}lq{ z=s59j21{ljl5S;`Jd4S0*Sjp6vSc;{RSd_I0~&IDAO<2tI8Nuq^b4 zG&Ep;g!j!+=WX|%e1>pT8n)aeM-EV$o9XQ{u6%*ZzBe8`L`5V2X+5ec|c~WAShRR-ZV6boJt!}J#&T>I{ zV*pgO#LNz8Dmc7@@MLM)^SKg4a_S!hQ`@>m>$3`+V0U>it@+FcyKx5dWlRz z%jE>|lJ!IYkMe-ZA1JZkZSEv&S!tY!+sKHi1n51coL*~Z960Qu9tbZbp(oBqmwW+O zduou*M#X{{JCvOOZp*&J%wh`3_mj&jaz%k)|J1AHpSrbYey{4ubNGq^z=*Bpu3R+x zpScab!Flb<;71zd29q@d6tTVA$KI=|xmWAxK&b^;5?Sp|cdbVl6eDl%6t&f`oN{`2 zs1C|Z=bXB_dPmfA;5#w(j~?I?QPMQR%1ekE2&=vmNwImI26dC$x;J-%RC4impM_Z$ zPW#hB5-U`lux1?&`wdhiSCJ?mIc)47^5}Bkx2r(=!VvS{lcl{aD`rzZtwE?Q%;kr^ zkvEx!b4-Ye>XaK)YB~eBxiv?3m;`|PwR%@ytcK82Q2|~DLs`~G!9ru?{fwxe6yqgs z#U~MX{k?0v7bPDGs33r=BL|OjExEeJx-|(6M4i1;1@24uwz+x{jTmRSx}2WD$1jZ{ zWZ4+Q9l6sZP&VJehe$RArQxUEc*G8>3+Wze#*^BoDS+|^C$P7r6=Dw zdnnm-JGTX9>jb@4x@N&HcOh>w*urD4(2F*pP3hEiLe$dnCh=DZB{zqpyPI8v8Q#P1 z7WqRU%qQu>uha;f6d4(r7O?EY(cebk4!>n|e3p+>DOYLGmk!&cb@hHnLv6X$62c3i^eVYprcqC^nb4r=H?`OiD)sd|ft& zwp>X{e~fGSg%_HSuO>wq-`O4pvB*5{Pdx#qEl(e=YxZLamcw<#^`yQ+IX-pz_i0IMjuBBM&btoQpt&O>1EbOkY3%k_ z<2?m%W@oD|dmB`w(ze;DXS9Jtj3$SKc%p_ulnDHu;D9)4GATTSs-QAE z3shhT2=QI{GrY962<_IfC_D~Kmpp!AV?N=rNZMB27k`e!NR-4gz&|r(vNYfL)^9-S zeHHnd3nL{0K8_j7x{#hO@pR+uSdO4x^?vNRpw(og4dqma-4(8o@SL=-Q^kh2dK@*| zSJG39Q$()i!0c0Sqng;4(aZ^=DK>w(Hi@?jh+0C7gJcX9a`FS1O5esa(Wa(5XnfsJ z^GloK?o{vF8oVk_rdVJw*0pzG8?qfS{W`g^Im)-8xai+ zC3ObE*ZFPvOaKBR&ZNb_B{gO7)K>-7=5Wn1u$d_U8nCqxWEgyL1l=rhH`Op$zkVX5 zk)~I6fTv$kAO0=pZTN-Y>ikO+pEAOmH~STRF^|@2$1B(XIe-H6M#g6lko|4GGM+eQ zLOf98ON7sWW)m;=ad;zTKEII8ZEz{#w|QKBIR{Gp0~d!N_GF`E)y~b?*jzKT<&Sr# z#H5I}ZY%EVPsH$2!q^uTvt%YEiyt+i=OnM@WbdGdGu_jVZ138GJ07I) zy0}VkkEk=@8<_9R%*cBADk!V5^0%m=dW1Y8i*HqG=+gK&V_S1-G|9R%<)d{1A9%0g zfm~-LL@`fy?Y0YtDS2C0Usp*f%Kmb<7vs^zM$1d~6n)Xm(55IGx|26zaJLjQWij=E z3pI~CLboMKp)rVp0^BO@ywVJah1=|dlxUPK)?P}=cC}q--6#DV8qHxcC~R^t?f8Y{ za&YTn;7t_!dv*lNrXBe@^QZSOo8^cQ9su%(*rz8&op1f!W2ZzRuTrWKsSv90rIR&y z-Y2M&|5P_VTJMxYd+i(2P~D`KQ(je_*ju%IQenX$IMbGT$9y`ey7R=(y?>fB zgC#cwTjhY+&DPiMiQ1l9B#Bf<-woa9s!^LWm|o)hyZ$KkR(u%3pP8IZUR}7|QCMt% zWZrzJO^pmfqZo?NX>h-Ou=bGG8KEvrc%dy+quBYuvaZU7EUW>uDtGd?3w7>FMMKtJ zOFX+WurQdKCrXIj<0hg)7OOXFl8qkP+KP(S%E=wIN1t;^|Cn2xgP9-caFhL(U;a^pj>yg(F?!B;TT$K#Po=TE5uwAE5n$t3vvD!N^D zS2GZ}^#l)p5faOL?JknFlwf;xNIsgPaBdtw$R?4jYy$tX9&wd-yqY1Nj6yuVB1umX z4&|IROPccPrC-C_QD`SI&L2$2GCkZ~ydq2jm8E+&x;pRVgD||G2SGkj&QEY$oMTV+ zm0>ZfN#XiLDQf)LsJ1O`v;_2fEa3ZaXT88MVsm-54E?$Bg8obvwhril>bK-_3Dj8> zqll%+-n|;}oRBL%lU&=l3Z%>@3DlbW!n7-P8&KB&wUk>$;CD9uN_&=?ADHu!@d-sw zqpMxN+K+3^BiaRF;`M~mAugB)Y_`6=llQP(8X;Dwnod}AR1jY>SFYdTwRXO>w>5=C z1V}oHij<~(4CedzQdl(Y9TtwSOH=|{$pq9$xYb))Qx|(hrDEbYd2FQ+Ygj+gRfU~O z7ZrCoQUs_OS8Y~}nU>pKT2t4fSX-yGGB+sq;s�#n;p(JR-z!ahM2^IYB7(Fcmll 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 W+oes6y|4Xqjf|wCM9Bx^um1zF;w)nT literal 0 HcmV?d00001 diff --git a/docs/img/rdl_ddh2.png b/docs/img/rdl_ddh2.png new file mode 100644 index 0000000000000000000000000000000000000000..69b238cf44ef328c3024a94959fc759dedef97c1 GIT binary patch literal 81512 zcmd?R2{_dK|1O^LP!Cxi6*87mq=Z2jYa&_(Nt^7(F2vZ4Q7M!$5;1nAM)qXiD>0Tq zj3w(-m|=trV;N?g�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

  • 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 r8pb9Q^GAAcs-HgZt(vAwVsT> literal 0 HcmV?d00001 diff --git a/docs/img/rdl_ddh3.png b/docs/img/rdl_ddh3.png new file mode 100644 index 0000000000000000000000000000000000000000..6a13bb967676532f53bf861c131596684467e2a6 GIT binary patch literal 48447 zcmdqJbySq^+b=3GBB-c@5<>|?s7Oc)5=u%bh#)N~-6ai5H%P-EAl(8|G9U~%AUSkP zN_Pz~oO}G9-@EsF*4g{4cb~oX-s}B?1@rLC6L(zq^@-~ad7&&za+T)lrAwDc_!##CNxlRbR)U`LqrNT#h$N~nopMSb$?=U*mraU}AwF!_e4!X!kTVdY)$p+Hsr*Ni;RSTsyN z_Eo|CrLCMKD>-mZ;j7zwuHeexFigEL^hD$yD-;}#y|0cuOQ-nfI-d#+vC5&SKyWzc zxjK&z8`Ah0I7ju%|HR98+Q6->rs}JcL|kolHXF9?Ow?Fg9$5GM_;@YMq${DiKGd)) z;bFnd>QIrkS0F<|S)tWT(|3LuSL^Yrd)+?gn1d3rp*s(?UU}|y3zn2_c^wRCm}`n8 zaO!IPN)!I7S#6>fPNYYKi(EqA|kt$IXnVs(O!mJ)Hc$c0{R8eRyaZNHa6w7(bd8lLu6=Glk1F^ z>wC>Ul9R(E?zd0h`?APqOXJ4eSV>$2bCl?#%N%j6O852NuY8$f6F-r^n&bxB#Q*JN zm4oQ-qW74fKfQcOF1K^Xlq+8z4JPDuoRAyGGT|dwD?E+b!|!GIU{BJYH_>TM7qU(4 z7ilLpWhf>FEl$Me{ejWIeX#DUgm~^)3P(m1VOPq?u#WrUCv%#wrrpm~UOm%Sc~}$~ z;prKuvB8xKKN8=pogZkF^chZsJ6T>_9s9K1uY)dL53j9i;LY$ygTC zuP1s6Z+$lfks_P<*PD!3lka*H#>wB2{-qLL_=xw(4 zse??FJTFjeaK*0OAn~)$uJ6|c4_UfoU42mP*59TQ#MCT*9DB05vDQYp4@7;K2SfDX zjmLj7r@f6jB9+kW3kn$K`K)y8IE=&A6*pqiR^&E@&?!*7TUlCw9tqEuT7Y#q`tC<1#>rtKBFzaWxu1)Zm&f|BD{ zju4zq@}K&X8!e%39Z)GJFt@@pcf71K>sIub0rU9A+TpUc?e|ah!Z(^7(B1r*7W(AI z4#flA*vLgQk9Ow|ztOo$3g>G*$u3UsH~kkjy9H-BGTyHiIBi~zycXM*f7u{4=GEZA zGTtwOo1)Q&ysdwFv2Hs^N^~oY)W((8B!=qi2GsN(>lK6WEe9*#-#lXH4DJgtPMbAx zRaj#sqpn@i3~@1{n&4hVt_YwImug`D2nGo(V;7QUZpCF z8|biGd&k)Z9<>xmyxy>2frd|FA`!h|Q}#|LLl3d{Vo#3ovu-PaxQI3b8F zX@gPoH{rNVA6ZutWh}!jCsI-J%nB@wWirVfzuOH$3)zG?LrlC%n9&O&BRY;sSI>?; zQ7no30;!?aDT3MW=OY9MYS;|E^ufJ`Y%1-~4@UBKB88WdD0Fs{FS%pSPRw=xurj_) z*HpPGDSe&U?EwP;Ooh~wtV&w7OTg`Hrvq)a^vz+hldtS+&*KM|nfBSJShs`EmAJdq zUWs+oN7wc#MbpTW`HaPMST1OOI($cSZ_>=-;zjU-LH(#C3m^6#hxv**h7e{qtGH zJt2RK+*UV(i|BlAr9fUKyC)_hj!h0?eek2Wae0B&T$CBUH-}!M&_nWxMAv&liSC+` z4n4=~mSnSXRBkU?PTzQ%iWQT0$trPnaH5%3!aoFWeDL%r*MXTj@0sdzdquih2xNfZ zHNDgj%SZN4?_)39+t^K(Gx=uQ&EFHuW{RF$ayT3_I}-c2XiC~5D=JMODXrcNX=mZS z>z37~<`GMh;kkSACp$`ci>M84zN8e5bgDz$&G`9<-j4=uTeq0NS4@`(2LHpA++ zs|`JJAChDxm|@6E&*D$*e;Hrg-x4!p*Gl45%8cg(!H^0aC0gBT-b+3aKb{R(;XP%$ z+1FJVOX7cTd$95TSg`xF6I#h!lkZArT*Mg_BV*(T|GdTPQRn2X`AHn%=YAi;oP&*-V~0GaBq~WqAhD31yD6R(p0HcA zLB)>x|8$Q*gYP2$STtYkKQpS{l$ngk;z8|i=~Igo{cWd+UI@cvaF#nn@c3QE(^=XU zSv~~*Jn30mH(N)oGm229`&iLHWxHipikB3hyZ#wW6fyyMEIMT)Xs`n7zqEIkXn`=9 z(m%v)K(YIhpkX@;)vP%u+`Y2XVJCU%Aqb=>!ZkmK*)&_U=veKatgr#IjPUleUXZIr z#znZ<=5UTNQqS?W5>YU_nVxFU5m?1xLD${J>^VKj$o(1_Y!tpl7QZb#%#w0eelt7d zW`~2-S2wdPv~hOaJX0)5LZXqM#AA!IcV#^S^Ss1N%PMKwznEj+M{1{h-mbHNF6USwg_V$2NaUB9*Uy z7skpc&6~M!#0OfX4@5b{AI7k>`r#A$7ov=2X>x>2V+LZsqCSM~MPVV+`3l$Ntc2jC z-Hk%tf%nHU-%y~)*1E;m@|WwML>mWC_9oxy5Zk+J9|pTSLmy)`*gawVY+y4N2V&NT zK@&3&ixSO*YIbUb_SH6weDeg-WBGr|I$4U`r9 znE4=so2+)BTY<=vNYhAXeBF`U>dKy#V86t#Y#pM6ckRuU{oRKlnTZCx{)U||W$A`a z5f4{~V~*Kwb@u2|%sG=*(~C-!C}c~k4M z=-AIAem@r-Xp-J_qc_ZWMpL7C`66cH{U|Xe>gCY~*@V$-JEWJ$kI5+1gl?{4mhptw z+U>x)C(tawGP?BmIa7t_$?hP6lV`T&273AJ%{^mLi%Xz8F3r59zs?pi*BIt2UL&%W zaODgJwO2B57YdTQLB&=>JQ01ckc9ds3xnpT2u>t!%Hb;sz#^P*IML*rj~T(FUDml( zB$o7@zfDGPb--3NR3hHKbpe30T2woEC4(xY!DLeNo=JMK(I3lHm&YY7nJ%W8r!`m6 zMjr7MO7kYu_aTbv6D~q;sf!|2hQki7IZtG&{f+6t_2*-#M?8AoB|rP&zE#DWX)6MU zFNb!A4sKd4*KeRv_9(t2jkqLP{bf})&Edj>(h2%!!nX1>k$+=tzT98f>sDam?sZ$^nfpu{D9qG{2s_RhD(lcNB`0TT{fzJF?)CZ|889W-+Gb%AFM?D zT?K(*?}mbE9Dfn(a;5E9y~3x#L@t)(j$t<@qC^^ZxJrbvok8&jk1?u!)fuW4hHD3N zSBY?Oj@SrwON8}9+(|i8csx!2@EUi`{-H@o|Diu<-u`d<_;Pn4PUVjH#YwO0{VQ}% zFYMb$WhuyZFmaXx(Jv-f>IQe?nw#&b`pC@NP4o>7CcEc-sZif*d5 z9JynQICm*3^1|@}VQR|4Uxw5vf@mG&?1$f&RoAB+{NnA+Iq*7~a@F>#Hv&`(atl}r%uazJHx_P-?x151g@!pMlbvSNWHptZp&`=*ugZt5p zk57u3PYW&H!+9K0Qz8biQ{I3;GM~9>k%~tX7PD5>%T@m;>oxq)esUd9CMBgz-52Gp zH!Pj`*8n@Dyaz43l&xDllf+}Br8`tua}STM>vTYYs~Y3fG4MqJ?dk5;7t%sYY0*<< zjvm0m-06zPzMAEk>pBmqmx#40G<0lAlzBNfBIIbU$3?`-3FQA~_rSpm?#@6GsFqhM zGHy^s{JiS;aH8p3lwg1^$$nrLTB%7eIx}{QQ>V6ki2rdc3H~-VHlon_@jz_E-+Q&* z6i+)0L$x0PK8=Kp70Tkp0%f!_cH=wGY=65sS+~N<@3KBR*yeA_GFtC!$z#$PKUXth z^I#KD40GT|;T*>)%^@lEi>>IZ-FD{q!l7M>`rgT6YF-)H;??x=TusMWho;WRMXFE|oid{#e zMp0i5uJe%_OnYwOfWZWghcl<@+G&T{=2&}AIgfmyDP>Ve$a(A6ENpwH&1u(o9?%~O zr=CAP5U~}>W-cJ?4J>fCKq-(4o&KGXs>ivKa=@!544it7ZXl~ zc@xoK;jPBK0q?rq&If33A}?K^wFQu$b-I|Gj_9rlnF@6nPB@TQT$w0JH_Dwd`Zi^$ z-_SL&c`hA0{qAO>qbFlfcJ``c5(NJMtz zV~a$4%}uO@$sFqbsX5?5M7-cn8P#5YQ(_*=e4QhD)^dfx%FAQ6;}MnK^o+gU5*`#K zEv6g~=7#9yKwK|yD-Tr%m@GZ1XcS)@R8vu!z#nv?w`<002yZ>gCn4ELi?Zivt0L$i zWdUdI4nI`D>Ph-6)447C@8ya1fRHjlW26Ddg>L0}2RbRAk(tK;XC3fy>9{(^crJZ( zUf)X3aEVHGiJEdL^V;CF6*;1mU;TiRk=I8Np3luGkX*`2%}o70DN3w7m-{P@)uvq( zd9h*ZlZrtqh2^JH}CDf&>}d14;uDhEh+-TiE?9 z)8z!%!Q^x=Gzl@iN--Rk3RP)fYIeIgKSH~*sboxw+)%mfzS|Y&flqYRkC@4BDez|; z25M7#H$tS(WGRFZz1)scd*VMU%izW56-73YXbly##n;VPC7o?+%35N~=o?TnY!-s4 z#lUV&_PM|}XiuXOo1Xz(!q@t{gV4?4=kE4Gyf<5#-BX&pt6jZ9kdKN1Udqft^C?0HLtao&;#KYIlRoZT=3C%mN ztGA{>5q>lZx29Qp9 zX{4#?h>r_z-RkNkcg<}Ts<@folK*t>*7B{cww=+ z7*sI7G*4gHcLAS4@R|+lWbnza?#EJ3pK*V5sBGa|=}BeeerUtAAC)S}!L|1jNsc}{ z1#zjiPNqCa)5hl2U4LnOZCb#}6{H$4%kEKO(EIo?R`C;>H=UA=p#6Nz9dQPj4idrk zFbUyX(P(jR>HD$%jn-l+=EP*9!+yOSj`Y#}-8I(~+3;OrAJr4HGQTl_e(fcOt(JF# zrDZ=pbAgFHVu{ijPpCWRk4l^n{&O)$Px7P%LxhwgxflTDzDCTk^N-ah_#)v7oOL-v zc~`25_ZikJ6n#7GEUr4jYWJgjBMcJrmfbh*GNImH7;tw;-_DgrmC;rF@)RuN(Ls27 zt@hT)tfQf}jTNrbia{n3`X&}fp6h%7OeePadBYfmGZJ`p{YPAS8#MJWS5mm_&yEfr z$i=uJ4|1l~Y(IfG?QjII|R(q=t`Q~?L%g{YM=*^0W&FZqLMe8FhlYBb& z7<-5@Gw0b$BHvoy#EJ7qoPOGz8CCX1?DOW2TAAz?Se0BS6|+xNC;PfkghPK8Pwr+U z*z?Xdc;=S>at}!*w4N@K0xW_AXsRJxb8x^}_?HfXwzPuJX8a1PV< z3ty~#T8H~Dm)?<(6k?3y^@A^n|7!K<0jtMj6R>*Bh(JxkyOj7SRp`uDRols51tQVy zwfA0VlL^LxOpuf0nef;wuV7@Q+fyXpTmjX`R892)Edi-Y$-QtLQR^OL<=2uqQ<=Nop7p`=m#|krJHyB#zK0+S}T4JhGt$Yol zt-Fqlv?x+M2Jc1(H>dm%)ig^;-gKyZ>79K1wO35xoY-QHcmpJlqcoT&dXc7@gOfXT zX;yvHY1n7UR`D~|jN6~ZTP{Gmy7|LL+V4*DhxkTp64hpxPsbb|eX^?Z(0TRtY`2=Z z=V&xn{o{w5R#5t@3wz7F-A#{$8P;M+hQFj)#V01RitTf;)z-Q6ij+U;I`y~5y#L*l zX658?{xHlqd)3nzF2zVc(b&lOva|`a%BT0qCGy`E0rg3uF$`?st&NtTYr$dM4b#Snq zGf7-po6)Fj@yt3Q+oKk=(b=ln)5_MNZ!u%K_$_^ z+{c$<%WL>49{mVyR6A%n%`LayyHa~dqEWZ|Do3{7d#My3+C2?D+IAi#&1YSmk1wOM zx`x?FszInTXJ&U+dGaB;|)L9x;yE@=+QxRC!ES z*fh3YqL;Fx-SZ}&Sxn4bjgN~^E=8DtV7J^+9g2;iLY`W{c7@4mcFVjL$Df#jbbsRe zVRb{}#-u*1Kn>)%&%g>CXPj|Mde)!lbtfJeZu7(%!uj{X3i{Y-S*3A~MHkc2&FEbX zyBMO@dlbIvlo9%xTCtLp%dK66)-TUxKgt=fh1`86tUnEex;Y*Cr5=K|Txe=UWSz)B z+y*K7l(qxi>h-*T3+m+>PXsl^lB7uWDT$owSWVQs-ZY$9nh48e#`LBNavgwyK%0-< zbVVqf&xZ(hP))hdJ-tOy&9=iNJkN6zzvGslk?@$o%)ysNrGDi~KY(i>FR!zacJ>yy zQH$Z%yvyr3Bvypaf57gjh+c67!!m8Rf~tFv{iL^}y*j`W(sgI~RbzQLQ82TC^^s?I zO3?AgCsG4w{YuHoTl0$(LMe}4J{atAm$mDvujt-A$X#KakDt-~xzmI{-{wBOav(?v za>h8e%E7~a@z}yzQ}Xp?Aug~0wB6sJ=iQ)h*w8y2*PV9R;))$42H4~?U}(C1-%h@& zEr{ilicTES@ipbz&x;Q@17o$Uu+7PBx3j9wz5Qt3wE4I{3VIb!ZPK@M?uJe+%i zSHr86@ot6=ZTOw2?f7!ZAK4IJ-<3fYsHk+fZ^jYZsB3@5_p%f}w|a#aKLwZyf>&NJ z$%PvSJhhXFrk;RrkQ*XMC;QJno>TfcPoFXSzc_p%o{CafbyC|k4lv1Mz*C_wU+SEQ zXB*vMg%UjBY{nXjwwrmBd-IeKjWYQfLAh@z1RWtAu8Uid?1KsE6uKscG3<-S0(o zki@vRJJsFoKzE**HjC3UXNK?8o{;}s*m@p6!~!MVUSfLJP0s5*#)c5K4`AKyUZzIL zoQylsI23 zAei3;QnW}?)SnQKKZYdi>_55c_Y`7AYJfy*V87vakD1zUbD@lrkk&Pvil*!R4y$@xZMQNCdBbzi&v2A&ai?^txO$*|vB1%ODkf7A#@FEks{?qQRo$tSOive3Ny}Zj#4Fe~Zs| zo^2dE^7f5z;Hj2bLd1uVlfy3-sV;_@9hW-@IxZ_kuW~DkOcbN$nL2j2pNgSNTPvD{ zinaA8n!x)S#poAWEFTyCID2y=vY>vWugAT^^-ZKQfp%oXZWDCGX%_n`vz1 zc_j{uMCw-kmweUdAG;0zkAG}5%>S7`>h4UrirlEN{YK%cd|G+jpR5)te%{TCgwr=< zuOBN2o>TX@0V;0%3E+*q8jOVXJW7TtiU4A##MyLq0GOmG(g2Q_jS6E_tl?tkr;^go z6~JR)xHE?oxl?3z+IJ3o6SuG3;b0#weiIjHJyG+J1RB2U8AwLlCaW-f`{F$CTd0ro z+`^o1swqW>`1V`-LvqIf{rZ(&yLR5+zz>DH_ksU%2h2dR%WsbEfJ54CMFC;7wU zgFTz;dv^1o_t`wdQ39|AJt1Kx{(L&=*sC=4Y!S!UpuI3Fd1^;o-aBE_?lUeE)+=17 zUWvy20R^Nswod3GJ5>ilvjGoN*<2A}Vz^^2?C$v$8RxN3ttaC({J6J=ywAy!p zW2#_iXg*K;+}!>LFaq4ar4(ZMjYIyOI~p|9kJbze>&Syjt1xQLOZm+y}1 zM70CT??pH@FY5twK3vS}{i?Y6K+g0yDMlszG5W>@ zbGB|KzDB3~!+yr==*!z*41f`_T{S%hhN_7M9S+BRHp#4u#YFvSkrHwhQTx0TUsEkv zdUs^;vJ9UQQHm{VI{OoTub_Z}pX%*OiW2hN_Mx&5K`V9C4vTy& z-)^$iLjK*_-+^>7+XIHOPE)I60nHiB7(g;u9*n)ouqxK7zRyBIsqbmO1DLiP>>%Td zugzw$p>MvLe)-@h<+~M2yAE!O{FTh>%JG8)Y2QJo!J*&enYW}AC60B&{3;im@%%~! z628@3>Y>ov58f|7d)m4jry^G8ww&&&I`C}w+2@NVN0Vp~-PoIC1)gFYY+X<9`n~nO zo-GixvXiWp0Vsw#LHn%SFE_aS_iSWrb_yd32m=tp?M9w}(~j_Dg<6M7q+b&03lEmU zTTCHIVUA!BZxX^D&#U?PJ4gxoiB=N~zVo$TQMoJc_WL8H>V+sVW9IUnx`ytjz(rJh zc9d9(SX`U$0&|K{O!K7Md<2qImNurn4sf<=J{GK5)aqhzVD1w1q8D+oqN#C`-IYE{ zHp>`GwTkxiTN(Hc$hJYl6FIB`)F$ zgD1Ba>&r{>*SV_H$e;P-Liw5d*9$nuf_oJi02!$;aFx8+2zIX**K%H4f4mWp^%94y@ zZ4$SgZk${H+N<0ucjujqwCW?AEzcAlx|0GdMY4k*n%iUzPGJ)+RK)fFc;xp1*U>1OFd zr=Msgm8pU+CAgTM9r>J}W6-9p>|F&d$IVtiP5Deu{9GomkeTzK$W{8vW1+pfgR>=g zN30I1AnqLsog?=tu{57x@&lV4#zvRqSl?j=8Da@yqwg>J5K(0%7-t?Ai~}~gy1uES z^3`vX!=|NFFR2qR?VCdnAIY~`Syr{?KcBIaU);#W?Y1# z2;L7{pVJA$s3(W)hhW8cb?o_zr-LF@(AFlR;sF*#IjRXFvmo)P(gnocDEQ;0sdEV?$jrO{ikXOvAmh0`$>qoEmNgqPb?BgGrHX z)NXC83?a_4i+fMPSSte%2)S4llU^vMKdu(S{K?k#3Y!BWiPAaqm=GYcRjrAL|E>%| zF;;UsAq8ACEuJO7A|n$>9eXW-|!_C8fnoj;qYzjh&3LDjkg zm{Y%_`B?a)_EPuC!o3F#!DOr%%1gnCakwr6Qw=yrTnj%60lT8=QyyRe_tvBaV~va6Mg> zY89XQ@*^sajS{DW6&0~7i|(|g$3`5ijpSh=j~bUNK2jap-45D+gJ&ga=`slVMy{Xa5a?n=xeToeW*>`8F8a@;&IZSlX1 ztTgEw$L4v&#?Ozp{M)=m0aZ;kx>-#g2-MVaziEDe8^dtp942oO{Eq@F^N%6j;=_Ob zkL|aBf(1U}%R##z*H64sEqHBh>cxk{;8x&+^V4hUS;w@XSH?yOarcBj17hys$X zfOR(eqRE$;znNOVSBs&-^d;nOd6W#(@D~ehZyV?; z#4!-_bUcCHTO#(v8-s@5*+N`+7Zr_zJW>bej|X~g9GeQKve54juSaeM`jx#m_Yj=qX@JAD(^WR@Zc%2?n z{7gh1x3Y}6ZPqP^;4iE}^+und)#!^f zpdKUd<)s0YI=hkUsjl^_sYiqNxU`2VEA>xPY(!8p`fCOY>3K~Ranblo zb4>FQEnlKhxg2OT9s^tDaX}f=U(sK)3 zNb&rsy014#6z;HPxEW%8d5%VUCR!hYzRSTXvemGi{swLR{Cq9J&wEEVI)47Mt#+ErZ?k>NJIxWrUC&5(P8J3Q#vd3=g1Hae>$h4WQgUFTRs=3bK)1v z7dq=eYAiTA^|{zmGdS+OIO{zZ>)+%W%k1`oWQZyua9Lq_xSYVd!>5_2Kx6&latO(T zkwfYs?SqhL&vHc$uB`y>Zs0_3I9^J%9XJk<7m&NJ*#sowD$Kqp3i$Y!(YrN!Vn|Th zfqqocR4fR0M_htIi#xiw5ITyb9)Z9fIioDo+R*8DFlXxyGUL*bH-;EFEXXSEPlK%F`zk?_*_Ej!k={WUE-%C1O zLtxkDzyf{Wrg5izcyx#;mYA;#Pxu^6&7o8)sR&4S*dNy8aNkc7F*F|~B&hlEU`&t} zNFAgJ0$0mZet1K4yP1y`(m|jkkl)YPpWjN311k+f>QQW~kTD!q;IW@;tBUj_loXKU zUTbq8+m2I|=4EPs2>hgv6}fIT@{-g*QSAy`-v?FW6$sZNgl!ObL8rim{M@-`r*gsxWhAudsY8(gJ|6n z$_oaC)Ix?Kb9|{GTQOEI8YIerd(>vCet(ld$rh(9yt;NNWrF)g%eIET*QZ>0M;3g2 z{CPiCsC&e7x{U4KB%bV{>IeP~u~}zd*4)NbHhLstNpg{V^7joJ`YEmfIn;^)f17CB z-7keP!@LKWG_2Lg?&)dz%!RNG2(8;m!^A_fSm2exc}|9g0_>BoOr)4v!Dt~HR$Fr1R5F6+$qdAI zRulY8brj>UgZ?|zFz9+$vzW2ZBl@m$;2z1v!th{(zoLv|=5wy1SY{&JW41s1eaq!W zyGf8n@FR_xpP^aw2-!v-u+f~QkZoCm+84yi`Q^{pZDV1*&>JyUeL1H z)Rgl#58*X2R@~`LlYlY!jzZt`)8D7Du==*EaPG9%r8+1Oul|srJ1alLLUzd8P)z-_ zA$&2*w5YKWBrUBGV3y=64PK3Ywe9p+h0iS%kU<_>`bA;G(XE9V zwNqUE9T1(i_iD~oDY^^XWCOq;W`NN&c1b$Mx6H2aZy8@-&KqcCP{sP(X6$D?F+2g} zL=F~EVtpTi6CKSjlpkK%de`R^N)yq-O2d4)+wa(2+uJ!*>&A3{<_ZNr4J!>UkxE3# zkW7coY6QDcH%__oxd@)!Cr3O+cFl?}h~Q43N&XKaF`Q}c{{WWq5zh65d}Ihrd;@ky z0H_(D(66ze*Xj*t~ocR(?}y0Mk31! zr6v%Fctzg;T!2E40Prg}&)FRXFt{}aCDZP!#QdqF6f{sI4lP>I6o|U8fLj^=hi>)T z;Ph|<2`qT8|H-qYaWv%|C^UNKyzy^Ok^Gyg+e&(U&!5%*AIe3KdS>xgbYe#T{Pp2FUeBwj4IF(wl+ke)ly?uPTCXh9B zU1J&-*o8GwnwMXBfR`;^M|8jM84_3oW5s}{0bRo5VuH)Ga6O~QhBpxuHj?Xm+_~)P zJ#eyaxDq~@cA=WP$i}&ADNi3OR8OzN5Os-wCQE%Wbe&_d$?wQukGUCGM zISf1hrR)pD=sedNNjU@9%;}3jYNWeLx6)!Z%UbB0k`24ITGuc%TaP>(?zUAlj@|e< zQWtK`O=C4tQ&I~oYHG2P?)&|++RqAcVB_zoK+88DCN4L|1g0%Hwxp{9tXEHa6N_K$YAb!p-f!V|E2*z}&*7-j5#w#tFm_M~f+)rmrZPF2r4b z1@!j*(wa_LEp;Xjm%Qe`jPm#A?y>)gX7DQlBCj z_x#>afe-Lr(R-W8uPzmwNA)Ddijf=hhSLNV8V49duIHs{eFB!S1z>N1_UnXckv-2O zra(bHeqh5WB{i}0+cUlWeF`H6dFc=Fi=ET92uKMiIuIZnZ09PFlfijg_j*YaBm^94ngTfY=9i!bPpNpbZ_vII_dVs z()63}-Cy$i-!#?a)eVN+^qL7ToJ52hhrRXj8mk&KzN(HQtdlJ5^;-X{#Tq*#`nno!!>$i1ZtLOkU%IgCXfPi=D_a{Wm_W(U{{eOe z5emMExxKm)(^rslC-O-+kG=AJ{nE*#>A1`bel8BV?y_UWy^@=E4q&>2&$(}k?Rm@U z`WTw%(I5^!afKcsbO3Sh7LumLlmNJj%*owdN+i$G{;yNySc5BXA@EuJml@aIHOS|| zw9WF4;dJ#!yd5A1r=|aN5%7*H2;^4d+meO)!Jv(dJwj|x_U(&QR4OIAr5pQt8pZW1 zJ|}%Un;6vPDT}XZ$d%uko&T6#f7Fu&gT=i zQSJ6eK1s1q3yZ1;{}xLF9~;c0o^XY0eENLGH9IKxsyjgSKtbKTl4o)e6}b9u@5nod z2PH=S`e=Dyflrd=>L4FD@hNX%rLca9iU}<9Fj&70gm|MOP?Ggb=Gc zU2-_1Jjizb7XSa}plJSF0epqXjkf>XFx_BPu=^^k2I;9PW)-!TGU~$2;?3V7~zlFWbpld-GAC870??05(3P z4I%7kVSgUq8(N)Ob0_SzHAj0>J@@&SRP1##(RL8e27Ve;#xxuZXB~ePe-J8u5|?$n zC(ad`sAoYkdb{NSxXHB|0TF@><7(1O1Hi0cX0*ac+h{*iCbP3W0vfhuL60W?p^Oz`A zL{Vw|ePElcP8%EI)6d>rc+*hlPj_+w{_Rh2pWwMb(#ASx=gMv7tnP>jxh zAXjDw%B_A*FYKOYlok;;ee3Zws3`~~feKLkQ^kJL2$*)hO`yCcV$}ZhRuy^zgk_$V zYExe@6cn0qb6_7QS<-^q`0wb?f!S$RRU!=kJ<0JA5S!f?eg{Hbq#6{$<~AF&pA?bG zk$cA3MJsM6dxOFYd6oT@+zZ@h1Y!&bX7{lwb2XafB%{cCfNM}sa~U@;koiCpf>Xsv zvS)N%r#^|15Av3PEfy+|$9laJmK0`t$^lKl=N$L0&kOMMx#l=h#aSOzS|I6MCu79W zKA;xi`wZY8P6w8W$ysyE<3T^T^WG=BE(XVOY3pNOU7rg)PQK|zn&!&u5T;?R$WL|F z%|k!00P<&J?lCGx|92MTI0k(``DvCP&^URW;h@+W3F`V^(}I34NNw}WVQ%sOWKSLq zX|!)2JcSs?q!gS2v*5(NF#{nSH(<<~@*<{~ThxL#flEIFt7`f50w< z1I9nQ%=A_IuPd;djn^}>PbidffgEWdiVM#Bs)I)6{ zeDHMctJPQ~#TohnXua#Y88~BhgxWArVO)z2*;H^1QfMKN+w+f1gfs#>FwH8?_S!X?^%ct z^%RsahGYuBEFS2AewjYH3%pS)SEdULgtj8v_~dQeP^rC*Yb^>hgT=UQ6-sP3Kx52< zNhk*gJ8=BMv8`kG#{L+K<-a$}zCX5|{k|nRMoB16Smkj5n$2h(63c{Z4HM;Ed9u<1KBzmh~B$cTZLzU`Rt3=?1 z7hhv8Xl_sKA6@)yS5a0dM)HKA4PapxeeicnjKm8gN%DKss9Bb6cARtKFYILw`;RS7 zGJzLOxIr*CA0=M%cb^@@G3#qPH|(PZ`Qjq3v+3zy+}8eEEY|pJl9|67@CvyX=@-Jv zK+0UIv7O17qc1QAcv9stfLmHrNBK|y8Z(^0H>$WdUkU>0O>_l>)pu_vvu%Lz3ks}~jdsG}E-DpoYqaeLCxtOcoki+u39nEiE` z-qh-9%PyyOP4UoB^}ki4 z!Da(!@BMTT>i`EGjKyv4P}JL8Zkyb5cCx4KmD0j<3fPb9SD?z1YTyb=ZaYDsB2=`A|%eAD&&=@QuMMILQHHL`3Y_LC}KXgM$y z+k>d|)6qU?eKht0H~hwhSEhm6-HE)5fX!c!v)pmHr$q63C*Jc6tHCFz9ytC{VzcPk zc54HSOS{Hug`FFJrr<~AE2XemmMwVMwH5|Etv3yTv$Z%X;9X6qX!Ls1(E@`mLM(us ztb&V}c^>J6e>gSHeh?$~SJ2wJPc*-snR~jwAJKKywFkHPR_~%N zW-9*&5Y$`V;ks&<<%)17P$ojD!yA>NneOPt0Hi z9$xF};1?+E@MQHfoKU3-vcYh@se}z#l`G;lE~4qFI0QQ!<({NFbl$`5zZ92?CLaE5 z(J;6Xuv^WoLI0Y6Luh&Ya0VW6BEH+=xnO|}S zA@mzCNpwd*^)smKVwPk&lc@!Y$22}LM5gL7x|ZQ?4&p_e9sEzH~#rG`GSy>)8*wu5}x%CdA~~??~-~ z(o3aN0soxV8zLO%8xR!XMATLVT+;BCO6VJX{Apm!sc;>Wm#RH^6mE?)izJS`jQ@jn z?Wb!JtBUCuJmx2;T40qGJvSM*r~O+KIB}&|O>8UQT)V-=ddtP&@pZPbeC^jY&?%0s z(=7x%Fz)9NU6(U(n(bqr3uta7wSz?{IR)eE)vIX4p32Np$(%7l zG9)BZGS4Dp9+r8$uaEC{|IYsHz3+4O+4nj3eg3%rt@W_h`g}g?{l4DU^?E&DCFU88 zn~(I6QfGAhl~W4clpA6Fl}LdAu*nGWQtrKQZ$g2VCn`f*i6YSlV@1}?Ek125i!w_PoPB`oQbm}<2T;^#`Mj(O-$PlEk5{mnB%eB#9i z{oyREDcdj)A;SgT$&4>C*=P8x1TM;tbI^*hrqVU4JyU$XSXwT z%I$#&hU+g(8CpYDRdjVv`O$?JhUqx|-;uclE)T6drb{a)utjtDaUf6tBASu(yN9EZLzHrJf za6*mocQXhY^uRN61?xp2M?qa(zp9GczCX~Y8nM`R5IE`UAl~7|DcD|99UfO_@J}my zd7+a18C%KqNscdJA~kwHFiF?OmE@nIi|Yz&)k5gG%Y#lVXM~?FC+i3dThY3HHHPVBcQfP`+Ny{>Kmt| z@)Vd99b0Fbm4M}R*MSeb3G4)_Vugzr{vb9cEnND3gN2yda{kZjnz^~x;US2#t^y^F zg@@u7+PxB6`nQ&bJt^~xFox^c50b^287AZfld zBhlo<5Xf+IfdDp^{q2@lfg8xivU^k1xMtmXq}`#aQLw?``xDI}g+*3u#G_xjaAqRV zyh0u%vxY60a|@dH@#(umY`FMU`lk_$HDF6GZ(gG+3q9i^0Z64^9AxE1xBTUc<)bOw z-ZTsNQSyzq`akt`kWv$^4SSKsP3pPEau#*a7DMcJ)?R2bqoJz2A`1VORUL82YWahr zR37>Xi$~+v+F&GyEC7r|%7lc3-}{*mY5-j$cnm?9bCcspajf82rRi<<(AGfg)2ZMuGB1n*Ift!h zYAfN^GSsm9J0ycO>^HgrYt!UTIYeds7Bw*L2JSiMCTm#OcfM^BvSUz-`9qCf$bRrS z1;)*&u~c@KvnGZm;dWK4N><9Hr~xC{2KV|h7^FMAKheb2gwvO|t)4u_PG(J=SaGuK z!Qq5(6JeiXB9T%WNw`G#t1R+h#qbTIqu4ldYq9WiWmZ*@>S{Pm+TIMs==n`~>#iJE z=I`}$8DVfkC7ZAZnyw>!CL<~=wccio;!3)9n-8jatfd;;GAU;aM^=kL9=rar#ws^} zKZY2o^fOXo_zYBkH`bkurN89ML2b;}>TWD&ui7J1cblC8->fqcRe?kP5Psdf zbyvnBGSM(G9uCz#pSmw3BgW;O5}ZWWl_8ljyIN83kj?fbs)9hCbz~SnNmW$WpqF5n zDnWGlk-gBvy(wR1!DscTL#++hz6^x>4Do(>L9(cG?z`?{VSg-g0ei ztk5Ve(372RE|Tw(#9gek(f?R5*X|s>RCQkHchkuk!Y(t+k2V)msi(7#0gYH1WBt;B z*ywY4bupUTTFg&>S4eF)DpEtCQRcx;1yiJQA!Gj?{7w9&h3nJkt6#3%ejwguw5xIX zWsO^VHMIIUo%hm`Z~gvv_Y8A|c~fkLWb7AHZ9Q$iisv-b*G;z91vf=^B@Iq_*z}OL z{9W&DrL)mo5TAZ?<5y$77N6~|yK$}7CEM@%>D>5QEZO7JS7jTgOuwiF&=dGlbWH{{ z$LKXSCpFw={Sicuk6tGXHc92-w0T_NAf(R2Uq=Y5)+utbDKTE$>lt;$j&C2KY?p@3 zF9^T`I@}KzO-+oV4%rIpm`kfayKG^8l=Vv7@~a-k68waP zt^NRsGTuo+uT9ocdgq~XTV%;y?Uo>=i(;l8$GOgfHzeE}lU8<#^&8ya!uFj~T(C1i zZTkE9;F;bilS=_u1KegBw|F_(Sd0VijF~lMz7u}8vo2|`m@9~(G7cJ10~z?6P?8-q zUb%gdUb{XA`Av$G%(t(49xt;+K6(Zj4X6Q8qiSK5cg)WNDaJ=%qB&)c=KgtKm6V<> z54v4i!ym#@66))L(X08 zd#e>)PF1Iyafr_DmCx>CZayjgOaZ7kJR==kdig}y=nzvcHViSg_!XdMElYRwo; zZS0*u_7u*qUKdH|BqkVXQ@?F#V+DU+D`xEx{9n|kILmpzrvvW>G)B~4xT=aG!oGx) zXU?Y|k?3zo9l_w>6W#>F1moWg6K@3!WrXV3UqItWuDoBR4wqSAMf^W|w2*}!^ZGc+ zvg2|SnT>}qr%1fp?ixdB?avlTeGmW3zyp08_9=i6KnrE~9yAG(jG-I;p0&-y`(_-U zjdQ6PcDl_%5BAnSADRENt|ZO&hiur9aPyreUrv|qClM|7A1sq_Z~O{x{`03}F%tjeYg^zA}jd!fQ z%G7%_{NZ`_wBIvhY*{K@YBna1>u^d|UEN0>W*)~KWED8}P&PNNBE}&tDvalv%A70G zD7LjcM!6p1rdYJ-1a;Dta1C0n@o1>zbojD;ZnGOy~zvY}u^@B-RW@2E-y8f*-`wppQ4dUjDyj3eNP zGoC$v&>?%|i2$L}JG#4(`ON2_&O{NbpZhs07sQuMf1fWHjJFinPBJ;3@%+n2ub?_m z7DXI3GL%`A+d@nufb^ALhD&Kl3iFV+>j&m*RBf@xy?CYKRWQE2vxRlFlOdSh*RP6J z`>_2~DTC*+3#hSW`Y{INW1pKFk+V_22-t?QJv!f9%l>q_8IRw8#$4uFOt!hwIT~1@ zU?Grzrlxi=!U4+gM%+|IAZ}hycsL12>_uKgQcNcb9-vWEG*xsA+)xRinWD^HN}(M; z`q1B1;VN)GZBCjS^niIC(-cM@7a+)7iL|*5Ufhj^BG$33v0LJDu#dwRr&+u9MCgUH zzk;$EpdeW_FviimATPwZ3v5&~3x-62&WQA12zMrkU|Hoy#8+b&Ry9C(euVy8*Klx$ z&V6TX2k1k+>tMeKwg|W{7L{O4&#zkhetWOZES5m&A}aa{w)S2t(cE&X0#!T+}6J(?@4D zF3a-*JFiNX9E8xz{$F8aFLyJRN2Okw-S~+orY1`9hi8a`i8#^e`E$!IP!8QbpzF!S zcxx>kZvL&j$2Lszd+k0?Vbj+?! zxQ?I~%W~(Atbf-iT@yPvkOg;yN{(@{peh)_NT2I}KVsp7cD3)70h$cA+2l0^Hs7>H zKMu{Rn7W(e8h(zuo6n5M6e~yk8wF5Y(zu|OBYEg-%|LIP6C}#?YKzKtvkiF%9 zam(FQIOQ>{&%B^x9Rdvd0d4+kjgKiJSKMut2k*yQANTeBC1wpkRBH@VRjF5?^(+;6 zY!8l_$PCveMpvrL6qmaWFq6$#LWGSXN;C28J_iLyr9Gu3N9&kFEeG&}0BsFB?oWCi zab`Gg#7j7tUh>xvxnDV8I(4XKa{qAC?nuw7mt0Y?c^h6}HsB`bR?XG2u_I;6_zN(wyym$*pxM(+k$| zvc^Bd;6;qf(17Wu9fiC&mYef@tE&K(B{R|o6LJ3 z20p1~>PsdpDX$@XxZhDud9$^$6vWYIDOSbD)Wq4t9&*ql^NCg?bxB;()Iy3@rPnZ4 zc=R(}#o`Gf?}w)PVt%uds%tqreTU4R^{OjqY#Wxnw?5s$ywNQ*s^fd71y;f>^|8xn z{u^C{WnefmT&8-AMII35$4+dU=enA$-YWB~d9@VUc3ayoC=&NfwIc8Ohv8fDmi$uWSR?3;US71AzLN@}`hEZ?O-5vD*Q!QNwg z>rco2MGN-7`|2R=XMh)F_xd_Qe}GDMZ=fR>;QR$5jpNtsg{T5<7R#q8{a}8c`CHH~ zu~~pb-r$pQrFE`nWozK!*$9?bwx{K-wZKBAi+B$jkXE4s_ze@aUY$9RBD(8t7`QAA zitf^`^v9ATzAp~GR=xBI}xFt;>WHRjU5=74&%H3eq1h2g`k}_s<7aa4;45F@+zS;i2BVoP zH=nv+*OU)R3={9&RwaJH9!B*qmj>9sY4P3)tGHGuy^H2dr^y+}zcm!>u884&LUGw$ zZLL9J933^5me3IS;3{gqg%;b(XwIBMjMR09$r4U?y z6yy@ZvYW2s*X)$0vYB9uyiC0-wiu`?`erkOeqI9H=fce3N82f0&hZurK3o`b(a`#` z70=hC?2fDqwwcDClzuAx5;}Nu{=%Wl6Q-A2T4I)O249IKUFiI_r}9(z!QXdeI=v-H z=VgnLfx(oI1pwwbt|<5#Mb##sfCAQ4foXqc?f09i_Qe-;X#iH~6~XYmQ$c!X4pXmm zGQ94j+8HQKNYSGj%si&i*xcRDk=di<2ZpgpEYVNTUV9_0>yW%E;LBmG!KN#-1o~Q` zzvfVh%@;SdHxf50RL(Zb zv9p|wSd15InMLxM^|4?Vaf)G5`_LS}3VJ+EhE*Tl!S6@&2&Ehm7;b zBg0pj)bF}xMSXt@8sv?pB+@uAOp(&|j~?6Lj#u%wQ|X8jVTg||86gWG^+pklr0-xl zIVqHHNDwj1>N59Qx!!og9tIvqWQF_Rx$pebsP~`WNL}(TfNN~0W_kt`F#nGy$^ZQ4 z|2K}TTjkU%37Fi{#HU_rxo{(1vg2Ls{l`(uuz_k|#!*4NZJ2Ad0!pCUo_o-R4Je)#?B!;R0k-)OLs}aKn3$*8wT1ishxY6)CNAca#%!Q z+?c34?Q(WQh7iyaeC?nax})O}FmZPSCS~V9^zr!ETnigkx&1HozOMO#n(BBlI|D0o zGrp>oFESDSzH`5K^_=%_OF&ztYXii_fFDRlOt^E6U>NNxjov$h<@W$D$6ZYD1bDM9 z89>HD%IP5y%=J%*2*ns|tniswZ#DGp~BKDrG$_Uta)mLi{`;IOx0T8q|esS{4x08-ph}Wh8 z2I9zE+?Rl(U^@;MI(|MunDPzCCLy?3Q0>sSlZTJ?DkaARe9QQ#~c?PHFFoSnj6BT~DK8U8KC zYDzw^7aKz!&n)lRPoVe?K@M_iHI%LMkZED#OswuRGi7u;gOmWDh50&m#xCxuz|> zCcuFB@F7ww#EU(P1>=u_ClYSNVB3#R4a~--%}1XrX4ihdkb9LG(i&%>^oyITs|G?B ze!5g6gkUZC!o^J01WiOaHk;i8e!}F~gv@)|b?4FN2V!~7_}*lv*Ph=?8r$bMsS?E{ zjcpaOU@l5=`>A`UROVY8`GQFq-u(HY3r$7WZOFRZL89>_qQ25b05X6+=rdeLb)IU% znRh}Ao&{BFH|7X7Y0+_dTZRX7I-iDHP3RpdO+T|eEs#>jZE0~VxzA=lvzLeGtM$ij zBs+x$#0`?(1EYXLd_2c2uQsyQV^flIFsK9m&Q|Tclt$`P3afDC^HIr{9K z(C+#r`9*6*JmP{;o+KZPsFEM);SI%Ht!)>1I?0wVu~V8e7yn%&WCIQUJ&SuqOAFNb zItv7`VN10eX`Xy*wa->>mF_3kFxdG9@>mnZN<>RY-Q(59#~N!91x^7y))d>Jv2 zb}jRFPP-W!I(hB3)aL<2A%uRI_zVdvS#&Up-H>|mq?#URzP->vukp^~TN1`Ru(0Nz$=&h_YD;l`?rj90u6kn6#uMsy2u66-S)!4o(j|$y)8-veI05 zkap_%8CvXwUvq=Ft!ir^y}QxqFshj$Tu75g@AFZn5sY@_jFZl|OVgKXN=2$S0eZ@ySY1&<~ z?-^F=@o$np?`VxnA{SdI&e@Q!4rPBL$RAL0b^*gMv|)ERZKqk=u&ZdSTS`pWpKuEM z@aSkgQ&w%V*i)Eo@>KJFxjY2t2zqhQgk-*-^15cjg#A4`K6bb`mT`hiyGbQH3Dq^( z*yixv%=R}s2@f;Y&TNF}10f+zpo4@98S)%z+muuu+&#zB%j-1a%_;ti=HkkP2U>dL z_F_4{Vr!DoGY(GAB`fA`wLqIXM?u5X=#s-MNj_b4<9$&0B@#5_#Gh|E-8C`%sABf| z6^6c?N|Q@X-fvbIH;IQ*=0V#qqx?+cm9>CPZ&aX=c1wro10Q2Be}A5@btQaB8)!v? zok^Zf{8IXMZZIx)*TDOrHA&6IasM}=xSj#7eHmWU4b(H^nvyUHv^WO0nYt|rmx!i| z%fw6fdYSXMTZH1f(;_(5K9*PG#k$@P1+1I7u~VKkGt>?XacRF9-Fnv>BzhYbgcNusz>z5P~!d(9CT9+^Q z+20u@o}uk}kwlIoWb?k_TWkz*>dURZ&|rE7YR71b)TiXuE5Gv!9=@$o&7(%|m5XB; zdtYUu^KRxD@`z2YJquebeNZ3pAtlF_Y|4gU@QWkcZ(wMUWf9muQN_?R%7CKjvBHJ^ zsca@9lJbEDEpEQeRpFOYVLSM^M6p7+WEpjB8Ma>7ORlyuC>(F3hJTxp^AXQ=;kOe)@)r(&F(0yCoIH3hg*B;QyEQc{JVZ|3-OX#*Bbqx@0QT;w zM@v>UPF2?*aimMC|*KNzSIysHtyJ4=J9;aIGk&)?!R}>_^Nn&nh4KPqO0f)E0kr z(0INPW+F_%8jh*7sgq%$HI~pbTjF+}EORm__Ngn4!a54{akk@Z9yc)q2rP340;Wvj zy$H+5XPf|c(a(`g(7j)nUs2xIP^1{fv}GQCW|Ol&PJhhX{2y!6DQXEG-9nc8JQc5n zn0l)9dAN7FxL?K)SD#5ej5_hsP8G#Cg9`&o9s;Zd=fDXp%+`!+9VwInvrXNM8sOrm ztRoqleA99=nf|mGMeoJfAkKlJ;UZ7{4+HAX=(l7;B*QEfx+Nq10S?#~Ni=BZdK?0V zNL$6>+q!))J2t&u+(^u7fSR&vik6*`BlEnPCFuGxVz4LzM zIg{x;;TqK)+rB0NCU0t-XPgeDtLuyW`vaU?bV}RiHm&X>JDc-f%4C?u{sH)b>>O{4 z@yWBd`TuB_$x2f9W+KmPD$;k>hwnS~TDFfP{AQ%RllSVg#92zh>Asvb!B=d$tsl;e>eBeS}1W>tGi`E|CWr|+qYN=kS; zq8d6djxmKr!}!@6CUQchC|wTPchf@9;_d!Wh+-I%2rtMw$onFgXc&`l3es=N#&s{^ zj7vu;YtA*=%v6O^f0L+5*fPpTJCKm|HLZ|*bYKN{LlA7ZQp`2Fzse(Eoj z>p2L8XO^HO9wsY`zIpEyPJeprL9)5#3BKsztR3}X@$zgC1K4+koro(dZ2c4jEXlN8 z+Tmf)t?{NtPotN0IWsyMlHKhmK_D>RNG^82OskdC-YJc_jubs_uHN7}*Bj^jaF?Yn z#8hK-&D7g7&C)B9pACJ|# z!PtI=tR==ICHvfoy^mEW21EV%@|wab)wsz*+k1r_dS(5+S@a)Mu+dvQweHPD6kW{U zHn`hym^d8r1c=+^DReAxVT=sLNj38h-+^BKTESq0bYh~FrIq>l^KHH2OFISIFfv{28db@SY z2{rIqmfAb^)v`k!r~3ox@?TDfKC%vyvv??}?Ro=OX(N(oA8|#8c@C{U4(@3650PnM zZd2lVtYvOcXCIp~H6hf}Ci+GS*S+jwmod#e6Slc1d_BTp_pYI>TPr40SJ>*82YVd5 zLMYnfK)+`3fZpLd>yIvkk;Gmh|>{S7dir#S-UN*kgYcrIPbF znwV7=@lAO(i2lyz!9I{sCaZn?y-9_(iLXiV{`hEnWz4riK2OZXYf=1vJP10eZ;B5b zom=!v$A~K9nV)Z@MY41=vbh)g9wIxz8urCOyExPlZ?bQ&>^!2!pKiWlZ}VE#*FZm4 zJYu$KeVe}NcKCRt`xXAf#-chD=%o4$sKTT6hqLc`x7*}jR^_Ll6$tgZ$vQqIr5f|- z`ti^I^ZqXFpoDikwOW}Y{twlVXTFn{3|&um;n#^xYGgHh2kVD*U=D$rHD&Zof%j`` zWK}WcC3&GkW1{#?XNCm2!*06z%v{_{TBT8{4fi#`tT{b>7Qae^u_En@6Ax&a5mK9v zzvHdev1P(wmE81*-MnaVyT#=N$Fr}rd2B?z_C|m8pdMq>*(An|TVvj;J48*JHoCTm zS=>Ir5TxqAvU@YmO^POw7ob?|z^k8lGs@gJ)kp?Hik@d~!6$8(ylfQ8&}U~nimW9z zPtF^N@Q|s#@-eHn^|GiW6FV=1Wv3YK|Bfc>T-q(P``&U(DG9sgoj-Vr%62zN-CkX+g?h{Gmt5DE=Mc%Xyj~J*RB$d^D8mZ1*Nz3?CYk z`SURK&+;&fvdPdi4gb;WAP^G1GLfR}zV^P}=!283&M$E;W+&~w>f)T`slE=mExB-J z3Smo~z54atd%e{^_IZ7B)C(DKy!3iD@U@5DsQXODcHG2u=#6rZ`?x5Vk7lQUB&XF2 zot8S@YNYxe$^luW+4W_YJ1#S&_S~QO)b{t$l$-NDJAL$%QHx(e9M3s}@VV(2MuWzi z9Swv01I`DXLGLD!Ty@8=+Xd^|=5HuK07G;CEtY1MLjI3TG(1dHnx80285Z9RaFmMf zpidtC_`8=7<@j@z>IJ7m^ph1n9JQeDXl4-s;cU9#K?3Ih@W|S^TH*u<;qJU1Jk@JhD+CHvRnHP4>QG09E%u<)TM@5e5FN=D+qK*nm zQzpy^q;^Wr9g@@W_q4?evK`1i&sfd9NXemU4xR!|k{w>xL-{-7nPjun{8!duO7~3! zy^~VMYJ7lHr0KKbl(w(rY3Np$aKu^{QlVz-KA9P%7pQKKnl~sqF1EWvpsOt#HK4Z0 z#Fi|z@F`~v`a(MD{zv3>=zv~#$fbO8M6Sno$f`HKZ6>oXY}2*9JhrbdAS?A971)Bd zxj_dQyJLZaZ|dXyDkj;!CZCmy5ra;9x1mz zS$~ePo5Fk{?m^4+{=%p=$XZT{9poOeYNzDb;CWl69@%s*9Z8tq_|!yLCwBBG=}U*s z8hT~B)hE;Rs6qC1>ng@y#dI$6nU2lP@Tl#AAr^-WLosj7*n?L7y_FiVN)faQVwpkq zVxh>GaJiTxzQm(G%~U4r*zHN#H*5F_M~-b>hJFcz-;wj^q1Fn*211$-+04GYN1ZQ^ z3~ty{qeF-^`QV&L^Dmm#heML4ic(m{iK`KQk=#}5-}qD{he zWbTT9uq^06TXY*?y{a96M!+}-3UXm|V^cL1{`d(_?`#L%i|c$AX7(J0LDQ<;gleLk|K=kZegzzs34;1|Y9T@BYis5ek(Ego|8XO^Hwb=a~wYlzh79M^$$B4n;VPVMH&t_ z))T*Fvndu3=?J$t3NE5n8ujET470ceW|-s1pZ*}-f6J0;ymmj@7l3=|hoMcfK^M|E zvqDc~p?GnVa~|=SR1ngsFcDVab%h+web@5x4GLNCc3WXV5mmz zV8GPc3io;dpr013rmq`e03V-;Ka}RKy5Msf#|_Z?N1wNj5C29gCDgI6J@v_kugI3+ z46$wU%JWSMcttCQ;~nTvYxLL5 zss&%U_(w#ofoauq3@7$h^Ge$1M);6)-~$B)w*5fM>83*_=uXjzQREZ@R$w_=E~d3f z#`LcBe5D0g=c`TWZ}~$^3=yTuxhc%yEJjln_bA6C)g){(#u3(|jM*;sk^-#%VypXg zA^vH#3(YP@GS(*f3ZCH{KG9VFvXmr0MrB`Qd6C(SPl$hQoh_2pZ5)dnp9l9T?a8(& z7syfgxR?CsafNUN{Je2bMpF-drSv@McRh82LiefBUl_8PW)9zzB1EczwKRZGxY=?? zg!gb&qvy)>g>P@TiA2tOhU5EBadFZM%Ag+*U7f6vye@PJ*D&CE7$J^W9YqV8g?cC> z*}70Vo0YYeEz5LtDs#AdcZGD+00=(ozvFgRq%&@&ojzox91D{R%@AQ(;W^Uj2NiHe z9`jJZR0gvzR}d}^Q@;${qk6ppmqZQnuO$b2l6=bDxO=f)1eS_~N_E@pmz;;P^J%qv z1iuz2Psm_+uz&R&HaN;S8@? zC{N}NA@a-XiV2y$8crutt&!RA=dMh$vy_F`C~9NOGBiYZQ)8=X99J_sUZ9@HgOI@GdB>6S6fRZo+ZCk zVjE>m=H`FU_;@Xy81;VX^1%44fXHcTeS7&i$S>^@!kuD}m#zm<_gwfH+!fCXn2J|r zf5vUO_CxPu${a{eOkRA=tg*psWF0UvSjd!vJYx;GnjjG;n(oh%B)EXn92c?pswF1O zvvPqs+V>Ll4MYfhXA6@TVw54PR_%e5y=M&J$#7p#VLQWWL%SDpx8ldxj&IG;Ud@<= zv|j2qf0ITCC+K&Mwaca~oQ%HY=rSTD!W*+3{TI_%B5}~pM8k3d3Wah)Tz&+&XA*y} zP{nhu;>WGtRDy|L8Tm^=Tl^^DbHQ?vn}h6l;|KV$frhsxq^2IewY=L6rZE$vyF6Bh zUt`Dlam^2}gs#TB3Uj{JBYSiHDd%r|#SgjsunN=)PvO+vy4beTghKHT4 z&p4z*wc@M`Tle2d%LL*3dVp+MnP)a5(ppiCH0aFsgA-*U2cW7Ml1&_*x&RLfpCnw$ zGRhX37Rb16tH}vx?fvxE4Iy!igJrj~?x$jIOKvF-z z$8)C1Z0FGmGbC!4Lx2R+>L|s$PMq~^Ml9UTe8CZYpBaLz&kva$RF#TvLcq{KxPFp& zbxydf%G;Q~AHp9o;b{?1Ul_fR^EdhprjungQ8$a&w5MNI2yYNI&Q5!v+|xh%u#>As ztg^jGcR$R>bDtinF$7+I(fL82wy5CM;g``6N?Oo32dR@siNm zOE>C5hxtM}8z4m7`zfi-8WbhKo+cJ)2yeHFTtzt_>a)W;~n-$7pIQq!C!XR=Mg z4G*||0yEU`$=vNp8yDxdcHHk8lGM)KR?D@e9jg1V{V1OSt*J+fo6CUCq`jk5NY#Qa z)c?rf8As16Q-9yoLCXfuTSsFod)9?BHEKR_h;==xewR-86P$MmA4R+&is9ou`lf}Sd>iW_L%yvNr$uL zbS*3zcwk>DE?>Ciq{?}frFvRT~=9X1)2d1cQKp6?zs|^ru@6Fc16PQClD6c zk$3&Qh8jr+M~7N9q2Nj8?LzUrAc31ajOAB+ZFl1G%0ZS zam?i?kscdf3`dM(&GzfI3qkQRK95$9WVYT-_#D-rY2aUq*GrahaJl4}!CX(%^h_Z- zAiPzC?CH6Wcq{L=BhrJOOfKYz)V=)4`_0~~%R1)~P4e-; z9McXYgA1#6?a9!mn<_D0%y{4MMw>pQsDMw^XBK3ZNIn7aC{SHoE7h+dGuOK&w*dpO z_0tV0qjS+)h#Kk>&vFM4cqc&iU=yZc2T%_rf1qz}ZuqB2Qt;8^oevXZ2HTda>jW*q zYWF@;M^u%tp93uRgV6eNxYQ6y`K4_cdd0kmJON1^JJlDp=A3nD zpda`-m$c*W^f>3``;0h~Mp-9=aQ9et-unwt!C#uX`+IF2!JDp+6uT5?i&d|?ulmUD z>`c5u*H~v`%=isM>h4_XAtUVLsqzb7Yx@a zyTpeT;R26#W7r|b-21GFr0~UBByZz5yh3)R77ySX+ZQ$pk_`FKqQ}sfG*+}I7ZN96 z$KnW@bLunHd^{j%>D`k)Ew3zvZ8`Xtr0A4L$VFw-~1qin6rj6-K^3s@(M0}=4chDl{sB7YFk zNT(g>N*f?h0VC733~>N+pJRJ>d{SlJiLbtn2<9ECMjNFjl=8f)6=-~*uk!N;lG2w% z+l(hxSe|fA=q)4zUp%>psCB$Iat+`8`ry?b6ISky%+e6hGDfBY2oy+A#ZR@DN!-s5 z*-ty*RRaOIOZ+%+BfN44>MC(i40IVz!)dJug`%wj{l!l+iqnIhO|G_;vl-pfpHgKr3PKNR?E#6u&T%4nChHRk6v?F2+p3hUpzh-LN)>o;^~p@gtOFzHZ*??} zfTqsc^KC6*M-Z}}@Ti#5yW9A6UReXYT4>`FXyz?vTI#8LW0nAse4!`R-e!XC0GtBv zI+~b$JgtIz4m+gsrFCiw(}3krlyFn4S&(G%Msz>`z>md*{1)A=UJp|Ar!JbEHvJYB zl|+vyH;Tl~;$EpE-DJGP;4=4Z33)_5G_H&*1B?a>aphX`ARL1D?Yujo-_E_rgcp`w- zWes{&*ZW!m`-b5jWi)%1=rD)vBjkr5@sAt-E1;o`9#VK!M^Ms}r`m5$Ja)oPaxhN8 z(=*0BFy455Eiytu>qKhp>VXzox)cc%?=njic*+?nHf*n8N6A6)ta>^w@3{6CBR z;$o-gp~p;0M?p3vyEDITVVc;$`27f%nYi4Xf0MvL%!upQu7m5wM5S2EsKz{>uK;e) z=(?H91y#ka4EaRK*!4_N-+7kivzR((zd_POlPe?_rwv7F^tFo}5TAy3cgCj37!2^d zBxPc(e`8z5w7KD3wj<)IVs9XNf4aMnLN{D{VL-0ip6rJ|J+s>D^4BrKWbp+CpPytt zWE+%o!d4+_nC)(JeXwL?A3-j(riZDFQ^`y~t6E~*4;9IB3oIi%RBq|3jy&-ATobFn*e6)g?%1Qnw zeQnf&{G&Z-73VP7&mS}j_2aP8m?lTkH#ttja zPB*H8WpiL$sx$qmC?+`~~S(7`ad~w_AcC_%is_3Z~nFmw!7PM+-zRQY)tf5h-5-nF1i*HC_ z=Sfwr_f%EX#mx*Y?dSaK43YzZxqJnQd>n0A{JM<`qd45TxvSP@-Ur!9{C(W9A_D3o z8y`aFHFl1yzZPih_=vJ+OK{NBQLT|5`Io2vYDb(7vS(w6iRp;&Ma~OHO{APPz>T;H zfmF6{SZ4zjDT=HYGbUP_W~h#aRD2dbtFI<_pB3tiOn-e0IQ`ETVo?Ky4-|_28*nHV z=UhIk{>{Ycjqg_?f4-m8Lfkn4AuBoBxp(hJcT4>JpEvM2|KU!P z76t{vWFwL?7r6oUQgz}c-RY4VqUpXX{ZWVroR+^9(oUKK0)!$MRYm||yNb(W!4+?9 zE{^@LzQAGzw+i6b6Ci{feFv7DcOn7lowni^=`ZW#^Hd+W^vz#B>PNy0-sdlSfv}F-I`@!nG;gO`5%uKS=&vkBnA;>|G*{uPue>QX1!(Ak6=s>}}l83nk69=H* zGLgsYNM!vg_&drfgC_uxz@1+)4OtBy0AqEI0l(PD!%2urvT*Jh0$T69Rs^!Jf~@ob z$Ryp9fAnd6s$5=C6x;%BAQgayoN{vsj!xvEQqy0HF+_(!!S_)t3IT(h{;9$O;Xpr* zU^n?$8lX51_6GH_*XJRD>JW@5`VPpC-wLr}>A)*wX6e>I=9j)K@Y(S=LFS!ez=`-- z0XsPDUjdtyG1w8akD#21pLYJvotd7F@7y(&*tErkaFOnABBcI+a3;{Q@d9V`udD)u zUKTC-9XP+5ND9L&76^j_bf4^?16|qtS0W0cb43Uu6JO5otBR@Fo<_AD!x*-Z@xkL5 zPf&e#nOQ0#vf%Dk9M3pTm(V2sGh)__GfGTd381f~Yg{iM_;Cbt8Gf+j0Om$D$y=2f z5nau3%>HVQZ>vt9J{$OOGCfB9(o)UQ;T;_f24F4CO3D!v)Mr_|JH_Txe(V~wB2Ydp z12E$Cg!yaim+?#Cv%0T>&jpYU3@-f-X6Y2wmf_m=&E2B{=FAg^UOlsOz)(gvU)`T^ zvb?#8fV?XTX8q<_CLN_2!zOmebRLXtY!qGsbmtrgSi3$oH`1CVYv{XH{T?lu8X(ExyQhF*)4^( zv`CLN~XR7Wn zl%>bH5`Hdz-jQx-h#?_grHWeKk(~5u?Y3~tY5W6s&DuR{*_~$e-TPycQmP?V zBqEfMqhmqLt+`fLsPA6s%Rc)QkHp+LOa>7HCogd$`@GFBnIf=R_KG2F)4#v%DKTk^ z5H5D=aiKcz@$3twga{q}%rKcU4VP*};_1XokpOAHgP3>#kSUJ{Ym7G{(InlN8kj|9 zBeox?q;LqZ5$>A)Upz00n258}BN0O(a2|Ty(-UL;LqFK`COZi`mA;Vo-q6^lOce_` z%PPP%D9HNGuP`Q>Ja^Qrt;+iR?ej+Oy;%>$X*8Fy`6k&~00kvrVKVzQlrHW2@@cKh zqtt)~M3~<2%LB;!x#m+g$#}kA630}8B0ldv+~-FnsmmY{D*8l7J)5YU*K*vLx*T+(hA2Ip>#S?Vme z2U3yvico~zRgsyv>+h&3MER9#V?OiRumLNJ&Q2?V$pwdP|(tN6qIZ@ML^m?KC)w%<<3npb{x+ix4|J0X%0b>as@@K=ugU!*?DV=ZSyc*mthr*Hmxw{e`> z#EP*+qNQAJJX2zW+s^h1Zu{&R`yGzjn9r{%77Lu%Id}MD1gcW#qtfeWNt%_??!2C( z4$k79B4ERnWzi5ZIE;2%Lc-q z!PASxC!t&r0Ta(r;6pegzk2>lICBG7g><(6>i-Nk-!9CDSA@&I1J^w%r)screbpf-whd18I3{$1Jef41}9{No0~>0S9B za(dye!Jfs#jSvjA^uUI(T)2&*Lh}8(JP|iOqp#gj)H1+oySDdv?|rnrPX~6AGGrH= z#eN*y{A@#O){~?CKEJ)e6U@kke9^*BoRlSg#&KbIm(hkOdK>PNV8BW<43 z(L0{7)s;0`lQt8LVSxIV+p)C-)T;Z_uy$NO*AmBX7pAd@q-IW5gUJ}8GUy>Cl5P{K z^YhS$FxcG(FaO7YrQq~u4oF+(4yL^gQhd}V!9#7kF)KfzcvQ6yqGw(v*pGW@HekyH zkmIled<~8Nac>FGl^+0DK=^_bhUpXVo=d#!r}5kI7x7mr-rxIJCbN-N##)f#1{GMB zuq=4P?_id%70dgrz|?{o43#c(hz;B-)DjMI#gQHSXwfVcqXcR`{eHT^82ww6U}jd5 z;nC^CY%KE+h(km`2)MolFVccV$Y^d0s+Y3HIb@qjv6NPaPL8mF-iYJNu%t499{tE$ z)}y^bBmV(6z``6-G|0x0FAS9?IU)A;VQ~xJ%{I(&vR?XX_F_C#W2bXwP5ZmEwL*|! zrX{W^#f#Bl@GV)KeZV!5z4w(8ttv0lRRI9Uu0p6XKe<*yn9V-XIKl^L1YlN1iz`hT zpmwQhyV_Qeu0tDJbeQ4(1oh{jT0j_Umv=S=mZ^n(Gw4a-m&ax4W3pL}{ z6Rr>~VW5a!Px$J~ZVWD6UL@XYQTWIuIxL>K>nr#b6J=(aTYyZO8qF*t3r#b`zjZ0@ zEq@hZ`zP9phFsAMy0eGVG=GJw9zS6AMCo7)`96A;%p8CRfNWrr(K|J#AvQf*mp zBKvPST@8bIWjvA$3#})3JXna?P5{9_0))wTNo2GL2bV#vARIw>n5`zyF4Eoobq2CC zv&*65^TbL*_ph%ZR088K&xjg8W|9)1vF)4zrNX}bOy&ZY*xT=&p+OHihq)}# zP$N9UAzwhw1*OfWvZTwAbbzahK9;vY2k$EC7UyRhO*~pME+l^l{!ks%0}ia0lKPSW#H?J4-_<_yzea-@BI zgKV4W0MJb(>rS6Mrw_R``={AfkGRhyarnn{>77q^}7)iyS>bhi-G&OJVkwN>Px()C*7-EPQ zW2>>UF93plFs>^4Vd%ntNJmI~@IN=H`8N%MK|Tf{1}We&3?@KdAk6{Un)tG%|Mfp+ zc8~2ak9NNXGi#>Fb$F>11U%6QSf-&|kc`$l(L5NPj4+W|u5ltKt zQwXUlJsZ-8bwh)tR`>3YCBdS!?2|CP3}@FEnK;-uY~y@*%E4M|48w@``EPW~to5dj z@Q^)ub@5}*ki*{zhd<3?lOA!!buIwS^b(k(Mxk2}M9G=)lkb@9jlAU`5sk`~O%Tr+ zLmjR92$rgBB%nG3!Ik#I;al^_sa=9|gP>0OK+JAbf7lb-X0Z)hgU0@nYt0b%1B71V z@I#*9oJmu-&Bm-CM5RmsZG;zDFN|T4Z9rJHx0!tQSA~-;5IFDWE=DA#nfd?f?mVNK z+`2pt*9%@1uYxEFDj=b$sI;KcM5PPZP(%b3f+7(Cks<6YNJ5g?2j~6pet6fKcg>nLvnF4Z1oGrLIcJ}}_u2dRN6k+fh)8Ts%O&%! zOXk`Y;X9)5KU6?227*EKB5J%F09-)H1Yv8YU?QeDKE zUtqVBEvtf{J2U;`5|lhiT35Ihv5iqiBh_~0V6BG9g9)g2n^lknT4p&$PduK5l)X@s zsRq7ap34k!K%#>I@sO3z(e&2+r{Uf5J4jBt`Pb+&Gie|YijS)6Tp9EN8Oe-~{XqUV zv-(m60!B8;*V>@-5ZLbV_nV(8N@-j<|E$G+QK?VO2Kt?t;&j6&DHTWnh*d z`Q}L&?zIqS`&=PLIhL4sz6@;z5#~P&C9MZQgjNMf8n=C$g(&0qlpWrA7Bivvors(ap4$ zb$LNqqET@jzLn++Uy|XT#{owTmda$84G#`cirC?Lcs@xi8ww3SA})=~O_=Fip>U03 zTRLhSx)p3Puy-(WVj{OsibbMi(Z{>{q))$^ zE2VdnNRk~2)Gis-F@wXgNaWV^v+Cl^n+p608I~tvD+6akC50c^K*pF?Zfqd-!Mw9v zUG#J8U?YM4^)=DU-k~!>m~t2v|9xx3pG3P-g&j>07+Im>$b#uCO;6 zEDK+wxw!<6H4@i03r-LC5A0vFBk%}F`bL`3H0ZC`{M7?acfN~J8eL5mL%8VFLC9%> zwV6)%cojrUnJev0v2~gv7g>a%uR5>C2{YEANq-kEGKJ8_vtbG4YcM~*Qr|WeoAqkq zD4CD8B$u;`_AA9|Vd-RPZxB-Lk=*@XH+CZHH4kq_1{kg7)w|s2q>5Jg!eB?r;*0@9 zi5O?%C>h9?K5%Ji_3~;FWHqC`0c+DEJtnF#75n|XOR;->!L*emY(7R(Xw_j%BX*(P zJi6tt|MeehZV=DD`1BjZ_KA2pwg+0F;R7C(TU?C)vyyKqt6-N<=>lHVc>vC2>%n!S zzvGBsgQ4-Q7>QJef$(ekHzLmbbuPS=>irl$(*tglS*90TZ5SGKn_e8YbOjhXGkCj!6c|V6tEZG zP6bRtu2BLdJzpbT3$I-rLsk1?BIc(V5)fh-Z(U3%L!{V3klD=!XqUq52zBwKyJ8^z zv~9r8%P=$EfjJHXvi6(S3r;D+k|Vrn0<_gc{3H6h3Tg zJDc8u6y4f@vMw9r<+?0nzv+YhMf!)@E4BN=)sc2e>bU@wr4WEW zNiT$!VsT{4JzA|#rlsSCToXN^^e=ay0tv~kJc@5e`#w_#+|ExxOOK=I_J+tcQF%Q` zr@XnZOhg(sWe*^CWlW+f%mT|pBdAaTMbZU3wwr5wMWmmmz_hvBT<`aSOK1Lm{as>) z>bh5t_p9$|(GpGBmXPP<0C0CSj)GtEvx*)%In=-~_Q9;K4?cM3?tQnmopfQ5ZOj#I+C>|HfYV-9o)@6h?hq6p z+0|Z(zJ3fCzh|Y>UVE2UUc*S}^hEN?M}M5me`SJ28PxQHcN#TPdUiJVU%^O)oA*wE zYb=4f=p~JwLuBO$-dUFRAI|pJomw>DJNO*cvZ9=7`>V_J;%Y$^s}>K=SaHTUNZcq3 zRkw6bc+R1a?~>qpqYpPp@#y$>SY1%f>ZhNi)wF6GnT)Gzg<^H;iXu(gja4m~Up|}n zg^Wp0KftAX-~aR0HHbk2!cB+>hgT}MXNyO_O^=Yb*!IZaZwjN;ubhwjK`rL6iCZN$ z9eNp5Sj9PD66EgH8c7Rt8iWNWR%&%V(ldTLkJxc!(GW}M9?;5+*nc<-;)tZ?WFYBe zJ-J!Bv3n}@*|=w@i}60GN?*)gQGw<+N`n#uP}pr&#kP$E0tuk<>|$q&50#Wcu;m94 z(#Knk;(B*dZ@R^Aiozq3eA zk?HX(XOLB29uuJ_Vn`IN)Vg;whCm)rhXv=Z5!ExiTc1_O04UwQ2`epwVMOJ-ASO`{ z8n4&Z$Q)Z@U?Ehg$6PM+$9J$CJFgk%%l%9H^orn+zSG7t%Sn1{I#n+Y^aN zqI0Ktv?4%!5?ciHSxtZ83>o5Jc$}_T(`i@T>IKeInQx zojFI&=LauYjG1VM%`_qdy^a08tNpCYcj2%4{rSsY%*2+dtu73IaGp3Bpo$zkREm;P z{uqD5VbPnqA74vR+NmH#M<-KIb%!IW)`itlSb$Cdp93 zye&f;i~sh84FmQ8QI#y7U<*s{3pf8D1^B;qWvP90>RT*(b&0T6Ifd{K2`07nZBzGj{(EuOan9ZtKjl_N3*i% z8Pqn`oMQ=6B%M6TAV=R9V$(T;4b%;|-ZJy%sh-zRj@dWP-!;qE=kXQR#^~F2X@`@; z&H1Fk3J+?|NP%xFr8hl6&x$ZV{)3QfN#Ku{7B~4Yljm?C5Inf)M}LYuJ(p1jCn4r1 zu9y*i(CjY*Vw6dBhxY4(j*zj;CXI!LwICEO(mD8qQnjUI_@BlCs9cR#_!k*$4JKo9AIF!guPsZ~*rBVK&=>ED- zz{qL#zj7wu+2SW8;Q|}`{h`ppToZ#?je`7Ahv~NuCw+JSf&zr}Mo9l{hwONK9TIpU z!O15_LNVEWKU+skM59AyJ?}bgu(xKCnb9pBT-`Ci^aVq;qfu_ZsyF>8_WRohr(|NKMj+K$A%i2l5P7$Vg z1nr^~BbB9jD}U9OQf9uLP?wn782s8BBZk?zCVi(F?NBf?PbV)t{D7Ev)%T8n47?du zIOZa3!Jsg>R^7SY#OnCFcbB`$_pD^xHtl_XEYU<}0uhxWs)bfBGDhnYV@l;Zb`Ph< zG!>N5-k5{c7h@TVJ$TRc08ZBMG;AHs6(}+}6vRXo68ctHBpHXq9f7e6f_%sLnFC0x z?HH<@(ds}aGhyxa{wi^RLQC^7GAHI;Y^8|XSP{st7HdBVc6+mn+qT^HxuoL$K7!Am z8<#hF^+sTcyWRSTZCX1zH}o|<4c(@0-rJ-Zs){$EsERmkp@c5`_$LU>RBe;>aFXq# z7~c?k5+b6u#^9q-NaVqk5B1+JOFl7flv%UCgYRP5I#%?;rPT6GI%((pF>BTd`YShu zfJO&K=QH};3X`WoH5m)@clB86z9c=Co3fzhtc|8Leco(OTOxToz=<|I7{94sot4|H zB6ZDsprVoYX0&W(Fx#-Y!M}En6~JQ*Oe%VFOIe8r7}V)w?nEZHQDu~RdGm$0{LJ>8 z>SvtBimuima&u6*T}McHb!%)yT%i5KO*qF#N0g-!)3XixYNF&;73DN|Hs^xQm9p!8 zW@pK-ZSTr0A&KfT`W!t+h~CA-fQU6?3usU}Um=DEu2lXhDd1@(jI=aMno z<3Dc(^*&tj`aq!<4-8)0CShVLZsbI(C_@PLGQPMFEOO|~tTxK1N~ z!zr`4>cn&lPyKcWCpMM^#q`HXZg3VF=8RQPRHSC8U%h&jOZ4dd7}^E(W>hZtHn9xB z_s!cGgUKwJY8cn=S_O_BDj`%}t#FfN z9n&EeD5=G)PFz_#spiX@Zs{%!POBA5@nL?JcCwF5>@$paZxsy6k=?^8?(o!)-zK%k zGAC>3@7@@Z-mCR{^CwHLSk00A$3IU6q}w>rmy+De7bguT#lCDa$D_{3`Dp3S_O$wI z4`b5oO2|!(uGUAe!W-gB26Ay9PaK}}3b`BM7El7!rj;S`PDn(a`$NKKW|ix5&5OwJ^uHvV}JiN9H9}T(oUZG8Rx3Cg&O%Y zFUBrNR3eu)TJfu@-TXx@DG>P)=^|qj$_ZO-0M3>&Gb|;8TZLul9-gV^#{xxExt63+x6l= zFxw%fJv->~tJBz*_BC^u_E>@U*JJeKiI7?0?NMvLQs2-J-@%IwyUullu};xZlPpzBm3@83k{iNidOtPA8@kMXh`6{X6y6I;f9NQ9Z z6N`VmC}ZLyD^N>G%DU@xyko0lOTTWL{GlioyCWfxPCuDoZ0H8d&b7m4yl^D%m;%p( z+k=y%HWGF7x1MTP>sNk`-eDMYZ7WlmZZ(%ZGi_^)7GO61V6i*cZAN9=+*C1XdYOp8 zTbp=A2D|!P-5!?98RdyoT#5o=sC~eAL^m<7mX+U0iVb^6@+EfeC?;D^B}rfJ>ESaU zY8rQ}cM_)>^(R<4i#j{6OWF&=m)Ay=9nnFfZ;KTWXxoN!tWUvg=cdVaQlDeZLB_L3hh7b3H&lS5;;AYQJECu~>ov^@rcV#KZ%{a%^xFrH--^E6# zJ|wD!5CsKx+0{`V!<7$q2nej-@h{$fL^ln;kxw_s3^#~O2;v`k4%gSY_l#f3z4t-Z zF=3&MK@So~7vHxAE+z2gF1)dT#tZl@0gM0hPlq3Z6C|j!uOH3sBInSDEE?+{gutU_ zuLWgh!;cH$`eL}g!Oo{mH*)CjXk~hQ%GBUN^l%E0cbpF&RxfH?&*$4?qiuJ)bp{$Q zzSQQ|W~&kXA}%7STvil4PSH=fy&-=WslcPR4hg~3-Cz7yBa|q+1wAZY{(i+IMoDV% jiKc(&S88ZoL4t;q;LN%&;oo4?1xyVs59aJYd;32CnmgvT literal 0 HcmV?d00001 diff --git a/docs/img/rdl_ddh4.png b/docs/img/rdl_ddh4.png new file mode 100644 index 0000000000000000000000000000000000000000..08ee0f71cb66eb609c74dec6e1f92a22fc838a34 GIT binary patch literal 42895 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 literal 0 HcmV?d00001 diff --git a/docs/img/rdl_ddh_add.png b/docs/img/rdl_ddh_add.png new file mode 100644 index 0000000000000000000000000000000000000000..994c133036bb72b565efe1dce1fcd07a0b91e68b GIT binary patch literal 45040 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

    gxW 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�es^|LZ+%sKUB`t+Uu z=2aQs!0dqwKYlg_Uk0KS5>P?4@s+W;utwJ!q8l05o4mS@OlDmEvmiqf(I!xMctOmp zkQ3Ga3jCE=W9))LS~k>3W%E)N74!|pBZ~7=G^3ozB#ORt4Sy+MYlXbE2Cx%B_VJSzB!v zp!w-z@&igjWs|3-Ytf&KZV`Q&ISx_Yn3TXw03orj5Tv(wQ!tScU3tTk2zfGQfzPQ7 z7f_>^LYIHyP3Z(&8O*MiW=l|iuyUQDAi+>F!3HhNg9U@>@5)f@-tRRJ1ziV$)nU`# zp!!$k#NaA&X=yYKLYxdr3#Q?~y@%pc$`RZ5{HE$hA6h7=S^y*1g<5;N{7H+zfp-@| zBS8=<9qR(e9F`*}`i%%*K{raBpGTVvb%!qDXUEBW zk*%857Tl@FA8ZS$v(wy_40T3$Zsetb;Rn57^n|^VAZ%Uhi6vu|_|WBsbxatYR5>~X z0ILX#KS6DSC~5E$4+Q}iu2&Q5IlO@r-eS<|#Y?G^6qU$2pwnw4EZ$$6NH!1LR7T%L z#Gst0OdO8i;Af93_7(hzcttkug_%({R7p{I>Za8*DmjweP9I#i#2)AmZ=y64H|>xF zOeK91V3=V)_nbV63plh^Ec!fVCVb}?>hhKpcG>xvQFF18z2N(1LMVNY41`ARmeGg1 zirG9atxDF_X)W|{HGv|s>-3Y1+qh-z8BtL~DA^$44r^g#^U6cJ zAmAB{2-U8$W*$Ay%SiCfcGJL@+c_QMyuwfX+E*^krZQlh^p!lPL`6^9kCai$!oE&wTQ-d> zlM`9(nw%Ju{Boq-eAB&bYzL?OtleiVJ_iB;09}%5t!(HD7oD+DOr! zd}2ssdHY?H;t|_cbK2swT*%nk^89MRdXb4AnjNnm=rS)iV~xSNH^g1en%OlKT>TC| zQJ*$(U}d6yva3#hV>h+L&^w=Sy(iIgITmH(x5xrbpBnktZ_FhGfK~ zGwPL8^E(Px7S{F+OVE~T@UvZ2D_psbt(yreLzR2S$6pSHFOLQ)EliUK3S-_3Pv6tL zLtFaQRSOQMbfV4oRAX92w>#VVN%b(ycFG7FkHT&@zp3z9h|C1MS5-^wd28Q_;qGT( z_*=BUFk%c`O%b!!7G@6Y5*G-y&2z zJVf3nUkr0@UZ=3mG(AAXWw>6c`*Xe@Ec1EEL+Q@dbn={w`@rA6X zLTm5c>TkzVpa1{$`G#@>a4zJ+<2r#it4z!nzrDNS z=2N+@lb6$u&Fd?@pVPD6cCXsJ$+-`I0#Er8@B{`eh-=N zwl*!iddGnU%YA!D0^JE*-sO9F?go zzF%DWr-&mH(6&5*bh+0L?s3Q+U+N7kahI%|f8=d~Tw}uLYq^EMGece)+UNtlEFq`| zygL2Mfen04!1Ycx?pz89cWum<)fs8G@oxB=!~I$*L7?q`!S_z!sVMJZr=m!itrN55 z{`oY#C;a!U8(A-G6*)oP`|M}ie+4sD1-t)?P z+xJ0*85tNtI(Qiv7C7ZFFffQFF*7i%5RhhIaA>^&D~$d<*TQk0@}df>FVdQ&MBb@0J5ELu>b%7 literal 0 HcmV?d00001 diff --git a/docs/img/rdl_ddh_mydata.png b/docs/img/rdl_ddh_mydata.png new file mode 100644 index 0000000000000000000000000000000000000000..de649899a4e36f85328f7371f605f801797b580b GIT binary patch literal 130659 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%0D}Q~Gs}Pel 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 WoXl}`9s(VkNc(}l#t${CkpBnop9Mq! literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index c2758154..427b8931 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,7 +13,7 @@ This documentation provides a technical overview of the RDLS and its different e - [**Overview**](rdl/index.md): purpose of RDL and core standards adopted - [**Data model**](data_model/index.md): how to organize and link the data using the RDLS schema - [**Taxonomy**](taxonomies/index.md): details of taxonomies adopted by the RDLS -- [**Guidance**](guidance/index.md): how to implement the RDLS in your project +- [**Guides**](guides/index.md): how to implement the RDLS in your project - [**Tutorials**](tutorials/index.md): how to adopte and use RDLS for different pruposes - [**About**](about/index.md): other information on the roadmap, history, governance and license @@ -29,7 +29,7 @@ The RDL is a collaborative project managed by the [Global Facility for Disaster rdl/index data_model/index taxonomies/index - guidance/index + guides/index glossary about/index ``` diff --git a/docs/keyconcepts.md b/docs/keyconcepts.md deleted file mode 100644 index fefa77d8..00000000 --- a/docs/keyconcepts.md +++ /dev/null @@ -1,86 +0,0 @@ - - -# Key concepts - -In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. - -Main definitions are taken from the [UNDRR Terminology](https://www.undrr.org/terminology). - -## Disaster risk - -Disaster risk is the potential loss of life, injury, or destroyed or damaged assets which could occur to a system, society or a community in a specific period of time, determined probabilistically as a function of hazard, exposure, vulnerability and coping capacity. - -Disaster risk comprises different types of potential impacts and losses (direct and indirect, tangible and intangible) which are sometimes difficult to quantify. Nevertheless, with knowledge of the prevailing hazards, the patterns of population and socio-economic development and their tendency to suffer impacts, disaster risks can be assessed and mapped, at least in broad terms. - -Source: [Disaster Risk, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk) - -## Disaster risk management - -Disaster risk management is the application of disaster risk reduction policies and strategies to prevent new disaster risk, reduce existing disaster risk and manage residual risk, contributing to the strengthening of resilience and reduction of disaster losses. - -Source: [Disaster Risk Management, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-management) - -## Disaster risk assessment - -A qualitative or quantitative approach to determine the nature and extent of disaster risk by analysing potential hazards and evaluating existing conditions of exposure and vulnerability that together could harm people, property, services, livelihoods and the environment on which they depend. - -Source: [Disaster Risk Assessment, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-assessment) - -## Disaster risk information (risk data) - -Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. - -Disaster risk information also includes the results of disaster risk assessments often expressed in terms of potential losses or impacts. - -Source: [Disaster Risk Information, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-information) - - - -## Hazard - -An hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. - -Hazards can have natural or anthropogenic origin. Natural hazards are associated with natural processes and phenomena (geological, geophysical and hydrometeorological). - -Source: Source: [Hazard, UNDRR Terminology](https://www.undrr.org/terminology/hazard) - -## Exposure - -The situation of people, infrastructure, housing, production capacities and other tangible human assets located in hazard-prone areas. Measures of exposure can include the number of people or types of assets in an area. These can be combined with the specific vulnerability and capacity of the exposed elements to any particular hazard to estimate the quantitative risks associated with that hazard in the area of interest - -Source: [Exposure, UNDRR Terminology](https://www.undrr.org/terminology/exposure) - -## Vulnerability -Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience. - -Source: [Vulnerability, UNDRR Terminology](https://www.undrr.org/terminology/vulnerability) - -## Cat model - -Catastrophe risk models (cat models) are common tools used to assess natural disaster risk. The models typically have four components: hazard, exposure, vulnerability and loss. - -A subset of a catastrophe risk model is an impact model, which is essentially a risk model that can only be used deterministically. The impact model uses hypothetical or historical events to simulate “what-if” scenarios that are often used as an aid for disaster planning and management. An example of an impact modeling tool is InaSAFE. - -Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/files/solving-the-puzzle-report.pdf) - -## Examples of risk data - -The four components of risk assessment are showcased below for an assessment of flood risk over tangible asset in the urban area of Kabul (Afghanistan). - -````{grid} 1 1 1 2 -:gutter: 3 - -```{grid-item-card} Hazard: map of flood water depth -![Hazard](img/sample_hzd.jpg) -``` -```{grid-item-card} Exposure: buildings footprints and population -![Exposure](img/sample_exp.jpg) -``` -```{grid-item-card} Vulnerability: depth-damage function -![Vulnerability](img/sample_vln.jpg) -``` -```{grid-item-card} Impacts and losses: USD costs of replacement -![Loss](img/sample_lss.jpg) -``` -```` diff --git a/docs/rdl/index.md b/docs/rdl/index.md index 76376fd1..7d6ff437 100644 --- a/docs/rdl/index.md +++ b/docs/rdl/index.md @@ -1,11 +1,11 @@ # Risk Data Library -Following [key concepts](../keyconcepts.md), the Risk Data Library Standard schema includes four components: +The Risk Data Library Standard schema includes four components: -- [**Hazard**](hazard.md): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. -- [**Exposure**](exposure.md): asset category, occupancy and specific taxonomy, cost type and value. -- [**Vulnerability**](vulnerability.md): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. -- [**Loss**](loss.md): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. +- [**Hazard**](../data_model/hazard.md): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. +- [**Exposure**](../data_model/exposure.md): asset category, occupancy and specific taxonomy, cost type and value. +- [**Vulnerability**](../data_model/vulnerability.md): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. +- [**Loss**](../data_model/loss.md): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components.


    From 58cac972c09fe3b83989739df7720876721c37d8 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 16:17:18 +0200 Subject: [PATCH 09/73] up --- docs/guides/index.md | 2 +- docs/rdl/core-standards.md | 3 ++- docs/standards.md | 7 ------- 3 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 docs/standards.md diff --git a/docs/guides/index.md b/docs/guides/index.md index cfb1227e..3015c5e3 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -4,7 +4,7 @@ Below is the guidance on best practices for dataset creation, packaging, metadat - [**Data preparation and packaging**](preparation.md) of risk data files and folders - [**Data formats**](formats.md) recommended and supported formats to store and share data -- [**Upload to the World Bank Data Catalog**](ddh-rdl.md) to store the risk data on the [Risk Data Library collection](https://datacatalog.worldbank.org/int/search/collections/rdl) +- [**Upload to the Risk Data Library collection**](ddh-rdl.md) to store the risk data on the [World Bank Data Catalog](https://datacatalog.worldbank.org/int/search/collections/rdl)

    diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md index 735d55a1..a3de2e01 100644 --- a/docs/rdl/core-standards.md +++ b/docs/rdl/core-standards.md @@ -1,7 +1,8 @@ # Core Standards +RDLS has been built based on existing open data standards. - +In this section you will find a short summary of the core standards upon which the RDL data model has been built. diff --git a/docs/standards.md b/docs/standards.md deleted file mode 100644 index c7221905..00000000 --- a/docs/standards.md +++ /dev/null @@ -1,7 +0,0 @@ - - -# Core Standards - -RDLS has been built based on existing open data standards. - -In this section you will find a short summary of the core standards upon which the RDL data model has been built. \ No newline at end of file From 478eb941ac86f0d521b015f9a5ce149ea499e85d Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 16:28:44 +0200 Subject: [PATCH 10/73] Update formats.md --- docs/guides/formats.md | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 9a2667e2..5127b45e 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -2,9 +2,11 @@ Risk data can be made of spatial or non-spatial data. -- Non-spatial data most often consist of table data stored as excel or csv files for greater compatibility. +- **Spatial data (geodata)** can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type. -- Spatial data (geodata) can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type. Below is a list of recommended and supported geodata formats. +- **Non-spatial data** most often consist of table data stored as excel or csv files for greater compatibility. + +Below is a list of recommended and supported geodata formats. ## Recommended geodata formats @@ -13,20 +15,28 @@ Risk data can be made of spatial or non-spatial data. **GeoPackage** (`.gpkg`) is an open, non-proprietary SQLite3 extended Database container. It is platform-independent and standards-based (OGC, QGIS, GDAL). Similar to ESRI geodatabase, but more responsive. It is a single-file format that can store anything from vector data and attributes, symbology, pyramids, table data as individual layers within one geopackage. It is possible to store rasters, but its supports for raster data is still limited and we don't recommend storing those as geopackage. Supports SQL and API to DB - fit for web applications, can export to PostGIS. There is no limit of attributes, attribute name size, or file size (unlike shapefile). Internal metadata specifications are under development. ### Raster data: GeoTIFF / COG (.tif) + **GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation). These should be packed together with the .tif files for sharing. A Cloud Optimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted ona geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). ## Supported geodata formats ### Vector data -- **ESRI ShapeFile (SHP)** -Well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, other optional for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. + +**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, other optional for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. ### Raster data -- **Network Common Data Form (NetCDF)** -NetCDF GIS format is an interface for array-oriented data for storing multi-dimensional variables. Commonly used in the scientific community for multidimensional geodata storage (e.g. climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. -- **GRIdded Binary or General Regularly-distributed Information in Binary (GRIB)** -GRIB was standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. +**Network Common Data Form (NetCDF)** (`.nc`) is a format for storing multi-dimensional, array-oriented variables. Commonly used in the scientific community for multidimensional geodata storage (e.g. climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. + +**GRIdded Binary or General Regularly-distributed Information in Binary (GRIB)** is standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. + +## Recommended non-spatial formats + +**Comma-separated values** (`.csv`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the .csv filetype in the resource description. + +**Excel** (`.xls`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files should come in one zipfile. Please include reference to the .xls filetype in the resource description. + +- **Portable Document Format** (`.pdf`) is the preferred format for reports and documentation. Add reports uncompressed whenever possible: users will commonly want to see the description for each report or document as one resource per file. Resource filetype will show as ‘PDF’.

    \ No newline at end of file From b9d2ea403a33da0545d8defe283b508209c77d97 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 16:46:40 +0200 Subject: [PATCH 11/73] update --- docs/guides/ddh-rdl.md | 4 ++-- docs/index.md | 1 - docs/{ => rdl}/usecases.md | 0 docs/tutorials/data-import.md | 12 ------------ docs/tutorials/data-preparation.md | 8 -------- docs/tutorials/deploy.md | 8 -------- docs/tutorials/index.md | 11 ----------- 7 files changed, 2 insertions(+), 42 deletions(-) rename docs/{ => rdl}/usecases.md (100%) delete mode 100644 docs/tutorials/data-import.md delete mode 100644 docs/tutorials/data-preparation.md delete mode 100644 docs/tutorials/deploy.md delete mode 100644 docs/tutorials/index.md diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index 5f9326b4..b13451fe 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -7,7 +7,7 @@ The collection can be accessed from the [collections page](https://datacatalog.w ## Add datasets Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`.
    -Datasets needs to be packaged according to the [**data preparation guidelines**](guides/preparation.md).
    +Datasets needs to be packaged according to the [**data preparation guidelines**](preparation.md).

    Two options to upload data: - **Individually**: using the upload wizard @@ -42,7 +42,7 @@ Select the option on the right: _`continue`_. - Hazard, Exposure, Vulnerability, Loss (depending on the component type) - Flood, Earthquake, Landslide, Tsunami (hazard type) - **Topics**: There is currently no topic for risk analytics or climate and disaster risk - leave blank - - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](ddh-team) with request to assign data to RDL Colelction. + - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](#ddh-team) with request to assign data to RDL Colelction. ![Screenshot](../img/rdl_ddh4.png) When all required (and optional) information has been entered, click on `Save as draft`. The dataset will appear under `My datasets` list. diff --git a/docs/index.md b/docs/index.md index 427b8931..dcf9645f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,7 +14,6 @@ This documentation provides a technical overview of the RDLS and its different e - [**Data model**](data_model/index.md): how to organize and link the data using the RDLS schema - [**Taxonomy**](taxonomies/index.md): details of taxonomies adopted by the RDLS - [**Guides**](guides/index.md): how to implement the RDLS in your project -- [**Tutorials**](tutorials/index.md): how to adopte and use RDLS for different pruposes - [**About**](about/index.md): other information on the roadmap, history, governance and license
    diff --git a/docs/usecases.md b/docs/rdl/usecases.md similarity index 100% rename from docs/usecases.md rename to docs/rdl/usecases.md diff --git a/docs/tutorials/data-import.md b/docs/tutorials/data-import.md deleted file mode 100644 index 7ced720b..00000000 --- a/docs/tutorials/data-import.md +++ /dev/null @@ -1,12 +0,0 @@ -# Import data in the schema DB - -## JKAN - -## PostGRESQL - - - - - - -

    \ No newline at end of file diff --git a/docs/tutorials/data-preparation.md b/docs/tutorials/data-preparation.md deleted file mode 100644 index e738d5f4..00000000 --- a/docs/tutorials/data-preparation.md +++ /dev/null @@ -1,8 +0,0 @@ -# Data prepration - - - - - - -

    \ No newline at end of file diff --git a/docs/tutorials/deploy.md b/docs/tutorials/deploy.md deleted file mode 100644 index 0ab7de30..00000000 --- a/docs/tutorials/deploy.md +++ /dev/null @@ -1,8 +0,0 @@ -# Deploy - - - - - - -

    \ No newline at end of file diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md deleted file mode 100644 index 24e8cfd1..00000000 --- a/docs/tutorials/index.md +++ /dev/null @@ -1,11 +0,0 @@ -# Tutorials - -```{eval-rst} -.. toctree:: - :maxdepth: 1 - - deploy - data-preparation - data-import - -``` From 0819a2224833395ec1c11a1c2aa8ac644ca54dce Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 16:49:32 +0200 Subject: [PATCH 12/73] Update ddh-rdl.md --- docs/guides/ddh-rdl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index b13451fe..55c61450 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -7,7 +7,7 @@ The collection can be accessed from the [collections page](https://datacatalog.w ## Add datasets Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`.
    -Datasets needs to be packaged according to the [**data preparation guidelines**](preparation.md).
    +Datasets needs to be packaged according to the [**data preparation guidelines**](preparation).

    Two options to upload data: - **Individually**: using the upload wizard From be070203562c5e027be888d0f2530463bdf84de0 Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 17:15:48 +0200 Subject: [PATCH 13/73] update --- docs/guides/ddh-rdl.md | 2 +- docs/guides/formats.md | 4 ++++ docs/guides/preparation.md | 13 +++++-------- docs/rdl/overview.md | 25 ++++++++++++++++++++++++- docs/rdl/usecases.md | 19 ------------------- 5 files changed, 34 insertions(+), 29 deletions(-) delete mode 100644 docs/rdl/usecases.md diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index 55c61450..dbfc6f95 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -50,7 +50,7 @@ When all required (and optional) information has been entered, click on `Save as ### Bulk upload In cases where large volumes of project data should be uploaded, DDH team can assist with bulk upload. The workflow steps are: -1. Store project data in folders on OneDrive. +1. Login with WB credentials and store project data on the DataCatalog Sharepoint - using folders structuring 2. Create an excel spreadsheet describing the datatype with each dataset name, URL to data and URL to prepared JSON metadata. 3. Describe the data structure to be achieved on DDH. 4. DDH team will copy the data and metadata to DDH Sharepoint. diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 5127b45e..7aed5704 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -25,6 +25,10 @@ A Cloud Optimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at being hosted **ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, other optional for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. +```{note} +Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where shp format is maintained, they should be provided as a zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). +``` + ### Raster data **Network Common Data Form (NetCDF)** (`.nc`) is a format for storing multi-dimensional, array-oriented variables. Commonly used in the scientific community for multidimensional geodata storage (e.g. climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 89dc5987..d41beb3e 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -2,18 +2,19 @@ The data structure and packaging of the output as obtained from the data analysts may not always align with the way we want users of the RiskDataLibrary to search and download data. -Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search?fq=(identification%2Fcollection_code%2Fany(col:col%20eq%20%27RDL%27))&q=&start=0&sort=last_updated_date%20desc)) are provided as individual RESOURCES, which should be packed (grouped) according to two main criteria: +Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/Risk-Data-Library) are provided as individual `RESOURCES`, which should be packed (grouped) according to three main criteria: -- **GEOGRAPHY**: For example, in a regional analysis, users may want to access data for one/each country - so data should be packaged to download the dataset with coverage for each country. +- **GEOGRAPHY**: data covering a multi-country region might be split into individual countries' datasets. - **THEME**: Data resources may be grouped by hazard type, sector type, etc. +- **FORMAT**: how the data are stored. It is preferred to keep data with different formats in different resources. We also need to consider: - **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. -- **EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. +- **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. Where there are many resources for a dataset, there is a temptation to include a folder structure in Data Catalog. This does not enable easy access to resources. Datasets and Resources should be set up to facilitate easy finding of the specific component of analysis, and grouping resources together in a sensible fashion, without creating problematically large download sizes. -Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. However, here are a few examples: +Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. ________________ ## Hazard data @@ -66,10 +67,6 @@ In some cases, exposure comes as table (`csv`, `xls`). [EXAMPLE PIC FOR EACH FORMAT] -```{note} -Geopackage (`.gpkg`) are preferred for vector data over shapefiles (`.shp`). Conversion from .shp to g.pkg is lossless and usually size-efficient. Where shp format is maintained, they should be provided as a zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). -Read more: (link to format page - next post) -``` ### Thematic grouping The main thematic groupings in exposure data are: - **Asset type / sector / construction type**: e.g. Structure, Content, Product / Residential, Commercial / Masonry, Wood diff --git a/docs/rdl/overview.md b/docs/rdl/overview.md index ba7bdd13..fe22901c 100644 --- a/docs/rdl/overview.md +++ b/docs/rdl/overview.md @@ -1,5 +1,28 @@ # Overview -Purpose and rationalle +## Purpose and rationalle + +The RDL project grew out of in-depth community consultation on improving access to **risk information**. +Its overarching purpose is to support disaster resilience work by making risk data better and easier to work with. + +## Use cases + +A **risk analyst** is scoping available risk data for a **disaster risk reduction project**. Searching the **RDL catalog** they can review the available data for the location of interest. They can then interrogate the data easily given the detailed and consistent **metadata** available, to make a decision on whether to directly use it in their analysis or invest in improving it. + + ***Value***: Reduced time to find and understand existing data. + +
    + +A **development bank** produces public good dashboards to deliver **risk insights** to client governments. The dashboard uses risk data from multiple projects to estimate the **number of assets or population** exposed to risk to assist in prioritising investments. Pulling data via the **RDL API**, many different datasets can be ingested and applied through a single workflow. + + ***Value***: Efficient data pipelines to ingest multiple datasets with confidence in the consistency of data structure and metadata. + +
    + +An **academic research team** needs to demonstrate the impact of a **risk analytics and urban planning project**, by making the data available for others to use. Their dataset are formatted according to the **RDL standards** and published in a data catalogue set up for the project, using the **template implementation** available through the RDL project. + + ***Value***: The pre-designed open-source deployable solutions can assist a research group achieve impact efficiently. + +


    \ No newline at end of file diff --git a/docs/rdl/usecases.md b/docs/rdl/usecases.md deleted file mode 100644 index f45f0b9f..00000000 --- a/docs/rdl/usecases.md +++ /dev/null @@ -1,19 +0,0 @@ -# Use cases - -A **risk analyst** is scoping available risk data for a **disaster risk reduction project**. Searching the **RDL catalog** they can review the available data for the location of interest. They can then interrogate the data easily given the detailed and consistent **metadata** available, to make a decision on whether to directly use it in their analysis or invest in improving it. - - ***Value***: Reduced time to find and understand existing data. - -
    - -A **development bank** produces public good dashboards to deliver **risk insights** to client governments. The dashboard uses risk data from multiple projects to estimate the **number of assets or population** exposed to risk to assist in prioritising investments. Pulling data via the **RDL API**, many different datasets can be ingested and applied through a single workflow. - - ***Value***: Efficient data pipelines to ingest multiple datasets with confidence in the consistency of data structure and metadata. - -
    - -An **academic research team** needs to demonstrate the impact of a **risk analytics and urban planning project**, by making the data available for others to use. Their dataset are formatted according to the **RDL standards** and published in a data catalogue set up for the project, using the **template implementation** available through the RDL project. - - ***Value***: The pre-designed open-source deployable solutions can assist a research group achieve impact efficiently. - -
    \ No newline at end of file From b03d33687d821e4ef4d7bbbf41a62c4933de765f Mon Sep 17 00:00:00 2001 From: Mamadio Date: Tue, 9 May 2023 17:24:10 +0200 Subject: [PATCH 14/73] up --- docs/data_model/general.md | 32 ++++++++++++++++++++++++ docs/data_model/index.md | 50 +++++++------------------------------- 2 files changed, 41 insertions(+), 41 deletions(-) create mode 100644 docs/data_model/general.md diff --git a/docs/data_model/general.md b/docs/data_model/general.md new file mode 100644 index 00000000..96442e7a --- /dev/null +++ b/docs/data_model/general.md @@ -0,0 +1,32 @@ +## General attributes + +In addition to schema-specific attributes, each dataset is identified by a list of attributes based on
    DublinCore metadata standard. + +| **Required** | **Attribute** | **Description** | **Type** | +|:---:|---|---|---| +|*| Component | Schema to be used |
    • Hazard
    • Exposure
    • Vulnerability
    • Loss | +|*| Source model | Name of source model | Text | +|*| Release date | Model release date | Date | +| | Project name | Project under which data has been produced | Text | +| | Purpose | Purpose for what the data has been produced | Text | +| | Notes | Additional details about the dataset | Text | +| | Bibliography | Author, titles and publication year of documents containing relevant information on the dataset | Authors (Year) - Title; URL | +| | Version | Version of the dataset | Number | +|*| Geo coverage | ISO code(s) of countries covered | ISOa3 country code | +|*| License code | Type of license | Licensing options | + +
      + +Other attributes are specific to individual resources, covering level of aggregation, resolution and format. + +| **Required** | **Attribute** | **Type** | +|:---:|---|---| +|*| Resource name | Text | +|*| Aggregation type |
      • Footprints
      • Grid
      • Administrative boundaries
      • Points or lines
      • N/A
      | +| | Description | Text | +| | Reference coordinate system | CRS EPSG | +| | Horizontal resolution | n unit | +| | Format | ext | +| | Download Url | url | + +

      diff --git a/docs/data_model/index.md b/docs/data_model/index.md index c40de330..b39bb76f 100644 --- a/docs/data_model/index.md +++ b/docs/data_model/index.md @@ -1,14 +1,14 @@ # Data model -The Risk Data Library Standard schema includes four components: +The Risk Data Library Standard schema covers [**general dataset attributes**](general) and four specific components: -- [**Hazard**](data_model/hazard.md): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. -- [**Exposure**](data_model/exposure.md): asset category, occupancy and specific taxonomy, cost type and value. -- [**Vulnerability**](data_model/vulnerability.md): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. -- [**Loss**](data_model/loss.md): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. +- [**Hazard**](hazard): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. +- [**Exposure**](exposure): asset category, occupancy and specific taxonomy, cost type and value. +- [**Vulnerability**](vulnerability): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. +- [**Loss**](loss): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components.
    -The diagram below shows the core relationships between schema components, rather than listing all of their attributes. +The diagram below shows the core relationships between schema components, and their core attributes. ```{eval-rst} .. mermaid:: @@ -48,50 +48,18 @@ The diagram below shows the core relationships between schema components, rather -Loss metric } ``` -
    - -## Dataset general attributes -In addition to schema-specific attributes, each dataset is identified by a list of attributes based on DublinCore metadata standard. - -| **Required** | **Attribute** | **Description** | **Type** | -|:---:|---|---|---| -|*| Component | Schema to be used | +For definitions of these terms, please see the [Glossary](https://rdl-standard.readthedocs.io/en/docs.mat/glossary.html) + The diagram below shows the core relationships between schema components, and their core attributes. ```{eval-rst} @@ -62,4 +64,4 @@ The diagram below shows the core relationships between schema components, and th vulnerability loss -``` \ No newline at end of file +``` From 31698eea33d6d278b653103662ce47c33c5ae159 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 13:04:59 +0100 Subject: [PATCH 30/73] Update Taxonomies index.md Added taxonomy information, and section TBD for V / L. --- docs/taxonomies/index.md | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/docs/taxonomies/index.md b/docs/taxonomies/index.md index fb9052e5..22bc8af2 100644 --- a/docs/taxonomies/index.md +++ b/docs/taxonomies/index.md @@ -116,7 +116,7 @@ List of other hazard taxonomies below: - [**Munich-RE**](https://www.cred.be/downloadFile.php?file=sites/default/files/DisCatClass_264.pdf) covers 27 natural hazards 13 main categories (Geophysical, Meteorological, Hydrological, Climatological, Biological, Extraterrestrial). -## Exposure taxonomy +## Exposure taxonomies The exposure schema can accomodate different descriptions of assets using a taxonomy which describes their characteristics (e.g. building occupancy, construction, age, height, etc. or road surface type). @@ -132,7 +132,36 @@ The exposure schema can accomodate different descriptions of assets using a taxo ged4all ``` +### GEM Building Taxonomy -### Other exposure taxonomies +The [GEM Building Taxonomy](https://www.globalquakemodel.org/gempublications/GEM-building-taxonomy-version-2.0) is dedicated to building characteristics relevant to assessing vulnerability to seismic events. It describes characteristics such as an asset's height, number of storeys, age, occupancy, material, type of roof, floor, foundations and structural system. [TaxtWEB](https://platform.openquake.org/taxtweb) is a tool developed by GEM to assist with the generation of the taxonomy string which is used to describe these attributes. -[**GEM-OpenQuake**](https://platform.openquake.org/taxtweb): developed specifically for the Global Earthquake Model (GEM), this taxonomy is dedicated to buildings for which it describe the size and properties (height, number of storeys, age, occupancy, material, type of roof, floor and foundations). +Example: The string `CR/HEX:1/YEX:1981/RES+RES1` describes a residential single family building, of reinforced concrete construction, built in 1981. This is the short version of the taxonomy, the long version explicitly includes all of the unknown fields too. + +### Open Exposure Data (OED) + +[OED](https://github.com/OasisLMF/ODS_OpenExposureData) is a standard curated by the Oasis community for the insurance industry. The aim of OED is to provide the industry with a robust, open, and transparent data format. The detailed descriptions of the OED taxonomy to describe an asset (structure, infrastructure, or human) are covered in ['Open Exposure Data Spec.xlsx' with reference and background information](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs), or [online]https://oasislmf.github.io/OpenDataStandards/index.html. + +Example: In the Open Exposure Data (OED) Standard and other insurance industry models, asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: +| OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt | +| -------------- | -------------- | -------------- | -------------- | +| 1050 | 5101 | 1 | 0 | + + +### CEDE + +[CEDE (Catastrophe Exposure Data Exchange)](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic1.html), is the exposure database format used by Touchstone®, AIR's comprehensive risk management platform that was first released in early 2013. It is publicly available and used widely in the insurance industry to describe asset characteristics and values for catastrophe modelling. CEDE uses a database format and allows users to apply different occupancy and construction schemes and codesets to their data, and add additional fields describing year of construction, number of storeys, etc. The most common taxonomy used in CEDE is [AIRConstruction](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic32.html) and [AIROccupancy](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic33.html). These codes are also available in the [OED Open Exposure Data Spec](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs) as OED was based on and builds on CEDE. + +Example: In CEDE data asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: +| OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt +| -------------- | -------------- | -------------- | -------------- | +| 301 | 112 | 1 | 0 | + + +## Vulnerability taxonomies + +Content under development. + +## Loss taxonomies + +Content under development. From 32f86cfbd36b7b5a38e667cb312c340da646b346 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 13:11:15 +0100 Subject: [PATCH 31/73] Update glossary.md minor change to sources --- docs/glossary.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/glossary.md b/docs/glossary.md index b3ef20d3..3687aaaf 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -2,7 +2,7 @@ # Glossary of terms -In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. Definitions are taken from the [UNDRR Terminology](https://www.undrr.org/terminology). +In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. ## Disaster risk @@ -10,25 +10,25 @@ Disaster risk is the potential loss of life, injury, or destroyed or damaged ass Disaster risk comprises different types of potential impacts and losses (direct and indirect, tangible and intangible) which are sometimes difficult to quantify. Nevertheless, with knowledge of the prevailing hazards, the patterns of population and socio-economic development and their tendency to suffer impacts, disaster risks can be assessed and mapped, at least in broad terms. -Source: [Disaster Risk, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk) +Source: [UNDRR Terminology (Disaster Risk)](https://www.undrr.org/terminology/disaster-risk) ## Disaster risk management Disaster risk management is the application of disaster risk reduction policies and strategies to prevent new disaster risk, reduce existing disaster risk and manage residual risk, contributing to the strengthening of resilience and reduction of disaster losses. -Source: [Disaster Risk Management, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-management) +Source: [UNDRR Terminology (Disaster Risk Management)](https://www.undrr.org/terminology/disaster-risk-management) ## Disaster risk assessment A qualitative or quantitative approach to determine the nature and extent of disaster risk by analysing potential hazards and evaluating existing conditions of exposure and vulnerability that together could harm people, property, services, livelihoods and the environment on which they depend. -Source: [Disaster Risk Assessment, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-assessment) +Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/terminology/disaster-risk-assessment) ## Disaster risk information (_risk data_) Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. Disaster risk information includes all studies, information and mapping required to understand the disaster risk drivers and underlying risk factors. -Source: [Disaster Risk Information, UNDRR Terminology](https://www.undrr.org/terminology/disaster-risk-information) +Source: [(UNDRR Terminology (Disaster Risk Information)](https://www.undrr.org/terminology/disaster-risk-information) @@ -39,7 +39,7 @@ An hazard is a process or phenomenon that may cause loss of life, injury or othe Hazards can have natural or anthropogenic origin. Natural hazards are associated with natural processes and phenomena (geological, geophysical and hydrometeorological). -Source: [Hazard, UNDRR Terminology](https://www.undrr.org/terminology/hazard) +Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) ````{grid} auto :gutter: 3 @@ -52,7 +52,7 @@ Source: [Hazard, UNDRR Terminology](https://www.undrr.org/terminology/hazard) The situation of people, infrastructure, housing, production capacities and other tangible human assets located in hazard-prone areas. Measures of exposure can include the number of people or types of assets in an area. These can be combined with the specific vulnerability and capacity of the exposed elements to any particular hazard to estimate the quantitative risks associated with that hazard in the area of interest -Source: [Exposure, UNDRR Terminology](https://www.undrr.org/terminology/exposure) +Source: [UNDRR Terminology (Exposure)](https://www.undrr.org/terminology/exposure) ````{grid} auto :gutter: 3 @@ -64,7 +64,7 @@ Source: [Exposure, UNDRR Terminology](https://www.undrr.org/terminology/exposure ## Vulnerability Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience. -Source: [Vulnerability, UNDRR Terminology](https://www.undrr.org/terminology/vulnerability) +Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vulnerability) ````{grid} auto :gutter: 3 @@ -83,4 +83,4 @@ Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/fi ```{grid-item-card} Impacts and losses: USD costs of replacement ![Loss](img/sample_lss.jpg) ``` -```` \ No newline at end of file +```` From 31cab4be2a0a8c4633f677e7735b1a0353a2e6f8 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 13:11:40 +0100 Subject: [PATCH 32/73] Update glossary.md correction, remove bracket --- docs/glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/glossary.md b/docs/glossary.md index 3687aaaf..7ac91562 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -28,7 +28,7 @@ Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/ter Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. Disaster risk information includes all studies, information and mapping required to understand the disaster risk drivers and underlying risk factors. -Source: [(UNDRR Terminology (Disaster Risk Information)](https://www.undrr.org/terminology/disaster-risk-information) +Source: [UNDRR Terminology (Disaster Risk Information)](https://www.undrr.org/terminology/disaster-risk-information) From e85dff8b41ce5721d4adc48add31bd0c3e5c7794 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 13:49:23 +0100 Subject: [PATCH 33/73] Update preparation.md Edits to page. Inconsistent nested bullet formatting may still require revision @matamadio --- docs/guides/preparation.md | 60 ++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 00fa2180..3754bb3f 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -5,31 +5,34 @@ The data structure and packaging of the output as obtained from the data analyst Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) are provided as individual `RESOURCES`, which should be packed (grouped) according to three main criteria: - **GEOGRAPHY**: data covering a multi-country region might be split into individual countries' datasets. -- **THEME**: Data resources may be grouped by hazard type, sector type, etc. -- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about recommended and supported data formats. +- **THEME**: data resources may be grouped by hazard type, sector type, etc. +Depending on the project or intended purpose of the data, one or other grouping may be preferred. We also need to consider: +- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about recommended and supported data formats. - **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. - **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. ```{caution} -In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. If required for data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. +In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. If required for data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. Instead of splitting rasters, consider storing the raster in an alternative format that maybe more size-efficient (see Formats sections). ![Screenshot](../img/raster_clip.jpg) ``` -Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following folder structure: +Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: ``` _ ├── Hazard - │ ├── + │ ├── (example subfolders: hazard catalog, base data, hazard maps) │ └── ├── Exposure - │ ├── - │ └── + │ ├── (e.g., Residential buildings; Example subfolders: current exposure, projected exposure) + │ └── (e.g., Transport infrastructure) ├── Vulnerability - │ └── <...> + │ └── + │ └── └── Loss - └── <...> + │ ├── (subfolders for each sector loss, current and projected) + │ └── ``` @@ -40,7 +43,8 @@ Where there are many resources for a dataset, there is a temptation to include a ## Hazard data ### Format / data types -Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). Less often, hazard curves and stochastic event set tables are generated. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    +Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`), hazard curves and stochastic event set tables (which can become very large). Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    + Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). ```{figure} ../img/hzd_tc.jpg @@ -56,7 +60,7 @@ width: 98% ### Thematic grouping The main thematic groupings in hazard data are: - **Hazard type**: data produced for seismic hazard, wildfire, fluvial flood, pluvial flood, etc. -- **Referene period**: e.g., historical, projections (2050, 2080) +- **Reference period**: e.g., historical, projections (2050, 2080) ### Geographic grouping - **Scale, location and resolution**: Hazard data may be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level analysis) might be grouped for individual locations (city) whenever the dataset becomes too large. @@ -88,6 +92,8 @@ For example: ## Exposure data ### Format +Exposure are typically large datasets describes the location, characteristics and value of individual assets or an aggegrated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. + Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). In some cases, exposure comes as table (`csv`, `xls`). @@ -114,9 +120,9 @@ The main thematic groupings in exposure data are: ### Packaging recommendation We recommend grouping exposure data using the following hierarchy: - **Geographic scale and location** - - **Exposure category** + - **Exposure category** (optional) *Sub-type* - **Year** - - (optional) *Sub-type* + For example: ``` @@ -174,9 +180,9 @@ This hierarchy should be maintained also when packing all the data in one file ( align: left width: 98% --- -Example of multiple vulnerability functions for floods (depth-damage curve) into one excel file ([Download](https://publications.jrc.ec.europa.eu/repository/bitstream/JRC105688/copy_of_global_flood_depth-damage_functions__30102017.xlsx)). +Example of multiple vulnerability functions for floods (depth-damage curve) into one excel file ([Source: JRC](https://publications.jrc.ec.europa.eu/repository/bitstream/JRC105688/copy_of_global_flood_depth-damage_functions__30102017.xlsx)). ``` -For example, when grouping multiple function into one excel file, the following approach can be adopted: +For example, when grouping multiple functions into one excel file, the following approach can be adopted: ``` @@ -202,34 +208,32 @@ Loss data comes in the form of: ### Thematic grouping The main thematic groupings in loss data are: -* Hazard type: there may also be a multi-hazard loss metric included. -- **Asset type / sector**: e.g. Structure, Content, Product / Residential, Commercial -* Year or period: e.g. historical (2020), projections (2040-2060), etc. +- **Hazard type**: there may also be a multi-hazard loss metric included. + - **Asset type / sector**: e.g. Structure, Content, Product / Residential, Commercial + - **Year or period**: e.g. historical (2020), projections (2040-2060), etc. ### Geographic grouping -Losses can be provided as: -- disaggregated -- usually aggregated at national or subnational administrative level (ADM2, ADM1, or ADM0). -Losses can also be provided per asset (e.g. individual buildings or raster footprints) but it is not usual, although these files are usually being generated by the risk analysts. +Losses are usually aggregated at national or subnational administrative level (ADM2, ADM1, or ADM0) or for a multi-country region. +Losses can also be provided per asset (e.g. individual buildings or raster footprints) but it is not usual, although these files are usually generated by the risk analysts. ### Packaging recommendation Strategy depends on the data format and size: -- if data consists of one or more table datasets, it is usually a good idea to group it together into one `excel` file; +- if data consists of one or more table datasets, it is usually a good idea to group it together into one `excel` file so users can access all of the losses at once; - if data consists of one or more vector datasets representing national or subnational boundary levels, these can be grouped into one `geopackage` file; - if data consists of multiple granular spatial data, it might be packed as individual or multiple layers (depending on the size of individual layers) In either case, we recommend grouping exposure data using the following hierarchy: - **Hazard type** - *Country* - - **Exposure category** - - *Sub-type* - - Year or period + - **Exposure category** + - *Sub-type* + - Year or period For example: ``` - └── Vulnerability + └── Loss ├── │ ├── (skip if global function) │ │ ├── @@ -240,4 +244,4 @@ For example: └── <...> └── <...> ``` -

    \ No newline at end of file +

    From d02075b56ca4e8f8347a75a77d1a89f613412736 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 13:52:43 +0100 Subject: [PATCH 34/73] Update formats.md minor typo edits --- docs/guides/formats.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/guides/formats.md b/docs/guides/formats.md index b4dc1091..dea4d80a 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -22,7 +22,9 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work ### Raster data: GeoTIFF / COG (.tif) **GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation). These should be packed together with the .tif files for sharing. -A Cloud Optimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted ona geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). + + +**A Cloud Optimized GeoTIFF (COG)** is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted on a geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). ## Supported geodata formats @@ -57,4 +59,4 @@ Wide table formatting is preferred instead of long format. **Portable Document Format** (`.pdf`) is the preferred format for reports and documentation. Add reports uncompressed whenever possible: users will commonly want to see the description for each report or document as one resource per file. Resource filetype will show as ‘PDF’. -
    \ No newline at end of file +
    From c7eda7a3934e74f8735b488060311a78933b5f50 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 13:56:32 +0100 Subject: [PATCH 35/73] Update rdl-metadata.md minor additions including placeholder for JSON file / flatten tool templates / links --- docs/guides/rdl-metadata.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/guides/rdl-metadata.md b/docs/guides/rdl-metadata.md index d647ca25..8eda1d26 100644 --- a/docs/guides/rdl-metadata.md +++ b/docs/guides/rdl-metadata.md @@ -1,9 +1,11 @@ # RDL metadata ## Adoption of the metadata schema - Metadata should be created for each dataset. The Risk Data Library metadata schema comes in JSON format, but it can be translated into table (csv/excel). `WIP` +Metadata should be created for each dataset so it can be found by human and machine searches, and so users can easily identify the dataset contents. + +The Risk Data Library Standard defines metadata in JSON format, but it can be translated into table (csv/excel). `WIP` -- Option 1. Write directly into JSON file -- Option 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH). It exports a JSON file to be saved with the dataset. +- Option 1. Write directly into JSON file (templates are available at ...) +- Option 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH) AND UNDER DEVELOPMENT. It uses an xsl file containing metadata in a specified structure, and exports a JSON file to be saved with the dataset. From d49a84ae1ce02e9f9446dd878d51bd95f3c9a9c3 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 14:00:01 +0100 Subject: [PATCH 36/73] Update about>index.md minor edits --- docs/about/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/about/index.md b/docs/about/index.md index 7f6a3a67..a47aa040 100644 --- a/docs/about/index.md +++ b/docs/about/index.md @@ -1,5 +1,6 @@ # About +This user guide is written to support use of the Risk Data Library Standard. ```{eval-rst} .. toctree:: From 0a0c86091cc70859ff82d7c4ffb68dd54edcc1ff Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 15:41:38 +0100 Subject: [PATCH 37/73] Update glossary.md Making glossary alphabetical --- docs/glossary.md | 66 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 20 deletions(-) diff --git a/docs/glossary.md b/docs/glossary.md index 7ac91562..04264c8a 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -4,6 +4,9 @@ In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. + + + ## Disaster risk Disaster risk is the potential loss of life, injury, or destroyed or damaged assets which could occur to a system, society or a community in a specific period of time, determined probabilistically as a function of hazard, exposure, vulnerability and coping capacity. @@ -12,11 +15,8 @@ Disaster risk comprises different types of potential impacts and losses (direct Source: [UNDRR Terminology (Disaster Risk)](https://www.undrr.org/terminology/disaster-risk) -## Disaster risk management -Disaster risk management is the application of disaster risk reduction policies and strategies to prevent new disaster risk, reduce existing disaster risk and manage residual risk, contributing to the strengthening of resilience and reduction of disaster losses. -Source: [UNDRR Terminology (Disaster Risk Management)](https://www.undrr.org/terminology/disaster-risk-management) ## Disaster risk assessment @@ -24,29 +24,32 @@ A qualitative or quantitative approach to determine the nature and extent of dis Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/terminology/disaster-risk-assessment) + + + + + + ## Disaster risk information (_risk data_) Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. Disaster risk information includes all studies, information and mapping required to understand the disaster risk drivers and underlying risk factors. Source: [UNDRR Terminology (Disaster Risk Information)](https://www.undrr.org/terminology/disaster-risk-information) - -## Hazard -An hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. -Hazards can have natural or anthropogenic origin. Natural hazards are associated with natural processes and phenomena (geological, geophysical and hydrometeorological). -Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) +## Disaster risk management + +Disaster risk management is the application of disaster risk reduction policies and strategies to prevent new disaster risk, reduce existing disaster risk and manage residual risk, contributing to the strengthening of resilience and reduction of disaster losses. + +Source: [UNDRR Terminology (Disaster Risk Management)](https://www.undrr.org/terminology/disaster-risk-management) + + + -````{grid} auto -:gutter: 3 -```{grid-item-card} Hazard: map of flood water depth -![Hazard](img/sample_hzd.jpg) -``` -```` ## Exposure @@ -61,18 +64,26 @@ Source: [UNDRR Terminology (Exposure)](https://www.undrr.org/terminology/exposur ``` ```` -## Vulnerability -Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience. -Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vulnerability) + + +## Hazard + +An hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. + +Hazards can have natural or anthropogenic origin. Natural hazards are associated with natural processes and phenomena (geological, geophysical and hydrometeorological). + +Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) ````{grid} auto :gutter: 3 -```{grid-item-card} Vulnerability: depth-damage function -![Vulnerability](img/sample_vln.jpg) +```{grid-item-card} Hazard: map of flood water depth +![Hazard](img/sample_hzd.jpg) ``` ```` + + ## Impact model An impact model (also damage model; loss model) is used to combine Hazard, Exposure and Vulnerability compoments to calculate the amount of value that is expected to be impacted (damaged or lost). @@ -84,3 +95,18 @@ Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/fi ![Loss](img/sample_lss.jpg) ``` ```` + + + +## Vulnerability +Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience. + +Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vulnerability) + +````{grid} auto +:gutter: 3 +```{grid-item-card} Vulnerability: depth-damage function +![Vulnerability](img/sample_vln.jpg) +``` +```` + From 0465ffe2fa69cfe2620ad88994bd4f3471256ae2 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:26:35 +0100 Subject: [PATCH 38/73] Update use-cases.md remove normative word 'may' replace with 'could' --- docs/rdl/use-cases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/rdl/use-cases.md b/docs/rdl/use-cases.md index 2535a8f0..7194c4c3 100644 --- a/docs/rdl/use-cases.md +++ b/docs/rdl/use-cases.md @@ -21,7 +21,7 @@ An **academic research team** needs to demonstrate the impact of a **risk analyt An **insurance industry analyst or model developer** needs to **build a new catastrophe model** or **analyse a new portfolio** to insure in an emerging market, where the company has limited experience and data. They are searching for existing data to support their analysis and find some existing data created by consultants in the development sector, shared via the Risk Data Library Collection of the World Bank Data Catalog, formatted according to the **RDL standards** and available to download and use. - ***Value***: The data can be used directly or improved to assess the risk to the new portfolio, and may expedite the placement of insurance cover for vulnerable communities. + ***Value***: The data can be used directly or improved to assess the risk to the new portfolio, and could expedite the placement of insurance cover for vulnerable communities. From f25773db93c07ab4b0bbe5458cfdbd4ae41d26b7 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:38:16 +0100 Subject: [PATCH 39/73] Update preparation.md removing many normative words --- docs/guides/preparation.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 3754bb3f..dc4c87fb 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -1,23 +1,23 @@ # Data packaging -The data structure and packaging of the output as obtained from the data analysts may not always align with the way we want users of the **Risk Data Library** to search and download data. +The data structure and packaging of the output as obtained from the data analysts do not always align with the way we want users of the **Risk Data Library** to search and download data. -Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) are provided as individual `RESOURCES`, which should be packed (grouped) according to three main criteria: +Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) are provided as individual `RESOURCES`; it is encouraged to grouped these according to three main criteria: - **GEOGRAPHY**: data covering a multi-country region might be split into individual countries' datasets. -- **THEME**: data resources may be grouped by hazard type, sector type, etc. -Depending on the project or intended purpose of the data, one or other grouping may be preferred. +- **THEME**: for risk data, this includes hazard, sector or asset type. +Depending on the project or intended purpose of the data, one or other grouping might be preferred. We also need to consider: -- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about recommended and supported data formats. +- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about supported data formats. - **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. - **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. ```{caution} -In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. If required for data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. Instead of splitting rasters, consider storing the raster in an alternative format that maybe more size-efficient (see Formats sections). +In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. For data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. Instead of splitting rasters, consider storing the raster in an alternative format that maybe more size-efficient (see Formats sections). ![Screenshot](../img/raster_clip.jpg) ``` -Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: +Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data can be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: ``` _ @@ -37,7 +37,7 @@ Structuring risk data well when it is generated and before it is delivered to a ``` ```{caution} -Where there are many resources for a dataset, there is a temptation to include a folder structure in the online Data Catalog. This is not advised. `Datasets` should be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. +Where there are many resources for a dataset, it can be tempting to include a folder structure in the online Data Catalog. This is not advised and it is suggested that `datasets` be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. ```
    @@ -63,7 +63,7 @@ The main thematic groupings in hazard data are: - **Reference period**: e.g., historical, projections (2050, 2080) ### Geographic grouping -- **Scale, location and resolution**: Hazard data may be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level analysis) might be grouped for individual locations (city) whenever the dataset becomes too large. +- **Scale, location and resolution**: Hazard data can be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level analysis) might be grouped for individual locations (city) whenever the dataset becomes too large. ### Packaging recommendation We recommend grouping hazard data using the following hierarchy: @@ -115,13 +115,14 @@ The main thematic groupings in exposure data are: - **Year**: reference period or year, e.g. specific year (2020), projected period (2040-2060), etc. ### Geographic grouping -- **Scale, location and resolution**: Exposure data may be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level) might be grouped for individual locations (city) whenever the dataset becomes too large. +- **Scale, location and resolution**: Exposure data can be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level) might be grouped for individual locations (city) whenever the dataset becomes too large. ### Packaging recommendation We recommend grouping exposure data using the following hierarchy: - **Geographic scale and location** - - **Exposure category** (optional) *Sub-type* - - **Year** + - **Exposure category** + - *Sub-type* + - **Year** For example: @@ -154,7 +155,7 @@ width: 70% Example of vulnerability functions for floods (depth-damage curve) as table data ([Download](https://publications.jrc.ec.europa.eu/repository/bitstream/JRC105688/copy_of_global_flood_depth-damage_functions__30102017.xlsx)). ``` -Often, vulnerability models are proprietary data and only shared as pictures; this has low reusability and should be avoided. Always try to obtain a mathematical description for this component. +Often, vulnerability models are proprietary data and only shared as pictures; this has low reusability and ought to be avoided. Always try to obtain a mathematical description for this component. ### Thematic grouping The main thematic groupings specific to vulnerability data are: @@ -162,7 +163,7 @@ The main thematic groupings specific to vulnerability data are:
      - **Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) ### Geographic grouping -Vulnerability curves may be developed for individual countries or environments within a project. Where this is the case, this grouping should be retained. +Vulnerability curves can be developed for individual countries or environments within a project. Where this is the case, this grouping ought to be retained. ### Packaging recommendation We recommend to group exposure data using the following hierarchy: @@ -172,7 +173,7 @@ We recommend to group exposure data using the following hierarchy: - **Sub-type** (e.g. sector (Residential, Commercial), construction type (Masonry, Wood), or others) ```{note} -This hierarchy should be maintained also when packing all the data in one file (e.g. multiple csvs into one excel file), which is advised _unless specifically demanded by the data use_ (e.g. data are formatted for usage into a specific model). +This hierarchy can be maintained also when packing all the data in one file (e.g. multiple csvs into one excel file), which is advised _unless specifically demanded by the data use_ (e.g. data are formatted for usage into a specific model). ``` ```{figure} ../img/vln_multi-table.jpg @@ -208,7 +209,7 @@ Loss data comes in the form of: ### Thematic grouping The main thematic groupings in loss data are: -- **Hazard type**: there may also be a multi-hazard loss metric included. +- **Hazard type**: denoting a single hazard or a multi-hazard loss metric. - **Asset type / sector**: e.g. Structure, Content, Product / Residential, Commercial - **Year or period**: e.g. historical (2020), projections (2040-2060), etc. From 24178c0aa07f6fdea2bc4bcb1e0e0232efd83225 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:42:15 +0100 Subject: [PATCH 40/73] Update formats.md removing normative words --- docs/guides/formats.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/guides/formats.md b/docs/guides/formats.md index dea4d80a..5064f86b 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -21,7 +21,7 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work ### Raster data: GeoTIFF / COG (.tif) -**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation). These should be packed together with the .tif files for sharing. +**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation), compressed into a .zip file together with the .tif files for sharing. **A Cloud Optimized GeoTIFF (COG)** is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted on a geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). @@ -30,10 +30,10 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work ### Vector data -**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, other optional for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. +**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, and other files for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. ```{note} -Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where shp format is maintained, they should be provided as a zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). +Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where shp format is maintained, it is stongly suggested they are provided as a .zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). ``` ### Raster data @@ -42,13 +42,13 @@ Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where **GRIdded Binary or General Regularly-distributed Information in Binary (GRIB)** is standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. -## Recommended non-spatial formats +## Non-spatial formats ### Spreadsheet / tables **Comma-separated values** (`.csv`) is used for table data such as vulnerability models, results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the .csv filetype in the resource description. -**Excel** (`.xls`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files should come in one zipfile. Please include reference to the .xls filetype in the resource description. +**Excel** (`.xls`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files ought to be compressed into a single .zip file, with reference to the .xls filetype in the resource description. ```{note} Wide table formatting is preferred instead of long format. From a605ad665544857fbef3de6d39266be4712a40b0 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:44:31 +0100 Subject: [PATCH 41/73] Update rdl-metadata.md replace normative words --- docs/guides/rdl-metadata.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/rdl-metadata.md b/docs/guides/rdl-metadata.md index 8eda1d26..7cae1794 100644 --- a/docs/guides/rdl-metadata.md +++ b/docs/guides/rdl-metadata.md @@ -1,7 +1,7 @@ # RDL metadata ## Adoption of the metadata schema -Metadata should be created for each dataset so it can be found by human and machine searches, and so users can easily identify the dataset contents. +Metadata enables datasets to be found by human and machine searches, and so users can easily identify the dataset contents. It is strongly encouraged that any risk dataset being uploaded online has metadata prepared and uploaded with it. The Risk Data Library Standard defines metadata in JSON format, but it can be translated into table (csv/excel). `WIP` From 7341d5c087bbdcd319dd030831897859bf359e00 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:48:23 +0100 Subject: [PATCH 42/73] Update ddh-rdl.md replacing normative words --- docs/guides/ddh-rdl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index ced8b114..f121a554 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -48,7 +48,7 @@ Select the option on the right: _`continue`_. When all required (and optional) information has been entered, click on `Save as draft`. The dataset will appear under `My datasets` list. ### Bulk upload -In cases where large volumes of project data should be uploaded, DDH team can assist with bulk upload. +In cases where large volumes of project data need to be uploaded, DDH team can assist with bulk upload. The workflow steps are: 1. Login with WB credentials and store project data on the [DataCatalog Sharepoint](https://worldbankgroup.sharepoint.com.mcas.ms/sites/ddh2/Shared%20Documents/Forms/AllItems.aspx?csf=1&web=1&e=pmjIeC&CT=1683747817820&OR=OWA%2DNT&CID=1c049bb0%2Db912%2D850b%2D383e%2D4dcda23ac626&RootFolder=%2Fsites%2Fddh2%2FShared%20Documents%2FRisk%20Data%20Library&FolderCTID=0x012000374C108104547647A016D80E1BFD3084) - using appropriate folders structuring (Project/Component/...) 2. Create an excel spreadsheet describing the datatype with each dataset name, URL to data and URL to prepared JSON metadata. @@ -57,7 +57,7 @@ The workflow steps are: 5. DDH team will use scripts to upload datasets; these will appear in your `My Datasets` for review and any further editing. ### Add RDL custom metadata -- Create metadata following to Risk Data Library schema in JSON format. Metadata should be created for each dataset, and includes the description and name of resources under that dataset. Either: +- Create metadata following to Risk Data Library schema in JSON format, including the description and name of resources under that dataset. Either: 1. Write directly into JSON file 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH). It exports a JSON file to be saved with the dataset. - Upload metadata with the dataset. Once the import process is concluded, metadata will become available to download from the dataset page and as part of custom metadata shown. From 56f5152221cad7e6c40c81d28b651e7fb82f31fd Mon Sep 17 00:00:00 2001 From: matamadio Date: Tue, 6 Jun 2023 17:49:51 +0200 Subject: [PATCH 43/73] Update preparation.md --- docs/guides/preparation.md | 40 ++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 3754bb3f..027100d4 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -22,18 +22,21 @@ Structuring risk data well when it is generated and before it is delivered to a ``` _ ├── Hazard - │ ├── (example subfolders: hazard catalog, base data, hazard maps) + │ ├── (example subfolders: hazard catalog, base data, hazard maps) │ └── ├── Exposure - │ ├── (e.g., Residential buildings; Example subfolders: current exposure, projected exposure) - │ └── (e.g., Transport infrastructure) + │ ├── (e.g., Residential buildings; Example subfolders: current exposure, projected exposure) + │ └── (e.g., Transport infrastructure) ├── Vulnerability - │ └── - │ └── + │ └── X + │ └── X + │ └── X + │ └── X └── Loss - │ ├── (subfolders for each sector loss, current and projected) - │ └── - + │ ├── X (subfolders for each sector loss; current and projected) + │ └── X + │ └── X + │ └── X ``` ```{caution} @@ -43,7 +46,7 @@ Where there are many resources for a dataset, there is a temptation to include a ## Hazard data ### Format / data types -Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`), hazard curves and stochastic event set tables (which can become very large). Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    +Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). @@ -78,9 +81,9 @@ For example: ├── │ ├── │ │ ├── - │ │ │ └── Dataset: ___.zip > [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ │ └── Dataset: ___.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] │ │ ├── <2050> - │ │ │ └── Dataset: ___<2050>.zip > [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ │ └── Dataset: ___<2050>.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] │ │ └── <2080> │ │ └── <...> │ └── @@ -92,10 +95,9 @@ For example: ## Exposure data ### Format -Exposure are typically large datasets describes the location, characteristics and value of individual assets or an aggegrated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. +Exposure dataset typically describe the location, characteristics and value of individual assets or an aggegrated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. -Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). -In some cases, exposure comes as table (`csv`, `xls`). +Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). In some cases, exposure comes as table (`csv`, `xls`). ```{figure} ../img/exp_formats.jpg --- @@ -120,9 +122,9 @@ The main thematic groupings in exposure data are: ### Packaging recommendation We recommend grouping exposure data using the following hierarchy: - **Geographic scale and location** - - **Exposure category** (optional) *Sub-type* + - **Exposure category** - **Year** - + - *Sub-type* (optional) For example: ``` @@ -131,9 +133,9 @@ For example: ├── │ ├── │ │ ├── <2020> - │ │ │ └── Dataset: ____<2020>.zip > [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ │ └── Dataset: ____<2020>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] │ │ └── <2050> - │ │ └── Dataset: ____<2050>.zip > [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── Dataset: ____<2050>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] │ ├── │ │ └── <...> └── @@ -235,7 +237,7 @@ For example: └── Loss ├── - │ ├── (skip if global function) + │ ├── (skip if global function) │ │ ├── │ │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif]; [period] │ │ └── From de49e38616ed3a0a2cfd84f599bb07236eb775df Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:50:34 +0100 Subject: [PATCH 44/73] Update taxonomies index.md replacing normative words --- docs/taxonomies/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/taxonomies/index.md b/docs/taxonomies/index.md index 22bc8af2..5e4c4934 100644 --- a/docs/taxonomies/index.md +++ b/docs/taxonomies/index.md @@ -2,7 +2,7 @@ # Taxonomies -The RDLS defines taxonomies for describing risk data. In this section you will find a short summary of the taxonomies recommended for the RDLS, as well as the other main taxonomies for disaster risk assessments. +The RDLS defines taxonomies for describing risk data. In this section you will find a short summary of the taxonomies that can be used with the RDLS, as well as the other main taxonomies for disaster risk assessments. ## Hazard taxonomies @@ -10,7 +10,7 @@ There are several existing taxonomies that could have been adopted to describe h This resulted in an new taxonomy to unify the existing taxonomies for the purpose of risk data classification, focusing on those hazards and processes that are more often required in disaster risk assessments while mapping and matching alternative definitions into one consistent framework. -### RDLS Hazard Taxonomy (recommended) +### RDLS Hazard Taxonomy The **RDLS Hazard Taxonomy** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories): From 959a735da44490a989cb9e578ecdbeedbebd768f Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Tue, 6 Jun 2023 16:55:27 +0100 Subject: [PATCH 45/73] Create readme.md add readme, link to normative guidance --- docs/readme.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/readme.md diff --git a/docs/readme.md b/docs/readme.md new file mode 100644 index 00000000..c4e4c1c8 --- /dev/null +++ b/docs/readme.md @@ -0,0 +1,7 @@ +These files in this folder provide the contents of the RDLS documentation, re-written at May 2023. + +THe documentation follows open data standards best practice, advised by Open Data Services Co-operative. + +When preparing documentation, please refer to the correct use of normative and non-normative wording, summarised [here](https://docs.google.com/document/d/13g1SZO3ZSHbkymtc69lQOu9vB9vlZVZnodAcxC50l1M/edit#). + + From 262b6e89ca66349493b7ec438d4b611952e86181 Mon Sep 17 00:00:00 2001 From: matamadio Date: Tue, 6 Jun 2023 18:47:44 +0200 Subject: [PATCH 46/73] Create preparation.md --- docs/guides/preparation.md | 256 +++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 docs/guides/preparation.md diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md new file mode 100644 index 00000000..3ab00f28 --- /dev/null +++ b/docs/guides/preparation.md @@ -0,0 +1,256 @@ +# Data packaging + +The data structure and packaging of the output as obtained from the data analysts do not always align with the way we want users of the **Risk Data Library** to search and download data. + +Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) are provided as individual `RESOURCES`; it is encouraged to grouped these according to three main criteria: + +- **GEOGRAPHY**: data covering a multi-country region might be split into individual countries' datasets. +- **THEME**: for risk data, this includes hazard, sector or asset type. +Depending on the project or intended purpose of the data, one or other grouping might be preferred. + +We also need to consider: +- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about supported data formats. +- **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. +- **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. + +```{caution} +In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. For data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. Instead of splitting rasters, consider storing the raster in an alternative format that maybe more size-efficient (see Formats sections). +![Screenshot](../img/raster_clip.jpg) +``` +Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data can be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: + +``` +_ + ├── Hazard + │ ├── (example subfolders: hazard catalog, base data, hazard maps) + │ └── + ├── Exposure + │ ├── (e.g., Residential buildings; Example subfolders: current exposure, projected exposure) + │ └── (e.g., Transport infrastructure) + ├── Vulnerability + │ └── X + │ └── X + │ └── X + │ └── X + └── Loss + │ ├── X (subfolders for each sector loss; current and projected) + │ └── X + │ └── X + │ └── X +``` + +```{caution} +Where there are many resources for a dataset, it can be tempting to include a folder structure in the online Data Catalog. This is not advised and it is suggested that `datasets` be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. +``` +
    + +## Hazard data +### Format / data types +Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    + +Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). + +```{figure} ../img/hzd_tc.jpg +--- +align: left +width: 98% +--- +**Example:** two kinds of representation for the same hazard (tropical cyclones - strong winds) over the Caribbean: +
      - **Raster** data (left): max wind speed from probabilistic scenario (Return Period 100 years); +
      - **Vector** data (right): max wind speed from empirical events recorded in 40 years period (1980-2020). +``` + +### Thematic grouping +The main thematic groupings in hazard data are: +- **Hazard type**: data produced for seismic hazard, wildfire, fluvial flood, pluvial flood, etc. +- **Reference period**: e.g., historical, projections (2050, 2080) + +### Geographic grouping +- **Scale, location and resolution**: Hazard data can be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level analysis) might be grouped for individual locations (city) whenever the dataset becomes too large. + +### Packaging recommendation +We recommend grouping hazard data using the following hierarchy: +- **Hazard type** + - *Geographic scale and location* + - *Reference period* + +For example: +``` + + └── Hazard + ├── + │ ├── + │ │ ├── + │ │ │ └── Dataset: ___.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ ├── <2050> + │ │ │ └── Dataset: ___<2050>.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ └── <2080> + │ │ └── <...> + │ └── + └── + ├── <...> + └── <...> +``` +
    + +## Exposure data +### Format +Exposure dataset typically describe the location, characteristics and value of individual assets or an aggegrated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. + +Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). In some cases, exposure comes as table (`csv`, `xls`). + +```{figure} ../img/exp_formats.jpg +--- +align: left +width: 98% +--- +**Example:** two kinds of exposure representation for the same area (Dhaka, Bangladesh): +
      - **Raster** data (left): presence of built-up as binary raster layer at 10 meter resolution, derived from remote sensing (World Settlement Footprint 2019). Does not discriminate the building types; +
      - **Vector** data (right): vector area of individual buildings from Open Street Map, 2023. Does discriminate between building types. +``` + +### Thematic grouping +The main thematic groupings in exposure data are: +- **Exposure category**: e.g. Population / Built-up / Cropland +- **Sub-type**: e.g. Built-up asset type (Structure, Content, Product) / sector (Residential, Commercial) / construction type (Masonry, Wood + e.g. Population gender (male, female) / Age distribution (children; over 65) +- **Year**: reference period or year, e.g. specific year (2020), projected period (2040-2060), etc. + +### Geographic grouping +- **Scale, location and resolution**: Exposure data can be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level) might be grouped for individual locations (city) whenever the dataset becomes too large. + +### Packaging recommendation +We recommend grouping exposure data using the following hierarchy: +- **Geographic scale and location** +<<<<<<< HEAD + - **Exposure category** + - **Year** + - *Sub-type* (optional) +======= + - **Exposure category** + - *Sub-type* + - **Year** + +>>>>>>> de49e38616ed3a0a2cfd84f599bb07236eb775df + +For example: +``` + + └── Exposure + ├── + │ ├── + │ │ ├── <2020> + │ │ │ └── Dataset: ____<2020>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── <2050> + │ │ └── Dataset: ____<2050>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ ├── + │ │ └── <...> + └── + └── + └── <...> +``` +
    + +## Vulnerability data +### Format +Vulnerability data are usually provided as table data (`csv`, `xls`) or json containing the impact model function and parameters. + +```{figure} https://gfdrr.github.io/CCDR-tools/_images/vln_fl_bu.png +--- +align: center +width: 70% +--- +Example of vulnerability functions for floods (depth-damage curve) as table data ([Download](https://publications.jrc.ec.europa.eu/repository/bitstream/JRC105688/copy_of_global_flood_depth-damage_functions__30102017.xlsx)). +``` + +Often, vulnerability models are proprietary data and only shared as pictures; this has low reusability and ought to be avoided. Always try to obtain a mathematical description for this component. + +### Thematic grouping +The main thematic groupings specific to vulnerability data are: +
      - **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. +
      - **Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) + +### Geographic grouping +Vulnerability curves can be developed for individual countries or environments within a project. Where this is the case, this grouping ought to be retained. + +### Packaging recommendation +We recommend to group exposure data using the following hierarchy: +- **Hazard type** + - *Geographic* (unless global function, one dataset per country) + - **Exposure category** (Population, Built-up, ...) + - **Sub-type** (e.g. sector (Residential, Commercial), construction type (Masonry, Wood), or others) + +```{note} +This hierarchy can be maintained also when packing all the data in one file (e.g. multiple csvs into one excel file), which is advised _unless specifically demanded by the data use_ (e.g. data are formatted for usage into a specific model). +``` + +```{figure} ../img/vln_multi-table.jpg +--- +align: left +width: 98% +--- +Example of multiple vulnerability functions for floods (depth-damage curve) into one excel file ([Source: JRC](https://publications.jrc.ec.europa.eu/repository/bitstream/JRC105688/copy_of_global_flood_depth-damage_functions__30102017.xlsx)). +``` +For example, when grouping multiple functions into one excel file, the following approach can be adopted: + +``` + + └── Vulnerability + ├── + │ ├── (skip if global function) + │ │ ├── + │ │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── + │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif] + └── + └── <...> + └── <...> +``` +
    + +## Loss data +### Format +Loss data comes in the form of: +- tabulated event losses, and loss per exceedance probability +- Mapped return period loss / annual average loss - in vector files/choropleth maps +- (more rarely) as granular raster or vector data with loss value attached + +### Thematic grouping +The main thematic groupings in loss data are: +- **Hazard type**: denoting a single hazard or a multi-hazard loss metric. + - **Asset type / sector**: e.g. Structure, Content, Product / Residential, Commercial + - **Year or period**: e.g. historical (2020), projections (2040-2060), etc. + +### Geographic grouping +Losses are usually aggregated at national or subnational administrative level (ADM2, ADM1, or ADM0) or for a multi-country region. +Losses can also be provided per asset (e.g. individual buildings or raster footprints) but it is not usual, although these files are usually generated by the risk analysts. + +### Packaging recommendation +Strategy depends on the data format and size: +- if data consists of one or more table datasets, it is usually a good idea to group it together into one `excel` file so users can access all of the losses at once; +- if data consists of one or more vector datasets representing national or subnational boundary levels, these can be grouped into one `geopackage` file; +- if data consists of multiple granular spatial data, it might be packed as individual or multiple layers (depending on the size of individual layers) + +In either case, we recommend grouping exposure data using the following hierarchy: +- **Hazard type** + - *Country* + - **Exposure category** + - *Sub-type* + - Year or period + +For example: + +``` + + └── Loss + ├── + │ ├── (skip if global function) + │ │ ├── + │ │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif]; [period] + │ │ └── + │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif]; [period] + └── + └── <...> + └── <...> +``` +

    From eebaa71df6d441f65d0fa8bae1d23b962e49dbe1 Mon Sep 17 00:00:00 2001 From: matamadio Date: Tue, 6 Jun 2023 18:58:55 +0200 Subject: [PATCH 47/73] Update preparation.md --- docs/guides/preparation.md | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 3ab00f28..a280c63a 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -81,9 +81,9 @@ For example: ├── │ ├── │ │ ├── - │ │ │ └── Dataset: ___.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ │ └── Dataset: ___.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] │ │ ├── <2050> - │ │ │ └── Dataset: ___<2050>.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ │ └── Dataset: ___<2050>.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] │ │ └── <2080> │ │ └── <...> │ └── @@ -122,16 +122,9 @@ The main thematic groupings in exposure data are: ### Packaging recommendation We recommend grouping exposure data using the following hierarchy: - **Geographic scale and location** -<<<<<<< HEAD - **Exposure category** - **Year** - *Sub-type* (optional) -======= - - **Exposure category** - - *Sub-type* - - **Year** - ->>>>>>> de49e38616ed3a0a2cfd84f599bb07236eb775df For example: ``` @@ -140,9 +133,9 @@ For example: ├── │ ├── │ │ ├── <2020> - │ │ │ └── Dataset: ____<2020>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ │ └── Dataset: ____<2020>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] │ │ └── <2050> - │ │ └── Dataset: ____<2050>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── Dataset: ____<2050>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] │ ├── │ │ └── <...> └── @@ -199,9 +192,9 @@ For example, when grouping multiple functions into one excel file, the following ├── │ ├── (skip if global function) │ │ ├── - │ │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif] │ │ └── - │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif] └── └── <...> └── <...> @@ -246,9 +239,9 @@ For example: ├── │ ├── (skip if global function) │ │ ├── - │ │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif]; [period] + │ │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif]; [period] │ │ └── - │ │ └── Dataset: ___.xlsx > [subtype1.tif; subtype2.tif; subtype3.tif]; [period] + │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif]; [period] └── └── <...> └── <...> From 204de1ac840925dd46201d884ccfcd487e6d9bc1 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Fri, 9 Jun 2023 05:57:04 +0100 Subject: [PATCH 48/73] Update ddh-rdl.md remove normative words in favour of Once done, click save as draft. --- docs/guides/ddh-rdl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index f121a554..0460d6c2 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -45,7 +45,7 @@ Select the option on the right: _`continue`_. - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](../about/contacts.md#ddh-team) with request to assign data to RDL Colelction. ![Screenshot](../img/rdl_ddh4.png) -When all required (and optional) information has been entered, click on `Save as draft`. The dataset will appear under `My datasets` list. +Once done, click on `Save as draft`. The dataset will appear under `My datasets` list. ### Bulk upload In cases where large volumes of project data need to be uploaded, DDH team can assist with bulk upload. From 6f6bd05b94d44f8ccf17caec962c31a4e9b5cf6a Mon Sep 17 00:00:00 2001 From: matamadio Date: Tue, 13 Jun 2023 16:35:04 +0200 Subject: [PATCH 49/73] moving hazard taxonomies into data_model --- docs/data_model/hazard.md | 55 +++++++++++++++++++++- docs/taxonomies/index.md | 99 +-------------------------------------- 2 files changed, 55 insertions(+), 99 deletions(-) diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index f0e2071b..13b14bf9 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -93,7 +93,11 @@ The schema specifies which type of analysis and data methodology that has genera || Description | Provides additional information about a specific event | Text | || Data uncertainty | The typology of uncertainty, if considered | Text | -
    Below is the list of all hazards and related process types: +### Hazard types + +The RDLS offers a classification of hazards that are more often required in disaster risk assessments, based on the review and mapping of existing alternative definitions into one consistent framework. + +
    The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories):
    @@ -129,6 +133,55 @@ The schema specifies which type of analysis and data methodology that has genera
    +Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure: + +
    + +**Hazard type** | **Metric:Unit** | **Description** +---|---|--- +EQ | PGA:g | Peak ground acceleration in g +EQ | PGA:m/s2 | Peak ground acceleration in m/s2 (meters per second squared) +EQ | PGV:m/s | Peak ground velocity in m/s +EQ | AvgSa:m/s2 | Average spectral acceleration +EQ | Sd(T1):m | Spectral displacement +EQ | Sv(T1):m/s | Spectral velocity +EQ | PGDf:m | Permanent ground deformation +EQ | D:s | Significant duration +EQ | IA:m/s | Arias intensity (Iα) or (IA) or (Ia) +EQ | Neq:- | Effective number of cycles +EQ | EMS:- | European macroseismic scale +EQ | MMI:- | Modified Mercalli Intensity +EQ | CAV:m/s | Cumulative absolute velocity +EQ | D_B:s | Bracketed duration +FL, CF | fl_wd:m | Flood water depth +FL, CF | fl_wv:m/s | Flood flow velocity +WI | v_ect(3s):km/h | 3-sec at 10m sustained wind speed (kph) +WI | v_ect(1m):km/h | 1-min at 10m sustained wind speed (kph) +WI | v_etc(10m):km/h | 10-min sustained wind speed (kph) +WI | PGWS_tcy:km/h | Peak gust wind speed +LS | ls_fd:m | Landslide flow depth +LS | I_DF:m3/s2 | Debris-flow intensity index +LS | v_lsl:m/s2 | Landslide flow velocity +LS | ls_mfd:m | Maximum foundation displacement +LS | SD_lsl:m | Landslide displacement +TS | Rh_tsi:m | Tsunami wave runup height +TS | d_tsi:m | Tsunami inundation depth +TS | MMF:m4/s2 | Modified momentum flux +TS | F_drag:kN | Drag force +TS | Fr:- | Froude number +TS | v_tsi:m/s | Tsunami velocity +TS | F_QS:kN | Quasi-steady force +TS | MF:m3/s2 | Momentum flux +TS | h_tsi:m | Tsunami wave height +TS | Fh_tsi:m | Tsunami Horizontal Force +VO | h_vaf:m | Ash fall thickness +VO | L_vaf:kg/m2 | Ash loading +DR | CMI:- | Crop Moisture Index +DR | PDSI:- | Palmer Drought Severity Index +DR | SPI:- | Standard Precipitation Index + +
    +

    ## Examples diff --git a/docs/taxonomies/index.md b/docs/taxonomies/index.md index 5e4c4934..f6d89a3d 100644 --- a/docs/taxonomies/index.md +++ b/docs/taxonomies/index.md @@ -6,104 +6,7 @@ The RDLS defines taxonomies for describing risk data. In this section you will f ## Hazard taxonomies -There are several existing taxonomies that could have been adopted to describe hazard data. The RDL project performed a review of most of them. - -This resulted in an new taxonomy to unify the existing taxonomies for the purpose of risk data classification, focusing on those hazards and processes that are more often required in disaster risk assessments while mapping and matching alternative definitions into one consistent framework. - -### RDLS Hazard Taxonomy - -The **RDLS Hazard Taxonomy** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories): - -
    - -| **Hazard type** | **Process type** | -|---|---| -| Coastal Flood | Coastal Flood | -| Coastal Flood | Storm Surge | -| Convective Storm | Tornado | -| Drought | Agricultural Drought | -| Drought | Hydrological Drought | -| Drought | Meteorological Drought | -| Drought | Socio-economic Drought | -| Earthquake | Primary Rupture | -| Earthquake | Secondary Rupture | -| Earthquake | Ground Motion | -| Earthquake | Liquefaction | -| Extreme Temperature | Extreme cold | -| Extreme Temperature | Extreme heat | -| Flood | Fluvial Flood | -| Flood | Pluvial Flood | -| Landslide | Landslide | -| Landslide | Snow Avalanche | -| Tsunami | Tsunami | -| Volcanic | Ashfall | -| Volcanic | Ballistics | -| Volcanic | Proximal hazards | -| Volcanic | Lahar | -| Volcanic | Lava | -| Volcanic | Pyroclastic Flow | -| Wildfire | Wildfire | -| Strong Wind | Extratropical cyclone | -| Strong Wind | Tropical cyclone | - -
    -
    - -Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure: - -
    - -**Hazard type** | **Metric:Unit** | **Description** ----|---|--- -EQ | PGA:g | Peak ground acceleration in g -EQ | PGA:m/s2 | Peak ground acceleration in m/s2 (meters per second squared) -EQ | PGV:m/s | Peak ground velocity in m/s -EQ | AvgSa:m/s2 | Average spectral acceleration -EQ | Sd(T1):m | Spectral displacement -EQ | Sv(T1):m/s | Spectral velocity -EQ | PGDf:m | Permanent ground deformation -EQ | D:s | Significant duration -EQ | IA:m/s | Arias intensity (Iα) or (IA) or (Ia) -EQ | Neq:- | Effective number of cycles -EQ | EMS:- | European macroseismic scale -EQ | MMI:- | Modified Mercalli Intensity -EQ | CAV:m/s | Cumulative absolute velocity -EQ | D_B:s | Bracketed duration -FL, CF | fl_wd:m | Flood water depth -FL, CF | fl_wv:m/s | Flood flow velocity -WI | v_ect(3s):km/h | 3-sec at 10m sustained wind speed (kph) -WI | v_ect(1m):km/h | 1-min at 10m sustained wind speed (kph) -WI | v_etc(10m):km/h | 10-min sustained wind speed (kph) -WI | PGWS_tcy:km/h | Peak gust wind speed -LS | ls_fd:m | Landslide flow depth -LS | I_DF:m3/s2 | Debris-flow intensity index -LS | v_lsl:m/s2 | Landslide flow velocity -LS | ls_mfd:m | Maximum foundation displacement -LS | SD_lsl:m | Landslide displacement -TS | Rh_tsi:m | Tsunami wave runup height -TS | d_tsi:m | Tsunami inundation depth -TS | MMF:m4/s2 | Modified momentum flux -TS | F_drag:kN | Drag force -TS | Fr:- | Froude number -TS | v_tsi:m/s | Tsunami velocity -TS | F_QS:kN | Quasi-steady force -TS | MF:m3/s2 | Momentum flux -TS | h_tsi:m | Tsunami wave height -TS | Fh_tsi:m | Tsunami Horizontal Force -VO | h_vaf:m | Ash fall thickness -VO | L_vaf:kg/m2 | Ash loading -DR | CMI:- | Crop Moisture Index -DR | PDSI:- | Palmer Drought Severity Index -DR | SPI:- | Standard Precipitation Index - -
    -
    - -### Other hazard taxonomies - -For a mapping between RDLS Hazard Taxonomy and other existing hazard taxonomies, please see this here. - -List of other hazard taxonomies below: +The RDL project performed a review of the most relevant hazard taxonomies and derived a classification focusing on those hazards and processes that are more often required in disaster risk assessments, while mapping and matching alternative definitions into one consistent framework. There are several existing taxonomies that could have been adopted to describe hazard data: - [**UNDRR**](https://www.undrr.org/publication/hazard-definition-and-classification-review) (formerly UNISDR) recently proposed an extended taxonomy that covers 300 natural and anthropogenic hazards in 8 categories (Meteo-Hydrological, Geohazard, Environmental, Extraterrestrial, Chemical, Biological, Technological, Societal). From 48c89bad375e13e3e92d7291e3b8c58fe095f70f Mon Sep 17 00:00:00 2001 From: matamadio Date: Tue, 13 Jun 2023 16:40:56 +0200 Subject: [PATCH 50/73] Update hazard.md --- docs/data_model/hazard.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index 13b14bf9..848aa580 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -96,8 +96,7 @@ The schema specifies which type of analysis and data methodology that has genera ### Hazard types The RDLS offers a classification of hazards that are more often required in disaster risk assessments, based on the review and mapping of existing alternative definitions into one consistent framework. - -
    The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories): +The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories):
    @@ -132,7 +131,7 @@ The RDLS offers a classification of hazards that are more often required in disa | Strong Wind | Tropical cyclone |
    - +
    Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure:
    -

    + + ## Examples -Need to find some. +Under development ### Example name -

    + diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index 1d9ac10f..eee2030e 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -7,9 +7,13 @@ The collection can be accessed from the [collections page](https://datacatalog.w ## Add datasets -Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`.
    -Datasets needs to be packaged according to the [data preparation guidelines](preparation).
    -
    +Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`. + + +Datasets needs to be packaged according to the [data preparation guidelines](preparation). + + + Two options to upload data: - **Individually**: using the upload wizard @@ -33,14 +37,16 @@ In both cases, datasets can be added to the [RDL Collection](https://datacatalog ![World Bank Data Catalog screenshot: Add data](../img/rdl_ddh1.png) 1. **Essential Information** - ![World Bank Data Catalog screenshots: Add essential information](../img/rdl_ddh2.png)

    + ![World Bank Data Catalog screenshots: Add essential information](../img/rdl_ddh2.png) + 1. **Uploading data** - Upload dataset from your local storage - Add a resource title and description - When one resource has been submitted, another one can be added - ![World Bank Data Catalog screenshot: Add data files](../img/rdl_ddh3.png)

    + ![World Bank Data Catalog screenshot: Add data files](../img/rdl_ddh3.png) + 1. **Additional information** ![World Bank Data Catalog screenshot: Adding additional information](../img/rdl_ddh_add.png) @@ -81,4 +87,4 @@ width: 98% Example (work in progress) of the RDL metadata visualization within the World Bank Data Catalog (RDL collection). ``` -

    + diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 18073dc7..4539f17e 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -3,7 +3,8 @@ Risk data can be made of spatial or non-spatial data. - **Spatial data (geodata)** can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type. -

    + + - **Non-spatial data** most often consist of table data stored as `.xlsx` or ``.csv` files for greater compatibility. Below is a list of recommended and common geodata formats used for risk data. @@ -58,4 +59,6 @@ Wide table formatting is preferred instead of long format. **Portable Document Format** (`.pdf`) is the preferred format for reports and documentation. Add reports uncompressed whenever possible: users will commonly want to see the description for each report or document as one resource per file. Resource filetype will show as ‘PDF’. -
    + + + diff --git a/docs/guides/index.md b/docs/guides/index.md index deed0fb9..46f44815 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -6,7 +6,7 @@ Below is the guidance on best practices for dataset creation, packaging, metadat - [Data formats](formats.md) recommended and supported formats to store and share data - [Upload to the Risk Data Library collection](ddh-rdl.md) to store the risk data on the [World Bank Data Catalog](https://datacatalog.worldbank.org/int/search/collections/rdl) -

    + ```{eval-rst} .. toctree:: diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 055a3e9b..65fda5b4 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -45,13 +45,15 @@ Structuring risk data well when it is generated and before it is delivered to a Where there are many resources for a dataset, it can be tempting to include a folder structure in the online Data Catalog. This is not advised and it is suggested that `datasets` be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. ``` -
    +*** + ## Hazard data ### Format / data types -Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    +Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures. + Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). @@ -103,7 +105,7 @@ For example: └── <...> ``` -
    +*** ## Exposure data @@ -163,7 +165,8 @@ For example: └── <...> ``` -
    +*** + ## Vulnerability data @@ -184,8 +187,8 @@ Often, vulnerability models are proprietary data and only shared as pictures; th ### Thematic grouping The main thematic groupings specific to vulnerability data are: -
      - **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. -
      - \**Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) +- **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. +- **Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) ### Geographic grouping @@ -228,7 +231,9 @@ For example, when grouping multiple functions into one excel file, the following └── <...> ``` -
    + +*** + ## Loss data @@ -285,4 +290,4 @@ For example: └── <...> ``` -

    + diff --git a/docs/index.md b/docs/index.md index 2af595c5..436cfd3b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,7 +18,9 @@ This documentation provides a technical overview of the RDLS and its different e - [Guides](guides/index.md): how to implement the RDLS in your project - [About](about/index.md): other information on the roadmap, history, governance and license -
    + + + The RDL is a collaborative project managed by the [Global Facility for Disaster Reduction and Recovery (GFDRR)](https://www.gfdrr.org/) of the World Bank Group. diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md index 24661ac5..22aad900 100644 --- a/docs/rdl/core-standards.md +++ b/docs/rdl/core-standards.md @@ -35,4 +35,3 @@ Details about the development are reported [here](https://riskdatalibrary.org/re In 2019 GEM and UCL EPICentre developed a first-of-its-kind standard for loss information. Details about the development are reported [here](https://riskdatalibrary.org/resources). -

    diff --git a/docs/rdl/index.md b/docs/rdl/index.md index 3fb68a82..0800502c 100644 --- a/docs/rdl/index.md +++ b/docs/rdl/index.md @@ -11,4 +11,3 @@ This section provides more detail on the core standards that are used within the roadmap ``` -

    diff --git a/docs/rdl/roadmap.md b/docs/rdl/roadmap.md index e89948d0..762f597d 100644 --- a/docs/rdl/roadmap.md +++ b/docs/rdl/roadmap.md @@ -1,5 +1,7 @@ # History and roadmap + + ## History (2016-2021) The Risk Data Library project is led by the Global Facility for Disaster Reduction and Recovery ([GFDRR](https://www.gfdrr.org/en)), under its [Digital Earth](https://www.gfdrr.org/en/digitalearthpartnership) Thematic Area. @@ -30,6 +32,8 @@ In 2020 the existing schema, still focussed on a database format for storing dat Through 2021, GFDRR worked with open data standards specialists to explore modifying the database schema into an open standard. At the same time, a new lightweight data catalog, using the JKAN standard, was developed as a pilot for an open data catalog. + + ## Roadmap (2022 onwards) In 2022, GFDRR obtained grant funding from the [Swiss Re Foundation](https://www.swissrefoundation.org/) to further develop the Risk Data Library Standard, as an open standard. @@ -39,4 +43,4 @@ In 2022, GFDRR obtained grant funding from the [Swiss Re Foundation](https://www - GFDRR collaborated with the [Open Data Services Co-operative](https://opendataservices.coop/) to establish the JSON standard and improve documentation and sustainability of RDLS using open standards best practice. - GFDRR and Swiss Re Foundation established a new steering committee for the period of the grant funding, to oversee development of the standard and outcomes of the fellowship program. The steering committee comprises members of the original development teams, and data users from the insurance industry and curators of other open data standards. -

    + diff --git a/docs/rdl/use-cases.md b/docs/rdl/use-cases.md index a9240224..ac92888c 100644 --- a/docs/rdl/use-cases.md +++ b/docs/rdl/use-cases.md @@ -4,28 +4,34 @@ A **risk analyst** is scoping available risk data for a **disaster risk reductio ***Value***: Reduced time to find and understand existing data. -
    +*** + A **development bank** produces public good dashboards to deliver **risk insights** to client governments. The dashboard uses risk data from multiple projects to estimate the **number of assets or population** exposed to risk to assist in prioritising investments. Pulling data via the **RDL API**, many different datasets can be ingested and applied through a single workflow. ***Value***: Efficient data pipelines to ingest multiple datasets with confidence in the consistency of data structure and metadata. -
    + +*** An **academic research team** needs to demonstrate the impact of a **risk analytics and urban planning project**, by making the data available for others to use. Their dataset are formatted according to the **RDL standards** and published in a data catalogue set up for the project, using the **template implementation** available through the RDL project. ***Value***: The pre-designed open-source deployable solutions can assist a research group achieve impact efficiently. -
    + +*** + An **insurance industry analyst or model developer** needs to **build a new catastrophe model** or **analyse a new portfolio** to insure in an emerging market, where the company has limited experience and data. They are searching for existing data to support their analysis and find some existing data created by consultants in the development sector, shared via the Risk Data Library Collection of the World Bank Data Catalog, formatted according to the **RDL standards** and available to download and use. ***Value***: The data can be used directly or improved to assess the risk to the new portfolio, and could expedite the placement of insurance cover for vulnerable communities. -
    + +*** + A **humanitarian organisation** are creating a **disaster risk financing** program to fund, ex-ante, disaster response and recovery and an **anticipatory action** program. They are relying on historical observations to assess the risk to define a suitable risk layered approach and select the correct DRF solutions, and want to improve this method by including probabilistic analysis. Using RDL tools they are able to find datasets and the results of previous risk analysis. Because the datasets are formatted according to the **RDL standards** they are able to quickly understand the contents of the data and whether it is suitable for their use. ***Value***: The data can be improve existing methods in risk financing to make DRF solution more efficient and sustainable. -

    + diff --git a/docs/taxonomies/ged4all.md b/docs/taxonomies/ged4all.md index 2d75e810..cbb528ec 100644 --- a/docs/taxonomies/ged4all.md +++ b/docs/taxonomies/ged4all.md @@ -130,7 +130,10 @@ Missing attributes can be skipped from the string, e.g. | | FO | Floor material, other | -
    + + +*** + ## Lifelines @@ -172,7 +175,8 @@ Secondary road: `RDN+SE` | | RLW | Unknown: no additional information concerning rail typology. | -
    + + ### Pipelines @@ -228,7 +232,8 @@ Large elevated pipe for potable water: `CPW/PEL/DLG` | | -- | Unknown diameter | -
    + + ### Energy generation and power grid @@ -268,7 +273,8 @@ Electric distribution line through pylons: `PWG/SSM/ANC` | | C99 | Code provisions unknown | -
    + + ### Potable water and wastewater systems @@ -315,7 +321,8 @@ The alphanumeric taxonomy strings are:
    | | -- | Code provisions unknown | -
    + + ### Communication systems @@ -340,7 +347,9 @@ A communication system is comprised by offices dedicated to the reception and di | | CDH | High code | | | -- | Code provisions unknown | -
    + +*** + ## Crops, Livestock and Forestry @@ -407,7 +416,8 @@ The taxonomy for crops, livestock and forestry was defined based on existing cla | Unknown crop | CRP | | -
    + + ### Livestock @@ -445,7 +455,8 @@ The taxonomy for crops, livestock and forestry was defined based on existing cla | Unknown livestock | | | -
    + + ### Forestry @@ -474,7 +485,10 @@ The taxonomy for crops, livestock and forestry was defined based on existing cla | | FRT5+5 | Hydromorphic fresh-water vegetation - mostly composed by aquatic plants that are structurally supported by water, in wet or flooded regions most of the year (e.g. Amazon Basin) | -
    + + +*** + ## Socio-Economic indicators @@ -516,7 +530,8 @@ Natural hazards are a complex phenomenon featuring large number of interactions | | POPVNPTPP | Refugees (country of origin) | -
    + + ### Economy @@ -616,7 +631,8 @@ Natural hazards are a complex phenomenon featuring large number of interactions | | ECOTRECPT | Container port traffic (TEU: 20 foot equivalent units) | -
    + + ### Education @@ -645,7 +661,8 @@ Natural hazards are a complex phenomenon featuring large number of interactions -
    + + ### Environment @@ -678,7 +695,8 @@ Natural hazards are a complex phenomenon featuring large number of interactions | | GICPSCROL | Rule of Law | -
    + + ### Governance @@ -692,7 +710,8 @@ Natural hazards are a complex phenomenon featuring large number of interactions | Government Effectiveness | GICGEFGEF | Government Effectiveness | | Regulatory Quality | GICGEFREQ | Regulatory Quality | -
    + + ### Health @@ -726,7 +745,8 @@ Natural hazards are a complex phenomenon featuring large number of interactions | | HEAHCRPHY | Physicians | -
    + + ### Index @@ -747,7 +767,7 @@ Natural hazards are a complex phenomenon featuring large number of interactions | INXLPICQL | Logistics performance index: Competence and quality of logistics services | -
    + ### Infrastructure @@ -781,4 +801,4 @@ Natural hazards are a complex phenomenon featuring large number of interactions -

    + From 0cc0ebc0314b8589c1427ebe035589136792e47b Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 16:02:50 +0100 Subject: [PATCH 66/73] removing reference to ddh-rdl.md from guides/index.md - is really for internal use as only WB data admins can action these. Move to github readme rather than in docs. --- docs/guides/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/index.md b/docs/guides/index.md index 46f44815..237d56c1 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -15,5 +15,5 @@ Below is the guidance on best practices for dataset creation, packaging, metadat preparation formats - ddh-rdl + ``` From 8e100d53a27993e559bd3cc7914e2313aba038ef Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 16:06:55 +0100 Subject: [PATCH 67/73] moved and renamed ddh-rdl.md out of docs and onto main code folders, marked as internal guide --- docs/guides/ddh-rdl.md => internal_guide_rdl_on_WBdataCatalog.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/guides/ddh-rdl.md => internal_guide_rdl_on_WBdataCatalog.md (100%) diff --git a/docs/guides/ddh-rdl.md b/internal_guide_rdl_on_WBdataCatalog.md similarity index 100% rename from docs/guides/ddh-rdl.md rename to internal_guide_rdl_on_WBdataCatalog.md From 54f9d3ff372338a530160c550acdd1a58b873df1 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Thu, 22 Jun 2023 16:07:54 +0100 Subject: [PATCH 68/73] Update index.md removed ref in index.md to uploading to rdl --- docs/guides/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/guides/index.md b/docs/guides/index.md index 237d56c1..923d0ac9 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -4,7 +4,6 @@ Below is the guidance on best practices for dataset creation, packaging, metadat - [Data preparation and packaging](preparation.md) of risk data files and folders - [Data formats](formats.md) recommended and supported formats to store and share data -- [Upload to the Risk Data Library collection](ddh-rdl.md) to store the risk data on the [World Bank Data Catalog](https://datacatalog.worldbank.org/int/search/collections/rdl) From e4545d44eb52f40d9fd609c27eaea5f2a1f65429 Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 16:20:46 +0100 Subject: [PATCH 69/73] aligning text on guides/preparation.md with use of and discussed in standard terminology per https://github.com/GFDRR/rdl-standard/pull/97#discussion_r1237890799 --- docs/guides/preparation.md | 46 ++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 65fda5b4..4952abc8 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -1,8 +1,10 @@ # Data packaging +This section describes common data formats and file types developed during a risk assessment. For each of the hazard, exposure, vulnerability and loss components, it describes possible grouping of multiple files into minimal resources associated with a dataset, which can make it easier to find and download resources of the same type. + The data structure and packaging of the output as obtained from the data analysts do not always align with the way we want users of the **Risk Data Library** to search and download data. -Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) are provided as individual `RESOURCES`; it is encouraged to grouped these according to three main criteria: +Data shared in risk catalogues (e.g. [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) are provided as individual `RESOURCES`; it is encouraged to group these according to geography and theme: - **GEOGRAPHY**: data covering a multi-country region might be split into individual countries' datasets. - **THEME**: for risk data, this includes hazard, sector or asset type. @@ -10,16 +12,16 @@ Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https:// We also need to consider: -- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [Read more](formats) about supported data formats. -- **SELF-DEPENDENCY & COMPLETENESS**: the data resource can be interpreted and used by itself. -- **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. +- **FORMAT**: how the data are stored. It is preferred to keep data in the same format in a single resource, or split different file formats into multiple resources. [Read more](formats) about common data formats for risk information. +- **SELF-DEPENDENCY & COMPLETENESS**: the data resource should be easily interpreted and used by itself. +- **SIZE-EFFICIENCY**: try to avoid creating large datasets (> 500MB) that would be hard to download on poor connections. ```{caution} In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. For data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. Instead of splitting rasters, consider storing the raster in an alternative format that maybe more size-efficient (see Formats sections). ![Screenshot](../img/raster_clip.jpg) ``` -Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data can be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: +Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data should be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: ``` _ @@ -42,7 +44,7 @@ Structuring risk data well when it is generated and before it is delivered to a ``` ```{caution} -Where there are many resources for a dataset, it can be tempting to include a folder structure in the online Data Catalog. This is not advised and it is suggested that `datasets` be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. +Where there are many resources for a dataset, it can be tempting to include a folder structure in an online data catalog. This is not advised and it is suggested that files be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. ``` *** @@ -55,7 +57,7 @@ Where there are many resources for a dataset, it can be tempting to include a fo Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures. -Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). +Generally, hazard data (footprints) takes the form of raster (geospatial grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). ```{figure} ../img/hzd_tc.jpg --- @@ -94,9 +96,9 @@ For example: ├── │ ├── │ │ ├── - │ │ │ └── Dataset: ___.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ │ └── Resource: ___.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] │ │ ├── <2050> - │ │ │ └── Dataset: ___<2050>.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] + │ │ │ └── Resource: ___<2050>.zip -> [RP10.tif; RP25.tif; RP50.tif; RP100.tif] │ │ └── <2080> │ │ └── <...> │ └── @@ -111,7 +113,7 @@ For example: ### Format -Exposure dataset typically describe the location, characteristics and value of individual assets or an aggregated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. +Exposure data typically describe the location, characteristics and value of individual assets or an aggregated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). In some cases, exposure comes as table (`csv`, `xls`). @@ -155,9 +157,9 @@ For example: ├── │ ├── │ │ ├── <2020> - │ │ │ └── Dataset: ____<2020>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ │ └── Resource: ____<2020>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] │ │ └── <2050> - │ │ └── Dataset: ____<2050>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── Resource: ____<2050>.zip -> [subtype1.tif; subtype2.tif; subtype3.tif] │ ├── │ │ └── <...> └── @@ -199,7 +201,7 @@ Vulnerability curves can be developed for individual countries or environments w We recommend to group exposure data using the following hierarchy: - **Hazard type** - - *Geographic* (unless global function, one dataset per country) + - *Geographic* (unless global function, one resource per country) - **Exposure category** (Population, Built-up, ...) - **Sub-type** (e.g. sector (Residential, Commercial), construction type (Masonry, Wood), or others) @@ -223,9 +225,9 @@ For example, when grouping multiple functions into one excel file, the following ├── │ ├── (skip if global function) │ │ ├── - │ │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ │ └── Resource: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif] │ │ └── - │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif] + │ │ └── Resource: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif] └── └── <...> └── <...> @@ -239,10 +241,10 @@ For example, when grouping multiple functions into one excel file, the following ### Format -Loss data comes in the form of: +Loss or impact data comes in the form of: - tabulated event losses, and loss per exceedance probability -- Mapped return period loss / annual average loss - in vector files/choropleth maps +- mapped return period loss / annual average loss - in vector files/choropleth maps - (more rarely) as granular raster or vector data with loss value attached ### Thematic grouping @@ -260,10 +262,10 @@ Losses can also be provided per asset (e.g. individual buildings or raster footp ### Packaging recommendation -Strategy depends on the data format and size: +Depending on the data format and size: -- if data consists of one or more table datasets, it is usually a good idea to group it together into one `excel` file so users can access all of the losses at once; -- if data consists of one or more vector datasets representing national or subnational boundary levels, these can be grouped into one `geopackage` file; +- if data consists of one or more tables, it is usually a good idea to group it together into one `excel` file so users can access all of the losses at once; +- if data consists of one or more vector files representing national or subnational boundary levels, these can be grouped into one `geopackage` file; - if data consists of multiple granular spatial data, it might be packed as individual or multiple layers (depending on the size of individual layers) In either case, we recommend grouping exposure data using the following hierarchy: @@ -282,9 +284,9 @@ For example: ├── │ ├── (skip if global function) │ │ ├── - │ │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif]; [period] + │ │ │ └── Resource: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif]; [period] │ │ └── - │ │ └── Dataset: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif]; [period] + │ │ └── Resource: ___.xlsx -> [subtype1.tif; subtype2.tif; subtype3.tif]; [period] └── └── <...> └── <...> From 7da074916245c789436ef3e45be349b7cfa567b7 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 26 Jun 2023 09:37:41 +1200 Subject: [PATCH 70/73] requirements: Replace mdformat with mdformat-myst --- requirements.in | 2 +- requirements.txt | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/requirements.in b/requirements.in index 49f94699..4ecd45d4 100644 --- a/requirements.in +++ b/requirements.in @@ -9,4 +9,4 @@ sphinx-intl #transifex-client sphinx_rtd_theme myst-parser -mdformat +mdformat-myst diff --git a/requirements.txt b/requirements.txt index 85cecbc5..8cbc8e8d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -50,9 +50,21 @@ markdown-it-py==2.1.0 markupsafe==2.1.1 # via jinja2 mdformat==0.7.16 + # via + # mdformat-frontmatter + # mdformat-myst + # mdformat-tables +mdformat-frontmatter==2.0.1 + # via mdformat-myst +mdformat-myst==0.1.5 # via -r requirements.in +mdformat-tables==0.4.1 + # via mdformat-myst mdit-py-plugins==0.3.3 - # via myst-parser + # via + # mdformat-frontmatter + # mdformat-myst + # myst-parser mdurl==0.1.2 # via markdown-it-py myst-parser==0.18.1 @@ -70,6 +82,12 @@ pyyaml==6.0 # via myst-parser requests==2.28.1 # via sphinx +ruamel-yaml==0.17.32 + # via + # mdformat-frontmatter + # mdformat-myst +ruamel-yaml-clib==0.2.7 + # via ruamel-yaml six==1.16.0 # via livereload snowballstemmer==2.2.0 From 6c0279b09dc21c46268190bd52953184c176e6a0 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 26 Jun 2023 09:41:44 +1200 Subject: [PATCH 71/73] Run mdformat docs --- docs/about/governance.md | 35 +- docs/about/license.md | 2 - docs/data_model/exposure.md | 66 +- docs/data_model/general.md | 48 +- docs/data_model/hazard.md | 280 ++++--- docs/data_model/index.md | 7 +- docs/data_model/loss.md | 132 ++-- docs/data_model/vulnerability.md | 141 ++-- docs/glossary.md | 3 +- docs/guides/formats.md | 7 +- docs/guides/index.md | 2 - docs/guides/preparation.md | 18 +- docs/index.md | 4 - docs/rdl/core-standards.md | 1 - docs/rdl/index.md | 1 - docs/rdl/roadmap.md | 6 - docs/rdl/use-cases.md | 16 +- docs/taxonomies/ged4all.md | 1201 +++++++++++++++--------------- docs/taxonomies/index.md | 12 +- 19 files changed, 914 insertions(+), 1068 deletions(-) diff --git a/docs/about/governance.md b/docs/about/governance.md index bba886a2..f35005ed 100644 --- a/docs/about/governance.md +++ b/docs/about/governance.md @@ -4,10 +4,7 @@ This document provides an overview of the governance and processes used to devel This document is intended to be a useful reference point for anyone involved in contributing to the standard. It focuses on the roles, responsibilities and processes. This is intended to complete the [**contributor guide**](https://github.com/GFDRR/rdl-standard/blob/main/CONTRIBUTING.md) which outlines the range of ways in which contributors might support development of the standard. - -*** - - +______________________________________________________________________ ## Our governance principles @@ -21,10 +18,7 @@ As a group we are committed to the [**OpenStand principles**](https://open-stand We are working to improve our process to ensure that we are living up to these principles. This document provides a reference point for our current practices. - -*** - - +______________________________________________________________________ ## Intellectual property @@ -32,10 +26,7 @@ All the outputs from this standards initiative are openly licensed under a CC-BY Additional documentation and source code produced by this initiative will also be published under a suitable open licence. We encourage other organisations to similarly licence their work, so that it can be used for the benefit of the wider community. - -*** - - +______________________________________________________________________ ## Roles and responsibilities @@ -70,10 +61,7 @@ Membership of these groups and participation in calls and workshops will be open This model reflects the process of development of early versions of the standard, which involves convening a range of organisations around developing models for hazard, exposure and other types of data. This approach will help us to drawing on expertise, and seek focused input, from across a wide range of organisations. All working documents, issue reporting and decisions made within these groups will be reviewed and communicated via this repository. - -*** - - +______________________________________________________________________ ## How we collaborate @@ -83,9 +71,7 @@ At present our primary means of collaborating on the standard is via a set of op - [Issues](https://github.com/GFDRR/rdl-standard/issues) to propose and discuss changes to the standard - [Project boards](https://github.com/GFDRR/rdl-standard/projects) to provide transparency of the current progress and priorities around its development - -*** - +______________________________________________________________________ ## Proposing and managing changes @@ -93,10 +79,7 @@ Anyone can propose changes to the specifications. The process for doing this is We encourage disussion and feedback, by requesting people leave comments on the issue. After leaving appropriate time for further comment, once we feel that a broad consensus has been achieved around the proposed changes, we will update the schema by releasing a new version of the specification. - -*** - - +______________________________________________________________________ ## Managing releases @@ -109,8 +92,4 @@ Releases of the standard will follow the [semantic versioning](https://semver.or To support gradual migration to the latest specification, we will maintain historical versions of the specifications in named folders in this repository. - -*** - - - +______________________________________________________________________ diff --git a/docs/about/license.md b/docs/about/license.md index c0efd2ab..ecfd8c70 100644 --- a/docs/about/license.md +++ b/docs/about/license.md @@ -1,5 +1,3 @@ # License The content of this guide was prepared by GFDRR under the Risk Data Library Project and is licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/legalcode). - - diff --git a/docs/data_model/exposure.md b/docs/data_model/exposure.md index a7fd9b76..e84dd11e 100644 --- a/docs/data_model/exposure.md +++ b/docs/data_model/exposure.md @@ -28,23 +28,20 @@ The main features of an exposure dataset are specified by the **exposure model** Each exposure model includes one or more **assets**. Each asset could represent a single asset (e.g. one building) or a collection of assets (e.g aggregated buildings in an area). The exposure schema covers 4 categories and 11 occupancy types for consistent classification of assets across schema. The taxonomy source specifies the taxonomy string used to identify individual asset features within a dataset. Occupancy can be optionally assigned for night-time or day-time, e.g. to discern resident population from daily commuters. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|*| Category | Type of asset |
    • Buildings
    • Indicators
    • Infrastructures
    • Crops, livestock and forestry
    | -|*| Occupancy | Destination of use of the asset |
    • Residential
    • Commercial
    • Industrial
    • Infrastructure
    • Healthcare
    • Educational
    • Government
    • Crop
    • Livestock
    • Forestry
    • Mixed
    | -| | Occupancy time | Period of occupancy |
    • Night
    • Day | -| | Taxonomy source | Name of adopted taxonomy model | Text | -| | Taxonomy code | String used by the taxonomy model to identify specific asset features | Text | -|*| Value type | Element to which value refers |
      • Structure
      • Content
      • Product
      • Other
      | -|*| Value unit | Unit to measure exposed value | Unit code | +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | --------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \* | Category | Type of asset |
      • Buildings
      • Indicators
      • Infrastructures
      • Crops, livestock and forestry
      | +| \* | Occupancy | Destination of use of the asset |
      • Residential
      • Commercial
      • Industrial
      • Infrastructure
      • Healthcare
      • Educational
      • Government
      • Crop
      • Livestock
      • Forestry
      • Mixed
      | +| | Occupancy time | Period of occupancy |
      • Night
      • Day | +| | Taxonomy source | Name of adopted taxonomy model | Text | +| | Taxonomy code | String used by the taxonomy model to identify specific asset features | Text | +| \* | Value type | Element to which value refers |
        • Structure
        • Content
        • Product
        • Other
        | +| \* | Value unit | Unit to measure exposed value | Unit code |
        Within one exposure model (e.g. one geospatial layer) there can be one or more **cost type** associated with damage to assets. For example, the cost of the building structure by square meter and the cost of the contents of a single building. The attributes are named accordingly within the data, e.g. "Cost_structure" and "Cost_content". Additional **tags** attributes can be associated with an asset to link any information not specified in the exposure standard. - -*** - - +______________________________________________________________________ ## Examples @@ -56,27 +53,22 @@ Two exposure datasets are shown together in the example: building footprints pol ![Exposure example](../img/sample_exp.jpg) -|**Required**| **Attribute** | **Example** | -|:---:| --- | --- | -|*| Geographic coverage | Afghanistan | -|*| Exposure category | Buildings | -|*| Occupancy | Mixed | -|| Taxonomy | OSM | -|*| Value type | Structure | -|\*| Unit of measure | USD | - - - - - -|**Required**| **Attribute** | **Example** | -|:---:| --- | --- | -|*| Geographic coverage | Afghanistan | -|*| Exposure category | Indicators | -|*| Occupancy | Residential | -|| Period of occupancy | Night | -|*| Value type | Other | -|\*| Unit of measure | Count | - - -*** +| **Required** | **Attribute** | **Example** | +| :----------: | ------------------- | ----------- | +| \* | Geographic coverage | Afghanistan | +| \* | Exposure category | Buildings | +| \* | Occupancy | Mixed | +| | Taxonomy | OSM | +| \* | Value type | Structure | +| \* | Unit of measure | USD | + +| **Required** | **Attribute** | **Example** | +| :----------: | ------------------- | ----------- | +| \* | Geographic coverage | Afghanistan | +| \* | Exposure category | Indicators | +| \* | Occupancy | Residential | +| | Period of occupancy | Night | +| \* | Value type | Other | +| \* | Unit of measure | Count | + +______________________________________________________________________ diff --git a/docs/data_model/general.md b/docs/data_model/general.md index 58de1cff..a6f1a957 100644 --- a/docs/data_model/general.md +++ b/docs/data_model/general.md @@ -2,33 +2,27 @@ In addition to schema-specific attributes, each dataset is identified by a list of attributes based on the [Dublin Core Metadata Initiative Metadata Terms](https://www.dublincore.org/specifications/dublin-core/dcmi-terms). -| **Required** | **Attribute** | **Description** | **Type** | -|:---:|---|---|---| -|*| Component | Schema to be used |
        • Hazard
        • Exposure
        • Vulnerability
        • Loss | -|*| Source model | Name of source model | Text | -|*| Release date | Model release date | Date | -| | Project name | Project under which data has been produced | Text | -| | Purpose | Purpose for what the data has been produced | Text | -| | Notes | Additional details about the dataset | Text | -| | Bibliography | Author, titles and publication year of documents containing relevant information on the dataset | Authors (Year) - Title; URL | -| | Version | Version of the dataset | Number | -|*| Geo coverage | ISO code(s) of countries covered | ISOa3 country code | -|\*| License code | Type of license | Licensing options | - - - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------- | +| \* | Component | Schema to be used |
          • Hazard
          • Exposure
          • Vulnerability
          • Loss | +| \* | Source model | Name of source model | Text | +| \* | Release date | Model release date | Date | +| | Project name | Project under which data has been produced | Text | +| | Purpose | Purpose for what the data has been produced | Text | +| | Notes | Additional details about the dataset | Text | +| | Bibliography | Author, titles and publication year of documents containing relevant information on the dataset | Authors (Year) - Title; URL | +| | Version | Version of the dataset | Number | +| \* | Geo coverage | ISO code(s) of countries covered | ISOa3 country code | +| \* | License code | Type of license | Licensing options | Other attributes are specific to individual resources, covering level of aggregation, resolution and format. -| **Required** | **Attribute** | **Type** | -|:---:|---|---| -|*| Resource name | Text | -|*| Aggregation type |
            • Footprints
            • Grid
            • Administrative boundaries
            • Points or lines
            • N/A
            | -| | Description | Text | -| | Reference coordinate system | CRS EPSG | -| | Horizontal resolution | n unit | -| | Format | ext | -| | Download Url | url | - - +| **Required** | **Attribute** | **Type** | +| :----------: | --------------------------- | -------------------------------------------------------------------------------------- | +| \* | Resource name | Text | +| \* | Aggregation type |
            • Footprints
            • Grid
            • Administrative boundaries
            • Points or lines
            • N/A
            | +| | Description | Text | +| | Reference coordinate system | CRS EPSG | +| | Horizontal resolution | n unit | +| | Format | ext | +| | Download Url | url | diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index b6339bf7..f0831cce 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -48,162 +48,144 @@ The hazard schema stores data about the intensity and occurrence probability of } ``` -*** - +______________________________________________________________________ The schema specifies which type of analysis and data methodology that has generated the dataset. It supports either simulated probabilistic scenarios and empirical observations. If the dataset has been produced for a specific location, such a city, the name of the location can be included. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|*| Hazard type | Main hazard type from list of options |
            • Coastal Flood
            • Convective Storm
            • Drought
            • Earthquake
            • Extreme Temperature
            • Flood
            • Landslide
            • Tsunami
            • Volcanic
            • Wildfire
            • Strong Wind
            • Multi-Hazard
            | -|*| Analysis type | Type of analysis that generated the data |
            • Deterministic
            • Probabilistic | -|\*| Calculation method | The methodology used for the modelling of hazard |
              • Simulated
              • Observed
              • Inferred | -|| Geographic area | Specific location for which the dataset has been developed | Name of location | - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ------------------ | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \* | Hazard type | Main hazard type from list of options |
                • Coastal Flood
                • Convective Storm
                • Drought
                • Earthquake
                • Extreme Temperature
                • Flood
                • Landslide
                • Tsunami
                • Volcanic
                • Wildfire
                • Strong Wind
                • Multi-Hazard
                | +| \* | Analysis type | Type of analysis that generated the data |
                • Deterministic
                • Probabilistic | +| \* | Calculation method | The methodology used for the modelling of hazard |
                  • Simulated
                  • Observed
                  • Inferred | +| | Geographic area | Specific location for which the dataset has been developed | Name of location | When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|| Time start | The time at which the modelled scenario starts | Date | -|| Time end | The time at which the modelled scenario ends | Date | -|| Time span | The duration of the modelled period | Number | -|| Time year | One reference year to univocally identify the scenario | Date (year) | - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ------------- | ------------------------------------------------------ | ----------- | +| | Time start | The time at which the modelled scenario starts | Date | +| | Time end | The time at which the modelled scenario ends | Date | +| | Time span | The duration of the modelled period | Number | +| | Time year | One reference year to univocally identify the scenario | Date (year) | When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100) The probability of occurrence is usually calculated on the basis of a reference period that provides observations: this period can be specified by start date, end date and time span. For example, an analysis of earthquake frequency based on seismic observations from 1934 (occurrence time start) to 2001 (occurrence time end), for a total count of 66 years (occurrence time span). -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|| Frequency type | The frequency of occurrence of the present event |
                    • Rate of Exceedance
                    • Probability of Exceedance
                    • Return Period
                    | -|| Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text | -|| Occurrence time (start) | Start date of the period used to infer the occurrence probability | Date (year) | -|| Occurrence time (end) | End date of the period used to specify the occurrence probability | Date (year) | -|| Occurrence time (span) | The duration of the period used to specify the occurrence probability | Number of years | - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ----------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| | Frequency type | The frequency of occurrence of the present event |
                    • Rate of Exceedance
                    • Probability of Exceedance
                    • Return Period
                    | +| | Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text | +| | Occurrence time (start) | Start date of the period used to infer the occurrence probability | Date (year) | +| | Occurrence time (end) | End date of the period used to specify the occurrence probability | Date (year) | +| | Occurrence time (span) | The duration of the period used to specify the occurrence probability | Number of years | The schema distinguish between the hazard and process represented and the hazard and process identified as the cause, or concause for the manifestation of the represented hazard. For example, a dataset represent landslide hazard that is triggered by an earthquake will have Hazard type: Landslide; Trigger hazard type: Earthquake. The unit of measure refers to the represented hazard and process. A description can be added to cover additional information not included in the schema. - -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|| Trigger hazard type | The hazard type that has triggered the event (if any) | Hazard type | -|| Trigger process type | The process type that triggered the event (if any) | Process type | - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | -------------------- | ----------------------------------------------------- | ------------ | +| | Trigger hazard type | The hazard type that has triggered the event (if any) | Hazard type | +| | Trigger process type | The process type that triggered the event (if any) | Process type | The hazard dataset could include one or more footprints for the same event, where each is one possible realisation (i.e. one footprint could represent minimum, another footprint the average and another one the maximum). The event uncertainty can be represented explicitly, through the inclusion of multiple footprints per event. - -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|*| Hazard process | Specific hazard process | Process type | -|*| Unit of measure | Intensity measure of the process | Option list | -|| Description | Provides additional information about a specific event | Text | -|| Data uncertainty | The typology of uncertainty, if considered | Text | +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ---------------- | ------------------------------------------------------ | ------------ | +| \* | Hazard process | Specific hazard process | Process type | +| \* | Unit of measure | Intensity measure of the process | Option list | +| | Description | Provides additional information about a specific event | Text | +| | Data uncertainty | The typology of uncertainty, if considered | Text | ### Hazard types The RDLS offers a classification of hazards that are more often required in disaster risk assessments, based on the review and mapping of existing alternative definitions into one consistent framework. - The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories):
                    -| **Hazard type** | **Process type** | -|---|---| -| Coastal Flood | Coastal Flood | -| Coastal Flood | Storm Surge | -| Convective Storm | Tornado | -| Drought | Agricultural Drought | -| Drought | Hydrological Drought | -| Drought | Meteorological Drought | -| Drought | Socio-economic Drought | -| Earthquake | Primary Rupture | -| Earthquake | Secondary Rupture | -| Earthquake | Ground Motion | -| Earthquake | Liquefaction | -| Extreme Temperature | Extreme cold | -| Extreme Temperature | Extreme heat | -| Flood | Fluvial Flood | -| Flood | Pluvial Flood | -| Landslide | Landslide | -| Landslide | Snow Avalanche | -| Tsunami | Tsunami | -| Volcanic | Ashfall | -| Volcanic | Ballistics | -| Volcanic | Proximal hazards | -| Volcanic | Lahar | -| Volcanic | Lava | -| Volcanic | Pyroclastic Flow | -| Wildfire | Wildfire | -| Strong Wind | Extratropical cyclone | -| Strong Wind | Tropical cyclone | +| **Hazard type** | **Process type** | +| ------------------- | ---------------------- | +| Coastal Flood | Coastal Flood | +| Coastal Flood | Storm Surge | +| Convective Storm | Tornado | +| Drought | Agricultural Drought | +| Drought | Hydrological Drought | +| Drought | Meteorological Drought | +| Drought | Socio-economic Drought | +| Earthquake | Primary Rupture | +| Earthquake | Secondary Rupture | +| Earthquake | Ground Motion | +| Earthquake | Liquefaction | +| Extreme Temperature | Extreme cold | +| Extreme Temperature | Extreme heat | +| Flood | Fluvial Flood | +| Flood | Pluvial Flood | +| Landslide | Landslide | +| Landslide | Snow Avalanche | +| Tsunami | Tsunami | +| Volcanic | Ashfall | +| Volcanic | Ballistics | +| Volcanic | Proximal hazards | +| Volcanic | Lahar | +| Volcanic | Lava | +| Volcanic | Pyroclastic Flow | +| Wildfire | Wildfire | +| Strong Wind | Extratropical cyclone | +| Strong Wind | Tropical cyclone |
                    - -*** - +______________________________________________________________________ Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure: -
                    -**Hazard type** | **Metric:Unit** | **Description** ----|---|--- -EQ | PGA:g | Peak ground acceleration in g -EQ | PGA:m/s2 | Peak ground acceleration in m/s2 (meters per second squared) -EQ | PGV:m/s | Peak ground velocity in m/s -EQ | AvgSa:m/s2 | Average spectral acceleration -EQ | Sd(T1):m | Spectral displacement -EQ | Sv(T1):m/s | Spectral velocity -EQ | PGDf:m | Permanent ground deformation -EQ | D:s | Significant duration -EQ | IA:m/s | Arias intensity (Iα) or (IA) or (Ia) -EQ | Neq:- | Effective number of cycles -EQ | EMS:- | European macroseismic scale -EQ | MMI:- | Modified Mercalli Intensity -EQ | CAV:m/s | Cumulative absolute velocity -EQ | D_B:s | Bracketed duration -FL, CF | fl_wd:m | Flood water depth -FL, CF | fl_wv:m/s | Flood flow velocity -WI | v_ect(3s):km/h | 3-sec at 10m sustained wind speed (kph) -WI | v_ect(1m):km/h | 1-min at 10m sustained wind speed (kph) -WI | v_etc(10m):km/h | 10-min sustained wind speed (kph) -WI | PGWS_tcy:km/h | Peak gust wind speed -LS | ls_fd:m | Landslide flow depth -LS | I_DF:m3/s2 | Debris-flow intensity index -LS | v_lsl:m/s2 | Landslide flow velocity -LS | ls_mfd:m | Maximum foundation displacement -LS | SD_lsl:m | Landslide displacement -TS | Rh_tsi:m | Tsunami wave runup height -TS | d_tsi:m | Tsunami inundation depth -TS | MMF:m4/s2 | Modified momentum flux -TS | F_drag:kN | Drag force -TS | Fr:- | Froude number -TS | v_tsi:m/s | Tsunami velocity -TS | F_QS:kN | Quasi-steady force -TS | MF:m3/s2 | Momentum flux -TS | h_tsi:m | Tsunami wave height -TS | Fh_tsi:m | Tsunami Horizontal Force -VO | h_vaf:m | Ash fall thickness -VO | L_vaf:kg/m2 | Ash loading -DR | CMI:- | Crop Moisture Index -DR | PDSI:- | Palmer Drought Severity Index -DR | SPI:- | Standard Precipitation Index +| **Hazard type** | **Metric:Unit** | **Description** | +| --------------- | --------------- | ------------------------------------------------------------ | +| EQ | PGA:g | Peak ground acceleration in g | +| EQ | PGA:m/s2 | Peak ground acceleration in m/s2 (meters per second squared) | +| EQ | PGV:m/s | Peak ground velocity in m/s | +| EQ | AvgSa:m/s2 | Average spectral acceleration | +| EQ | Sd(T1):m | Spectral displacement | +| EQ | Sv(T1):m/s | Spectral velocity | +| EQ | PGDf:m | Permanent ground deformation | +| EQ | D:s | Significant duration | +| EQ | IA:m/s | Arias intensity (Iα) or (IA) or (Ia) | +| EQ | Neq:- | Effective number of cycles | +| EQ | EMS:- | European macroseismic scale | +| EQ | MMI:- | Modified Mercalli Intensity | +| EQ | CAV:m/s | Cumulative absolute velocity | +| EQ | D_B:s | Bracketed duration | +| FL, CF | fl_wd:m | Flood water depth | +| FL, CF | fl_wv:m/s | Flood flow velocity | +| WI | v_ect(3s):km/h | 3-sec at 10m sustained wind speed (kph) | +| WI | v_ect(1m):km/h | 1-min at 10m sustained wind speed (kph) | +| WI | v_etc(10m):km/h | 10-min sustained wind speed (kph) | +| WI | PGWS_tcy:km/h | Peak gust wind speed | +| LS | ls_fd:m | Landslide flow depth | +| LS | I_DF:m3/s2 | Debris-flow intensity index | +| LS | v_lsl:m/s2 | Landslide flow velocity | +| LS | ls_mfd:m | Maximum foundation displacement | +| LS | SD_lsl:m | Landslide displacement | +| TS | Rh_tsi:m | Tsunami wave runup height | +| TS | d_tsi:m | Tsunami inundation depth | +| TS | MMF:m4/s2 | Modified momentum flux | +| TS | F_drag:kN | Drag force | +| TS | Fr:- | Froude number | +| TS | v_tsi:m/s | Tsunami velocity | +| TS | F_QS:kN | Quasi-steady force | +| TS | MF:m3/s2 | Momentum flux | +| TS | h_tsi:m | Tsunami wave height | +| TS | Fh_tsi:m | Tsunami Horizontal Force | +| VO | h_vaf:m | Ash fall thickness | +| VO | L_vaf:kg/m2 | Ash loading | +| DR | CMI:- | Crop Moisture Index | +| DR | PDSI:- | Palmer Drought Severity Index | +| DR | SPI:- | Standard Precipitation Index |
                    - -*** - - +______________________________________________________________________ ## Examples @@ -215,23 +197,19 @@ Schema attributes for flood hazard map related to occurrence probability of a ri ![Screenshot](../img/hzd_fl_kabul.jpg) -|**Required**| **Attribute** | **Example** | -|:---:| --- | --- | -|*| Hazard type | Flood | -|*| Analysis type | Probabilistic | -|*| Calculation method | Simulated | -|| Geographic area | Kabul | -|| Frequency type | Return Period | -|| Occurrence probability | 100 years | -|| Occurrence time (start) | 1958 | -|| Occurrence time (end) | 2001 | -|| Occurrence time (span) | 44 years | -|*| Hazard process | River flood | -|\*| Unit of measure | Water depth (m) | - - - - +| **Required** | **Attribute** | **Example** | +| :----------: | ----------------------- | --------------- | +| \* | Hazard type | Flood | +| \* | Analysis type | Probabilistic | +| \* | Calculation method | Simulated | +| | Geographic area | Kabul | +| | Frequency type | Return Period | +| | Occurrence probability | 100 years | +| | Occurrence time (start) | 1958 | +| | Occurrence time (end) | 2001 | +| | Occurrence time (span) | 44 years | +| \* | Hazard process | River flood | +| \* | Unit of measure | Water depth (m) | ### Earthquake hazard maps for Afghanistan @@ -239,17 +217,15 @@ Schema attributes for earthquake hazard map related to occurrence probability of ![Screenshot](../img/hzd_eq_afg.jpg) -|**Required**| **Attribute** | **Example** | -|:---:| --- | --- | -|*| Hazard type | Earthquake | -|*| Analysis type | Probabilistic | -|*| Calculation method | Simulated | -|| Frequency type | Return Period | -|| Occurrence probability | 1000 years | -|| Occurrence time (start) | 800 | -|| Occurrence time (end) | 2001 | -|| Occurrence time (span) | 1200 years | -|*| Hazard process | Ground motion | -|\*| Unit of measure | PGA (g) | - - +| **Required** | **Attribute** | **Example** | +| :----------: | ----------------------- | ------------- | +| \* | Hazard type | Earthquake | +| \* | Analysis type | Probabilistic | +| \* | Calculation method | Simulated | +| | Frequency type | Return Period | +| | Occurrence probability | 1000 years | +| | Occurrence time (start) | 800 | +| | Occurrence time (end) | 2001 | +| | Occurrence time (span) | 1200 years | +| \* | Hazard process | Ground motion | +| \* | Unit of measure | PGA (g) | diff --git a/docs/data_model/index.md b/docs/data_model/index.md index 1b64b04a..5093c977 100644 --- a/docs/data_model/index.md +++ b/docs/data_model/index.md @@ -7,9 +7,6 @@ The Risk Data Library Standard schema covers [general dataset attributes](genera - [Vulnerability](vulnerability): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. - [Loss](loss): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. - - - For definitions of these terms, please see the [Glossary](https://rdl-standard.readthedocs.io/en/docs.mat/glossary.html) The diagram below shows the core relationships between schema components, and their core attributes. @@ -53,9 +50,7 @@ The diagram below shows the core relationships between schema components, and th } ``` -*** - - +______________________________________________________________________ ```{eval-rst} .. toctree:: diff --git a/docs/data_model/loss.md b/docs/data_model/loss.md index 8e17dfd5..6979818c 100644 --- a/docs/data_model/loss.md +++ b/docs/data_model/loss.md @@ -35,50 +35,42 @@ The loss schema enables to store information about hazard impact over exposure a The main attributes of the **loss model** describe the hazard and process for which the loss are calculated, the method of calculation (to discern empirical events from simulated scenarios) and the category of asset on which losses insist. The schema includes the direct links to the original dataset of hazard, exposure, and vulnerability that were used to calculate the loss. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|*| Hazard type | Main hazard type from list of options |
                    • Coastal Flood
                    • Convective Storm
                    • Drought
                    • Earthquake
                    • Extreme Temperature
                    • Flood
                    • Landslide
                    • Tsunami
                    • Volcanic
                    • Wildfire
                    • Strong Wind
                    • Multi-Hazard
                    | -| | Hazard process | Specific hazard process | Options list | -| | Calculation method | How the scenario was calculated |
                    • Inferred
                    • Simulated
                    • Observed | -|*| Exposure occupancy | Destination of use of the asset |
                      • Residential
                      • Commercial
                      • Industrial
                      • Infrastructure
                      • Healthcare
                      • Educational
                      • Government
                      • Crop
                      • Livestock
                      • Forestry
                      • Mixed
                      | -|*| Exposure category | Category of asset suffering the losses |
                      • Buildings
                      • Indicators
                      • Infrastructures
                      • Crops, livestock and forestry
                      | -|*| Value type | Element on which loss insist |
                      • Structure
                      • Content
                      • Product
                      • Other
                      | -| | Hazard link | Hazard dataset that was used to calculate loss | URL | -| | Exposure link | Exposure dataset that was used to calculate loss | URL | -| | Vulnerability link | Vulnerability dataset that was used to calculate loss | URL | - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ------------------ | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \* | Hazard type | Main hazard type from list of options |
                      • Coastal Flood
                      • Convective Storm
                      • Drought
                      • Earthquake
                      • Extreme Temperature
                      • Flood
                      • Landslide
                      • Tsunami
                      • Volcanic
                      • Wildfire
                      • Strong Wind
                      • Multi-Hazard
                      | +| | Hazard process | Specific hazard process | Options list | +| | Calculation method | How the scenario was calculated |
                      • Inferred
                      • Simulated
                      • Observed | +| \* | Exposure occupancy | Destination of use of the asset |
                        • Residential
                        • Commercial
                        • Industrial
                        • Infrastructure
                        • Healthcare
                        • Educational
                        • Government
                        • Crop
                        • Livestock
                        • Forestry
                        • Mixed
                        | +| \* | Exposure category | Category of asset suffering the losses |
                        • Buildings
                        • Indicators
                        • Infrastructures
                        • Crops, livestock and forestry
                        | +| \* | Value type | Element on which loss insist |
                        • Structure
                        • Content
                        • Product
                        • Other
                        | +| | Hazard link | Hazard dataset that was used to calculate loss | URL | +| | Exposure link | Exposure dataset that was used to calculate loss | URL | +| | Vulnerability link | Vulnerability dataset that was used to calculate loss | URL | When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|| Time start | The time at which the modelled scenario starts | Date | -|| Time end | The time at which the modelled scenario ends | Date | -|| Time span | The duration of the modelled period | Number | -|| Time year | One reference year to univocally identify the scenario | Date (year) | - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ------------- | ------------------------------------------------------ | ----------- | +| | Time start | The time at which the modelled scenario starts | Date | +| | Time end | The time at which the modelled scenario ends | Date | +| | Time span | The duration of the modelled period | Number | +| | Time year | One reference year to univocally identify the scenario | Date (year) | When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100). -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|| Frequency type | The frequency of occurrence of the present event |
                        • Rate of Exceedance
                        • Probability of Exceedance
                        • Return Period
                        | -|| Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text | - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ---------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| | Frequency type | The frequency of occurrence of the present event |
                        • Rate of Exceedance
                        • Probability of Exceedance
                        • Return Period
                        | +| | Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text | Additional attributes are specific to loss, describing the type of impact, the type of loss, the loss metric and the unit used to measure it. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|*| Impact | The type of impact |
                        • Direct
                        • Indirect
                        • Total | -|*| Loss type | The type of loss |
                          • Ground up
                          • Insured
                          | -|*| Metric | Type of loss metric |
                          • Average Annual Losses
                          • Annual Average Loss Ratio
                          • Probable Maximal Loss | -|*| Unit | Cost unit of measure | Unit code | - - - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | ------------- | -------------------- | ----------------------------------------------------------------------------------- | +| \* | Impact | The type of impact |
                            • Direct
                            • Indirect
                            • Total | +| \* | Loss type | The type of loss |
                              • Ground up
                              • Insured
                              | +| \* | Metric | Type of loss metric |
                              • Average Annual Losses
                              • Annual Average Loss Ratio
                              • Probable Maximal Loss | +| \* | Unit | Cost unit of measure | Unit code | ## Examples @@ -94,51 +86,45 @@ The losses are higher in the most densely built-up area of Kabul. ![Flood losses in Kabul](../img/lss_fl_kabul.jpg) -|**Required**| **Attribute** | **Example** | -|:---:| --- | --- | -|*| Hazard type | Flood | -| | Hazard process | River flood | -|*| Exposure occupancy | Mixed | -|*| Exposure category | Buildings | -|*| Value type | Structure | -| | Hazard link | [Dataset](http://jkan.riskdatalibrary.org/datasets/hzd-afg-fl-baseline) | -| | Exposure link | | -| | Vulnerability link | | -| | Time year | 2050 | -| | Frequency type | Return Period | -| | Occurrence probability | RP 5-1000 years | -|*| Impact | Direct | -|*| Loss type | Ground up | -|*| Metric | Average Annual Losses | -|*| Unit | USD | - - - -*** - +| **Required** | **Attribute** | **Example** | +| :----------: | ---------------------- | ----------------------------------------------------------------------- | +| \* | Hazard type | Flood | +| | Hazard process | River flood | +| \* | Exposure occupancy | Mixed | +| \* | Exposure category | Buildings | +| \* | Value type | Structure | +| | Hazard link | [Dataset](http://jkan.riskdatalibrary.org/datasets/hzd-afg-fl-baseline) | +| | Exposure link | | +| | Vulnerability link | | +| | Time year | 2050 | +| | Frequency type | Return Period | +| | Occurrence probability | RP 5-1000 years | +| \* | Impact | Direct | +| \* | Loss type | Ground up | +| \* | Metric | Average Annual Losses | +| \* | Unit | USD | + +______________________________________________________________________ Losses can be investigated as total or for individual exposed asset and infrastructure elements. ![Example of data showing exposed roads in Afghanistan](../img/exp_afg_roads.jpg) -*** +______________________________________________________________________ ### Observed losses Insert example of recorded empirical losses. -|**Required**| **Attribute** | **Example** | -|:---:| --- | --- | -|*| Hazard type | Earthquake | -|*| Analysis type | Probabilistic | -|*| Calculation method | Simulated | -|| Frequency type | Return Period | -|| Occurrence probability | 1000 years | -|| Occurrence time (start) | 800 | -|| Occurrence time (end) | 2001 | -|| Occurrence time (span) | 1200 years | -|*| Hazard process | Ground motion | -|\*| Unit of measure | PGA (g) | - - - +| **Required** | **Attribute** | **Example** | +| :----------: | ----------------------- | ------------- | +| \* | Hazard type | Earthquake | +| \* | Analysis type | Probabilistic | +| \* | Calculation method | Simulated | +| | Frequency type | Return Period | +| | Occurrence probability | 1000 years | +| | Occurrence time (start) | 800 | +| | Occurrence time (end) | 2001 | +| | Occurrence time (span) | 1200 years | +| \* | Hazard process | Ground motion | +| \* | Unit of measure | PGA (g) | diff --git a/docs/data_model/vulnerability.md b/docs/data_model/vulnerability.md index d509b8c4..ab89535f 100644 --- a/docs/data_model/vulnerability.md +++ b/docs/data_model/vulnerability.md @@ -36,98 +36,89 @@ The schema distinguishes key information describing the vulnerability model, inc The **model** attributes specify which hazard types and exposure categories the vulnerability relationship applies to. Other attributes describe the function type and the analytical approach adopted, and add notes on the model applicability in terms of location and scale. -|**Required**| **Attribute** | **Description** | **Type** | -|:---:| --- | --- | --- | -|*| Primary hazard | Main hazard type from list of options | Hazard list | -| | Secondary hazard | Secondary hazard type from list of options | Hazard list | -|*| Primary process | Primary hazard process from list of options | Process list | -| | Secondary process | Secondary hazard process from list of options | Process list | -|*| Frequency | Frequency representation type |
                                • Rate of Exceedance
                                • Probability of Exceedance
                                • Return Period
                                | -|*| Intensity unit | Unit to measure hazard intensity | Option list | -|*| Exposure category | Frequency representation type |
                                • Buildings
                                • Indicators
                                • Infrastructures
                                • Crops, livestock and forestry
                                | -|*| Exposure occupancy | Type of occupancy to which function applies |
                                • Residential
                                • Commercial
                                • Industrial
                                • Infrastructure
                                • Healthcare
                                • Educational
                                • Government
                                • Crop
                                • Livestock
                                • Forestry
                                • Mixed
                                | -| | Taxonomy source | Name of exposure taxonomy | Text | -| | Taxonomy code | Name of taxonomy | Taxonomy code to which function applies | Text | -| * | Impact type | Type of impact |
                                • Direct
                                • Indirect
                                • Total
                                | -| * | Function type | Type of function |
                                • Fragility
                                • Vulnerability
                                • Damage-to-Loss
                                | -| | Approach | Type of methodological approach |
                                • Empirical
                                • Analytical
                                • Judgement
                                • Hybrid
                                | -| * | | Relationship type | Type of relationship |
                                • Mathematical
                                • Discrete
                                | -| | Mathematical model | Type of mathematical model |
                                • Parametric
                                • Bespoke
                                | -| * | Scale applicability | At which spatial scale the function applies |
                                • Individual items
                                • Aggregated to grid
                                • Aggregated to boundaries
                                • N/A | -| * | Transferability | List of countries in which the model could be applied | ISOa3 code | -| * | Local applicability | Specific sub-area within a country or region to which the model specifically applies | Location name | -| | Transferability notes | Details about applicability to different areas | Text | - - - +| **Required** | **Attribute** | **Description** | **Type** | +| :----------: | --------------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \* | Primary hazard | Main hazard type from list of options | Hazard list | +| | Secondary hazard | Secondary hazard type from list of options | Hazard list | +| \* | Primary process | Primary hazard process from list of options | Process list | +| | Secondary process | Secondary hazard process from list of options | Process list | +| \* | Frequency | Frequency representation type |
                                  • Rate of Exceedance
                                  • Probability of Exceedance
                                  • Return Period
                                  | +| \* | Intensity unit | Unit to measure hazard intensity | Option list | +| \* | Exposure category | Frequency representation type |
                                  • Buildings
                                  • Indicators
                                  • Infrastructures
                                  • Crops, livestock and forestry
                                  | +| \* | Exposure occupancy | Type of occupancy to which function applies |
                                  • Residential
                                  • Commercial
                                  • Industrial
                                  • Infrastructure
                                  • Healthcare
                                  • Educational
                                  • Government
                                  • Crop
                                  • Livestock
                                  • Forestry
                                  • Mixed
                                  | +| | Taxonomy source | Name of exposure taxonomy | Text | +| | Taxonomy code | Name of taxonomy | Taxonomy code to which function applies | +| \* | Impact type | Type of impact |
                                  • Direct
                                  • Indirect
                                  • Total
                                  | +| \* | Function type | Type of function |
                                  • Fragility
                                  • Vulnerability
                                  • Damage-to-Loss
                                  | +| | Approach | Type of methodological approach |
                                  • Empirical
                                  • Analytical
                                  • Judgement
                                  • Hybrid
                                  | +| \* | | Relationship type | Type of relationship | +| | Mathematical model | Type of mathematical model |
                                  • Parametric
                                  • Bespoke
                                  | +| \* | Scale applicability | At which spatial scale the function applies |
                                  • Individual items
                                  • Aggregated to grid
                                  • Aggregated to boundaries
                                  • N/A | +| \* | Transferability | List of countries in which the model could be applied | ISOa3 code | +| \* | Local applicability | Specific sub-area within a country or region to which the model specifically applies | Location name | +| | Transferability notes | Details about applicability to different areas | Text | The **specifics** attributes add more optional details.
                                    -| | **Field name** | **Description** | **Example** | -|:---:| --- | --- | --- | -| | par_names | Parameters values names | MIDR , Ash depth | | -| | ub_par_value | Upper bound parameters value (Value1; Value2) | | -| | ub_par_perc | Upper bound parameters percentiles (Perc1; Perc2) | | -| | med_par_value | Median parameter values (Med1; Med2) | | -| | lb_par_value | Lower bound parameters value (Value1; Value2) | | -| | lb_par_perc | Lower bound parameters percentiles (Perc 1;Perc 2) | | -| | damage_scale_code | Code that identifies the damage scale | | -| | dm_state_name | Damage states studied in the reference study of the function | | -| | n_dm_states | Number of damage states studied in the reference study of the function | | -| | f_disc_im | Intensity measure values for the characterization of discrete functions | | -| | f_disc_ep | This field lists the associated exceeded probability values to the IM values of the previous field | | -| | lp_code | | | -| | lp_loss_value | | | -| | edp_code | Code related to specific engineering demand parameter (EDP) used to the DS thresholds | | -| | edp_name | Specific engineering demand parameter (EDP) used to the DS thresholds | | -| | edp_dmstate_thre | Specific damage state EDP threshold | | -| | im_code | Code of intensity measure | | -| | im_name | Name of intensity measure | | -| | im_range | Range of intensity measures as min;max (e.g. 0;500) | | -| | im_units | Unit of intensity measure | | -| | im_method | Type of source of the im data | | -| | im_sim_type | Type of simulation, Physics-based or IMPE | | -| | impe_referenec | Reference study of the IMPE simulation | | -| | data_countries | ISO code(s) of countries to which data refer | | -| | im_data_source | Reference studies for the IM data sources | | -| | n_events | Number of events the function has been built on | | -| | n_assets | Number of assets the function has been built on | | +| | **Field name** | **Description** | **Example** | +| :-: | ----------------- | -------------------------------------------------------------------------------------------------- | ---------------- | +| | par_names | Parameters values names | MIDR , Ash depth | +| | ub_par_value | Upper bound parameters value (Value1; Value2) | | +| | ub_par_perc | Upper bound parameters percentiles (Perc1; Perc2) | | +| | med_par_value | Median parameter values (Med1; Med2) | | +| | lb_par_value | Lower bound parameters value (Value1; Value2) | | +| | lb_par_perc | Lower bound parameters percentiles (Perc 1;Perc 2) | | +| | damage_scale_code | Code that identifies the damage scale | | +| | dm_state_name | Damage states studied in the reference study of the function | | +| | n_dm_states | Number of damage states studied in the reference study of the function | | +| | f_disc_im | Intensity measure values for the characterization of discrete functions | | +| | f_disc_ep | This field lists the associated exceeded probability values to the IM values of the previous field | | +| | lp_code | | | +| | lp_loss_value | | | +| | edp_code | Code related to specific engineering demand parameter (EDP) used to the DS thresholds | | +| | edp_name | Specific engineering demand parameter (EDP) used to the DS thresholds | | +| | edp_dmstate_thre | Specific damage state EDP threshold | | +| | im_code | Code of intensity measure | | +| | im_name | Name of intensity measure | | +| | im_range | Range of intensity measures as min;max (e.g. 0;500) | | +| | im_units | Unit of intensity measure | | +| | im_method | Type of source of the im data | | +| | im_sim_type | Type of simulation, Physics-based or IMPE | | +| | impe_referenec | Reference study of the IMPE simulation | | +| | data_countries | ISO code(s) of countries to which data refer | | +| | im_data_source | Reference studies for the IM data sources | | +| | n_events | Number of events the function has been built on | | +| | n_assets | Number of assets the function has been built on | |
                                    - - The **additional** attributes cover more specific information that helps to understand the analysis which generated the function.
                                    -| | **Field name** | **Description** | **Example** | -|:---:| --- | --- | --- | -| * | nonsampling_err | Is there sampling error? | NO | -| | type_nonsampling_err | Type of non sampling error | | -| | is_fix_nonsam_err | Has non sampling error being fixed? | TRUE | -| | is_data_aggregated | Has data been aggregated? | FALSE | -| | is_data_disaggr | Has data been disaggregated? | TRUE | -| | n_data_points_aggr | Number of aggregated data points used for the evaluation of data quality | 600 | -| | an_analysis_type | Type of analysis for Analytical functions | | -| | em_analysis_type | Type of analysis for Empirical functions | | -| | jd_analysis_type | Type of analysis for Judgement functions | | -| | is_fit_good | Is the model fitness to data good overall? | TRUE | -| | fit_ref | Reference model for fitting | -| | val_data_source | If validation has been done, source of the independent data | | -| | val_study_reference | Reference of the Validation study | | -| | sample | Type of sampling | | +| | **Field name** | **Description** | **Example** | +| :-: | -------------------- | ------------------------------------------------------------------------ | ----------- | +| \* | nonsampling_err | Is there sampling error? | NO | +| | type_nonsampling_err | Type of non sampling error | | +| | is_fix_nonsam_err | Has non sampling error being fixed? | TRUE | +| | is_data_aggregated | Has data been aggregated? | FALSE | +| | is_data_disaggr | Has data been disaggregated? | TRUE | +| | n_data_points_aggr | Number of aggregated data points used for the evaluation of data quality | 600 | +| | an_analysis_type | Type of analysis for Analytical functions | | +| | em_analysis_type | Type of analysis for Empirical functions | | +| | jd_analysis_type | Type of analysis for Judgement functions | | +| | is_fit_good | Is the model fitness to data good overall? | TRUE | +| | fit_ref | Reference model for fitting | | +| | val_data_source | If validation has been done, source of the independent data | | +| | val_study_reference | Reference of the Validation study | | +| | sample | Type of sampling | |
                                    - - ## Examples Under development ### Example name - - diff --git a/docs/glossary.md b/docs/glossary.md index 2e80ce4e..44489cf7 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -18,7 +18,7 @@ A qualitative or quantitative approach to determine the nature and extent of dis Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/terminology/disaster-risk-assessment) -```{card} Risk assessment framework, adapted from [Understanding risk in an evolving world, World Bank, 2014](https://openknowledge.worldbank.org/handle/10986/20682) +````{card} Risk assessment framework, adapted from [Understanding risk in an evolving world, World Bank, 2014](https://openknowledge.worldbank.org/handle/10986/20682) ![Risk assessment framework, adapted from Understanding risk in an evolving world, World Bank, 2014](img/risk_assessment.png) @@ -76,3 +76,4 @@ Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vu ```{card} Vulnerability: depth-damage function ![Vulnerability](img/sample_vln.jpg) +```` diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 4539f17e..3918e173 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -4,8 +4,7 @@ Risk data can be made of spatial or non-spatial data. - **Spatial data (geodata)** can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type. - -- **Non-spatial data** most often consist of table data stored as `.xlsx` or ``.csv` files for greater compatibility. +- **Non-spatial data** most often consist of table data stored as `.xlsx` or `.csv` files for greater compatibility. Below is a list of recommended and common geodata formats used for risk data. @@ -58,7 +57,3 @@ Wide table formatting is preferred instead of long format. ### Documents **Portable Document Format** (`.pdf`) is the preferred format for reports and documentation. Add reports uncompressed whenever possible: users will commonly want to see the description for each report or document as one resource per file. Resource filetype will show as ‘PDF’. - - - - diff --git a/docs/guides/index.md b/docs/guides/index.md index 923d0ac9..1b3c3f1d 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -5,8 +5,6 @@ Below is the guidance on best practices for dataset creation, packaging, metadat - [Data preparation and packaging](preparation.md) of risk data files and folders - [Data formats](formats.md) recommended and supported formats to store and share data - - ```{eval-rst} .. toctree:: :maxdepth: 1 diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 4952abc8..a098a662 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -47,8 +47,7 @@ Structuring risk data well when it is generated and before it is delivered to a Where there are many resources for a dataset, it can be tempting to include a folder structure in an online data catalog. This is not advised and it is suggested that files be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. ``` -*** - +______________________________________________________________________ ## Hazard data @@ -56,7 +55,6 @@ Where there are many resources for a dataset, it can be tempting to include a fo Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures. - Generally, hazard data (footprints) takes the form of raster (geospatial grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). ```{figure} ../img/hzd_tc.jpg @@ -107,7 +105,7 @@ For example: └── <...> ``` -*** +______________________________________________________________________ ## Exposure data @@ -167,8 +165,7 @@ For example: └── <...> ``` -*** - +______________________________________________________________________ ## Vulnerability data @@ -189,8 +186,9 @@ Often, vulnerability models are proprietary data and only shared as pictures; th ### Thematic grouping The main thematic groupings specific to vulnerability data are: + - **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. -- **Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) +- **Exposure type and sub-type**: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) ### Geographic grouping @@ -233,9 +231,7 @@ For example, when grouping multiple functions into one excel file, the following └── <...> ``` - -*** - +______________________________________________________________________ ## Loss data @@ -291,5 +287,3 @@ For example: └── <...> └── <...> ``` - - diff --git a/docs/index.md b/docs/index.md index 436cfd3b..efbdcb4f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,10 +18,6 @@ This documentation provides a technical overview of the RDLS and its different e - [Guides](guides/index.md): how to implement the RDLS in your project - [About](about/index.md): other information on the roadmap, history, governance and license - - - - The RDL is a collaborative project managed by the [Global Facility for Disaster Reduction and Recovery (GFDRR)](https://www.gfdrr.org/) of the World Bank Group. ```{eval-rst} diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md index 22aad900..56116870 100644 --- a/docs/rdl/core-standards.md +++ b/docs/rdl/core-standards.md @@ -34,4 +34,3 @@ Details about the development are reported [here](https://riskdatalibrary.org/re In 2019 GEM and UCL EPICentre developed a first-of-its-kind standard for loss information. Details about the development are reported [here](https://riskdatalibrary.org/resources). - diff --git a/docs/rdl/index.md b/docs/rdl/index.md index 0800502c..93ac9a32 100644 --- a/docs/rdl/index.md +++ b/docs/rdl/index.md @@ -10,4 +10,3 @@ This section provides more detail on the core standards that are used within the use-cases roadmap ``` - diff --git a/docs/rdl/roadmap.md b/docs/rdl/roadmap.md index 762f597d..2e60dae8 100644 --- a/docs/rdl/roadmap.md +++ b/docs/rdl/roadmap.md @@ -1,7 +1,5 @@ # History and roadmap - - ## History (2016-2021) The Risk Data Library project is led by the Global Facility for Disaster Reduction and Recovery ([GFDRR](https://www.gfdrr.org/en)), under its [Digital Earth](https://www.gfdrr.org/en/digitalearthpartnership) Thematic Area. @@ -32,8 +30,6 @@ In 2020 the existing schema, still focussed on a database format for storing dat Through 2021, GFDRR worked with open data standards specialists to explore modifying the database schema into an open standard. At the same time, a new lightweight data catalog, using the JKAN standard, was developed as a pilot for an open data catalog. - - ## Roadmap (2022 onwards) In 2022, GFDRR obtained grant funding from the [Swiss Re Foundation](https://www.swissrefoundation.org/) to further develop the Risk Data Library Standard, as an open standard. @@ -42,5 +38,3 @@ In 2022, GFDRR obtained grant funding from the [Swiss Re Foundation](https://www - GFDRR established the Disaster and Climate Risk Fellowship program, in which The Digital Earth team at GFDRR is recruiting fellows from vulnerable countries to support World Bank disaster and climate risk data projects and contribute to the adoption of the new Risk Data Library Standard. The fellowship program offers a 6-month placement for climate and disaster risk professionals from selected climate-vulnerable countries to work with the Risk Data Library Standard to access, create and communicate climate risk knowledge with their communities. The selected countries are: Bangladesh, Democratic Republic of the Congo, India, Indonesia, Philippines, and South Africa. - GFDRR collaborated with the [Open Data Services Co-operative](https://opendataservices.coop/) to establish the JSON standard and improve documentation and sustainability of RDLS using open standards best practice. - GFDRR and Swiss Re Foundation established a new steering committee for the period of the grant funding, to oversee development of the standard and outcomes of the fellowship program. The steering committee comprises members of the original development teams, and data users from the insurance industry and curators of other open data standards. - - diff --git a/docs/rdl/use-cases.md b/docs/rdl/use-cases.md index ac92888c..20b228e2 100644 --- a/docs/rdl/use-cases.md +++ b/docs/rdl/use-cases.md @@ -4,34 +4,26 @@ A **risk analyst** is scoping available risk data for a **disaster risk reductio ***Value***: Reduced time to find and understand existing data. -*** - +______________________________________________________________________ A **development bank** produces public good dashboards to deliver **risk insights** to client governments. The dashboard uses risk data from multiple projects to estimate the **number of assets or population** exposed to risk to assist in prioritising investments. Pulling data via the **RDL API**, many different datasets can be ingested and applied through a single workflow. ***Value***: Efficient data pipelines to ingest multiple datasets with confidence in the consistency of data structure and metadata. - -*** +______________________________________________________________________ An **academic research team** needs to demonstrate the impact of a **risk analytics and urban planning project**, by making the data available for others to use. Their dataset are formatted according to the **RDL standards** and published in a data catalogue set up for the project, using the **template implementation** available through the RDL project. ***Value***: The pre-designed open-source deployable solutions can assist a research group achieve impact efficiently. - -*** - +______________________________________________________________________ An **insurance industry analyst or model developer** needs to **build a new catastrophe model** or **analyse a new portfolio** to insure in an emerging market, where the company has limited experience and data. They are searching for existing data to support their analysis and find some existing data created by consultants in the development sector, shared via the Risk Data Library Collection of the World Bank Data Catalog, formatted according to the **RDL standards** and available to download and use. ***Value***: The data can be used directly or improved to assess the risk to the new portfolio, and could expedite the placement of insurance cover for vulnerable communities. - -*** - +______________________________________________________________________ A **humanitarian organisation** are creating a **disaster risk financing** program to fund, ex-ante, disaster response and recovery and an **anticipatory action** program. They are relying on historical observations to assess the risk to define a suitable risk layered approach and select the correct DRF solutions, and want to improve this method by including probabilistic analysis. Using RDL tools they are able to find datasets and the results of previous risk analysis. Because the datasets are formatted according to the **RDL standards** they are able to quickly understand the contents of the data and whether it is suitable for their use. ***Value***: The data can be improve existing methods in risk financing to make DRF solution more efficient and sustainable. - - diff --git a/docs/taxonomies/ged4all.md b/docs/taxonomies/ged4all.md index cbb528ec..4f58f2b6 100644 --- a/docs/taxonomies/ged4all.md +++ b/docs/taxonomies/ged4all.md @@ -22,118 +22,116 @@ Missing attributes can be skipped from the string, e.g.
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Material of the Lateral Load-Resisting System (LLRS) | -- | Unknown material | -| | C | Concrete, unknown reinforcement | -| | CU | Concrete, unreinforced * | -| | CR | Concrete, reinforced | -| | SRC | Concrete, composite with steel section | -| | S | Steel | -| | ME | Metal (except steel) | -| | M | Masonry, unknown reinforcement | -| | MUR | Masonry, unreinforced | -| | MCF | Masonry, confined | -| | MR | Masonry, reinforced | -| | E | Earth, unknown reinforcement | -| | EU | Earth, unreinforced | -| | ER | Earth, reinforced | -| | W | Wood | -| | MIX | Mixed materials (hybrid or composite) | -| | INF | Informal materials | -| | MATO | Other material | -| Height | -- | Number of storeys unknown | -| | H:n | n is the exact number of storeys above ground | -| | HBET:a-b | a-b is the range of number of storeys above ground (a=upper bound, and b= lower bound). a-b, range of number of storeys above | -| | HAPP:n | HAPP:n, approximate number of storeys above ground. | -| Date of Construction or Retrofit | -- | Year unknown | -| | Y :n | n is the exact date of construction or retrofit | -| | YBET:a-b | a and b are the upper and lower bound for the date of construction or retrofit | -| | YPRE:n | n is the latest possible date of construction or retrofit | -| | YAPP:n | n is the approximate date of construction or retrofit | -| Occupancy | -- | Unknown occupancy type | -| | RES | Residential, unknown type | -| | RES1 | Residential, Single dwelling | -| | RES2 | Residential, Multi-unit | -| | RES2A | Residential, 2 Units (duplex) | -| | RES2B | Residential, 3-4 Units | -| | RES2C | Residential, 5-9 Units | -| | RES2D | Residential, 10-19 Units | -| | RES2E | Residential, 20-49 Units | -| | RES2F | Residential, 50+ Units | -| | RES3 | Residential, Temporary lodging | -| | RES4 | Residential, Institutional housing | -| | RES5 | Residential, Mobile home | -| | COM | Commercial and public, Unknown type | -| | COM1 | Commercial and public, Retail trade | -| | COM2 | Commercial and public, Wholesale trade and storage (warehouse) | -| | COM3 | Commercial and public, Offices, professional/technical services | -| | COM4 | Commercial and public, Hospital/medical clinic | -| | COM5 | Commercial and public, Entertainment | -| | COM6 | Commercial and public, Public building | -| | COM7 | Commercial and public, Covered parking garage | -| | COM8 | Commercial and public, Bus station | -| | COM9 | Commercial and public, Railway station | -| | COM10 | Commercial and public, Airport | -| | COM11 | Commercial and public, Recreation and leisure | -| | MIX | Mixed, unknown type | -| | MIX1 | Mixed use, Mostly residential and commercial | -| | MIX2 | Mixed use, Mostly commercial and residential | -| | MIX3 | Mixed use, Mostly commercial and industrial | -| | MIX4 | Mixed use, Mostly residential and industrial | -| | MIX5 | Mixed use, Mostly industrial and commercial | -| | MIX6 | Mixed use, Mostly industrial and residential | -| | IND | Industrial, unknown type | -| | IND1 | Industrial, Heavy industrial | -| | IND2 | Industrial, Light industrial | -| | AGR | Agriculture, unknown type | -| | AGR1 | Agriculture, Produce storage | -| | AGR2 | Agriculture, Animal shelter | -| | AGR3 | Agriculture, Agricultural processing | -| | ASS | Assembly, unknown type | -| | ASS1 | Assembly, Religious gathering | -| | ASS2 | Assembly, Arena | -| | ASS3 | Assembly, Cinema or concert hall | -| | ASS4 | Assembly, Other gatherings | -| | GOV | Government, unknown type | -| | GOV1 | Government, general services | -| | GOV2 | Government, emergency response | -| | EDU | Education, unknown type | -| | EDU1 | Education, Pre-school facility | -| | EDU2 | Education, School | -| | EDU3 | Education, College/university, offices and/or classrooms | -| | EDU4 | Education, College/university, research facilities and/or labs | -| | OCO | Other occupancy type | -| Ground floor hydrodynamics | -- | Ground floor hydrodynamics unknown | -| | GFO | Ground floor plan fully open (no walls) | -| | GFH | Ground floor plan partially open (i.e. with at least 50% of walls). | -| | GFM | Not open, many doors and/or windows (i.e. more than 20% of wall surface area). | -| | GFN | Not open, few doors and/or windows (i.e. less than 20% of wall surface area) | -| Roof Shape | -- | Unknown roof shape | -| | RSH1 | Flat | -| | RSH2 | Pitched with gable ends | -| | RSH3 | Pitched and hipped | -| | RSH4 | Pitched with dormers | -| | RSH5 | Monopitch | -| | RSH6 | Sawtooth | -| | RSH7 | Curved | -| | RSH8 | Complex regular | -| | RSH9 | Complex irregular | -| | RSHO | Roof shape, other | -| Floor | -- | Floor material, unknown | -| | FN | No elevated or suspended floor material (single-storey building) | -| | FM | Masonry | -| | FE | Earthen | -| | FC | Concrete | -| | FME | Metal | -| | FW | Wood | -| | FO | Floor material, other | +| Attribute | Code | Description | +| ---------------------------------------------------- | :------: | ----------------------------------------------------------------------------------------------------------------------------- | +| Material of the Lateral Load-Resisting System (LLRS) | -- | Unknown material | +| | C | Concrete, unknown reinforcement | +| | CU | Concrete, unreinforced \* | +| | CR | Concrete, reinforced | +| | SRC | Concrete, composite with steel section | +| | S | Steel | +| | ME | Metal (except steel) | +| | M | Masonry, unknown reinforcement | +| | MUR | Masonry, unreinforced | +| | MCF | Masonry, confined | +| | MR | Masonry, reinforced | +| | E | Earth, unknown reinforcement | +| | EU | Earth, unreinforced | +| | ER | Earth, reinforced | +| | W | Wood | +| | MIX | Mixed materials (hybrid or composite) | +| | INF | Informal materials | +| | MATO | Other material | +| Height | -- | Number of storeys unknown | +| | H:n | n is the exact number of storeys above ground | +| | HBET:a-b | a-b is the range of number of storeys above ground (a=upper bound, and b= lower bound). a-b, range of number of storeys above | +| | HAPP:n | HAPP:n, approximate number of storeys above ground. | +| Date of Construction or Retrofit | -- | Year unknown | +| | Y :n | n is the exact date of construction or retrofit | +| | YBET:a-b | a and b are the upper and lower bound for the date of construction or retrofit | +| | YPRE:n | n is the latest possible date of construction or retrofit | +| | YAPP:n | n is the approximate date of construction or retrofit | +| Occupancy | -- | Unknown occupancy type | +| | RES | Residential, unknown type | +| | RES1 | Residential, Single dwelling | +| | RES2 | Residential, Multi-unit | +| | RES2A | Residential, 2 Units (duplex) | +| | RES2B | Residential, 3-4 Units | +| | RES2C | Residential, 5-9 Units | +| | RES2D | Residential, 10-19 Units | +| | RES2E | Residential, 20-49 Units | +| | RES2F | Residential, 50+ Units | +| | RES3 | Residential, Temporary lodging | +| | RES4 | Residential, Institutional housing | +| | RES5 | Residential, Mobile home | +| | COM | Commercial and public, Unknown type | +| | COM1 | Commercial and public, Retail trade | +| | COM2 | Commercial and public, Wholesale trade and storage (warehouse) | +| | COM3 | Commercial and public, Offices, professional/technical services | +| | COM4 | Commercial and public, Hospital/medical clinic | +| | COM5 | Commercial and public, Entertainment | +| | COM6 | Commercial and public, Public building | +| | COM7 | Commercial and public, Covered parking garage | +| | COM8 | Commercial and public, Bus station | +| | COM9 | Commercial and public, Railway station | +| | COM10 | Commercial and public, Airport | +| | COM11 | Commercial and public, Recreation and leisure | +| | MIX | Mixed, unknown type | +| | MIX1 | Mixed use, Mostly residential and commercial | +| | MIX2 | Mixed use, Mostly commercial and residential | +| | MIX3 | Mixed use, Mostly commercial and industrial | +| | MIX4 | Mixed use, Mostly residential and industrial | +| | MIX5 | Mixed use, Mostly industrial and commercial | +| | MIX6 | Mixed use, Mostly industrial and residential | +| | IND | Industrial, unknown type | +| | IND1 | Industrial, Heavy industrial | +| | IND2 | Industrial, Light industrial | +| | AGR | Agriculture, unknown type | +| | AGR1 | Agriculture, Produce storage | +| | AGR2 | Agriculture, Animal shelter | +| | AGR3 | Agriculture, Agricultural processing | +| | ASS | Assembly, unknown type | +| | ASS1 | Assembly, Religious gathering | +| | ASS2 | Assembly, Arena | +| | ASS3 | Assembly, Cinema or concert hall | +| | ASS4 | Assembly, Other gatherings | +| | GOV | Government, unknown type | +| | GOV1 | Government, general services | +| | GOV2 | Government, emergency response | +| | EDU | Education, unknown type | +| | EDU1 | Education, Pre-school facility | +| | EDU2 | Education, School | +| | EDU3 | Education, College/university, offices and/or classrooms | +| | EDU4 | Education, College/university, research facilities and/or labs | +| | OCO | Other occupancy type | +| Ground floor hydrodynamics | -- | Ground floor hydrodynamics unknown | +| | GFO | Ground floor plan fully open (no walls) | +| | GFH | Ground floor plan partially open (i.e. with at least 50% of walls). | +| | GFM | Not open, many doors and/or windows (i.e. more than 20% of wall surface area). | +| | GFN | Not open, few doors and/or windows (i.e. less than 20% of wall surface area) | +| Roof Shape | -- | Unknown roof shape | +| | RSH1 | Flat | +| | RSH2 | Pitched with gable ends | +| | RSH3 | Pitched and hipped | +| | RSH4 | Pitched with dormers | +| | RSH5 | Monopitch | +| | RSH6 | Sawtooth | +| | RSH7 | Curved | +| | RSH8 | Complex regular | +| | RSH9 | Complex irregular | +| | RSHO | Roof shape, other | +| Floor | -- | Floor material, unknown | +| | FN | No elevated or suspended floor material (single-storey building) | +| | FM | Masonry | +| | FE | Earthen | +| | FC | Concrete | +| | FME | Metal | +| | FW | Wood | +| | FO | Floor material, other |
                                    - -*** - +______________________________________________________________________ ## Lifelines @@ -156,28 +154,26 @@ Secondary road: `RDN+SE`
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Road network | RDN+MO | Motorway: restricted access major divided highway (i.e. freeway), normally with 2 or more running lanes plus emergency hard shoulder | -| | RDN+TR | Trunk: the most important roads in a country's system that aren't motorways (not necessarily be a divided highway) | -| | RDN+PR | Primary: the next most important roads in a country's system (often link larger towns) | -| | RDN+SE | Secondary: the next most important roads in a country's system (often link towns) | -| | RDN+TE | Tertiary: the next most important roads in a country's system (often link smaller towns and villages) | -| | RDN+UN | Unclassified: the least important through roads in a country's system (often link villages and hamlets) | -| | RDN+RE | Residential: roads which serve as an access to housing, without function of connecting settlements. Often lined with housing. | -| | RDN+SR | Service: access roads to, or within an industrial estate, camp site, business park, car park etc. | -| | RDN | Unknown: no information concerning road typology | -| Railway network | RLW+LR | Light rail: a higher-standard tram system, normally in its own right-of-way. Often reaches a considerable length (tens of kilometer) | -| | RLW+MR | Monorail: a single-rail railway | -| | RLW+RL | Rail: full sized passenger or freight trains in the standard gauge for the country or state | -| | RLW+SW | Subway: a city passenger underground rail service running mostly grade separated | -| | RLW+TR | Tram: one or two carriage rail vehicles, usually sharing motor road. | -| | RLW | Unknown: no additional information concerning rail typology. | +| Attribute | Code | Description | +| --------------- | :----: | -------------------------------------------------------------------------------------------------------------------------------------- | +| Road network | RDN+MO | Motorway: restricted access major divided highway (i.e. freeway), normally with 2 or more running lanes plus emergency hard shoulder | +| | RDN+TR | Trunk: the most important roads in a country's system that aren't motorways (not necessarily be a divided highway) | +| | RDN+PR | Primary: the next most important roads in a country's system (often link larger towns) | +| | RDN+SE | Secondary: the next most important roads in a country's system (often link towns) | +| | RDN+TE | Tertiary: the next most important roads in a country's system (often link smaller towns and villages) | +| | RDN+UN | Unclassified: the least important through roads in a country's system (often link villages and hamlets) | +| | RDN+RE | Residential: roads which serve as an access to housing, without function of connecting settlements. Often lined with housing. | +| | RDN+SR | Service: access roads to, or within an industrial estate, camp site, business park, car park etc. | +| | RDN | Unknown: no information concerning road typology | +| Railway network | RLW+LR | Light rail: a higher-standard tram system, normally in its own right-of-way. Often reaches a considerable length (tens of kilometer) | +| | RLW+MR | Monorail: a single-rail railway | +| | RLW+RL | Rail: full sized passenger or freight trains in the standard gauge for the country or state | +| | RLW+SW | Subway: a city passenger underground rail service running mostly grade separated | +| | RLW+TR | Tram: one or two carriage rail vehicles, usually sharing motor road. | +| | RLW | Unknown: no additional information concerning rail typology. |
                                    - - ### Pipelines The taxonomy presented herein has been developed using the classification experience developed in Syner-G and STREST (Crowley et al., 2016). @@ -187,54 +183,52 @@ Large elevated pipe for potable water: `CPW/PEL/DLG`
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Content | CGS | Gas | -| | COL | Oil | -| | CPW | Potable water | -| | CWW | Wastewater | -| | COT | Other content | -| | -- | Unknown | -| Position | PBU | Buried | -| | PEL | Elevated | -| Material | MPC | Polyvinyl chloride | -| | MPE | Polyethylene | -| | MCI | Cast iron | -| | MDI | Ductile iron | -| | MWS | Welded steel | -| | MRM | Reinforced plastic mortar | -| | MRM | Resin transfer moulding | -| | MAC | Asbestos-cement | -| | MC | Concrete | -| | MCL | Clay | -| | MO | Other material | -| | MUB | Unknown, brittle | -| | MUD | Unknown, ductile | -| | -- | Unknown material | -| Joint type | JAW | Arc welded | -| | JGW | Gas welded | -| | JCE | Cemented | -| | JFW | Fillet weld | -| | JBS | Bell and spigot (caulked) | -| | JRI | Riveted | -| | JMR | Mechanical restrained | -| | JSC | Screwed | -| | JRU | Rubber gasket | -| | JSG | Unknown, segmented | -| | JCO | Unknown, continuous | -| | JO | Other joint | -| | -- | Unknown joint | -| Soil type | SCO | Corrosive | -| | SNC | Non corrosive | -| | -- | Unknown soil type | -| Diameter | DSM | Small (\< 40 cm) | -| | DLG | Large (≥ 40 cm) | -| | -- | Unknown diameter | +| Attribute | Code | Description | +| ---------- | :--: | --------------------------- | +| Content | CGS | Gas | +| | COL | Oil | +| | CPW | Potable water | +| | CWW | Wastewater | +| | COT | Other content | +| | -- | Unknown | +| Position | PBU | Buried | +| | PEL | Elevated | +| Material | MPC | Polyvinyl chloride | +| | MPE | Polyethylene | +| | MCI | Cast iron | +| | MDI | Ductile iron | +| | MWS | Welded steel | +| | MRM | Reinforced plastic mortar | +| | MRM | Resin transfer moulding | +| | MAC | Asbestos-cement | +| | MC | Concrete | +| | MCL | Clay | +| | MO | Other material | +| | MUB | Unknown, brittle | +| | MUD | Unknown, ductile | +| | -- | Unknown material | +| Joint type | JAW | Arc welded | +| | JGW | Gas welded | +| | JCE | Cemented | +| | JFW | Fillet weld | +| | JBS | Bell and spigot (caulked) | +| | JRI | Riveted | +| | JMR | Mechanical restrained | +| | JSC | Screwed | +| | JRU | Rubber gasket | +| | JSG | Unknown, segmented | +| | JCO | Unknown, continuous | +| | JO | Other joint | +| | -- | Unknown joint | +| Soil type | SCO | Corrosive | +| | SNC | Non corrosive | +| | -- | Unknown soil type | +| Diameter | DSM | Small (\< 40 cm) | +| | DLG | Large (≥ 40 cm) | +| | -- | Unknown diameter |
                                    - - ### Energy generation and power grid We follow the taxonomy adopted by HAZUS, which allows capturing the capacity (e.g. voltage) of the elements. For the purposes of assessing damage due to natural disasters, it is also relevant to identify the presence of anchorage and whether the elements have been designed according to a particular code. The taxonomy for component of the power grid can thus be presented in the following manner: `PWG/ENERGYSOURCE/COMPONENT/ANCHORAGE/CODE PROVISIONS`, e.g. @@ -243,39 +237,37 @@ Electric distribution line through pylons: `PWG/SSM/ANC`
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Energy Source | OIL | Oil | -| | GEO | Geothermal | -| | NUC | Nuclear | -| | HYD | Hydroelectric | -| | WND | Wind | -| | SOL | Solar | -| | TDL | Tidal wave | -| | GAS | Gas | -| | BIO | Biomass | -| | O | Other | -| | -- | Unknown | -| Power Capacity | PC: | Value (integer) | -| | -- | Unknown power capacity | -| Power grid | SSL | Low Voltage (\<115 KV) Substation | -| | SSM | Medium Voltage (115-500 KV) Substation | -| | SSH | High Voltage (>500 KV) Substation | -| | DTC | Distribution circuit | -| | TMT | Transmission tower | -| Grid anchorage | ANC | Anchored | -| | AUN | Unanchored | -| | -- | Unknown anchorage | -| Code provisions | CDN | No code (non-engineered) | -| | CDL | Low code | -| | CDM | Moderate code | -| | CDH | High code | -| | C99 | Code provisions unknown | +| Attribute | Code | Description | +| ----------------- | :--: | ---------------------------------------- | +| Energy Source | OIL | Oil | +| | GEO | Geothermal | +| | NUC | Nuclear | +| | HYD | Hydroelectric | +| | WND | Wind | +| | SOL | Solar | +| | TDL | Tidal wave | +| | GAS | Gas | +| | BIO | Biomass | +| | O | Other | +| | -- | Unknown | +| Power Capacity | PC: | Value (integer) | +| | -- | Unknown power capacity | +| Power grid | SSL | Low Voltage (\<115 KV) Substation | +| | SSM | Medium Voltage (115-500 KV) Substation | +| | SSH | High Voltage (>500 KV) Substation | +| | DTC | Distribution circuit | +| | TMT | Transmission tower | +| Grid anchorage | ANC | Anchored | +| | AUN | Unanchored | +| | -- | Unknown anchorage | +| Code provisions | CDN | No code (non-engineered) | +| | CDL | Low code | +| | CDM | Moderate code | +| | CDH | High code | +| | C99 | Code provisions unknown |
                                    - - ### Potable water and wastewater systems Potable water systems are comprised by water treatment plants, storage tanks, pipelines and pumping stations, while wastewater systems are composed by wastewater treatment plants, lifting stations and @@ -287,69 +279,65 @@ The alphanumeric taxonomy strings are:
                                    -| Attribute | Code | Description | -|-|:-:|-| -| **Potable water** | PWR | | -| Component | PWS | Small potable water treatment plant (\<50 MGD) | -| | PWM | Medium potable water treatment plant (50-200 MGD) | -| | PWL | Large potable water treatment plant (>200 MGD) | -| | PPS | Small pumping plant (\<10 MGD) | -| | PPM | Medium pumping plant (10-50 MGD) | -| | PPL | Large pumping plant (>50 MGD) | -| Anchorage | ANC | Anchored | -| | AUN | Unanchored | -| | -- | Unknown anchorage | -| Code provisions | CDN | No code (non-engineered) | -| | CDL | Low code | -| | CDM | Moderate code | -| | CDH | High code | -| | -- | Code provisions unknown | -| **Wastewater** | WWR | | -| Component | WWS | Small wastewater treatment plant (\<50 MGD) | -| | WWM | Medium wastewater treatment plant (50-200 MGD) | -| | WWL | Large wastewater treatment plant (>200 MGD) | -| | LSS | Small lift station (\<10 MGD) | -| | LSM | Medium lift station (10-50 MGD) | -| | LSL | Large lift station (>50 MGD) | -| Anchorage | ANC | Anchored | -| | AUN | Unanchored | -| | -- | Unknown anchorage | -| Code provisions | CDN | No code (non-engineered) | -| | CDL | Low code | -| | CDM | Moderate code | -| | CDH | High code | -| | -- | Code provisions unknown | +| Attribute | Code | Description | +| ----------------- | :--: | ------------------------------------------------- | +| **Potable water** | PWR | | +| Component | PWS | Small potable water treatment plant (\<50 MGD) | +| | PWM | Medium potable water treatment plant (50-200 MGD) | +| | PWL | Large potable water treatment plant (>200 MGD) | +| | PPS | Small pumping plant (\<10 MGD) | +| | PPM | Medium pumping plant (10-50 MGD) | +| | PPL | Large pumping plant (>50 MGD) | +| Anchorage | ANC | Anchored | +| | AUN | Unanchored | +| | -- | Unknown anchorage | +| Code provisions | CDN | No code (non-engineered) | +| | CDL | Low code | +| | CDM | Moderate code | +| | CDH | High code | +| | -- | Code provisions unknown | +| **Wastewater** | WWR | | +| Component | WWS | Small wastewater treatment plant (\<50 MGD) | +| | WWM | Medium wastewater treatment plant (50-200 MGD) | +| | WWL | Large wastewater treatment plant (>200 MGD) | +| | LSS | Small lift station (\<10 MGD) | +| | LSM | Medium lift station (10-50 MGD) | +| | LSL | Large lift station (>50 MGD) | +| Anchorage | ANC | Anchored | +| | AUN | Unanchored | +| | -- | Unknown anchorage | +| Code provisions | CDN | No code (non-engineered) | +| | CDL | Low code | +| | CDM | Moderate code | +| | CDH | High code | +| | -- | Code provisions unknown |
                                    - - ### Communication systems A communication system is comprised by offices dedicated to the reception and dissemination of information (e.g. telephones offices, call centers, TV stations, radio station, telecommunication stations), supporting transmitter towers and distribution circuits. The components have been classified based on the classification system proposed by HAZUS. For the purposes of assessing damage due to natural disasters, it is also relevant to identify the presence of anchorage and whether the elements have been designed according to a particular code.
                                    The taxonomy string for the components of a communication system is:
                                    `COM/COMPONENT/ANCHORAGE/CODE`
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Component | TRD | AM or FM radio transmitters | -| | TTV | TV stations or transmitters | -| | TWE | Weather stations or transmitters | -| | TTT | Telecommunication transmitters | -| | TOT | Other stations or transmitters | -| | DTC | Distribution circuit | -| Anchorage | ANC | Anchored | -| | AUN | Unanchored | -| | -- | Unknown anchorage | -| Code provisions | CDN | No code (non-engineered) | -| | CDL | Low code | -| | CDM | Moderate code | -| | CDH | High code | -| | -- | Code provisions unknown | - - -*** - +| Attribute | Code | Description | +| --------------- | :--: | -------------------------------- | +| Component | TRD | AM or FM radio transmitters | +| | TTV | TV stations or transmitters | +| | TWE | Weather stations or transmitters | +| | TTT | Telecommunication transmitters | +| | TOT | Other stations or transmitters | +| | DTC | Distribution circuit | +| Anchorage | ANC | Anchored | +| | AUN | Unanchored | +| | -- | Unknown anchorage | +| Code provisions | CDN | No code (non-engineered) | +| | CDL | Low code | +| | CDM | Moderate code | +| | CDH | High code | +| | -- | Code provisions unknown | + +______________________________________________________________________ ## Crops, Livestock and Forestry @@ -359,136 +347,130 @@ The taxonomy for crops, livestock and forestry was defined based on existing cla
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Cereals | CRP1+1 | Wheat | -| | CRP1+2 | Maize | -| | CRP1+3 | Rice | -| | CRP1+4 | Sorghum | -| | CRP1+5 | Barley | -| | CRP1+6 | Rye | -| | CRP1+7 | Oats | -| | CRP1+8 | Millets | -| | CRP1+9 | Other | -| Vegetables and melons | CRP2+1 | Leafy or stem vegetables | -| | CRP2+2 | Fruit-bearing vegetables | -| | CRP2+3 | Root, bulb, or tuberous vegetables | -| | CRP2+4 | Mushrooms and truffles | -| | CRP2+5 | Other | -| Fruits and nuts | CRP3+1 | Tropical and subtropical fruits | -| | CRP3+2 | Citrus fruits | -| | CRP3+3 | Grapes | -| | CRP3+5 | Berries | -| | CRP3+6 | Pome fruits and stone fruits | -| | CRP3+7 | Nuts | -| | CRP3+8 | Other | -| Oilseed crops | CRP4+1 | Soya beans | -| | CRP4+2 | Groundnuts | -| | CRP4+3 | Other | -| Root/tuber crops with high starch or inulin content | CRP5+1 | Potatoes | -| | CRP5+2 | Sweet potatoes | -| | CRP5+3 | Cassava Yams | -| | CRP5+4 | Other | -| Beverage and spice crops | CRP6+1 | Beverage crops | -| | CRP6+2 | Spice crops | -| | CRP6+3 | Other | -| Leguminous crops | CRP7+1 | Beans | -| | CRP7+2 | Broad beans | -| | CRP7+3 | Chick peas | -| | CRP7+4 | Cow peas | -| | CRP7+5 | Lentils | -| | CRP7+6 | Lupins | -| | CRP7+7 | Peas | -| | CRP7+8 | Pigeon peas | -| | CRP7+9 | Leguminous crops | -| | CRP7+10 | Other | -| Sugar crops | CRP8+1 | Sugar beet | -| | CRP8+2 | Sugar cane | -| | CRP8+3 | Sweet sorghum | -| | CRP8+4 | Other | -| Other crops | CRP9+1 | Grasses and other fodder crops | -| | CRP9+2 | Fibre crops | -| | CRP9+3 | Medicinal, aromatic, pesticidal, or similar crops | -| | CRP9+4 | Rubber | -| | CRP9+5 | Flower crops | -| | CRP9+6 | Tobacco | -| | CRP9+7 | Other | -| Unknown crop | CRP | | +| Attribute | Code | Description | +| ----------------------------------------------------- | :-----: | ------------------------------------------------- | +| Cereals | CRP1+1 | Wheat | +| | CRP1+2 | Maize | +| | CRP1+3 | Rice | +| | CRP1+4 | Sorghum | +| | CRP1+5 | Barley | +| | CRP1+6 | Rye | +| | CRP1+7 | Oats | +| | CRP1+8 | Millets | +| | CRP1+9 | Other | +| Vegetables and melons | CRP2+1 | Leafy or stem vegetables | +| | CRP2+2 | Fruit-bearing vegetables | +| | CRP2+3 | Root, bulb, or tuberous vegetables | +| | CRP2+4 | Mushrooms and truffles | +| | CRP2+5 | Other | +| Fruits and nuts | CRP3+1 | Tropical and subtropical fruits | +| | CRP3+2 | Citrus fruits | +| | CRP3+3 | Grapes | +| | CRP3+5 | Berries | +| | CRP3+6 | Pome fruits and stone fruits | +| | CRP3+7 | Nuts | +| | CRP3+8 | Other | +| Oilseed crops | CRP4+1 | Soya beans | +| | CRP4+2 | Groundnuts | +| | CRP4+3 | Other | +| Root/tuber crops with high starch or inulin content | CRP5+1 | Potatoes | +| | CRP5+2 | Sweet potatoes | +| | CRP5+3 | Cassava Yams | +| | CRP5+4 | Other | +| Beverage and spice crops | CRP6+1 | Beverage crops | +| | CRP6+2 | Spice crops | +| | CRP6+3 | Other | +| Leguminous crops | CRP7+1 | Beans | +| | CRP7+2 | Broad beans | +| | CRP7+3 | Chick peas | +| | CRP7+4 | Cow peas | +| | CRP7+5 | Lentils | +| | CRP7+6 | Lupins | +| | CRP7+7 | Peas | +| | CRP7+8 | Pigeon peas | +| | CRP7+9 | Leguminous crops | +| | CRP7+10 | Other | +| Sugar crops | CRP8+1 | Sugar beet | +| | CRP8+2 | Sugar cane | +| | CRP8+3 | Sweet sorghum | +| | CRP8+4 | Other | +| Other crops | CRP9+1 | Grasses and other fodder crops | +| | CRP9+2 | Fibre crops | +| | CRP9+3 | Medicinal, aromatic, pesticidal, or similar crops | +| | CRP9+4 | Rubber | +| | CRP9+5 | Flower crops | +| | CRP9+6 | Tobacco | +| | CRP9+7 | Other | +| Unknown crop | CRP | |
                                    - - ### Livestock
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Large ruminants | LVS1+1 | Cattle | -| | LVS1+2 | Buffaloes | -| | LVS1+3 | Yaks | -| Small ruminants | LVS2+1 | Sheep | -| | LVS2+2 | Goats | -| Pigs or swines | LVS3 | | -| Equines | LVS4+1 | Horses | -| | LVS4+2 | Mules and hinnies | -| | LVS4+3 | Asses | -| | LVS4+4 | Other (e.g. zebras) | -| Camels and camelids | LVS5+1 | Camels | -| | LVS5+2 | Llamas and alpacas | -| Poultry | LVS6+1 | Chickens | -| | LVS6+2 | Ducks | -| | LVS6+3 | Geese | -| | LVS6+4 | Turkeys | -| | LVS6+5 | Guinea fowls | -| | LVS6+6 | Pigeons | -| | LVS6+7 | Other | -| Other animals | LVS7+1 | Deer, elk, reindeer | -| | LVS7+2 | Fur-bearing animals such as foxes and minks | -| | LVS7+3 | Dogs and cats | -| | LVS7+4 | Rabbits and hares | -| | LVS7+5 | Other (e.g. emus, ostriches, elephants) | -| Insects | LVS8+1 | Bees | -| | LVS8+2 | Silkworms | -| | LVS8+3 | Other worms or insects | -| Unknown livestock | | | +| Attribute | Code | Description | +| ------------------- | :----: | ------------------------------------------- | +| Large ruminants | LVS1+1 | Cattle | +| | LVS1+2 | Buffaloes | +| | LVS1+3 | Yaks | +| Small ruminants | LVS2+1 | Sheep | +| | LVS2+2 | Goats | +| Pigs or swines | LVS3 | | +| Equines | LVS4+1 | Horses | +| | LVS4+2 | Mules and hinnies | +| | LVS4+3 | Asses | +| | LVS4+4 | Other (e.g. zebras) | +| Camels and camelids | LVS5+1 | Camels | +| | LVS5+2 | Llamas and alpacas | +| Poultry | LVS6+1 | Chickens | +| | LVS6+2 | Ducks | +| | LVS6+3 | Geese | +| | LVS6+4 | Turkeys | +| | LVS6+5 | Guinea fowls | +| | LVS6+6 | Pigeons | +| | LVS6+7 | Other | +| Other animals | LVS7+1 | Deer, elk, reindeer | +| | LVS7+2 | Fur-bearing animals such as foxes and minks | +| | LVS7+3 | Dogs and cats | +| | LVS7+4 | Rabbits and hares | +| | LVS7+5 | Other (e.g. emus, ostriches, elephants) | +| Insects | LVS8+1 | Bees | +| | LVS8+2 | Silkworms | +| | LVS8+3 | Other worms or insects | +| Unknown livestock | | |
                                    - - ### Forestry
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Closed forest | FRT1+1 | Mainly evergreen forest - the canopy is never without green foliage, but individual trees may shed their leaves (e.g. Sumatra, Atrato Valley (Colombia), Atlantic slopes of Costa Rica, Amazon Basin). | -| | FRT1+2 | Mainly deciduous forest - majority of trees shed their foliage simultaneously in connection to unfavourable season (e.g. North and South America, Southern slopes of the Himalayas and Europe) | -| | FRT1+3 | Extremely xeromorphic forest - dense stands of trees, composed by species such as bottle or tuft rees with succulent leaves (e.g. thorn forest in Southwestern North America and Southwestern Africa) | -| Woodland | FRT2+1 | Mainly evergreen woodland - the canopy is never without green foliage, but individual trees may shed their leaves (e.g. Mediterranean Basin). | -| | FRT2+2 | Mainly deciduous woodland - majority of trees shed their foliage simultaneously in connection to unfavourable season (e.g. Southern California and American Southeast, Mediterranean Basin) | -| | FRT2+3 | Extremely xeromorphic woodland - dense stands of trees, composed by species such as bottle or tuft trees with succulent leaves (e.g. Southwestern North America and Southwestern Africa) | -| Scrub | FRT3+1 | Mainly evergreen scrub - the canopy is never without green foliage, but individual species may shed their leaves (e.g. Mediterranean dwarf palm shrubland, Chaparral shrubland in California or Hawaiian tree fern thicket). | -| | FRT3+2 | Mainly deciduous scrub - majority of scrub shed their foliage simultaneously in connection to unfavourable season (e.g. peat mosses in Scotland) | -| | FRT3+3 | Extremely xeromorphic (subdesert) shrubland - very open stands of shrubs, often composed by vegetation with green branches without leaves, some of them with thorns (e.g. mulga scrub in Australia). | -| Dwarf-scrub and related communities | FRT4+1 | Mainly evergreen dwarf-scrub - mostly dense dwarf scrub evergreen dominating the landscape (e.g. East Mediterranean mountains). | -| | FRT4+2 | Mainly deciduous scrub - majority of vegetation shed their foliage simultaneously in connection to unfavourable season (e.g. Sierra Nevada in California ) | -| | FRT4+3 | Extremely xeromorphic dwarf-shrubland - more or less open formations consisting of dwarf-shrubs or succulent species (e.g. Australia). | -| | FRT4+4 | Tundra - slowly growing, low formations, consisting mainly of dwarf-shrubs beyond the subpolar tree line (e.g. Alaska, Northern Canada, Greenland, Norway, Finland and Siberia). | -| | FRT4+5 | Mossy bog formations with dwarf-shrub - peat accumulations formed mainly by mosses which generally cover the surface as well (e.g. Western Siberian Lowlands in Russia). | -| Herbaceous vegetation | FRT5+1 | Tall graminoid vegetation - Mostly composed by tall grasslands with heights of over 2 m. Forbs can be presented but their coverage is less than 50% (e.g. Northeast Bolivia, African savannah and upper Nile Valley). | -| | FRT5+2 | Medium tall grassland - Mostly composed by grasslands with heights between 0.5 and 2 m. Forbs can be presented but their coverage is less than 50% (e.g. Sahel region in Africa, Eastern Kansas, glasslands in New Zealand) | -| | FRT5+3 | Short grassland - Mostly composed by grasslands with heights below 0.5 m. Forbs can be presented but their coverage is less than 50% (e.g. alpine regions of Kenya, Colombia and Venezuela). | -| | FRT5+4 | Forb vegetation - the plant community if mostly composed by forbs (more than 50%). (e.g. Sonoran Desert) | -| | FRT5+5 | Hydromorphic fresh-water vegetation - mostly composed by aquatic plants that are structurally supported by water, in wet or flooded regions most of the year (e.g. Amazon Basin) | +| Attribute | Code | Description | +| ----------------------------------- | :----: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Closed forest | FRT1+1 | Mainly evergreen forest - the canopy is never without green foliage, but individual trees may shed their leaves (e.g. Sumatra, Atrato Valley (Colombia), Atlantic slopes of Costa Rica, Amazon Basin). | +| | FRT1+2 | Mainly deciduous forest - majority of trees shed their foliage simultaneously in connection to unfavourable season (e.g. North and South America, Southern slopes of the Himalayas and Europe) | +| | FRT1+3 | Extremely xeromorphic forest - dense stands of trees, composed by species such as bottle or tuft rees with succulent leaves (e.g. thorn forest in Southwestern North America and Southwestern Africa) | +| Woodland | FRT2+1 | Mainly evergreen woodland - the canopy is never without green foliage, but individual trees may shed their leaves (e.g. Mediterranean Basin). | +| | FRT2+2 | Mainly deciduous woodland - majority of trees shed their foliage simultaneously in connection to unfavourable season (e.g. Southern California and American Southeast, Mediterranean Basin) | +| | FRT2+3 | Extremely xeromorphic woodland - dense stands of trees, composed by species such as bottle or tuft trees with succulent leaves (e.g. Southwestern North America and Southwestern Africa) | +| Scrub | FRT3+1 | Mainly evergreen scrub - the canopy is never without green foliage, but individual species may shed their leaves (e.g. Mediterranean dwarf palm shrubland, Chaparral shrubland in California or Hawaiian tree fern thicket). | +| | FRT3+2 | Mainly deciduous scrub - majority of scrub shed their foliage simultaneously in connection to unfavourable season (e.g. peat mosses in Scotland) | +| | FRT3+3 | Extremely xeromorphic (subdesert) shrubland - very open stands of shrubs, often composed by vegetation with green branches without leaves, some of them with thorns (e.g. mulga scrub in Australia). | +| Dwarf-scrub and related communities | FRT4+1 | Mainly evergreen dwarf-scrub - mostly dense dwarf scrub evergreen dominating the landscape (e.g. East Mediterranean mountains). | +| | FRT4+2 | Mainly deciduous scrub - majority of vegetation shed their foliage simultaneously in connection to unfavourable season (e.g. Sierra Nevada in California ) | +| | FRT4+3 | Extremely xeromorphic dwarf-shrubland - more or less open formations consisting of dwarf-shrubs or succulent species (e.g. Australia). | +| | FRT4+4 | Tundra - slowly growing, low formations, consisting mainly of dwarf-shrubs beyond the subpolar tree line (e.g. Alaska, Northern Canada, Greenland, Norway, Finland and Siberia). | +| | FRT4+5 | Mossy bog formations with dwarf-shrub - peat accumulations formed mainly by mosses which generally cover the surface as well (e.g. Western Siberian Lowlands in Russia). | +| Herbaceous vegetation | FRT5+1 | Tall graminoid vegetation - Mostly composed by tall grasslands with heights of over 2 m. Forbs can be presented but their coverage is less than 50% (e.g. Northeast Bolivia, African savannah and upper Nile Valley). | +| | FRT5+2 | Medium tall grassland - Mostly composed by grasslands with heights between 0.5 and 2 m. Forbs can be presented but their coverage is less than 50% (e.g. Sahel region in Africa, Eastern Kansas, glasslands in New Zealand) | +| | FRT5+3 | Short grassland - Mostly composed by grasslands with heights below 0.5 m. Forbs can be presented but their coverage is less than 50% (e.g. alpine regions of Kenya, Colombia and Venezuela). | +| | FRT5+4 | Forb vegetation - the plant community if mostly composed by forbs (more than 50%). (e.g. Sonoran Desert) | +| | FRT5+5 | Hydromorphic fresh-water vegetation - mostly composed by aquatic plants that are structurally supported by water, in wet or flooded regions most of the year (e.g. Amazon Basin) |
                                    - -*** - +______________________________________________________________________ ## Socio-Economic indicators @@ -507,298 +489,281 @@ Natural hazards are a complex phenomenon featuring large number of interactions
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Population Structure | POPPPSPOP | Population | -| | POPPPSRPP | Rural population | -| | POPPPSRUB | Urbanization Rate | -| | POPPPSSRI | Sex ratio | -| | POPPPSUPR | Urban population | -| | POPPPSADP | Age dependency ratio | -| | POPPPSAPD | Average Population Density (areas over 400 ppl/km2) | -| | POPPPSCAO | Percentage of land area with over 400 people per km2 | -| | POPPPSIMP | Foreign Born Migrants | -| | POPPPSLPF | Labour force participation rate - Female | -| | POPPPSNMR | Net migration rate | -| | POPPPSPGR | Population growth rate | -| Vulnerable Population | POPVNPSLP | Slum population in urban areas | -| | POPVNPPUF | Population under 5 | -| | POPVNPPIP | Percentage of the population below income poverty line | -| | POPVNPITA | International tourism arrivals | -| | POPVNPFPP | Female Population | -| | POPVNPASE | Population over 65 | -| | POPVNPTPP | Refugees (country of origin) | +| Attribute | Code | Description | +| --------------------- | :-------: | ------------------------------------------------------ | +| Population Structure | POPPPSPOP | Population | +| | POPPPSRPP | Rural population | +| | POPPPSRUB | Urbanization Rate | +| | POPPPSSRI | Sex ratio | +| | POPPPSUPR | Urban population | +| | POPPPSADP | Age dependency ratio | +| | POPPPSAPD | Average Population Density (areas over 400 ppl/km2) | +| | POPPPSCAO | Percentage of land area with over 400 people per km2 | +| | POPPPSIMP | Foreign Born Migrants | +| | POPPPSLPF | Labour force participation rate - Female | +| | POPPPSNMR | Net migration rate | +| | POPPPSPGR | Population growth rate | +| Vulnerable Population | POPVNPSLP | Slum population in urban areas | +| | POPVNPPUF | Population under 5 | +| | POPVNPPIP | Percentage of the population below income poverty line | +| | POPVNPITA | International tourism arrivals | +| | POPVNPFPP | Female Population | +| | POPVNPASE | Population over 65 | +| | POPVNPTPP | Refugees (country of origin) |
                                    - - ### Economy
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Economic Activity | ECOEACVLE | Value lost due to electrical outages | -| | ECOEACBEX | Budget expenditures | -| | ECOEACCDC | Carbon Dioxide Emissions | -| | ECOEACCPI | Consumer price index | -| | ECOEACEXS | Exports | -| | ECOEACFCE | Final consumption expenditure | -| | ECOEACFDP | Foreign direct investment, net inflows | -| | ECOEACGCE | General government final consumption expenditure | -| | ECOEACGFC | Gross fixed capital formation | -| | ECOEACGGE | Greenhouse gas emissions | -| | ECOEACGNC | GDP Nominal per population | -| | ECOEACGRB | General government revenue | -| | ECOEACGRN | GDP Nominal | -| | ECOEACGS1 | Gross savings | -| | ECOEACGUS | GNI per capita | -| | ECOEACHEE | Net Household final consumption expenditure | -| | ECOEACICR | Implied PPP conversion rate | -| | ECOEACIDA | Inflation, GDP deflator | -| | ECOEACIMP | Imports | -| | ECOEACIPD | Income payments (BoP) | -| | ECOEACMEP | Military expenditures | -| | ECOEAC039 | Adjusted savings: consumption of fixed capital | -| | ECOEACPCM | PPP conversion factor (GDP) to market exchange rate ratio | -| | ECOEACPEE | Remittance Inflows | -| | ECOEACPEP | Public expenditure on education | -| | ECOEACTIN | Total investment | -| | ECOEACTR1 | International tourism receipts as a percent of total exports | -| | ECOEACTRA | Trade | -| | ECOEACTRE | International tourism receipts as a percent of GDP | -| Economic Resources | ECOERETRG | Total reserves (includes gold) | -| | ECOERE040 | Adjusted savings: mineral depletion | -| | ECOERE042 | Adjusted savings: energy depletion | -| | ECOERE226 | Net ODA received per capita | -| | ECOEREBRE | Budget revenues | -| | ECOERECNT | Net taxes on products | -| | ECOEREDEX | Debt - external | -| | ECOEREGGD | General government gross debt | -| | ECOEREGNS | Gross national savings | -| | ECOEREGPC | GDP at purchasing power parity per capita | -| | ECOEREIRP | Inflation rate (consumer prices) | -| | ECOERELAP | Land use - arable land | -| | ECOERELCP | Land use - permanent crops | -| | ECOEREMQP | Money and quasi money (M2) | -| | ECOERENLB | General government net lending/borrowing | -| | ECOEREPDP | Public debt | -| | ECOERERDE | Research and development expenditure | -| | ECOERETRV | Tax revenue | -| | ECOERETTR | Total tax rate | -| Economic Composition | ECOECPAGR | GDP composition by sector - agriculture | -| | ECOECPWRT | Wholesale, retail trade, restaurants and hotels (ISIC G-H) | -| | ECOECPTSC | Transport, storage and communication (ISIC I) | -| | ECOECPSER | GDP - composition by sector - services | -| | ECOECPOTA | Other Activities (ISIC J-P) | -| | ECOECPMMU | Mining, Manufacturing, Utilities (ISIC C-E) | -| | ECOECPIND | GDP composition by sector - industry | -| | ECOECPCON | Construction (ISIC F) | -| | ECOECPAHF | Agriculture, hunting, forestry, fishing (ISIC A-B) | -| Income Distribution and Poverty | ECOIDPLIS | Income share held by lowest 20% | -| | ECOIDPPPL | Population below national poverty line | -| | ECOIDPPOG | Poverty gap at $2 a day (PPP) | -| | ECOIDPGIN | GINI index | -| | ECOIDPISF | Income share held by fourth 20 % | -| | ECOIDPISH | Income share held by highest 20% | -| | ECOIDPISS | Income share held by second 20 % | -| | ECOIDPIST | Income share held by third 20 % | -| | ECOIDPPGP | Poverty gap at $1.25 a day (PPP) | -| Labour Market | ECOLAMLPT | Labor force participation rate | -| | ECOLAMRRD | Researchers in R&D | -| | ECOLAMTEC | Technicians in R&D | -| | ECOLAMUEP | Unemployment Rate | -| | ECOLAMEAT | Employment in agriculture | -| | ECOLAMEIT | Employment in industry | -| | ECOLAMEPT | Ratio of youth employment to population ages 15-24 | -| | ECOLAMEST | Employment in services | -| | ECOLAMFLM | Female legislators, senior officials and managers | -| | ECOLAMLAF | Labor force | -| | ECOLAMLP1 | Female labor participation rate | -| | ECOLAMPET | Employment to population ratio ages 15+ | -| Trade Economics | ECOTRECID | Cost to import | -| | ECOTREMIC | Merchandise imports CIF | -| | ECOTREISS | Imports of goods and services | -| | ECOTRECED | Cost to export | -| | ECOTRE072 | Tariff rate, most favored nation, weighted mean, all products percentage | -| | ECOTREMTR | Merchandise trade | -| | ECOTREIGD | Imports of goods and services (BoP) | -| | ECOTREMEX | Merchandise exports to developing economies within region | -| | ECOTREEVI | Export volume index | -| | ECOTREEVE | Export value index | -| | ECOTREEEE | Merchandise exports FOB | -| | ECOTRECPT | Container port traffic (TEU: 20 foot equivalent units) | +| Attribute | Code | Description | +| ------------------------------- | :-------: | ------------------------------------------------------------------------ | +| Economic Activity | ECOEACVLE | Value lost due to electrical outages | +| | ECOEACBEX | Budget expenditures | +| | ECOEACCDC | Carbon Dioxide Emissions | +| | ECOEACCPI | Consumer price index | +| | ECOEACEXS | Exports | +| | ECOEACFCE | Final consumption expenditure | +| | ECOEACFDP | Foreign direct investment, net inflows | +| | ECOEACGCE | General government final consumption expenditure | +| | ECOEACGFC | Gross fixed capital formation | +| | ECOEACGGE | Greenhouse gas emissions | +| | ECOEACGNC | GDP Nominal per population | +| | ECOEACGRB | General government revenue | +| | ECOEACGRN | GDP Nominal | +| | ECOEACGS1 | Gross savings | +| | ECOEACGUS | GNI per capita | +| | ECOEACHEE | Net Household final consumption expenditure | +| | ECOEACICR | Implied PPP conversion rate | +| | ECOEACIDA | Inflation, GDP deflator | +| | ECOEACIMP | Imports | +| | ECOEACIPD | Income payments (BoP) | +| | ECOEACMEP | Military expenditures | +| | ECOEAC039 | Adjusted savings: consumption of fixed capital | +| | ECOEACPCM | PPP conversion factor (GDP) to market exchange rate ratio | +| | ECOEACPEE | Remittance Inflows | +| | ECOEACPEP | Public expenditure on education | +| | ECOEACTIN | Total investment | +| | ECOEACTR1 | International tourism receipts as a percent of total exports | +| | ECOEACTRA | Trade | +| | ECOEACTRE | International tourism receipts as a percent of GDP | +| Economic Resources | ECOERETRG | Total reserves (includes gold) | +| | ECOERE040 | Adjusted savings: mineral depletion | +| | ECOERE042 | Adjusted savings: energy depletion | +| | ECOERE226 | Net ODA received per capita | +| | ECOEREBRE | Budget revenues | +| | ECOERECNT | Net taxes on products | +| | ECOEREDEX | Debt - external | +| | ECOEREGGD | General government gross debt | +| | ECOEREGNS | Gross national savings | +| | ECOEREGPC | GDP at purchasing power parity per capita | +| | ECOEREIRP | Inflation rate (consumer prices) | +| | ECOERELAP | Land use - arable land | +| | ECOERELCP | Land use - permanent crops | +| | ECOEREMQP | Money and quasi money (M2) | +| | ECOERENLB | General government net lending/borrowing | +| | ECOEREPDP | Public debt | +| | ECOERERDE | Research and development expenditure | +| | ECOERETRV | Tax revenue | +| | ECOERETTR | Total tax rate | +| Economic Composition | ECOECPAGR | GDP composition by sector - agriculture | +| | ECOECPWRT | Wholesale, retail trade, restaurants and hotels (ISIC G-H) | +| | ECOECPTSC | Transport, storage and communication (ISIC I) | +| | ECOECPSER | GDP - composition by sector - services | +| | ECOECPOTA | Other Activities (ISIC J-P) | +| | ECOECPMMU | Mining, Manufacturing, Utilities (ISIC C-E) | +| | ECOECPIND | GDP composition by sector - industry | +| | ECOECPCON | Construction (ISIC F) | +| | ECOECPAHF | Agriculture, hunting, forestry, fishing (ISIC A-B) | +| Income Distribution and Poverty | ECOIDPLIS | Income share held by lowest 20% | +| | ECOIDPPPL | Population below national poverty line | +| | ECOIDPPOG | Poverty gap at \$2 a day (PPP) | +| | ECOIDPGIN | GINI index | +| | ECOIDPISF | Income share held by fourth 20 % | +| | ECOIDPISH | Income share held by highest 20% | +| | ECOIDPISS | Income share held by second 20 % | +| | ECOIDPIST | Income share held by third 20 % | +| | ECOIDPPGP | Poverty gap at \$1.25 a day (PPP) | +| Labour Market | ECOLAMLPT | Labor force participation rate | +| | ECOLAMRRD | Researchers in R&D | +| | ECOLAMTEC | Technicians in R&D | +| | ECOLAMUEP | Unemployment Rate | +| | ECOLAMEAT | Employment in agriculture | +| | ECOLAMEIT | Employment in industry | +| | ECOLAMEPT | Ratio of youth employment to population ages 15-24 | +| | ECOLAMEST | Employment in services | +| | ECOLAMFLM | Female legislators, senior officials and managers | +| | ECOLAMLAF | Labor force | +| | ECOLAMLP1 | Female labor participation rate | +| | ECOLAMPET | Employment to population ratio ages 15+ | +| Trade Economics | ECOTRECID | Cost to import | +| | ECOTREMIC | Merchandise imports CIF | +| | ECOTREISS | Imports of goods and services | +| | ECOTRECED | Cost to export | +| | ECOTRE072 | Tariff rate, most favored nation, weighted mean, all products percentage | +| | ECOTREMTR | Merchandise trade | +| | ECOTREIGD | Imports of goods and services (BoP) | +| | ECOTREMEX | Merchandise exports to developing economies within region | +| | ECOTREEVI | Export volume index | +| | ECOTREEVE | Export value index | +| | ECOTREEEE | Merchandise exports FOB | +| | ECOTRECPT | Container port traffic (TEU: 20 foot equivalent units) |
                                    - - ### Education
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Education Outcome | EDUEOCSAF | Female population without secondary education or higher | -| | EDUEEOCCT | Primary School Completion Rate | -| | EDUEOCEYS | Expected Years of Schooling | -| | EDUEOCLFM | Ratio of young literate males to females ages 15-24 | -| | EDUEOCLFP | Illiteracy - female | -| | EDUEOCLMP | Illiteracy - male | -| | EDUEOCLTP | Illiteracy | -| | EDUEOCMYS | Mean Years of Schooling | -| | EDUEOCSAM | Male population without secondary education or higher | -| | EDUEOCSTJ | Scientific and technical journal articles | -| Education Access | EDUEACEEG | Education expenditures | -| | EDUEACPTS | Pupil-teacher ratio, secondary | -| | EDUEACPTP | Pupil-teacher ratio, primary | -| | EDUEACETG | Gross enrolment ratio, tertiary | -| | EDUEACSTG | Gross enrolment ratio, secondary | -| | EDUEACBGP | Ratio of girls to boys in primary and secondary education | -| | EDUEACEPG | Gross enrolment ratio, primary | -| | EDUEACCPT | Children out of school, primary | +| Attribute | Code | Description | +| ----------------- | :-------: | --------------------------------------------------------- | +| Education Outcome | EDUEOCSAF | Female population without secondary education or higher | +| | EDUEEOCCT | Primary School Completion Rate | +| | EDUEOCEYS | Expected Years of Schooling | +| | EDUEOCLFM | Ratio of young literate males to females ages 15-24 | +| | EDUEOCLFP | Illiteracy - female | +| | EDUEOCLMP | Illiteracy - male | +| | EDUEOCLTP | Illiteracy | +| | EDUEOCMYS | Mean Years of Schooling | +| | EDUEOCSAM | Male population without secondary education or higher | +| | EDUEOCSTJ | Scientific and technical journal articles | +| Education Access | EDUEACEEG | Education expenditures | +| | EDUEACPTS | Pupil-teacher ratio, secondary | +| | EDUEACPTP | Pupil-teacher ratio, primary | +| | EDUEACETG | Gross enrolment ratio, tertiary | +| | EDUEACSTG | Gross enrolment ratio, secondary | +| | EDUEACBGP | Ratio of girls to boys in primary and secondary education | +| | EDUEACEPG | Gross enrolment ratio, primary | +| | EDUEACCPT | Children out of school, primary |
                                    - - - ### Environment
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Disaster Prevalence | ENVDIPDFT | Droughts, floods, extreme temperatures | -| | ENVDIPPLM | Population living in areas where elevation is below 5 meters | -| | ENVDIPINP | Natural disasters - Population affected | -| | ENVDIPIND | Natural disasters - Number of deaths | -| | ENVDIPDRR | Disaster risk reduction progress score | -| Basic Geography | ENVGEOLAK | Land Area | -| | ENVGEOCLK | Geographic Classification | -| | ENVGEOFAP | Forest area | -| | ENVGEOWAK | Water Area | -| Landuse/Landcover | ENVLULALP | Arable land | -| | ENVLULFEC | Fertilizer consumption | -| | ENVLULURP | Urban pollution | -| | ENVLULPCP | Permanent cropland | -| | ENVLULALA | Agricultural land | -| Control of Corruption | GICPSCCOC | Control of Corruption | -| | GICPSCCRI | Corruption Index | -| Voice and Accountability | GICLRVSWP | Percentage of seats held by women in national parliaments | -| | GICLRVVOA | Voice and Accountability | -| | GICLRVVTE | Voter Turnout at last parliamentary Election | -| | GICLRVOIR | Official information is available on request | -| Rule of Law | GICLRVETD | Equal treatment and absence of discrimination | -| | GICLRVSLR | Strength of legal rights index | -| | GICPSCROL | Rule of Law | +| Attribute | Code | Description | +| ------------------------ | :-------: | ------------------------------------------------------------ | +| Disaster Prevalence | ENVDIPDFT | Droughts, floods, extreme temperatures | +| | ENVDIPPLM | Population living in areas where elevation is below 5 meters | +| | ENVDIPINP | Natural disasters - Population affected | +| | ENVDIPIND | Natural disasters - Number of deaths | +| | ENVDIPDRR | Disaster risk reduction progress score | +| Basic Geography | ENVGEOLAK | Land Area | +| | ENVGEOCLK | Geographic Classification | +| | ENVGEOFAP | Forest area | +| | ENVGEOWAK | Water Area | +| Landuse/Landcover | ENVLULALP | Arable land | +| | ENVLULFEC | Fertilizer consumption | +| | ENVLULURP | Urban pollution | +| | ENVLULPCP | Permanent cropland | +| | ENVLULALA | Agricultural land | +| Control of Corruption | GICPSCCOC | Control of Corruption | +| | GICPSCCRI | Corruption Index | +| Voice and Accountability | GICLRVSWP | Percentage of seats held by women in national parliaments | +| | GICLRVVOA | Voice and Accountability | +| | GICLRVVTE | Voter Turnout at last parliamentary Election | +| | GICLRVOIR | Official information is available on request | +| Rule of Law | GICLRVETD | Equal treatment and absence of discrimination | +| | GICLRVSLR | Strength of legal rights index | +| | GICPSCROL | Rule of Law |
                                    - - ### Governance -| Attribute | Code | Description | -|-|:-:|-| -| Political Stability | GICAVTCCL | Civil conflict is effectively limited | -| | GICPSCPSA | Political Stability and Absence of Violence | -| | GICAVTVRG | People do not resort to violence to redress personal grievances | -| | GICAVTLCP | Losses due to theft, robbery, vandalism, and arson | -| | GICAVTIHO | Intentional homicides | -| Government Effectiveness | GICGEFGEF | Government Effectiveness | -| Regulatory Quality | GICGEFREQ | Regulatory Quality | - - - +| Attribute | Code | Description | +| ------------------------ | :-------: | --------------------------------------------------------------- | +| Political Stability | GICAVTCCL | Civil conflict is effectively limited | +| | GICPSCPSA | Political Stability and Absence of Violence | +| | GICAVTVRG | People do not resort to violence to redress personal grievances | +| | GICAVTLCP | Losses due to theft, robbery, vandalism, and arson | +| | GICAVTIHO | Intentional homicides | +| Government Effectiveness | GICGEFGEF | Government Effectiveness | +| Regulatory Quality | GICGEFREQ | Regulatory Quality | ### Health
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Health Status | HEAHSTFRT | Total fertility rate | -| | HEAHSTLRM | Lifetime risk of maternal death | -| | HEAHSTMAL | Infectious and parasitic diseases: Malaria (DALYs) | -| | HEAHSTMEI | One-year-olds lacking immunization against - Measles | -| | HEAHSTTUC | Infectious and parasitic diseases: Tuberculosis (DALYs) | -| | HEAHSTMRI | Infant mortality rate | -| | HEAHSTMUF | Under 5 years mortality rate | -| | HEAHSTPUP | Prevalence of undernourishment | -| | HEAHSTUNC | Unmet need for contraception | -| | HEAHSTAAP | HIV/AIDS - adult prevalence rate | -| | HEAHSTBAS | Births attended by skilled health staff | -| | HEAHSTBRC | Crude birth rate | -| | HEAHSTDII | Infectious and parasitic diseases: Diarrheal diseases (DALYs) | -| | HEAHSTDPC | Dietary Protein Consumption | -| | HEAHSTDRC | Crude death rate | -| | HEAHSTLEX | Life expectancy at birth | -| Healthcare Resources | HEAHCRHBE | Hospital beds | -| | HEAHCREHP | Health expenditure, private | -| | HEAHCREPP | Health expenditure, public | -| | HEAHCRERH | External resources for health | -| | HEAHCRHAT | Health expenditure, total | -| | HEAHCRHEC | Health expenditure per capita | -| | HEAHCRNMW | Nurses and midwives | -| | HEAHCRPHY | Physicians | +| Attribute | Code | Description | +| -------------------- | :-------: | ------------------------------------------------------------- | +| Health Status | HEAHSTFRT | Total fertility rate | +| | HEAHSTLRM | Lifetime risk of maternal death | +| | HEAHSTMAL | Infectious and parasitic diseases: Malaria (DALYs) | +| | HEAHSTMEI | One-year-olds lacking immunization against - Measles | +| | HEAHSTTUC | Infectious and parasitic diseases: Tuberculosis (DALYs) | +| | HEAHSTMRI | Infant mortality rate | +| | HEAHSTMUF | Under 5 years mortality rate | +| | HEAHSTPUP | Prevalence of undernourishment | +| | HEAHSTUNC | Unmet need for contraception | +| | HEAHSTAAP | HIV/AIDS - adult prevalence rate | +| | HEAHSTBAS | Births attended by skilled health staff | +| | HEAHSTBRC | Crude birth rate | +| | HEAHSTDII | Infectious and parasitic diseases: Diarrheal diseases (DALYs) | +| | HEAHSTDPC | Dietary Protein Consumption | +| | HEAHSTDRC | Crude death rate | +| | HEAHSTLEX | Life expectancy at birth | +| Healthcare Resources | HEAHCRHBE | Hospital beds | +| | HEAHCREHP | Health expenditure, private | +| | HEAHCREPP | Health expenditure, public | +| | HEAHCRERH | External resources for health | +| | HEAHCRHAT | Health expenditure, total | +| | HEAHCRHEC | Health expenditure per capita | +| | HEAHCRNMW | Nurses and midwives | +| | HEAHCRPHY | Physicians |
                                    - - ### Index
                                    -| Code | Description | -|:-:|-| -| INXHDIGIV | Inequality adjusted Human Development Index (Gender Inequality Index) | -| INXHDI012 | Human Development Index - 2012 | -| INXXXXSFI | State Fragility Index | -| INXXXXPOL | Polity Index IV | -| INXXXXLSC | Liner shipping connectivity index | -| INXXXXGEI | Gender Equity Index | -| INXXXXGBB | GEF benefits index for biodiversity | -| INXXXXEVI | Environmental Vulnerability Index | -| INXXXXESI | Environmental Sustainability Index | -| INXXXXDRI | Disaster Risk Index | -| INXLPICQL | Logistics performance index: Competence and quality of logistics services | +| Code | Description | +| :-------: | ------------------------------------------------------------------------- | +| INXHDIGIV | Inequality adjusted Human Development Index (Gender Inequality Index) | +| INXHDI012 | Human Development Index - 2012 | +| INXXXXSFI | State Fragility Index | +| INXXXXPOL | Polity Index IV | +| INXXXXLSC | Liner shipping connectivity index | +| INXXXXGEI | Gender Equity Index | +| INXXXXGBB | GEF benefits index for biodiversity | +| INXXXXEVI | Environmental Vulnerability Index | +| INXXXXESI | Environmental Sustainability Index | +| INXXXXDRI | Disaster Risk Index | +| INXLPICQL | Logistics performance index: Competence and quality of logistics services |
                                    - ### Infrastructure
                                    -| Attribute | Code | Description | -|-|:-:|-| -| Energy, Water and Sanitation | INFEWSNGC | Natural gas - consumption | -| | INFEWSOCB | Oil - consumption | -| | INFEWSOPB | Oil - production | -| | INFEWSRFC | Renewable internal freshwater resources per capita | -| | INFEWSIWR | Rural population access to improved water source | -| | INFEWSACE | Population with access to electricity | -| | INFEWSECO | Electricity - consumption | -| | INFEWSEIP | Net energy imports | -| | INFEWSEPR | Electricity - production | -| | INFEWSEUP | Energy use (kg of oil equivalent) | -| | INFEWSISP | Population access to improved sanitation facilities | -| | INFEWSISR | Rural population access to improved sanitation facilities | -| | INFEWSISU | Urban population access to improved sanitation facilities | -| | INFEWSIWP | Population access to improved water source | -| | INFEWSIWU | Urban population access to improved water source | -| Transport and Communication | INFTCOBRC | Fixed broadband Internet subscribers | -| | INFTCOATF | Air transport, freight | -| | INFTCOTLC | Telephone lines | -| | INFTCORDE | Road density | -| | INFTCOQPI | Quality of port infrastructure, WEF | -| | INFTCOMVC | Motor vehicles | -| | INFTCOMCC | Mobile cellular subscriptions | -| | INFTCORWG | Railways, goods transported | +| Attribute | Code | Description | +| ---------------------------- | :-------: | --------------------------------------------------------- | +| Energy, Water and Sanitation | INFEWSNGC | Natural gas - consumption | +| | INFEWSOCB | Oil - consumption | +| | INFEWSOPB | Oil - production | +| | INFEWSRFC | Renewable internal freshwater resources per capita | +| | INFEWSIWR | Rural population access to improved water source | +| | INFEWSACE | Population with access to electricity | +| | INFEWSECO | Electricity - consumption | +| | INFEWSEIP | Net energy imports | +| | INFEWSEPR | Electricity - production | +| | INFEWSEUP | Energy use (kg of oil equivalent) | +| | INFEWSISP | Population access to improved sanitation facilities | +| | INFEWSISR | Rural population access to improved sanitation facilities | +| | INFEWSISU | Urban population access to improved sanitation facilities | +| | INFEWSIWP | Population access to improved water source | +| | INFEWSIWU | Urban population access to improved water source | +| Transport and Communication | INFTCOBRC | Fixed broadband Internet subscribers | +| | INFTCOATF | Air transport, freight | +| | INFTCOTLC | Telephone lines | +| | INFTCORDE | Road density | +| | INFTCOQPI | Quality of port infrastructure, WEF | +| | INFTCOMVC | Motor vehicles | +| | INFTCOMCC | Mobile cellular subscriptions | +| | INFTCORWG | Railways, goods transported |
                                    - - diff --git a/docs/taxonomies/index.md b/docs/taxonomies/index.md index 647c34ab..aa34880e 100644 --- a/docs/taxonomies/index.md +++ b/docs/taxonomies/index.md @@ -46,18 +46,20 @@ Example: The string `CR/HEX:1/YEX:1981/RES+RES1` describes a residential single [OED](https://github.com/OasisLMF/ODS_OpenExposureData) is a standard curated by the Oasis community for the insurance industry. The aim of OED is to provide the industry with a robust, open, and transparent data format. The detailed descriptions of the OED taxonomy to describe an asset (structure, infrastructure, or human) are covered in ['Open Exposure Data Spec.xlsx' with reference and background information](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs), or \[online\]https://oasislmf.github.io/OpenDataStandards/index.html. Example: In the Open Exposure Data (OED) Standard and other insurance industry models, asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: + | OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt | -| -------------- | -------------- | -------------- | -------------- | -| 1050 | 5101 | 1 | 0 | +| ------------- | ---------------- | --------------- | --------- | +| 1050 | 5101 | 1 | 0 | ### CEDE [CEDE (Catastrophe Exposure Data Exchange)](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic1.html), is the exposure database format used by Touchstone®, AIR's comprehensive risk management platform that was first released in early 2013. It is publicly available and used widely in the insurance industry to describe asset characteristics and values for catastrophe modelling. CEDE uses a database format and allows users to apply different occupancy and construction schemes and codesets to their data, and add additional fields describing year of construction, number of storeys, etc. The most common taxonomy used in CEDE is [AIRConstruction](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic32.html) and [AIROccupancy](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic33.html). These codes are also available in the [OED Open Exposure Data Spec](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs) as OED was based on and builds on CEDE. Example: In CEDE data asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: -| OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt -| -------------- | -------------- | -------------- | -------------- | -| 301 | 112 | 1 | 0 | + +| OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt | +| ------------- | ---------------- | --------------- | --------- | +| 301 | 112 | 1 | 0 | ## Vulnerability taxonomies From 0219cfd6455bf103d9feed25b13ea57dcdc613f4 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 26 Jun 2023 09:45:44 +1200 Subject: [PATCH 72/73] docs: Fix build errors --- docs/about/governance.md | 4 +--- docs/data_model/exposure.md | 2 -- docs/glossary.md | 12 ++++++------ docs/guides/index.md | 1 + 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/docs/about/governance.md b/docs/about/governance.md index f35005ed..854292bc 100644 --- a/docs/about/governance.md +++ b/docs/about/governance.md @@ -75,7 +75,7 @@ ______________________________________________________________________ ## Proposing and managing changes -Anyone can propose changes to the specifications. The process for doing this is by [submitting an issue](https://github.com/GFDRR/rdl-standard/issues) using the appropriate template. The user must provide sufficient context to the proposed changes so that it can be discussed and reviewed by the [RDL team](contacts.md#rdl-team) and other users. +Anyone can propose changes to the specifications. The process for doing this is by [submitting an issue](https://github.com/GFDRR/rdl-standard/issues) using the appropriate template. The user must provide sufficient context to the proposed changes so that it can be discussed and reviewed by the [RDL team](contacts.md#risk-data-library-team) and other users. We encourage disussion and feedback, by requesting people leave comments on the issue. After leaving appropriate time for further comment, once we feel that a broad consensus has been achieved around the proposed changes, we will update the schema by releasing a new version of the specification. @@ -91,5 +91,3 @@ Releases of the standard will follow the [semantic versioning](https://semver.or - Minor releases will be used for backwards compatible changes, e.g. additional of new optional attributes and relationships, or for simple clarifications and corrections To support gradual migration to the latest specification, we will maintain historical versions of the specifications in named folders in this repository. - -______________________________________________________________________ diff --git a/docs/data_model/exposure.md b/docs/data_model/exposure.md index e84dd11e..4ce17c38 100644 --- a/docs/data_model/exposure.md +++ b/docs/data_model/exposure.md @@ -70,5 +70,3 @@ Two exposure datasets are shown together in the example: building footprints pol | | Period of occupancy | Night | | \* | Value type | Other | | \* | Unit of measure | Count | - -______________________________________________________________________ diff --git a/docs/glossary.md b/docs/glossary.md index 44489cf7..66c38117 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -18,9 +18,9 @@ A qualitative or quantitative approach to determine the nature and extent of dis Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/terminology/disaster-risk-assessment) -````{card} Risk assessment framework, adapted from [Understanding risk in an evolving world, World Bank, 2014](https://openknowledge.worldbank.org/handle/10986/20682) +```{card} Risk assessment framework, adapted from [Understanding risk in an evolving world, World Bank, 2014](https://openknowledge.worldbank.org/handle/10986/20682) ![Risk assessment framework, adapted from Understanding risk in an evolving world, World Bank, 2014](img/risk_assessment.png) - +``` ## Disaster risk information (risk data) @@ -42,7 +42,7 @@ Source: [UNDRR Terminology (Exposure)](https://www.undrr.org/terminology/exposur ```{card} Exposure: buildings footprints and population ![Exposure: buildings footprints and population](img/sample_exp.jpg) - +``` ## Hazard @@ -54,7 +54,7 @@ Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) ```{card} Hazard: map of flood water depth ![Hazard](img/sample_hzd.jpg) - +``` ## Impact model @@ -65,7 +65,7 @@ Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/fi ```{card} Impacts and losses: USD costs of replacement ![Loss](img/sample_lss.jpg) - +``` ## Vulnerability @@ -76,4 +76,4 @@ Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vu ```{card} Vulnerability: depth-damage function ![Vulnerability](img/sample_vln.jpg) -```` +``` diff --git a/docs/guides/index.md b/docs/guides/index.md index 1b3c3f1d..1a20d1f2 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -12,5 +12,6 @@ Below is the guidance on best practices for dataset creation, packaging, metadat preparation formats + rdl-metadata ``` From f1b4f0a69b7460f1047e026452a4bfaf8bd87378 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 26 Jun 2023 09:47:39 +1200 Subject: [PATCH 73/73] docs/glossary.md: Remove unnecessary whitespace --- docs/glossary.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/glossary.md b/docs/glossary.md index 66c38117..75716596 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -56,7 +56,6 @@ Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) ![Hazard](img/sample_hzd.jpg) ``` - ## Impact model An impact model (also damage model; loss model) is used to combine Hazard, Exposure and Vulnerability components to calculate the amount of value that is expected to be impacted (damaged or lost). @@ -67,7 +66,6 @@ Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/fi ![Loss](img/sample_lss.jpg) ``` - ## Vulnerability Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience.
    From 5aa6a6163a4cca4e27051517080f11a6216ff6cf Mon Sep 17 00:00:00 2001 From: matamadio Date: Tue, 13 Jun 2023 16:46:17 +0200 Subject: [PATCH 51/73] Update hazard.md --- docs/data_model/hazard.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index 848aa580..c32c37a6 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -96,7 +96,7 @@ The schema specifies which type of analysis and data methodology that has genera ### Hazard types The RDLS offers a classification of hazards that are more often required in disaster risk assessments, based on the review and mapping of existing alternative definitions into one consistent framework. -The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories): +
    The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories):
    @@ -132,7 +132,7 @@ The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazar

    -Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure: +Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure:
    From bb85cf682a93b399db7bb78bf8460157d3298b1b Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Thu, 15 Jun 2023 10:45:50 +0100 Subject: [PATCH 52/73] Update core-standards.md Added description of GLIDE and how it is used Added description of how GED4ALL and hazard/process type codes are used in the RDLS --- docs/rdl/core-standards.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md index 3be9e39a..ec5f4240 100644 --- a/docs/rdl/core-standards.md +++ b/docs/rdl/core-standards.md @@ -10,15 +10,21 @@ RDLS is built using [JSON](https://www.json.org/json-en.html) (JavaScript Object ## Exposure standards -In 2018 an international consortium led by the Global Earthquake Model Foundation (GEM) developed an open, multi-scale exposure data schema for multi-hazard analysis (GED4ALL) in response to recommendations from community consultation. GED4ALL simplified certain detailed engineering aspects of the original global exposure model focussed on earthquake hazards ([GED4GEM](https://journals.sagepub.com/doi/10.1177/8755293020919429)), while also expanding the exposure parameters included, so the impacts of other hazards could be related to exposure data using the standard. +**GED4ALL**: +In 2018 an international consortium led by the Global Earthquake Model Foundation (GEM) developed an open, multi-scale exposure data schema for multi-hazard analysis (GED4ALL) in response to recommendations from community consultation. GED4ALL simplified certain detailed engineering aspects of the original global exposure model focussed on earthquake hazards ([GED4GEM](https://journals.sagepub.com/doi/10.1177/8755293020919429)), while also expanding the exposure parameters included, so the impacts of other hazards could be related to exposure data using the standard. In this standard, GED4ALL is used as a reference in the exposure, vulnerability and loss components, to describe the exposure type to which losses relate, and to facilitate matching of appropriate vulnerability functions to exposure data, for example. Details about the development of GED4ALL are reported [here](https://riskdatalibrary.org/resources). ## Hazard data standards In 2018 an international consortium led by the British Geological Survey developed a first-of-its-kind standard for hazard information. +In this standard, we developed a list of hazard type codes and process type codes which are used as a reference in the hazard, vulnerability and loss components of the standard, and facilitate matching of appropriate vulnerability functions to hazard data, for example. Details about the development are reported [here](https://riskdatalibrary.org/resources). +**GLIDE disaster event identifier**: +Since the beginning of 2004, GLobal IDEntifier numbers (GLIDE) are produced at (GLIDEnumber.net) for all new disaster events reported by partner institutions and those discovered by ADRC. +A GLIDE number comprises two letters to identify the disaster type (e.g. EQ - earthquake); the year of the disaster; a six-digit, sequential disaster number; and the three-letter ISO code for country of occurrence. E.g., the GLIDE number for West-India Earthquake in India is: EQ-2001-000033-IND. This number is posted by the above organizations and in many other websites, on their documents relating to that particular disaster and gradually other partners will include it in whatever information they generate. As information suppliers join in this initiative, documents and data pertaining to specific events may be easily retrieved from various sources, or linked together using the unique GLIDE numbers. List of services using GLIDE: https://glidenumber.net/glide/public/links.jsp +The RDL Standard uses a GLIDE number in the `hazard.event` object, to denote the historical event to which hazard event data relates, e.g., the simulated hazard intensity footprint of that event. ## Vulnerability data standards In 2018 an international consortium led by the UCL EPICentre developed a first-of-its-kind standard for vulnerability information, called MOVER. From 9266a21aebea70952d842ca2b01b5683b9641033 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 22 Jun 2023 11:16:22 +1200 Subject: [PATCH 53/73] Run mdformat docs --- docs/about/changelog.md | 2 +- docs/about/contacts.md | 17 ++++--- docs/about/governance.md | 18 +++---- docs/about/index.md | 2 +- docs/about/license.md | 3 +- docs/data_model/exposure.md | 8 ++-- docs/data_model/general.md | 2 +- docs/data_model/hazard.md | 8 ++-- docs/data_model/index.md | 1 + docs/data_model/loss.md | 2 +- docs/data_model/vulnerability.md | 82 ++++++++++++++++---------------- docs/glossary.md | 30 ++---------- docs/guides/ddh-rdl.md | 37 +++++++++----- docs/guides/formats.md | 3 +- docs/guides/preparation.md | 59 +++++++++++++++++++---- docs/guides/rdl-metadata.md | 7 ++- docs/rdl/core-standards.md | 11 ++--- docs/rdl/index.md | 4 +- docs/rdl/roadmap.md | 11 +++-- docs/rdl/use-cases.md | 16 +++---- docs/readme.md | 2 - docs/taxonomies/ged4all.md | 20 ++++---- docs/taxonomies/index.md | 14 +++--- 23 files changed, 191 insertions(+), 168 deletions(-) diff --git a/docs/about/changelog.md b/docs/about/changelog.md index 8e171b6a..4e967bd9 100644 --- a/docs/about/changelog.md +++ b/docs/about/changelog.md @@ -3,4 +3,4 @@ Summary of developments or improvements to the data model and standard.
    Including pointers to key papers, reports, key decisions and a high-level changelog. -

    \ No newline at end of file +

    diff --git a/docs/about/contacts.md b/docs/about/contacts.md index c2fb7142..0ecf67a6 100644 --- a/docs/about/contacts.md +++ b/docs/about/contacts.md @@ -1,14 +1,17 @@ # Contacts ## RDL Team -- Mattia Amadio <[mamadio@worldbank.org](mailto:mamadio@worldbank.org)> (Consultant) -- Stuart Fraser <[sfraser@worldbank.org](mailto:sfraser@worldbank.org)> (Consultant) -- Pierre Chrzanowski <[pchrzanowski@worldbank.org](mailto:pchrzanowski@worldbank.org)> (RDL lead) + +- Mattia Amadio \<[mamadio@worldbank.org](mailto:mamadio@worldbank.org)> (Consultant) +- Stuart Fraser \<[sfraser@worldbank.org](mailto:sfraser@worldbank.org)> (Consultant) +- Pierre Chrzanowski \<[pchrzanowski@worldbank.org](mailto:pchrzanowski@worldbank.org)> (RDL lead) ## DDH Team + The DDH team is responsible for review and publication of submitted datasets, and to assign datasets to RDL collection. -- Kamwoo Lee <[klee16@worldbank.org](mailto:klee16@worldbank.org)> -- Gaurav Bhardwaj <[gbhardwaj1@worldbank.org](mailto:gbhardwaj1@worldbank.org)> -- Rochelle O’Hagan <[rohagan@worldbank.org](mailto:rohagan@worldbank.org)> (DDH lead) -

    \ No newline at end of file +- Kamwoo Lee \<[klee16@worldbank.org](mailto:klee16@worldbank.org)> +- Gaurav Bhardwaj \<[gbhardwaj1@worldbank.org](mailto:gbhardwaj1@worldbank.org)> +- Rochelle O’Hagan \<[rohagan@worldbank.org](mailto:rohagan@worldbank.org)> (DDH lead) + +

    diff --git a/docs/about/governance.md b/docs/about/governance.md index 8009fe17..28fe2e07 100644 --- a/docs/about/governance.md +++ b/docs/about/governance.md @@ -30,10 +30,10 @@ Additional documentation and source code produced by this initiative will also b ## Roles and responsibilities -This project is currently managed by the Risk Data Library team working within the +This project is currently managed by the Risk Data Library team working within the [**Global Facility for Disaster Risk and Reduction**](https://www.gfdrr.org/en). -To guide development and adoption of the standards, in addition to open working through this github project, the team invites expert input via an Advisory Group and, as +To guide development and adoption of the standards, in addition to open working through this github project, the team invites expert input via an Advisory Group and, as required, specific Technical Working Groups. ### Advisory Group @@ -43,10 +43,10 @@ The **RDL Advisory Group** consists of experts in risk data management and analy The Advisory Group will help to: 1. ensure the development of the standard is informed by the needs of a broad selection of stakeholders across a range of domains -2. steer the development of the RDL standards, providing expert review on priorities, activities and major technical decisions. -3. ensure that our work aligns with other relevant initiatives, to avoid duplication of work and to build momentum around adoption of common standards -4. identify opportunities for joint projects that can demonstrate the value of adopting the RDL standards -5. disseminate the impacts and outputs of the RDL project to other stakeholders +1. steer the development of the RDL standards, providing expert review on priorities, activities and major technical decisions. +1. ensure that our work aligns with other relevant initiatives, to avoid duplication of work and to build momentum around adoption of common standards +1. identify opportunities for joint projects that can demonstrate the value of adopting the RDL standards +1. disseminate the impacts and outputs of the RDL project to other stakeholders Participation in the Advisory Group is by invitation only. The initial membership will consist of representatives from organisations who have contributed to the early development of the standard. @@ -55,8 +55,8 @@ The Advisory Group will meet every two months. The agenda, slides and minutes fr ### Technical Working Groups -At times we may create specific Technical Working Groups that will collaborate on development of specific aspects of the RDL standard. For example to develop taxonomies, or revise file formats or schemas. These Working Groups will have a clear remit and will coordinate their work through this github. -Membership of these groups and participation in calls and workshops will be open to all participants. Depending on the scope of work, they may need to draw on expertise from a wider group of stakeholders. +At times we may create specific Technical Working Groups that will collaborate on development of specific aspects of the RDL standard. For example to develop taxonomies, or revise file formats or schemas. These Working Groups will have a clear remit and will coordinate their work through this github. +Membership of these groups and participation in calls and workshops will be open to all participants. Depending on the scope of work, they may need to draw on expertise from a wider group of stakeholders. This model reflects the process of development of early versions of the standard, which involves convening a range of organisations around developing models for hazard, exposure and other typesof data. This approach will help us to drawing on expertise, and seek focused input, from across a wide range of organisations. All working documents, issue reporting and decisions made within these groups will be reviewed and communicated via this repository. @@ -92,4 +92,4 @@ Releases of the standard will follow the [**semantic versioning**](https://semve To support gradual migration to the latest specification, we will maintain historical versions of the specifications in named folders in this repository. -

    \ No newline at end of file +

    diff --git a/docs/about/index.md b/docs/about/index.md index a47aa040..a862c531 100644 --- a/docs/about/index.md +++ b/docs/about/index.md @@ -1,6 +1,6 @@ # About -This user guide is written to support use of the Risk Data Library Standard. +This user guide is written to support use of the Risk Data Library Standard. ```{eval-rst} .. toctree:: diff --git a/docs/about/license.md b/docs/about/license.md index 6e07a95a..242731ed 100644 --- a/docs/about/license.md +++ b/docs/about/license.md @@ -2,5 +2,4 @@ The content of this guide was prepared by GFDRR under the Risk Data Library Project and is licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/legalcode). - -

    \ No newline at end of file +

    diff --git a/docs/data_model/exposure.md b/docs/data_model/exposure.md index 5dbc173d..4a640356 100644 --- a/docs/data_model/exposure.md +++ b/docs/data_model/exposure.md @@ -2,7 +2,7 @@ ## Schema attributes -The exposure schema covers a wide variety of data describing structural, infrastructural and environmental asset, population, and socio-economic descriptors, each with relevant attributes for assessing risk from multiple hazards. The schema was developed based on [GEM Taxonomy 2.0](https://wiki.openstreetmap.org/wiki/GED4ALL) to accommodate the most important spatial features commonly employed in risk analysis to identify and estimate exposed value. +The exposure schema covers a wide variety of data describing structural, infrastructural and environmental asset, population, and socio-economic descriptors, each with relevant attributes for assessing risk from multiple hazards. The schema was developed based on [GEM Taxonomy 2.0](https://wiki.openstreetmap.org/wiki/GED4ALL) to accommodate the most important spatial features commonly employed in risk analysis to identify and estimate exposed value. ```{eval-rst} .. mermaid:: @@ -25,7 +25,7 @@ The exposure schema covers a wide variety of data describing structural, infrast ``` The main features of an exposure dataset are specified by the **exposure model** attributes. -Each exposure model includes one or more **assets**. Each asset could represent a single asset (e.g. one building) or a collection of assets (e.g aggregated buildings in an area). +Each exposure model includes one or more **assets**. Each asset could represent a single asset (e.g. one building) or a collection of assets (e.g aggregated buildings in an area). The exposure schema covers 4 categories and 11 occupancy types for consistent classification of assets across schema. The taxonomy source specifies the taxonomy string used to identify individual asset features within a dataset. Occupancy can be optionally assigned for night-time or day-time, e.g. to discern resident population from daily commuters. |**Required**| **Attribute** | **Description** | **Type** | @@ -60,7 +60,7 @@ Two exposure datasets are shown together in the example: building footprints pol |*| Occupancy | Mixed | || Taxonomy | OSM | |*| Value type | Structure | -|*| Unit of measure | USD | +|\*| Unit of measure | USD |
    @@ -71,6 +71,6 @@ Two exposure datasets are shown together in the example: building footprints pol |*| Occupancy | Residential | || Period of occupancy | Night | |*| Value type | Other | -|*| Unit of measure | Count | +|\*| Unit of measure | Count |

    diff --git a/docs/data_model/general.md b/docs/data_model/general.md index 96442e7a..d2ba3056 100644 --- a/docs/data_model/general.md +++ b/docs/data_model/general.md @@ -13,7 +13,7 @@ In addition to schema-specific attributes, each dataset is identified by a list | | Bibliography | Author, titles and publication year of documents containing relevant information on the dataset | Authors (Year) - Title; URL | | | Version | Version of the dataset | Number | |*| Geo coverage | ISO code(s) of countries covered | ISOa3 country code | -|*| License code | Type of license | Licensing options | +|\*| License code | Type of license | Licensing options |
    diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index c32c37a6..24e3664b 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -47,6 +47,7 @@ The hazard schema stores data about the intensity and occurrence probability of Uncertainty } ``` +
    The schema specifies which type of analysis and data methodology that has generated the dataset. It supports either simulated probabilistic scenarios and empirical observations. If the dataset has been produced for a specific location, such a city, the name of the location can be included. @@ -55,7 +56,7 @@ The schema specifies which type of analysis and data methodology that has genera |:---:| --- | --- | --- | |*| Hazard type | Main hazard type from list of options |
    • Coastal Flood
    • Convective Storm
    • Drought
    • Earthquake
    • Extreme Temperature
    • Flood
    • Landslide
    • Tsunami
    • Volcanic
    • Wildfire
    • Strong Wind
    • Multi-Hazard
    | |*| Analysis type | Type of analysis that generated the data |
    • Deterministic
    • Probabilistic | -|*| Calculation method | The methodology used for the modelling of hazard |
      • Simulated
      • Observed
      • Inferred | +|\*| Calculation method | The methodology used for the modelling of hazard |
        • Simulated
        • Observed
        • Inferred | || Geographic area | Specific location for which the dataset has been developed | Name of location |
          When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknow or inapplicabile, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. @@ -205,11 +206,12 @@ Schema attributes for flood hazard map related to occurrence probability of a ri || Occurence time (end) | 2001 | || Occurence time (span) | 44 years | |*| Hazard process | River flood | -|*| Unit of measure | Water depth (m) | +|\*| Unit of measure | Water depth (m) |
          ### Earthquake hazard maps for Afghanistan + Schema attributes for earthquake hazard map related to occurrence probability of an event with return period of once in 1000 years over Afghanistan. The seismic data catalogue behind the calculation of occurrence probability start from year 800, covering a period of 1200 years. The hazard intensity is measured as Peak Ground Acceleration, expressed in (g). ![Screenshot](../img/hzd_eq_afg.jpg) @@ -225,6 +227,6 @@ Schema attributes for earthquake hazard map related to occurrence probability of || Occurence time (end) | 2001 | || Occurence time (span) | 1200 years | |*| Hazard process | Ground motion | -|*| Unit of measure | PGA (g) | +|\*| Unit of measure | PGA (g) |

          diff --git a/docs/data_model/index.md b/docs/data_model/index.md index a6e9fe8e..1c471120 100644 --- a/docs/data_model/index.md +++ b/docs/data_model/index.md @@ -6,6 +6,7 @@ The Risk Data Library Standard schema covers [**general dataset attributes**](ge - [**Exposure**](exposure): asset category, occupancy and specific taxonomy, cost type and value. - [**Vulnerability**](vulnerability): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. - [**Loss**](loss): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. +
        For definitions of these terms, please see the [Glossary](https://rdl-standard.readthedocs.io/en/docs.mat/glossary.html) diff --git a/docs/data_model/loss.md b/docs/data_model/loss.md index ef32a3be..eb149cca 100644 --- a/docs/data_model/loss.md +++ b/docs/data_model/loss.md @@ -129,6 +129,6 @@ Insert example of recorded empirical losses. || Occurence time (end) | 2001 | || Occurence time (span) | 1200 years | |*| Hazard process | Ground motion | -|*| Unit of measure | PGA (g) | +|\*| Unit of measure | PGA (g) |

        diff --git a/docs/data_model/vulnerability.md b/docs/data_model/vulnerability.md index 95c14109..01ed4c01 100644 --- a/docs/data_model/vulnerability.md +++ b/docs/data_model/vulnerability.md @@ -65,34 +65,34 @@ The **specifics** attributes add more optional details.
        | | **Field name** | **Description** | **Example** | -|:---:| --- | --- | --- | -| | par\_names | Parameters values names | MIDR , Ash depth | | -| | ub\_par\_value | Upper bound parameters value (Value1; Value2) | | -| | ub\_par\_perc | Upper bound parameters percentiles (Perc1; Perc2) | | -| | med\_par\_value | Median parameter values (Med1; Med2) | | -| | lb\_par\_value | Lower bound parameters value (Value1; Value2) | | -| | lb\_par\_perc | Lower bound parameters percentiles (Perc 1;Perc 2) | | -| | damage\_scale\_code | Code that identifies the damage scale | | -| | dm\_state\_name | Damage states studied in the reference study of the function | | -| | n\_dm\_states | Number of damage states studied in the reference study of the function | | -| | f\_disc\_im | Intensity measure values for the characterization of discrete functions | | -| | f\_disc\_ep | This field lists the associated exceeded probability values to the IM values of the previous field | | -| | lp\_code | | | -| | lp\_loss\_value | | | -| | edp\_code | Code related to specific engineering demand parameter (EDP) used to the DS thresholds | | -| | edp\_name | Specific engineering demand parameter (EDP) used to the DS thresholds | | -| | edp\_dmstate\_thre | Specific damage state EDP threshold | | -| | im\_code | Code of intensity measure | | -| | im\_name | Name of intensity measure | | -| | im\_range | Range of intensity measures as min;max (e.g. 0;500) | | -| | im\_units | Unit of intensity measure | | -| | im\_method | Type of source of the im data | | -| | im\_sim\_type | Type of simulation, Physics-based or IMPE | | -| | impe\_referenec | Reference study of the IMPE simulation | | -| | data\_countries | ISO code(s) of countries to which data refer | | -| | im\_data\_source | Reference studies for the IM data sources | | -| | n\_events | Number of events the function has been built on | | -| | n\_assets | INumber of assets the function has been built on | | +|:---:| --- | --- | --- | +| | par_names | Parameters values names | MIDR , Ash depth | | +| | ub_par_value | Upper bound parameters value (Value1; Value2) | | +| | ub_par_perc | Upper bound parameters percentiles (Perc1; Perc2) | | +| | med_par_value | Median parameter values (Med1; Med2) | | +| | lb_par_value | Lower bound parameters value (Value1; Value2) | | +| | lb_par_perc | Lower bound parameters percentiles (Perc 1;Perc 2) | | +| | damage_scale_code | Code that identifies the damage scale | | +| | dm_state_name | Damage states studied in the reference study of the function | | +| | n_dm_states | Number of damage states studied in the reference study of the function | | +| | f_disc_im | Intensity measure values for the characterization of discrete functions | | +| | f_disc_ep | This field lists the associated exceeded probability values to the IM values of the previous field | | +| | lp_code | | | +| | lp_loss_value | | | +| | edp_code | Code related to specific engineering demand parameter (EDP) used to the DS thresholds | | +| | edp_name | Specific engineering demand parameter (EDP) used to the DS thresholds | | +| | edp_dmstate_thre | Specific damage state EDP threshold | | +| | im_code | Code of intensity measure | | +| | im_name | Name of intensity measure | | +| | im_range | Range of intensity measures as min;max (e.g. 0;500) | | +| | im_units | Unit of intensity measure | | +| | im_method | Type of source of the im data | | +| | im_sim_type | Type of simulation, Physics-based or IMPE | | +| | impe_referenec | Reference study of the IMPE simulation | | +| | data_countries | ISO code(s) of countries to which data refer | | +| | im_data_source | Reference studies for the IM data sources | | +| | n_events | Number of events the function has been built on | | +| | n_assets | INumber of assets the function has been built on | |
        @@ -104,19 +104,19 @@ The **additional** attributes cover more specific information that helps to unde | | **Field name** | **Description** | **Example** | |:---:| --- | --- | --- | -| * | nonsampling\_err | Is there sampling error? | NO | -| | type\_nonsampling\_err | Type of non sampling error | | -| | is\_fix\_nonsam\_err | Has non sampling error being fixed? | TRUE | -| | is\_data\_aggregated | Has data been aggregated? | FALSE | -| | is\_data\_disaggr | Has data been disaggregated? | TRUE | -| | n\_data\_points\_aggr | Number of aggregated data points used for the evaluation of data quality | 600 | -| | an\_analysis\_type | Type of analysis for Analytical functions | | -| | em\_analysis\_type | Type of analysis for Empirical functions | | -| | jd\_analysis\_type | Type of analysis for Judgement functions | | -| | is\_fit\_good | Is the model fitness to data good overall? | TRUE | -| | fit\_ref | Reference model for fitting | -| | val\_data\_source | If validation has been done, source of the independent data | | -| | val\_study\_reference | Reference of the Validation study | | +| * | nonsampling_err | Is there sampling error? | NO | +| | type_nonsampling_err | Type of non sampling error | | +| | is_fix_nonsam_err | Has non sampling error being fixed? | TRUE | +| | is_data_aggregated | Has data been aggregated? | FALSE | +| | is_data_disaggr | Has data been disaggregated? | TRUE | +| | n_data_points_aggr | Number of aggregated data points used for the evaluation of data quality | 600 | +| | an_analysis_type | Type of analysis for Analytical functions | | +| | em_analysis_type | Type of analysis for Empirical functions | | +| | jd_analysis_type | Type of analysis for Judgement functions | | +| | is_fit_good | Is the model fitness to data good overall? | TRUE | +| | fit_ref | Reference model for fitting | +| | val_data_source | If validation has been done, source of the independent data | | +| | val_study_reference | Reference of the Validation study | | | | sample | Type of sampling | |
    diff --git a/docs/glossary.md b/docs/glossary.md index 04264c8a..4b96f22a 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -2,10 +2,7 @@ # Glossary of terms -In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. - - - +In this section, you will find definition of key concepts behind the RDLS including what is a disaster, how to reduce disaster risk through disaster disaster risk management and disaster risk assessment and what are the different types of risk data needed. ## Disaster risk @@ -15,9 +12,6 @@ Disaster risk comprises different types of potential impacts and losses (direct Source: [UNDRR Terminology (Disaster Risk)](https://www.undrr.org/terminology/disaster-risk) - - - ## Disaster risk assessment A qualitative or quantitative approach to determine the nature and extent of disaster risk by analysing potential hazards and evaluating existing conditions of exposure and vulnerability that together could harm people, property, services, livelihoods and the environment on which they depend. @@ -27,30 +21,18 @@ Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/ter - - - - ## Disaster risk information (_risk data_) Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. Disaster risk information includes all studies, information and mapping required to understand the disaster risk drivers and underlying risk factors. Source: [UNDRR Terminology (Disaster Risk Information)](https://www.undrr.org/terminology/disaster-risk-information) - - - - ## Disaster risk management Disaster risk management is the application of disaster risk reduction policies and strategies to prevent new disaster risk, reduce existing disaster risk and manage residual risk, contributing to the strengthening of resilience and reduction of disaster losses. Source: [UNDRR Terminology (Disaster Risk Management)](https://www.undrr.org/terminology/disaster-risk-management) - - - - ## Exposure The situation of people, infrastructure, housing, production capacities and other tangible human assets located in hazard-prone areas. Measures of exposure can include the number of people or types of assets in an area. These can be combined with the specific vulnerability and capacity of the exposed elements to any particular hazard to estimate the quantitative risks associated with that hazard in the area of interest @@ -64,9 +46,6 @@ Source: [UNDRR Terminology (Exposure)](https://www.undrr.org/terminology/exposur ``` ```` - - - ## Hazard An hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. @@ -82,9 +61,8 @@ Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) ``` ```` - - ## Impact model + An impact model (also damage model; loss model) is used to combine Hazard, Exposure and Vulnerability compoments to calculate the amount of value that is expected to be impacted (damaged or lost). Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/files/solving-the-puzzle-report.pdf) @@ -96,9 +74,8 @@ Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/fi ``` ```` - - ## Vulnerability + Vulnerability are the conditions determined by physical, social, economic and environmental factors or processes which increase the susceptibility of an individual, a community, assets or systems to the impacts of hazards. The inverse of vulnerability is defined coping capacity, which is the combination of all the strengths, attributes and resources available within an organization, community or society to manage and reduce disaster risks and strengthen resilience. Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vulnerability) @@ -109,4 +86,3 @@ Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vu ![Vulnerability](img/sample_vln.jpg) ``` ```` - diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index 0460d6c2..eed56ffa 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -6,60 +6,71 @@ The collection can be accessed from the [collections page](https://datacatalog.w ![Screenshot](../img/rdl_collection.png) ## Add datasets + Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`.
    Datasets needs to be packaged according to the [**data preparation guidelines**](preparation).

    Two options to upload data: + - **Individually**: using the upload wizard - **Bulk**: for large number of datasets, requires support by the [DDH team](../about/contacts.md#ddh-team) In both cases, datasets can be added to the [RDL Collection](https://datacatalog.worldbank.org/search/collections/rdl) only by the [RDL team](../about/contacts.md#rdl-team), after approval. ### Individual datasets + - Log in to the [Data Catalog](https://datacatalog.worldbank.org/int/home) (top right bar) + - View [My datasets](https://datacatalog.worldbank.org/int/data/mydata) (top right bar) ![Screenshot](../img/rdl_ddh_mydata.png) The page shows dataset number, name, modified date, status (Published, Draft, Under review, Publishing in progress) for datasets you have uploaded or for which you are listed as a contributor + - Under `Action` you can `edit` or `submit for review` to the [DDH team](../about/contacts.md#ddh-team). - When status is `Published`, the dataset will be visible on the World Bank Data Catalog. + - Click [Add data](https://datacatalog.worldbank.org/int/data/add) (top right bar) -Select the option on the right: _`continue`_. -![Screenshot](../img/rdl_ddh1.png) + Select the option on the right: _`continue`_. + ![Screenshot](../img/rdl_ddh1.png) 1. **Essential Information** - ![Screenshot](../img/rdl_ddh2.png)

    + ![Screenshot](../img/rdl_ddh2.png)

    + + 1. **Data Resources** - 2. **Data Resources** - Upload dataset from your local storage - Add a resource title and description - When one resource has been submitted, another one can be added - ![Screenshot](../img/rdl_ddh3.png)

    + ![Screenshot](../img/rdl_ddh3.png)

    3. **Additional information** - ![Screenshot](../img/rdl_ddh_add.png) + ![Screenshot](../img/rdl_ddh_add.png) + - **Tags**: These are important for being able to search the data in the catalog. Suggestions for RDLS data: - Climate Risk or Disaster Risk - Hazard, Exposure, Vulnerability, Loss (depending on the component type) - Flood, Earthquake, Landslide, Tsunami (hazard type) - **Topics**: There is currently no topic for risk analytics or climate and disaster risk - leave blank - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](../about/contacts.md#ddh-team) with request to assign data to RDL Colelction. - ![Screenshot](../img/rdl_ddh4.png) + ![Screenshot](../img/rdl_ddh4.png) Once done, click on `Save as draft`. The dataset will appear under `My datasets` list. ### Bulk upload -In cases where large volumes of project data need to be uploaded, DDH team can assist with bulk upload. + +In cases where large volumes of project data need to be uploaded, DDH team can assist with bulk upload. The workflow steps are: + 1. Login with WB credentials and store project data on the [DataCatalog Sharepoint](https://worldbankgroup.sharepoint.com.mcas.ms/sites/ddh2/Shared%20Documents/Forms/AllItems.aspx?csf=1&web=1&e=pmjIeC&CT=1683747817820&OR=OWA%2DNT&CID=1c049bb0%2Db912%2D850b%2D383e%2D4dcda23ac626&RootFolder=%2Fsites%2Fddh2%2FShared%20Documents%2FRisk%20Data%20Library&FolderCTID=0x012000374C108104547647A016D80E1BFD3084) - using appropriate folders structuring (Project/Component/...) -2. Create an excel spreadsheet describing the datatype with each dataset name, URL to data and URL to prepared JSON metadata. -3. Describe the data structure to be achieved on DDH. -4. DDH team will copy the data and metadata to DDH Sharepoint. -5. DDH team will use scripts to upload datasets; these will appear in your `My Datasets` for review and any further editing. +1. Create an excel spreadsheet describing the datatype with each dataset name, URL to data and URL to prepared JSON metadata. +1. Describe the data structure to be achieved on DDH. +1. DDH team will copy the data and metadata to DDH Sharepoint. +1. DDH team will use scripts to upload datasets; these will appear in your `My Datasets` for review and any further editing. ### Add RDL custom metadata + - Create metadata following to Risk Data Library schema in JSON format, including the description and name of resources under that dataset. Either: 1. Write directly into JSON file - 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH). It exports a JSON file to be saved with the dataset. + 1. Use JSON metadata creation tool. This tool is standalone (not part of DDH). It exports a JSON file to be saved with the dataset. - Upload metadata with the dataset. Once the import process is concluded, metadata will become available to download from the dataset page and as part of custom metadata shown. ```{figure} https://user-images.githubusercontent.com/44863827/237736456-7d6cafe9-d83c-483e-b03b-02c69d89c705.png diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 5064f86b..c8e0fe32 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -3,7 +3,7 @@ Risk data can be made of spatial or non-spatial data. - **Spatial data (geodata)** can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type. -

    +

    - **Non-spatial data** most often consist of table data stored as excel or csv files for greater compatibility. Below is a list of recommended and supported geodata formats. @@ -23,7 +23,6 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work **GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation), compressed into a .zip file together with the .tif files for sharing. - **A Cloud Optimized GeoTIFF (COG)** is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted on a geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). ## Supported geodata formats diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index a280c63a..00702b30 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -6,9 +6,10 @@ Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https:// - **GEOGRAPHY**: data covering a multi-country region might be split into individual countries' datasets. - **THEME**: for risk data, this includes hazard, sector or asset type. -Depending on the project or intended purpose of the data, one or other grouping might be preferred. + Depending on the project or intended purpose of the data, one or other grouping might be preferred. We also need to consider: + - **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about supported data formats. - **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. - **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. @@ -17,6 +18,7 @@ We also need to consider: In general, splitting raster datasets into smaller parts is not advised, according to self-dependency and completeness criteria. For data efficiency, always consider a larger extent than needed as to avoid cross-border artefacts. Instead of splitting rasters, consider storing the raster in an alternative format that maybe more size-efficient (see Formats sections). ![Screenshot](../img/raster_clip.jpg) ``` + Structuring risk data well when it is generated and before it is delivered to a client is important to ensure data folder are intuitive to search, and make dataset upload more efficient (and it is easier to do first time than changing the structure later). Decisions on how to structure risk data can be taken on a project-by-project basis, because there is a wide variety of how data are structured depending on the components of a project. For a country-scale analysis, we advise to follow the following structure of folders when preparing data for delivery / upload to a risk data catalog: ``` @@ -42,10 +44,13 @@ Structuring risk data well when it is generated and before it is delivered to a ```{caution} Where there are many resources for a dataset, it can be tempting to include a folder structure in the online Data Catalog. This is not advised and it is suggested that `datasets` be grouped together into individual `Resources` in order to facilitate finding the specific component of analysis, and without creating problematically large file sizes. ``` +
    ## Hazard data + ### Format / data types + Hazard data typically include hazard maps representing one or more historical events, or simulated probabilistic scenarios (`event footprints`). In some cases, hazard curves and stochastic event set tables are provided. Additional data could include intensity-duration-frequency curves, ground motion relationships, or hazard-defence measures.
    Generally, hazard data (footprints) takes the form of raster (geo grid) data (`GeoTIFF / COG`), less often as vector data (`gpkg`, `shp`). Supporting data (hazard curves, historical catalogue) could come as tables (`csv`, `xlsx`) or vector data (`gpkg`, `shp`). @@ -61,20 +66,26 @@ width: 98% ``` ### Thematic grouping + The main thematic groupings in hazard data are: + - **Hazard type**: data produced for seismic hazard, wildfire, fluvial flood, pluvial flood, etc. - **Reference period**: e.g., historical, projections (2050, 2080) ### Geographic grouping + - **Scale, location and resolution**: Hazard data can be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level analysis) might be grouped for individual locations (city) whenever the dataset becomes too large. ### Packaging recommendation + We recommend grouping hazard data using the following hierarchy: + - **Hazard type** - *Geographic scale and location* - *Reference period* For example: + ``` └── Hazard @@ -91,10 +102,13 @@ For example: ├── <...> └── <...> ``` +
    - + ## Exposure data + ### Format + Exposure dataset typically describe the location, characteristics and value of individual assets or an aggegrated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). In some cases, exposure comes as table (`csv`, `xls`). @@ -110,23 +124,29 @@ width: 98% ``` ### Thematic grouping + The main thematic groupings in exposure data are: + - **Exposure category**: e.g. Population / Built-up / Cropland - **Sub-type**: e.g. Built-up asset type (Structure, Content, Product) / sector (Residential, Commercial) / construction type (Masonry, Wood - e.g. Population gender (male, female) / Age distribution (children; over 65) + e.g. Population gender (male, female) / Age distribution (children; over 65) - **Year**: reference period or year, e.g. specific year (2020), projected period (2040-2060), etc. ### Geographic grouping + - **Scale, location and resolution**: Exposure data can be generated at global, regional, national, subnational, or urban level. High-resolution hazard data (e.g. urban level) might be grouped for individual locations (city) whenever the dataset becomes too large. ### Packaging recommendation + We recommend grouping exposure data using the following hierarchy: + - **Geographic scale and location** - **Exposure category** - **Year** - - *Sub-type* (optional) + - *Sub-type* (optional) For example: + ``` └── Exposure @@ -142,10 +162,13 @@ For example: └── └── <...> ``` +
    ## Vulnerability data + ### Format + Vulnerability data are usually provided as table data (`csv`, `xls`) or json containing the impact model function and parameters. ```{figure} https://gfdrr.github.io/CCDR-tools/_images/vln_fl_bu.png @@ -159,15 +182,19 @@ Example of vulnerability functions for floods (depth-damage curve) as table data Often, vulnerability models are proprietary data and only shared as pictures; this has low reusability and ought to be avoided. Always try to obtain a mathematical description for this component. ### Thematic grouping + The main thematic groupings specific to vulnerability data are: -
      - **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. -
      - **Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) +
      - **Hazard type**: e.g. Flood damage function; Earthquake fragility curves. +
      - \**Exposure type and sub-type*: e.g. Builtup (Structure, Content, Product / Residential, Commercial / Masonry, Wood) ### Geographic grouping + Vulnerability curves can be developed for individual countries or environments within a project. Where this is the case, this grouping ought to be retained. ### Packaging recommendation + We recommend to group exposure data using the following hierarchy: + - **Hazard type** - *Geographic* (unless global function, one dataset per country) - **Exposure category** (Population, Built-up, ...) @@ -184,6 +211,7 @@ width: 98% --- Example of multiple vulnerability functions for floods (depth-damage curve) into one excel file ([Source: JRC](https://publications.jrc.ec.europa.eu/repository/bitstream/JRC105688/copy_of_global_flood_depth-damage_functions__30102017.xlsx)). ``` + For example, when grouping multiple functions into one excel file, the following approach can be adopted: ``` @@ -199,37 +227,47 @@ For example, when grouping multiple functions into one excel file, the following └── <...> └── <...> ``` +
    ## Loss data + ### Format + Loss data comes in the form of: + - tabulated event losses, and loss per exceedance probability - Mapped return period loss / annual average loss - in vector files/choropleth maps - (more rarely) as granular raster or vector data with loss value attached ### Thematic grouping + The main thematic groupings in loss data are: + - **Hazard type**: denoting a single hazard or a multi-hazard loss metric. - **Asset type / sector**: e.g. Structure, Content, Product / Residential, Commercial - **Year or period**: e.g. historical (2020), projections (2040-2060), etc. ### Geographic grouping + Losses are usually aggregated at national or subnational administrative level (ADM2, ADM1, or ADM0) or for a multi-country region. Losses can also be provided per asset (e.g. individual buildings or raster footprints) but it is not usual, although these files are usually generated by the risk analysts. -### Packaging recommendation +### Packaging recommendation + Strategy depends on the data format and size: + - if data consists of one or more table datasets, it is usually a good idea to group it together into one `excel` file so users can access all of the losses at once; - if data consists of one or more vector datasets representing national or subnational boundary levels, these can be grouped into one `geopackage` file; - if data consists of multiple granular spatial data, it might be packed as individual or multiple layers (depending on the size of individual layers) In either case, we recommend grouping exposure data using the following hierarchy: + - **Hazard type** - *Country* - - **Exposure category** - - *Sub-type* - - Year or period + - **Exposure category** + - *Sub-type* + - Year or period For example: @@ -246,4 +284,5 @@ For example: └── <...> └── <...> ``` +

    diff --git a/docs/guides/rdl-metadata.md b/docs/guides/rdl-metadata.md index 7cae1794..129ba71e 100644 --- a/docs/guides/rdl-metadata.md +++ b/docs/guides/rdl-metadata.md @@ -1,11 +1,10 @@ # RDL metadata ## Adoption of the metadata schema + Metadata enables datasets to be found by human and machine searches, and so users can easily identify the dataset contents. It is strongly encouraged that any risk dataset being uploaded online has metadata prepared and uploaded with it. - + The Risk Data Library Standard defines metadata in JSON format, but it can be translated into table (csv/excel). `WIP` - Option 1. Write directly into JSON file (templates are available at ...) -- Option 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH) AND UNDER DEVELOPMENT. It uses an xsl file containing metadata in a specified structure, and exports a JSON file to be saved with the dataset. - - +- Option 2. Use JSON metadata creation tool. This tool is standalone (not part of DDH) AND UNDER DEVELOPMENT. It uses an xsl file containing metadata in a specified structure, and exports a JSON file to be saved with the dataset. diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md index ec5f4240..e90c8f42 100644 --- a/docs/rdl/core-standards.md +++ b/docs/rdl/core-standards.md @@ -4,19 +4,18 @@ RDLS has been built based on existing open data standards. In this section you will find a short summary of the core standards upon which the RDL data model has been built. - ## General standards -RDLS is built using [JSON](https://www.json.org/json-en.html) (JavaScript Object Notation). JSON is a lightweight data-interchange format which is easy for humans to read and write and easy for machines to parse and generate. +RDLS is built using [JSON](https://www.json.org/json-en.html) (JavaScript Object Notation). JSON is a lightweight data-interchange format which is easy for humans to read and write and easy for machines to parse and generate. ## Exposure standards **GED4ALL**: -In 2018 an international consortium led by the Global Earthquake Model Foundation (GEM) developed an open, multi-scale exposure data schema for multi-hazard analysis (GED4ALL) in response to recommendations from community consultation. GED4ALL simplified certain detailed engineering aspects of the original global exposure model focussed on earthquake hazards ([GED4GEM](https://journals.sagepub.com/doi/10.1177/8755293020919429)), while also expanding the exposure parameters included, so the impacts of other hazards could be related to exposure data using the standard. In this standard, GED4ALL is used as a reference in the exposure, vulnerability and loss components, to describe the exposure type to which losses relate, and to facilitate matching of appropriate vulnerability functions to exposure data, for example. +In 2018 an international consortium led by the Global Earthquake Model Foundation (GEM) developed an open, multi-scale exposure data schema for multi-hazard analysis (GED4ALL) in response to recommendations from community consultation. GED4ALL simplified certain detailed engineering aspects of the original global exposure model focussed on earthquake hazards ([GED4GEM](https://journals.sagepub.com/doi/10.1177/8755293020919429)), while also expanding the exposure parameters included, so the impacts of other hazards could be related to exposure data using the standard. In this standard, GED4ALL is used as a reference in the exposure, vulnerability and loss components, to describe the exposure type to which losses relate, and to facilitate matching of appropriate vulnerability functions to exposure data, for example. Details about the development of GED4ALL are reported [here](https://riskdatalibrary.org/resources). - ## Hazard data standards + In 2018 an international consortium led by the British Geological Survey developed a first-of-its-kind standard for hazard information. In this standard, we developed a list of hazard type codes and process type codes which are used as a reference in the hazard, vulnerability and loss components of the standard, and facilitate matching of appropriate vulnerability functions to hazard data, for example. Details about the development are reported [here](https://riskdatalibrary.org/resources). @@ -27,13 +26,13 @@ A GLIDE number comprises two letters to identify the disaster type (e.g. EQ - ea The RDL Standard uses a GLIDE number in the `hazard.event` object, to denote the historical event to which hazard event data relates, e.g., the simulated hazard intensity footprint of that event. ## Vulnerability data standards + In 2018 an international consortium led by the UCL EPICentre developed a first-of-its-kind standard for vulnerability information, called MOVER. Details about the development are reported [here](https://riskdatalibrary.org/resources). - ## Loss data standards + In 2019 GEM and UCL EPICentre developed a first-of-its-kind standard for loss information. Details about the development are reported [here](https://riskdatalibrary.org/resources). -

    diff --git a/docs/rdl/index.md b/docs/rdl/index.md index 98bf4a78..41e77382 100644 --- a/docs/rdl/index.md +++ b/docs/rdl/index.md @@ -1,6 +1,6 @@ # Overview -The Risk Data Library (RDL) project grew out of in-depth community consultation on improving access to **risk information**. +The Risk Data Library (RDL) project grew out of in-depth community consultation on improving access to **risk information**. The RDL Standard (RDLS) is a result of the collective effort and ongoing support of internationally-recognised research insitutions and established global partnerships with combined expertise across multiple hazards and all aspects of risk assessment. The partners have a complete understanding of the challenges risk analysts face in finding, editing and exchanging data for disaster risk assessments, for various scales and contexts. @@ -16,5 +16,5 @@ Its overarching purpose is to support disaster resilience work by making risk da use-cases roadmap ``` -

    +

    diff --git a/docs/rdl/roadmap.md b/docs/rdl/roadmap.md index 9481f9aa..69ec1ff8 100644 --- a/docs/rdl/roadmap.md +++ b/docs/rdl/roadmap.md @@ -1,8 +1,9 @@ # History and Roadmap ## History (2016-2021) -The Risk Data Library project is led by the Global Facility for Disaster Reduction and Recovery ([GFDRR](https://www.gfdrr.org/en)), under its [Digital Earth](https://www.gfdrr.org/en/digitalearthpartnership) Thematic Area. -GFDRR is a global partnership that helps developing countries better understand and reduce their vulnerability to natural hazards and climate change. + +The Risk Data Library project is led by the Global Facility for Disaster Reduction and Recovery ([GFDRR](https://www.gfdrr.org/en)), under its [Digital Earth](https://www.gfdrr.org/en/digitalearthpartnership) Thematic Area. +GFDRR is a global partnership that helps developing countries better understand and reduce their vulnerability to natural hazards and climate change. The RDL project originated under the GFDRR Innovation Labs uses cutting-edge science and technology to make high-quality risk information available faster and at lower costs, and develop new tools that allow decision-makers and communities to collect, share, and understand risk information. We tailor our approach to support the full range of disaster risk management interventions — from preparedness to risk reduction to consideration of financial solutions. @@ -16,13 +17,14 @@ The Risk Data Library concept emerged from in-depth research into the risk infor The [Solving the Puzzle report](https://www.gfdrr.org/en/solving-puzzle-innovating-reduce-risk) documents the findings and recommendations of the consultation. This report provides a community perspective on priorities for future collaboration and investment in the development and use of disaster risk information for developing countries. The focus is on high-impact activities that will promote the creation and use of risk-related data, catastrophe risk models, and platforms, and that will improve and facilitate the understanding and communication of risk assessment results. On the recommendations of 'Solving the Puzzle', GFDRR commissioned the development of risk data schema, comprising connected components: + - An open exposure data schema. The Global Earthquake Model Foundation (GEM) led the development of the exposure component (GED4ALL) of the RDL schema. GEM has continued to contribute to the project by developing the modeled loss component and creating the unified schema and database. - University College London (UCL) EPICentre developed the vulnerability component (MOVER) and has continued to refine this in collaboration with GEM. - The British Geological Survey (BGS) led the development of the hazard data component of the RDL schema. - Collaborating partners in the first phase of schema development also included HOTOSM, ImageCat, Norwegian Geotechnical Institute, NERC National Oceanographic Centre, CIMA Foundation, Earth Observatory Singapore, Global Volcano Model, and the Global Flood Partnership. - GeoSolutions developed an open pilot risk visualization dashboard (HEV-E), intended to visualize the contents of the hazard, exposure and vulnerability schema. -In 2019, the existing schema was updated by GEM and UCL EPICentre and they developed a modeled loss schema. +In 2019, the existing schema was updated by GEM and UCL EPICentre and they developed a modeled loss schema. In 2020 the existing schema, still focussed on a database format for storing data, was updated to enable closer integration of the four components by creating a unified database and common tables linking all schema. @@ -31,11 +33,10 @@ Through 2021, GFDRR worked with open data standards specialists to explore modif ## Roadmap (2022 onwards) In 2022, GFDRR obtained grant funding from the [Swiss Re Foundation](https://www.swissrefoundation.org/) to further develop the Risk Data Library Standard, as an open standard. + - GFDRR worked with the World Bank Development Data Hub (Data Catalog) team to establish the [Risk data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl). - GFDRR established the Disaster and Climate Risk Fellowship program, in which The Digital Earth team at GFDRR is recruiting fellows from vulnerable countries to support World Bank disaster and climate risk data projects and contribute to the adoption of the new Risk Data Library Standard. The fellowship program offers a 6-month placement for climate and disaster risk professionals from selected climate-vulnerable countries to work with the Risk Data Library Standard to access, create and communicate climate risk knowledge with their communities. The selected countries are: Bangladesh, Democratic Republic of the Congo, India, Indonesia, Philippines, and South Africa. - GFDRR collaborated with the [Open Data Services Co-operative](https://opendataservices.coop/) to establish the JSON standard and improve documentation and sustainability of RDLS using open standards best practice. - GFDRR and Swiss Re Foundation established a new steering committee for the period of the grant funding, to oversee development of the standard and outcomes of the fellowship program. The steering committee comprises members of the original development teams, and data users from the insurance industry and curators of other open data standards. - -

    diff --git a/docs/rdl/use-cases.md b/docs/rdl/use-cases.md index 7194c4c3..02983706 100644 --- a/docs/rdl/use-cases.md +++ b/docs/rdl/use-cases.md @@ -2,34 +2,30 @@ A **risk analyst** is scoping available risk data for a **disaster risk reduction project**. Searching the **RDL catalog** they can review the available data for the location of interest. They can then interrogate the data easily given the detailed and consistent **metadata** available, to make a decision on whether to directly use it in their analysis or invest in improving it. - ***Value***: Reduced time to find and understand existing data. +***Value***: Reduced time to find and understand existing data.
    A **development bank** produces public good dashboards to deliver **risk insights** to client governments. The dashboard uses risk data from multiple projects to estimate the **number of assets or population** exposed to risk to assist in prioritising investments. Pulling data via the **RDL API**, many different datasets can be ingested and applied through a single workflow. - ***Value***: Efficient data pipelines to ingest multiple datasets with confidence in the consistency of data structure and metadata. +***Value***: Efficient data pipelines to ingest multiple datasets with confidence in the consistency of data structure and metadata.
    An **academic research team** needs to demonstrate the impact of a **risk analytics and urban planning project**, by making the data available for others to use. Their dataset are formatted according to the **RDL standards** and published in a data catalogue set up for the project, using the **template implementation** available through the RDL project. - ***Value***: The pre-designed open-source deployable solutions can assist a research group achieve impact efficiently. - +***Value***: The pre-designed open-source deployable solutions can assist a research group achieve impact efficiently.
    An **insurance industry analyst or model developer** needs to **build a new catastrophe model** or **analyse a new portfolio** to insure in an emerging market, where the company has limited experience and data. They are searching for existing data to support their analysis and find some existing data created by consultants in the development sector, shared via the Risk Data Library Collection of the World Bank Data Catalog, formatted according to the **RDL standards** and available to download and use. - ***Value***: The data can be used directly or improved to assess the risk to the new portfolio, and could expedite the placement of insurance cover for vulnerable communities. - - - +***Value***: The data can be used directly or improved to assess the risk to the new portfolio, and could expedite the placement of insurance cover for vulnerable communities.
    -A **humanitarian organisation** are creating a **disaster risk financing** program to fund, ex-ante, disaster response and recovery and an **anticipatory action** program. They are relying on historical observations to assess the risk to define a suitable risk layered approach and select the correct DRF solutions, and want to improve this method by including probabilistic analysis. Using RDL tools they are able to find datasets and the results of previous risk analysis. Because the datasets are formatted according to the **RDL standards** they are able to quickly understand the contents of the data and whether it is suitable for their use. +A **humanitarian organisation** are creating a **disaster risk financing** program to fund, ex-ante, disaster response and recovery and an **anticipatory action** program. They are relying on historical observations to assess the risk to define a suitable risk layered approach and select the correct DRF solutions, and want to improve this method by including probabilistic analysis. Using RDL tools they are able to find datasets and the results of previous risk analysis. Because the datasets are formatted according to the **RDL standards** they are able to quickly understand the contents of the data and whether it is suitable for their use. - ***Value***: The data can be improve existing methods in risk financing to make DRF solution more efficient and sustianable. +***Value***: The data can be improve existing methods in risk financing to make DRF solution more efficient and sustianable.

    diff --git a/docs/readme.md b/docs/readme.md index c4e4c1c8..1e19abdb 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -3,5 +3,3 @@ These files in this folder provide the contents of the RDLS documentation, re-wr THe documentation follows open data standards best practice, advised by Open Data Services Co-operative. When preparing documentation, please refer to the correct use of normative and non-normative wording, summarised [here](https://docs.google.com/document/d/13g1SZO3ZSHbkymtc69lQOu9vB9vlZVZnodAcxC50l1M/edit#). - - diff --git a/docs/taxonomies/ged4all.md b/docs/taxonomies/ged4all.md index aaff030c..41e85a38 100644 --- a/docs/taxonomies/ged4all.md +++ b/docs/taxonomies/ged4all.md @@ -11,13 +11,14 @@ The taxonomy covers four main categories: - [Socio-Economic indicators](#socio-economic-indicators) ## Buildings + The buildings taxonomy is based on GEM openquake taxonomy, with some semplifications. The taxonomy string is built as sequence of attributes separeted by slash: `MATERIAL/HEIGHT/DATE/OCCUPANCY/SHAPE/…` Missing attributes can be skipped from the string, e.g. -2-floors detached residential dwelling, reinforced concrete structure: `CR/H:2/RES1` +2-floors detached residential dwelling, reinforced concrete structure: `CR/H:2/RES1`
    @@ -132,6 +133,7 @@ Missing attributes can be skipped from the string, e.g.
    ## Lifelines + The **lifelines** taxonomy includes all infrastructures commonly found in populated areas, such as: - [Roads and railways](#roads-and-railways) @@ -221,7 +223,7 @@ Large elevated pipe for potable water: `CPW/PEL/DLG` | Soil type | SCO | Corrosive | | | SNC | Non corrosive | | | -- | Unknown soil type | -| Diameter | DSM | Small (< 40 cm) | +| Diameter | DSM | Small (\< 40 cm) | | | DLG | Large (≥ 40 cm) | | | -- | Unknown diameter | @@ -251,7 +253,7 @@ Electric ditribution line through pylones: `PWG/SSM/ANC` | | -- | Unknown | | Power Capacity | PC: | Value (integer) | | | -- | Unknown power capacity | -| Power grid | SSL | Low Voltage (<115 KV) Substation | +| Power grid | SSL | Low Voltage (\<115 KV) Substation | | | SSM | Medium Voltage (115-500 KV) Substation | | | SSH | High Voltage (>500 KV) Substation | | | DTC | Distribution circuit | @@ -282,10 +284,10 @@ The alphanumeric taxonomy strings are:
    | Attribute | Code | Description | |-|:-:|-| | **Potable water** | PWR | | -| Component | PWS | Small potable water treatment plant (<50 MGD) | +| Component | PWS | Small potable water treatment plant (\<50 MGD) | | | PWM | Medium potable water treatment plant (50-200 MGD) | | | PWL | Large potable water treatment plant (>200 MGD) | -| | PPS | Small pumping plant (<10 MGD) | +| | PPS | Small pumping plant (\<10 MGD) | | | PPM | Medium pumping plant (10-50 MGD) | | | PPL | Large pumping plant (>50 MGD) | | Anchorage | ANC | Anchored | @@ -297,10 +299,10 @@ The alphanumeric taxonomy strings are:
    | | CDH | High code | | | -- | Code provisions unknown | | **Wastewater** | WWR | | -| Component | WWS | Small wastewater treatment plant (<50 MGD) | +| Component | WWS | Small wastewater treatment plant (\<50 MGD) | | | WWM | Medium wastewater treatment plant (50-200 MGD) | | | WWL | Large wastewater treatment plant (>200 MGD) | -| | LSS | Small lift station (<10 MGD) | +| | LSS | Small lift station (\<10 MGD) | | | LSM | Medium lift station (10-50 MGD) | | | LSL | Large lift station (>50 MGD) | | Anchorage | ANC | Anchored | @@ -487,7 +489,7 @@ Natural hazards are a complex phenomenon featuring large number of interactions - [Index](#index): range of indexes that cover different sectors, for example, the Disaster Risk Index used by the United Nation Development programme to monitor the global evolution of risk. - [Infrastructure](#infrastructure): Transportation and communication infrastructure, status and access to utility lifelines -### Population +### Population
    @@ -678,7 +680,7 @@ Natural hazards are a complex phenomenon featuring large number of interactions

    -### Governance +### Governance | Attribute | Code | Description | |-|:-:|-| diff --git a/docs/taxonomies/index.md b/docs/taxonomies/index.md index f6d89a3d..194c6cf4 100644 --- a/docs/taxonomies/index.md +++ b/docs/taxonomies/index.md @@ -18,8 +18,7 @@ The RDL project performed a review of the most relevant hazard taxonomies and de - [**Munich-RE**](https://www.cred.be/downloadFile.php?file=sites/default/files/DisCatClass_264.pdf) covers 27 natural hazards 13 main categories (Geophysical, Meteorological, Hydrological, Climatological, Biological, Extraterrestrial). - -## Exposure taxonomies +## Exposure taxonomies The exposure schema can accomodate different descriptions of assets using a taxonomy which describes their characteristics (e.g. building occupancy, construction, age, height, etc. or road surface type). @@ -35,32 +34,31 @@ The exposure schema can accomodate different descriptions of assets using a taxo ged4all ``` + ### GEM Building Taxonomy -The [GEM Building Taxonomy](https://www.globalquakemodel.org/gempublications/GEM-building-taxonomy-version-2.0) is dedicated to building characteristics relevant to assessing vulnerability to seismic events. It describes characteristics such as an asset's height, number of storeys, age, occupancy, material, type of roof, floor, foundations and structural system. [TaxtWEB](https://platform.openquake.org/taxtweb) is a tool developed by GEM to assist with the generation of the taxonomy string which is used to describe these attributes. +The [GEM Building Taxonomy](https://www.globalquakemodel.org/gempublications/GEM-building-taxonomy-version-2.0) is dedicated to building characteristics relevant to assessing vulnerability to seismic events. It describes characteristics such as an asset's height, number of storeys, age, occupancy, material, type of roof, floor, foundations and structural system. [TaxtWEB](https://platform.openquake.org/taxtweb) is a tool developed by GEM to assist with the generation of the taxonomy string which is used to describe these attributes. Example: The string `CR/HEX:1/YEX:1981/RES+RES1` describes a residential single family building, of reinforced concrete construction, built in 1981. This is the short version of the taxonomy, the long version explicitly includes all of the unknown fields too. -### Open Exposure Data (OED) +### Open Exposure Data (OED) -[OED](https://github.com/OasisLMF/ODS_OpenExposureData) is a standard curated by the Oasis community for the insurance industry. The aim of OED is to provide the industry with a robust, open, and transparent data format. The detailed descriptions of the OED taxonomy to describe an asset (structure, infrastructure, or human) are covered in ['Open Exposure Data Spec.xlsx' with reference and background information](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs), or [online]https://oasislmf.github.io/OpenDataStandards/index.html. +[OED](https://github.com/OasisLMF/ODS_OpenExposureData) is a standard curated by the Oasis community for the insurance industry. The aim of OED is to provide the industry with a robust, open, and transparent data format. The detailed descriptions of the OED taxonomy to describe an asset (structure, infrastructure, or human) are covered in ['Open Exposure Data Spec.xlsx' with reference and background information](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs), or \[online\]https://oasislmf.github.io/OpenDataStandards/index.html. Example: In the Open Exposure Data (OED) Standard and other insurance industry models, asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: | OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt | | -------------- | -------------- | -------------- | -------------- | | 1050 | 5101 | 1 | 0 | - ### CEDE [CEDE (Catastrophe Exposure Data Exchange)](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic1.html), is the exposure database format used by Touchstone®, AIR's comprehensive risk management platform that was first released in early 2013. It is publicly available and used widely in the insurance industry to describe asset characteristics and values for catastrophe modelling. CEDE uses a database format and allows users to apply different occupancy and construction schemes and codesets to their data, and add additional fields describing year of construction, number of storeys, etc. The most common taxonomy used in CEDE is [AIRConstruction](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic32.html) and [AIROccupancy](https://docs.air-worldwide.com/Database/CEDE/10.0/webframe.html#topic33.html). These codes are also available in the [OED Open Exposure Data Spec](https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs) as OED was based on and builds on CEDE. -Example: In CEDE data asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: +Example: In CEDE data asset characteristics are separated into individual columns. This record describes a building classified as general residential, single storey, constructed from adobe masonry, with an unknown year of construction: | OccupancyCode | ConstructionCode | NumberOfStoreys | YearBuilt | -------------- | -------------- | -------------- | -------------- | | 301 | 112 | 1 | 0 | - ## Vulnerability taxonomies Content under development. From 67f15f961bf0c4b1ae8fc321adef0483aa978675 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 22 Jun 2023 11:17:27 +1200 Subject: [PATCH 54/73] docs/data_model/general.md: Fix heading level --- docs/data_model/general.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data_model/general.md b/docs/data_model/general.md index d2ba3056..4c06d4f1 100644 --- a/docs/data_model/general.md +++ b/docs/data_model/general.md @@ -1,4 +1,4 @@ -## General attributes +# General attributes In addition to schema-specific attributes, each dataset is identified by a list of attributes based on
    DublinCore metadata standard. From fb7455e9e4bb1c0f864dd7578d496ce321fe71de Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 22 Jun 2023 11:21:23 +1200 Subject: [PATCH 55/73] docs/about: Integrate changelog updates --- docs/about/changelog.md | 15 ++++++++++++--- docs/about/history/changelog.md | 15 --------------- docs/about/history/index.md | 11 ----------- 3 files changed, 12 insertions(+), 29 deletions(-) delete mode 100644 docs/about/history/changelog.md delete mode 100644 docs/about/history/index.md diff --git a/docs/about/changelog.md b/docs/about/changelog.md index 4e967bd9..4f479cee 100644 --- a/docs/about/changelog.md +++ b/docs/about/changelog.md @@ -1,6 +1,15 @@ # Changelog -Summary of developments or improvements to the data model and standard.
    -Including pointers to key papers, reports, key decisions and a high-level changelog. +This page lists changes to the Risk Data Library Standard. -

    +## YYYY-MM-DD + +### Schema + +### Codelists + +### Normative documentation + +### Non-normative documentation + +### Other diff --git a/docs/about/history/changelog.md b/docs/about/history/changelog.md deleted file mode 100644 index 4f479cee..00000000 --- a/docs/about/history/changelog.md +++ /dev/null @@ -1,15 +0,0 @@ -# Changelog - -This page lists changes to the Risk Data Library Standard. - -## YYYY-MM-DD - -### Schema - -### Codelists - -### Normative documentation - -### Non-normative documentation - -### Other diff --git a/docs/about/history/index.md b/docs/about/history/index.md deleted file mode 100644 index 6b2e04f3..00000000 --- a/docs/about/history/index.md +++ /dev/null @@ -1,11 +0,0 @@ -# History - -Summary of the history of development of the model. Including pointers to key papers, reports, key decisions and a high-level changelog. - -```{eval-rst} -.. toctree:: - :maxdepth: 1 - - changelog - -``` From 8f40aff2b0210c6b0cbde63b403d74794190f8b5 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 22 Jun 2023 11:25:37 +1200 Subject: [PATCH 56/73] developer_docs.md: Integrate docs/readme.md --- developer_docs.md | 2 +- docs/readme.md | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 docs/readme.md diff --git a/developer_docs.md b/developer_docs.md index da027aa1..4b309d2e 100644 --- a/developer_docs.md +++ b/developer_docs.md @@ -19,7 +19,7 @@ The preferred approach for making changes to the standard is to use a [local dev 1. Agree on a proposal in a [GitHub issue](https://github.com/GFDRR/rdl-standard/issues). 1. Create a branch from the `dev` branch. -1. Make your changes. +1. Make your changes. Do not use normative keywords in non-normative content. For more information, see [normative and non-normative content in RDLS](https://docs.google.com/document/d/13g1SZO3ZSHbkymtc69lQOu9vB9vlZVZnodAcxC50l1M/edit#). 1. [Build the documentation](#build-the-documentation), resolve any errors and preview your changes locally. 1. Commit your changes to your branch and push it to GitHub. Your changes are available for anyone to preview at [https://rdl-standard.readthedocs.io/en/{branch name}](https://rdl-standard.readthedocs.io/en/{branch name}). 1. [Create a pull request](https://github.com/GFDRR/rdl-standard/compare): diff --git a/docs/readme.md b/docs/readme.md deleted file mode 100644 index 1e19abdb..00000000 --- a/docs/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -These files in this folder provide the contents of the RDLS documentation, re-written at May 2023. - -THe documentation follows open data standards best practice, advised by Open Data Services Co-operative. - -When preparing documentation, please refer to the correct use of normative and non-normative wording, summarised [here](https://docs.google.com/document/d/13g1SZO3ZSHbkymtc69lQOu9vB9vlZVZnodAcxC50l1M/edit#). From 68d49bb51bcd8a90a7f3d60222f8226982e7f512 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Thu, 22 Jun 2023 10:53:15 +0100 Subject: [PATCH 57/73] Update docs/about/contacts.md Minor copy-edit to remove unnecessary angle brackets Co-authored-by: Duncan Dewhurst --- docs/about/contacts.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/about/contacts.md b/docs/about/contacts.md index 0ecf67a6..a99c8afd 100644 --- a/docs/about/contacts.md +++ b/docs/about/contacts.md @@ -2,16 +2,16 @@ ## RDL Team -- Mattia Amadio \<[mamadio@worldbank.org](mailto:mamadio@worldbank.org)> (Consultant) -- Stuart Fraser \<[sfraser@worldbank.org](mailto:sfraser@worldbank.org)> (Consultant) -- Pierre Chrzanowski \<[pchrzanowski@worldbank.org](mailto:pchrzanowski@worldbank.org)> (RDL lead) +- Mattia Amadio (Consultant): [mamadio@worldbank.org](mailto:mamadio@worldbank.org) +- Stuart Fraser (Consultant): [sfraser@worldbank.org](mailto:sfraser@worldbank.org) +- Pierre Chrzanowski (RDL lead): [pchrzanowski@worldbank.org](mailto:pchrzanowski@worldbank.org) ## DDH Team The DDH team is responsible for review and publication of submitted datasets, and to assign datasets to RDL collection. -- Kamwoo Lee \<[klee16@worldbank.org](mailto:klee16@worldbank.org)> -- Gaurav Bhardwaj \<[gbhardwaj1@worldbank.org](mailto:gbhardwaj1@worldbank.org)> -- Rochelle O’Hagan \<[rohagan@worldbank.org](mailto:rohagan@worldbank.org)> (DDH lead) +- Kamwoo Lee: [klee16@worldbank.org](mailto:klee16@worldbank.org) +- Gaurav Bhardwaj: [gbhardwaj1@worldbank.org](mailto:gbhardwaj1@worldbank.org) +- Rochelle O’Hagan (DDH lead): [rohagan@worldbank.org](mailto:rohagan@worldbank.org)

    From 1df270da27b2cd920fede115469fe006f0d82380 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Thu, 22 Jun 2023 10:54:15 +0100 Subject: [PATCH 58/73] Update docs/data_model/general.md Align link text with referenced page title. Use Markdown syntax for links Co-authored-by: Duncan Dewhurst --- docs/data_model/general.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data_model/general.md b/docs/data_model/general.md index 4c06d4f1..6f9d4318 100644 --- a/docs/data_model/general.md +++ b/docs/data_model/general.md @@ -1,6 +1,6 @@ # General attributes -In addition to schema-specific attributes, each dataset is identified by a list of attributes based on DublinCore metadata standard. +In addition to schema-specific attributes, each dataset is identified by a list of attributes based on the [Dublin Core Metadata Initiative Metadata Terms](https://www.dublincore.org/specifications/dublin-core/dcmi-terms). | **Required** | **Attribute** | **Description** | **Type** | |:---:|---|---|---| From 184833b5847ab932d6ba03082a548db0b31c4b4d Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 12:08:07 +0100 Subject: [PATCH 59/73] Edits to resolve spelling/grammar, emphasis in links, sentence case in titles. Per https://github.com/GFDRR/rdl-standard/pull/97#pullrequestreview-1492125789 --- docs/about/contacts.md | 6 +++--- docs/about/governance.md | 20 +++++++++--------- docs/data_model/exposure.md | 4 ++-- docs/data_model/hazard.md | 24 +++++++++++----------- docs/data_model/index.md | 10 ++++----- docs/data_model/loss.md | 14 ++++++------- docs/data_model/vulnerability.md | 12 +++++------ docs/glossary.md | 35 +++++++++++--------------------- docs/guides/ddh-rdl.md | 2 +- docs/guides/formats.md | 8 ++++---- docs/guides/index.md | 6 +++--- docs/guides/preparation.md | 6 +++--- docs/index.md | 12 +++++------ docs/rdl/core-standards.md | 2 +- docs/rdl/index.md | 2 +- docs/rdl/roadmap.md | 2 +- docs/rdl/use-cases.md | 2 +- docs/taxonomies/ged4all.md | 20 +++++++++--------- docs/taxonomies/index.md | 16 +++++++-------- 19 files changed, 96 insertions(+), 107 deletions(-) diff --git a/docs/about/contacts.md b/docs/about/contacts.md index a99c8afd..e8824121 100644 --- a/docs/about/contacts.md +++ b/docs/about/contacts.md @@ -1,14 +1,14 @@ # Contacts -## RDL Team +## Risk Data Library team - Mattia Amadio (Consultant): [mamadio@worldbank.org](mailto:mamadio@worldbank.org) - Stuart Fraser (Consultant): [sfraser@worldbank.org](mailto:sfraser@worldbank.org) - Pierre Chrzanowski (RDL lead): [pchrzanowski@worldbank.org](mailto:pchrzanowski@worldbank.org) -## DDH Team +## World Bank Data Catalog team -The DDH team is responsible for review and publication of submitted datasets, and to assign datasets to RDL collection. +This team is responsible for review and publication of submitted datasets, and to assign datasets to the World Bank Data Catalog [Risk Data Library collection](https://datacatalog.worldbank.org/search/collections/rdl). - Kamwoo Lee: [klee16@worldbank.org](mailto:klee16@worldbank.org) - Gaurav Bhardwaj: [gbhardwaj1@worldbank.org](mailto:gbhardwaj1@worldbank.org) diff --git a/docs/about/governance.md b/docs/about/governance.md index 28fe2e07..da7d2441 100644 --- a/docs/about/governance.md +++ b/docs/about/governance.md @@ -1,4 +1,4 @@ -# Standard Governance +# Standard governance This document provides an overview of the governance and processes used to develop the Risk Data Library Standard. The standard aims to define a data model, taxonomies and additional specifications to improve the discovery, management and exchange of risk data. @@ -31,9 +31,9 @@ Additional documentation and source code produced by this initiative will also b ## Roles and responsibilities This project is currently managed by the Risk Data Library team working within the -[**Global Facility for Disaster Risk and Reduction**](https://www.gfdrr.org/en). +[Global Facility for Disaster Risk and Reduction](https://www.gfdrr.org/en). -To guide development and adoption of the standards, in addition to open working through this github project, the team invites expert input via an Advisory Group and, as +To guide development and adoption of the standards, in addition to open working through this GitHub project, the team invites expert input via an Advisory Group and, as required, specific Technical Working Groups. ### Advisory Group @@ -55,10 +55,10 @@ The Advisory Group will meet every two months. The agenda, slides and minutes fr ### Technical Working Groups -At times we may create specific Technical Working Groups that will collaborate on development of specific aspects of the RDL standard. For example to develop taxonomies, or revise file formats or schemas. These Working Groups will have a clear remit and will coordinate their work through this github. +At times we may create specific Technical Working Groups that will collaborate on development of specific aspects of the RDL standard. For example to develop taxonomies, or revise file formats or schemas. These Working Groups will have a clear remit and will coordinate their work through this GitHub. Membership of these groups and participation in calls and workshops will be open to all participants. Depending on the scope of work, they may need to draw on expertise from a wider group of stakeholders. -This model reflects the process of development of early versions of the standard, which involves convening a range of organisations around developing models for hazard, exposure and other typesof data. This approach will help us to drawing on expertise, and seek focused input, from across a wide range of organisations. +This model reflects the process of development of early versions of the standard, which involves convening a range of organisations around developing models for hazard, exposure and other types of data. This approach will help us to drawing on expertise, and seek focused input, from across a wide range of organisations. All working documents, issue reporting and decisions made within these groups will be reviewed and communicated via this repository.
    @@ -67,15 +67,15 @@ All working documents, issue reporting and decisions made within these groups wi At present our primary means of collaborating on the standard is via a set of open processes coordinated through this Github repository. -- [**Discussions**](https://github.com/GFDRR/rdl-standard/discussions) for general discussion around the scope and adoption of the standard -- [**Issues**](https://github.com/GFDRR/rdl-standard/issues) to propose and discuss changes to the standard -- [**Project boards**](https://github.com/GFDRR/rdl-standard/projects) to provide transparency of the current progress and priorities around its development +- [Discussions](https://github.com/GFDRR/rdl-standard/discussions) for general discussion around the scope and adoption of the standard +- [Issues](https://github.com/GFDRR/rdl-standard/issues) to propose and discuss changes to the standard +- [Project boards](https://github.com/GFDRR/rdl-standard/projects) to provide transparency of the current progress and priorities around its development
    ## Proposing and managing changes -Anyone can propose changes to the specifications. The process for doing this is by [**submitting an issue**](https://github.com/GFDRR/rdl-standard/issues) using the appropriate template. The user must provide sufficient context to the proposed changes so that it can be discussed and reviewed by the [**RDL team**](contacts.md#rdl-team) and other users. +Anyone can propose changes to the specifications. The process for doing this is by [submitting an issue](https://github.com/GFDRR/rdl-standard/issues) using the appropriate template. The user must provide sufficient context to the proposed changes so that it can be discussed and reviewed by the [RDL team](contacts.md#rdl-team) and other users. We encourage disussion and feedback, by requesting people leave comments on the issue. After leaving appropriate time for further comment, once we feel that a broad consensus has been achieved around the proposed changes, we will update the schema by releasing a new version of the specification. @@ -85,7 +85,7 @@ We encourage disussion and feedback, by requesting people leave comments on the The frequency with which we will release specifications will depend on the type and number of proposed changes. -Releases of the standard will follow the [**semantic versioning**](https://semver.org/) conventions: +Releases of the standard will follow the [semantic versioning](https://semver.org/) conventions: - Major releases will be used for major extensions to the model and/or to incorporate incompatible changes - Minor releases will be used for backwards compatible changes, e.g. additional of new optional attributes and relationships, or for simple clarifications and corrections diff --git a/docs/data_model/exposure.md b/docs/data_model/exposure.md index 4a640356..39e3186e 100644 --- a/docs/data_model/exposure.md +++ b/docs/data_model/exposure.md @@ -38,8 +38,8 @@ The exposure schema covers 4 categories and 11 occupancy types for consistent cl |*| Value type | Element to which value refers |
    • Structure
    • Content
    • Product
    • Other
    | |*| Value unit | Unit to measure exposed value | Unit code | -
    Within one exposure model (e.g. one geospatial layer) there can be one or more **cost type** associated with damage to assets. For example, the cost of the building structure by square meter and the cost of the contents of a single building. The attributes are named accordingly within the datase, e.g. "Cost_structure" and "Cost_content". -Additional **tags** attributes can be associated with an asset to link any information not envised in the exposure schema. +
    Within one exposure model (e.g. one geospatial layer) there can be one or more **cost type** associated with damage to assets. For example, the cost of the building structure by square meter and the cost of the contents of a single building. The attributes are named accordingly within the data, e.g. "Cost_structure" and "Cost_content". +Additional **tags** attributes can be associated with an asset to link any information not specified in the exposure standard.
    diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index 24e3664b..7d7f6cfd 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -59,7 +59,7 @@ The schema specifies which type of analysis and data methodology that has genera |\*| Calculation method | The methodology used for the modelling of hazard |
    • Simulated
    • Observed
    • Inferred | || Geographic area | Specific location for which the dataset has been developed | Name of location | -
      When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknow or inapplicabile, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. +
      When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -68,15 +68,15 @@ The schema specifies which type of analysis and data methodology that has genera || Time span | The duration of the modelled period | Number | || Time year | One reference year to univocally identify the scenario | Date (year) | -
      When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occurr again: RP 100 indicates that that event has a probability of once in 100 years. This attirbute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100) The probability of occurrence is usually calculated on the basis of a reference period that provides observations: this period can be specified by start date, end date and time span. For example, an analysis of eartquake frequency based on seismic observations from 1934 (occurrence time start) to 2001 (occurrence time end), for a total count of 66 years (occurrence time span). +
      When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100) The probability of occurrence is usually calculated on the basis of a reference period that provides observations: this period can be specified by start date, end date and time span. For example, an analysis of earthquake frequency based on seismic observations from 1934 (occurrence time start) to 2001 (occurrence time end), for a total count of 66 years (occurrence time span). |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | -|| Frequency type | The frequency of occurrence of the present event |
      • Rate of Exceedence
      • Probability of Exceedence
      • Return Period
      | +|| Frequency type | The frequency of occurrence of the present event |
      • Rate of Exceedance
      • Probability of Exceedance
      • Return Period
      | || Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text | -|| Occurence time (start) | Start date of the period used to infer the occurrence probability | Date (year) | -|| Occurence time (end) | End date of the period used to specify the occurrence probability | Date (year) | -|| Occurence time (span) | The duration of the period used to specify the occurrence probability | Number of years | +|| Occurrence time (start) | Start date of the period used to infer the occurrence probability | Date (year) | +|| Occurrence time (end) | End date of the period used to specify the occurrence probability | Date (year) | +|| Occurrence time (span) | The duration of the period used to specify the occurrence probability | Number of years |
      The schema distinguish between the hazard and process represented and the hazard and process identified as the cause, or concause for the manifestation of the represented hazard. For example, a dataset represent landslide hazard that is triggered by an earthquake will have Hazard type: Landslide; Trigger hazard type: Earthquake. The unit of measure refers to the represented hazard and process. A description can be added to cover additional information not included in the schema. @@ -202,9 +202,9 @@ Schema attributes for flood hazard map related to occurrence probability of a ri || Geographic area | Kabul | || Frequency type | Return Period | || Occurrence probability | 100 years | -|| Occurence time (start) | 1958 | -|| Occurence time (end) | 2001 | -|| Occurence time (span) | 44 years | +|| Occurrence time (start) | 1958 | +|| Occurrence time (end) | 2001 | +|| Occurrence time (span) | 44 years | |*| Hazard process | River flood | |\*| Unit of measure | Water depth (m) | @@ -223,9 +223,9 @@ Schema attributes for earthquake hazard map related to occurrence probability of |*| Calculation method | Simulated | || Frequency type | Return Period | || Occurrence probability | 1000 years | -|| Occurence time (start) | 800 | -|| Occurence time (end) | 2001 | -|| Occurence time (span) | 1200 years | +|| Occurrence time (start) | 800 | +|| Occurrence time (end) | 2001 | +|| Occurrence time (span) | 1200 years | |*| Hazard process | Ground motion | |\*| Unit of measure | PGA (g) | diff --git a/docs/data_model/index.md b/docs/data_model/index.md index 1c471120..93ce58ce 100644 --- a/docs/data_model/index.md +++ b/docs/data_model/index.md @@ -1,11 +1,11 @@ # Data model -The Risk Data Library Standard schema covers [**general dataset attributes**](general) and four specific components: +The Risk Data Library Standard schema covers [general dataset attributes](general) and four specific components: -- [**Hazard**](hazard): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. -- [**Exposure**](exposure): asset category, occupancy and specific taxonomy, cost type and value. -- [**Vulnerability**](vulnerability): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. -- [**Loss**](loss): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. +- [Hazard](hazard): main hazard type, specific process, trigger of the hazard, occurrence frequency of event, intensity unit to measure the process and analytical method. +- [Exposure](exposure): asset category, occupancy and specific taxonomy, cost type and value. +- [Vulnerability](vulnerability): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. +- [Loss](loss): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components.
    diff --git a/docs/data_model/loss.md b/docs/data_model/loss.md index eb149cca..ddaa3b45 100644 --- a/docs/data_model/loss.md +++ b/docs/data_model/loss.md @@ -47,7 +47,7 @@ The main attributes of the **loss model** describe the hazard and process for wh | | Exposure link | Exposure dataset that was used to calculate loss | URL | | | Vulnerability link | Vulnerability dataset that was used to calculate loss | URL | -
    When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknow or inapplicabile, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. +
    When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -56,11 +56,11 @@ The main attributes of the **loss model** describe the hazard and process for wh || Time span | The duration of the modelled period | Number | || Time year | One reference year to univocally identify the scenario | Date (year) | -
    When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occurr again: RP 100 indicates that that event has a probability of once in 100 years. This attirbute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100). +
    When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100). |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | -|| Frequency type | The frequency of occurrence of the present event |
    • Rate of Exceedence
    • Probability of Exceedence
    • Return Period
    | +|| Frequency type | The frequency of occurrence of the present event |
    • Rate of Exceedance
    • Probability of Exceedance
    • Return Period
    | || Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text |
    Additional attributes are specific to loss, describing the type of impact, the type of loss, the loss metric and the unit used to measure it. @@ -76,7 +76,7 @@ The main attributes of the **loss model** describe the hazard and process for wh ## Examples -Losses can be rapresented in many different way: regular raster grids, points, or polygons. Often, the loss data consist of measures aggregated at the administrative unit level. +Losses can be represented in many different way: regular raster grids, points, or polygons. Often, the loss data consist of measures aggregated at the administrative unit level. ### Flood loss scenarios for Afghanistan, 2050 @@ -125,9 +125,9 @@ Insert example of recorded empirical losses. |*| Calculation method | Simulated | || Frequency type | Return Period | || Occurrence probability | 1000 years | -|| Occurence time (start) | 800 | -|| Occurence time (end) | 2001 | -|| Occurence time (span) | 1200 years | +|| Occurrence time (start) | 800 | +|| Occurrence time (end) | 2001 | +|| Occurrence time (span) | 1200 years | |*| Hazard process | Ground motion | |\*| Unit of measure | PGA (g) | diff --git a/docs/data_model/vulnerability.md b/docs/data_model/vulnerability.md index 01ed4c01..4ee2860e 100644 --- a/docs/data_model/vulnerability.md +++ b/docs/data_model/vulnerability.md @@ -3,7 +3,7 @@ ## Schema attributes The vulnerability schema includes physical fragility and vulnerability relationships in relation to specific hazards or for multi-hazard (combination of individual hazards). A wide range of model types and parameters can describe vulnerability, for this reason there are many possible variables accounted by the Vulnerability schema. But only a part of them will be required to describe one specific model. -The schema distinguishes key information describing the vulnerabilirt model, including: +The schema distinguishes key information describing the vulnerability model, including: - function type (i.e fragility, vulnerability, damage-to-loss) - countries the function was developed for, measured in terms of to geographic relevance @@ -42,7 +42,7 @@ Other attributes describe the function type and the analytical approach adopted, | | Secondary hazard | Secondary hazard type from list of options | Hazard list | |*| Primary process | Primary hazard process from list of options | Process list | | | Secondary process | Secondary hazard process from list of options | Process list | -|*| Frequency | Frequency representation type |
    • Rate of Exceedence
    • Probability of Exceedence
    • Return Period
    | +|*| Frequency | Frequency representation type |
    • Rate of Exceedance
    • Probability of Exceedance
    • Return Period
    | |*| Intensity unit | Unit to measure hazard intensity | Option list | |*| Exposure category | Frequency representation type |
    • Buildings
    • Indicators
    • Infrastructures
    • Crops, livestock and forestry
    | |*| Exposure occupancy | Type of occupancy to which function applies |
    • Residential
    • Commercial
    • Industrial
    • Infrastructure
    • Healthcare
    • Educational
    • Government
    • Crop
    • Livestock
    • Forestry
    • Mixed
    | @@ -54,9 +54,9 @@ Other attributes describe the function type and the analytical approach adopted, | * | | Relationship type | Type of relationship |
    • Mathematical
    • Discrete
    | | | Mathematical model | Type of mathematical model |
    • Parametric
    • Bespoke
    | | * | Scale applicability | At which spatial scale the function applies |
    • Individual items
    • Aggregated to grid
    • Aggregated to boundaries
    • N/A | -| * | Transferrability | List of countries in which the model could be applied | ISOa3 code | -| * | Local applicability | Specific sub-area within a country or region to wich the model specifically applies | Location name | -| | Transferrability notes | Details about applicability to different areas | Text | +| * | Transferability | List of countries in which the model could be applied | ISOa3 code | +| * | Local applicability | Specific sub-area within a country or region to which the model specifically applies | Location name | +| | Transferability notes | Details about applicability to different areas | Text |
      @@ -92,7 +92,7 @@ The **specifics** attributes add more optional details. | | data_countries | ISO code(s) of countries to which data refer | | | | im_data_source | Reference studies for the IM data sources | | | | n_events | Number of events the function has been built on | | -| | n_assets | INumber of assets the function has been built on | | +| | n_assets | Number of assets the function has been built on | |
    diff --git a/docs/glossary.md b/docs/glossary.md index 4b96f22a..2353398a 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -21,7 +21,7 @@ Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/ter -## Disaster risk information (_risk data_) +## Disaster risk information (risk data) Comprehensive information on all dimensions of disaster risk, including hazards, exposure, vulnerability and capacity, related to persons, communities, organizations and countries and their assets. Disaster risk information includes all studies, information and mapping required to understand the disaster risk drivers and underlying risk factors. @@ -39,40 +39,33 @@ The situation of people, infrastructure, housing, production capacities and othe Source: [UNDRR Terminology (Exposure)](https://www.undrr.org/terminology/exposure) -````{grid} auto -:gutter: 3 -```{grid-item-card} Exposure: buildings footprints and population +```{card} Exposure: buildings footprints and population ![Exposure](img/sample_exp.jpg) -``` -```` + ## Hazard -An hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. +A hazard is a process or phenomenon that may cause loss of life, injury or other health impacts, property damage, social and economic disruption or environmental degradation. Hazards may be single, sequential or combined in their origin and effects. Each hazard is characterized by its location, intensity or magnitude, frequency and probability. An hazardous event is the manifestation of a hazard in a particular place during a particular period of time. Hazards can have natural or anthropogenic origin. Natural hazards are associated with natural processes and phenomena (geological, geophysical and hydrometeorological). Source: [UNDRR Terminology (Hazard)](https://www.undrr.org/terminology/hazard) -````{grid} auto -:gutter: 3 -```{grid-item-card} Hazard: map of flood water depth +```{card} Hazard: map of flood water depth ![Hazard](img/sample_hzd.jpg) -``` -```` + + ## Impact model -An impact model (also damage model; loss model) is used to combine Hazard, Exposure and Vulnerability compoments to calculate the amount of value that is expected to be impacted (damaged or lost). +An impact model (also damage model; loss model) is used to combine Hazard, Exposure and Vulnerability components to calculate the amount of value that is expected to be impacted (damaged or lost). Source: [GFDRR, Solving the Puzzle, 2016](https://www.gfdrr.org/sites/default/files/solving-the-puzzle-report.pdf) -````{grid} auto -:gutter: 3 -```{grid-item-card} Impacts and losses: USD costs of replacement +```{card} Impacts and losses: USD costs of replacement ![Loss](img/sample_lss.jpg) -``` -```` + + ## Vulnerability @@ -80,9 +73,5 @@ Vulnerability are the conditions determined by physical, social, economic and en Source: [UNDRR Terminology (Vulnerability)](https://www.undrr.org/terminology/vulnerability) -````{grid} auto -:gutter: 3 -```{grid-item-card} Vulnerability: depth-damage function +```{card} Vulnerability: depth-damage function ![Vulnerability](img/sample_vln.jpg) -``` -```` diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index eed56ffa..5d1200be 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -50,7 +50,7 @@ In both cases, datasets can be added to the [RDL Collection](https://datacatalog - Hazard, Exposure, Vulnerability, Loss (depending on the component type) - Flood, Earthquake, Landslide, Tsunami (hazard type) - **Topics**: There is currently no topic for risk analytics or climate and disaster risk - leave blank - - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](../about/contacts.md#ddh-team) with request to assign data to RDL Colelction. + - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](../about/contacts.md#ddh-team) with request to assign data to RDL Collection. ![Screenshot](../img/rdl_ddh4.png) Once done, click on `Save as draft`. The dataset will appear under `My datasets` list. diff --git a/docs/guides/formats.md b/docs/guides/formats.md index c8e0fe32..877ec8bf 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -4,7 +4,7 @@ Risk data can be made of spatial or non-spatial data. - **Spatial data (geodata)** can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type.

    -- **Non-spatial data** most often consist of table data stored as excel or csv files for greater compatibility. +- **Non-spatial data** most often consist of table data stored as .xlsx or .csv files for greater compatibility. Below is a list of recommended and supported geodata formats. @@ -29,7 +29,7 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work ### Vector data -**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexining, .prj for CRS, and other files for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. +**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexing, .prj for CRS, and other files for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. ```{note} Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where shp format is maintained, it is stongly suggested they are provided as a .zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). @@ -43,11 +43,11 @@ Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where ## Non-spatial formats -### Spreadsheet / tables +### Spreadsheet and tables **Comma-separated values** (`.csv`) is used for table data such as vulnerability models, results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the .csv filetype in the resource description. -**Excel** (`.xls`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files ought to be compressed into a single .zip file, with reference to the .xls filetype in the resource description. +**Excel** (`.xlsx`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files ought to be compressed into a single .zip file, with reference to the .xlsx filetype in the resource description. ```{note} Wide table formatting is preferred instead of long format. diff --git a/docs/guides/index.md b/docs/guides/index.md index ffebc9a3..81b9fb46 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -2,9 +2,9 @@ Below is the guidance on best practices for dataset creation, packaging, metadata creation according to the RDL schema and distribution. -- [**Data preparation and packaging**](preparation.md) of risk data files and folders -- [**Data formats**](formats.md) recommended and supported formats to store and share data -- [**Upload to the Risk Data Library collection**](ddh-rdl.md) to store the risk data on the [World Bank Data Catalog](https://datacatalog.worldbank.org/int/search/collections/rdl) +- [Data preparation and packaging](preparation.md) of risk data files and folders +- [Data formats](formats.md) recommended and supported formats to store and share data +- [Upload to the Risk Data Library collection](ddh-rdl.md) to store the risk data on the [World Bank Data Catalog](https://datacatalog.worldbank.org/int/search/collections/rdl)

    diff --git a/docs/guides/preparation.md b/docs/guides/preparation.md index 00702b30..055a3e9b 100644 --- a/docs/guides/preparation.md +++ b/docs/guides/preparation.md @@ -10,8 +10,8 @@ Datasets shared in risk catalogues (e.g. [Risk Data Library Collection](https:// We also need to consider: -- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [**Read more**](formats) about supported data formats. -- **SELF-DEPENDENCY & COMPLETNESS**: the data resource can be interpreted and used by itself. +- **FORMAT**: how the data are stored. It is preferred to keep together data in the same format, conversely split different file formats in different resources. [Read more](formats) about supported data formats. +- **SELF-DEPENDENCY & COMPLETENESS**: the data resource can be interpreted and used by itself. - **SIZE-EFFICIENCY**: try to avoid creating huge datasets (>1 Gb) that would be hard to download on poor connections. ```{caution} @@ -109,7 +109,7 @@ For example: ### Format -Exposure dataset typically describe the location, characteristics and value of individual assets or an aggegrated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. +Exposure dataset typically describe the location, characteristics and value of individual assets or an aggregated number of assets/population per grid cell. Each point or cell usually has many attributes associated with it. Exposure geospatial data can take the form of vector (`gpkg`, `shp`), or raster (`GeoTIFF / COG`). In some cases, exposure comes as table (`csv`, `xls`). diff --git a/docs/index.md b/docs/index.md index dcf9645f..09039202 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,7 +2,7 @@ # Risk Data Library Standard -The **Risk Data Library Standard (RDLS)** is an open data standard to make it easier to work with disaster and climate risk data. It provides a common description of the data used and produced in risk assessments, including **hazard**, **exposure**, **vulnerability**, and **modelled loss**, or impact, data. +The **Risk Data Library Standard (RDLS)** is an open data standard to make it easier to work with disaster and climate risk data. It provides a common description of the data used and produced in risk assessments, including **hazard**, **exposure**, **vulnerability**, and **modelled loss or impact**, data. The RDLS provides a unique way to create, store, exchange and use disaster different risk information together. It is at the core of the Risk Data Library, a suite of open source tools to work with disaster and climate risk data. @@ -10,11 +10,11 @@ The RDLS has been developed by World Bank GFDRR for disaster and climate risk as This documentation provides a technical overview of the RDLS and its different elements: -- [**Overview**](rdl/index.md): purpose of RDL and core standards adopted -- [**Data model**](data_model/index.md): how to organize and link the data using the RDLS schema -- [**Taxonomy**](taxonomies/index.md): details of taxonomies adopted by the RDLS -- [**Guides**](guides/index.md): how to implement the RDLS in your project -- [**About**](about/index.md): other information on the roadmap, history, governance and license +- [Overview](rdl/index.md): purpose of RDL and core standards adopted +- [Data model](data_model/index.md): how to organize and link the data using the RDLS schema +- [Taxonomy](taxonomies/index.md): details of taxonomies adopted by the RDLS +- [Guides](guides/index.md): how to implement the RDLS in your project +- [About](about/index.md): other information on the roadmap, history, governance and license
    diff --git a/docs/rdl/core-standards.md b/docs/rdl/core-standards.md index e90c8f42..24661ac5 100644 --- a/docs/rdl/core-standards.md +++ b/docs/rdl/core-standards.md @@ -1,4 +1,4 @@ -# Core Standards +# Core standards RDLS has been built based on existing open data standards. diff --git a/docs/rdl/index.md b/docs/rdl/index.md index 41e77382..4e28257f 100644 --- a/docs/rdl/index.md +++ b/docs/rdl/index.md @@ -2,7 +2,7 @@ The Risk Data Library (RDL) project grew out of in-depth community consultation on improving access to **risk information**. -The RDL Standard (RDLS) is a result of the collective effort and ongoing support of internationally-recognised research insitutions and established global partnerships with combined expertise across multiple hazards and all aspects of risk assessment. The partners have a complete understanding of the challenges risk analysts face in finding, editing and exchanging data for disaster risk assessments, for various scales and contexts. +The RDL Standard (RDLS) is a result of the collective effort and ongoing support of internationally-recognised research institutions and established global partnerships with combined expertise across multiple hazards and all aspects of risk assessment. The partners have a complete understanding of the challenges risk analysts face in finding, editing and exchanging data for disaster risk assessments, for various scales and contexts. The RDLS gives risk experts a single language to describe hazard, exposure, vulnerability and modelled loss datasets. It gives datasets an underlying consistency that makes them highly interoperable and easily read by both people and machines. The schema contains labels for key metadata fields, making it easier to identify datasets hosted in different online catalogs without relying on external files or descriptions. diff --git a/docs/rdl/roadmap.md b/docs/rdl/roadmap.md index 69ec1ff8..e89948d0 100644 --- a/docs/rdl/roadmap.md +++ b/docs/rdl/roadmap.md @@ -1,4 +1,4 @@ -# History and Roadmap +# History and roadmap ## History (2016-2021) diff --git a/docs/rdl/use-cases.md b/docs/rdl/use-cases.md index 02983706..a9240224 100644 --- a/docs/rdl/use-cases.md +++ b/docs/rdl/use-cases.md @@ -26,6 +26,6 @@ An **insurance industry analyst or model developer** needs to **build a new cata A **humanitarian organisation** are creating a **disaster risk financing** program to fund, ex-ante, disaster response and recovery and an **anticipatory action** program. They are relying on historical observations to assess the risk to define a suitable risk layered approach and select the correct DRF solutions, and want to improve this method by including probabilistic analysis. Using RDL tools they are able to find datasets and the results of previous risk analysis. Because the datasets are formatted according to the **RDL standards** they are able to quickly understand the contents of the data and whether it is suitable for their use. -***Value***: The data can be improve existing methods in risk financing to make DRF solution more efficient and sustianable. +***Value***: The data can be improve existing methods in risk financing to make DRF solution more efficient and sustainable.

    diff --git a/docs/taxonomies/ged4all.md b/docs/taxonomies/ged4all.md index 41e85a38..2d75e810 100644 --- a/docs/taxonomies/ged4all.md +++ b/docs/taxonomies/ged4all.md @@ -12,7 +12,7 @@ The taxonomy covers four main categories: ## Buildings -The buildings taxonomy is based on GEM openquake taxonomy, with some semplifications. The taxonomy string is built as sequence of attributes separeted by slash: +The buildings taxonomy is based on GEM OpenQuake taxonomy, with some simplifications. The taxonomy string is built as sequence of attributes separated by slash: `MATERIAL/HEIGHT/DATE/OCCUPANCY/SHAPE/…` @@ -48,7 +48,7 @@ Missing attributes can be skipped from the string, e.g. | | HAPP:n | HAPP:n, approximate number of storeys above ground. | | Date of Construction or Retrofit | -- | Year unknown | | | Y :n | n is the exact date of construction or retrofit | -| | YBET:a-b | a nd b are the upper and lower bound for the date of construction or retrofit | +| | YBET:a-b | a and b are the upper and lower bound for the date of construction or retrofit | | | YPRE:n | n is the latest possible date of construction or retrofit | | | YAPP:n | n is the approximate date of construction or retrofit | | Occupancy | -- | Unknown occupancy type | @@ -234,7 +234,7 @@ Large elevated pipe for potable water: `CPW/PEL/DLG` We follow the taxonomy adopted by HAZUS, which allows capturing the capacity (e.g. voltage) of the elements. For the purposes of assessing damage due to natural disasters, it is also relevant to identify the presence of anchorage and whether the elements have been designed according to a particular code. The taxonomy for component of the power grid can thus be presented in the following manner: `PWG/ENERGYSOURCE/COMPONENT/ANCHORAGE/CODE PROVISIONS`, e.g. -Electric ditribution line through pylones: `PWG/SSM/ANC` +Electric distribution line through pylons: `PWG/SSM/ANC`
    @@ -272,12 +272,12 @@ Electric ditribution line through pylones: `PWG/SSM/ANC` ### Potable water and wastewater systems -Potable water systems are comprised by water treatment plants, storage tanks, pipelines and pumping stations, while wastewater systems are composed by wasterwater treatment plants, lifting stations and +Potable water systems are comprised by water treatment plants, storage tanks, pipelines and pumping stations, while wastewater systems are composed by wastewater treatment plants, lifting stations and pipelines. Our classification is based on the HAZUS guidelines. The alphanumeric taxonomy strings are:
    `PWR/COMPONENT/ANCHORAGE/CODE PROVISIONS` for potable water
    -`WWR/COMPONENT/ANCHORAGE/CODE PROVISIONS` for wasterwater +`WWR/COMPONENT/ANCHORAGE/CODE PROVISIONS` for wastewater
    @@ -319,7 +319,7 @@ The alphanumeric taxonomy strings are:
    ### Communication systems -A communication system is comprised by offices dedicated to the reception and dissimination of information (e.g. telephones offices, call centers, TV stations, radio station, telecomunication stations), supporting transmitter towers and distribution circuits. The components have been classified based on the classification system proposed by HAZUS. For the purposes of assessing damage due to natural disasters, it is also relevant to identify the presence of anchorage and whether the elements have been designed according to a particular code. +A communication system is comprised by offices dedicated to the reception and dissemination of information (e.g. telephones offices, call centers, TV stations, radio station, telecommunication stations), supporting transmitter towers and distribution circuits. The components have been classified based on the classification system proposed by HAZUS. For the purposes of assessing damage due to natural disasters, it is also relevant to identify the presence of anchorage and whether the elements have been designed according to a particular code.
    The taxonomy string for the components of a communication system is:
    `COM/COMPONENT/ANCHORAGE/CODE`
    @@ -458,7 +458,7 @@ The taxonomy for crops, livestock and forestry was defined based on existing cla | | FRT1+3 | Extremely xeromorphic forest - dense stands of trees, composed by species such as bottle or tuft rees with succulent leaves (e.g. thorn forest in Southwestern North America and Southwestern Africa) | | Woodland | FRT2+1 | Mainly evergreen woodland - the canopy is never without green foliage, but individual trees may shed their leaves (e.g. Mediterranean Basin). | | | FRT2+2 | Mainly deciduous woodland - majority of trees shed their foliage simultaneously in connection to unfavourable season (e.g. Southern California and American Southeast, Mediterranean Basin) | -| | FRT2+3 | Extremely xeromorphic woodland - dense stands of trees, composed by species such as bottle or tuft rees with succulent leaves (e.g. Southwestern North America and Southwestern Africa) | +| | FRT2+3 | Extremely xeromorphic woodland - dense stands of trees, composed by species such as bottle or tuft trees with succulent leaves (e.g. Southwestern North America and Southwestern Africa) | | Scrub | FRT3+1 | Mainly evergreen scrub - the canopy is never without green foliage, but individual species may shed their leaves (e.g. Mediterranean dwarf palm shrubland, Chaparral shrubland in California or Hawaiian tree fern thicket). | | | FRT3+2 | Mainly deciduous scrub - majority of scrub shed their foliage simultaneously in connection to unfavourable season (e.g. peat mosses in Scotland) | | | FRT3+3 | Extremely xeromorphic (subdesert) shrubland - very open stands of shrubs, often composed by vegetation with green branches without leaves, some of them with thorns (e.g. mulga scrub in Australia). | @@ -637,10 +637,10 @@ Natural hazards are a complex phenomenon featuring large number of interactions | Education Access | EDUEACEEG | Education expenditures | | | EDUEACPTS | Pupil-teacher ratio, secondary | | | EDUEACPTP | Pupil-teacher ratio, primary | -| | EDUEACETG | Gross enrollment ratio, tertiary | -| | EDUEACSTG | Gross enrollment ratio, secondary | +| | EDUEACETG | Gross enrolment ratio, tertiary | +| | EDUEACSTG | Gross enrolment ratio, secondary | | | EDUEACBGP | Ratio of girls to boys in primary and secondary education | -| | EDUEACEPG | Gross enrollment ratio, primary | +| | EDUEACEPG | Gross enrolment ratio, primary | | | EDUEACCPT | Children out of school, primary |
    diff --git a/docs/taxonomies/index.md b/docs/taxonomies/index.md index 194c6cf4..647c34ab 100644 --- a/docs/taxonomies/index.md +++ b/docs/taxonomies/index.md @@ -2,29 +2,29 @@ # Taxonomies -The RDLS defines taxonomies for describing risk data. In this section you will find a short summary of the taxonomies that can be used with the RDLS, as well as the other main taxonomies for disaster risk assessments. +The Risk Data Library Standard defines taxonomies for describing risk data. In this section you will find a short summary of the taxonomies that can be used with the RDLS, as well as the other main taxonomies for disaster risk assessments. ## Hazard taxonomies The RDL project performed a review of the most relevant hazard taxonomies and derived a classification focusing on those hazards and processes that are more often required in disaster risk assessments, while mapping and matching alternative definitions into one consistent framework. There are several existing taxonomies that could have been adopted to describe hazard data: -- [**UNDRR**](https://www.undrr.org/publication/hazard-definition-and-classification-review) (formerly UNISDR) recently proposed an extended taxonomy that covers 300 natural and anthropogenic hazards in 8 categories (Meteo-Hydrological, Geohazard, Environmental, Extraterrestrial, Chemical, Biological, Technological, Societal). +- [UNDRR](https://www.undrr.org/publication/hazard-definition-and-classification-review) (formerly UNISDR) recently proposed an extended taxonomy that covers 300 natural and anthropogenic hazards in 8 categories (Meteo-Hydrological, Geohazard, Environmental, Extraterrestrial, Chemical, Biological, Technological, Societal). -- [**Disaster Risk Management Knowledge Centre**](https://drmkc.jrc.ec.europa.eu/risk-data-hub) covers 32 natural and anthropogenic hazards in 8 categories (Geophysical, Hydrological, Meteorological, Climatological, Biological, Technological, Transportation, Malicious). +- [Disaster Risk Management Knowledge Centre](https://drmkc.jrc.ec.europa.eu/risk-data-hub) covers 32 natural and anthropogenic hazards in 8 categories (Geophysical, Hydrological, Meteorological, Climatological, Biological, Technological, Transportation, Malicious). -- [**Inspire**](https://inspire.ec.europa.eu/codelist/NaturalHazardCategoryValue) covers 25 natural hazards in 6 categories (Geological/hydrological, Meteorological/climatological, Fires, Biological, Cosmic, Other). +- [Inspire](https://inspire.ec.europa.eu/codelist/NaturalHazardCategoryValue) covers 25 natural hazards in 6 categories (Geological/hydrological, Meteorological/climatological, Fires, Biological, Cosmic, Other). -- [**EM-DAT**](https://www.emdat.be/classification) covers 34 natural and technological hazards in 9 categories (Geophysical, Meteorological, Hydrological, Climatological, Biological, Extraterrestrial, Industrial accident, Transport accident, Miscelleanous accident). +- [EM-DAT](https://www.emdat.be/classification) covers 34 natural and technological hazards in 9 categories (Geophysical, Meteorological, Hydrological, Climatological, Biological, Extraterrestrial, Industrial accident, Transport accident, Miscellaneous accident). -- [**Munich-RE**](https://www.cred.be/downloadFile.php?file=sites/default/files/DisCatClass_264.pdf) covers 27 natural hazards 13 main categories (Geophysical, Meteorological, Hydrological, Climatological, Biological, Extraterrestrial). +- [Munich-RE](https://www.cred.be/downloadFile.php?file=sites/default/files/DisCatClass_264.pdf) covers 27 natural hazards 13 main categories (Geophysical, Meteorological, Hydrological, Climatological, Biological, Extraterrestrial). ## Exposure taxonomies -The exposure schema can accomodate different descriptions of assets using a taxonomy which describes their characteristics (e.g. building occupancy, construction, age, height, etc. or road surface type). +The exposure schema can accommodate different descriptions of assets using a taxonomy which describes their characteristics (e.g. building occupancy, construction, age, height, etc. or road surface type). ### GED4all (recommended) -[**GED4all**](ged4all.md) has been developed by GFDRR under the UK-DFID Challenge Fund, this open exposure database schema is meant for multi-hazard risk analysis. GED4ALL can be populated with building-level data from OpenStreetMap (OSM) following the [guidance](https://wiki.openstreetmap.org/wiki/GED4ALL) from the Humanitarian OSM Team, which collects contributions from the community on how OSM tags can be best aligned with the GED4ALL taxonomy. This is the suggested option for classification of exposure data in the RDL. +[GED4all](ged4all.md) has been developed by GFDRR under the UK-DFID Challenge Fund, this open exposure database schema is meant for multi-hazard risk analysis. GED4ALL can be populated with building-level data from OpenStreetMap (OSM) following the [guidance](https://wiki.openstreetmap.org/wiki/GED4ALL) from the Humanitarian OSM Team, which collects contributions from the community on how OSM tags can be best aligned with the GED4ALL taxonomy. This is the suggested option for classification of exposure data in the RDL. ```{eval-rst} .. toctree:: From 9556ebc6984e0e4b4cb3e40152dd1cc4d33e3842 Mon Sep 17 00:00:00 2001 From: Stuart Fraser Date: Thu, 22 Jun 2023 12:15:19 +0100 Subject: [PATCH 60/73] Update docs/guides/formats.md updated in docs/guides/formats.md only. Co-authored-by: Duncan Dewhurst --- docs/guides/formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 877ec8bf..82222cad 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -21,7 +21,7 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work ### Raster data: GeoTIFF / COG (.tif) -**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation), compressed into a .zip file together with the .tif files for sharing. +**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (`.tfw` for raster geolocation, `.xml` for metadata, `.aux` for projections and others, `.ovr` for pyramids to improve visualisation), compressed into a `.zip` file together with the `.tif` files for sharing. **A Cloud Optimized GeoTIFF (COG)** is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted on a geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). From 4e859679d1b881bc798b2cfe29646ec63988c942 Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 12:16:22 +0100 Subject: [PATCH 61/73] Edits to docs/guides/formats.md resolving inconsistent file extension format in text. Per https://github.com/GFDRR/rdl-standard/pull/97 --- docs/guides/formats.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 877ec8bf..6ed03052 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -4,7 +4,7 @@ Risk data can be made of spatial or non-spatial data. - **Spatial data (geodata)** can be shared in a variety of formats depending on the software used by the analyst. Over the years, [OSGEO ](https://wiki.osgeo.org/wiki/Main_Page) (Open Source Geospatial Foundation) tried to converge towards a limited number of "best" standard formats for each geospatial type.

    -- **Non-spatial data** most often consist of table data stored as .xlsx or .csv files for greater compatibility. +- **Non-spatial data** most often consist of table data stored as `.xlsx` or ``.csv` files for greater compatibility. Below is a list of recommended and supported geodata formats. @@ -12,16 +12,16 @@ Below is a list of recommended and supported geodata formats. ### Vector data: GeoPackage -**GeoPackage** (`.gpkg`) is an open, non-proprietary SQLite3 extended Database container. It is platform-independent and standards-based (OGC, QGIS, GDAL). Similar to ESRI geodatabase, but more responsive. It is a single-file format that can store anything from vector data and attributes, symbology, pyramids, table data as individual layers within one geopackage. It is possible to store rasters, but its supports for raster data is still limited and we don't recommend storing those as geopackage. Supports SQL and API to DB - fit for web applications, can export to PostGIS. There is no limit of attributes, attribute name size, or file size (unlike shapefile). Internal metadata specifications are under development. +**GeoPackage** (`.gpkg`) is an open, non-proprietary SQLite3 extended Database container. It is platform-independent and standards-based (OGC, QGIS, GDAL). Similar to ESRI geodatabase, but more responsive. It is a single-file format that can store anything from vector data and attributes, symbology, pyramids, table data as individual layers within one geopackage. It is possible to store rasters, but its supports for raster data is still limited and we don't recommend storing those as geopackage. Supports SQL and API to DB - fit for web applications, can export to PostGIS. There is no limit of attributes, attribute name size, or file size (unlike shapefile, `.shp`). Internal metadata specifications are under development. ```{note} Always prefer WIDE geodatabase table formatting instead of LONG format when working in GIS environment; by duplicating vector rows, the geospatial information is also duplicated, which cause the size of the data to increase exponentially, and slows down the spatial processing. ![Screenshot](../img/tab_format.png) ``` -### Raster data: GeoTIFF / COG (.tif) +### Raster data: GeoTIFF / COG (`.tif`) -**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (.tfw for raster geolocation, .xml for metadata, .aux for projections and others, .ovr for pyramids to improve visualisation), compressed into a .zip file together with the .tif files for sharing. +**GeoTIFF** (`.tif`) is the image standard file for GIS and satellite remote sensing applications. It can store multiple realisations as “bands”. GeoTIFFs can be accompanied by other auxiliary files (`.tfw` for raster geolocation, `.xml` for metadata, `.aux` for projections and others, `.ovr` for pyramids to improve visualisation), compressed into a `.zip` file together with the `.tif` files for sharing. **A Cloud Optimized GeoTIFF (COG)** is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted on a geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). @@ -29,15 +29,15 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work ### Vector data -**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (.shp for geometry, .dbf for table, .shx for indexing, .prj for CRS, and other files for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. +**ESRI ShapeFile** (`.shp`) is a well established, de facto standard in the GIS community. Accepted by all GIS software. Format specifications are open, however it is a proprietary format (controlled by Esri). It can only contains one geometry type (point, line, polygon) per file. It is a multiple-parts file format (`.shp` for geometry, `.dbf` for table, `.shx` for indexing, `.prj` for CRS, and other files for encoding, indexes, etc.). Attribute names are limited to 10 characters, and number of attributes (ie table fields) is limited to 255. The file size is restricted to 2 GB. ```{note} -Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where shp format is maintained, it is stongly suggested they are provided as a .zip folder containing the multiple components of the shapefile dataset (.shp, .dbf, .xml, .ovr, etc.). +Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where shp format is maintained, it is stongly suggested they are provided as a `.zip` folder containing the multiple components of the shapefile dataset (`.shp`, `.dbf`, `.xml`, `.ovr`, etc.). ``` ### Raster data -**Network Common Data Form (NetCDF)** (`.nc`) is a format for storing multi-dimensional, array-oriented variables. Commonly used in the scientific community for multidimensional geodata storage (e.g. climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. +**Network Common Data Form (NetCDF)** (`.nc`) is a format for storing multi-dimensional, array-oriented variables. Commonly used in the scientific community for multidimensional geodata storage (e.g., climate data). Supported by ArcGIS and QGIS via toolbox conversion or extensions; most spatial processing tools require conversion into raster first. **GRIdded Binary or General Regularly-distributed Information in Binary (GRIB)** is standardized by the WMO and in operation since 1985. Similar to NetCDF, GRIB files are commonly used in meteorology to store historical and forecast weather data. It’s a multidimensional file with the advantages of self-description, flexibility and expandability. There are tools to convert GRIB into rasters such as grb2grid and QGIS software. @@ -45,9 +45,9 @@ Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where ### Spreadsheet and tables -**Comma-separated values** (`.csv`) is used for table data such as vulnerability models, results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the .csv filetype in the resource description. +**Comma-separated values** (`.csv`) is used for table data such as vulnerability models, results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the `.csv` filetype in the resource description. -**Excel** (`.xlsx`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files ought to be compressed into a single .zip file, with reference to the .xlsx filetype in the resource description. +**Excel** (`.xlsx`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files ought to be compressed into a single `.zip` file, with reference to the `.xlsx` filetype in the resource description. ```{note} Wide table formatting is preferred instead of long format. From 75378f92b246807c64d29b1fd7850b5c5f6ca0d6 Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 14:56:47 +0100 Subject: [PATCH 62/73] Resolving multiple edits in docs/guides: annotatation on images; change of wording on supported formats. Per https://github.com/GFDRR/rdl-standard/pull/97 --- docs/guides/ddh-rdl.md | 20 ++++++++++---------- docs/guides/formats.md | 6 +++--- docs/guides/index.md | 1 - 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/docs/guides/ddh-rdl.md b/docs/guides/ddh-rdl.md index 5d1200be..1d9ac10f 100644 --- a/docs/guides/ddh-rdl.md +++ b/docs/guides/ddh-rdl.md @@ -3,12 +3,12 @@ The [Risk Data Library Collection](https://datacatalog.worldbank.org/search/collections/rdl) sits within the [World Bank Data Catalog](https://datacatalog.worldbank.org) and is meant to store standard risk data. The collection can be accessed from the [collections page](https://datacatalog.worldbank.org/search/collections/) or used as a filter on the left bar to search for data within the collection. -![Screenshot](../img/rdl_collection.png) +![Risk Data Library Collection](../img/rdl_collection.png) ## Add datasets Datasets can be submitted for review and publication on the Data Catalog by any World Bank Staff, ETC or STC. These people have the role of `Data depositor`.
    -Datasets needs to be packaged according to the [**data preparation guidelines**](preparation).
    +Datasets needs to be packaged according to the [data preparation guidelines](preparation).

    Two options to upload data: @@ -22,7 +22,7 @@ In both cases, datasets can be added to the [RDL Collection](https://datacatalog - Log in to the [Data Catalog](https://datacatalog.worldbank.org/int/home) (top right bar) - View [My datasets](https://datacatalog.worldbank.org/int/data/mydata) (top right bar) - ![Screenshot](../img/rdl_ddh_mydata.png) + ![World Bank Data Catalog screenshot: MyData page](../img/rdl_ddh_mydata.png) The page shows dataset number, name, modified date, status (Published, Draft, Under review, Publishing in progress) for datasets you have uploaded or for which you are listed as a contributor - Under `Action` you can `edit` or `submit for review` to the [DDH team](../about/contacts.md#ddh-team). @@ -30,20 +30,20 @@ In both cases, datasets can be added to the [RDL Collection](https://datacatalog - Click [Add data](https://datacatalog.worldbank.org/int/data/add) (top right bar) Select the option on the right: _`continue`_. - ![Screenshot](../img/rdl_ddh1.png) + ![World Bank Data Catalog screenshot: Add data](../img/rdl_ddh1.png) 1. **Essential Information** - ![Screenshot](../img/rdl_ddh2.png)

    + ![World Bank Data Catalog screenshots: Add essential information](../img/rdl_ddh2.png)

    - 1. **Data Resources** + 1. **Uploading data** - Upload dataset from your local storage - Add a resource title and description - When one resource has been submitted, another one can be added - ![Screenshot](../img/rdl_ddh3.png)

    + ![World Bank Data Catalog screenshot: Add data files](../img/rdl_ddh3.png)

    - 3. **Additional information** - ![Screenshot](../img/rdl_ddh_add.png) + 1. **Additional information** + ![World Bank Data Catalog screenshot: Adding additional information](../img/rdl_ddh_add.png) - **Tags**: These are important for being able to search the data in the catalog. Suggestions for RDLS data: - Climate Risk or Disaster Risk @@ -51,7 +51,7 @@ In both cases, datasets can be added to the [RDL Collection](https://datacatalog - Flood, Earthquake, Landslide, Tsunami (hazard type) - **Topics**: There is currently no topic for risk analytics or climate and disaster risk - leave blank - **Collection**: this can only be entered by staff with those rights. Provide a list of dataset ID to [Kamwoo Lee](../about/contacts.md#ddh-team) with request to assign data to RDL Collection. - ![Screenshot](../img/rdl_ddh4.png) + ![World Bank Data Catalog screenshot: Final steps](../img/rdl_ddh4.png) Once done, click on `Save as draft`. The dataset will appear under `My datasets` list. diff --git a/docs/guides/formats.md b/docs/guides/formats.md index 6ed03052..18073dc7 100644 --- a/docs/guides/formats.md +++ b/docs/guides/formats.md @@ -6,7 +6,7 @@ Risk data can be made of spatial or non-spatial data.

    - **Non-spatial data** most often consist of table data stored as `.xlsx` or ``.csv` files for greater compatibility. -Below is a list of recommended and supported geodata formats. +Below is a list of recommended and common geodata formats used for risk data. ## Recommended geodata formats @@ -25,7 +25,7 @@ Always prefer WIDE geodatabase table formatting instead of LONG format when work **A Cloud Optimized GeoTIFF (COG)** is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​[HTTP GET range requests](https://tools.ietf.org/html/rfc7233) to ask for just the parts of a file they need. This is the best option for data that needs to be hosted on a geocatalogue such as [GeoNode](https://www.geonode-gfdrrlab.org). -## Supported geodata formats +## Other common geodata formats ### Vector data @@ -45,7 +45,7 @@ Conversion from `.shp` to `.gpkg` is lossless and usually size-efficient. Where ### Spreadsheet and tables -**Comma-separated values** (`.csv`) is used for table data such as vulnerability models, results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the `.csv` filetype in the resource description. +**Comma-separated values** (`.csv`) is used for table data such as vulnerability models, results summary, aggregations, etc. Small files can be added uncompressed, so the resource filetype will show as ‘CSV’. Where large or multiple files are compressed, filetype will show as ‘ZIP’ though so please include reference to the `.csv` filetype in the resource description. **Excel** (`.xlsx`) is used for table data such as results summary, aggregations, etc. Deprecated for grid spatial data. Small files can be added uncompressed, multiple files ought to be compressed into a single `.zip` file, with reference to the `.xlsx` filetype in the resource description. diff --git a/docs/guides/index.md b/docs/guides/index.md index 81b9fb46..deed0fb9 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -15,6 +15,5 @@ Below is the guidance on best practices for dataset creation, packaging, metadat preparation formats - rdl-metadata ddh-rdl ``` From 599051d1bf101316067aee7783d8e51e3c575de3 Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 15:11:05 +0100 Subject: [PATCH 63/73] Resolving overlap between main introduction and intro to the RDL. https://github.com/GFDRR/rdl-standard/pull/97#discussion_r1237948495 -- made rdl/index.md more focussed on core standards, use cases and roadmap which are the pages in that section. --- docs/index.md | 6 ++++-- docs/rdl/index.md | 8 +------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/index.md b/docs/index.md index 09039202..2af595c5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,13 +4,15 @@ The **Risk Data Library Standard (RDLS)** is an open data standard to make it easier to work with disaster and climate risk data. It provides a common description of the data used and produced in risk assessments, including **hazard**, **exposure**, **vulnerability**, and **modelled loss or impact**, data. -The RDLS provides a unique way to create, store, exchange and use disaster different risk information together. It is at the core of the Risk Data Library, a suite of open source tools to work with disaster and climate risk data. +The Risk Data Library (RDL) project grew out of in-depth community consultation on improving access to **risk information** and is a result of the collective effort and ongoing support of internationally-recognised research institutions and established global partnerships with combined expertise across multiple hazards and all aspects of risk assessment. Its overarching purpose is to support disaster resilience work by making risk data better and easier to work with. + +The RDLS gives risk experts a single language to describe hazard, exposure, vulnerability and modelled loss datasets. It gives datasets an underlying consistency that makes them highly interoperable and easily read by both people and machines. The schema contains labels for key metadata fields, making it easier to identify datasets hosted in different online catalogs without relying on external files or descriptions. The RDLS has been developed by World Bank GFDRR for disaster and climate risk assessments but is intended to be used by anyone involved in generating or using disaster risk information. This documentation provides a technical overview of the RDLS and its different elements: -- [Overview](rdl/index.md): purpose of RDL and core standards adopted +- [Overview](rdl/index.md): The core standards used within the RDLS, use cases and a roadmap - [Data model](data_model/index.md): how to organize and link the data using the RDLS schema - [Taxonomy](taxonomies/index.md): details of taxonomies adopted by the RDLS - [Guides](guides/index.md): how to implement the RDLS in your project diff --git a/docs/rdl/index.md b/docs/rdl/index.md index 4e28257f..3fb68a82 100644 --- a/docs/rdl/index.md +++ b/docs/rdl/index.md @@ -1,12 +1,6 @@ # Overview -The Risk Data Library (RDL) project grew out of in-depth community consultation on improving access to **risk information**. - -The RDL Standard (RDLS) is a result of the collective effort and ongoing support of internationally-recognised research institutions and established global partnerships with combined expertise across multiple hazards and all aspects of risk assessment. The partners have a complete understanding of the challenges risk analysts face in finding, editing and exchanging data for disaster risk assessments, for various scales and contexts. - -The RDLS gives risk experts a single language to describe hazard, exposure, vulnerability and modelled loss datasets. It gives datasets an underlying consistency that makes them highly interoperable and easily read by both people and machines. The schema contains labels for key metadata fields, making it easier to identify datasets hosted in different online catalogs without relying on external files or descriptions. - -Its overarching purpose is to support disaster resilience work by making risk data better and easier to work with. +This section provides more detail on the core standards that are used within the Risk Data Library Standard, use cases for documenting risk data with the RDLS, and a roadmap for development. ```{eval-rst} .. toctree:: From 7dcab78fa487f0a447df10e8bc2700be07c902d3 Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 15:14:39 +0100 Subject: [PATCH 64/73] Resolved alt text / image capotion: https://github.com/GFDRR/rdl-standard/pull/97#discussion_r1237864217 --- docs/glossary.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/glossary.md b/docs/glossary.md index 2353398a..2e80ce4e 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -18,8 +18,9 @@ A qualitative or quantitative approach to determine the nature and extent of dis Source: [UNDRR Terminology (Disaster Risk Assessment)](https://www.undrr.org/terminology/disaster-risk-assessment) - +```{card} Risk assessment framework, adapted from [Understanding risk in an evolving world, World Bank, 2014](https://openknowledge.worldbank.org/handle/10986/20682) +![Risk assessment framework, adapted from Understanding risk in an evolving world, World Bank, 2014](img/risk_assessment.png) + ## Disaster risk information (risk data) @@ -40,7 +41,7 @@ The situation of people, infrastructure, housing, production capacities and othe Source: [UNDRR Terminology (Exposure)](https://www.undrr.org/terminology/exposure) ```{card} Exposure: buildings footprints and population -![Exposure](img/sample_exp.jpg) +![Exposure: buildings footprints and population](img/sample_exp.jpg) ## Hazard From 2b47ad5a791d8911c6b0e225762a1f5d0e23ce31 Mon Sep 17 00:00:00 2001 From: stufraser1 Date: Thu, 22 Jun 2023 15:50:12 +0100 Subject: [PATCH 65/73] replacing markdown
    and
    with thematic breaks. per https://github.com/GFDRR/rdl-standard/pull/97 --- docs/about/governance.md | 35 ++++++++++++++++----- docs/about/license.md | 2 +- docs/data_model/exposure.md | 12 +++++-- docs/data_model/general.md | 6 ++-- docs/data_model/hazard.md | 45 +++++++++++++++++++------- docs/data_model/index.md | 7 +++-- docs/data_model/loss.md | 26 ++++++++++----- docs/data_model/vulnerability.md | 12 ++++--- docs/guides/ddh-rdl.md | 18 +++++++---- docs/guides/formats.md | 7 +++-- docs/guides/index.md | 2 +- docs/guides/preparation.md | 21 ++++++++----- docs/index.md | 4 ++- docs/rdl/core-standards.md | 1 - docs/rdl/index.md | 1 - docs/rdl/roadmap.md | 6 +++- docs/rdl/use-cases.md | 16 +++++++--- docs/taxonomies/ged4all.md | 54 ++++++++++++++++++++++---------- 18 files changed, 193 insertions(+), 82 deletions(-) diff --git a/docs/about/governance.md b/docs/about/governance.md index da7d2441..bba886a2 100644 --- a/docs/about/governance.md +++ b/docs/about/governance.md @@ -4,7 +4,10 @@ This document provides an overview of the governance and processes used to devel This document is intended to be a useful reference point for anyone involved in contributing to the standard. It focuses on the roles, responsibilities and processes. This is intended to complete the [**contributor guide**](https://github.com/GFDRR/rdl-standard/blob/main/CONTRIBUTING.md) which outlines the range of ways in which contributors might support development of the standard. -
    + +*** + + ## Our governance principles @@ -18,7 +21,10 @@ As a group we are committed to the [**OpenStand principles**](https://open-stand We are working to improve our process to ensure that we are living up to these principles. This document provides a reference point for our current practices. -
    + +*** + + ## Intellectual property @@ -26,7 +32,10 @@ All the outputs from this standards initiative are openly licensed under a CC-BY Additional documentation and source code produced by this initiative will also be published under a suitable open licence. We encourage other organisations to similarly licence their work, so that it can be used for the benefit of the wider community. -
    + +*** + + ## Roles and responsibilities @@ -61,7 +70,10 @@ Membership of these groups and participation in calls and workshops will be open This model reflects the process of development of early versions of the standard, which involves convening a range of organisations around developing models for hazard, exposure and other types of data. This approach will help us to drawing on expertise, and seek focused input, from across a wide range of organisations. All working documents, issue reporting and decisions made within these groups will be reviewed and communicated via this repository. -
    + +*** + + ## How we collaborate @@ -71,7 +83,9 @@ At present our primary means of collaborating on the standard is via a set of op - [Issues](https://github.com/GFDRR/rdl-standard/issues) to propose and discuss changes to the standard - [Project boards](https://github.com/GFDRR/rdl-standard/projects) to provide transparency of the current progress and priorities around its development -
    + +*** + ## Proposing and managing changes @@ -79,7 +93,10 @@ Anyone can propose changes to the specifications. The process for doing this is We encourage disussion and feedback, by requesting people leave comments on the issue. After leaving appropriate time for further comment, once we feel that a broad consensus has been achieved around the proposed changes, we will update the schema by releasing a new version of the specification. -
    + +*** + + ## Managing releases @@ -92,4 +109,8 @@ Releases of the standard will follow the [semantic versioning](https://semver.or To support gradual migration to the latest specification, we will maintain historical versions of the specifications in named folders in this repository. -

    + +*** + + + diff --git a/docs/about/license.md b/docs/about/license.md index 242731ed..c0efd2ab 100644 --- a/docs/about/license.md +++ b/docs/about/license.md @@ -2,4 +2,4 @@ The content of this guide was prepared by GFDRR under the Risk Data Library Project and is licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/legalcode). -

    + diff --git a/docs/data_model/exposure.md b/docs/data_model/exposure.md index 39e3186e..a7fd9b76 100644 --- a/docs/data_model/exposure.md +++ b/docs/data_model/exposure.md @@ -41,7 +41,10 @@ The exposure schema covers 4 categories and 11 occupancy types for consistent cl
    Within one exposure model (e.g. one geospatial layer) there can be one or more **cost type** associated with damage to assets. For example, the cost of the building structure by square meter and the cost of the contents of a single building. The attributes are named accordingly within the data, e.g. "Cost_structure" and "Cost_content". Additional **tags** attributes can be associated with an asset to link any information not specified in the exposure standard. -
    + +*** + + ## Examples @@ -62,7 +65,9 @@ Two exposure datasets are shown together in the example: building footprints pol |*| Value type | Structure | |\*| Unit of measure | USD | -
    + + + |**Required**| **Attribute** | **Example** | |:---:| --- | --- | @@ -73,4 +78,5 @@ Two exposure datasets are shown together in the example: building footprints pol |*| Value type | Other | |\*| Unit of measure | Count | -

    + +*** diff --git a/docs/data_model/general.md b/docs/data_model/general.md index 6f9d4318..58de1cff 100644 --- a/docs/data_model/general.md +++ b/docs/data_model/general.md @@ -15,7 +15,9 @@ In addition to schema-specific attributes, each dataset is identified by a list |*| Geo coverage | ISO code(s) of countries covered | ISOa3 country code | |\*| License code | Type of license | Licensing options | -
    + + + Other attributes are specific to individual resources, covering level of aggregation, resolution and format. @@ -29,4 +31,4 @@ Other attributes are specific to individual resources, covering level of aggrega | | Format | ext | | | Download Url | url | -

    + diff --git a/docs/data_model/hazard.md b/docs/data_model/hazard.md index 7d7f6cfd..b6339bf7 100644 --- a/docs/data_model/hazard.md +++ b/docs/data_model/hazard.md @@ -48,7 +48,8 @@ The hazard schema stores data about the intensity and occurrence probability of } ``` -
    +*** + The schema specifies which type of analysis and data methodology that has generated the dataset. It supports either simulated probabilistic scenarios and empirical observations. If the dataset has been produced for a specific location, such a city, the name of the location can be included. @@ -59,7 +60,9 @@ The schema specifies which type of analysis and data methodology that has genera |\*| Calculation method | The methodology used for the modelling of hazard |
    • Simulated
    • Observed
    • Inferred | || Geographic area | Specific location for which the dataset has been developed | Name of location | -
      When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. + + +When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -68,7 +71,9 @@ The schema specifies which type of analysis and data methodology that has genera || Time span | The duration of the modelled period | Number | || Time year | One reference year to univocally identify the scenario | Date (year) | -
      When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100) The probability of occurrence is usually calculated on the basis of a reference period that provides observations: this period can be specified by start date, end date and time span. For example, an analysis of earthquake frequency based on seismic observations from 1934 (occurrence time start) to 2001 (occurrence time end), for a total count of 66 years (occurrence time span). + + +When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100) The probability of occurrence is usually calculated on the basis of a reference period that provides observations: this period can be specified by start date, end date and time span. For example, an analysis of earthquake frequency based on seismic observations from 1934 (occurrence time start) to 2001 (occurrence time end), for a total count of 66 years (occurrence time span). |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -78,14 +83,20 @@ The schema specifies which type of analysis and data methodology that has genera || Occurrence time (end) | End date of the period used to specify the occurrence probability | Date (year) | || Occurrence time (span) | The duration of the period used to specify the occurrence probability | Number of years | -
      The schema distinguish between the hazard and process represented and the hazard and process identified as the cause, or concause for the manifestation of the represented hazard. For example, a dataset represent landslide hazard that is triggered by an earthquake will have Hazard type: Landslide; Trigger hazard type: Earthquake. The unit of measure refers to the represented hazard and process. A description can be added to cover additional information not included in the schema. + + +The schema distinguish between the hazard and process represented and the hazard and process identified as the cause, or concause for the manifestation of the represented hazard. For example, a dataset represent landslide hazard that is triggered by an earthquake will have Hazard type: Landslide; Trigger hazard type: Earthquake. The unit of measure refers to the represented hazard and process. A description can be added to cover additional information not included in the schema. + |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | || Trigger hazard type | The hazard type that has triggered the event (if any) | Hazard type | || Trigger process type | The process type that triggered the event (if any) | Process type | -
      The hazard dataset could include one or more footprints for the same event, where each is one possible realisation (i.e. one footprint could represent minimum, another footprint the average and another one the maximum). The event uncertainty can be represented explicitly, through the inclusion of multiple footprints per event. + + +The hazard dataset could include one or more footprints for the same event, where each is one possible realisation (i.e. one footprint could represent minimum, another footprint the average and another one the maximum). The event uncertainty can be represented explicitly, through the inclusion of multiple footprints per event. + |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -97,7 +108,9 @@ The schema specifies which type of analysis and data methodology that has genera ### Hazard types The RDLS offers a classification of hazards that are more often required in disaster risk assessments, based on the review and mapping of existing alternative definitions into one consistent framework. -
      The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories): + + +The **RDLS** classifies hazard phenomena as main hazard (8 categories) and hazard process (27 categories):
      @@ -132,8 +145,13 @@ The RDLS offers a classification of hazards that are more often required in disa | Strong Wind | Tropical cyclone |
      -
      -Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure:
      + + +*** + + +Each hazard type and associated processes can have one or more type of measure metrics, which include the unit of measure: +
      @@ -182,7 +200,10 @@ DR | SPI:- | Standard Precipitation Index
      -

      + +*** + + ## Examples @@ -208,7 +229,9 @@ Schema attributes for flood hazard map related to occurrence probability of a ri |*| Hazard process | River flood | |\*| Unit of measure | Water depth (m) | -
      + + + ### Earthquake hazard maps for Afghanistan @@ -229,4 +252,4 @@ Schema attributes for earthquake hazard map related to occurrence probability of |*| Hazard process | Ground motion | |\*| Unit of measure | PGA (g) | -

      + diff --git a/docs/data_model/index.md b/docs/data_model/index.md index 93ce58ce..1b64b04a 100644 --- a/docs/data_model/index.md +++ b/docs/data_model/index.md @@ -7,7 +7,8 @@ The Risk Data Library Standard schema covers [general dataset attributes](genera - [Vulnerability](vulnerability): model that links hazard intensity and exposure classification to measure of impact over the total exposed value. - [Loss](loss): modelled damage and losses produced in a risk assessment as a function of hazard, exposure and vulnerability components. -
    + + For definitions of these terms, please see the [Glossary](https://rdl-standard.readthedocs.io/en/docs.mat/glossary.html) @@ -52,7 +53,9 @@ The diagram below shows the core relationships between schema components, and th } ``` -
    +*** + + ```{eval-rst} .. toctree:: diff --git a/docs/data_model/loss.md b/docs/data_model/loss.md index ddaa3b45..8e17dfd5 100644 --- a/docs/data_model/loss.md +++ b/docs/data_model/loss.md @@ -47,7 +47,8 @@ The main attributes of the **loss model** describe the hazard and process for wh | | Exposure link | Exposure dataset that was used to calculate loss | URL | | | Vulnerability link | Vulnerability dataset that was used to calculate loss | URL | -
    When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. + +When the scenario modelled refers to a specific period of time, this can be specified in terms of dates, period span and reference year. For example, an observed flood event that occurred from 1.10.2009 (time start) to 3.10.2009 (time end), spanning over 3 days (time span). When precise time collocation is unknown or not applicable, a general reference date such as "2009" is used to identify events (time year). This is also useful to specify future scenario, e.g. time year: 2050. |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -56,14 +57,17 @@ The main attributes of the **loss model** describe the hazard and process for wh || Time span | The duration of the modelled period | Number | || Time year | One reference year to univocally identify the scenario | Date (year) | -
    When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100). + +When instead the hazard scenario is represented in probabilistic terms, the occurrence probability (frequency distribution) of hazard can be expressed in different ways. The most common way to communicate this is the "return period", expressed as the number of years after which a given hazard intensity could occur again: RP 100 indicates that that event has a probability of once in 100 years. This attribute can indicate individual layer frequency (RP100) or a range of frequencies for a collection of layers (RP10-100). |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | || Frequency type | The frequency of occurrence of the present event |
    • Rate of Exceedance
    • Probability of Exceedance
    • Return Period
    | || Occurrence probability | For probabilistic scenario, the occurrence probability is expressed according to frequency type | Text | -
    Additional attributes are specific to loss, describing the type of impact, the type of loss, the loss metric and the unit used to measure it. + + +Additional attributes are specific to loss, describing the type of impact, the type of loss, the loss metric and the unit used to measure it. |**Required**| **Attribute** | **Description** | **Type** | |:---:| --- | --- | --- | @@ -72,7 +76,9 @@ The main attributes of the **loss model** describe the hazard and process for wh |*| Metric | Type of loss metric |
    • Average Annual Losses
    • Annual Average Loss Ratio
    • Probable Maximal Loss | |*| Unit | Cost unit of measure | Unit code | -
      + + + ## Examples @@ -106,13 +112,16 @@ The losses are higher in the most densely built-up area of Kabul. |*| Metric | Average Annual Losses | |*| Unit | USD | -
      + + +*** + Losses can be investigated as total or for individual exposed asset and infrastructure elements. -![Road losses](../img/exp_afg_roads.jpg) +![Example of data showing exposed roads in Afghanistan](../img/exp_afg_roads.jpg) -
      +*** ### Observed losses @@ -131,4 +140,5 @@ Insert example of recorded empirical losses. |*| Hazard process | Ground motion | |\*| Unit of measure | PGA (g) | -

      + + diff --git a/docs/data_model/vulnerability.md b/docs/data_model/vulnerability.md index 4ee2860e..d509b8c4 100644 --- a/docs/data_model/vulnerability.md +++ b/docs/data_model/vulnerability.md @@ -58,7 +58,8 @@ Other attributes describe the function type and the analytical approach adopted, | * | Local applicability | Specific sub-area within a country or region to which the model specifically applies | Location name | | | Transferability notes | Details about applicability to different areas | Text | -
      + + The **specifics** attributes add more optional details. @@ -96,7 +97,7 @@ The **specifics** attributes add more optional details.
    -
    + The **additional** attributes cover more specific information that helps to understand the analysis which generated the function. @@ -120,12 +121,13 @@ The **additional** attributes cover more specific information that helps to unde | | sample | Type of sampling | |