Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal] Exposure component #62

Closed
odscrachel opened this issue May 17, 2023 · 9 comments · Fixed by #101
Closed

[Proposal] Exposure component #62

odscrachel opened this issue May 17, 2023 · 9 comments · Fixed by #101
Labels
exposure Issues related to Exposure data proposal New feature or request

Comments

@odscrachel
Copy link
Contributor

odscrachel commented May 17, 2023

What is the context or reason for the change?

Main changes proposed

Link to spreadsheet

What is your proposed change?

The exposure object with description 'Information about the modelled exposure (assets and population) that could be affected by the hazard.' with the following fields:

Field name Title Description Field Type
category Exposure category The category of the assets described in the dataset. String (codelist - Population, Buildings, Infrastructures, Agriculture, Natural environment)
taxonomy Exposure taxonomy scheme The name of the taxonomy scheme used to create descriptive individual asset feature strings within the dataset. String
cost Asset cost The exposure costs associated with specific elements of assets detailed in the dataset. Array of objects
cost.type Cost type The element of the asset that a cost value is being assigned to. String (codelist - Structure, Content, Product, Disruption (Business Interruption))
cost.unit Cost unit The unit in which the asset cost value is given.
reference_year Reference year A general reference year, to which the modelled exposure data or exposure scenario refers (e.g. '2050'). String
@stufraser1
Copy link
Member

replace reference_year with temporal with start and end years per #67 ?

@odscrachel odscrachel added the exposure Issues related to Exposure data label May 30, 2023
@stufraser1
Copy link
Member

stufraser1 commented May 31, 2023

Will exposure.taxonomy in metadata and putting taxonomy_code in data provide more flexibility to represent the characteristics of assets using different taxonomies?

In previous versions taxonomy_code was restricted to using a single string of code as proposed in GED4ALL (example MUR+ADO/HEX:1/RES denoting a single-storey Adobe residential structure - see https://platform.openquake.org/taxtweb/). This string would now appear in the data file, but not metadata.

In Open Exposure Data (OED) Standard and other insurance industry models, these characteristics are separated into multiple columns. For example for the same type:

OccupancyCode ConstructionCode NumberOfStoreys YearBuilt
1050 5101 1 0

Using AIR codes, for the same type:

OccupancyCode ConstructionCode NumberOfStoreys YearBuilt
301 112 1 0

In the data file, should we be specifying the structure (field names) to use, so the string or numeric values (dependent on the taxonomy used) can be validated? OED / GEM provides codelists that could be used for validation.
If we should specify the structure in the data file, can it be done with a taxonomy_code object that has option to use a single string value (per GED4ALL) or multiple columns using OED field naming?
OED Spec: https://github.com/OasisLMF/ODS_OpenExposureData/tree/develop/OpenExposureData/Docs

@duncandewhurst
Copy link
Contributor

My understanding was that RDLS isn't concerned with how the contents of resources are structured so yes, removing taxonomy_code from the metadata and leaving it up to data creators to decide how to model the characteristics of assets in their datasets does allow more flexibility.

Regarding validation, in-line with the above understanding, I thought that we were only concerned with validating the RDLS metadata rather than the contents of resources themselves.

@odscjen
Copy link
Contributor

odscjen commented Jun 23, 2023

replace reference_year with temporal with start and end years per #67 ?

regarding this suggestion, the field will need to be renamed and described. Suggest:

Field name Title Description Field Type
reference_period Reference period A general reference period, to which the modelled exposure data or exposure scenario refers. temporal object

@stufraser1 is this okay?

@odscjen
Copy link
Contributor

odscjen commented Jun 28, 2023

Re. reference_year the current PR has raised the following question:

"Unless there is a semantic difference between the concept of temporal coverage and the concept of 'a general reference period to which data refers', I would name this field temporal to be consistent with Resource.temporal. However, adding this field under Exposure is equivalent to adding it at the dataset level, but only for exposure datasets, is there a reason why we wouldn't just have a temporal field as part of the top-level metadata instead so that it can apply to any dataset?"

@stufraser1 do we need this field or can it be dropped?

@stufraser1
Copy link
Member

Often we generate exposure scenarios, to estimate growth in population / urban areas for examples at 2040, 2050, 2060, etc.
It is this we wanted to reflect in reference_year.
We also often need to reflect this when we project risk_data_type=hazard (e.g. future flood risk under future climate conditions).
This then passes through to the risk_data_type=loss component, to denote that losses are for the e.g., 2050 or 2080 projection.

If we denote this at the top-level only, they would all be consistent and the information entered once. However, would that restrict us to creating a new dataset for every projection?
In risk_data_type=hazard do we not enable temporal at event level, to enable different projections in an event_set - the same should apply to risk_data_type=exposure and risk_data_type=loss I think

@odscjen
Copy link
Contributor

odscjen commented Jun 29, 2023

Ah, okay I think I see. At the moment exposure is not an array, e.g. all the fields there must apply across all the resources in the dataset. This is the same for loss and vulnerability too.

So trying to think about all of this, we need to reference time at a dataset level for ever risk_data_type and at a resource level for hazard.event_set, exposure and loss. These times can be real times, future times, or just durations. Different resources within a dataset can have different periods. I think the answer here might be:

  1. have the whole Temporal object at the top level (as per [Proposal] Top level period field  #67)
  2. have a Temporal object at the resource level as well
  3. remove all time references from hazard.event_set, exposure and loss as the relevant temporal info will be in the associated top level object (as a summary) and the resource objects (for a specific resource).
  4. remove reference_year and year as it'll only be of relevance at the resource level and in that case start and end can be used.

resources.temporal will be optional so if that info is the same for all resources then it just won't need to be filled in.

For exposure this will mean we don't need to create a new dataset for each temporal scenario as the specific reference year will be in each resource.

So using the above example values this will look like:

{
  "temporal": {
    "start": "2040",
    "end": "2060"
  },
  "risk_data_type": "exposure",
  "resources": [
    {
      "id": "1",
      "temporal": {
        "start": "2040",
        "end": "2040"
      }
    },
    {
      "id": "2",
      "temporal": {
        "start": "2050",
        "end": "2050"
      }
    },
    {
      "id": "3",
      "temporal": {
        "start": "2060",
        "end": "2060"
      }
    }
  ]
}

@stufraser1

@stufraser1
Copy link
Member

We can try this, lets put it in and test it when JSON is complete.

@duncandewhurst
Copy link
Contributor

Looks good to me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exposure Issues related to Exposure data proposal New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants