Hazard: Landslides

The landslide class inherits from the hazard class. Other than some of the hazard modules available in climada, the landslide module does not run a physical model in its background. Rather, this tutorial is a suggestion of how to handle two different types of hazard source files (in one case, already the finished product of some model output, in the other case just a historic data collection).

We propose 2 different types of landslide hazard datasets that the module’s methods work well with: * historic landslides: historic event sets based on the NASA COOLR global landslide catalogue, continuously updated. * probabilistic landslides: two raster files on probabilistic LS hazard, one for landslides triggered by precipitation and one for landslides triggered by earthquakes, based on data from the Norwegian Geotechnical Institute (NGI) for UNEP GRID, last improved 2018.

The module comes with two main functions, both delivering a raster-hazard set (once of historic occurrences, once with probabilistically sampled occurrences) * set_ls_hist() * set_ls_prob()

Option 1: historic landslide events: NASA COOLR initiative

Data from the global landslide catalogue is continuously updated as part of the Cooperative Open Online Landslide Repository (https://pmm.nasa.gov/landslides/coolrdata.html#download). The data consists in points representing an approximate occurence location, without spatial extent and any kind of “intensity” (binary events).

The most recent version of the dataset should always be downloaded by going to the link > “Open Landslide Viewer” (takes some time to load) > click “Download the full Landslide Catalog” > selecting the “NASA Global Landslide Catalog Points (Shapefile)” for download.

Download and unzip the up-to-date version.

Important: The original file has a typo in one of its entries, which messes up the reading of a bounding box. Reading it once into memory with geopandas and re-saving it as shapefile solves this. This has to be done only once.

[2]:
# Amending the Landslide catalog by loading and re-saving (only necessary first time!)
import geopandas as gpd

PATH_COOLR = 'your path to file nasa_global_landslide_catalog_point.shp'
ls_gdf_all = gpd.read_file(PATH_COOLR)
ls_gdf_all.to_file(PATH_COOLR)

Now we can start the actual task..

[1]:
# Loading packages and constants
%matplotlib inline
from climada.hazard.landslide import Landslide
PATH_COOLR = 'your path to file nasa_global_landslide_catalog_point.shp'

The historic landslide events are read into a landslide hazard set. Since the events are reported as simple points, we convert the hazard set to a raster file with a certain resolution.

Important note on projections and resolution The resolution is up to your choice and has implications: The grid which is generated has the same projection and units as the input geodataframe with point landslide occurrences. By default, this is EPSG:4326, which is a non-projected, geographic CRS. This means, depending on where on the globe the analysis is performed, the area per gridcell differs vastly. Consider this when setting your resoluton (e.g. at the equator, 1° ~ 111 km). In turn, one can use a projected CRS which preserve angles and areas within the reference area for which they are defined. To do this, reproject the input_gdf to the desired projection. For more on projected & geographic CRS, read here

Here, we will stick with the default geopgraphic (non-projected) EPSG 4326 and take a resolution of 0.004° (which is about 450m at the equator). All area within a grid cell that “hosts” an event point is hence affected.

[2]:
bbox_taiwan = (120.0, 21.5, 122.0, 25.5) # bbox as (minx, miny, maxx, maxy)
# Example for Taiwan
haz_ls_Taiwan_hist = Landslide()
haz_ls_Taiwan_hist.set_ls_hist(bbox=bbox_taiwan,
                               input_gdf=PATH_COOLR,
                               res=0.004)
# Visual inspection of the hazard
haz_ls_Taiwan_hist.centroids.plot()
haz_ls_Taiwan_hist.plot_intensity(0)
2021-03-17 11:37:35,873 - climada.hazard.landslide - INFO - Reading in gdf from source /Users/evelynm/climada_python/data/system/nasa_global_landslide_catalog_point/nasa_global_landslide_catalog_point.shp
2021-03-17 11:37:35,943 - climada.hazard.landslide - INFO - Generating a raster with resolution 0.004 for box (120.0, 21.5, 122.0, 25.5)
/Users/evelynm/climada_python/climada/util/plot.py:326: UserWarning: Tight layout not applied. The left and right margins cannot be made large enough to accommodate all axes decorations.
  fig.tight_layout()
[2]:
<cartopy.mpl.geoaxes.GeoAxesSubplot at 0x7fb0c19d31d0>
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/cartopy/mpl/feature_artist.py:225: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.
  **dict(style))
../_images/tutorial_climada_hazard_Landslide_8_4.png
../_images/tutorial_climada_hazard_Landslide_8_5.png

Exemplary end-to-end impact calculation using the historic LS option

The steps below follow the normal routine of defining impact functions, getting an exposure, and performing an impact calculation based on the given historic hazard set.

Impact functions relate the hazard intensity to a percentage of damage in the exposure. For a detailed description on impact functions, check out the respective tutorial.

Since the historic landslides are binary (occurrence / non-occurrence), their intensity is simply put to “1” at the respective grid-point where one occurred. A dummy step impact function is created for illustrative purposes, where damage (impact) is simply 100% when intensity is (close to) 1, and 0 else.

[3]:
from climada.entity.exposures import LitPop
from climada.entity.entity_def import Entity
from climada.entity import ImpactFuncSet, ImpactFunc
from climada.engine import Impact
import numpy as np
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/pandas_datareader/compat/__init__.py:7: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
  from pandas.util.testing import assert_frame_equal
[4]:
# Set impact function (see tutorial climada_entity_ImpactFuncSet)
if_LS_hist = ImpactFunc()
if_LS_hist.haz_type = 'LS'
if_LS_hist.id = 1
if_LS_hist.name = 'LS Linear function'
if_LS_hist.intensity_unit = 'm/m'
if_LS_hist.intensity = np.linspace(0, 1, num=15)
if_LS_hist.mdd = np.sort(np.array([0,0,0,0,0,0,0,0,1., 1., 1., 1., 1., 1., 1.]))
if_LS_hist.paa = np.sort(np.linspace(1, 1, num=15))
if_LS_hist.check()
if_LS_hist.plot()
ifset_LS_hist = ImpactFuncSet()
ifset_LS_hist.append(if_LS_hist)
2021-03-17 11:38:00,271 - climada.entity.impact_funcs.base - WARNING - For intensity = 0, mdd != 0 or paa != 0. Consider shifting the origin of the intensity scale. In impact.calc the impact is always null at intensity = 0.
../_images/tutorial_climada_hazard_Landslide_12_1.png

For a detailed description of the Exposure class, refer to the respective tutorial. This LS tutorial uses the LitPop class, which models countries’ gridded asset exposure by disaggregating a macroeconomic indicator (e.g. total asset value or GDP) proportional to the product of night light intensities (“Lit”) and gridded population count (“Pop”) per country.

[5]:
# Set LitPop exposure for Taiwan
exp_LS_hist = LitPop()
exp_LS_hist.set_country('Taiwan')
exp_LS_hist.set_geometry_points()
exp_LS_hist.gdf.rename({'if_': 'if_LS'}, axis='columns',inplace=True)
exp_LS_hist.set_lat_lon()
exp_LS_hist.check()

# plot the exposure
exp_LS_hist.plot_basemap()
2021-03-17 11:38:03,494 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:38:03,495 - climada.entity.exposures.base - INFO - tag set to default value  File:
 Description:
2021-03-17 11:38:03,496 - climada.entity.exposures.base - INFO - ref_year set to default value 2018
2021-03-17 11:38:03,497 - climada.entity.exposures.base - INFO - value_unit set to default value USD
2021-03-17 11:38:03,499 - climada.entity.exposures.base - INFO - crs set to default value: EPSG:4326
2021-03-17 11:38:05,084 - climada.entity.exposures.litpop - INFO - Generating LitPop data at a resolution of 30.0 arcsec.
2021-03-17 11:38:15,550 - climada.entity.exposures.gpw_import - INFO - Reference year: 2016. Using nearest available year for GWP population data: 2015
2021-03-17 11:38:15,554 - climada.entity.exposures.gpw_import - INFO - GPW Version v4.13
2021-03-17 11:38:29,817 - climada.util.finance - WARNING - No data available for country. Using non-financial wealth instead
2021-03-17 11:38:29,818 - climada.util.finance - WARNING - GDP data for TWN is not provided by World Bank.                        Instead, IMF data is returned here.
2021-03-17 11:38:30,335 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:38:30,335 - climada.entity.exposures.base - INFO - tag set to default value  File:
 Description:
2021-03-17 11:38:30,336 - climada.entity.exposures.base - INFO - ref_year set to default value 2018
2021-03-17 11:38:30,336 - climada.entity.exposures.base - INFO - value_unit set to default value USD
2021-03-17 11:38:30,350 - climada.entity.exposures.base - INFO - crs set to default value: EPSG:4326
2021-03-17 11:38:30,364 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:38:30,372 - climada.entity.exposures.litpop - INFO - Creating the LitPop exposure took 26 s
2021-03-17 11:38:30,373 - climada.entity.exposures.base - INFO - Hazard type not set in if_
2021-03-17 11:38:30,375 - climada.entity.exposures.base - INFO - category_id not set.
2021-03-17 11:38:30,376 - climada.entity.exposures.base - INFO - cover not set.
2021-03-17 11:38:30,378 - climada.entity.exposures.base - INFO - deductible not set.
2021-03-17 11:38:30,379 - climada.entity.exposures.base - INFO - geometry not set.
2021-03-17 11:38:30,380 - climada.entity.exposures.base - INFO - centr_ not set.
2021-03-17 11:38:30,436 - climada.util.coordinates - INFO - Setting geometry points.
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/geopandas/geodataframe.py:91: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access
  super(GeoDataFrame, self).__setattr__(attr, val)
2021-03-17 11:38:32,668 - climada.entity.exposures.base - INFO - Setting latitude and longitude attributes.
2021-03-17 11:38:33,775 - climada.entity.exposures.base - INFO - category_id not set.
2021-03-17 11:38:33,776 - climada.entity.exposures.base - INFO - cover not set.
2021-03-17 11:38:33,776 - climada.entity.exposures.base - INFO - deductible not set.
2021-03-17 11:38:33,777 - climada.entity.exposures.base - INFO - centr_ not set.
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
  return _prepare_from_string(" ".join(pjargs))
2021-03-17 11:38:35,624 - climada.entity.exposures.base - INFO - Setting latitude and longitude attributes.
/Users/evelynm/climada_python/climada/util/plot.py:326: UserWarning: Tight layout not applied. The left and right margins cannot be made large enough to accommodate all axes decorations.
  fig.tight_layout()
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/contextily/tile.py:268: FutureWarning: The url format using 'tileX', 'tileY', 'tileZ' as placeholders is deprecated. Please use '{x}', '{y}', '{z}' instead.
  FutureWarning,
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
  return _prepare_from_string(" ".join(pjargs))
2021-03-17 11:38:44,848 - climada.entity.exposures.base - INFO - Setting latitude and longitude attributes.
[5]:
<cartopy.mpl.geoaxes.GeoAxesSubplot at 0x7faf39852950>
../_images/tutorial_climada_hazard_Landslide_14_8.png
[6]:
# Set Entity
ent_LS_hist = Entity()
ent_LS_hist.exposures = exp_LS_hist
ent_LS_hist.impact_funcs = ifset_LS_hist
2021-03-17 11:38:47,503 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:38:47,504 - climada.entity.exposures.base - INFO - tag set to default value  File:
 Description:
2021-03-17 11:38:47,505 - climada.entity.exposures.base - INFO - ref_year set to default value 2018
2021-03-17 11:38:47,505 - climada.entity.exposures.base - INFO - value_unit set to default value USD
2021-03-17 11:38:47,507 - climada.entity.exposures.base - INFO - crs set to default value: EPSG:4326

Important note: Climada allows you to perform damage statistics (such as average annual impact, impact exceedance curves, etc.). Since those reported events have no guarantee of completeness, and cover a relatively short time, it is strongly advised not to perform such calculations. Since fr For impact.at_event in turn, no frequency correction is made. Apply the probabilistic method (explained below) for such calculations.

[7]:
# Impact calculation from historic landslides, with exposure and impact function defined as above.
imp_LS_Taiwan_hist = Impact()
imp_LS_Taiwan_hist.calc(ent_LS_hist.exposures, ent_LS_hist.impact_funcs, haz_ls_Taiwan_hist)
imp_LS_Taiwan_hist.plot_raster_eai_exposure()
print(f'The overall estimated impact from all events is {int(imp_LS_Taiwan_hist.aai_agg)} $')
2021-03-17 11:38:47,515 - climada.entity.exposures.base - INFO - Matching 46165 exposures with 501501 centroids.
2021-03-17 11:38:47,526 - climada.engine.impact - INFO - Calculating damage for 45512 assets (>0) and 64 events.
2021-03-17 11:38:47,554 - climada.util.coordinates - INFO - Raster from resolution 0.008333333333297333 to 0.008333333333297333.
/Users/evelynm/climada_python/climada/util/plot.py:326: UserWarning: Tight layout not applied. The left and right margins cannot be made large enough to accommodate all axes decorations.
  fig.tight_layout()
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/cartopy/mpl/feature_artist.py:225: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.
  **dict(style))
The overall estimated impact from all events is 8561083 $
../_images/tutorial_climada_hazard_Landslide_17_3.png

Option 2: probabilistic landslide hazard (precipitation / earthquake-induced) from UNEP / NGI

The global probabilistic hazardsets are provided publicly by UNEP GRID and were developed by the Norwegian Geotechnical Institute (NGI).

Since the webservices are currently (as of 08/20) not working, please download the geoTIFFs manually:

The datasets are in units of expected annual probability and percentage of pixel of occurrence of a potentially destructive landslide event x 1000000 and include an estimate of the annual frequency of landslide triggered by precipitation / earthquakes. It depends on the combination of trigger and susceptibility defined by six parameters: slope factor, lithological (or geological) conditions, soil moisture condition, vegetation cover, precipitation and seismic conditions.

Given how the external hazard set is defined (“expected annual probability and percentage of pixel of occurrence of a potentially destructive landslide event”), intensity and fraction are assigned a bit different from the normal hazard-reading method (but consistent with the definition in the historic set):

Probabilistic events are produced by sampling over the occurrence probabilities in each grid cell. The user has the option to choose either a binomial or a Poisson distribution via the dist kwarg. The “numbers of successes” are stored as fraction, intensity is 0 if there was no event in a grid cell, and 1 if at least one event occurred. Frequency is number of successes / number of years.

Read the documentation for details.

[8]:
# Loading packages and setting constants
%matplotlib inline
from climada.hazard.landslide import Landslide
PATH_LSPROB = 'your-path-to/ls_pr.tif'

Let’s produce a 500 year probabilistic event set for the same geographic extent as above. Be aware that the resolution of the grid cells is 0.00833° (about 900m at the equator), so events tend to be quite large, if they occur.

[9]:
# Setting precipitation-triggered landslide hazard for Taiwan
haz_ls_taiwan_prob = Landslide()
bbox_taiwan = (120.0, 21.5, 122.0, 25.5)

# The check-plots produce intensity (image 1) and fraction (image 2) plots
# a correction factor of 1 million is applied since probs are reportet as x10e6 in the original data:
haz_ls_taiwan_prob.set_ls_prob(bbox=bbox_taiwan, path_sourcefile=PATH_LSPROB,
                               n_years=500, corr_fact=10e6, dist='poisson')
# Visual inspection of the hazard
haz_ls_taiwan_prob.centroids.plot()
haz_ls_taiwan_prob.plot_intensity(0)
2021-03-17 11:40:03,946 - climada.util.coordinates - INFO - Reading /Users/evelynm/climada_python/data/system/ls_pr/ls_pr.tif
2021-03-17 11:40:04,074 - climada.hazard.landslide - INFO - Sampling landslide events for a 500 year period
2021-03-17 11:40:04,090 - climada.hazard.centroids.centr - INFO - Convert centroids to GeoSeries of Point shapes.
[9]:
<cartopy.mpl.geoaxes.GeoAxesSubplot at 0x7faf3659bf10>
../_images/tutorial_climada_hazard_Landslide_22_2.png
../_images/tutorial_climada_hazard_Landslide_22_3.png

With the hazard set loaded, it is now possible to calculate the expected damage for the simulated period:

[10]:
from climada.entity import LitPop
from climada.entity.entity_def import Entity
from climada.entity import ImpactFuncSet, ImpactFunc
from climada.engine import Impact
import numpy as np

Important for impact calculations: Since impact functions act on the intensity of a hazard, an our hazard takes on binary intensity values (0 = no LS prob, 1 = >0 LS prob), it makes sense to define some step-function around those two values. The impact calculation accounts for the fractions (% of affected pixel and actual annual probability) by multiplying them into the end-result, anyways, under the hood.

[11]:
# Set impact function
if_LS_prob = ImpactFunc()
if_LS_prob.haz_type = 'LS'
if_LS_prob.id = 1
if_LS_prob.name = 'LS Linear function'
if_LS_prob.intensity_unit = 'm/m'
if_LS_prob.intensity = np.linspace(0, 1, num=15)
if_LS_prob.mdd = np.sort(np.array([0,0,0,0,0,0,0,0,1., 1., 1., 1., 1., 1., 1.]))
if_LS_prob.paa = np.sort(np.linspace(1, 1, num=15))
if_LS_prob.check()
if_LS_prob.plot()
ifset_LS_prob = ImpactFuncSet()
ifset_LS_prob.append(if_LS_prob)
2021-03-17 11:40:47,337 - climada.entity.impact_funcs.base - WARNING - For intensity = 0, mdd != 0 or paa != 0. Consider shifting the origin of the intensity scale. In impact.calc the impact is always null at intensity = 0.
../_images/tutorial_climada_hazard_Landslide_26_1.png
[12]:
# Set exposure for Taiwan:
exp_LS_prob = LitPop()
exp_LS_prob.set_country('Taiwan')
exp_LS_prob.set_geometry_points()
exp_LS_prob.gdf.rename({'if_': 'if_LS'}, axis='columns', inplace=True)
exp_LS_prob.set_lat_lon()
exp_LS_prob.check()

# plot exposure
exp_LS_prob.plot_basemap()
2021-03-17 11:40:49,509 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:40:49,510 - climada.entity.exposures.base - INFO - tag set to default value  File:
 Description:
2021-03-17 11:40:49,511 - climada.entity.exposures.base - INFO - ref_year set to default value 2018
2021-03-17 11:40:49,512 - climada.entity.exposures.base - INFO - value_unit set to default value USD
2021-03-17 11:40:49,513 - climada.entity.exposures.base - INFO - crs set to default value: EPSG:4326
2021-03-17 11:40:51,032 - climada.entity.exposures.litpop - INFO - Generating LitPop data at a resolution of 30.0 arcsec.
2021-03-17 11:41:01,453 - climada.entity.exposures.gpw_import - INFO - Reference year: 2016. Using nearest available year for GWP population data: 2015
2021-03-17 11:41:01,455 - climada.entity.exposures.gpw_import - INFO - GPW Version v4.13
2021-03-17 11:41:14,423 - climada.util.finance - WARNING - No data available for country. Using non-financial wealth instead
2021-03-17 11:41:14,424 - climada.util.finance - WARNING - GDP data for TWN is not provided by World Bank.                        Instead, IMF data is returned here.
2021-03-17 11:41:14,905 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:41:14,906 - climada.entity.exposures.base - INFO - tag set to default value  File:
 Description:
2021-03-17 11:41:14,906 - climada.entity.exposures.base - INFO - ref_year set to default value 2018
2021-03-17 11:41:14,907 - climada.entity.exposures.base - INFO - value_unit set to default value USD
2021-03-17 11:41:14,920 - climada.entity.exposures.base - INFO - crs set to default value: EPSG:4326
2021-03-17 11:41:14,929 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:41:14,938 - climada.entity.exposures.litpop - INFO - Creating the LitPop exposure took 25 s
2021-03-17 11:41:14,939 - climada.entity.exposures.base - INFO - Hazard type not set in if_
2021-03-17 11:41:14,939 - climada.entity.exposures.base - INFO - category_id not set.
2021-03-17 11:41:14,941 - climada.entity.exposures.base - INFO - cover not set.
2021-03-17 11:41:14,942 - climada.entity.exposures.base - INFO - deductible not set.
2021-03-17 11:41:14,944 - climada.entity.exposures.base - INFO - geometry not set.
2021-03-17 11:41:14,945 - climada.entity.exposures.base - INFO - centr_ not set.
2021-03-17 11:41:14,993 - climada.util.coordinates - INFO - Setting geometry points.
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/geopandas/geodataframe.py:91: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access
  super(GeoDataFrame, self).__setattr__(attr, val)
2021-03-17 11:41:17,210 - climada.entity.exposures.base - INFO - Setting latitude and longitude attributes.
2021-03-17 11:41:18,355 - climada.entity.exposures.base - INFO - category_id not set.
2021-03-17 11:41:18,356 - climada.entity.exposures.base - INFO - cover not set.
2021-03-17 11:41:18,357 - climada.entity.exposures.base - INFO - deductible not set.
2021-03-17 11:41:18,357 - climada.entity.exposures.base - INFO - centr_ not set.
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
  return _prepare_from_string(" ".join(pjargs))
2021-03-17 11:41:20,252 - climada.entity.exposures.base - INFO - Setting latitude and longitude attributes.
/Users/evelynm/climada_python/climada/util/plot.py:326: UserWarning: Tight layout not applied. The left and right margins cannot be made large enough to accommodate all axes decorations.
  fig.tight_layout()
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/contextily/tile.py:268: FutureWarning: The url format using 'tileX', 'tileY', 'tileZ' as placeholders is deprecated. Please use '{x}', '{y}', '{z}' instead.
  FutureWarning,
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/pyproj/crs/crs.py:53: FutureWarning: '+init=<authority>:<code>' syntax is deprecated. '<authority>:<code>' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
  return _prepare_from_string(" ".join(pjargs))
2021-03-17 11:41:25,067 - climada.entity.exposures.base - INFO - Setting latitude and longitude attributes.
[12]:
<cartopy.mpl.geoaxes.GeoAxesSubplot at 0x7fae59591b90>
../_images/tutorial_climada_hazard_Landslide_27_8.png
[13]:
# Set Entity
ent_LS_prob = Entity()
ent_LS_prob.exposures = exp_LS_prob
ent_LS_prob.impact_funcs = ifset_LS_prob
2021-03-17 11:41:27,715 - climada.entity.exposures.base - INFO - meta set to default value {}
2021-03-17 11:41:27,716 - climada.entity.exposures.base - INFO - tag set to default value  File:
 Description:
2021-03-17 11:41:27,717 - climada.entity.exposures.base - INFO - ref_year set to default value 2018
2021-03-17 11:41:27,718 - climada.entity.exposures.base - INFO - value_unit set to default value USD
2021-03-17 11:41:27,720 - climada.entity.exposures.base - INFO - crs set to default value: EPSG:4326
[14]:
# Set impact for probabilistic simulation
imp_LS_Taiwan_prob = Impact()
imp_LS_Taiwan_prob.calc(ent_LS_prob.exposures, ent_LS_prob.impact_funcs, haz_ls_taiwan_prob)
imp_LS_Taiwan_prob.plot_raster_eai_exposure()
2021-03-17 11:41:27,728 - climada.entity.exposures.base - INFO - Matching 46165 exposures with 115921 centroids.
2021-03-17 11:41:27,739 - climada.engine.impact - INFO - Calculating damage for 45512 assets (>0) and 1 events.
2021-03-17 11:41:27,853 - climada.util.coordinates - INFO - Raster from resolution 0.008333333333297333 to 0.008333333333297333.
/Users/evelynm/climada_python/climada/util/plot.py:326: UserWarning: Tight layout not applied. The left and right margins cannot be made large enough to accommodate all axes decorations.
  fig.tight_layout()
/Users/evelynm/opt/anaconda3/envs/climada_env/lib/python3.7/site-packages/cartopy/mpl/feature_artist.py:225: MatplotlibDeprecationWarning: Using a string of single character colors as a color sequence is deprecated. Use an explicit list instead.
  **dict(style))
[14]:
<cartopy.mpl.geoaxes.GeoAxesSubplot at 0x7faf36e97ad0>
../_images/tutorial_climada_hazard_Landslide_29_3.png
[ ]: