From 0a8de2be395338e7aba7b47c79fbb620ad23c4fa Mon Sep 17 00:00:00 2001
From: SahitiSarva <55742994+SahitiSarva@users.noreply.github.com>
Date: Mon, 15 Apr 2024 10:50:18 -0400
Subject: [PATCH] minor date change (#65)
---
.../housing-and-community.ipynb | 2 +-
.../industry-and-commerce.ipynb | 2 +-
reports/sample-indicators/health.ipynb | 2096 ---
.../housing-and-community.ipynb | 14515 ----------------
.../industry-and-commerce.ipynb | 13879 ---------------
5 files changed, 2 insertions(+), 30492 deletions(-)
delete mode 100644 reports/sample-indicators/health.ipynb
delete mode 100644 reports/sample-indicators/housing-and-community.ipynb
delete mode 100644 reports/sample-indicators/industry-and-commerce.ipynb
diff --git a/notebooks/sample-indicators/housing-and-community.ipynb b/notebooks/sample-indicators/housing-and-community.ipynb
index fa52e85..869802a 100644
--- a/notebooks/sample-indicators/housing-and-community.ipynb
+++ b/notebooks/sample-indicators/housing-and-community.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Impact on Housing and Community\n",
"\n",
- "This notebook shows an analysis of the impact of the war on Gaza for housing and communities. This is done using the following indicators as of March 17th, 2024 \n",
+ "This notebook shows an analysis of the impact of the war on Gaza for housing and communities. This is done using the following indicators as of April 15th, 2024 \n",
"\n",
"* Percentage of Residential Buildings Damaged\n",
"* Percentage of Places of Worship Damaged\n",
diff --git a/notebooks/sample-indicators/industry-and-commerce.ipynb b/notebooks/sample-indicators/industry-and-commerce.ipynb
index c556020..62f1e0f 100644
--- a/notebooks/sample-indicators/industry-and-commerce.ipynb
+++ b/notebooks/sample-indicators/industry-and-commerce.ipynb
@@ -6,7 +6,7 @@
"source": [
"# Impact on Industry and Commerce\n",
"\n",
- "This notebook shows an analysis of the impact of the war on Gaza for industry and commerce. This is done using the following indicators as of March 17th, 2024 \n",
+ "This notebook shows an analysis of the impact of the war on Gaza for industry and commerce. This is done using the following indicators as of April 15th, 2024 \n",
"\n",
"* Percentage of commercial and commericial buildings damaged\n",
"* Percentage of commercial and industrial buildings without electricity \n",
diff --git a/reports/sample-indicators/health.ipynb b/reports/sample-indicators/health.ipynb
deleted file mode 100644
index df8890a..0000000
--- a/reports/sample-indicators/health.ipynb
+++ /dev/null
@@ -1,2096 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Impact on Health"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "import geopandas\n",
- "import matplotlib.pyplot as plt\n",
- "import pandas as pd\n",
- "from matplotlib.ticker import FuncFormatter\n",
- "from palettable.tableau import TableauMedium_10\n",
- "\n",
- "%config InlineBackend.figure_formats = ['svg']\n",
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of health related places damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "# read shapefiles\n",
- "PSE = geopandas.read_file(\n",
- " \"../../data/boundaries/pse_adm_pamop_20231019_shp/pse_admbnda_adm1_pamop_20231019.shp\"\n",
- ")\n",
- "PSE = geopandas.read_file(\n",
- " \"../../data/boundaries/pse_adm_pamop_20231019_shp/pse_admbnda_adm2_pamop_20231019.shp\"\n",
- ")\n",
- "GAZA = PSE[PSE[\"ADM1_EN\"] == \"Gaza Strip\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POI = geopandas.read_file(\n",
- " \"../../data/damage_assessment/delivery8_2Feb2024/vectors/2.5sigma/damaged_pois_1_02Feb2024_2_5sigma.shp\"\n",
- ").to_crs(\"EPSG:4326\")\n",
- "\n",
- "POI = geopandas.sjoin(POI, GAZA)\n",
- "POI[\"fclass\"] = POI[\"fclass\"].fillna(\"\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "def get_poi_classification(fclass):\n",
- " if fclass in [\n",
- " \"school\",\n",
- " \"kindergarten\",\n",
- " \"university\",\n",
- " \"college\",\n",
- " ]:\n",
- " return \"Education\"\n",
- " if fclass in [\n",
- " \"tower\",\n",
- " \"wastewater_plant\",\n",
- " \"water_tower\",\n",
- " \"telephone\",\n",
- " \"water_well\",\n",
- " \"drinking_water\",\n",
- " \"recycling\",\n",
- " ]:\n",
- " return \"Critical Infrastructure\"\n",
- " if fclass in [\n",
- " \"pharmacy\",\n",
- " \"dentist\",\n",
- " \"doctors\",\n",
- " \"hospital\",\n",
- " \"clinic\",\n",
- " \"nursing_home\",\n",
- " ]:\n",
- " return \"Health\"\n",
- " if fclass in [\n",
- " \"public_building\",\n",
- " \"police\",\n",
- " \"courthouse\",\n",
- " \"library\",\n",
- " \"monument\",\n",
- " \"post_office\",\n",
- " \"memorial\",\n",
- " \"community_centre\",\n",
- " \"town_hall\",\n",
- " \"museum\",\n",
- " \"arts_centre\",\n",
- " \"sports_centre\",\n",
- " \"tourist_info\",\n",
- " \"fire_station\",\n",
- " ]:\n",
- " return \"Public Amenities\"\n",
- "\n",
- " elif fclass in [\n",
- " \"clothes\",\n",
- " \"supermarket\",\n",
- " \"restaurant\",\n",
- " \"laundry\",\n",
- " \"cafe\",\n",
- " \"computer_shop\",\n",
- " \"convenience\",\n",
- " \"furniture_shop\",\n",
- " \"shoe_shop\",\n",
- " \"bakery\",\n",
- " \"hotel\",\n",
- " \"hairdresser\",\n",
- " \"fast_food\",\n",
- " \"bank\",\n",
- " \"viewpoint\",\n",
- " \"artwork\",\n",
- " \"picnic_site\",\n",
- " \"chalet\",\n",
- " \"caravan_site\",\n",
- " \"greengrocer\",\n",
- " \"beauty_shop\",\n",
- " \"car_dealership\",\n",
- " \"attraction\",\n",
- " \"pub\",\n",
- " \"waste_basket\",\n",
- " \"nightclub\",\n",
- " \"playground\",\n",
- " \"department_store\",\n",
- " \"outdoor_shop\",\n",
- " \"atm\",\n",
- " \"butcher\",\n",
- " \"car_rental\",\n",
- " \"doityourself\",\n",
- " \"guesthouse\",\n",
- " \"beverages\",\n",
- " \"theatre\",\n",
- " \"newsagent\",\n",
- " \"cinema\",\n",
- " \"mobile_phone_shop\",\n",
- " \"car_wash\",\n",
- " \"bookshop\",\n",
- " \"hostel\",\n",
- " \"sports_shop\",\n",
- " \"castle\",\n",
- " \"pitch\",\n",
- " \"car_sharing\",\n",
- " \"vending_machine\",\n",
- " \"food_court\",\n",
- " \"gift_shop\",\n",
- " \"camp_site\",\n",
- " \"veterinary\",\n",
- " \"post_box\",\n",
- " \"florist\",\n",
- " \"jeweller\",\n",
- " \"chemist\",\n",
- " \"motel\",\n",
- " \"alpine_hut\",\n",
- " \"mall\",\n",
- " \"kiosk\",\n",
- " \"bicycle_shop\",\n",
- " \"bench\",\n",
- " \"optician\",\n",
- " \"travel_agent\",\n",
- " \"biergarten\",\n",
- " \"toy_shop\",\n",
- " \"bar\",\n",
- " \"fountain\",\n",
- " \"archaeological\",\n",
- " \"shelter\",\n",
- " \"park\",\n",
- " \"stationery\",\n",
- " \"market_place\",\n",
- " \"zoo\",\n",
- " ]:\n",
- " return \"Places of Economic Activity\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POI[\"type\"] = POI[\"fclass\"].apply(get_poi_classification)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "left = POI[POI[\"_up7max\"] >= 0.5].value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"damaged\")\n",
- "right = POI.value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"total\")\n",
- "\n",
- "df = pd.merge(left, right, on=[\"ADM2_EN\", \"type\"]).reset_index()\n",
- "df[\"perc\"] = 100 * df[\"damaged\"] / df[\"total\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {
- "tags": [
- "remove-cell",
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-06T11:51:41.140098 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(10, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Damaged Healthcare Locations\", y=1.01, fontsize=20, x=0.47\n",
- ")\n",
- "\n",
- "df.pivot_table(\"perc\", \"ADM2_EN\", \"type\")[[\"Health\"]].plot(\n",
- " ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors, legend=False\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Damaged Healthcare Locations\", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{}%\".format(y)))\n",
- "ax.set_ylabel(\"Adm 2\", fontsize=16)\n",
- "ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage of damaged healthcare locations for each second-level administrative division\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.15,\n",
- " \"Source: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ");"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "conflict-analyses",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.12"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/reports/sample-indicators/housing-and-community.ipynb b/reports/sample-indicators/housing-and-community.ipynb
deleted file mode 100644
index 40a6b0e..0000000
--- a/reports/sample-indicators/housing-and-community.ipynb
+++ /dev/null
@@ -1,14515 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Impact on Housing and Community\n",
- "\n",
- "This notebook shows an analysis of the impact of the war on Gaza for housing and communities. This is done using the following indicators as of February 2nd, 2024 \n",
- "\n",
- "* Percentage of Residential Buildings Damaged\n",
- "* Percentage of Places of Worship Damaged\n",
- "* Percentage of People in Neighbourhoods with Damaged Buildings\n",
- "* Percentage of Places of Education Damaged\n",
- "* Places of Public Amenities Damaged\n",
- "* Percentage of Homes without (observed) Nighttime Lights\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "import geopandas\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "from matplotlib.ticker import FuncFormatter\n",
- "from palettable.tableau import TableauMedium_10\n",
- "\n",
- "%config InlineBackend.figure_formats = ['svg']\n",
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Overall Impact on Housing and Community"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 56,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "summary_stats.reset_index(inplace=True)\n",
- "summary_stats[\"ADM2_EN\"] = pd.Categorical(\n",
- " summary_stats[\"ADM2_EN\"], categories=sort_order, ordered=True\n",
- ")\n",
- "summary_stats.sort_values(by=\"ADM2_EN\", inplace=True)\n",
- "summary_stats.rename(columns={\"ADM2_EN\": \"Governorate\"}, inplace=True)\n",
- "summary_stats.set_index(\"Governorate\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 57,
- "metadata": {
- "tags": [
- "remove-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " % Residential Buildings Damaged \n",
- " % Population in Neighborhoods with Damaged Buildings \n",
- " % Places of Worship Damaged \n",
- " % Places of Education Damaged \n",
- " % Public Amenities Damaged \n",
- " % Residential Buildings without Observed Nighttime Lights \n",
- " \n",
- " \n",
- " Governorate \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " North Gaza \n",
- " 35% \n",
- " 54% \n",
- " 80% \n",
- " 80% \n",
- " 80% \n",
- " 46% \n",
- " \n",
- " \n",
- " Gaza \n",
- " 63% \n",
- " 83% \n",
- " 84% \n",
- " 79% \n",
- " 79% \n",
- " 68% \n",
- " \n",
- " \n",
- " Deir Al-Balah \n",
- " 36% \n",
- " 23% \n",
- " 60% \n",
- " 72% \n",
- " 72% \n",
- " 89% \n",
- " \n",
- " \n",
- " Khan Younis \n",
- " 39% \n",
- " 55% \n",
- " 62% \n",
- " 74% \n",
- " 74% \n",
- " 66% \n",
- " \n",
- " \n",
- " Rafah \n",
- " 18% \n",
- " 10% \n",
- " 35% \n",
- " 71% \n",
- " 71% \n",
- " 5% \n",
- " \n",
- " \n",
- "
\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 57,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "summary_stats[\n",
- " [\n",
- " \"% Residential Buildings Damaged\",\n",
- " \"% Population in Neighborhoods with Damaged Buildings\",\n",
- " \"% Places of Worship Damaged\",\n",
- " \"% Places of Education Damaged\",\n",
- " \"% Public Amenities Damaged\",\n",
- " \"% Residential Buildings without Observed Nighttime Lights\",\n",
- " ]\n",
- "].style.background_gradient(cmap=\"viridis\", axis=0).format(\"{:.0f}%\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Observations\n",
- "\n",
- "* The Governorate of Gaza took the greatest impact in almost every indicator being measured. The biggest being the number of people potentially impacted (~720k). \n",
- "* The Governorate of North Gaza took impact on Points of Interest. However, this could also be because of the low number of reported buildings in the OpenStreetMap database.\n",
- "* Khan Younis, a southern Governorate, has more than half its population living in neighborhoods with damaged buildings and without observed nighttime lights."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 58,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " Number of Residential Buildings Damaged \n",
- " People in Neighborhoods with Damaged Buildings \n",
- " Number of Places of Worship Damaged \n",
- " Number of Places of Education Damaged \n",
- " Number of Public Amenities Damaged \n",
- " \n",
- " \n",
- " Governorate \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " North Gaza \n",
- " 174 \n",
- " 282283 \n",
- " 20 \n",
- " 45 \n",
- " 45 \n",
- " \n",
- " \n",
- " Gaza \n",
- " 384 \n",
- " 720573 \n",
- " 49 \n",
- " 80 \n",
- " 80 \n",
- " \n",
- " \n",
- " Deir Al-Balah \n",
- " 256 \n",
- " 84988 \n",
- " 12 \n",
- " 13 \n",
- " 13 \n",
- " \n",
- " \n",
- " Khan Younis \n",
- " 403 \n",
- " 261190 \n",
- " 21 \n",
- " 23 \n",
- " 23 \n",
- " \n",
- " \n",
- " Rafah \n",
- " 27 \n",
- " 28457 \n",
- " 7 \n",
- " 24 \n",
- " 24 \n",
- " \n",
- " \n",
- "
\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 58,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "summary_stats[\n",
- " [\n",
- " \"Number of Residential Buildings Damaged\",\n",
- " \"People in Neighborhoods with Damaged Buildings\",\n",
- " \"Number of Places of Worship Damaged\",\n",
- " \"Number of Places of Education Damaged\",\n",
- " \"Number of Public Amenities Damaged\",\n",
- " ]\n",
- "].style.background_gradient(cmap=\"viridis\", axis=0).format(\"{:.0f}\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of Residential Buildings Damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "# read shapefiles\n",
- "PSE = geopandas.read_file(\n",
- " \"../../data/boundaries/pse_adm_pamop_20231019_shp/pse_admbnda_adm1_pamop_20231019.shp\"\n",
- ")\n",
- "PSE = geopandas.read_file(\n",
- " \"../../data/boundaries/pse_adm_pamop_20231019_shp/pse_admbnda_adm2_pamop_20231019.shp\"\n",
- ")\n",
- "GAZA = PSE[PSE[\"ADM1_EN\"] == \"Gaza Strip\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "BUILDINGS_OSM = geopandas.read_file(\n",
- " \"../../data/damage_assessment/delivery8_2Feb2024/vectors/2.5sigma/damaged_OSM_buildings_02Feb2024_2_5sigma.shp\"\n",
- ").to_crs(\"EPSG:4326\")\n",
- "\n",
- "BUILDINGS_OSM = geopandas.sjoin(BUILDINGS_OSM, GAZA)\n",
- "BUILDINGS_OSM[\"type\"] = BUILDINGS_OSM[\"type\"].fillna(\"\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "def get_damage_percentage(BUILDINGS_OSM):\n",
- " left = (\n",
- " BUILDINGS_OSM[BUILDINGS_OSM[\"_up7mean\"] >= 0.2]\n",
- " .value_counts([\"ADM2_EN\", \"type\"])\n",
- " .to_frame(\"damaged\")\n",
- " )\n",
- " right = BUILDINGS_OSM.value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"total\")\n",
- "\n",
- " df = pd.merge(left, right, on=[\"ADM2_EN\", \"type\"]).reset_index()\n",
- " df[\"perc\"] = 100 * df[\"damaged\"] / df[\"total\"]\n",
- "\n",
- " sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- " df[\"ADM2_EN\"] = pd.Categorical(df[\"ADM2_EN\"], categories=sort_order, ordered=True)\n",
- " df.sort_values(by=\"ADM2_EN\", inplace=True, ascending=False)\n",
- "\n",
- " return df"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 60,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "residential = BUILDINGS_OSM[\n",
- " BUILDINGS_OSM[\"type\"].isin([\"house\", \"apartments\", \"residential\", \"yes;house\"])\n",
- "]\n",
- "places_of_worship = BUILDINGS_OSM[\n",
- " BUILDINGS_OSM[\"type\"].isin([\"religious\", \"mosque\", \"church\"])\n",
- "]\n",
- "\n",
- "residential.loc[:, \"type\"] = \"residential\"\n",
- "residential = get_damage_percentage(residential)\n",
- "\n",
- "places_of_worship.loc[:, \"type\"] = \"places_of_worship\"\n",
- "places_of_worship = get_damage_percentage(places_of_worship)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 61,
- "metadata": {
- "tags": [
- "remove-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:34:15.606567 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " residential.pivot_table(\"damaged\", \"ADM2_EN\", \"type\", observed=False).sort_values(\n",
- " by=\"ADM2_EN\", ascending=False\n",
- " )[\"residential\"]\n",
- ")\n",
- "\n",
- "fig, ax = plt.subplots(figsize=(12, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Residential Buildings Damaged as of February 2nd 2024\",\n",
- " y=1.03,\n",
- " fontsize=20,\n",
- " x=0.57,\n",
- ")\n",
- "\n",
- "ax = (\n",
- " residential.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[[\"residential\"]]\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(kind=\"barh\", legend=False, ax=ax)\n",
- ")\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute number) of residential buildings damaged in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Residential Buildings Damaged\", fontsize=12)\n",
- "\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "\n",
- "ax.grid(axis=\"x\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend()\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )\n",
- "\n",
- "\n",
- "ax.text(\n",
- " 0,\n",
- " -0.23,\n",
- " \"On X: Percentage of residential buildings damaged. Inside Bar: Absolute number of residential buildings damaged On Y: Governorate from North to South. \\nResidential buildings include all buildings tagged as 'residential', 'apartments' and 'houses' in the OpenStreetMap database\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ");"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Observations and Limitations\n",
- "\n",
- "* More than 60% of residential buildings in Gaza, the second province from north, can be considered damaged. However, in absolute numbers, Khan Younis has the most number of damaged residential buildings. \n",
- "* Residential buildings reported here include all th buildings atagged as 'residential', 'apartments' and 'houses'.\n",
- "* In the OpenStreetMap database, Deir Al-Balah has 717 reported residential buildings. Khan Younis has 1027, Gaza has 606, North Gaza has 491 and Rafah has 150 reported residential buildings. \n",
- "* Khan Younis was declared an evacuation zone by the Israeli Armed Forces which could be a potential rason for the high number of damaged buildings. "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of Places of Worship Damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 81,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:36:31.705676 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(14, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Places of Worship Damaged as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.49,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " places_of_worship.pivot_table(\n",
- " \"damaged\", \"ADM2_EN\", \"type\", observed=False\n",
- " ).sort_values(by=\"ADM2_EN\", ascending=False)[\"places_of_worship\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " places_of_worship.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[\n",
- " [\"places_of_worship\"]\n",
- " ]\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(ax=ax, kind=\"barh\", legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Places of Worship Damaged\", fontsize=12)\n",
- "\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "\n",
- "ax.grid(axis=\"x\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend()\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute number) of places of worship damaged in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.23,\n",
- " \"On X: Percentage of places of worship damaged. Inside Bar: Absolute number of places of worship damaged On Y: Governorate from North to South. \\nPlaces of worship include all points tagged as 'mosque', 'church' and 'religious'. 99% of the dataset is of mosques alone.\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Observations and Limitations\n",
- "\n",
- "* Gaza had the biggest hit on places of worship both in terms of percentage and abolute numbers. \n",
- "* There are a total of 58 reported places of worship in Gaza, North Gaza has 25, Deir Al-Balah has 20, Khan Younis has 34 and Rafah has 20.\n",
- "* There are no reported synagogues. \n",
- "* Gaza also has 195 reported ruins, of which 141 (72%) are damaged"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of People Living in Neighborhoods with Damaged Buildings"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "from shapely.geometry import Point\n",
- "\n",
- "\n",
- "def convert_to_gdf(df, X=None, Y=None):\n",
- " if \"latitude\" in df.columns:\n",
- " geometry = [Point(xy) for xy in zip(df.longitude, df.latitude)]\n",
- " gdf = geopandas.GeoDataFrame(df, crs=\"EPSG:4326\", geometry=geometry)\n",
- " else:\n",
- " geometry = [Point(xy) for xy in zip(df[Y], df[X])]\n",
- " gdf = geopandas.GeoDataFrame(df, crs=\"EPSG:4326\", geometry=geometry)\n",
- "\n",
- " return gdf"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POPULATION = pd.read_csv(\n",
- " \"../../data/population/pse_pd_2020_1km_UNadj_ASCII_XYZ/pse_pd_2020_1km_UNadj_ASCII_XYZ.csv\"\n",
- ")\n",
- "POPULATION = convert_to_gdf(POPULATION, \"Y\", \"X\")\n",
- "\n",
- "POPULATION = POPULATION.sjoin(GAZA)\n",
- "POPULATION = POPULATION[POPULATION[\"ADM1_EN\"] == \"Gaza Strip\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "c:\\Users\\sahit\\anaconda3\\envs\\conflict-analyses\\lib\\site-packages\\geopandas\\geoseries.py:645: FutureWarning: the convert_dtype parameter is deprecated and will be removed in a future version. Do ``ser.astype(object).apply()`` instead if you want ``convert_dtype=False``.\n",
- " result = super().apply(func, convert_dtype=convert_dtype, args=args, **kwargs)\n"
- ]
- }
- ],
- "source": [
- "from shapely.geometry import box\n",
- "\n",
- "\n",
- "# Function to create a 1 km^2 box around a point\n",
- "def create_square_km_box(point):\n",
- " lat, lon = point.y, point.x\n",
- " km_in_deg_lat = 1 / 111.32 # 1 km in degrees latitude\n",
- " km_in_deg_lon = 1 / (\n",
- " 111.32 * math.cos(math.radians(lat))\n",
- " ) # 1 km in degrees longitude at this latitude\n",
- "\n",
- " # Define the bottom left and top right coordinates of the box\n",
- " bottom_left = (lon - km_in_deg_lon / 2, lat - km_in_deg_lat / 2)\n",
- " top_right = (lon + km_in_deg_lon / 2, lat + km_in_deg_lat / 2)\n",
- "\n",
- " # Create and return the box\n",
- " return box(*bottom_left, *top_right)\n",
- "\n",
- "\n",
- "POPULATION[\"geometry\"] = POPULATION[\"geometry\"].apply(create_square_km_box)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 63,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "# POPULATION.drop(columns = 'index_right', inplace=True)\n",
- "# BUILDINGS_OSM.drop(columns = 'index_right', inplace=True)\n",
- "population_impacted = POPULATION[\n",
- " [\n",
- " \"X\",\n",
- " \"Y\",\n",
- " \"Z\",\n",
- " \"geometry\",\n",
- " \"ADM2_EN\",\n",
- " \"ADM2_PCODE\",\n",
- " \"ADM1_EN\",\n",
- " \"ADM1_PCODE\",\n",
- " \"ADM0_EN\",\n",
- " \"ADM0_PCODE\",\n",
- " ]\n",
- "].sjoin(\n",
- " BUILDINGS_OSM[\n",
- " BUILDINGS_OSM[\"type\"].isin([\"residential\", \"house\", \"apartments\", \"yes;house\"])\n",
- " ][\n",
- " [\n",
- " \"osm_id\",\n",
- " \"code\",\n",
- " \"fclass\",\n",
- " \"name\",\n",
- " \"type\",\n",
- " \"_max\",\n",
- " \"area\",\n",
- " \"_landusefc\",\n",
- " \"_up7mean\",\n",
- " \"geometry\",\n",
- " ]\n",
- " ]\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 64,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "left = POPULATION[[\"X\", \"Y\", \"Z\", \"ADM2_EN\", \"ADM1_EN\", \"ADM0_EN\"]]\n",
- "\n",
- "# Getting the average damage value for each point\n",
- "right = (\n",
- " population_impacted[[\"X\", \"Y\", \"Z\", \"_up7mean\"]]\n",
- " .groupby([\"X\", \"Y\", \"Z\"])\n",
- " .mean()\n",
- " .reset_index()\n",
- ")\n",
- "\n",
- "population_impacted = left.merge(right, on=[\"X\", \"Y\", \"Z\"])\n",
- "\n",
- "# Threshold for damage\n",
- "population_impacted = population_impacted[population_impacted[\"_up7mean\"] > 0.2]\n",
- "\n",
- "# Grouping by admin region and getting people living in damaged regions\n",
- "population_impacted = (\n",
- " population_impacted.groupby([\"ADM0_EN\", \"ADM1_EN\", \"ADM2_EN\"])[[\"Z\"]]\n",
- " .sum()\n",
- " .reset_index()\n",
- ")\n",
- "population_impacted.rename(columns={\"Z\": \"damage_population\"}, inplace=True)\n",
- "\n",
- "left = (\n",
- " POPULATION[[\"X\", \"Y\", \"Z\", \"ADM2_EN\", \"ADM1_EN\", \"ADM0_EN\"]]\n",
- " .groupby([\"ADM0_EN\", \"ADM1_EN\", \"ADM2_EN\"])[[\"Z\"]]\n",
- " .sum()\n",
- " .reset_index()\n",
- ")\n",
- "left.rename(columns={\"Z\": \"total_population\"}, inplace=True)\n",
- "\n",
- "population_impacted = left.merge(\n",
- " population_impacted, on=[\"ADM0_EN\", \"ADM1_EN\", \"ADM2_EN\"]\n",
- ")\n",
- "\n",
- "population_impacted[\"perc\"] = (\n",
- " 100\n",
- " * population_impacted[\"damage_population\"]\n",
- " / population_impacted[\"total_population\"]\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 65,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "population_impacted[\"ADM2_EN\"] = pd.Categorical(\n",
- " population_impacted[\"ADM2_EN\"], categories=sort_order, ordered=True\n",
- ")\n",
- "population_impacted.sort_values(by=\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 76,
- "metadata": {
- "tags": [
- "remove-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:35:53.598202 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(14, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage People Living in Neighborhoods with Damaged Buildings as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.62,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " population_impacted.pivot_table(\n",
- " \"damage_population\", \"ADM2_EN\", observed=False\n",
- " ).sort_values(by=\"ADM2_EN\", ascending=False)[\"damage_population\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " population_impacted[[\"ADM2_EN\", \"perc\"]]\n",
- " .pivot_table(\"perc\", \"ADM2_EN\", observed=False)\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(\n",
- " ax=ax,\n",
- " kind=\"barh\",\n",
- " legend=False, # color=['#D62728', '#FF7F0E', '#9467BD', '#17BECF']\n",
- " )\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% People living in neighborhoods with damaged buildings\", fontsize=12)\n",
- "# ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of people living in neighborhoods with damaged buildings in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.18,\n",
- " \"On X: Percentage of people living in neighborhoods with damaged buildings. Inside Bar: Absolute number of people living in said neighborhoods On Y: Governorate from North to South. \\nSource: Damage estimates are from World Bank calculations derived from OpenStreetMap and Sentinel-1 data. Population desntiy estimates from WorldPop.\\nSize of each neighborhood is considered to be a 1km*1km grid. Damage estimates for the neighborhood are considered as average damage estimate of all buildings within the grid. \",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=11,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{absolute_damage_numbers[id] / 1_000:.0f}k\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Observations \n",
- "\n",
- "* Both North Gaza (523k) and Gaza (869k) have higher population than Khan Younis (476k). This is a potential reason for why the damage is higher in Khan Younis but the people impacted are greater in the other two administrative regions.\n",
- "* The population numbers are derived from WorldPop which uses machine learning code to distribute population density top-down. This means that sometimes, in areas where there are fewer people, the number reported in WorldPop could be higher and vice versa. Therefore, the numbers reported here are the best approximation we can make with the data available. "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of Schools and Public Amenities Damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POI = geopandas.read_file(\n",
- " \"../../data/damage_assessment/delivery8_2Feb2024/vectors/2.5sigma/damaged_pois_1_02Feb2024_2_5sigma.shp\"\n",
- ").to_crs(\"EPSG:4326\")\n",
- "\n",
- "POI = geopandas.sjoin(POI, GAZA)\n",
- "POI[\"fclass\"] = POI[\"fclass\"].fillna(\"\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "def get_poi_classification(fclass):\n",
- " if fclass in [\n",
- " \"school\",\n",
- " \"kindergarten\",\n",
- " \"university\",\n",
- " \"college\",\n",
- " ]:\n",
- " return \"Education\"\n",
- " if fclass in [\n",
- " \"tower\",\n",
- " \"wastewater_plant\",\n",
- " \"water_tower\",\n",
- " \"telephone\",\n",
- " \"water_well\",\n",
- " \"drinking_water\",\n",
- " \"recycling\",\n",
- " ]:\n",
- " return \"Infrastructure\"\n",
- " if fclass in [\n",
- " \"pharmacy\",\n",
- " \"dentist\",\n",
- " \"doctors\",\n",
- " \"hospital\",\n",
- " \"clinic\",\n",
- " \"nursing_home\",\n",
- " ]:\n",
- " return \"Health\"\n",
- " if fclass in [\n",
- " \"public_building\",\n",
- " \"police\",\n",
- " \"courthouse\",\n",
- " \"library\",\n",
- " \"monument\",\n",
- " \"post_office\",\n",
- " \"memorial\",\n",
- " \"community_centre\",\n",
- " \"town_hall\",\n",
- " \"museum\",\n",
- " \"arts_centre\",\n",
- " \"sports_centre\",\n",
- " \"tourist_info\",\n",
- " \"fire_station\",\n",
- " ]:\n",
- " return \"Public Amenities\"\n",
- "\n",
- " elif fclass in [\n",
- " \"clothes\",\n",
- " \"supermarket\",\n",
- " \"restaurant\",\n",
- " \"laundry\",\n",
- " \"cafe\",\n",
- " \"computer_shop\",\n",
- " \"convenience\",\n",
- " \"furniture_shop\",\n",
- " \"shoe_shop\",\n",
- " \"bakery\",\n",
- " \"hotel\",\n",
- " \"hairdresser\",\n",
- " \"fast_food\",\n",
- " \"bank\",\n",
- " \"viewpoint\",\n",
- " \"artwork\",\n",
- " \"picnic_site\",\n",
- " \"chalet\",\n",
- " \"caravan_site\",\n",
- " \"greengrocer\",\n",
- " \"beauty_shop\",\n",
- " \"car_dealership\",\n",
- " \"attraction\",\n",
- " \"pub\",\n",
- " \"waste_basket\",\n",
- " \"nightclub\",\n",
- " \"playground\",\n",
- " \"department_store\",\n",
- " \"outdoor_shop\",\n",
- " \"atm\",\n",
- " \"butcher\",\n",
- " \"car_rental\",\n",
- " \"doityourself\",\n",
- " \"guesthouse\",\n",
- " \"beverages\",\n",
- " \"theatre\",\n",
- " \"newsagent\",\n",
- " \"cinema\",\n",
- " \"mobile_phone_shop\",\n",
- " \"car_wash\",\n",
- " \"bookshop\",\n",
- " \"hostel\",\n",
- " \"sports_shop\",\n",
- " \"castle\",\n",
- " \"pitch\",\n",
- " \"car_sharing\",\n",
- " \"vending_machine\",\n",
- " \"food_court\",\n",
- " \"gift_shop\",\n",
- " \"camp_site\",\n",
- " \"veterinary\",\n",
- " \"post_box\",\n",
- " \"florist\",\n",
- " \"jeweller\",\n",
- " \"chemist\",\n",
- " \"motel\",\n",
- " \"alpine_hut\",\n",
- " \"mall\",\n",
- " \"kiosk\",\n",
- " \"bicycle_shop\",\n",
- " \"bench\",\n",
- " \"optician\",\n",
- " \"travel_agent\",\n",
- " \"biergarten\",\n",
- " \"toy_shop\",\n",
- " \"bar\",\n",
- " \"fountain\",\n",
- " \"archaeological\",\n",
- " \"shelter\",\n",
- " \"park\",\n",
- " \"stationery\",\n",
- " \"market_place\",\n",
- " \"zoo\",\n",
- " ]:\n",
- " return \"Places of Economic Activity\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POI[\"type\"] = POI[\"fclass\"].apply(get_poi_classification)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 67,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "left = POI[POI[\"_up7max\"] >= 0.5].value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"damaged\")\n",
- "right = POI.value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"total\")\n",
- "\n",
- "df = pd.merge(left, right, on=[\"ADM2_EN\", \"type\"]).reset_index()\n",
- "df[\"perc\"] = 100 * df[\"damaged\"] / df[\"total\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 68,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "df[\"ADM2_EN\"] = pd.Categorical(df[\"ADM2_EN\"], categories=sort_order, ordered=True)\n",
- "df.sort_values(by=\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 69,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "education = df[df[\"type\"] == \"Education\"]\n",
- "# education = education.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[['Education']].sort_values(by='ADM2_EN', ascending = False)\n",
- "education = education[[\"ADM2_EN\", \"damaged\", \"total\", \"perc\"]]\n",
- "\n",
- "\n",
- "public_amenities = df[df[\"type\"] == \"Education\"]\n",
- "# education = education.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[['Education']].sort_values(by='ADM2_EN', ascending = False)\n",
- "public_amenities = public_amenities[[\"ADM2_EN\", \"damaged\", \"total\", \"perc\"]]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 73,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:35:21.577339 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6), dpi=300)\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Places of Education Damaged as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.56,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " df.pivot_table(\"damaged\", \"ADM2_EN\", \"type\", observed=False).sort_values(\n",
- " by=\"ADM2_EN\", ascending=False\n",
- " )[\"Education\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " df.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[[\"Education\"]]\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors, legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Places of Education Damaged\", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of places of education damaged in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.17,\n",
- " \"On X: Percentage of places of education damaged. Inside Bar: Absolute number of places of education damaged On Y: Governorate from North to South. \\nPlaces of education consist of buildings tagged 'schools', 'colleges', 'universities', 'kindergarten'\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 85,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:37:18.580830 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(14, 6), dpi=300)\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Public Amenities Damaged as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.49,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " public_amenities.pivot_table(\"damaged\", \"ADM2_EN\", observed=False).sort_values(\n",
- " by=\"ADM2_EN\", ascending=False\n",
- " )[\"damaged\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " public_amenities.pivot_table(\"perc\", \"ADM2_EN\", observed=False)[[\"perc\"]]\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors, legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Public Amenities Damaged\", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of public amenities damaged in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.17,\n",
- " \"On X: Percentage of public amenities damaged. Inside Bar: Absolute number of public amenities damaged On Y: Governorate from North to South. \\nPublic amenities consist of 'public_building', 'police', 'courthouse', 'library', 'monument', 'post_office', 'memorial', 'community_centre', 'town_hall', 'museum', 'arts_centre', 'sports_centre', 'tourist_info', 'fire_station'\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of Residential Buildings without Observed Nighttime Lights\n",
- "\n",
- "Lower nighttime lights intensity indicative of darker areas may correspond to higher numbers of residential buildings without electricity. The chart below shows the percentage of residential buildings retrieved from [OpenStreetMap](https://www.hotosm.org) for which the nighttime lights intensity has decreased as of December 2023 by at least 95% compared to September 2023 for each governorate in Gaza."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T08:05:31.177485 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Residential Buildings without Observed Nighttime Lights\",\n",
- " y=1.01,\n",
- " fontsize=20,\n",
- " x=0.45,\n",
- ")\n",
- "\n",
- "data = pd.read_csv(\n",
- " \"../../data/ntl/PSE_2-buildings_without_electricity.csv\", index_col=\"name\"\n",
- ")[[\"% residential buildings without electricity\"]].plot(\n",
- " ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors[1], legend=False\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% residential buildings without electricity \", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "\n",
- "# ax.set_title(\n",
- "# \"Estimated percentage of buildings without electricity for each governorate\",\n",
- "# fontsize=14,\n",
- "# )\n",
- "ax.text(\n",
- " 0,\n",
- " -0.13,\n",
- " \"Source: World Bank calculations derived from NASA Black Marble and OpenStreetMap data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ");"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "# population_impacted.rename(columns = {'perc':'% Population in Neighborhoods with Damaged Buildings','damage_population':'People in Neighborhoods with Damaged Buildings'}, inplace=True)\n",
- "residential.rename(\n",
- " columns={\n",
- " \"damaged\": \"Number of Residential Buildings Damaged\",\n",
- " \"total\": \"residential_total\",\n",
- " \"perc\": \"% Residential Buildings Damaged\",\n",
- " },\n",
- " inplace=True,\n",
- ")\n",
- "places_of_worship.rename(\n",
- " columns={\n",
- " \"damaged\": \"Number of Places of Worship Damaged\",\n",
- " \"total\": \"places_of_worship_total\",\n",
- " \"perc\": \"% Places of Worship Damaged\",\n",
- " },\n",
- " inplace=True,\n",
- ")\n",
- "education.rename(\n",
- " columns={\n",
- " \"damaged\": \"Number of Places of Education Damaged\",\n",
- " \"total\": \"education_total\",\n",
- " \"perc\": \"% Places of Education Damaged\",\n",
- " },\n",
- " inplace=True,\n",
- ")\n",
- "public_amenities.rename(\n",
- " columns={\n",
- " \"damaged\": \"Number of Public Amenities Damaged\",\n",
- " \"total\": \"public_amenities_total\",\n",
- " \"perc\": \"% Public Amenities Damaged\",\n",
- " },\n",
- " inplace=True,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 37,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "ntl = pd.read_csv(\n",
- " \"../../data/ntl/PSE_2-buildings_without_electricity.csv\", index_col=\"name\"\n",
- ")[[\"% residential buildings without electricity\"]]\n",
- "ntl.rename(\n",
- " columns={\n",
- " \"% residential buildings without electricity\": \"% Residential Buildings without Observed Nighttime Lights\"\n",
- " },\n",
- " inplace=True,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 38,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "ntl = ntl.reset_index()\n",
- "ntl.rename(columns={\"name\": \"ADM2_EN\"}, inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 39,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "from functools import reduce\n",
- "\n",
- "summary_stats_list = [\n",
- " residential,\n",
- " places_of_worship,\n",
- " population_impacted,\n",
- " education,\n",
- " public_amenities,\n",
- " ntl,\n",
- "]\n",
- "summary_stats = reduce(\n",
- " lambda left, right: pd.merge(left, right, on=\"ADM2_EN\", how=\"outer\"),\n",
- " summary_stats_list,\n",
- ")\n",
- "\n",
- "summary_stats.drop(columns=[\"type_x\", \"type_y\"], inplace=True)\n",
- "\n",
- "summary_stats.set_index(\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "summary_stats.to_csv(\"../../data/summary_stats_housing_community.csv\")"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "lebanon-economic-monitor",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.12"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/reports/sample-indicators/industry-and-commerce.ipynb b/reports/sample-indicators/industry-and-commerce.ipynb
deleted file mode 100644
index d506468..0000000
--- a/reports/sample-indicators/industry-and-commerce.ipynb
+++ /dev/null
@@ -1,13879 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Impact on Industry and Commerce\n",
- "\n",
- "* Percentage of commercial and commericial buildings damaged\n",
- "* Percentage of commercial and industrial buildings without electricity \n",
- "* Percentage of places of economic activity damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "import geopandas\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "from matplotlib.ticker import FuncFormatter\n",
- "from palettable.tableau import ColorBlind_10, TableauMedium_10\n",
- "\n",
- "%config InlineBackend.figure_formats = ['svg']\n",
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Overall Impact on Industry and Commerce"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 197,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "summary_stats.reset_index(inplace=True)\n",
- "summary_stats[\"ADM2_EN\"] = pd.Categorical(\n",
- " summary_stats[\"ADM2_EN\"], categories=sort_order, ordered=True\n",
- ")\n",
- "summary_stats.sort_values(by=\"ADM2_EN\", inplace=True)\n",
- "summary_stats.rename(columns={\"ADM2_EN\": \"Governorate\"}, inplace=True)\n",
- "summary_stats.set_index(\"Governorate\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 183,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " % Commercial Buildings Damaged \n",
- " % Industrial Buildings Damaged \n",
- " % Critical Infrastructure Damaged \n",
- " % Places of Economic Activity Damaged \n",
- " % Industrial Buildings without Observed Nighttime Lights \n",
- " % Commercial Buildings without Observed Nighttime Lights \n",
- " % Primary and Secondary Roads Damaged \n",
- " \n",
- " \n",
- " Governorate \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " North Gaza \n",
- " 50% \n",
- " 63% \n",
- " 49% \n",
- " 66% \n",
- " 29% \n",
- " 67% \n",
- " 63% \n",
- " \n",
- " \n",
- " Gaza \n",
- " 86% \n",
- " 59% \n",
- " 71% \n",
- " 76% \n",
- " 49% \n",
- " 96% \n",
- " 63% \n",
- " \n",
- " \n",
- " Deir Al-Balah \n",
- " 33% \n",
- " 40% \n",
- " 56% \n",
- " 34% \n",
- " 83% \n",
- " 100% \n",
- " 20% \n",
- " \n",
- " \n",
- " Khan Younis \n",
- " 50% \n",
- " 34% \n",
- " 46% \n",
- " 44% \n",
- " 49% \n",
- " 100% \n",
- " 29% \n",
- " \n",
- " \n",
- " Rafah \n",
- " 30% \n",
- " 44% \n",
- " 55% \n",
- " 49% \n",
- " nan% \n",
- " nan% \n",
- " 33% \n",
- " \n",
- " \n",
- "
\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 183,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "summary_stats[\n",
- " [\n",
- " \"% Commercial Buildings Damaged\",\n",
- " \"% Industrial Buildings Damaged\",\n",
- " \"% Critical Infrastructure Damaged\",\n",
- " \"% Places of Economic Activity Damaged\",\n",
- " \"% Industrial Buildings without Observed Nighttime Lights\",\n",
- " \"% Commercial Buildings without Observed Nighttime Lights\",\n",
- " \"% Primary and Secondary Roads Damaged\",\n",
- " ]\n",
- "].style.background_gradient(cmap=\"viridis\", axis=0).format(\"{:.0f}%\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Observations\n",
- "\n",
- "* The Governorate of Gaza has seen the highest impact for industry and commerce.\n",
- "* North Gaza has the second highest amount of roads damaged both in absolute figures and percentage values.\n",
- "* While some of the industrial buildings are damaged, a higher percentage of them do not have oberserved nighttime lights. This could slow down economic activity significantly.\n",
- "* Critical Infrstructure Points consist of telecommunication towers, drinking water wells and waste treatment plants. The damage to these points could imply a hit on access to drinking water for the people in Gaza. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 202,
- "metadata": {
- "tags": [
- "remove-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " Number of Commercial Buildings Damaged \n",
- " Number of Industrial Buildings Damaged \n",
- " Number of Points of Critical Infrastructure Damaged \n",
- " Number of Places of Economic Activity Damaged \n",
- " Primary and Secondary Damaged Roads (in km) \n",
- " \n",
- " \n",
- " Governorate \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " North Gaza \n",
- " 1 \n",
- " 152 \n",
- " 25 \n",
- " 318 \n",
- " 3527 \n",
- " \n",
- " \n",
- " Gaza \n",
- " 18 \n",
- " 277 \n",
- " 35 \n",
- " 957 \n",
- " 12733 \n",
- " \n",
- " \n",
- " Deir Al-Balah \n",
- " 1 \n",
- " 78 \n",
- " 14 \n",
- " 191 \n",
- " 374 \n",
- " \n",
- " \n",
- " Khan Younis \n",
- " 3 \n",
- " 40 \n",
- " 18 \n",
- " 195 \n",
- " 2062 \n",
- " \n",
- " \n",
- " Rafah \n",
- " 3 \n",
- " 26 \n",
- " 12 \n",
- " 74 \n",
- " 2190 \n",
- " \n",
- " \n",
- "
\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 202,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "summary_stats[\n",
- " [\n",
- " \"Number of Commercial Buildings Damaged\",\n",
- " \"Number of Industrial Buildings Damaged\",\n",
- " \"Number of Points of Critical Infrastructure Damaged\",\n",
- " \"Number of Places of Economic Activity Damaged\",\n",
- " \"Primary and Secondary Damaged Roads (in km)\",\n",
- " ]\n",
- "].style.background_gradient(cmap=\"viridis\", axis=0).format(\"{:.0f}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "# read shapefiles\n",
- "PSE = geopandas.read_file(\n",
- " \"../../data/boundaries/pse_adm_pamop_20231019_shp/pse_admbnda_adm1_pamop_20231019.shp\"\n",
- ")\n",
- "PSE = geopandas.read_file(\n",
- " \"../../data/boundaries/pse_adm_pamop_20231019_shp/pse_admbnda_adm2_pamop_20231019.shp\"\n",
- ")\n",
- "GAZA = PSE[PSE[\"ADM1_EN\"] == \"Gaza Strip\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 208,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "BUILDINGS_OSM = geopandas.read_file(\n",
- " \"../../data/damage_assessment/delivery8_2Feb2024/vectors/2.5sigma/damaged_OSM_buildings_02Feb2024_2_5sigma.shp\"\n",
- ").to_crs(\"EPSG:4326\")\n",
- "\n",
- "BUILDINGS_OSM = geopandas.sjoin(BUILDINGS_OSM, GAZA)\n",
- "BUILDINGS_OSM[\"type\"] = BUILDINGS_OSM[\"type\"].fillna(\"\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 209,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "commerce = BUILDINGS_OSM[\n",
- " BUILDINGS_OSM[\"type\"].isin(\n",
- " [\n",
- " \"commericial\",\n",
- " \"warehouse\",\n",
- " \"retail\",\n",
- " \"service\",\n",
- " \"hotel\",\n",
- " \"yes;commercial\",\n",
- " \"garage\",\n",
- " ]\n",
- " )\n",
- "]\n",
- "industry = BUILDINGS_OSM[\n",
- " BUILDINGS_OSM[\"type\"].isin([\"industry\", \"construction\", \"industrial\"])\n",
- "]\n",
- "\n",
- "commerce.loc[:, \"type\"] = \"commercial\"\n",
- "industry.loc[:, \"type\"] = \"industry\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 210,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "def get_percentage(industry_and_commerce):\n",
- " left = (\n",
- " industry_and_commerce[industry_and_commerce[\"_up7mean\"] >= 0.2]\n",
- " .value_counts([\"ADM2_EN\", \"type\"])\n",
- " .to_frame(\"damaged\")\n",
- " )\n",
- " right = industry_and_commerce.value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"total\")\n",
- "\n",
- " df = pd.merge(left, right, on=[\"ADM2_EN\", \"type\"]).reset_index()\n",
- " df[\"perc\"] = 100 * df[\"damaged\"] / df[\"total\"]\n",
- "\n",
- " sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- " df[\"ADM2_EN\"] = pd.Categorical(df[\"ADM2_EN\"], categories=sort_order, ordered=True)\n",
- " df.sort_values(by=\"ADM2_EN\", inplace=True)\n",
- "\n",
- " return df"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 211,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "industry = get_percentage(industry)\n",
- "commerce = get_percentage(commerce)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 215,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:39:52.699565 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Damaged Industrial Buildings as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.56,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " industry.pivot_table(\"damaged\", \"ADM2_EN\", \"type\", observed=False).sort_values(\n",
- " by=\"ADM2_EN\", ascending=False\n",
- " )[\"industry\"]\n",
- ")\n",
- "\n",
- "ax = (\n",
- " industry[industry[\"type\"] == \"industry\"]\n",
- " .pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)[\"industry\"]\n",
- " .plot(ax=ax, kind=\"barh\", legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Industrial Buildings Damaged\", fontsize=12)\n",
- "\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "\n",
- "ax.grid(axis=\"x\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend()\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of damaged industrial buildings in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.2,\n",
- " \"On X: Percentage of industrial buildings damaged. Inside Bar: Absolute number of industrial buildings damaged On Y: Governorate from North to South.\\nIndustrial buildings consist of buildings tagged 'industrial', 'construction'\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Observations and Limitations\n",
- "\n",
- "* The number of buildings tagged as industrial and commerical on the OpenStreetMap database are few, this could explain the high percentge of damage seen in the North Gaza Governorate. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 218,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:40:21.336653 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Damaged Commercial Buildings as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.57,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " commerce.pivot_table(\"damaged\", \"ADM2_EN\", \"type\", observed=False).sort_values(\n",
- " by=\"ADM2_EN\", ascending=False\n",
- " )[\"commercial\"]\n",
- ")\n",
- "\n",
- "ax = (\n",
- " commerce.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)[\"commercial\"]\n",
- " .plot(ax=ax, kind=\"barh\", legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Commercial Buildings Damaged\", fontsize=12)\n",
- "\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "\n",
- "ax.grid(axis=\"x\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend()\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of damaged commercial buildings in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.2,\n",
- " \"On X: Percentage of commercial buildings damaged. Inside Bar: Absolute number of commercial buildings damaged On Y: Governorate from North to South.\\nCommercial buildings consist of buildings tagged 'commercial', 'retail', 'hotel', 'service'\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of Points of Interest Damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 73,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POI = geopandas.read_file(\n",
- " \"../../data/damage_assessment/delivery8_2Feb2024/vectors/2.5sigma/damaged_pois_1_02Feb2024_2_5sigma.shp\"\n",
- ").to_crs(\"EPSG:4326\")\n",
- "\n",
- "POI = geopandas.sjoin(POI, GAZA)\n",
- "POI[\"fclass\"] = POI[\"fclass\"].fillna(\"\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 74,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "def get_poi_classification(fclass):\n",
- " if fclass in [\n",
- " \"school\",\n",
- " \"kindergarten\",\n",
- " \"university\",\n",
- " \"college\",\n",
- " ]:\n",
- " return \"Education\"\n",
- " if fclass in [\n",
- " \"tower\",\n",
- " \"wastewater_plant\",\n",
- " \"water_tower\",\n",
- " \"telephone\",\n",
- " \"water_well\",\n",
- " \"drinking_water\",\n",
- " \"recycling\",\n",
- " ]:\n",
- " return \"Critical Infrastructure\"\n",
- " if fclass in [\n",
- " \"pharmacy\",\n",
- " \"dentist\",\n",
- " \"doctors\",\n",
- " \"hospital\",\n",
- " \"clinic\",\n",
- " \"nursing_home\",\n",
- " ]:\n",
- " return \"Health\"\n",
- " if fclass in [\n",
- " \"public_building\",\n",
- " \"police\",\n",
- " \"courthouse\",\n",
- " \"library\",\n",
- " \"monument\",\n",
- " \"post_office\",\n",
- " \"memorial\",\n",
- " \"community_centre\",\n",
- " \"town_hall\",\n",
- " \"museum\",\n",
- " \"arts_centre\",\n",
- " \"sports_centre\",\n",
- " \"tourist_info\",\n",
- " \"fire_station\",\n",
- " ]:\n",
- " return \"Public Amenities\"\n",
- "\n",
- " elif fclass in [\n",
- " \"clothes\",\n",
- " \"supermarket\",\n",
- " \"restaurant\",\n",
- " \"laundry\",\n",
- " \"cafe\",\n",
- " \"computer_shop\",\n",
- " \"convenience\",\n",
- " \"furniture_shop\",\n",
- " \"shoe_shop\",\n",
- " \"bakery\",\n",
- " \"hotel\",\n",
- " \"hairdresser\",\n",
- " \"fast_food\",\n",
- " \"bank\",\n",
- " \"viewpoint\",\n",
- " \"artwork\",\n",
- " \"picnic_site\",\n",
- " \"chalet\",\n",
- " \"caravan_site\",\n",
- " \"greengrocer\",\n",
- " \"beauty_shop\",\n",
- " \"car_dealership\",\n",
- " \"attraction\",\n",
- " \"pub\",\n",
- " \"waste_basket\",\n",
- " \"nightclub\",\n",
- " \"playground\",\n",
- " \"department_store\",\n",
- " \"outdoor_shop\",\n",
- " \"atm\",\n",
- " \"butcher\",\n",
- " \"car_rental\",\n",
- " \"doityourself\",\n",
- " \"guesthouse\",\n",
- " \"beverages\",\n",
- " \"theatre\",\n",
- " \"newsagent\",\n",
- " \"cinema\",\n",
- " \"mobile_phone_shop\",\n",
- " \"car_wash\",\n",
- " \"bookshop\",\n",
- " \"hostel\",\n",
- " \"sports_shop\",\n",
- " \"castle\",\n",
- " \"pitch\",\n",
- " \"car_sharing\",\n",
- " \"vending_machine\",\n",
- " \"food_court\",\n",
- " \"gift_shop\",\n",
- " \"camp_site\",\n",
- " \"veterinary\",\n",
- " \"post_box\",\n",
- " \"florist\",\n",
- " \"jeweller\",\n",
- " \"chemist\",\n",
- " \"motel\",\n",
- " \"alpine_hut\",\n",
- " \"mall\",\n",
- " \"kiosk\",\n",
- " \"bicycle_shop\",\n",
- " \"bench\",\n",
- " \"optician\",\n",
- " \"travel_agent\",\n",
- " \"biergarten\",\n",
- " \"toy_shop\",\n",
- " \"bar\",\n",
- " \"fountain\",\n",
- " \"archaeological\",\n",
- " \"shelter\",\n",
- " \"park\",\n",
- " \"stationery\",\n",
- " \"market_place\",\n",
- " \"zoo\",\n",
- " ]:\n",
- " return \"Places of Economic Activity\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 75,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "POI[\"type\"] = POI[\"fclass\"].apply(get_poi_classification)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 219,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "left = POI[POI[\"_up7max\"] >= 0.5].value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"damaged\")\n",
- "right = POI.value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"total\")\n",
- "\n",
- "df = pd.merge(left, right, on=[\"ADM2_EN\", \"type\"]).reset_index()\n",
- "df[\"perc\"] = 100 * df[\"damaged\"] / df[\"total\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 220,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "df[\"ADM2_EN\"] = pd.Categorical(df[\"ADM2_EN\"], categories=sort_order, ordered=True)\n",
- "df.sort_values(by=\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 221,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "economy = df[df[\"type\"] == \"Places of Economic Activity\"]\n",
- "# education = education.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[['Education']].sort_values(by='ADM2_EN', ascending = False)\n",
- "economy = economy[[\"ADM2_EN\", \"damaged\", \"total\", \"perc\"]]\n",
- "\n",
- "\n",
- "critical_infrastructure = df[df[\"type\"] == \"Critical Infrastructure\"]\n",
- "# education = education.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)[['Education']].sort_values(by='ADM2_EN', ascending = False)\n",
- "critical_infrastructure = critical_infrastructure[\n",
- " [\"ADM2_EN\", \"damaged\", \"total\", \"perc\"]\n",
- "]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 222,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "economy[\"ADM2_EN\"] = pd.Categorical(\n",
- " economy[\"ADM2_EN\"], categories=sort_order, ordered=True\n",
- ")\n",
- "economy.sort_values(by=\"ADM2_EN\", inplace=True)\n",
- "\n",
- "sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- "critical_infrastructure[\"ADM2_EN\"] = pd.Categorical(\n",
- " critical_infrastructure[\"ADM2_EN\"], categories=sort_order, ordered=True\n",
- ")\n",
- "critical_infrastructure.sort_values(by=\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 237,
- "metadata": {
- "scrolled": true,
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:57:40.008394 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6), dpi=300)\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Places of Economic Activity Damaged as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.6,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " economy.pivot_table(\"damaged\", \"ADM2_EN\", observed=False)[\"damaged\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " economy.pivot_table(\"perc\", \"ADM2_EN\", observed=False)[[\"perc\"]]\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors, legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Places of Economic Activity Damaged\", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of Places of Economic Activity damaged in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.17,\n",
- " \"On X: Percentage of Places of Economic Activity damaged. Inside Bar: Absolute number of Places of Economic Activity damaged On Y: Governorate from North to South. \\nCritical infrastructure consists of points tagged as 'tower', 'wastewater_plant', 'water_tower', 'telephone', 'water_well', 'drinking_water', 'recycling'\\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Observations and Limitations\n",
- "\n",
- "* The damage to places of economic activity could mean the loss of access to essential supplies, food, public recreation spots, electronic stores and more. \n",
- "* Although Khan Younis has slightly over 40% of points damaged, but there are 957 different locations that were damaged. \n",
- "\n",
- "\n",
- "* Places of economic activity are all the points tagged as -\n",
- "\"clothes\", \"supermarket\", \"restaurant\", \"laundry\", \"cafe\", \"computer_shop\", \"convenience\", \"furniture_shop\", \"shoe_shop\", \"bakery\", \"hotel\", \"hairdresser\", \"fast_food\", \"bank\", \"viewpoint\", \"artwork\", \"picnic_site\", \"chalet\", \"caravan_site\", \"greengrocer\", \"beauty_shop\", \"car_dealership\", \"attraction\", \"pub\", \"waste_basket\", \"nightclub\", \"playground\", \"department_store\", \"outdoor_shop\", \"atm\", \"butcher\", \"car_rental\", \"doityourself\", \"guesthouse\", \"beverages\", \"theatre\", \"newsagent\", \"cinema\", \"mobile_phone_shop\", \"car_wash\", \"bookshop\", \"hostel\", \"sports_shop\", \"castle\", \"pitch\", \"car_sharing\", \"vending_machine\", \"food_court\", \"gift_shop\", \"camp_site\", \"veterinary\", \"post_box\", \"florist\", \"jeweller\", \"chemist\", \"motel\", \"alpine_hut\", \"mall\", \"kiosk\", \"bicycle_shop\", \"bench\", \"optician\", \"travel_agent\", \"biergarten\", \"toy_shop\", \"bar\", \"fountain\", \"archaeological\", \"shelter\", \"park\", \"stationery\", \"market_place\", \"zoo\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 225,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:41:24.526267 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6), dpi=300)\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Critical Infrastructure Damaged as of February 2nd 2024\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.57,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " critical_infrastructure.pivot_table(\n",
- " \"damaged\", \"ADM2_EN\", observed=False\n",
- " ).sort_values(by=\"ADM2_EN\", ascending=False)[\"damaged\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " critical_infrastructure.pivot_table(\"perc\", \"ADM2_EN\", observed=False)[[\"perc\"]]\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors, legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Critical Infrastructure Damaged\", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers) of critical infrastructure damaged in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.14,\n",
- " \"On X: Percentage of Critical Infrastructure damaged. Inside Bar: Absolute number of Critical Infrastructure damaged On Y: Governorate from North to South. \\nSource: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": ""
- },
- "tags": []
- },
- "source": [
- "## Percentage of Industrial and Commerical Buildings without Observed Nighttime Lights\n",
- "\n",
- "Lower nighttime lights intensity indicative of darker areas may correspond to higher numbers of residential buildings without electricity. The chart below shows the percentage of residential buildings retrieved from [OpenStreetMap](https://www.hotosm.org) for which the nighttime lights intensity has decreased as of December 2023 by at least 95% compared to September 2023 for each governorate in Gaza."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 234,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "ntl = pd.read_csv(\n",
- " \"../../data/ntl/PSE_2-buildings_without_electricity.csv\", index_col=\"name\"\n",
- ")[\n",
- " [\n",
- " \"% industrial buildings without electricity\",\n",
- " \"% commercial buildings without electricity\",\n",
- " ]\n",
- "]\n",
- "ntl.rename(\n",
- " columns={\n",
- " \"% industrial buildings without electricity\": \"industrial\",\n",
- " \"% commercial buildings without electricity\": \"commercial\",\n",
- " },\n",
- " inplace=True,\n",
- ")\n",
- "\n",
- "ntl = ntl.reset_index()\n",
- "ntl.rename(columns={\"name\": \"ADM2_EN\"}, inplace=True)\n",
- "ntl.set_index(\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 235,
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": ""
- },
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T10:46:28.310746 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Industrial and Commerical Buildings without Observed Nighttime Lights\",\n",
- " y=0.99,\n",
- " fontsize=20,\n",
- " x=0.66,\n",
- ")\n",
- "\n",
- "data = ntl[[\"industrial\", \"commercial\"]].plot(\n",
- " ax=ax, kind=\"barh\", color=TableauMedium_10.mpl_colors\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% buildings without electricity \", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "\n",
- "# ax.set_title(\n",
- "# \"Estimated percentage of buildings without electricity for each governorate\",\n",
- "# fontsize=14,\n",
- "# )\n",
- "ax.text(\n",
- " 0,\n",
- " -0.12,\n",
- " \"Source: World Bank calculations derived from NASA Black Marble and OpenStreetMap data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ");"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "editable": true,
- "slideshow": {
- "slide_type": ""
- },
- "tags": []
- },
- "source": [
- "```{warning}\n",
- "It's important to be aware of the limitations and potential inaccuracies associated with using OpenStreetMap (OSM) data for analysis. While OSM provides a valuable source of geographic information, it may not always be comprehensive or up-to-date. Additionally, the granularity of OSM data can vary, leading to coarse sample sizes in certain regions. Failure to account for these limitations could result in misleading conclusions or ineffective strategies.\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Percentage of Primary and Secondary Roads Damaged"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 120,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "ROADS = geopandas.read_file(\n",
- " \"../../data/damage_assessment/delivery8_2Feb2024/vectors/2.5sigma/damaged_roads_lines_02Feb2024_2_5sigma.shp\"\n",
- ").to_crs(\"EPSG:4326\")\n",
- "\n",
- "ROADS = geopandas.sjoin(ROADS, GAZA)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 122,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "mapper = {\n",
- " \"track\": \"Tracks\",\n",
- " \"unclassified\": \"Unclassified\",\n",
- " \"residential\": \"Other\",\n",
- " \"tertiary\": \"Tertiary\",\n",
- " \"service\": \"Other\",\n",
- " \"secondary\": \"Secondary\",\n",
- " \"track_grade3\": \"Tracks\",\n",
- " \"track_grade5\": \"Tracks\",\n",
- " \"trunk\": \"Other\",\n",
- " \"path\": \"Other\",\n",
- " \"track_grade4\": \"Tracks\",\n",
- " \"primary\": \"Primary\",\n",
- " \"secondary_link\": \"Secondary\",\n",
- " \"footway\": \"Other\",\n",
- " \"steps\": \"Other\",\n",
- " \"tertiary_link\": \"Tertiary\",\n",
- " \"trunk_link\": \"Other\",\n",
- " \"pedestrian\": \"Other\",\n",
- " \"primary_link\": \"Primary\",\n",
- " \"living_street\": \"Other\",\n",
- " \"unknown\": \"Unclassified\",\n",
- " \"track_grade1\": \"Tracks\",\n",
- "}\n",
- "ROADS[\"type\"] = ROADS[\"fclass\"].replace(mapper)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 226,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "def get_percentage(ROADS):\n",
- " left = (\n",
- " ROADS[ROADS[\"_up7max\"] >= 0.5]\n",
- " .value_counts([\"ADM2_EN\", \"type\"])\n",
- " .to_frame(\"damaged\")\n",
- " )\n",
- " right = ROADS.value_counts([\"ADM2_EN\", \"type\"]).to_frame(\"total\")\n",
- "\n",
- " df = pd.merge(left, right, on=[\"ADM2_EN\", \"type\"]).reset_index()\n",
- " df[\"perc\"] = 100 * df[\"damaged\"] / df[\"total\"]\n",
- "\n",
- " sort_order = [\"North Gaza\", \"Gaza\", \"Deir Al-Balah\", \"Khan Younis\", \"Rafah\"]\n",
- " df[\"ADM2_EN\"] = pd.Categorical(df[\"ADM2_EN\"], categories=sort_order, ordered=True)\n",
- " df.sort_values(by=\"ADM2_EN\", inplace=True, ascending=True)\n",
- "\n",
- " return df"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 227,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "primary_secondary_roads = ROADS[ROADS[\"type\"].isin([\"Primary\", \"Secondary\"])]\n",
- "primary_secondary_roads.loc[:, \"type\"] = \"Primary and Secondary\"\n",
- "\n",
- "primary_secondary_roads = get_percentage(primary_secondary_roads)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 241,
- "metadata": {
- "tags": [
- "hide-input"
- ]
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 2024-02-07T11:04:53.572616 \n",
- " image/svg+xml \n",
- " \n",
- " \n",
- " Matplotlib v3.7.2, https://matplotlib.org/ \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n"
- ],
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "fig, ax = plt.subplots(figsize=(12, 6))\n",
- "plt.suptitle(\n",
- " \"Gaza: Percentage of Primary and Secondary Roads Damaged as of February 2nd 2024\",\n",
- " y=0.98,\n",
- " fontsize=20,\n",
- " x=0.62,\n",
- ")\n",
- "\n",
- "absolute_damage_numbers = list(\n",
- " primary_secondary_roads.pivot_table(\n",
- " \"damaged\", \"ADM2_EN\", observed=False\n",
- " ).sort_values(by=\"ADM2_EN\", ascending=False)[\"damaged\"]\n",
- ")\n",
- "\n",
- "\n",
- "ax = (\n",
- " primary_secondary_roads.pivot_table(\"perc\", \"ADM2_EN\", \"type\", observed=False)\n",
- " .sort_values(by=\"ADM2_EN\", ascending=False)\n",
- " .plot(ax=ax, kind=\"barh\", color=ColorBlind_10.mpl_colors, legend=False)\n",
- ")\n",
- "\n",
- "# Add labels and customization\n",
- "ax.set_xlabel(\"% Primary and Secondary Roads Damaged\", fontsize=12)\n",
- "ax.xaxis.set_major_formatter(FuncFormatter(lambda y, _: \"{:.0f}%\".format(y)))\n",
- "ax.set_ylabel(\"Governorate\", fontsize=16)\n",
- "# ax.set_yticklabels(df[\"ADM2_EN\"].unique(), fontsize=12)\n",
- "ax.spines[\"right\"].set_visible(False)\n",
- "ax.spines[\"top\"].set_visible(False)\n",
- "\n",
- "# Only show ticks on the left and bottom spines\n",
- "ax.yaxis.set_ticks_position(\"left\")\n",
- "ax.xaxis.set_ticks_position(\"bottom\")\n",
- "ax.grid(which=\"both\", linestyle=\"--\", linewidth=0.25, color=\"gray\", alpha=0.5)\n",
- "# ax.legend(bbox_to_anchor=(1.01, 0.9))\n",
- "\n",
- "ax.set_title(\n",
- " \"Estimated percentage (and absolute numbers in km) of damaged roads in each Governorate\",\n",
- " fontsize=14,\n",
- " loc=\"left\",\n",
- ")\n",
- "ax.text(\n",
- " 0,\n",
- " -0.13,\n",
- " \"Source: World Bank calculations derived from OpenStreetMap and Sentinel-1 data.\",\n",
- " ha=\"left\",\n",
- " va=\"center\",\n",
- " transform=ax.transAxes,\n",
- " fontsize=10,\n",
- " color=\"black\",\n",
- " weight=\"normal\",\n",
- ")\n",
- "\n",
- "for id, bar in enumerate(ax.patches):\n",
- " width = bar.get_width() # Use width since the bars are horizontal\n",
- " ax.annotate(\n",
- " f\"{int(np.round(absolute_damage_numbers[id],0))}\",\n",
- " xy=(width, bar.get_y() + bar.get_height() / 2),\n",
- " xytext=(-20, 0), # Shift the text to the left of the bar's end\n",
- " textcoords=\"offset points\",\n",
- " color=\"white\",\n",
- " ha=\"right\",\n",
- " va=\"center\",\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 172,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "ntl = pd.read_csv(\n",
- " \"../../data/ntl/PSE_2-buildings_without_electricity.csv\", index_col=\"name\"\n",
- ")[\n",
- " [\n",
- " \"% industrial buildings without electricity\",\n",
- " \"% commercial buildings without electricity\",\n",
- " ]\n",
- "]\n",
- "ntl.rename(\n",
- " columns={\n",
- " \"% industrial buildings without electricity\": \"% Industrial Buildings without Observed Nighttime Lights\",\n",
- " \"% commercial buildings without electricity\": \"% Commercial Buildings without Observed Nighttime Lights\",\n",
- " },\n",
- " inplace=True,\n",
- ")\n",
- "\n",
- "ntl = ntl.reset_index()\n",
- "ntl.rename(columns={\"name\": \"ADM2_EN\"}, inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 189,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "critical_infrastructure.rename(\n",
- " columns={\n",
- " \"perc\": \"% Critical Infrastructure Damaged\",\n",
- " \"damaged\": \"Number of Points of Critical Infrastructure Damaged\",\n",
- " },\n",
- " inplace=True,\n",
- ")\n",
- "# economy.rename(columns = {'damaged':'Number of Places of Economic Activity Damaged', 'total':'economy_total', 'perc':'% Places of Economic Activity Damaged'}, inplace=True)\n",
- "# industry.rename(columns = {'damaged':'Number of Industrial Buildings Damaged', 'total':'industry_total', 'perc':'% Industrial Buildings Damaged'}, inplace=True)\n",
- "# commerce.rename(columns = {'damaged':'Number of Commercial Buildings Damaged', 'total':'commerce_total', 'perc':'% Commercial Buildings Damaged'}, inplace=True)\n",
- "# primary_secondary_roads.rename(columns = {'damaged':'Primary and Secondary Damaged Roads (in km)', 'perc':'% Primary and Secondary Roads Damaged'}, inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 191,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "from functools import reduce\n",
- "\n",
- "summary_stats_list = [\n",
- " critical_infrastructure,\n",
- " economy,\n",
- " industry,\n",
- " commerce,\n",
- " ntl,\n",
- " primary_secondary_roads,\n",
- "]\n",
- "summary_stats = reduce(\n",
- " lambda left, right: pd.merge(left, right, on=\"ADM2_EN\", how=\"outer\"),\n",
- " summary_stats_list,\n",
- ")\n",
- "\n",
- "summary_stats.drop(columns=[\"type_x\", \"type_y\"], inplace=True)\n",
- "\n",
- "summary_stats.set_index(\"ADM2_EN\", inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 162,
- "metadata": {
- "tags": [
- "remove-cell"
- ]
- },
- "outputs": [],
- "source": [
- "summary_stats.to_csv(\"../../data/summary_stats_industry_and_commerce.csv\")"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.12"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}