diff --git a/docs/user-docs/space2stats_api_demo_pop_pyramid.ipynb b/docs/user-docs/space2stats_api_demo_pop_pyramid.ipynb
new file mode 100644
index 0000000..3542a46
--- /dev/null
+++ b/docs/user-docs/space2stats_api_demo_pop_pyramid.ipynb
@@ -0,0 +1,531 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "de40ffcd-b4c3-4ca3-8f3a-32cf952589b5",
+ "metadata": {},
+ "source": [
+ "# Population and Demographic Analysis Tutorial\n",
+ "\n",
+ "This Jupyter Notebook provides a step-by-step guide for analyzing population data and demographics within a user-defined Area of Interest (AOI). Using interactive widgets and map visualizations, you can:\n",
+ "\n",
+ "- **Interactively Select an AOI:** Draw or choose a polygon region directly on an interactive map widget.\n",
+ "- **Query Population Data:** Fetch demographic data (e.g., total population, age, and gender distributions).\n",
+ "- **Visualize Demographics with Population Pyramids:** Create age-gender pyramids to understand the demographic structure of the selected AOI, which can be especially valuable in high-conflict or vulnerable regions.\n",
+ "- **Map-Based Exploration:** View spatial distributions of population data across hexagonal units to visualize which areas have higher population counts and how demographics vary spatially."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "afb3a310-8395-4f8e-ae0d-6a9543291ee6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import requests\n",
+ "import pandas as pd\n",
+ "import geopandas as gpd\n",
+ "import matplotlib.pyplot as plt\n",
+ "from shapely.geometry import shape\n",
+ "import json\n",
+ "import ipywidgets as widgets\n",
+ "from ipyleaflet import Map, DrawControl"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "2e8e06de-5f0f-496f-b69c-ba84f8d59270",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "BASE_URL = \"https://w7tfg3g781.execute-api.us-east-1.amazonaws.com/\"\n",
+ "FIELDS_ENDPOINT = f\"{BASE_URL}/fields\"\n",
+ "SUMMARY_ENDPOINT = f\"{BASE_URL}/summary\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "317b3b53-91b9-48bd-8b69-c7bdaeeda38a",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "4acfa8aad02f4535aeb78465446faec1",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Map(center=[4.0, 33.0], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoom_out_…"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Center the map in your region of interest\n",
+ "m = Map(center=(4.0, 33.0), zoom=6)\n",
+ "\n",
+ "draw_control = DrawControl(\n",
+ " polygon = {\n",
+ " \"shapeOptions\": {\n",
+ " \"color\": \"#6e6d6b\",\n",
+ " \"weight\": 2,\n",
+ " \"fillOpacity\": 0.5\n",
+ " },\n",
+ " \"drawError\": {\n",
+ " \"color\": \"#dd253b\",\n",
+ " \"message\": \"Error drawing shape!\"\n",
+ " },\n",
+ " },\n",
+ " rectangle = {\n",
+ " \"shapeOptions\": {\n",
+ " \"color\": \"#6e6d6b\",\n",
+ " \"weight\": 2,\n",
+ " \"fillOpacity\": 0.5\n",
+ " }\n",
+ " },\n",
+ " circlemarker={},\n",
+ " polyline={},\n",
+ " marker={}\n",
+ ")\n",
+ "\n",
+ "user_aoi = None\n",
+ "\n",
+ "def handle_draw(self, action, geo_json):\n",
+ " global user_aoi\n",
+ " user_aoi = geo_json\n",
+ " print(\"AOI captured:\")\n",
+ " print(json.dumps(user_aoi, indent=2))\n",
+ " \n",
+ " # Convert to a shapely geometry\n",
+ " geom = shape(geo_json['geometry'])\n",
+ " print(\"Area (approx.):\", geom.area, \"square degrees\")\n",
+ "\n",
+ "draw_control.on_draw(handle_draw)\n",
+ "m.add_control(draw_control)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "4e2f66b3-6eac-4651-b5a8-8de71b347bb8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "aoi_geojson = {\n",
+ " \"type\": \"Feature\",\n",
+ " \"geometry\": user_aoi['geometry'],\n",
+ " \"properties\": {\"name\": \"User Selected AOI\"}\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "0c944776-a225-4aff-ae15-bfd1e9ee53cb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Define which fields to request. Here we select both male and female at specific age intervals\n",
+ "age_groups = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80]\n",
+ "female_fields = [f\"sum_pop_f_{a}_2020\" for a in age_groups]\n",
+ "male_fields = [f\"sum_pop_m_{a}_2020\" for a in age_groups]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "62b3e8e3-f2b4-4094-a84f-1e004f752ebf",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Add total population fields if desired\n",
+ "fields = [\"sum_pop_2020\", \"sum_pop_f_2020\", \"sum_pop_m_2020\"] + female_fields + male_fields\n",
+ "\n",
+ "request_payload = {\n",
+ " \"aoi\": aoi_geojson,\n",
+ " \"spatial_join_method\": \"touches\",\n",
+ " \"fields\": fields,\n",
+ " \"geometry\": \"polygon\",\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "af84edf4-50db-4588-b36d-56748856efd5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Make the POST request\n",
+ "response = requests.post(SUMMARY_ENDPOINT, json=request_payload)\n",
+ "if response.status_code != 200:\n",
+ " raise Exception(f\"Failed to get summary: {response.status_code} {response.text}. Try selecting a smaller AOI or requesting less fields\")\n",
+ "summary_data = response.json()\n",
+ "\n",
+ "# Convert to DataFrame\n",
+ "df = pd.DataFrame(summary_data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "0a3f5759-615f-4a04-b052-17a7b9f3e3d9",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Convert geometry from GeoJSON string to Shapely geometry\n",
+ "df[\"geometry\"] = df[\"geometry\"].apply(lambda geom: shape(json.loads(geom)) if isinstance(geom, str) else shape(geom))\n",
+ "\n",
+ "gdf = gpd.GeoDataFrame(df, geometry=\"geometry\", crs=\"EPSG:4326\")\n",
+ "\n",
+ "# Plot on Map\n",
+ "m = gdf.explore(\n",
+ " column=\"sum_pop_2020\",\n",
+ " tooltip=\"sum_pop_2020\",\n",
+ " cmap=\"YlGnBu\",\n",
+ " legend=True,\n",
+ " scheme=\"naturalbreaks\",\n",
+ " legend_kwds=dict(colorbar=True, caption=\"Population\", interval=False),\n",
+ " style_kwds=dict(weight=0, fillOpacity=0.8),\n",
+ " name=\"Population by Hexagon\",\n",
+ ")\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "05e1b5bb-9ee1-481e-81b1-201df3099116",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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4ub5qjsEInpBJScno8tqQGfyTOi6uqo7HCKiauGILBERERFpJCayRERERKSRmMgSERERkUZiIktEREREGokPexHRS8nr8z3qDqFBKci8BAAo/m4Fiqwt1ByNeukGLVd3CERUTRyRJSIiIiKNxESWiIiIiDQSE1kiIiIi0kgvTCL77bffwsHBAfr6+ujSpQuOHj1areOEEPDx8YFMJsOOHTvqN0giIiIiqjMvRCK7efNmTJ8+HXPnzsWpU6fQu3dv+Pj4ID09/anHrly5EjKZ7DlESURERER16YVIZFesWIEJEyZg4sSJcHJywsqVK2FjY4OIiIgqjzt9+jRWrFiBH3744TlFSkRERER1ReMT2YcPH+LkyZPw9PRUKff09ERCQkKlx92/fx8jR47EqlWrYGlpWa1zKZVKFBQUqGxEREREpB4an8jevHkTJSUlsLBQXffQwsIC2dnZlR43Y8YMuLm5YdCgQdU+V1hYGExNTaXNxsam1nETERER0bPR+ES2zJPzXIUQkMlkCA0NhZGRkbSlp6dj165diI+Px8qVK2t0jsDAQOTn50tbRkZGHfaAiIiIiGpC49/sZW5uDm1t7XKjrzk5ObCwsEBAQADeeustqdza2horVqzA5cuX0bhxY5Vjhg0bht69e+Pw4cMVnksul0Mul9d1F4iIiIioFjQ+kdXT00OXLl2wf/9+DBkyRCrfv38/Bg0ahKZNm6Jp06Yqx3z66aeYOHGiSlmHDh3wxRdfwM/P77nETURERETPRuMTWQCYOXMmxowZg65du6Jnz55Ys2YN0tPTERAQUGF9S0vLCh/wsrW1hYODQ32HS0RERER14IVIZEeMGIHc3FyEhIQgKysLzs7O+PXXX2FnZ6fu0IiIiIionrwQiSwATJkyBVOmTKn18UKIOoyGiIiIiOrbC7NqARERERG9XJjIEhEREZFGemGmFhAR1UTcPF91h9CgJCcno8tqQGfyTOi6uqo7HCKiauGILBERERFpJCayRERERKSRmMgSERERkUZiIktEREREGomJLBERERFpJCayRERERKSRmMgSERERkUZiIktEREREGomJLBERERFpJCayRERERKSRmMgSERERkUZiIktEREREGomJLBERERFpJCayRERERKSRmMgSERERkUZiIktEREREGomJLBERERFpJB11B6DJhBAAgIKCAjVHQkT0bO7evSv9l/9PIyJ1Kvt/UFmeVRWZqE4tqtC1a9dgY2Oj7jCIiIiIXjgZGRlo3rx5lXWYyD6D0tJSZGZmwtjYGDKZTN3hNEgFBQWwsbFBRkYGTExM1B0O1RHe1xcP7+mLiff1xfMy3FMhBO7cuQNra2toaVU9C5ZTC56BlpbWU/+lQI+YmJi8sL9wLzPe1xcP7+mLiff1xfOi31NTU9Nq1ePDXkRERESkkZjIEhEREZFGYiJL9UoulyMoKAhyuVzdoVAd4n198fCevph4X188vKeq+LAXEREREWkkjsgSERERkUZiIktEREREGomJLBERERFpJCayVCWlUolOnTpBJpMhJSVFZV96ejr8/PzQqFEjmJub46OPPsLDhw9V6qSmpqJPnz4wMDDAK6+8gpCQkHKvnDty5Ai6dOkCfX19tGjRAqtXry4Xx9atW9GuXTvI5XK0a9cO27dvL1fn22+/hYODA/T19dGlSxccPXr02S/ACyItLQ0TJkyAg4MDDAwM0LJlSwQFBZW7X7ynLy9e6+cvLCwM3bp1g7GxMRQKBQYPHozz58+r1BFCIDg4GNbW1jAwMIC7uzvOnj2rUkepVOLDDz+Eubk5GjVqhIEDB+LatWsqdW7fvo0xY8bA1NQUpqamGDNmDPLy8lTq1NXvP/1PWFgYZDIZpk+fLpXxntYxQVSFjz76SPj4+AgA4tSpU1J5cXGxcHZ2Fh4eHiI5OVns379fWFtbiw8++ECqk5+fLywsLMTbb78tUlNTxdatW4WxsbFYtmyZVOfvv/8WhoaGYtq0aeLcuXNi7dq1QldXV/zyyy9SnYSEBKGtrS1CQ0PFX3/9JUJDQ4WOjo5ITEyU6sTExAhdXV2xdu1ace7cOTFt2jTRqFEjcfXq1fq9QBoiNjZW+Pv7i7i4OHH58mWxc+dOoVAoxP/93/9JdXhPX1681urh5eUlIiMjxZ9//ilSUlKEr6+vsLW1FXfv3pXqLF68WBgbG4utW7eK1NRUMWLECGFlZSUKCgqkOgEBAeKVV14R+/fvF8nJycLDw0N07NhRFBcXS3W8vb2Fs7OzSEhIEAkJCcLZ2Vm88cYb0v66+v2n/zl+/Liwt7cXLi4uYtq0aVI572ndYiJLlfr1119F27ZtxdmzZ8slsr/++qvQ0tIS169fl8o2bdok5HK5yM/PF0II8e233wpTU1Px4MEDqU5YWJiwtrYWpaWlQgghZs2aJdq2baty3smTJ4sePXpIn9966y3h7e2tUsfLy0u8/fbb0ud//etfIiAgQKVO27ZtxaefflrL3r/4li5dKhwcHKTPvKcvL17rhiEnJ0cAEEeOHBFCCFFaWiosLS3F4sWLpToPHjwQpqamYvXq1UIIIfLy8oSurq6IiYmR6ly/fl1oaWmJvXv3CiGEOHfunACg8g/FY8eOCQDiv//9rxCi7n7/6ZE7d+4IR0dHsX//ftGnTx8pkeU9rXucWkAVunHjBiZNmoQff/wRhoaG5fYfO3YMzs7OsLa2lsq8vLygVCpx8uRJqU6fPn1U1rrz8vJCZmYm0tLSpDqenp4qbXt5eeHEiRMoKiqqsk5CQgIA4OHDhzh58mS5Op6enlIdKi8/Px9NmzaVPvOevpx4rRuO/Px8AJB+L69cuYLs7GyVeyOXy9GnTx/p3pw8eRJFRUUqdaytreHs7CzVOXbsGExNTdG9e3epTo8ePWBqaqpSpy5+/+mRqVOnwtfXF6+//rpKOe9p3WMiS+UIIeDv74+AgAB07dq1wjrZ2dmwsLBQKWvSpAn09PSQnZ1daZ2yz0+rU1xcjJs3b1ZZp6yNmzdvoqSkpMo6pOry5cv4+uuvERAQIJXxnr6ceK0bBiEEZs6ciV69esHZ2RnA/36nqro32dnZ0NPTQ5MmTaqso1Aoyp1ToVBU+Xtbm99/AmJiYpCcnIywsLBy+3hP6x4T2ZdIcHAwZDJZlduJEyfw9ddfo6CgAIGBgVW2J5PJypUJIVTKn6wj/v8E8rqo82RZdeq8aKp7Tx+XmZkJb29vDB8+HBMnTlTZx3v68uK1Vq8PPvgAZ86cwaZNm8rtq829edrvbV3Vqeh3+2WWkZGBadOm4aeffoK+vn6l9XhP646OugOg5+eDDz7A22+/XWUde3t7LFy4EImJieVef9e1a1e88847iIqKgqWlJf744w+V/bdv30ZRUZH0rzlLS8ty/6LLyckBgKfW0dHRgZmZWZV1ytowNzeHtrZ2lXVeVNW9p2UyMzPh4eGBnj17Ys2aNSr1eE9fTrzW6vfhhx9i165d+M9//oPmzZtL5ZaWlgAejYxZWVlJ5Y/fG0tLSzx8+BC3b99WGcHLycmBm5ubVOfGjRvlzvvPP/+otFMXv/8vu5MnTyInJwddunSRykpKSvCf//wHq1atklal4D2tQ89xPi5piKtXr4rU1FRpi4uLEwDEL7/8IjIyMoQQ/5tEnpmZKR0XExNTbhJ548aNhVKplOosXry43INBTk5OKucPCAgo92CQj4+PSh1vb+9yDwa9//77KnWcnJz4sMpjrl27JhwdHcXbb7+t8uRrGd7TlxevtXqUlpaKqVOnCmtra3HhwoUK91taWoolS5ZIZUqlssIHgzZv3izVyczMrPDBoD/++EOqk5iYWOGDQc/6+/+yKygoUPn7MzU1VXTt2lWMHj1apKam8p7WAyay9FRXrlypdPmtfv36ieTkZHHgwAHRvHlzlWU98vLyhIWFhRg5cqRITU0V27ZtEyYmJhUu1TRjxgxx7tw5sW7dunJLNf3+++9CW1tbLF68WPz1119i8eLFlS7VtG7dOnHu3Dkxffp00ahRI5GWlla/F0dDXL9+XbRq1Ur07dtXXLt2TWRlZUlbGd7TlxevtXq8//77wtTUVBw+fFjld/L+/ftSncWLFwtTU1Oxbds2kZqaKkaOHFnhUk3NmzcXBw4cEMnJyaJv374VLtXk4uIijh07Jo4dOyY6dOhQ4VJNz/r7T+U9vmqBELyndY2JLD1VRYmsEI9Gbn19fYWBgYFo2rSp+OCDD1SW8BBCiDNnzojevXsLuVwuLC0tRXBwcLl/5R0+fFh07txZ6OnpCXt7exEREVEuhi1btog2bdoIXV1d0bZtW7F169Zydb755hthZ2cn9PT0hKurq7SEDQkRGRkpAFS4PY739OXFa/38VfY7GRkZKdUpLS0VQUFBwtLSUsjlcvHaa6+J1NRUlXYKCwvFBx98IJo2bSoMDAzEG2+8IdLT01Xq5ObminfeeUcYGxsLY2Nj8c4774jbt2+r1Kmr339S9WQiy3tat2RCaNLrG4iIiIiIHuGqBURERESkkZjIEhEREZFGYiJLRERERBqJiSwRERERaSQmskRERESkkZjIEhEREZFGYiJLRERERBqJiSwRERERaSQmskRELzh/f38MHjy4wbRDRFRXmMgSEdUjf39/yGQyyGQy6OrqokWLFvj4449x7949dYdWqbS0NMhkMqSkpKiUf/nll1i/fr1aYiIiqoiOugMgInrReXt7IzIyEkVFRTh69CgmTpyIe/fuISIiQt2h1Yipqam6QyAiUsERWSKieiaXy2FpaQkbGxuMGjUK77zzDnbs2AGlUomPPvoICoUC+vr66NWrF5KSkqTjDh8+DJlMhj179qBjx47Q19dH9+7dkZqaKtUJDg5Gp06dVM63cuVK2NvbVxrP3r170atXLzRu3BhmZmZ44403cPnyZWm/g4MDAKBz586QyWRwd3cHUH5qQXXjP3jwILp27QpDQ0O4ubnh/PnztbiKRETlMZElInrODAwMUFRUhFmzZmHr1q2IiopCcnIyWrVqBS8vL9y6dUul/ieffIJly5YhKSkJCoUCAwcORFFRUa3Pf+/ePcycORNJSUk4ePAgtLS0MGTIEJSWlgIAjh8/DgA4cOAAsrKysG3btgrbqW78c+fOxfLly3HixAno6Ohg/PjxtY6diOhxTGSJiJ6j48ePY+PGjfDw8EBERATCw8Ph4+ODdu3aYe3atTAwMMC6detUjgkKCkL//v3RoUMHREVF4caNG9i+fXutYxg2bBiGDh0KR0dHdOrUCevWrUNqairOnTsHAGjWrBkAwMzMDJaWlmjatGm5NsqmRlQn/kWLFqFPnz5o164dPv30UyQkJODBgwe1jp+IqAwTWSKierZ7924YGRlBX18fPXv2xGuvvYYPP/wQRUVFePXVV6V6urq6+Ne//oW//vpL5fiePXtKPzdt2hRt2rQpV6cmLl++jFGjRqFFixYwMTGRphKkp6fXqI3qxu/i4iL9bGVlBQDIycmpdfxERGX4sBcRUT0rG33V1dWFtbU1dHV1cfr0aQCATCZTqSuEKFdWkbI6WlpaEEKo7HvatAM/Pz/Y2Nhg7dq1sLa2RmlpKZydnfHw4cNq96nsnNWJX1dXt1zcZdMYiIieBUdkiYjqWaNGjdCqVSvY2dlJSV2rVq2gp6eH3377TapXVFSEEydOwMnJSeX4xMRE6efbt2/jwoULaNu2LYBH0wCys7NVktknl816XG5uLv766y989tln6NevH5ycnHD79m2VOnp6egCAkpKSStupSfxERPWFI7JERGrQqFEjvP/++/jkk0/QtGlT2NraYunSpbh//z4mTJigUjckJARmZmawsLDA3LlzYW5uLq0e4O7ujn/++QdLly7Fm2++ib179yI2NhYmJiYVnrdJkyYwMzPDmjVrYGVlhfT0dHz66acqdRQKBQwMDLB37140b94c+vr65Zbeqkn8RET1hSOyRERqsnjxYgwbNgxjxoyBq6srLl26hLi4ODRp0qRcvWnTpqFLly7IysrCrl27pFFTJycnfPvtt/jmm2/QsWNHHD9+HB9//HGl59TS0kJMTAxOnjwJZ2dnzJgxA+Hh4Sp1dHR08NVXX+G7776DtbU1Bg0a9EzxExHVF5l4cnIVERE1CIcPH4aHhwdu376Nxo0bqzscIqIGhyOyRERERKSRmMgSERERkUbi1AIiIiIi0kgckSUiIiIijcREloiIiIg0EhNZIiIiItJITGSJiIiISCMxkSUiIiIijcREloiIiIg0EhNZIiIiItJITGSJiIiISCMxkSUiIiIijfT/AJKI72miIL8fAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Let's aggregate:\n",
+ "agg_fields = female_fields + male_fields\n",
+ "pyramid_data = df[agg_fields].sum() # Summation across all returned polygons\n",
+ "\n",
+ "# Prepare data for plotting\n",
+ "male_pop = [pyramid_data[f\"sum_pop_m_{a}_2020\"] for a in age_groups]\n",
+ "female_pop = [pyramid_data[f\"sum_pop_f_{a}_2020\"] for a in age_groups]\n",
+ "\n",
+ "# Create a DataFrame for easier plotting\n",
+ "plot_df = pd.DataFrame({\n",
+ " \"AgeGroup\": [f\"{a}-{a+4}\" if a<80 else \"80+\" for a in age_groups],\n",
+ " \"Male\": male_pop,\n",
+ " \"Female\": female_pop\n",
+ "})\n",
+ "\n",
+ "# Plotting the Pyramid\n",
+ "fig, ax = plt.subplots(figsize=(7,5))\n",
+ "\n",
+ "# Plot males as negative for symmetry\n",
+ "ax.barh(plot_df[\"AgeGroup\"], -plot_df[\"Male\"], color=\"steelblue\", label=\"Male\")\n",
+ "ax.barh(plot_df[\"AgeGroup\"], plot_df[\"Female\"], color=\"salmon\", label=\"Female\")\n",
+ "\n",
+ "ax.set_xlabel(\"Population\")\n",
+ "ax.set_ylabel(\"Age Group\")\n",
+ "ax.set_title(\"Population Pyramid for Selected AOI (2020)\")\n",
+ "\n",
+ "# Make x-ticks positive labels, even though males are negative in the data\n",
+ "ax.axvline(0, color=\"black\", linewidth=1)\n",
+ "ax.legend()\n",
+ "\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8c4aab83-8212-44a6-82e6-bf909762d979",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/user-docs/space2stats_api_demo_urban_flood_risk.ipynb b/docs/user-docs/space2stats_api_demo_urban_flood_risk.ipynb
new file mode 100644
index 0000000..47f645b
--- /dev/null
+++ b/docs/user-docs/space2stats_api_demo_urban_flood_risk.ipynb
@@ -0,0 +1,801 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "c56b62b8-fa9a-4df3-9d2a-0bacea66a091",
+ "metadata": {},
+ "source": [
+ "# Urban Centers at Flood Risk Analysis\n",
+ "\n",
+ "This notebook guides you through:\n",
+ "\n",
+ "1. Selecting an Area of Interest (AOI) interactively on a map.\n",
+ "2. Fetching demographic and flood risk data.\n",
+ "3. Identifying urban centers within the AOI that are at the highest risk due to flooding, using GHS settlement population metrics.\n",
+ "4. Visualizing and ranking these areas.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "id": "a4281bd0-0351-4432-96f0-88d89f7cb931",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import json\n",
+ "import requests\n",
+ "import pandas as pd\n",
+ "import geopandas as gpd\n",
+ "from shapely.geometry import shape\n",
+ "from ipyleaflet import Map, DrawControl"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "id": "f8f8ef28-2ef1-425d-97a0-2a317bdb3a80",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "e0125cb7915b497bae866b58c20cb7e2",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "Map(center=[27, 29.7], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoom_out_t…"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Initialize a map for AOI selection\n",
+ "m = Map(center=(27,29.7), zoom=6)\n",
+ "\n",
+ "draw_control = DrawControl(\n",
+ " polygon={\n",
+ " \"shapeOptions\": {\n",
+ " \"color\": \"#6e6d6b\",\n",
+ " \"weight\": 2,\n",
+ " \"fillOpacity\": 0.5\n",
+ " },\n",
+ " \"drawError\": {\n",
+ " \"color\": \"#dd253b\",\n",
+ " \"message\": \"Error drawing shape!\"\n",
+ " },\n",
+ " },\n",
+ " rectangle={\n",
+ " \"shapeOptions\": {\n",
+ " \"color\": \"#6e6d6b\",\n",
+ " \"weight\": 2,\n",
+ " \"fillOpacity\": 0.5\n",
+ " }\n",
+ " },\n",
+ " marker={},\n",
+ " circlemarker={},\n",
+ " polyline={}\n",
+ ")\n",
+ "\n",
+ "user_aoi = None\n",
+ "\n",
+ "def handle_draw(self, action, geo_json):\n",
+ " global user_aoi\n",
+ " user_aoi = geo_json\n",
+ " print(\"AOI captured:\")\n",
+ " print(json.dumps(user_aoi, indent=2))\n",
+ "\n",
+ "draw_control.on_draw(handle_draw)\n",
+ "m.add_control(draw_control)\n",
+ "m\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 69,
+ "id": "ac23a9bc-89fe-4ca2-9489-2ee3a0199ed6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Set the API Request String\n",
+ "BASE_URL = \"https://w7tfg3g781.execute-api.us-east-1.amazonaws.com\"\n",
+ "SUMMARY_ENDPOINT = f\"{BASE_URL}/summary\"\n",
+ "\n",
+ "# Fields of interest: population, flood, and GHS settlement metrics\n",
+ "fields = [\n",
+ " \"sum_pop_2020\", \"sum_pop_f_2020\", \"sum_pop_m_2020\", \"pop_flood\", \"pop_flood_pct\",\n",
+ " \"ghs_11_pop\", \"ghs_12_pop\", \"ghs_13_pop\", \"ghs_21_pop\", \"ghs_22_pop\", \"ghs_23_pop\", \"ghs_30_pop\"\n",
+ "]\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "id": "5fd9e516-0f3d-4498-b3dd-04389914d15f",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "# Check if AOI is set\n",
+ "if user_aoi is None:\n",
+ " raise ValueError(\"No AOI selected. Please draw an AOI on the map above and rerun this cell.\")\n",
+ "\n",
+ "# Convert AOI to required format (Feature)\n",
+ "aoi_feature = {\n",
+ " \"type\": \"Feature\",\n",
+ " \"geometry\": user_aoi[\"geometry\"],\n",
+ " \"properties\": {\"name\": \"User Selected AOI\"}\n",
+ "}\n",
+ "\n",
+ "request_payload = {\n",
+ " \"aoi\": aoi_feature,\n",
+ " \"spatial_join_method\": \"touches\",\n",
+ " \"fields\": fields,\n",
+ " \"geometry\": \"polygon\",\n",
+ "}\n",
+ "\n",
+ "response = requests.post(SUMMARY_ENDPOINT, json=request_payload)\n",
+ "\n",
+ "if response.status_code != 200:\n",
+ " raise Exception(\"Failed to get summary data:\", response.text)\n",
+ "\n",
+ "summary_data = response.json()\n",
+ "\n",
+ "df = pd.DataFrame(summary_data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "id": "b8eb6e7d-de13-43ed-bdde-5d97963cd78f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Data retrieved and converted to GeoDataFrame.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Convert geometry field from GeoJSON to Shapely\n",
+ "if isinstance(df[\"geometry\"].iloc[0], str):\n",
+ " df[\"geometry\"] = df[\"geometry\"].apply(json.loads)\n",
+ "\n",
+ "df[\"geometry\"] = df[\"geometry\"].apply(shape)\n",
+ "\n",
+ "gdf = gpd.GeoDataFrame(df, geometry=\"geometry\", crs=\"EPSG:4326\")\n",
+ "\n",
+ "print(\"Data retrieved and converted to GeoDataFrame.\")\n",
+ "#gdf.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "id": "eea58697-ad0d-4a90-8751-1f633ca46f99",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " hex_id | \n",
+ " geometry | \n",
+ " sum_pop_2020 | \n",
+ " sum_pop_f_2020 | \n",
+ " sum_pop_m_2020 | \n",
+ " pop_flood | \n",
+ " pop_flood_pct | \n",
+ " ghs_11_pop | \n",
+ " ghs_12_pop | \n",
+ " ghs_13_pop | \n",
+ " ghs_21_pop | \n",
+ " ghs_22_pop | \n",
+ " ghs_23_pop | \n",
+ " ghs_30_pop | \n",
+ " urban_pop | \n",
+ " risk_score | \n",
+ " risk_score_norm | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1391 | \n",
+ " 863e46657ffffff | \n",
+ " POLYGON ((31.14573 27.21547, 31.12845 27.18234... | \n",
+ " 566627.893311 | \n",
+ " 275516.716797 | \n",
+ " 291111.176514 | \n",
+ " 368488.695989 | \n",
+ " 0.650426 | \n",
+ " 0.286214 | \n",
+ " 43.898725 | \n",
+ " 0.0 | \n",
+ " 915.403993 | \n",
+ " 0.0 | \n",
+ " 20.302995 | \n",
+ " 641632.233433 | \n",
+ " 641652.536428 | \n",
+ " 417347.318227 | \n",
+ " 100.000000 | \n",
+ "
\n",
+ " \n",
+ " 336 | \n",
+ " 863e4205fffffff | \n",
+ " POLYGON ((31.69575 26.56058, 31.67844 26.52755... | \n",
+ " 329936.939209 | \n",
+ " 163869.888794 | \n",
+ " 166067.050415 | \n",
+ " 251887.227171 | \n",
+ " 0.760492 | \n",
+ " 0.000000 | \n",
+ " 486.578873 | \n",
+ " 0.0 | \n",
+ " 11407.403337 | \n",
+ " 0.0 | \n",
+ " 20818.880593 | \n",
+ " 300402.691452 | \n",
+ " 321221.572045 | \n",
+ " 244286.310899 | \n",
+ " 58.533097 | \n",
+ "
\n",
+ " \n",
+ " 1282 | \n",
+ " 863e461afffffff | \n",
+ " POLYGON ((30.84588 27.76354, 30.82858 27.73036... | \n",
+ " 225762.972473 | \n",
+ " 110895.939514 | \n",
+ " 114867.032959 | \n",
+ " 158188.937597 | \n",
+ " 0.669869 | \n",
+ " 6.471631 | \n",
+ " 1999.221003 | \n",
+ " 0.0 | \n",
+ " 2790.173053 | \n",
+ " 0.0 | \n",
+ " 21888.971348 | \n",
+ " 274027.723812 | \n",
+ " 295916.695159 | \n",
+ " 198225.527161 | \n",
+ " 47.496538 | \n",
+ "
\n",
+ " \n",
+ " 1476 | \n",
+ " 863e4699fffffff | \n",
+ " POLYGON ((30.74981 28.10564, 30.73248 28.07245... | \n",
+ " 294847.856201 | \n",
+ " 145668.350464 | \n",
+ " 149179.505737 | \n",
+ " 171839.221415 | \n",
+ " 0.603658 | \n",
+ " 49.475881 | \n",
+ " 623.250167 | \n",
+ " 0.0 | \n",
+ " 6253.058859 | \n",
+ " 0.0 | \n",
+ " 11949.665112 | \n",
+ " 294007.560908 | \n",
+ " 305957.226020 | \n",
+ " 184693.640318 | \n",
+ " 44.254182 | \n",
+ "
\n",
+ " \n",
+ " 1255 | \n",
+ " 863e460b7ffffff | \n",
+ " POLYGON ((30.80029 27.60091, 30.78303 27.56772... | \n",
+ " 205633.663269 | \n",
+ " 101348.879578 | \n",
+ " 104284.783691 | \n",
+ " 143713.732009 | \n",
+ " 0.696577 | \n",
+ " 43.055753 | \n",
+ " 585.262277 | \n",
+ " 0.0 | \n",
+ " 6080.221818 | \n",
+ " 0.0 | \n",
+ " 169.485524 | \n",
+ " 254081.217079 | \n",
+ " 254250.702603 | \n",
+ " 177105.155543 | \n",
+ " 42.435916 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " hex_id geometry \\\n",
+ "1391 863e46657ffffff POLYGON ((31.14573 27.21547, 31.12845 27.18234... \n",
+ "336 863e4205fffffff POLYGON ((31.69575 26.56058, 31.67844 26.52755... \n",
+ "1282 863e461afffffff POLYGON ((30.84588 27.76354, 30.82858 27.73036... \n",
+ "1476 863e4699fffffff POLYGON ((30.74981 28.10564, 30.73248 28.07245... \n",
+ "1255 863e460b7ffffff POLYGON ((30.80029 27.60091, 30.78303 27.56772... \n",
+ "\n",
+ " sum_pop_2020 sum_pop_f_2020 sum_pop_m_2020 pop_flood \\\n",
+ "1391 566627.893311 275516.716797 291111.176514 368488.695989 \n",
+ "336 329936.939209 163869.888794 166067.050415 251887.227171 \n",
+ "1282 225762.972473 110895.939514 114867.032959 158188.937597 \n",
+ "1476 294847.856201 145668.350464 149179.505737 171839.221415 \n",
+ "1255 205633.663269 101348.879578 104284.783691 143713.732009 \n",
+ "\n",
+ " pop_flood_pct ghs_11_pop ghs_12_pop ghs_13_pop ghs_21_pop \\\n",
+ "1391 0.650426 0.286214 43.898725 0.0 915.403993 \n",
+ "336 0.760492 0.000000 486.578873 0.0 11407.403337 \n",
+ "1282 0.669869 6.471631 1999.221003 0.0 2790.173053 \n",
+ "1476 0.603658 49.475881 623.250167 0.0 6253.058859 \n",
+ "1255 0.696577 43.055753 585.262277 0.0 6080.221818 \n",
+ "\n",
+ " ghs_22_pop ghs_23_pop ghs_30_pop urban_pop risk_score \\\n",
+ "1391 0.0 20.302995 641632.233433 641652.536428 417347.318227 \n",
+ "336 0.0 20818.880593 300402.691452 321221.572045 244286.310899 \n",
+ "1282 0.0 21888.971348 274027.723812 295916.695159 198225.527161 \n",
+ "1476 0.0 11949.665112 294007.560908 305957.226020 184693.640318 \n",
+ "1255 0.0 169.485524 254081.217079 254250.702603 177105.155543 \n",
+ "\n",
+ " risk_score_norm \n",
+ "1391 100.000000 \n",
+ "336 58.533097 \n",
+ "1282 47.496538 \n",
+ "1476 44.254182 \n",
+ "1255 42.435916 "
+ ]
+ },
+ "execution_count": 75,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Define urban_pop to only include semi-dense urban clusters (22_POP), dense urban clusters (23_POP) and urban centres (30_POP)\n",
+ "gdf[\"urban_pop\"] = gdf[\"ghs_22_pop\"] + gdf[\"ghs_23_pop\"] + gdf[\"ghs_30_pop\"]\n",
+ "\n",
+ "# Calculate risk score using only the updated urban_pop\n",
+ "gdf[\"risk_score\"] = gdf[\"pop_flood_pct\"] * gdf[\"urban_pop\"]\n",
+ "\n",
+ "# Filter to areas where urban_pop is significant (e.g., > 100 people)\n",
+ "urban_gdf = gdf[gdf[\"urban_pop\"] > 100].copy()\n",
+ "\n",
+ "max_score = urban_gdf[\"risk_score\"].max()\n",
+ "urban_gdf[\"risk_score_norm\"] = (urban_gdf[\"risk_score\"] / max_score) * 100\n",
+ "\n",
+ "# Now sorting and other operations will not raise SettingWithCopyWarning\n",
+ "urban_gdf = urban_gdf.sort_values(\"risk_score_norm\", ascending=False)\n",
+ "urban_gdf.head()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "id": "125ea600-78b4-4257-8c8d-1278616e5f90",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 77,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "aoi_gdf = gpd.GeoDataFrame.from_features([aoi_feature], crs=\"EPSG:4326\")\n",
+ "\n",
+ "# Now create your risk map\n",
+ "m_risk = urban_gdf.explore(\n",
+ " column=\"risk_score_norm\",\n",
+ " tooltip=[\"sum_pop_2020\", \"pop_flood\", \"pop_flood_pct\", \"urban_pop\", \"risk_score\"],\n",
+ " cmap=\"OrRd\",\n",
+ " legend=True,\n",
+ " scheme=\"quantiles\",\n",
+ " legend_kwds=dict(colorbar=True, caption=\"Urban Flood Score\", interval=False),\n",
+ " style_kwds=dict(weight=0.5, fillOpacity=0.8),\n",
+ " name=\"Urban Flood Risk\",\n",
+ ")\n",
+ "\n",
+ "# Add AOI outline on the same map\n",
+ "aoi_gdf.explore(\n",
+ " m=m_risk, # Note: passing m_risk here to add AOI on the same map\n",
+ " color='red',\n",
+ " weight=3,\n",
+ " fill=False,\n",
+ " name=\"AOI Boundary\"\n",
+ ")\n",
+ "\n",
+ "m_risk"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a03944dc-bebf-4c0b-bf62-29b719737201",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4681b6ca-a0c5-414e-b5ca-c25b3a7f64fc",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}