diff --git a/.gitignore b/.gitignore index 955bf72..71ac23a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,9 @@ # Custom -*/output/ -*/data/ +output/* +data cache/ temp* +.R* # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/kilifi_sampling/01_load_data.ipynb b/kilifi_sampling/01_load_data.ipynb new file mode 100644 index 0000000..7e96c77 --- /dev/null +++ b/kilifi_sampling/01_load_data.ipynb @@ -0,0 +1,1469 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load and split rooftops for Kilifi" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import geopandas as gpd\n", + "import pandas as pd\n", + "from pathlib import Path\n", + "from os import makedirs\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Paths to files\n", + "INPUT_PATH = Path(\"../data/01_Raw data/\")\n", + "OUTPUT_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/\")\n", + "\n", + "ROOFTOP_SHP = INPUT_PATH / \"01_Rooftop/Kenya/KEN.parquet\"\n", + "COUNTY_SHP = INPUT_PATH / \"02_Admin boundary data/Kenya/counties/counties.shp\"\n", + "SUBCOUNTY_SHP = INPUT_PATH / \"02_Admin boundary data/Kenya/ke_subcounty/ke_subcounty.shp\"\n", + "LOCATION_SHP = INPUT_PATH / \"02_Admin boundary data/Kenya/Ken_Locations/Ken_Locations.shp\"\n", + "SUBLOCATION_SHP = INPUT_PATH / \"02_Admin boundary data/Kenya/ken_sublocations_2/Ken_Sublocations/Ken_Sublocations.shp\"\n", + "\n", + "\n", + "merged_subcounty_locations = OUTPUT_PATH / \"00_utils_data/Merged sublocation census.csv\"" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_2466/2413082932.py:19: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " sublocations_kilifi = sublocations[sublocations.geometry.within(county_kilifi.unary_union.buffer(0.01))].copy()\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_2466/2413082932.py:20: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " locations_kilifi = locations[locations.geometry.within(county_kilifi.unary_union.buffer(0.01))].copy()\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_2466/2413082932.py:21: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " rooftops_kilifi = rooftops[rooftops.geometry.within(county_kilifi.unary_union.buffer(0.0005))].copy()\n" + ] + } + ], + "source": [ + "rooftops = gpd.read_parquet(ROOFTOP_SHP)\n", + "counties = gpd.read_file(COUNTY_SHP)\n", + "counties.set_crs(epsg=4326, inplace=True)\n", + "\n", + "subcounties = gpd.read_file(SUBCOUNTY_SHP)\n", + "subcounties.set_crs(epsg=4326, inplace=True)\n", + "\n", + "locations = gpd.read_file(LOCATION_SHP)\n", + "locations.set_crs(epsg=4326, inplace=True)\n", + "\n", + "sublocations = gpd.read_file(SUBLOCATION_SHP)\n", + "sublocations.set_crs(epsg=4326, inplace=True)\n", + "\n", + "merged_data = pd.read_csv(merged_subcounty_locations)\n", + "\n", + "# filtered shapes\n", + "subcounties_kilifi = subcounties[subcounties.county == \"Kilifi\"].copy()\n", + "county_kilifi = counties[counties.COUNTY_NAM == \"KILIFI\"].copy()\n", + "sublocations_kilifi = sublocations[sublocations.geometry.within(county_kilifi.unary_union.buffer(0.01))].copy()\n", + "locations_kilifi = locations[locations.geometry.within(county_kilifi.unary_union.buffer(0.01))].copy()\n", + "rooftops_kilifi = rooftops[rooftops.geometry.within(county_kilifi.unary_union.buffer(0.0005))].copy()\n", + "\n", + "merged_data_with_geom = sublocations_kilifi.merge(\n", + " merged_data.drop(columns=\"SLNAME\"), \n", + " on='SLID', how='inner').copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SLIDSLNAMEgeometryAindex_rightcountryprovpcodeprovincectypcodecounty...level5ind_totalind_maleind_femalehh_totalhh_conventionalkm2densityscore_fuzzymerge
0301010101.0KONJORAPOLYGON ((39.82549 -3.54983, 39.81931 -3.56998...1573290KenyaKEN_1_1CoastKEN_2_3Kilifi...KONJORA15768774080282633263339.3401.0NaNExact
1301010102.0SOKONIPOLYGON ((39.84762 -3.61978, 39.84858 -3.62024...1575290KenyaKEN_1_1CoastKEN_2_3Kilifi...SOKONI863741584479257125711.17864.0NaNExact
2301010103.0HOSPITALPOLYGON ((39.88548 -3.60158, 39.88465 -3.60362...1576290KenyaKEN_1_1CoastKEN_2_3Kilifi...HOSPITAL397761926320512115501154611.63443.0NaNExact
3301010104.0MNARANIPOLYGON ((39.83858 -3.67471, 39.83768 -3.67375...1577290KenyaKEN_1_1CoastKEN_2_3Kilifi...MNARANI11253546857853379337916.0704.0NaNExact
4301010201.0MTONDIA/MAJAONIPOLYGON ((39.87851 -3.53402, 39.9104 -3.54257,...1578290KenyaKEN_1_1CoastKEN_2_3Kilifi...MTONDIA/MAJAONI2300411463115414841484139.2587.00.995476Fuzzy
..................................................................
157307030703.0MALANGAPOLYGON ((39.81043 -3.2126, 39.81196 -3.21384,...23427KenyaKEN_1_1CoastKEN_2_3Kilifi...MALANGA56262643298391391334.8162.01.000000Fuzzy
158307030704.0MKONDONIPOLYGON ((39.76664 -3.12704, 39.76661 -3.12802...2344172KenyaKEN_1_1CoastKEN_2_3Kilifi...MKONDONI29971434156346545739.875.0NaNExact
159307030801.0MAKONGENIPOLYGON ((39.57703 -3.10582, 39.57858 -3.1058,...2349123KenyaKEN_1_1CoastKEN_2_3Kilifi...MAKONGENI914247104432159215921224.87.01.000000Fuzzy
160307030802.0MATOLANIPOLYGON ((39.97454 -2.42531, 39.97475 -2.42815...2350123KenyaKEN_1_1CoastKEN_2_3Kilifi...MATOLANI235811611197486486122.419.01.000000Fuzzy
161307030803.0KISIKI CHA WANGIRIAMPOLYGON ((39.62194 -2.61679, 39.62071 -2.74997...2353123KenyaKEN_1_1CoastKEN_2_3Kilifi...KISIKI CHA WANGIRIAM50182534248411151115295.717.00.995640Fuzzy
\n", + "

162 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " SLID SLNAME \\\n", + "0 301010101.0 KONJORA \n", + "1 301010102.0 SOKONI \n", + "2 301010103.0 HOSPITAL \n", + "3 301010104.0 MNARANI \n", + "4 301010201.0 MTONDIA/MAJAONI \n", + ".. ... ... \n", + "157 307030703.0 MALANGA \n", + "158 307030704.0 MKONDONI \n", + "159 307030801.0 MAKONGENI \n", + "160 307030802.0 MATOLANI \n", + "161 307030803.0 KISIKI CHA WANGIRIAM \n", + "\n", + " geometry A index_right \\\n", + "0 POLYGON ((39.82549 -3.54983, 39.81931 -3.56998... 1573 290 \n", + "1 POLYGON ((39.84762 -3.61978, 39.84858 -3.62024... 1575 290 \n", + "2 POLYGON ((39.88548 -3.60158, 39.88465 -3.60362... 1576 290 \n", + "3 POLYGON ((39.83858 -3.67471, 39.83768 -3.67375... 1577 290 \n", + "4 POLYGON ((39.87851 -3.53402, 39.9104 -3.54257,... 1578 290 \n", + ".. ... ... ... \n", + "157 POLYGON ((39.81043 -3.2126, 39.81196 -3.21384,... 2342 7 \n", + "158 POLYGON ((39.76664 -3.12704, 39.76661 -3.12802... 2344 172 \n", + "159 POLYGON ((39.57703 -3.10582, 39.57858 -3.1058,... 2349 123 \n", + "160 POLYGON ((39.97454 -2.42531, 39.97475 -2.42815... 2350 123 \n", + "161 POLYGON ((39.62194 -2.61679, 39.62071 -2.74997... 2353 123 \n", + "\n", + " country provpcode province ctypcode county ... level5 \\\n", + "0 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... KONJORA \n", + "1 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... SOKONI \n", + "2 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... HOSPITAL \n", + "3 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... MNARANI \n", + "4 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... MTONDIA/MAJAONI \n", + ".. ... ... ... ... ... ... ... \n", + "157 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... MALANGA \n", + "158 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... MKONDONI \n", + "159 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... MAKONGENI \n", + "160 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... MATOLANI \n", + "161 Kenya KEN_1_1 Coast KEN_2_3 Kilifi ... KISIKI CHA WANGIRIAM \n", + "\n", + " ind_total ind_male ind_female hh_total hh_conventional km2 density \\\n", + "0 15768 7740 8028 2633 2633 39.3 401.0 \n", + "1 8637 4158 4479 2571 2571 1.1 7864.0 \n", + "2 39776 19263 20512 11550 11546 11.6 3443.0 \n", + "3 11253 5468 5785 3379 3379 16.0 704.0 \n", + "4 23004 11463 11541 4841 4841 39.2 587.0 \n", + ".. ... ... ... ... ... ... ... \n", + "157 5626 2643 2983 913 913 34.8 162.0 \n", + "158 2997 1434 1563 465 457 39.8 75.0 \n", + "159 9142 4710 4432 1592 1592 1224.8 7.0 \n", + "160 2358 1161 1197 486 486 122.4 19.0 \n", + "161 5018 2534 2484 1115 1115 295.7 17.0 \n", + "\n", + " score_fuzzy merge \n", + "0 NaN Exact \n", + "1 NaN Exact \n", + "2 NaN Exact \n", + "3 NaN Exact \n", + "4 0.995476 Fuzzy \n", + ".. ... ... \n", + "157 1.000000 Fuzzy \n", + "158 NaN Exact \n", + "159 1.000000 Fuzzy \n", + "160 1.000000 Fuzzy \n", + "161 0.995640 Fuzzy \n", + "\n", + "[162 rows x 27 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "merged_data_with_geom\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_2466/58861814.py:8: UserWarning: Column names longer than 10 characters will be truncated when saved to ESRI Shapefile.\n", + " merged_data_with_geom.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_merged_sublocations.shp\")\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Normalized/laundered field name: 'index_right' to 'index_righ'\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Normalized/laundered field name: 'hh_conventional' to 'hh_convent'\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Normalized/laundered field name: 'score_fuzzy' to 'score_fuzz'\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010101 of field SLID of feature 0 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010102 of field SLID of feature 1 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010103 of field SLID of feature 2 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010104 of field SLID of feature 3 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010201 of field SLID of feature 4 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010202 of field SLID of feature 5 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010301 of field SLID of feature 6 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010302 of field SLID of feature 7 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010303 of field SLID of feature 8 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010401 of field SLID of feature 9 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010402 of field SLID of feature 10 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010502 of field SLID of feature 11 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301010503 of field SLID of feature 12 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020101 of field SLID of feature 13 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020102 of field SLID of feature 14 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020201 of field SLID of feature 15 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020202 of field SLID of feature 16 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020301 of field SLID of feature 17 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020302 of field SLID of feature 18 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020303 of field SLID of feature 19 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020401 of field SLID of feature 20 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301020402 of field SLID of feature 21 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030101 of field SLID of feature 22 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030102 of field SLID of feature 23 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030103 of field SLID of feature 24 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030104 of field SLID of feature 25 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030201 of field SLID of feature 26 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030202 of field SLID of feature 27 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030203 of field SLID of feature 28 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030301 of field SLID of feature 29 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030302 of field SLID of feature 30 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030303 of field SLID of feature 31 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301030304 of field SLID of feature 32 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040101 of field SLID of feature 33 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040102 of field SLID of feature 34 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040103 of field SLID of feature 35 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040201 of field SLID of feature 36 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040202 of field SLID of feature 37 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040203 of field SLID of feature 38 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040204 of field SLID of feature 39 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040301 of field SLID of feature 40 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040302 of field SLID of feature 41 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040401 of field SLID of feature 42 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040402 of field SLID of feature 43 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040501 of field SLID of feature 44 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301040502 of field SLID of feature 45 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050101 of field SLID of feature 46 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050102 of field SLID of feature 47 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050103 of field SLID of feature 48 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050104 of field SLID of feature 49 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050201 of field SLID of feature 50 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050202 of field SLID of feature 51 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050203 of field SLID of feature 52 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050301 of field SLID of feature 53 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050302 of field SLID of feature 54 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050303 of field SLID of feature 55 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050401 of field SLID of feature 56 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050402 of field SLID of feature 57 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301050403 of field SLID of feature 58 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060101 of field SLID of feature 59 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060102 of field SLID of feature 60 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060103 of field SLID of feature 61 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060201 of field SLID of feature 62 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060202 of field SLID of feature 63 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060203 of field SLID of feature 64 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060301 of field SLID of feature 65 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060302 of field SLID of feature 66 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060303 of field SLID of feature 67 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060304 of field SLID of feature 68 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060401 of field SLID of feature 69 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060402 of field SLID of feature 70 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060403 of field SLID of feature 71 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301060404 of field SLID of feature 72 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070101 of field SLID of feature 73 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070102 of field SLID of feature 74 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070103 of field SLID of feature 75 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070201 of field SLID of feature 76 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070202 of field SLID of feature 77 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070203 of field SLID of feature 78 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070301 of field SLID of feature 79 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070302 of field SLID of feature 80 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070303 of field SLID of feature 81 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070304 of field SLID of feature 82 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070401 of field SLID of feature 83 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070402 of field SLID of feature 84 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070403 of field SLID of feature 85 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070404 of field SLID of feature 86 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070501 of field SLID of feature 87 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070502 of field SLID of feature 88 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070601 of field SLID of feature 89 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070602 of field SLID of feature 90 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070701 of field SLID of feature 91 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070702 of field SLID of feature 92 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070703 of field SLID of feature 93 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070704 of field SLID of feature 94 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070801 of field SLID of feature 95 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070802 of field SLID of feature 96 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301070901 of field SLID of feature 97 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071001 of field SLID of feature 98 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071002 of field SLID of feature 99 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071003 of field SLID of feature 100 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071101 of field SLID of feature 101 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071102 of field SLID of feature 102 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071103 of field SLID of feature 103 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071104 of field SLID of feature 104 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301071105 of field SLID of feature 105 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 301080101 of field SLID of feature 106 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010101 of field SLID of feature 107 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010102 of field SLID of feature 108 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010103 of field SLID of feature 109 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010201 of field SLID of feature 110 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010202 of field SLID of feature 111 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010203 of field SLID of feature 112 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010204 of field SLID of feature 113 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010301 of field SLID of feature 114 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010302 of field SLID of feature 115 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010303 of field SLID of feature 116 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010401 of field SLID of feature 117 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010402 of field SLID of feature 118 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010403 of field SLID of feature 119 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010501 of field SLID of feature 120 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010502 of field SLID of feature 121 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307010503 of field SLID of feature 122 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020101 of field SLID of feature 123 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020102 of field SLID of feature 124 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020201 of field SLID of feature 125 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020202 of field SLID of feature 126 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020203 of field SLID of feature 127 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020301 of field SLID of feature 128 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020302 of field SLID of feature 129 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020303 of field SLID of feature 130 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307020304 of field SLID of feature 131 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030101 of field SLID of feature 132 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030102 of field SLID of feature 133 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030103 of field SLID of feature 134 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030104 of field SLID of feature 135 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030105 of field SLID of feature 136 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030201 of field SLID of feature 137 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030203 of field SLID of feature 138 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030204 of field SLID of feature 139 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030301 of field SLID of feature 140 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030302 of field SLID of feature 141 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030303 of field SLID of feature 142 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030304 of field SLID of feature 143 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030401 of field SLID of feature 144 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030402 of field SLID of feature 145 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030403 of field SLID of feature 146 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030501 of field SLID of feature 147 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030502 of field SLID of feature 148 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030503 of field SLID of feature 149 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030504 of field SLID of feature 150 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030505 of field SLID of feature 151 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030601 of field SLID of feature 152 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030602 of field SLID of feature 153 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030603 of field SLID of feature 154 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030701 of field SLID of feature 155 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030702 of field SLID of feature 156 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030703 of field SLID of feature 157 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030704 of field SLID of feature 158 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030801 of field SLID of feature 159 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030802 of field SLID of feature 160 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 307030803 of field SLID of feature 161 not successfully written. Possibly due to too larger number with respect to field width\n", + " ogr_write(\n" + ] + } + ], + "source": [ + "# Save filtered shapes\n", + "county_kilifi.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_county.kml\", driver='KML')\n", + "subcounties_kilifi.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_subcounties.kml\", driver='KML')\n", + "locations_kilifi.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_locations.kml\", driver='KML')\n", + "sublocations_kilifi.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_sublocations.kml\", driver='KML')\n", + "\n", + "merged_data_with_geom.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_merged_sublocations.kml\", driver='KML')\n", + "merged_data_with_geom.to_file(OUTPUT_PATH / \"00_utils_data\" / \"Kilifi_merged_sublocations.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countryprovpcodeprovincectypcodecountyscpcodesubcountydhis2_idgeometry
0KenyaKEN_1_1CoastKEN_2_1MombasaKEN_3_6Mvita Sub CountyC1xuoa1NAMmPOLYGON ((39.6776 -4.04654, 39.67773 -4.04659,...
1KenyaKEN_1_7NyanzaKEN_2_42KisumuKEN_3_240Kisumu Central Sub CountyOpLt8IgyHopPOLYGON ((34.76317 -0.12726, 34.76295 -0.12751...
2KenyaKEN_1_3EasternKEN_2_15KituiKEN_3_70Kitui West Sub CountycmWAJB5kCDWPOLYGON ((38.03021 -1.23441, 38.03012 -1.23849...
3KenyaKEN_1_6WesternKEN_2_39BungomaKEN_3_219Bumula Sub CountyjkQZEow83MXPOLYGON ((34.52783 0.50833, 34.52831 0.50798, ...
4KenyaKEN_1_7NyanzaKEN_2_42KisumuKEN_3_244Nyakach Sub CountykBQIjtWUBqjPOLYGON ((35.00564 -0.33966, 35.00569 -0.33964...
..............................
299KenyaKEN_1_3EasternKEN_2_16MachakosNoneKalama Sub CountypJDgmrxMQTnPOLYGON ((37.35751 -1.52616, 37.35753 -1.52645...
300KenyaKEN_1_3EasternKEN_2_16MachakosKEN_3_81Machakos Sub CountyKXc4ez8OAFzPOLYGON ((37.14068 -1.5639, 37.14131 -1.55821,...
301KenyaKEN_1_2North EasternKEN_2_9ManderaNoneKutulo Sub CountyiGFdm333PJ2POLYGON ((40.69359 2.77733, 40.69443 2.77617, ...
302KenyaKEN_1_2North EasternKEN_2_9ManderaKEN_3_42MANDERA SOUTHqyhVIMG2rUwPOLYGON ((41.02655 3.04799, 41.02692 3.04804, ...
303KenyaKEN_1_5Rift ValleyKEN_2_27Uasin GishuKEN_3_144Ainabkoi Sub CountymYlMs4xTj82POLYGON ((35.49577 0.32433, 35.49578 0.32427, ...
\n", + "

304 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " country provpcode province ctypcode county scpcode \\\n", + "0 Kenya KEN_1_1 Coast KEN_2_1 Mombasa KEN_3_6 \n", + "1 Kenya KEN_1_7 Nyanza KEN_2_42 Kisumu KEN_3_240 \n", + "2 Kenya KEN_1_3 Eastern KEN_2_15 Kitui KEN_3_70 \n", + "3 Kenya KEN_1_6 Western KEN_2_39 Bungoma KEN_3_219 \n", + "4 Kenya KEN_1_7 Nyanza KEN_2_42 Kisumu KEN_3_244 \n", + ".. ... ... ... ... ... ... \n", + "299 Kenya KEN_1_3 Eastern KEN_2_16 Machakos None \n", + "300 Kenya KEN_1_3 Eastern KEN_2_16 Machakos KEN_3_81 \n", + "301 Kenya KEN_1_2 North Eastern KEN_2_9 Mandera None \n", + "302 Kenya KEN_1_2 North Eastern KEN_2_9 Mandera KEN_3_42 \n", + "303 Kenya KEN_1_5 Rift Valley KEN_2_27 Uasin Gishu KEN_3_144 \n", + "\n", + " subcounty dhis2_id \\\n", + "0 Mvita Sub County C1xuoa1NAMm \n", + "1 Kisumu Central Sub County OpLt8IgyHop \n", + "2 Kitui West Sub County cmWAJB5kCDW \n", + "3 Bumula Sub County jkQZEow83MX \n", + "4 Nyakach Sub County kBQIjtWUBqj \n", + ".. ... ... \n", + "299 Kalama Sub County pJDgmrxMQTn \n", + "300 Machakos Sub County KXc4ez8OAFz \n", + "301 Kutulo Sub County iGFdm333PJ2 \n", + "302 MANDERA SOUTH qyhVIMG2rUw \n", + "303 Ainabkoi Sub County mYlMs4xTj82 \n", + "\n", + " geometry \n", + "0 POLYGON ((39.6776 -4.04654, 39.67773 -4.04659,... \n", + "1 POLYGON ((34.76317 -0.12726, 34.76295 -0.12751... \n", + "2 POLYGON ((38.03021 -1.23441, 38.03012 -1.23849... \n", + "3 POLYGON ((34.52783 0.50833, 34.52831 0.50798, ... \n", + "4 POLYGON ((35.00564 -0.33966, 35.00569 -0.33964... \n", + ".. ... \n", + "299 POLYGON ((37.35751 -1.52616, 37.35753 -1.52645... \n", + "300 POLYGON ((37.14068 -1.5639, 37.14131 -1.55821,... \n", + "301 POLYGON ((40.69359 2.77733, 40.69443 2.77617, ... \n", + "302 POLYGON ((41.02655 3.04799, 41.02692 3.04804, ... \n", + "303 POLYGON ((35.49577 0.32433, 35.49578 0.32427, ... \n", + "\n", + "[304 rows x 9 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subcounties" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_2466/3388638474.py:11: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops_kilifi.centroid.plot(ax=ax3, color=\"black\", markersize=1)\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Rooftops')" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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o6OjTEtL46FDh1KqnstGRkb48MMPs6SkhL/88sukYwkGgwTAs2fPxl2PSDIpZyannInPbMoa5YxI/JQzk1POxGc25cxM1XNZMrJG/9PoGolGoxgeHja15eTkwGazoaWlBf39/aioqJhwf5J47rnn0NDQgJaWFhQUFEx6zkAgAADIy8ub1tivZrr1jDc4OIienh5jrKtXr0Z6ejqam5uNPl1dXejt7YXH40lMEVdIVD319fVYuHAh1q1bN2nfRMyP1+vFmTNnEAgEjFdpaSk2btxovP+317GgoACLFi0y7fP777+jra3N2Mfj8SASiaCjo8Po09LSgmg0CrfbnVL1AP9fjT937hyOHj2KBQsWTDqWQCAAq9Ua8yurIqlKOfPPlDPxm01Zo5wRiZ9y5p8pZ+I3m3JmpuoBkpg1U15ekrjV1NSwtbWVoVCInZ2drKmpocVi4WeffUaSfOedd+j3+9nd3c333nuPdrud27dvNx3jvvvu45tvvml83rp1K7Ozs3n8+HHT4/MuXrxIkuzu7ubOnTvZ3t7OUCjEw4cPs7CwkGVlZSlZzwsvvMDjx48zFArxiy++YHl5OXNyctjf32/02bJlC51OJ1taWtje3k6Px0OPx5OS9ZDk2NgYnU4nfT5fzDlncn7GG/9Ug6lcx+LiYtNqel1dHW02Gw8fPmw8pvNqj6dcuXIl29raeOLECRYVFSX08ZSJqmdkZIQVFRVcvHgxA4GA6f4ZHh4mSZ48eZJ79+5lIBBgT08P9+/fz9zcXD722GMJr0ckEZQzypnxkpkz5OzKGuWMSCzljHJmPOXMta0nmVmjRaMk2LRpE10uFzMyMpibm0uv12vcwCTp8/nocDiYnp7OoqIivv7666ZHGZJ/PSqvtrbW+Azgqq/6+nqSZG9vL8vKymi325mZmcmlS5fyxRdfND1qMZXq2bBhA/Py8piRkcEbb7yRGzZsYHd3t2mfS5cu8dlnn+X8+fN53XXXcf369QyHwylZD0keOXKEANjV1RVzzpmcn/HGf0OaynW88muJ/OsRlS+//DIdDgczMzPp9Xpj6vr1119ZWVnJuXPnct68eXzyySd54cKFlKsnFApNeP8cO3aMJNnR0UG3283s7GxmZWXx1ltv5a5duzg0NJTwekQSQTmjnBkvmTlDzq6sUc6IxFLOKGfGU85c23qSmTWWv08uIiIiIiIiIiJi0P80EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGFo0EhERERERERGRGP8DtprCLb54OfUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15, 5))\n", + "\n", + "merged_data_with_geom.plot(ax=ax1,column='SLNAME', cmap=\"gist_ncar\")\n", + "county_kilifi.boundary.plot(ax=ax1, color='red')\n", + "ax1.set_title(\"Sublocations\")\n", + "\n", + "subcounties_kilifi.plot(ax=ax2,column='subcounty', cmap=\"gist_ncar\")\n", + "county_kilifi.boundary.plot(ax=ax2, color='red')\n", + "ax2.set_title(\"Subcounties\")\n", + "\n", + "rooftops_kilifi.centroid.plot(ax=ax3, color=\"black\", markersize=1)\n", + "county_kilifi.boundary.plot(ax=ax3, color='red')\n", + "ax3.set_title(\"Rooftops\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Subcounty: Ganze Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: MARERE, Rooftops: 1138\n", + "Sublocation: MWAPULA, Rooftops: 785\n", + "Sublocation: CHIVARA, Rooftops: 933\n", + "Sublocation: MAGOGONI, Rooftops: 1548\n", + "Sublocation: VINAGONI, Rooftops: 2251\n", + "Sublocation: VYAMBANI, Rooftops: 1734\n", + "Sublocation: MDANGARANI, Rooftops: 805\n", + "Sublocation: MWEZA/MIGODOMANI, Rooftops: 986\n", + "Sublocation: DUNGICHA/MUHONI, Rooftops: 1260\n", + "Sublocation: PETANGUO, Rooftops: 2267\n", + "Sublocation: GANZE/TSANGALAWENI, Rooftops: 5926\n", + "Sublocation: PALAKUMI/MIGUMOMIRI, Rooftops: 3809\n", + "Sublocation: VITSAPUNI/MARIANI, Rooftops: 2677\n", + "Sublocation: MNAGONI, Rooftops: 2169\n", + "Sublocation: GEDE, Rooftops: 1787\n", + "Sublocation: MIDOINA, Rooftops: 1103\n", + "Sublocation: DANGARANI, Rooftops: 795\n", + "Sublocation: MITSEMERINI, Rooftops: 1426\n", + "Sublocation: KIDEMU, Rooftops: 1117\n", + "Sublocation: MIKAMINI, Rooftops: 743\n", + "Sublocation: MWAKWALA, Rooftops: 2799\n", + "Sublocation: PAZIANI, Rooftops: 3766\n", + "Sublocation: MTSARA-WA-TSATSU, Rooftops: 6786\n", + "Sublocation: MWAMBANI, Rooftops: 1843\n", + "Sublocation: NDIGIRIA/MAPOTEA, Rooftops: 721\n", + "Sublocation: MIHIRINI, Rooftops: 1251\n", + "Sublocation: MADAMANI, Rooftops: 4206\n", + "Sublocation: VITENGENI, Rooftops: 1349\n", + "Sublocation: MITSEDZINI, Rooftops: 696\n", + "Sublocation: MRIMA WA NDEGE, Rooftops: 1046\n", + "Sublocation: DULUKIZA, Rooftops: 586\n", + "Sublocation: MILORE, Rooftops: 925\n", + "Sublocation: MWAHERA, Rooftops: 2377\n", + "Sublocation: KAEMBENI, Rooftops: 1817\n", + "Sublocation: DZIKUNZE, Rooftops: 1207\n", + "Sublocation: NDUGUMNANI, Rooftops: 1800\n", + "Sublocation: MAGOGONI, Rooftops: 3235\n", + "Sublocation: RARE, Rooftops: 1685\n", + "Sublocation: NYARI, Rooftops: 2535\n", + "Sublocation: DIDA, Rooftops: 2834\n", + "Sublocation: ARABUKO SOKOKE FORES, Rooftops: 302\n", + "Sublocation: MALANGA, Rooftops: 2963\n", + "\n", + " Subcounty: Rabai Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: MLEJI, Rooftops: 4741\n", + "Sublocation: MIYUNI, Rooftops: 4133\n", + "Sublocation: JIMBA, Rooftops: 2422\n", + "Sublocation: MIKAHANI, Rooftops: 2235\n", + "Sublocation: MWAMUTSUNGA, Rooftops: 4319\n", + "Sublocation: BWAGAMOYO, Rooftops: 2469\n", + "Sublocation: KISURUTINI/MWELE/SIM, Rooftops: 4957\n", + "Sublocation: BUNI/CHISIMANI, Rooftops: 7569\n", + "Sublocation: KALIANGOMBE/JIMBA, Rooftops: 5881\n", + "Sublocation: MAZERAS/MUGUMO PATSA, Rooftops: 7813\n", + "Sublocation: MBWAKA/KIKOMANI, Rooftops: 3637\n", + "Sublocation: PANGANI/MAERENI, Rooftops: 2481\n", + "Sublocation: CHAURINGO, Rooftops: 4201\n", + "\n", + " Subcounty: Kaloleni Sub County\n", + "Sublocation: MIYANI, Rooftops: 1542\n", + "Sublocation: KINAGONI, Rooftops: 2155\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: MURIMANI, Rooftops: 4262\n", + "Sublocation: MBALAMWENI, Rooftops: 8639\n", + "Sublocation: MARIAKANI/MITANGONI, Rooftops: 16683\n", + "Sublocation: KAWALA/KADZONZO, Rooftops: 11708\n", + "Sublocation: MUNYENZENI, Rooftops: 2481\n", + "Sublocation: KWALE, Rooftops: 2283\n", + "Sublocation: NYALANI, Rooftops: 2344\n", + "Sublocation: CHILULU, Rooftops: 1708\n", + "Sublocation: TSAGWA, Rooftops: 1392\n", + "Sublocation: KITHENGWANI/MAZIA, Rooftops: 5688\n", + "Sublocation: KIBWABWANI, Rooftops: 2774\n", + "Sublocation: VIRAGONI, Rooftops: 4190\n", + "Sublocation: KALOLENI/VISH./TSAKA, Rooftops: 11344\n", + "Sublocation: CHALANI/MIHINGONI, Rooftops: 4004\n", + "Sublocation: MIKIRIANI, Rooftops: 3047\n", + "Sublocation: BIRINI/MWAMULEKA, Rooftops: 2269\n", + "Sublocation: MAKOMBOANI, Rooftops: 3761\n", + "\n", + " Subcounty: Kilifi South Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: KIZINGO, Rooftops: 4669\n", + "Sublocation: MWARAKAYA, Rooftops: 3052\n", + "Sublocation: PINGILIKANI, Rooftops: 2337\n", + "Sublocation: MWEMBE KATI, Rooftops: 3339\n", + "Sublocation: CHASIMBA, Rooftops: 3879\n", + "Sublocation: KITSOENI, Rooftops: 4681\n", + "Sublocation: MWAKAMBI, Rooftops: 2858\n", + "Sublocation: ZIANI, Rooftops: 3859\n", + "Sublocation: NGOMBENI, Rooftops: 2137\n", + "Sublocation: KIJIPWA, Rooftops: 8110\n", + "Sublocation: SHIMO LA TEWA, Rooftops: 26042\n", + "Sublocation: KANAMAI, Rooftops: 12702\n", + "Sublocation: KIDUTANI/MAWAMBA, Rooftops: 7807\n", + "Sublocation: VIPINGO, Rooftops: 6610\n", + "Sublocation: JUNJU, Rooftops: 5838\n", + "Sublocation: KURUWITU, Rooftops: 5113\n", + "\n", + " Subcounty: Magarini Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: BORE, Rooftops: 4489\n", + "Sublocation: MAMBASA, Rooftops: 2086\n", + "Sublocation: MADINA, Rooftops: 3743\n", + "Sublocation: RAMADA, Rooftops: 2050\n", + "Sublocation: KADZANDANI, Rooftops: 487\n", + "Sublocation: ADU, Rooftops: 2074\n", + "Sublocation: KAMALE, Rooftops: 1192\n", + "Sublocation: BARICHO, Rooftops: 1165\n", + "Sublocation: GANDINI, Rooftops: 397\n", + "Sublocation: DAKACHA, Rooftops: 2857\n", + "Sublocation: SINGWAYA, Rooftops: 1606\n", + "Sublocation: MASINDENI, Rooftops: 746\n", + "Sublocation: MIKUYUNI, Rooftops: 1708\n", + "Sublocation: BATE, Rooftops: 2735\n", + "Sublocation: BURA, Rooftops: 2542\n", + "Sublocation: KAYA, Rooftops: 794\n", + "Sublocation: FUNDISA, Rooftops: 5011\n", + "Sublocation: MARERENI, Rooftops: 13367\n", + "Sublocation: NGOMENI, Rooftops: 2773\n", + "Sublocation: SHOMELA, Rooftops: 1602\n", + "Sublocation: GONGONI, Rooftops: 10700\n", + "Sublocation: MAMBRUI, Rooftops: 14925\n", + "Sublocation: MARIKEBUNI, Rooftops: 6427\n", + "Sublocation: PUMWANI, Rooftops: 3542\n", + "Sublocation: BOMANI, Rooftops: 5507\n", + "Sublocation: SABAKI, Rooftops: 13115\n", + "Sublocation: MAKONGENI, Rooftops: 3561\n", + "Sublocation: MATOLANI, Rooftops: 618\n", + "Sublocation: KISIKI CHA WANGIRIAM, Rooftops: 1383\n", + "\n", + " Subcounty: Malindi Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: BARANI, Rooftops: 11410\n", + "Sublocation: KIJIWETANGA, Rooftops: 9419\n", + "Sublocation: SHELLA, Rooftops: 20887\n", + "Sublocation: CENTRAL, Rooftops: 7836\n", + "Sublocation: GANDA, Rooftops: 1188\n", + "Sublocation: MSABAHA, Rooftops: 4918\n", + "Sublocation: MERE, Rooftops: 1680\n", + "Sublocation: KAKUYUNI, Rooftops: 4596\n", + "Sublocation: MADUNGUNI, Rooftops: 1707\n", + "Sublocation: PAZIANI, Rooftops: 1599\n", + "Sublocation: MALIMO, Rooftops: 2220\n", + "Sublocation: MONGOTINI, Rooftops: 716\n", + "Sublocation: KAKONENI, Rooftops: 2783\n", + "Sublocation: JILORE/ZIANI, Rooftops: 3568\n", + "Sublocation: GIRIMACHA, Rooftops: 639\n", + "Sublocation: LANGOBAYA, Rooftops: 2383\n", + "Sublocation: MAKOBENI, Rooftops: 1409\n", + "Sublocation: MKONDONI, Rooftops: 1180\n", + "\n", + " Subcounty: Kilifi North Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_23541/1042205007.py:18: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sublocation: KONJORA, Rooftops: 10290\n", + "Sublocation: SOKONI, Rooftops: 2832\n", + "Sublocation: HOSPITAL, Rooftops: 16457\n", + "Sublocation: MNARANI, Rooftops: 4144\n", + "Sublocation: MTONDIA/MAJAONI, Rooftops: 13393\n", + "Sublocation: KIBARANI, Rooftops: 9881\n", + "Sublocation: NGERENYA, Rooftops: 4109\n", + "Sublocation: EZAMOYO, Rooftops: 2488\n", + "Sublocation: ZOWERANI, Rooftops: 3249\n", + "Sublocation: ROKA, Rooftops: 3214\n", + "Sublocation: CHUMANI, Rooftops: 4074\n", + "Sublocation: MKONGANI, Rooftops: 1758\n", + "Sublocation: UYOMBO, Rooftops: 2410\n", + "Sublocation: MAVUENI/MAJAJANI, Rooftops: 6832\n", + "Sublocation: KIRIBA/WANGWANI, Rooftops: 2142\n", + "Sublocation: TAKAUNGU, Rooftops: 4873\n", + "Sublocation: MKWAJUNI/MKOMANI, Rooftops: 4784\n", + "Sublocation: MIJIMBONI, Rooftops: 3803\n", + "Sublocation: MIDA, Rooftops: 2816\n", + "Sublocation: MKENGE, Rooftops: 3622\n", + "Sublocation: WATAMU, Rooftops: 4786\n", + "Sublocation: JIMBA, Rooftops: 6075\n", + "Sublocation: MBARAKA CHEMBE, Rooftops: 3676\n", + "Sublocation: CHEMBE KIBABA MUCHE, Rooftops: 3876\n" + ] + } + ], + "source": [ + "# Filter rooftops to sublocation\n", + "OUTPUT_PATH_SHAPES = Path(\"./01_filtered_shapes\")\n", + "makedirs(OUTPUT_PATH_SHAPES, exist_ok=True)\n", + "\n", + "for i, subcounty in subcounties_kilifi.iterrows():\n", + " print(\"\\n Subcounty: \", subcounty.subcounty)\n", + " # filter sublocations\n", + " subcounty = gpd.GeoDataFrame(\n", + " [subcounty], \n", + " crs=subcounties.crs, \n", + " geometry=[subcounty.geometry],\n", + " )\n", + " \n", + " OUTPUT_PATH_SUBCOUNTY = OUTPUT_PATH_SHAPES / subcounty.subcounty.values[0]\n", + " makedirs(OUTPUT_PATH_SUBCOUNTY, exist_ok=True)\n", + "\n", + " filtered_sublocations = merged_data_with_geom[\n", + " merged_data_with_geom.geometry.within(subcounty.unary_union.buffer(0.018))].copy()\n", + " filtered_sublocations.to_parquet(OUTPUT_PATH_SUBCOUNTY / \"all_sublocations.parquet\")\n", + "\n", + " # filter rooftops\n", + " for j, sublocation in filtered_sublocations.iterrows():\n", + " filtered_rooftops = rooftops_kilifi[\n", + " rooftops_kilifi.geometry.within(sublocation.geometry.buffer(0.0005))\n", + " ].copy()\n", + " \n", + " print(f\"Sublocation: {sublocation.SLNAME}, Rooftops: {len(filtered_rooftops)}\")\n", + " filename = f\"{sublocation.SLNAME.replace(\"/\", \"-\")}_rooftops.parquet\"\n", + " filtered_rooftops.to_parquet(OUTPUT_PATH_SUBCOUNTY / filename)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pindrop2", + "language": "python", + "name": "pindrop2" + }, + "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": 2 +} diff --git a/kilifi_sampling/02_sample_rooftops_per_subcounty.ipynb b/kilifi_sampling/02_sample_rooftops_per_subcounty.ipynb new file mode 100644 index 0000000..3d85dcd --- /dev/null +++ b/kilifi_sampling/02_sample_rooftops_per_subcounty.ipynb @@ -0,0 +1,1219 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import geopandas as gpd\n", + "import pandas as pd\n", + "from pathlib import Path\n", + "from os import makedirs, listdir\n", + "import fiona\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "from pin_drop_sampling2.utils import (\n", + " count_neighbors_in_radius, \n", + " sample_locations_with_pps,\n", + " randomly_sample_rooftops)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "684" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Paths to files\n", + "INPUT_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/00_utils_data\")\n", + "PREPROCESSED_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/01_filtered_shapes\")\n", + "OUTPUT_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/02_sampled_locations_and_rooftops\")\n", + "\n", + "\n", + "# Load files / params\n", + "subcounties = listdir(PREPROCESSED_PATH)\n", + "merged_data = gpd.read_file(INPUT_PATH / \"Kilifi_merged_sublocations.shp\")\n", + "\n", + "# Parameters\n", + "num_psus_per_subcounty = 10\n", + "rooftop_neighborhood_radius = 100\n", + "num_rooftops_per_sublocation = 10\n", + "np.random.seed(0)\n", + "random_seed = np.random.randint(0, 1000)\n", + "random_seed" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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tm/fzpgxYzhz5gyLFy9m5syZFpMs1KtXj5kzZ3LkyBEOHTpEjx49LP4SPWXKFL7//ntOnTrFmTNnWLVqFe7u7uTKlQs/Pz98fX1p0aIFW7du5fz58+zdu5dPP/2UQ4cOJSrGHDly0LNnTwYOHEhAQAAnT56kW7du3Lt3j65du8b7mj59+hAQEMCkSZM4e/YsM2fOJCAg4JnneeeddzAYDHTr1o2TJ0+yadMmJk2a9MzX9OvXjy1bthASEkJQUBA7duwwJzpFixbFYDCwceNGrl27ZjELXmLNmjWLtWvXcurUKXr16sXNmzd57733AKhRowbZs2fnk08+4dy5cyxfvvypyR+8vLwICQnh6NGjXL9+nejo6KfO0b59exwdHenUqRMnTpxgx44dfPjhh7z77ru4ubklOeZHSpYsyZo1azh69CjHjh3jnXfesWjB8vLyolOnTrz33nusW7eOkJAQdu7cyQ8//JBgnYn5LAwfPpwff/yRP//8kz/++IONGzea35NnfVafFBISwtChQ9m3bx8XLlxg69atnD171lxXvXr1OHToEEuWLOHs2bOMGDGCEydOPFXPxYsXGTBgAKdPn+b7779nxowZ9O3bN97r8/Pzw8fHh/bt2xMUFERgYCAdO3akTp065i6OI0aM4Pvvv2fEiBEEBwebJzkBKFKkCPb29syYMYO//vqL9evXM2bMGItzJOZzWbJkSZo3b063bt347bffOHbsGB06dKBQoUI0b948wfcnKfdPREQkQTdugL+/KZl6+WX46Sd4bAhIRqJEKhOrXLkyP/zwAytWrKBcuXIMHz6c0aNHm2f5Apg8eTKenp785z//4Z133uHjjz8me/bs5uPOzs5MnDiRqlWrUq1aNc6fP8+mTZuwsbHBYDCwadMmXn31Vbp06UKpUqVo27YtFy5cSNIv6ePHj6dVq1a8++67VK5cmT///JMtW7YkuKhszZo1mT9/PtOmTaNChQps3bqVzz777JnnyJkzJxs2bOD333+nUqVKfPrpp+ZfUBMSGxtLr169KFOmDA0bNqRUqVLMnj0bgEKFCjFq1CiGDBmCm5vbU7PgJfa6x48fT4UKFfjtt99Yv369uSUvT548LF26lE2bNuHj48P333/PyJEjLV7fqlUrGjZsSN26dcmfPz/ff//9U+fInj07W7ZsITw8nGrVqvHWW29Rv359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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Check distribution of population / households in Kilifi\n", + "\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))\n", + "ax1.hist(merged_data['ind_total'], label=\"Population distribution across sublocations\")\n", + "ax1.hist(merged_data['hh_total'], label=\"Household distribution across sublocations\")\n", + "ax1.set_xlabel(\"Population / Household number\")\n", + "ax1.set_ylabel(\"Frequency\")\n", + "ax1.legend()\n", + "\n", + "ax2.plot(merged_data['ind_total'] / merged_data['ind_total'].sum(), \n", + "\t\t merged_data['hh_total'] / merged_data['hh_total'].sum(), 'o')\n", + "ax2.plot(np.linspace(0, .1, 100), np.linspace(0, .1, 100), 'r')\n", + "ax2.set_xlabel(\"Population proportion\")\n", + "ax2.set_ylabel(\"Household proportion\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/geopandas/geodataframe.py:1819: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " super().__setitem__(key, value)\n" + ] + } + ], + "source": [ + "# For each subcounty sample 10 sublocations using PPS with replacement, and save\n", + "for subcounty in subcounties:\n", + " sublocations = gpd.read_parquet(PREPROCESSED_PATH / subcounty / \"all_sublocations.parquet\")\n", + " sublocation_names = sublocations.SLNAME.values\n", + " sublocation_sizes = sublocations['ind_total'].values\n", + " samples = sample_locations_with_pps(\n", + " sublocation_names, \n", + " sublocation_sizes, \n", + " num_psus_per_subcounty,\n", + " with_replacement=True,\n", + " random_seed=random_seed)\n", + " sampled_sublocations = sublocations.iloc[samples[1]]\n", + " sampled_sublocations['pps_prob'] = samples[2]\n", + " \n", + " # Save the sampled sublocations\n", + " makedirs(OUTPUT_PATH / subcounty, exist_ok=True)\n", + " sampled_sublocations.to_parquet(OUTPUT_PATH / subcounty / \"sampled_sublocations.parquet\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Rabai Sub County\n", + "2651 | CHAURINGO: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9069 | BUNI-CHISIMANI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4591 | MAZERAS-MUGUMO PATSA: 10\n", + "4959 | KALIANGOMBE-JIMBA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1030 | MAZERAS-MUGUMO PATSA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "445 | BUNI-CHISIMANI: 10\n", + "5525 | BWAGAMOYO: 10\n", + "7493 | BWAGAMOYO: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7870 | MBWAKA-KIKOMANI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1352 | BUNI-CHISIMANI: 10\n", + "\n", + " Malindi Sub County\n", + "2651 | MAKOBENI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9069 | SHELLA: 10\n", + "4591 | GANDA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4959 | CENTRAL: 10\n", + "1030 | KAKUYUNI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "445 | SHELLA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5525 | SHELLA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7493 | KIJIWETANGA: 10\n", + "7870 | MONGOTINI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1352 | SHELLA: 10\n", + "\n", + " Kilifi South Sub County\n", + "2651 | KURUWITU: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9069 | SHIMO LA TEWA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4591 | KANAMAI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4959 | SHIMO LA TEWA: 10\n", + "1030 | KIDUTANI-MAWAMBA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "445 | SHIMO LA TEWA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5525 | KIJIPWA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7493 | KIJIPWA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7870 | VIPINGO: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1352 | SHIMO LA TEWA: 10\n", + "\n", + " Kilifi North Sub County\n", + "2651 | CHEMBE KIBABA MUCHE: 10\n", + "9069 | NGERENYA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4591 | MAVUENI-MAJAJANI: 10\n", + "4959 | ROKA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1030 | MKWAJUNI-MKOMANI: 10\n", + "445 | NGERENYA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5525 | MTONDIA-MAJAONI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7493 | MNARANI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7870 | WATAMU: 10\n", + "1352 | NGERENYA: 10\n", + "\n", + " Ganze Sub County\n", + "2651 | MALANGA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9069 | PAZIANI: 10\n", + "4591 | MADAMANI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4959 | MTSARA-WA-TSATSU: 10\n", + "1030 | MWAHERA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "445 | MTSARA-WA-TSATSU: 10\n", + "5525 | MNAGONI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7493 | PALAKUMI-MIGUMOMIRI: 10\n", + "7870 | MAGOGONI: 10\n", + "1352 | PAZIANI: 10\n", + "\n", + " Magarini Sub County\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2651 | KISIKI CHA WANGIRIAM: 10\n", + "9069 | NGOMENI: 10\n", + "4591 | MAMBRUI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4959 | GONGONI: 10\n", + "1030 | BOMANI: 10\n", + "445 | SHOMELA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5525 | MARERENI: 10\n", + "7493 | FUNDISA: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7870 | SABAKI: 10\n", + "1352 | SHOMELA: 10\n", + "\n", + " Kaloleni Sub County\n", + "2651 | MAKOMBOANI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9069 | KAWALA-KADZONZO: 10\n", + "4591 | KIBWABWANI: 10\n", + "4959 | NYALANI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1030 | KALOLENI-VISH.-TSAKA: 10\n", + "445 | MUNYENZENI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5525 | MARIAKANI-MITANGONI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7493 | MARIAKANI-MITANGONI: 10\n", + "7870 | CHALANI-MIHINGONI: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:17: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x,\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_12561/1700979264.py:18: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " sublocation_rooftops.centroid.y),\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1352 | KAWALA-KADZONZO: 10\n" + ] + } + ], + "source": [ + "# For each sublocation, sample 10 rooftops\n", + "for subcounty in subcounties:\n", + " print(\"\\n\", subcounty)\n", + " # Load sampled sublocations and rooftops\n", + " sampled_sublocations = gpd.read_parquet(OUTPUT_PATH / \n", + " subcounty / \n", + " \"sampled_sublocations.parquet\")\n", + "\n", + " for i, sublocation in enumerate(sampled_sublocations.SLNAME):\n", + " sublocation = sublocation.replace(\"/\", \"-\")\n", + " sublocation_rooftops = gpd.read_parquet(PREPROCESSED_PATH / \n", + " subcounty / \n", + " f\"{sublocation}_rooftops.parquet\")\n", + " \n", + " num_neighbours = count_neighbors_in_radius(\n", + " gpd.GeoDataFrame(sublocation_rooftops.drop(columns='geometry'), \n", + " geometry=gpd.points_from_xy(sublocation_rooftops.centroid.x, \n", + " sublocation_rooftops.centroid.y),\n", + " crs=sublocation_rooftops.crs\n", + " ), \n", + " rooftop_neighborhood_radius)\n", + " sublocation_rooftops['num_neighbours'] = num_neighbours\n", + "\n", + " # Sample 10 rooftops\n", + " np.random.seed(random_seed + i*10)\n", + " rooftop_random_seed = np.random.randint(0, 10000)\n", + " rooftop_idx = randomly_sample_rooftops(\n", + " num_neighbours, \n", + " num_rooftops_per_sublocation, \n", + " random_seed=rooftop_random_seed)\n", + " sampled_rooftops = sublocation_rooftops.iloc[rooftop_idx]\n", + "\n", + " sampled_rooftops.to_parquet(OUTPUT_PATH / subcounty / f\"{i+1}_{sublocation}_sampled_rooftops.parquet\")\n", + " print(f\"{rooftop_random_seed} | {sublocation}: {sampled_rooftops.shape[0]}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pindrop2", + "language": "python", + "name": "pindrop2" + }, + "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": 2 +} diff --git a/kilifi_sampling/03_make_outputs.ipynb b/kilifi_sampling/03_make_outputs.ipynb new file mode 100644 index 0000000..a368a29 --- /dev/null +++ b/kilifi_sampling/03_make_outputs.ipynb @@ -0,0 +1,613 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "During startup - Warning messages:\n", + "1: Setting LC_COLLATE failed, using \"C\" \n", + "2: Setting LC_TIME failed, using \"C\" \n", + "3: Setting LC_MESSAGES failed, using \"C\" \n", + "4: Setting LC_MONETARY failed, using \"C\" \n" + ] + } + ], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "import geopandas as gpd\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from pathlib import Path\n", + "from os import listdir, makedirs\n", + "\n", + "from pin_drop_sampling2.utils import gen_rooftop_map" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Set paths and paramters\n", + "PREPROCESSED_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/01_filtered_shapes\")\n", + "SAMPLES_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/02_sampled_locations_and_rooftops\")\n", + "OUTPUT_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/03_maps_and_kml_files\")\n", + "\n", + "# Load files / params\n", + "subcounties = listdir(PREPROCESSED_PATH)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'KAMBE/RIBE' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'RABAI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Fuzzy' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MWAWESA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '2_BUNI-CHISIMANI_rooftops' adjusted to '2_BUNI_CHISIMANI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '3_MAZERAS-MUGUMO PATSA_rooftops' adjusted to '3_MAZERAS_MUGUMO_PATSA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '4_KALIANGOMBE-JIMBA_rooftops' adjusted to '4_KALIANGOMBE_JIMBA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '5_MAZERAS-MUGUMO PATSA_rooftops' adjusted to '5_MAZERAS_MUGUMO_PATSA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '6_BUNI-CHISIMANI_rooftops' adjusted to '6_BUNI_CHISIMANI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '9_MBWAKA-KIKOMANI_rooftops' adjusted to '9_MBWAKA_KIKOMANI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '10_BUNI-CHISIMANI_rooftops' adjusted to '10_BUNI_CHISIMANI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'LANGOBAYA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MALINDI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'KIKAMBALA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Fuzzy' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '2_SHIMO LA TEWA_rooftops' adjusted to '2_SHIMO_LA_TEWA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '4_SHIMO LA TEWA_rooftops' adjusted to '4_SHIMO_LA_TEWA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '5_KIDUTANI-MAWAMBA_rooftops' adjusted to '5_KIDUTANI_MAWAMBA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '6_SHIMO LA TEWA_rooftops' adjusted to '6_SHIMO_LA_TEWA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '10_SHIMO LA TEWA_rooftops' adjusted to '10_SHIMO_LA_TEWA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MALINDI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Fuzzy' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'BAHARI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'KIKAMBALA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '1_CHEMBE KIBABA MUCHE_rooftops' adjusted to '1_CHEMBE_KIBABA_MUCHE_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '3_MAVUENI-MAJAJANI_rooftops' adjusted to '3_MAVUENI_MAJAJANI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '5_MKWAJUNI-MKOMANI_rooftops' adjusted to '5_MKWAJUNI_MKOMANI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '7_MTONDIA-MAJAONI_rooftops' adjusted to '7_MTONDIA_MAJAONI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'LANGOBAYA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Fuzzy' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'BAMBA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'VITENGENI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Manual' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'GANZE' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '4_MTSARA-WA-TSATSU_rooftops' adjusted to '4_MTSARA_WA_TSATSU_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '6_MTSARA-WA-TSATSU_rooftops' adjusted to '6_MTSARA_WA_TSATSU_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '8_PALAKUMI-MIGUMOMIRI_rooftops' adjusted to '8_PALAKUMI_MIGUMOMIRI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'LANGOBAYA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Fuzzy' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MAGARINI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MALINDI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '1_KISIKI CHA WANGIRIAM_rooftops' adjusted to '1_KISIKI_CHA_WANGIRIAM_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'KALOLENI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Fuzzy' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MARIAKANI' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'Exact' of field sampled_sublocations.density parsed incompletely to real 0.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Value 'MWANAMWINGA' of field sampled_sublocations.share parsed incompletely to real 0.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '2_KAWALA-KADZONZO_rooftops' adjusted to '2_KAWALA_KADZONZO_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '5_KALOLENI-VISH.-TSAKA_rooftops' adjusted to '5_KALOLENI_VISH._TSAKA_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '7_MARIAKANI-MITANGONI_rooftops' adjusted to '7_MARIAKANI_MITANGONI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '8_MARIAKANI-MITANGONI_rooftops' adjusted to '8_MARIAKANI_MITANGONI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '9_CHALANI-MIHINGONI_rooftops' adjusted to '9_CHALANI_MIHINGONI_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n", + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_18467/2918049991.py:19: UserWarning: Geometry is in a geographic CRS. Results from 'centroid' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.\n", + "\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Layer name '10_KAWALA-KADZONZO_rooftops' adjusted to '10_KAWALA_KADZONZO_rooftops' for XML validity.\n", + " ogr_write(\n", + "/Users/poornimaramesh/Library/Caches/pypoetry/virtualenvs/pin-drop-sampling2-RChTn2Ku-py3.12/lib/python3.12/site-packages/pyogrio/raw.py:723: RuntimeWarning: Lossy conversion occurred when trying to set 64 bit integer field from a real value.\n", + " ogr_write(\n" + ] + } + ], + "source": [ + "for subcounty in subcounties:\n", + " # Load data\n", + " sampled_sublocations = gpd.read_parquet(SAMPLES_PATH / subcounty / \"sampled_sublocations.parquet\")\n", + " # Save kml\n", + " makedirs(OUTPUT_PATH / subcounty, exist_ok=True)\n", + " sampled_sublocations.to_file(OUTPUT_PATH / subcounty / \"sampled_sublocations.kml\", driver=\"KML\")\n", + "\n", + " makedirs(OUTPUT_PATH / subcounty / \"maps\", exist_ok=True)\n", + " makedirs(OUTPUT_PATH / subcounty / \"kml_files\", exist_ok=True)\n", + " makedirs(OUTPUT_PATH / subcounty / \"gmap_links\", exist_ok=True)\n", + "\n", + " for i, (_, sublocation) in enumerate(sampled_sublocations.iterrows()):\n", + " sl_name = sublocation.SLNAME.replace(\"/\", \"-\")\n", + " # Load rooftops\n", + " rooftops = gpd.read_parquet(\n", + " SAMPLES_PATH / \n", + " subcounty / \n", + " f\"{i+1}_{sl_name}_sampled_rooftops.parquet\")\n", + " rooftops.geometry = gpd.points_from_xy(rooftops.centroid.x, rooftops.centroid.y)\n", + " # rooftops = rooftops.set_crs(epsg=4326)\n", + " map = gen_rooftop_map(sublocation.geometry, \n", + " rooftops)\n", + " map.save(str(OUTPUT_PATH / subcounty / \"maps\" / f\"{i+1}_{sl_name}_rooftop_map.html\"))\n", + " rooftops.to_file(OUTPUT_PATH / subcounty / \"kml_files\" / f\"{i+1}_{sl_name}_rooftops.kml\", driver=\"KML\")\n", + "\n", + " # Create df with gmap links\n", + " df = pd.DataFrame(\n", + " {\n", + " \"subcounty\": [subcounty] * len(rooftops),\n", + " \"sublocation\": [sublocation.SLNAME] * len(rooftops),\n", + " \"rooftop_id\": range(1, len(rooftops) + 1),\n", + " \"gmap_link\": [f\"https://www.google.com/maps/search/?api=1&query={row.geometry.centroid.y},{row.geometry.centroid.x}\"\n", + " for _, row in rooftops.iterrows()]\n", + " }\n", + " )\n", + " df.to_csv(OUTPUT_PATH / subcounty / \"gmap_links\" / f\"{i+1}_{sl_name}_gmap_links.csv\", index=False)\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pindrop2", + "language": "python", + "name": "pindrop2" + }, + "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": 2 +} diff --git a/kilifi_sampling/04_match_sublocation_to_wards.ipynb b/kilifi_sampling/04_match_sublocation_to_wards.ipynb new file mode 100644 index 0000000..c125b37 --- /dev/null +++ b/kilifi_sampling/04_match_sublocation_to_wards.ipynb @@ -0,0 +1,997 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load and split rooftops for Kilifi" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import geopandas as gpd\n", + "import pandas as pd\n", + "from pathlib import Path\n", + "from os import makedirs\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paths to files\n", + "INPUT_PATH = Path(\"../data/01_Raw data/\")\n", + "OUTPUT_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/\")\n", + "\n", + "CLEANED_DATA_PATH = OUTPUT_PATH / \"00_utils_data\"\n", + "PREPROCESSED_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/01_filtered_shapes\")\n", + "SAMPLES_PATH = Path(\"../data/03_Output/Kilifi -- Kenya/02_sampled_locations_and_rooftops\")\n", + "\n", + "WARD_SHP = INPUT_PATH / \"02_Admin boundary data/Kenya/kenya_wards/Kenya wards.shp\"\n", + "\n", + "\n", + "merged_subcounty_locations = OUTPUT_PATH / \"00_utils_data/Merged sublocation census.csv\"" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "county_kilifi = gpd.read_file(CLEANED_DATA_PATH / \"Kilifi_county.kml\", driver=\"KML\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/mq/6zyh6j6j1wzc58dyc13z2hr00000gn/T/ipykernel_99515/2257887114.py:5: DeprecationWarning: The 'unary_union' attribute is deprecated, use the 'union_all()' method instead.\n", + " wards_kilifi = wards[wards.geometry.within(county_kilifi.unary_union.buffer(0.01))].copy()\n" + ] + } + ], + "source": [ + "# Get wards within Kilifi county\n", + "wards = gpd.read_file(WARD_SHP)\n", + "wards.set_crs(epsg=4326, inplace=True)\n", + "\n", + "wards_kilifi = wards[wards.geometry.within(county_kilifi.unary_union.buffer(0.01))].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IEBC_WARDSCOUNTFIRST_PROVFIRST_DISTFIRST_DIVIPCODESTATUSNOSHAPE_1STATUS_1geometry
9Adu8CoastMalindiMalindiKE0011None83.0PolygonNonePOLYGON ((39.63016 -3.09363, 39.63 -3.0937, 39...
50Bamba10CoastKilifiBambaKE0052None72.0PolygonNonePOLYGON ((39.53103 -3.62951, 39.53106 -3.62975...
57Malindi Town1CoastMalindiMalindiKE0059None78.0PolygondonePOLYGON ((40.11988 -3.21394, 40.11985 -3.2141,...
148Chasimba5CoastKilifiChonyiKE0150None61.0PolygonNonePOLYGON ((39.77382 -3.66937, 39.77542 -3.67111...
193Dabaso4CoastMalindiMalindiKE0195None54.0PolygonNonePOLYGON ((39.98831 -3.3149, 39.98834 -3.31501,...
212Dungicha9CoastKilifiBambaKE0214NoneNaNNoneNonePOLYGON ((39.80716 -3.48888, 39.80693 -3.49414...
266Ganda4CoastMalindiMalindiKE0268None77.0PolygonNonePOLYGON ((40.07188 -3.18761, 40.07156 -3.18789...
269Garashi9CoastMalindiMarafaKE0271None84.0PolygonNonePOLYGON ((40.02925 -3.03791, 40.02865 -3.03887...
313Gongoni4CoastMalindiMagariniKE0315None82.0PolygonNonePOLYGON ((40.17129 -2.89896, 40.17109 -2.89929...
376Jaribuni9CoastKilifiGanzeKE0378None73.0PolygonNonePOLYGON ((39.7587 -3.603, 39.76476 -3.60297, 3...
378Jibana7CoastKilifiKaloleniKE0380NoneNaNNoneNonePOLYGON ((39.69733 -3.85684, 39.6976 -3.85687,...
379Jilore6CoastMalindiMalindiKE0381None75.0PolygonNonePOLYGON ((39.86924 -3.15019, 39.86922 -3.15057...
383Junju3CoastKilifiKikambalaKE0385None58.0PolygonNonePOLYGON ((39.8298 -3.80804, 39.82958 -3.80842,...
421Kakuyuni4CoastMalindiMalindiKE0423None76.0PolygonNonePOLYGON ((39.97197 -3.2473, 39.91785 -3.25065,...
532Kayafungo6CoastKilifiKaloleniKE0534None64.0PolygonNonePOLYGON ((39.5754 -3.77221, 39.57545 -3.77231,...
562Kibarani3CoastKilifiBahariKE0564None53.0PolygonNonePOLYGON ((39.8482 -3.49761, 39.84808 -3.50001,...
782Magarini4CoastMalindiMagariniKE0784None81.0PolygonNonePOLYGON ((40.12426 -3.14619, 40.12409 -3.14604...
811Malindi1CoastMalindiMalindiKE0813None78.0PolygonNonePOLYGON ((40.12083 -3.20804, 40.12104 -3.20858...
822Marafa3CoastMalindiMarafaKE0824None80.0PolygonNonePOLYGON ((39.94147 -2.84661, 39.9432 -2.8474, ...
832Mariakani2CoastKilifiKaloleniKE0834None63.0PolygonNonePOLYGON ((39.49909 -3.80922, 39.4991 -3.8095, ...
859Matsangoni4CoastKilifiBahariKE0861None55.0PolygonNonePOLYGON ((39.93368 -3.36982, 39.93359 -3.37011...
875Mazeras/mugumo Wa Patsa2CoastKilifiKaloleniKE0877NoneNaNNoneNonePOLYGON ((39.55521 -3.92943, 39.55561 -3.92983...
916Mnarani5CoastKilifiKikambalaKE0918None57.0PolygonNonePOLYGON ((39.80548 -3.70252, 39.80538 -3.70258...
933Mtepeni3CoastKilifiKikambalaKE0935None62.0PolygonNonePOLYGON ((39.71352 -3.88079, 39.71312 -3.88123...
998Mwanamwinga3CoastKilifiKaloleniKE1000None66.0PolygonNonePOLYGON ((39.59277 -3.65016, 39.593 -3.64989, ...
1001Mwarakaya4CoastKilifiChonyiKE1003None59.0PolygonNonePOLYGON ((39.68702 -3.82676, 39.68692 -3.82619...
1005Mwawesa5CoastKilifiKaloleniKE1007None67.0PolygonNonePOLYGON ((39.63503 -3.9197, 39.63512 -3.91993,...
1179Ruruma3CoastKilifiKaloleniKE1181None68.0PolygonNonePOLYGON ((39.57998 -3.90777, 39.57973 -3.90795...
1185Sabaki1CoastMalindiMalindiKE1187None85.0PolygonNonePOLYGON ((40.12426 -3.14619, 40.12445 -3.14637...
1222Shimo La Tewa2CoastKilifiKikambalaKE1224None60.0PolygonNoneMULTIPOLYGON (((39.74644 -3.92285, 39.74815 -3...
1249Sokoke13CoastKilifiVitengeniKE1251None74.0PolygonNonePOLYGON ((39.80926 -3.41486, 39.8091 -3.42234,...
1250Sokoni2CoastKilifiBahariKE1252None52.0PolygonNonePOLYGON ((39.8589 -3.63494, 39.8585 -3.63506, ...
1303Tezo3CoastKilifiBahariKE1305None51.0PolygonNonePOLYGON ((39.91032 -3.54197, 39.91028 -3.54221...
1384Watamu4CoastMalindiMalindiKE1386None56.0PolygonNonePOLYGON ((40.06206 -3.32745, 40.06195 -3.32756...
\n", + "
" + ], + "text/plain": [ + " IEBC_WARDS COUNT FIRST_PROV FIRST_DIST FIRST_DIVI PCODE \\\n", + "9 Adu 8 Coast Malindi Malindi KE0011 \n", + "50 Bamba 10 Coast Kilifi Bamba KE0052 \n", + "57 Malindi Town 1 Coast Malindi Malindi KE0059 \n", + "148 Chasimba 5 Coast Kilifi Chonyi KE0150 \n", + "193 Dabaso 4 Coast Malindi Malindi KE0195 \n", + "212 Dungicha 9 Coast Kilifi Bamba KE0214 \n", + "266 Ganda 4 Coast Malindi Malindi KE0268 \n", + "269 Garashi 9 Coast Malindi Marafa KE0271 \n", + "313 Gongoni 4 Coast Malindi Magarini KE0315 \n", + "376 Jaribuni 9 Coast Kilifi Ganze KE0378 \n", + "378 Jibana 7 Coast Kilifi Kaloleni KE0380 \n", + "379 Jilore 6 Coast Malindi Malindi KE0381 \n", + "383 Junju 3 Coast Kilifi Kikambala KE0385 \n", + "421 Kakuyuni 4 Coast Malindi Malindi KE0423 \n", + "532 Kayafungo 6 Coast Kilifi Kaloleni KE0534 \n", + "562 Kibarani 3 Coast Kilifi Bahari KE0564 \n", + "782 Magarini 4 Coast Malindi Magarini KE0784 \n", + "811 Malindi 1 Coast Malindi Malindi KE0813 \n", + "822 Marafa 3 Coast Malindi Marafa KE0824 \n", + "832 Mariakani 2 Coast Kilifi Kaloleni KE0834 \n", + "859 Matsangoni 4 Coast Kilifi Bahari KE0861 \n", + "875 Mazeras/mugumo Wa Patsa 2 Coast Kilifi Kaloleni KE0877 \n", + "916 Mnarani 5 Coast Kilifi Kikambala KE0918 \n", + "933 Mtepeni 3 Coast Kilifi Kikambala KE0935 \n", + "998 Mwanamwinga 3 Coast Kilifi Kaloleni KE1000 \n", + "1001 Mwarakaya 4 Coast Kilifi Chonyi KE1003 \n", + "1005 Mwawesa 5 Coast Kilifi Kaloleni KE1007 \n", + "1179 Ruruma 3 Coast Kilifi Kaloleni KE1181 \n", + "1185 Sabaki 1 Coast Malindi Malindi KE1187 \n", + "1222 Shimo La Tewa 2 Coast Kilifi Kikambala KE1224 \n", + "1249 Sokoke 13 Coast Kilifi Vitengeni KE1251 \n", + "1250 Sokoni 2 Coast Kilifi Bahari KE1252 \n", + "1303 Tezo 3 Coast Kilifi Bahari KE1305 \n", + "1384 Watamu 4 Coast Malindi Malindi KE1386 \n", + "\n", + " STATUS NO SHAPE_1 STATUS_1 \\\n", + "9 None 83.0 Polygon None \n", + "50 None 72.0 Polygon None \n", + "57 None 78.0 Polygon done \n", + "148 None 61.0 Polygon None \n", + "193 None 54.0 Polygon None \n", + "212 None NaN None None \n", + "266 None 77.0 Polygon None \n", + "269 None 84.0 Polygon None \n", + "313 None 82.0 Polygon None \n", + "376 None 73.0 Polygon None \n", + "378 None NaN None None \n", + "379 None 75.0 Polygon None \n", + "383 None 58.0 Polygon None \n", + "421 None 76.0 Polygon None \n", + "532 None 64.0 Polygon None \n", + "562 None 53.0 Polygon None \n", + "782 None 81.0 Polygon None \n", + "811 None 78.0 Polygon None \n", + "822 None 80.0 Polygon None \n", + "832 None 63.0 Polygon None \n", + "859 None 55.0 Polygon None \n", + "875 None NaN None None \n", + "916 None 57.0 Polygon None \n", + "933 None 62.0 Polygon None \n", + "998 None 66.0 Polygon None \n", + "1001 None 59.0 Polygon None \n", + "1005 None 67.0 Polygon None \n", + "1179 None 68.0 Polygon None \n", + "1185 None 85.0 Polygon None \n", + "1222 None 60.0 Polygon None \n", + "1249 None 74.0 Polygon None \n", + "1250 None 52.0 Polygon None \n", + "1303 None 51.0 Polygon None \n", + "1384 None 56.0 Polygon None \n", + "\n", + " geometry \n", + "9 POLYGON ((39.63016 -3.09363, 39.63 -3.0937, 39... \n", + "50 POLYGON ((39.53103 -3.62951, 39.53106 -3.62975... \n", + "57 POLYGON ((40.11988 -3.21394, 40.11985 -3.2141,... \n", + "148 POLYGON ((39.77382 -3.66937, 39.77542 -3.67111... \n", + "193 POLYGON ((39.98831 -3.3149, 39.98834 -3.31501,... \n", + "212 POLYGON ((39.80716 -3.48888, 39.80693 -3.49414... \n", + "266 POLYGON ((40.07188 -3.18761, 40.07156 -3.18789... \n", + "269 POLYGON ((40.02925 -3.03791, 40.02865 -3.03887... \n", + "313 POLYGON ((40.17129 -2.89896, 40.17109 -2.89929... \n", + "376 POLYGON ((39.7587 -3.603, 39.76476 -3.60297, 3... \n", + "378 POLYGON ((39.69733 -3.85684, 39.6976 -3.85687,... \n", + "379 POLYGON ((39.86924 -3.15019, 39.86922 -3.15057... \n", + "383 POLYGON ((39.8298 -3.80804, 39.82958 -3.80842,... \n", + "421 POLYGON ((39.97197 -3.2473, 39.91785 -3.25065,... \n", + "532 POLYGON ((39.5754 -3.77221, 39.57545 -3.77231,... \n", + "562 POLYGON ((39.8482 -3.49761, 39.84808 -3.50001,... \n", + "782 POLYGON ((40.12426 -3.14619, 40.12409 -3.14604... \n", + "811 POLYGON ((40.12083 -3.20804, 40.12104 -3.20858... \n", + "822 POLYGON ((39.94147 -2.84661, 39.9432 -2.8474, ... \n", + "832 POLYGON ((39.49909 -3.80922, 39.4991 -3.8095, ... \n", + "859 POLYGON ((39.93368 -3.36982, 39.93359 -3.37011... \n", + "875 POLYGON ((39.55521 -3.92943, 39.55561 -3.92983... \n", + "916 POLYGON ((39.80548 -3.70252, 39.80538 -3.70258... \n", + "933 POLYGON ((39.71352 -3.88079, 39.71312 -3.88123... \n", + "998 POLYGON ((39.59277 -3.65016, 39.593 -3.64989, ... \n", + "1001 POLYGON ((39.68702 -3.82676, 39.68692 -3.82619... \n", + "1005 POLYGON ((39.63503 -3.9197, 39.63512 -3.91993,... \n", + "1179 POLYGON ((39.57998 -3.90777, 39.57973 -3.90795... \n", + "1185 POLYGON ((40.12426 -3.14619, 40.12445 -3.14637... \n", + "1222 MULTIPOLYGON (((39.74644 -3.92285, 39.74815 -3... \n", + "1249 POLYGON ((39.80926 -3.41486, 39.8091 -3.42234,... \n", + "1250 POLYGON ((39.8589 -3.63494, 39.8585 -3.63506, ... \n", + "1303 POLYGON ((39.91032 -3.54197, 39.91028 -3.54221... \n", + "1384 POLYGON ((40.06206 -3.32745, 40.06195 -3.32756... " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wards_kilifi" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "# Sampled sublocations for one subcounty -- for example\n", + "subcounty = \"Ganze Sub County\"\n", + "sublocation_within_sucounty = \"PAZIANI\"\n", + "\n", + "sublocation_shapefile = gpd.read_parquet(SAMPLES_PATH / subcounty / \"sampled_sublocations.parquet\")\n", + "sublocation_shapefile = sublocation_shapefile[sublocation_shapefile.SLNAME == sublocation_within_sucounty]\n", + "\n", + "sublocation_rooftops = gpd.read_parquet(SAMPLES_PATH / subcounty / f\"2_{sublocation_within_sucounty}_sampled_rooftops.parquet\")" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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+9vfnrvcYl//p3/6p3bcDaLEqdkuvru/HyUz3r1kiKjzpATOT1zcRbyh24CmiABH1HpaO6702LFj8DwPf/VXf4Vdu3bh0KFDuP/++1Eul/HAAw8s+j3bt2/H4ODggs/99V//Nb7+9a/jve9974LPP/jgg3jPe94z9+/e3t6W3weipHFcD48eHMB4aek3P0REq3XprNQ73tAHhaFqZe95z3sWhJ6dO3fi+PHj+Iu/+IslQ5Wqqti0adOCzz300EP4D//hPyCXyy34fG9v72WXXY5pmjDNi00LC4VC3d9LlARSSjx1ZBgXJqtBD4WIEmBjdxrb1mSCHkbLdaymanp6GmvXrq378i+99BIOHDiA++6777KvffzjH8f69etxyy234G//9m9X7M76ta99DT09PXMf27dvb3j8RHH2k9fHcHyoGPQwiCghbt25FkLEa5YK6FCoOnHiBL7xjW/gv/7X/1r39/zN3/wNrrnmGtx+++0LPv/lL38Z//zP/4x9+/bhnnvuwe/93u/hG9/4xrLX9fnPfx7T09NzH+fPn1/V/SCKo/3nJvHS2fh2OCaicFEVgR1rs0EPoy0aWv773Oc+hz/+4z9e9jJHjx7Fnj175v7d39+P97znPfjN3/xN3H///XXdTrVaxT/+4z/iD/7gDy772vzPvelNb0K5XMbXv/51fOITn1jy+gzDgGEYdd02UZK8PlyM5bZmIgqvvrwBTY1n84GGQtWnPvUpfOQjH1n2Mjt37pz774GBAdx55524/fbb8dd//dd1386//Mu/oFKp4N57713xsm9729vwla98BaZpMjgRNeDCZAVPHBoCW1ERUSft3pQPeght01Co6uvrQ19fX12X7e/vx5133ombb74ZDz74IBSl/lT6N3/zN/jABz5Q120dOHAAa9asYaAiasB4ycQjBwfgeExURNRZV63rCnoIbdOW3X/9/f244447cMUVV+CBBx7A6OjF5YXZXXv9/f1417vehW9+85u45ZZb5r5+4sQJ/PjHP8b3v//9y6730UcfxfDwMG699Vak02ns27cPX/3qV/HpT3+6HXeDKJZKpoOH9vfDjOnZW0QUXpt70ljTFc8jaoA2hap9+/bhxIkTOHHiBLZt27bga7M79WzbxvHjx1GpVBZ8/W//9m+xbds23HXXXZddr67r+PM//3N88pOfhJQSu3btwp/8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qvClL30JnZ2dOPfccwEAF198MebPn4/PfOYzuP/++3HgwAF8/etfx6pVq4bNihERERGVUtlKGieTSWzduhX9/f3p2/7t3/4NiqJg5cqViMfjuOSSS/CDH/wgfb+qqvjVr36Fm266CZ2dnQgGg7juuuvwzW9+sxynQERERJTmaZ2qSpVrvQkiIiKistepIiIiIppMGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFQRERERuUAr9wDKQUoJAIhEImUeCREREVW6wXhhMH7IZlIGVT09PQCA9vb2Mo+EiIiIxouenh5UV1dnvV/IscKuCchxHOzbtw/hcBhCiHIPp6JEIhG0t7dj9+7dqKqqKvdwxjVeS3fwOrqH19I9vJbuGQ/XUkqJnp4etLa2QlGyZ05NypkqRVHQ1tZW7mFUtKqqqor94R5veC3dwevoHl5L9/BauqfSr+VoM1SDmKhORERE5AIGVUREREQuYFBFGUzTxJ133gnTNMs9lHGP19IdvI7u4bV0D6+leybStZyUiepEREREbuNMFREREZELGFQRERERuYBBFREREZELGFQRERERuYBBFREREZELGFRNUA8++CAWLVqUrlDb2dmJ5557Ln3/9u3b8alPfQqNjY2oqqrC1VdfjYMHD456zHvvvRdnnXUWwuEwmpqacMUVV2Dr1q1en0rZeXEth7rvvvsghMBXvvIVD0ZfWby6lnv37sXf//3fo76+Hn6/HwsXLsRrr73m5amUnRfX0rZt3HHHHZg+fTr8fj9mzpyJu+66a8wmshPNSO/JWCyGVatWob6+HqFQCCtXrhzzekop8Y1vfANTpkyB3+/HRRddhPfee8/j0VcWN65lMpnE6tWrsXDhQgSDQbS2tuLaa6/Fvn37SnAG+WFQNUG1tbXhvvvuw8aNG/Haa6/hwgsvxCc/+Um89dZb6Ovrw8UXXwwhBF544QX88Y9/RCKRwCc+8Qk4jpP1mOvWrcOqVavw8ssvY+3atUgmk7j44ovR19dXwjMrPS+u5aBXX30V//Ef/4FFixaV4EzKz4trefz4cSxbtgy6ruO5557D22+/je985zuora0t4ZmVnhfX8lvf+hYefPBBfP/738eWLVvwrW99C/fffz8eeOCBEp5ZeWV7T95yyy149tln8eSTT2LdunXYt28frrzyylGPdf/99+N73/seHnroIWzYsAHBYBCXXHIJYrGYl6dQMdy6lv39/di0aRPuuOMObNq0CU8//TS2bt2KFStWeH0K+ZM0adTW1sof/ehH8je/+Y1UFEV2d3en7+vq6pJCCLl27dqcj3fo0CEJQK5bt86L4VY0N65lT0+PnD17tly7dq380Ic+JG+++WaPR12Zir2Wq1evlueff34phlrxir2Wl19+ufzc5z6XcduVV14pr7nmGs/GXEmyvSe7urqkruvyySefTD92y5YtEoBcv379iMdyHEe2tLTIb3/72+nburq6pGma8r//+789PY9K4Oa1HMkrr7wiAcgPPvjA7aEXhTNVk4Bt23j88cfR19eHzs5OxONxCCEyqtf6fD4oioKXXnop5+N2d3cDAOrq6lwfc6Vy81quWrUKl19+OS666CKvh12R3LqW//u//4ulS5fi05/+NJqamrBkyRL88Ic/LMUpVAy3ruV5552H559/Hu+++y4A4M9//jNeeuklXHbZZZ6fQyXI9p7cuHEjkslkxu3z5s1DR0cH1q9fP+Kxdu7ciQMHDmQ8p7q6Guecc07W50wkbl7LkXR3d0MIgZqaGreG7Aqt3AMg77z55pvo7OxELBZDKBTCM888g/nz56OxsRHBYBCrV6/GPffcAykl1qxZA9u2sX///pyO7TgOvvKVr2DZsmVYsGCBx2dSfm5fy8cffxybNm3Cq6++WsKzqAxuX8sdO3bgwQcfxK233op//Md/xKuvvoovf/nLMAwD1113XQnPrPTcvpZr1qxBJBLBvHnzoKoqbNvG3XffjWuuuaaEZ1Ueo70nDxw4AMMwhn2ANzc348CBAyMeb/D25ubmnJ8zUbh9LU8Wi8WwevVq/O3f/i2qqqrcGLJrOFM1gc2dOxebN2/Ghg0bcNNNN+G6667D22+/jcbGRjz55JN49tlnEQqFUF1dja6uLpxxxhlQlNx+JFatWoW//OUvePzxxz0+i8rg5rXcvXs3br75Zjz66KPw+XwlPpPyc/vn0nEcnHHGGbjnnnuwZMkSfP7zn8eNN96Ihx56qIRnVR5uX8snnngCjz76KB577DFs2rQJjzzyCP71X/8VjzzySAnPqvQm+3vSTV5fy2QyiauvvhpSSjz44IOuH79oZV18pJJavny5/PznP59x2+HDh+Xx48ellFI2NzfL+++/f8zjrFq1Sra1tckdO3Z4McxxoZhr+cwzz0gAUlXV9BcAKYSQqqpKy7K8Hn5FKfbnsqOjQ95www0Zt/3gBz+Qra2tro+10hV7Ldva2uT3v//9jNvuuusuOXfuXNfHWknGek/+7ne/kwDS13FQR0eH/O53vzviMbdv3y4ByNdffz3j9gsuuEB++ctf9uhMys+LazkokUjIK664Qi5atEgeOXLEw7MoHJf/JhHHcRCPxzNua2hoAAC88MILOHTo0Ki7KaSU+NKXvoRnnnkGv//97zF9+nRPx1vJirmWy5cvx5tvvplx22c/+1nMmzcPq1evhqqq3gy6QhX7c7ls2bJhpT3effddTJs2zf3BVrhir2V/f/+wmSxVVXPayTqejfWebG9vh67reP7557Fy5UoAwNatW7Fr1y50dnaOeMzp06ejpaUFzz//PBYvXgwAiEQi6VnFicqLawmcmKF677338OKLL6K+vt7T8yhYuaM68saaNWvkunXr5M6dO+Ubb7wh16xZI4UQ8re//a2UUsqHH35Yrl+/Xm7btk3+7Gc/k3V1dfLWW2/NOMaFF14oH3jggfT3N910k6yurpa///3v5f79+9Nf/f39JT23UvPiWp5ssuz+8+JavvLKK1LTNHn33XfL9957Tz766KMyEAjIn//85yU9t1Lz4lped911curUqfJXv/qV3Llzp3z66adlQ0ODvO2220p6bpXg5PfkF77wBdnR0SFfeOEF+dprr8nOzk7Z2dmZ8Zy5c+fKp59+Ov39fffdJ2tqauQvf/lL+cYbb8hPfvKTcvr06TIajZbqNCpCsdcykUjIFStWyLa2Nrl58+aMz594PF7KUxkTg6oJ6nOf+5ycNm2aNAxDNjY2yuXLl6d/2UqZ2obe3NwsdV2Xs2fPlt/5znek4zgZx5g2bZq88847098DGPHrJz/5SYnOqjy8uJYnmyxBlVfX8tlnn5ULFiyQpmnKefPmyf/8z/8sxemUlRfXMhKJyJtvvll2dHRIn88nZ8yYIf/pn/6p4j64SuHk92Q0GpVf/OIXZW1trQwEAvJTn/qU3L9/f8ZzTv596DiOvOOOO2Rzc7M0TVMuX75cbt26tURnUDmKvZY7d+7M+vnz4osvlu5EciCknGSlcomIiIg8wN1/RERERC5gUEVERETkAgZVRERERC5gUEVERETkAgZVRERERC5gUEVERETkAgZVRERERC5gUEVERETkAgZVRERERC5gUEVERETkAgZVRERERC74/5Oehps4GA0XAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "sublocation_shapefile.plot(ax=ax)\n", + "wards_kilifi.plot(ax=ax, alpha=0.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "wards_within_sublocation = []\n", + "for _, ward in wards_kilifi.iterrows():\n", + " if ward.geometry.intersects(sublocation_shapefile.geometry).tolist()[0]:\n", + " wards_within_sublocation.append(ward)\n", + "\n", + "wards_within_sublocation = gpd.GeoDataFrame(wards_within_sublocation, crs=wards_kilifi.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "sublocation_rooftops[\"ward\"] = \"\"\n", + "for i, rooftop in sublocation_rooftops.iterrows():\n", + " for _, ward in wards_within_sublocation.iterrows():\n", + " if rooftop.geometry.within(ward.geometry):\n", + " sublocation_rooftops.loc[i, \"ward\"] = ward.IEBC_WARDS\n", + "\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
geometryboundary_idbf_sourceconfidencearea_in_metersnum_neighboursward
24827685POLYGON ((39.51414 -3.60226, 39.51413 -3.60223...343microsoftNaN28.80282617Bamba
25094496POLYGON ((39.52607 -3.54434, 39.52602 -3.54433...343google0.783149.69940034Bamba
24920758POLYGON ((39.52361 -3.54376, 39.5236 -3.54372,...343google0.793624.34540038Bamba
25141425POLYGON ((39.52286 -3.54443, 39.52279 -3.54434...343google0.8892140.79830058Bamba
25354847POLYGON ((39.52661 -3.54198, 39.52662 -3.54187...343google0.893297.06570048Bamba
24883788POLYGON ((39.49084 -3.559, 39.49082 -3.55893, ...343google0.876740.98060025Bamba
25024169POLYGON ((39.52278 -3.53841, 39.52278 -3.53836...343google0.826032.99360056Bamba
25150870POLYGON ((39.52371 -3.54467, 39.52363 -3.54466...343google0.869575.80090037Bamba
25279095POLYGON ((39.52084 -3.54407, 39.5208 -3.54406,...343google0.705814.57820093Bamba
25110286POLYGON ((39.51313 -3.60257, 39.51312 -3.60254...343google0.841324.10510022Bamba
\n", + "
" + ], + "text/plain": [ + " geometry boundary_id \\\n", + "24827685 POLYGON ((39.51414 -3.60226, 39.51413 -3.60223... 343 \n", + "25094496 POLYGON ((39.52607 -3.54434, 39.52602 -3.54433... 343 \n", + "24920758 POLYGON ((39.52361 -3.54376, 39.5236 -3.54372,... 343 \n", + "25141425 POLYGON ((39.52286 -3.54443, 39.52279 -3.54434... 343 \n", + "25354847 POLYGON ((39.52661 -3.54198, 39.52662 -3.54187... 343 \n", + "24883788 POLYGON ((39.49084 -3.559, 39.49082 -3.55893, ... 343 \n", + "25024169 POLYGON ((39.52278 -3.53841, 39.52278 -3.53836... 343 \n", + "25150870 POLYGON ((39.52371 -3.54467, 39.52363 -3.54466... 343 \n", + "25279095 POLYGON ((39.52084 -3.54407, 39.5208 -3.54406,... 343 \n", + "25110286 POLYGON ((39.51313 -3.60257, 39.51312 -3.60254... 343 \n", + "\n", + " bf_source confidence area_in_meters num_neighbours ward \n", + "24827685 microsoft NaN 28.802826 17 Bamba \n", + "25094496 google 0.7831 49.699400 34 Bamba \n", + "24920758 google 0.7936 24.345400 38 Bamba \n", + "25141425 google 0.8892 140.798300 58 Bamba \n", + "25354847 google 0.8932 97.065700 48 Bamba \n", + "24883788 google 0.8767 40.980600 25 Bamba \n", + "25024169 google 0.8260 32.993600 56 Bamba \n", + "25150870 google 0.8695 75.800900 37 Bamba \n", + "25279095 google 0.7058 14.578200 93 Bamba \n", + "25110286 google 0.8413 24.105100 22 Bamba " + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sublocation_rooftops" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pindrop2", + "language": "python", + "name": "pindrop2" + }, + "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": 2 +} diff --git a/pin_drop_sampling2/utils.py b/pin_drop_sampling2/utils.py index f7c9f0f..0b211ff 100644 --- a/pin_drop_sampling2/utils.py +++ b/pin_drop_sampling2/utils.py @@ -10,12 +10,14 @@ import requests from shapely.ops import nearest_points from geopy.distance import geodesic +from rpy2 import robjects + load_dotenv() api_key = os.getenv("GOOGLE_MAPS_API_KEY") -def count_neighbors_in_radius(gdf, radius=100): +def count_neighbors_in_radius(gdf, radius=100) -> np.ndarray: """ Counts the number of points within a given radius (including the point itself) for each point in a GeoDataFrame. Note that we could speed up this code by using scipy.spatial.cKDTree and performing the operation by groups but keeping the code as is for simplicity. @@ -35,7 +37,30 @@ def count_neighbors_in_radius(gdf, radius=100): joined["left_index"] = joined.index neighbor_counts = joined.groupby("left_index").size() gdf["neighbor_count"] = gdf.index.map(neighbor_counts).fillna(0) - return gdf["neighbor_count"] + return gdf["neighbor_count"].values + + +def randomly_sample_rooftops(rooftop_neighbour_count: list | np.ndarray, + n_samples: int, + random_seed: int = 42) -> np.ndarray: + """ + Randomly sample rooftops proportional to number of neighbours. + + Parameters: + - rooftop_neighbour_count (list | np.ndarray): Number of neighbours for each rooftop. + - n_samples (int): Number of samples to draw. + - random_seed (int): Random seed. + + Returns: + - np.ndarray: Sampled rooftop indices. + """ + # Set random seed + np.random.seed(random_seed) + return np.random.choice( + np.arange(len(rooftop_neighbour_count)), + size=n_samples, + p=rooftop_neighbour_count / np.sum(rooftop_neighbour_count), + replace=False) def get_s2_cell_id(point: Point, level: int = 6) -> int: @@ -60,18 +85,19 @@ def gen_rooftop_map(poly: Polygon, gdf: GeoDataFrame) -> folium.Map: """ Generates a folium map showing rooftops and boundary. - Args: - poly (Polygon): Boundary of the PSU - gdf (GeoDataFrame): The GeoDataFrame containing rooftop polygons. + Parameters: + - poly (Polygon): Boundary of the PSU + - gdf (GeoDataFrame): The GeoDataFrame containing rooftop polygons. Returns: folium.Map: The generated folium map. """ m = folium.Map( location=[poly.centroid.y, poly.centroid.x], - zoom_start=20, + zoom_start=12, tiles="https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}", attr="Esri", + alpha=0.01, ) # add rooftop polygons to the map @@ -79,11 +105,12 @@ def gen_rooftop_map(poly: Polygon, gdf: GeoDataFrame) -> folium.Map: folium.GeoJson( row.geometry, style_function=lambda x: { - "color": "red", - "fillColor": "red", - "weight": 1, - "fillOpacity": 0.1, + "color": "red", + "fillColor": "red", + "weight": 1, + "fillOpacity": 1., }, + marker=folium.CircleMarker(radius=.01) ).add_to(m) # add the polygon to the map @@ -91,16 +118,16 @@ def gen_rooftop_map(poly: Polygon, gdf: GeoDataFrame) -> folium.Map: poly, style_function=lambda x: { "color": "blue", - "fillColor": "blue", + "fillColor": "None", "weight": 1, - "fillOpacity": 0.1, + "fillOpacity": 0.2, }, ).add_to(m) return m # Function to find the nearest point on a road -def get_nearest_point_on_road_free(point: Point, buffer_distance = 200): +def get_nearest_point_on_road_free(point: Point, buffer_distance: float = 200) -> Point: """ Finds the nearest point to the given point which lies on a road using OSMs open source road data. Takes a really long time to run. @@ -129,16 +156,15 @@ def get_nearest_point_on_road_free(point: Point, buffer_distance = 200): return nearest_point -def get_nearest_point_on_road(point: Point): +def get_nearest_point_on_road(point: Point) -> Point: """ Retrieves the nearest point on the road for a given point using the Google Roads API. - Args: - point (Point): The point for which to find the nearest point on the road. + Parameters: + - point (Point): The point for which to find the nearest point on the road. Returns: Point: The nearest point on the road, or None if no point is found. - """ url = f"https://roads.googleapis.com/v1/snapToRoads?path={point.y},{point.x}&key={api_key}" response = requests.get(url) @@ -147,16 +173,16 @@ def get_nearest_point_on_road(point: Point): -def get_nearest_point_on_road_batch(points_series): +def get_nearest_point_on_road_batch(points_series: gpd.GeoSeries) -> gpd.GeoSeries: """ WARNING: THIS CODE DOESN'T WORK!!! DO NOT USE IT. Get the nearest points on roads for a batch of points using Google Maps Snap to Roads API. Parameters: - points_series (GeoSeries): A GeoSeries containing points. + - points_series (GeoSeries): A GeoSeries containing points. Returns: - GeoSeries: A GeoSeries containing the nearest points on roads. + - GeoSeries: A GeoSeries containing the nearest points on roads. """ def call_snap_to_roads_api(points_batch): url = "https://roads.googleapis.com/v1/snapToRoads" @@ -185,7 +211,17 @@ def call_snap_to_roads_api(points_batch): return snapped_points_series -def dist_in_meters(point1, point2): +def dist_in_meters(point1: Point, point2: Point) -> float: + """ + Calculate the distance between two points in meters. + + Parameters: + - point1 (Point): The first point. + - point2 (Point): The second point. + + Returns: + - float: The distance between the two points in meters. + """ # Check if either of the points is None if point1 is None or point2 is None: return None @@ -195,4 +231,70 @@ def dist_in_meters(point1, point2): lat2, lon2 = point2.y, point2.x # Calculate the distance in meters - return geodesic((lat1, lon1), (lat2, lon2)).meters \ No newline at end of file + return geodesic((lat1, lon1), (lat2, lon2)).meters + + +def sample_locations_with_pps( + all_psus: list | np.ndarray, + sizes: list | np.ndarray, + n_samples: int, + with_replacement: bool = False, + random_seed: int = 42, +) -> tuple: + """ + Sample PSUs with PPS. + + Parameters: + - all_psus: List of PSUs from which to sample + - sizes: Sizes corresponding to each PSU + - n_samples: Number of samples + - with_replacement: Whether to sample with replacement + - random_seed: Random seed + + Returns: + - tuple: A tuple containing the sampled PSUs, sampled PSUs index, and the probabilities. + """ + assert len(all_psus) == len(sizes), "Length of all_psus and sizes should be the same" + # Get sample sizes for locations + r_sizes = robjects.FloatVector(sizes) + r_n_samp = robjects.IntVector([n_samples]) + r_seed = robjects.IntVector([random_seed]) + + # Sample locations with PPS using R packages + rcode = "" + if with_replacement: + rcode = str( + """ + function(size, n_samp, seed) { + library(TeachingSampling) + set.seed(seed) + samples <- S.PPS(m=n_samp, x=size) + return(samples) + } + """ + ) + else: + rcode = str( + """ + function(size, n_samp, seed) { + library(TeachingSampling) + set.seed(seed) + samples <- S.piPS(n=n_samp, x=size) + return(samples) + } + """ + ) + r_func = robjects.r(rcode) + r_samples = np.array( + r_func(size=r_sizes, n_samp=r_n_samp, seed=r_seed) + ).T # <-- transpose so that 1st row = samples; second row = probs + + # Get sampled locations and corresponding shape data + sampled_psus_idx = r_samples[0].astype(int) - 1 # <-- R is 1-indexed + pps_sampled_psus = all_psus[sampled_psus_idx] + + return ( + pps_sampled_psus, + sampled_psus_idx, + r_samples[1], + ) \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 076ea40..e4bd85e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "appnope" @@ -1990,6 +1990,31 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "rpy2" +version = "3.5.17" +description = "Python interface to the R language (embedded R)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "rpy2-3.5.17.tar.gz", hash = "sha256:dbff08c30f3d79161922623858a5b3b68a3fba8ee1747d6af41bc4ba68f3d582"}, +] + +[package.dependencies] +cffi = ">=1.15.1" +jinja2 = "*" +packaging = {version = "*", markers = "platform_system == \"Windows\""} +tzlocal = "*" + +[package.extras] +all = ["ipython", "numpy (<1.26)", "numpy (>=1.26)", "pandas", "pandas (>=1.3.5)", "pytest"] +doc = ["ipykernel", "jupytext", "multipledispatch", "nbconvert", "numpy", "pandas", "pygraphviz", "sphinx"] +numpy = ["numpy (<1.26)", "numpy (>=1.26)"] +pandas = ["numpy (<1.26)", "numpy (>=1.26)", "pandas", "pandas (>=1.3.5)"] +test = ["ipython", "numpy (<1.26)", "numpy (>=1.26)", "pandas", "pandas (>=1.3.5)", "pytest"] +test-minimal = ["coverage", "pytest (>=8)", "pytest-cov"] +types = ["mypy", "types-tzlocal"] + [[package]] name = "s2sphere" version = "0.2.5" @@ -2284,6 +2309,23 @@ files = [ {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, ] +[[package]] +name = "tzlocal" +version = "5.3" +description = "tzinfo object for the local timezone" +optional = false +python-versions = ">=3.9" +files = [ + {file = "tzlocal-5.3-py3-none-any.whl", hash = "sha256:3814135a1bb29763c6e4f08fd6e41dbb435c7a60bfbb03270211bcc537187d8c"}, + {file = "tzlocal-5.3.tar.gz", hash = "sha256:2fafbfc07e9d8b49ade18f898d6bcd37ae88ce3ad6486842a2e4f03af68323d2"}, +] + +[package.dependencies] +tzdata = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] + [[package]] name = "urllib3" version = "2.2.3" @@ -2326,4 +2368,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "<3.13,>=3.11" -content-hash = "0268165e8f168d5f9d29f1a911ba0cb64a5fac8dabf5838eac6bc956539bfc8f" +content-hash = "d67dfeb6ad08e43519c0054df38fe2eb49a21c97efea54e8bfc2bfce50ea3784" diff --git a/pyproject.toml b/pyproject.toml index e56e2dd..7056983 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,8 @@ scipy = "^1.14.1" statsmodels = "^0.14.4" fiona = "^1.10.1" simplekml = "^1.3.6" +ipykernel = "^6.29.5" +rpy2 = "^3.5.17" [tool.poetry.group.dev.dependencies]