diff --git a/Pipfile b/Pipfile
index 1eb3f2d..dd63684 100644
--- a/Pipfile
+++ b/Pipfile
@@ -43,9 +43,11 @@ catboost = "*"
shap = "*"
modapsclient = "*"
pyqt5 = "*"
+ipykernel = "*"
+pyreadstat = "*"
[dev-packages]
autopep8 = "*"
[requires]
-python_version = "3.8"
+python_version = "3.9"
diff --git a/Pipfile.lock b/Pipfile.lock
index e41d83c..e041b0a 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,11 +1,11 @@
{
"_meta": {
"hash": {
- "sha256": "eab16c07adf0f12eb6edf1b07178c65a8f737f8c59286d03b6db016102a0f9ab"
+ "sha256": "a3e625e387a4f43ab3b14ea9d01f432dd2b513566d061c73d403a566b47d2a3d"
},
"pipfile-spec": 6,
"requires": {
- "python_version": "3.8"
+ "python_version": "3.9"
},
"sources": [
{
@@ -78,11 +78,11 @@
},
"attrs": {
"hashes": [
- "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
- "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
+ "sha256:3901be1cb7c2a780f14668691474d9252c070a756be0a9ead98cfeabfa11aeb8",
+ "sha256:8ee1e5f5a1afc5b19bdfae4fdf0c35ed324074bdce3500c939842c8f818645d9"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==20.3.0"
+ "version": "==21.1.0"
},
"azure-common": {
"hashes": [
@@ -632,19 +632,19 @@
},
"ipykernel": {
"hashes": [
- "sha256:21abd584543759e49010975a4621603b3cf871b1039cb3879a14094717692614",
- "sha256:a682e4f7affd86d9ce9b699d21bcab6d5ec9fbb2bfcb194f2706973b252bc509"
+ "sha256:1ce0e83672cc3bfdc1ffb5603e1d77ab125f24b41abc4612e22bfb3e994c0db2",
+ "sha256:f57739bf26d7396549562c0c888b96be896385ce099fb34ca89af359b7436b25"
],
- "markers": "python_version >= '3.5'",
- "version": "==5.5.3"
+ "index": "pypi",
+ "version": "==5.5.4"
},
"ipython": {
"hashes": [
- "sha256:3455b020a895710c4366e8d1b326e5ee6aa684607907fc96895e7b8359569f49",
- "sha256:69178f32bf9c6257430b6f592c3ae230c32861a1966d2facec454e09078e232d"
+ "sha256:714810a5c74f512b69d5f3b944c86e592cee0a5fb9c728e582f074610f6cf038",
+ "sha256:f78c6a3972dde1cc9e4041cbf4de583546314ba52d3c97208e5b6b2221a9cb7d"
],
"markers": "python_version >= '3.3'",
- "version": "==7.23.0"
+ "version": "==7.23.1"
},
"ipython-genutils": {
"hashes": [
@@ -748,11 +748,11 @@
},
"jupyter-packaging": {
"hashes": [
- "sha256:780082b43506eccb3fb39ed9306300b637245e622a9644701c60d89992468822",
- "sha256:7d2cff62d0b0cf5267f5cd9edb4bd04591f68aa919bf026e7787f0424c0e7c55"
+ "sha256:b3fb2cb0049fa3b974e08b67b0f65504d31dc4a7f131275e52e9f91c19125777",
+ "sha256:ddaf8ae4e415dedd183d335650d30eb4419c58720f216ce9bafa68c6ea8b5dd1"
],
"markers": "python_version >= '3.6'",
- "version": "==0.9.2"
+ "version": "==0.10.1"
},
"jupyter-server": {
"hashes": [
@@ -1303,11 +1303,11 @@
},
"pandas-profiling": {
"hashes": [
- "sha256:ccf1bf10f5e88516fd0d807462e553c2bfcf2c0939f231fb8818b243c72eb9a1",
- "sha256:ee3c427436a0ba2a797c35b5c4dc04a1ebc7dc0b755ec48a05bd52552dc898fa"
+ "sha256:0cad96968b634033b4dd3347505f6730b4527e5853519cca89b62518df6ccf6d",
+ "sha256:3b62223f685a851c3c45a954ec4958fb9067dcc2570a0ee715fb017925153267"
],
"index": "pypi",
- "version": "==2.11.0"
+ "version": "==2.12.0"
},
"pandocfilters": {
"hashes": [
@@ -1517,11 +1517,11 @@
},
"pygments": {
"hashes": [
- "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
- "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
+ "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f",
+ "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"
],
"markers": "python_version >= '3.5'",
- "version": "==2.8.1"
+ "version": "==2.9.0"
},
"pyparsing": {
"hashes": [
@@ -1609,6 +1609,32 @@
"markers": "python_version >= '3.5'",
"version": "==12.8.1"
},
+ "pyreadstat": {
+ "hashes": [
+ "sha256:14f7fbb3398a1d5200e7848c9c2c7dfcd06996ab8ed5d0c34f4517d3b090e4e2",
+ "sha256:1519bdfa948821c4d593be37fbd7e8b710bbaee4581ba9085529ab41bd7eb793",
+ "sha256:17be24e721100ed57f2a18dca93890d0eb12b3918d99237421e71460695c5604",
+ "sha256:2a40f611a5d9666147cbf2b168f1e35623c4d0db2aee170bf921233973574c8d",
+ "sha256:2b62722cd7e6d6b32b439e87e2fa14384411db85a06f701a010e0468d7ff9f17",
+ "sha256:2fa03db9385b4fb17ece8e4d8cce831eb3745456ab7dde43fd0f97c2ec1a1f7e",
+ "sha256:40ab7e25fbc40ea8ddce36f0578b162e41d4d56fe6a44ba2bdf45329ff835be4",
+ "sha256:4eb9e18223fd5ff71695a73d917851e8aca6f4f62da94a085111e476eee31628",
+ "sha256:54d09bd0785c980ec1715e2d290ae3a84060d3a026ab912b7b8b1a26e372ba7e",
+ "sha256:5d8439daceb5361d610d773245860e6f6660e912e02e306fd9fc11f021223950",
+ "sha256:68abb1f1bfe327e17c80e0d6306721ed047b45c4c6bc4a54bc4a37261724de38",
+ "sha256:6d7484a1f3cd516b9fae7b72f97afa3070f527511518da9132af999a72ebf169",
+ "sha256:6e11e993c17aea66eaf9c1886d3f360570272e3a77315eaa078818ea1f1db3d5",
+ "sha256:7ba561ab383559be8f8e8bf935f4cb4ed25d6da11af6ff2ee6177326a19ca803",
+ "sha256:8cf1f69abd629daec3eb2375f7dbc0b2e7a5f2ee64f7836b5424a527a30891e8",
+ "sha256:9719cc98a3115793388525c5a0fe6be06a703d5e1512b4c522f53b5579066a15",
+ "sha256:a103cbdb145ef4f8b872792f64b6bda6930d84337aaede90dd2919fdc7630fb5",
+ "sha256:bd72695c316e1e2546587ed5bfd2596cd628d82bf211a06907156d27037b9c4c",
+ "sha256:de6f98cfb95b511ef9344c8d0f883de1d279cd053617b85975d216feb5eb6272",
+ "sha256:e1b8f1dfc94d0df155d40df804d3b1381cdf72c6c19315a3ab221a81caaf9110"
+ ],
+ "index": "pypi",
+ "version": "==1.1.2"
+ },
"pyrsistent": {
"hashes": [
"sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"
@@ -1625,11 +1651,11 @@
},
"pytest": {
"hashes": [
- "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634",
- "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"
+ "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b",
+ "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"
],
"markers": "python_version >= '3.6'",
- "version": "==6.2.3"
+ "version": "==6.2.4"
},
"pytest-sugar": {
"hashes": [
@@ -2026,11 +2052,11 @@
},
"six": {
"hashes": [
- "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
- "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
+ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
+ "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
- "version": "==1.15.0"
+ "version": "==1.16.0"
},
"sklearn": {
"hashes": [
@@ -2075,7 +2101,7 @@
"sha256:052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc",
"sha256:c2c1c2d44f158cdbddab7824a9af8c4f83c76b1e23e049479aa432feb6c4c23b"
],
- "markers": "python_version >= '3'",
+ "markers": "python_version >= '3.0'",
"version": "==2.2.1"
},
"statsmodels": {
diff --git a/dssg/data-exploration/araria_voronoi.ipynb b/dssg/data-exploration/araria_voronoi.ipynb
index a0b6226..79c8247 100644
--- a/dssg/data-exploration/araria_voronoi.ipynb
+++ b/dssg/data-exploration/araria_voronoi.ipynb
@@ -10,13 +10,18 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5-final"
+ "version": "3.9.0"
},
"orig_nbformat": 2,
"kernelspec": {
- "name": "python38564bitwriindiaexthyhlp5re4d96c4cb0fb248a699be028bbf9263df",
- "display_name": "Python 3.8.5 64-bit ('WRI_India_ext-hyHLP5Re')",
+ "name": "python385jvsc74a57bd0d4a53db61837b04487d02c25116133aa28f6a79c740d093360b2328df5f2ed08",
+ "display_name": "Python 3.8.5 64-bit ('WRI_WellBeing_Data_Layer-3UVuR9IU')",
"language": "python"
+ },
+ "metadata": {
+ "interpreter": {
+ "hash": "d4a53db61837b04487d02c25116133aa28f6a79c740d093360b2328df5f2ed08"
+ }
}
},
"nbformat": 4,
@@ -24,52 +29,106 @@
"cells": [
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import geopandas as gpd \n",
+ "import pandas as pd\n",
+ "import dssg.dataio.osm_data_extraction as ode\n",
"import os\n",
"from dotenv import load_dotenv\n",
- "load_dotenv()"
+ "load_dotenv()\n",
+ "import pyreadstat"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Import the voronoi shape of India\n",
"import dssg.dataio.osm_to_voronoi_mapping as ovm\n",
"data_dir = os.environ.get(\"DATA_DIR\")\n",
- "india_voronoi_gpd = gpd.read_file(data_dir + \"voronoi3_clip/voronoi3_clip.shp\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
+ "india_voronoi_gpd = gpd.read_file(data_dir + \"voronoi/IAGE71FL_Voronoi_Clipped/IAGE71FL_Voronoi_Clipped.shp\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " DHSID DHSCLUST ADM1DHS DHSREGCO DHSREGNA URBAN_RURA \\\n",
+ "0 IA201400310502 310502.0 31.0 602.0 Thiruvallur R \n",
+ "1 IA201400310190 310190.0 31.0 602.0 Thiruvallur R \n",
+ "2 IA201400310070 310070.0 31.0 602.0 Thiruvallur R \n",
+ "3 IA201400310716 310716.0 31.0 602.0 Thiruvallur R \n",
+ "4 IA201400310592 310592.0 31.0 602.0 Thiruvallur R \n",
+ "\n",
+ " LATNUM LONGNUM ALT_DEM DATUM WEIGHT \\\n",
+ "0 13.320202 80.010414 39.0 WGS84 0.04504 \n",
+ "1 13.118380 79.803917 56.0 WGS84 0.04504 \n",
+ "2 13.147002 79.804755 44.0 WGS84 0.04504 \n",
+ "3 13.263585 80.188453 14.0 WGS84 0.04504 \n",
+ "4 13.261215 80.222348 18.0 WGS84 0.04504 \n",
+ "\n",
+ " geometry \n",
+ "0 POLYGON ((79.95699 13.28227, 79.95030 13.37055... \n",
+ "1 POLYGON ((79.77943 12.97075, 79.71600 12.99485... \n",
+ "2 POLYGON ((79.83122 13.24096, 79.87546 13.14136... \n",
+ "3 POLYGON ((80.20192 13.21268, 80.10237 13.25050... \n",
+ "4 POLYGON ((80.27104 13.24175, 80.20483 13.20947... "
+ ],
+ "text/html": "
\n\n
\n \n \n | \n DHSID | \n DHSCLUST | \n ADM1DHS | \n DHSREGCO | \n DHSREGNA | \n URBAN_RURA | \n LATNUM | \n LONGNUM | \n ALT_DEM | \n DATUM | \n WEIGHT | \n geometry | \n
\n \n \n \n 0 | \n IA201400310502 | \n 310502.0 | \n 31.0 | \n 602.0 | \n Thiruvallur | \n R | \n 13.320202 | \n 80.010414 | \n 39.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((79.95699 13.28227, 79.95030 13.37055... | \n
\n \n 1 | \n IA201400310190 | \n 310190.0 | \n 31.0 | \n 602.0 | \n Thiruvallur | \n R | \n 13.118380 | \n 79.803917 | \n 56.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((79.77943 12.97075, 79.71600 12.99485... | \n
\n \n 2 | \n IA201400310070 | \n 310070.0 | \n 31.0 | \n 602.0 | \n Thiruvallur | \n R | \n 13.147002 | \n 79.804755 | \n 44.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((79.83122 13.24096, 79.87546 13.14136... | \n
\n \n 3 | \n IA201400310716 | \n 310716.0 | \n 31.0 | \n 602.0 | \n Thiruvallur | \n R | \n 13.263585 | \n 80.188453 | \n 14.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((80.20192 13.21268, 80.10237 13.25050... | \n
\n \n 4 | \n IA201400310592 | \n 310592.0 | \n 31.0 | \n 602.0 | \n Thiruvallur | \n R | \n 13.261215 | \n 80.222348 | \n 18.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((80.27104 13.24175, 80.20483 13.20947... | \n
\n \n
\n
"
+ },
+ "metadata": {},
+ "execution_count": 3
+ }
+ ],
"source": [
"india_voronoi_gpd.head()"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "error",
+ "ename": "NameError",
+ "evalue": "name 'os' is not defined",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mindia_shape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0menviron\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"DATA_DIR\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\"/gadm36_shp/gadm36_IND_2.shp\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m: name 'os' is not defined"
+ ]
+ }
+ ],
"source": [
- "import dssg.dataio.osm_data_extraction as ode\n",
+ "\n",
"india_shape = os.environ.get(\"DATA_DIR\") + \"/gadm36_shp/gadm36_IND_2.shp\""
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 5,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " \n*** Profile printout saved to text file '../profile/extract_district_dataframe'. \n"
+ ]
+ }
+ ],
"source": [
"%%prun -s cumulative -q -l 10 -T ../profile/extract_district_dataframe\n",
"import matplotlib.pyplot as plt \n",
@@ -81,18 +140,34 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " 43085 function calls (39448 primitive calls) in 1.387 seconds\n\n Ordered by: cumulative time\n List reduced from 717 to 10 due to restriction <10>\n\n ncalls tottime percall cumtime percall filename:lineno(function)\n 1 0.000 0.000 1.387 1.387 {built-in method builtins.exec}\n 1 0.000 0.000 1.387 1.387 :1()\n 1 0.001 0.001 1.314 1.314 file.py:66(_read_file)\n 1 0.495 0.495 0.760 0.760 geodataframe.py:505(from_features)\n 1 0.000 0.000 0.388 0.388 env.py:231(__enter__)\n 1 0.019 0.019 0.388 0.388 env.py:279(defenv)\n 1 0.306 0.306 0.369 0.369 {method 'start' of 'fiona._env.GDALEnv' objects}\n 3 0.000 0.000 0.167 0.056 geodataframe.py:103(__init__)\n 666 0.003 0.000 0.133 0.000 geo.py:62(shape)\n 1475 0.031 0.000 0.111 0.000 polygon.py:500(geos_polygon_from_py)\n"
+ ]
+ }
+ ],
"source": [
"print(open('../profile/extract_district_dataframe', 'r').read())"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " \n*** Profile printout saved to text file '../profile/extract_district_voronoi_clipped'. \n"
+ ]
+ }
+ ],
"source": [
"%%prun -s cumulative -q -l 10 -T ../profile/extract_district_voronoi_clipped\n",
"#Extract the GeoDataFrame of the voronoi clipped to the district boundary\n",
@@ -101,27 +176,78 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " 61054379 function calls (60252728 primitive calls) in 68.880 seconds\n\n Ordered by: cumulative time\n List reduced from 1480 to 10 due to restriction <10>\n\n ncalls tottime percall cumtime percall filename:lineno(function)\n 3/1 0.000 0.000 68.880 68.880 {built-in method builtins.exec}\n 1 0.026 0.026 68.880 68.880 :2()\n 1 0.002 0.002 68.835 68.835 osm_to_voronoi_mapping.py:43(extract_district_voronoi_clipped)\n 1 0.051 0.051 62.999 62.999 osm_data_extraction.py:56(create_district_knots_and_edges_model)\n 1 0.394 0.394 62.776 62.776 graph.py:354(graph_from_polygon)\n 2 0.039 0.020 38.037 19.019 truncate.py:120(truncate_graph_polygon)\n 2 0.029 0.014 24.032 12.016 utils_geo.py:339(_intersect_index_quadrats)\n 629 0.030 0.000 17.761 0.028 geodataframe.py:103(__init__)\n 633 0.015 0.000 16.340 0.026 geodataframe.py:201(set_geometry)\n 615 0.005 0.000 12.130 0.020 generic.py:3591(_take_with_is_copy)\n"
+ ]
+ }
+ ],
"source": [
"print(open('../profile/extract_district_voronoi_clipped', 'r').read())"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": "",
+ "image/svg+xml": "\n\n\n",
+ "image/png": "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\n"
+ },
+ "metadata": {
+ "needs_background": "light"
+ }
+ }
+ ],
"source": [
"ovm.plot_district_voronoi(araria_voronoi_gpd_clipped, \"Araria\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " DHSID DHSCLUST ADM1DHS DHSREGCO DHSREGNA URBAN_RURA \\\n",
+ "24079 IA201400051045 51045.0 5.0 208.0 Supaul R \n",
+ "24081 IA201400051659 51659.0 5.0 208.0 Supaul R \n",
+ "24099 IA201400050462 50462.0 5.0 208.0 Supaul R \n",
+ "24111 IA201400050932 50932.0 5.0 208.0 Supaul R \n",
+ "24113 IA201400051032 51032.0 5.0 208.0 Supaul R \n",
+ "\n",
+ " LATNUM LONGNUM ALT_DEM DATUM WEIGHT \\\n",
+ "24079 26.399383 87.052475 73.0 WGS84 0.04504 \n",
+ "24081 26.464088 87.050647 80.0 WGS84 0.04504 \n",
+ "24099 26.525177 87.033421 82.0 WGS84 0.04504 \n",
+ "24111 26.145699 87.065582 58.0 WGS84 0.04504 \n",
+ "24113 26.083933 87.084018 55.0 WGS84 0.04504 \n",
+ "\n",
+ " geometry \n",
+ "24079 MULTIPOLYGON (((87.09631 26.39683, 87.05918 26... \n",
+ "24081 POLYGON ((87.08863 26.48220, 87.06270 26.43205... \n",
+ "24099 POLYGON ((87.08476 26.50668, 87.04326 26.49498... \n",
+ "24111 POLYGON ((87.08554 26.21006, 87.10250 26.20820... \n",
+ "24113 POLYGON ((87.15693 26.03450, 87.14677 26.01600... "
+ ],
+ "text/html": "\n\n
\n \n \n | \n DHSID | \n DHSCLUST | \n ADM1DHS | \n DHSREGCO | \n DHSREGNA | \n URBAN_RURA | \n LATNUM | \n LONGNUM | \n ALT_DEM | \n DATUM | \n WEIGHT | \n geometry | \n
\n \n \n \n 24079 | \n IA201400051045 | \n 51045.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.399383 | \n 87.052475 | \n 73.0 | \n WGS84 | \n 0.04504 | \n MULTIPOLYGON (((87.09631 26.39683, 87.05918 26... | \n
\n \n 24081 | \n IA201400051659 | \n 51659.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.464088 | \n 87.050647 | \n 80.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.08863 26.48220, 87.06270 26.43205... | \n
\n \n 24099 | \n IA201400050462 | \n 50462.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.525177 | \n 87.033421 | \n 82.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.08476 26.50668, 87.04326 26.49498... | \n
\n \n 24111 | \n IA201400050932 | \n 50932.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.145699 | \n 87.065582 | \n 58.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.08554 26.21006, 87.10250 26.20820... | \n
\n \n 24113 | \n IA201400051032 | \n 51032.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.083933 | \n 87.084018 | \n 55.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.15693 26.03450, 87.14677 26.01600... | \n
\n \n
\n
"
+ },
+ "metadata": {},
+ "execution_count": 10
+ }
+ ],
"source": [
"araria_voronoi_gpd_clipped.head()"
]
@@ -165,9 +291,17 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " \n*** Profile printout saved to text file '../profile/extract_district_voronoi_wo_clipping'. \n"
+ ]
+ }
+ ],
"source": [
"%%prun -s cumulative -q -l 10 -T ../profile/extract_district_voronoi_wo_clipping\n",
"araria_voronoi_joined = ovm.extract_district_voronoi_wo_clipping(india_voronoi_gpd, araria_gdf)"
@@ -175,27 +309,78 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " DHSID DHSCLUST ADM1DHS DHSREGCO DHSREGNA URBAN_RURA \\\n",
+ "24079 IA201400051045 51045.0 5.0 208.0 Supaul R \n",
+ "24081 IA201400051659 51659.0 5.0 208.0 Supaul R \n",
+ "24099 IA201400050462 50462.0 5.0 208.0 Supaul R \n",
+ "24111 IA201400050932 50932.0 5.0 208.0 Supaul R \n",
+ "24113 IA201400051032 51032.0 5.0 208.0 Supaul R \n",
+ "\n",
+ " LATNUM LONGNUM ALT_DEM DATUM WEIGHT \\\n",
+ "24079 26.399383 87.052475 73.0 WGS84 0.04504 \n",
+ "24081 26.464088 87.050647 80.0 WGS84 0.04504 \n",
+ "24099 26.525177 87.033421 82.0 WGS84 0.04504 \n",
+ "24111 26.145699 87.065582 58.0 WGS84 0.04504 \n",
+ "24113 26.083933 87.084018 55.0 WGS84 0.04504 \n",
+ "\n",
+ " geometry index_right NAME_2 \n",
+ "24079 POLYGON ((87.09631 26.39683, 87.03554 26.33137... 61 Araria \n",
+ "24081 POLYGON ((87.08912 26.48314, 87.06270 26.43205... 61 Araria \n",
+ "24099 POLYGON ((87.08567 26.50694, 87.01083 26.48583... 61 Araria \n",
+ "24111 POLYGON ((87.06560 26.21225, 87.10250 26.20820... 61 Araria \n",
+ "24113 POLYGON ((87.15693 26.03450, 87.14677 26.01600... 61 Araria "
+ ],
+ "text/html": "\n\n
\n \n \n | \n DHSID | \n DHSCLUST | \n ADM1DHS | \n DHSREGCO | \n DHSREGNA | \n URBAN_RURA | \n LATNUM | \n LONGNUM | \n ALT_DEM | \n DATUM | \n WEIGHT | \n geometry | \n index_right | \n NAME_2 | \n
\n \n \n \n 24079 | \n IA201400051045 | \n 51045.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.399383 | \n 87.052475 | \n 73.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.09631 26.39683, 87.03554 26.33137... | \n 61 | \n Araria | \n
\n \n 24081 | \n IA201400051659 | \n 51659.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.464088 | \n 87.050647 | \n 80.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.08912 26.48314, 87.06270 26.43205... | \n 61 | \n Araria | \n
\n \n 24099 | \n IA201400050462 | \n 50462.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.525177 | \n 87.033421 | \n 82.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.08567 26.50694, 87.01083 26.48583... | \n 61 | \n Araria | \n
\n \n 24111 | \n IA201400050932 | \n 50932.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.145699 | \n 87.065582 | \n 58.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.06560 26.21225, 87.10250 26.20820... | \n 61 | \n Araria | \n
\n \n 24113 | \n IA201400051032 | \n 51032.0 | \n 5.0 | \n 208.0 | \n Supaul | \n R | \n 26.083933 | \n 87.084018 | \n 55.0 | \n WGS84 | \n 0.04504 | \n POLYGON ((87.15693 26.03450, 87.14677 26.01600... | \n 61 | \n Araria | \n
\n \n
\n
"
+ },
+ "metadata": {},
+ "execution_count": 12
+ }
+ ],
"source": [
"araria_voronoi_joined.head()"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 13,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " 3264283 function calls (3263945 primitive calls) in 5.041 seconds\n\n Ordered by: cumulative time\n List reduced from 719 to 10 due to restriction <10>\n\n ncalls tottime percall cumtime percall filename:lineno(function)\n 1 0.000 0.000 5.041 5.041 {built-in method builtins.exec}\n 1 0.000 0.000 5.041 5.041 :1()\n 1 0.000 0.000 5.041 5.041 osm_to_voronoi_mapping.py:68(extract_district_voronoi_wo_clipping)\n 1 0.004 0.004 5.041 5.041 sjoin.py:9(sjoin)\n 1 0.000 0.000 4.673 4.673 sjoin.py:146(_geom_predicate_query)\n 1 0.113 0.113 4.665 4.665 sindex.py:441(query_bulk)\n 28393 0.182 0.000 4.274 0.000 sindex.py:361(query)\n 28394 0.077 0.000 2.309 0.000 base.py:473(bounds)\n 28394 0.745 0.000 1.991 0.000 coords.py:164(__call__)\n 28393 0.056 0.000 1.157 0.000 sindex.py:453(intersection)\n"
+ ]
+ }
+ ],
"source": [
"print(open('../profile/extract_district_voronoi_wo_clipping', 'r').read())"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 14,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": "