Skip to content

Commit

Permalink
Updating MENA
Browse files Browse the repository at this point in the history
  • Loading branch information
bpstewar committed Jan 21, 2025
1 parent d64af0e commit d440073
Show file tree
Hide file tree
Showing 8 changed files with 7,992 additions and 14 deletions.
2 changes: 0 additions & 2 deletions build_commands.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,4 @@ git push
# Installation testing
conda create -n urban_test --file .\requirements.txt -c conda-forge
conda activate urban_test
conda install ipykernel
python -m ipykernel install --user --name=urban_test
pip install --no-build-isolation --no-deps .
7,834 changes: 7,834 additions & 0 deletions notebooks/Implementations/MENA_Benchmarking/FUA_ADMIN_Pop.ipynb

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions notebooks/Implementations/MENA_Benchmarking/Pop-weighted-RWI.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import sys, os\n",
"import rasterio\n",
"\n",
"import pandas as pd\n",
"import geopandas as gpd\n",
"\n",
"from shapely.geometry import Point\n",
"from pyquadkey2 import quadkey\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"meta_pop_geotiff = \"s3://dataforgood-fb-data/hrsl-cogs/hrsl_general/hrsl_general-latest.vrt\"\n"
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
40 changes: 40 additions & 0 deletions notebooks/Implementations/MENA_Benchmarking/admin_pop_functions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import GOSTrocks.rasterMisc as rMisc
import pandas as pd

def calculate_admin_pop(city, admin_bounds, popR,
city_id = 'eFUA_ID', city_name = 'eFUA_name'):
"""_summary_
Parameters
----------
city_shape : _type_
_description_
admin_bounds : _type_
_description_
popR : _type_
_description_
"""

# Identify admin regions that intersect with the FUA, clip them, and calculate zonal stats
sel_admin = admin_bounds.loc[admin_bounds.intersects(city['geometry'])].copy()
sel_admin['geometry'] = sel_admin['geometry'].apply(lambda x: x.intersection(city['geometry']))
cur_zonal = rMisc.zonalStats(sel_admin, popR, minVal=0)
cur_zonal = pd.DataFrame(cur_zonal, columns=['SUM', 'MIN', 'MAX', 'MEAN'])
cur_zonal['per_city_pop'] = cur_zonal['SUM'] / cur_zonal['SUM'].sum()

# For those intersecting admin regions, calculate the percentage of their population outside the city
sel_admin = admin_bounds.loc[admin_bounds.intersects(city['geometry'])].copy()
total_pop = rMisc.zonalStats(sel_admin, popR, minVal=0)
total_pop = pd.DataFrame(total_pop, columns=['SUM', 'MIN', 'MAX', 'MEAN'])
sel_admin['geometry'] = sel_admin['geometry'].apply(lambda x: x.difference(city['geometry']))
not_city_pop = rMisc.zonalStats(sel_admin, popR, minVal=0)
not_city_pop = pd.DataFrame(not_city_pop, columns=['SUM', 'MIN', 'MAX', 'MEAN'])
not_city_pop['admin_pop'] = total_pop['SUM']
not_city_pop['per_not_city'] = not_city_pop['SUM'] / not_city_pop['admin_pop']

# Concat results
admin_res = pd.DataFrame(sel_admin.drop(columns=['geometry']).copy())
admin_res = pd.concat([admin_res.reset_index(), cur_zonal.drop(['SUM','MIN','MAX','MEAN'], axis=1), not_city_pop.drop(['admin_pop','SUM','MIN','MAX','MEAN'], axis=1)], axis=1)
admin_res['city_id'] = city[city_id]
admin_res['city_name'] = city[city_name]
return(admin_res)
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,65 @@
"cells": [
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"id": "0",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unexpected exception formatting exception. Falling back to standard exception\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Traceback (most recent call last):\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\scipy\\__init__.py\", line 86, in <module>\n",
" from scipy._lib._ccallback import LowLevelCallable\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\scipy\\_lib\\_ccallback.py\", line 1, in <module>\n",
" from . import _ccallback_c\n",
"ImportError: cannot import name '_ccallback_c' from 'scipy._lib' (c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\scipy\\_lib\\__init__.py)\n",
"\n",
"The above exception was the direct cause of the following exception:\n",
"\n",
"Traceback (most recent call last):\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3553, in run_code\n",
" File \"C:\\Users\\WB411133\\AppData\\Local\\Temp\\ipykernel_19728\\2942251588.py\", line 19, in <module>\n",
" from novelUrbanization import *\n",
" File \"c:\\WBG\\Work\\Code\\GOSTurban\\notebooks\\Implementations\\URB_SEAU1_NovelUrbanization\\novelUrbanization.py\", line 19, in <module>\n",
" import GOSTurban.urban_helper as helper\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\GOSTurban\\urban_helper.py\", line 12, in <module>\n",
" import GOSTurban.UrbanRaster as urban\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\GOSTurban\\UrbanRaster.py\", line 17, in <module>\n",
" from scipy import stats\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\scipy\\__init__.py\", line 91, in <module>\n",
" raise ImportError(msg) from e\n",
"ImportError: The `scipy` install you are using seems to be broken, (extension modules cannot be imported), please try reinstalling.\n",
"\n",
"During handling of the above exception, another exception occurred:\n",
"\n",
"Traceback (most recent call last):\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2144, in showtraceback\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\ultratb.py\", line 1435, in structured_traceback\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\ultratb.py\", line 1326, in structured_traceback\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\ultratb.py\", line 1173, in structured_traceback\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\ultratb.py\", line 1088, in format_exception_as_a_whole\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\ultratb.py\", line 970, in format_record\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\IPython\\core\\ultratb.py\", line 792, in lines\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\stack_data\\utils.py\", line 145, in cached_property_wrapper\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\stack_data\\core.py\", line 698, in lines\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\stack_data\\utils.py\", line 145, in cached_property_wrapper\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\stack_data\\core.py\", line 649, in included_pieces\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\stack_data\\utils.py\", line 145, in cached_property_wrapper\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\stack_data\\core.py\", line 628, in executing_piece\n",
" File \"c:\\wbg\\Anaconda3\\envs\\urban_test\\Lib\\site-packages\\executing\\executing.py\", line 164, in only\n",
"executing.executing.NotOneValueFound: Expected one value, found 0\n"
]
}
],
"source": [
"import sys\n",
"import os\n",
Expand All @@ -16,13 +71,13 @@
"from rasterio.merge import merge\n",
"\n",
"# Import raster helpers\n",
"sys.path.insert(0, \"/home/wb411133/Code/gostrocks/src\")\n",
"sys.path.insert(0, \"../../../../GOSTrocks/src\")\n",
"\n",
"import GOSTRocks.rasterMisc as rMisc\n",
"from GOSTRocks.misc import tPrint\n",
"import GOSTrocks.rasterMisc as rMisc\n",
"from GOSTrocks.misc import tPrint\n",
"\n",
"# Import GOST urban functions\n",
"sys.path.append(\"../../../src\")\n",
"sys.path.insert(1, \"../../../src\")\n",
"\n",
"# Import local functions\n",
"from novelUrbanization import *\n",
Expand Down Expand Up @@ -203,8 +258,22 @@
}
],
"metadata": {
"kernelspec": {
"display_name": "urban_test",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python"
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.14"
}
},
"nbformat": 4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@


# Import raster helpers
import GOSTRocks.rasterMisc as rMisc
from GOSTRocks.misc import tPrint
import GOSTrocks.rasterMisc as rMisc
from GOSTrocks.misc import tPrint

# Import GOST urban functions
sys.path.append("../../../src")
import GOST_Urban.urban_helper as helper
import GOSTurban.urban_helper as helper

importlib.reload(helper)
importlib.reload(rMisc)
Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ elevation
geojson
hatch
git
richdem
4 changes: 2 additions & 2 deletions src/GOSTurban/urban_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

import GOSTurban.UrbanRaster as urban

import GOSTRocks.rasterMisc as rMisc
from GOSTRocks.misc import tPrint
import GOSTrocks.rasterMisc as rMisc
from GOSTrocks.misc import tPrint


class summarize_population(object):
Expand Down

0 comments on commit d440073

Please sign in to comment.