{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Asset-level impact calculations\n", "Here 'asset-level' impacts means the impact of hazards on each asset in a portfolio, taken in isolation. This is, as opposed to portfolio-level impacts where the asset impacts are aggregated together – a topic for another notebook.\n", "\n", "### Obtaining impact distributions for a portfolio of assets" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "vscode": { "languageId": "shellscript" } }, "outputs": [], "source": [ "# pip install nbformat pandas plotly requests" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "vscode": { "languageId": "shellscript" } }, "outputs": [], "source": [ "import pprint as pp\n", "from typing import NamedTuple\n", "import requests\n", "\n", "import plotly.graph_objs as go\n", "import plotly.io\n", "from plotly.subplots import make_subplots\n", "plotly.io.renderers.default = \"notebook\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "base_url = \"https://physrisk-api2-sandbox.apps.odh-cl1.apps.os-climate.org/api/\"\n", "\n", "portfolio = {\n", " \"items\": [\n", " {\n", " \"asset_class\": \"RealEstateAsset\",\n", " \"type\": \"Buildings/Industrial\",\n", " \"location\": \"Asia\",\n", " \"latitude\": 24.0426,\n", " \"longitude\": 91.0158,\n", " },\n", " {\n", " \"asset_class\": \"RealEstateAsset\",\n", " \"type\": \"Buildings/Industrial\",\n", " \"location\": \"Asia\",\n", " \"latitude\": 22.6588,\n", " \"longitude\": 90.3373,\n", " },\n", " ]\n", "}\n", "request = {\n", " \"assets\": portfolio,\n", " \"include_asset_level\": True,\n", " \"include_calc_details\": True,\n", " \"include_measures\": True,\n", " \"years\": [2050],\n", " \"scenario\": \"ssp585\",\n", "}\n", "\n", "url = base_url + \"get_asset_impact\"\n", "response = requests.post(url, json=request).json()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "asset0_impacts = response[\"asset_impacts\"][1][\"impacts\"]\n", "\n", "\n", "class Key(NamedTuple):\n", " hazard_type: str\n", " scenario_id: str\n", " year: str\n", "\n", "\n", "asset0_impact_dict = {}\n", "for i in asset0_impacts:\n", " key = i[\"key\"]\n", " asset0_impact_dict[Key(key[\"hazard_type\"], key[\"scenario_id\"], key[\"year\"])] = i\n", "\n", "hazard_types = set(k.hazard_type for k in asset0_impact_dict.keys())\n", "wind_impact_histo = asset0_impact_dict[Key(\"Wind\", \"historical\", \"None\")]\n", "wind_impact_ssp585 = asset0_impact_dict[Key(\"Wind\", \"ssp585\", \"2050\")]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "