CT / new.py
khushidhar1210's picture
Upload new.py
deb6746 verified
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "7fc3eb30-23ad-430d-8626-6ed4a75278ef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mCollecting streamlit\n",
" Obtaining dependency information for streamlit from https://files.pythonhosted.org/packages/3d/b0/031933cb253d757dfc8791707d413ce90ab52ec7fb4524ef955070136d31/streamlit-1.43.2-py2.py3-none-any.whl.metadata\n",
" Downloading streamlit-1.43.2-py2.py3-none-any.whl.metadata (8.9 kB)\n",
"Requirement already satisfied: altair<6,>=4.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (5.3.0)\n",
"Requirement already satisfied: blinker<2,>=1.0.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (1.9.0)\n",
"Requirement already satisfied: cachetools<6,>=4.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (5.3.2)\n",
"Requirement already satisfied: click<9,>=7.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (8.1.7)\n",
"Requirement already satisfied: numpy<3,>=1.23 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (1.26.4)\n",
"Requirement already satisfied: packaging<25,>=20 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (24.1)\n",
"Requirement already satisfied: pandas<3,>=1.4.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (2.0.3)\n",
"Requirement already satisfied: pillow<12,>=7.1.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (10.2.0)\n",
"Requirement already satisfied: protobuf<6,>=3.20 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (4.23.4)\n",
"Requirement already satisfied: pyarrow>=7.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (15.0.2)\n",
"Requirement already satisfied: requests<3,>=2.27 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (2.31.0)\n",
"Requirement already satisfied: tenacity<10,>=8.1.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (8.4.2)\n",
"Collecting toml<2,>=0.10.1 (from streamlit)\n",
" Obtaining dependency information for toml<2,>=0.10.1 from https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl.metadata\n",
" Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB)\n",
"Requirement already satisfied: typing-extensions<5,>=4.4.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (4.12.2)\n",
"Collecting watchdog<7,>=2.1.5 (from streamlit)\n",
" Obtaining dependency information for watchdog<7,>=2.1.5 from https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl.metadata\n",
" Downloading watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl.metadata (44 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m44.3/44.3 kB\u001b[0m \u001b[31m1.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting gitpython!=3.1.19,<4,>=3.0.7 (from streamlit)\n",
" Obtaining dependency information for gitpython!=3.1.19,<4,>=3.0.7 from https://files.pythonhosted.org/packages/1d/9a/4114a9057db2f1462d5c8f8390ab7383925fe1ac012eaa42402ad65c2963/GitPython-3.1.44-py3-none-any.whl.metadata\n",
" Downloading GitPython-3.1.44-py3-none-any.whl.metadata (13 kB)\n",
"Collecting pydeck<1,>=0.8.0b4 (from streamlit)\n",
" Obtaining dependency information for pydeck<1,>=0.8.0b4 from https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl.metadata\n",
" Downloading pydeck-0.9.1-py2.py3-none-any.whl.metadata (4.1 kB)\n",
"Requirement already satisfied: tornado<7,>=6.0.3 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from streamlit) (6.3.3)\n",
"Requirement already satisfied: jinja2 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from altair<6,>=4.0->streamlit) (3.1.2)\n",
"Requirement already satisfied: jsonschema>=3.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from altair<6,>=4.0->streamlit) (4.19.0)\n",
"Requirement already satisfied: toolz in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from altair<6,>=4.0->streamlit) (0.12.1)\n",
"Collecting gitdb<5,>=4.0.1 (from gitpython!=3.1.19,<4,>=3.0.7->streamlit)\n",
" Obtaining dependency information for gitdb<5,>=4.0.1 from https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl.metadata\n",
" Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB)\n",
"Requirement already satisfied: python-dateutil>=2.8.2 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from pandas<3,>=1.4.0->streamlit) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from pandas<3,>=1.4.0->streamlit) (2023.3.post1)\n",
"Requirement already satisfied: tzdata>=2022.1 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from pandas<3,>=1.4.0->streamlit) (2023.3)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit) (3.2.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit) (3.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit) (2.0.4)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit) (2024.7.4)\n",
"Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->gitpython!=3.1.19,<4,>=3.0.7->streamlit)\n",
" Obtaining dependency information for smmap<6,>=3.0.1 from https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl.metadata\n",
" Downloading smmap-5.0.2-py3-none-any.whl.metadata (4.3 kB)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from jinja2->altair<6,>=4.0->streamlit) (2.1.3)\n",
"Requirement already satisfied: attrs>=22.2.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (23.1.0)\n",
"Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (2023.7.1)\n",
"Requirement already satisfied: referencing>=0.28.4 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (0.30.2)\n",
"Requirement already satisfied: rpds-py>=0.7.1 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (0.10.2)\n",
"Requirement already satisfied: six>=1.5 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas<3,>=1.4.0->streamlit) (1.16.0)\n",
"Downloading streamlit-1.43.2-py2.py3-none-any.whl (9.7 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.7/9.7 MB\u001b[0m \u001b[31m13.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading GitPython-3.1.44-py3-none-any.whl (207 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m207.6/207.6 kB\u001b[0m \u001b[31m1.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n",
"\u001b[?25hDownloading pydeck-0.9.1-py2.py3-none-any.whl (6.9 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.9/6.9 MB\u001b[0m \u001b[31m29.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading toml-0.10.2-py2.py3-none-any.whl (16 kB)\n",
"Downloading watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl (79 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m79.1/79.1 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mta \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading gitdb-4.0.12-py3-none-any.whl (62 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.8/62.8 kB\u001b[0m \u001b[31m2.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading smmap-5.0.2-py3-none-any.whl (24 kB)\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mInstalling collected packages: watchdog, toml, smmap, pydeck, gitdb, gitpython, streamlit\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mSuccessfully installed gitdb-4.0.12 gitpython-3.1.44 pydeck-0.9.1 smmap-5.0.2 streamlit-1.43.2 toml-0.10.2 watchdog-6.0.0\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m"
]
}
],
"source": [
"!pip install streamlit "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "db4f1d12-4584-45e6-876d-1712092c029d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mCollecting fiona\n",
" Obtaining dependency information for fiona from https://files.pythonhosted.org/packages/7b/2e/3f80ba2fda9b8686681f0a1b18c8e95ad152ada1d6fb1d3f25281d9229fd/fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n",
" Downloading fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (56 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.6/56.6 kB\u001b[0m \u001b[31m1.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: attrs>=19.2.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from fiona) (23.1.0)\n",
"Requirement already satisfied: certifi in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from fiona) (2024.7.4)\n",
"Requirement already satisfied: click~=8.0 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from fiona) (8.1.7)\n",
"Collecting click-plugins>=1.0 (from fiona)\n",
" Obtaining dependency information for click-plugins>=1.0 from https://files.pythonhosted.org/packages/e9/da/824b92d9942f4e472702488857914bdd50f73021efea15b4cad9aca8ecef/click_plugins-1.1.1-py2.py3-none-any.whl.metadata\n",
" Downloading click_plugins-1.1.1-py2.py3-none-any.whl.metadata (6.4 kB)\n",
"Collecting cligj>=0.5 (from fiona)\n",
" Obtaining dependency information for cligj>=0.5 from https://files.pythonhosted.org/packages/73/86/43fa9f15c5b9fb6e82620428827cd3c284aa933431405d1bcf5231ae3d3e/cligj-0.7.2-py3-none-any.whl.metadata\n",
" Downloading cligj-0.7.2-py3-none-any.whl.metadata (5.0 kB)\n",
"Downloading fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m17.3/17.3 MB\u001b[0m \u001b[31m39.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m00:01\u001b[0m\n",
"\u001b[?25hDownloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)\n",
"Downloading cligj-0.7.2-py3-none-any.whl (7.1 kB)\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mInstalling collected packages: cligj, click-plugins, fiona\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mSuccessfully installed click-plugins-1.1.1 cligj-0.7.2 fiona-1.10.1\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m"
]
}
],
"source": [
"!pip install fiona "
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7099edf0-b09c-48dd-ac9c-c25d44b78765",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0mRequirement already satisfied: shapely in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (2.0.7)\n",
"Requirement already satisfied: numpy<3,>=1.14 in /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages (from shapely) (1.26.4)\n",
"\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution ~vidia-nccl-cu12 (/home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages)\u001b[0m\u001b[33m\n",
"\u001b[0m"
]
}
],
"source": [
"!pip install shapely"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4b531f13-2f5c-4bf3-b821-a3e0b2438c18",
"metadata": {},
"outputs": [],
"source": [
"import streamlit as st\n",
"import geopandas as gpd\n",
"import zipfile\n",
"import os\n",
"from pathlib import Path"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "377ffc26-f4e3-44fa-af73-782f8e62274d",
"metadata": {},
"outputs": [],
"source": [
"# Constants\n",
"UTM_CRS = 'EPSG:32618' # UTM Zone 18N for NYC, in meters\n",
"ACRES_PER_SQ_METER = 1 / 4046.86"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cc9648f7-9cff-42bb-a237-e0f433b3454e",
"metadata": {
"scrolled": True
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2025-03-23 18:43:09.475 WARNING streamlit.runtime.caching.cache_data_api: No runtime found, using MemoryCacheStorageManager\n",
"2025-03-23 18:43:09.480 WARNING streamlit.runtime.scriptrunner_utils.script_run_context: Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.640 \n",
" \u001b[33m\u001b[1mWarning:\u001b[0m to view this Streamlit app on a browser, run it with the following\n",
" command:\n",
"\n",
" streamlit run /home/stu10/s18/kd4849/miniconda3/envs/idai610/lib/python3.11/site-packages/ipykernel_launcher.py [ARGUMENTS]\n",
"2025-03-23 18:43:10.642 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.643 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.644 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.645 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.647 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.648 No runtime found, using MemoryCacheStorageManager\n",
"2025-03-23 18:43:10.649 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.650 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:10.652 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.200 Thread 'Thread-5': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.216 Thread 'Thread-5': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.218 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.219 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.222 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.223 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.224 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.225 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.227 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.228 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n",
"2025-03-23 18:43:11.229 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.\n"
]
}
],
"source": [
"# Cache floodplain data loading\n",
"@st.cache_data\n",
"def load_floodplain_data():\n",
" # Replace with the actual path to your downloaded shapefile\n",
" floodplain_gdf = gpd.read_file('S_FLD_HAZ_AR.shp')\n",
" return floodplain_gdf.to_crs(UTM_CRS)\n",
"\n",
"# Process uploaded KML/KMZ file\n",
"def process_uploaded_file(uploaded_file):\n",
" if uploaded_file.name.endswith('.kmz'):\n",
" with zipfile.ZipFile(uploaded_file, 'r') as kmz:\n",
" kmz.extract('doc.kml', 'temp')\n",
" boundary_gdf = gpd.read_file('temp/doc.kml', driver='KML')\n",
" os.remove('temp/doc.kml')\n",
" else:\n",
" boundary_gdf = gpd.read_file(uploaded_file, driver='KML')\n",
" \n",
" # Assume single polygon (modify for multi-polygons if needed)\n",
" boundary_geom = boundary_gdf.geometry.iloc[0]\n",
" boundary_gdf = gpd.GeoDataFrame(geometry=[boundary_geom], crs='EPSG:4326')\n",
" return boundary_gdf.to_crs(UTM_CRS)\n",
"\n",
"# Main application\n",
"def main():\n",
" st.title(\"NYC Floodland Analysis Tool\")\n",
" st.write(\"Upload a KML or KMZ file to analyze floodland areas within your boundary.\")\n",
"\n",
" # Load floodplain data\n",
" floodplain_gdf = load_floodplain_data()\n",
"\n",
" # File uploader\n",
" uploaded_file = st.file_uploader(\"Choose a KML or KMZ file\", type=['kml', 'kmz'])\n",
"\n",
" if uploaded_file:\n",
" try:\n",
" # Process file and get boundary\n",
" boundary_gdf = process_uploaded_file(uploaded_file)\n",
" boundary_geom = boundary_gdf.geometry.iloc[0]\n",
"\n",
" # Calculate total boundary area\n",
" boundary_area_m2 = boundary_geom.area\n",
" boundary_area_acres = boundary_area_m2 * ACRES_PER_SQ_METER\n",
"\n",
" # Calculate floodplain area within boundary\n",
" intersection_gdf = gpd.overlay(boundary_gdf, floodplain_gdf, how='intersection')\n",
" floodplain_area_m2 = intersection_gdf.geometry.area.sum() if not intersection_gdf.empty else 0\n",
" floodplain_area_acres = floodplain_area_m2 * ACRES_PER_SQ_METER\n",
"\n",
" # Calculate usable land\n",
" usable_land_acres = boundary_area_acres - floodplain_area_acres\n",
"\n",
" # Display results\n",
" st.subheader(\"Analysis Summary\")\n",
" st.write(f\"**Total Boundary Area:** {boundary_area_acres:.2f} acres\")\n",
" st.write(f\"**Floodland Area:** {floodplain_area_acres:.2f} acres\")\n",
" st.write(f\"**Usable Land Area:** {usable_land_acres:.2f} acres\")\n",
" except Exception as e:\n",
" st.error(f\"Error: {e}\")\n",
" else:\n",
" st.info(\"Please upload a file to begin.\")\n",
"\n",
"if __name__ == \"__main__\":\n",
" main()"
]
},
{
"cell_type": "code",
"execution_count": None,
"id": "25aa4514-4f6e-4c93-87e3-706f77113bc7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "c3e54fa1-914c-4bdf-a9b7-f46846e91321",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "95ae4a91-5aae-496b-b909-d6782a808cb3",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "9c1f22cb-db62-4163-bdeb-4bf93017a3b6",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "2ee9a7fd-1c38-40c7-84fa-151bdeacf779",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "e99ceda3-593b-4ace-a622-cdc116a015a4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "3419a04f-8616-4ce8-9599-101b3f943302",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "bfe60fd7-9a2d-4ceb-b0c0-7f830332346a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "be15f149-1a46-4389-a66d-5ad0423997ad",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "f021d119-9f54-4572-bcac-159dfcfd3650",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "d7b85977-7aec-481a-ba61-a5944135585c",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "a70b7e20-eb9f-4100-8e18-6aed9ede40cd",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "787aa7f2-7744-4b2a-86bf-3d45402b282c",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "f7d903d1-ed0f-4769-b5ec-a5f9a4377906",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": None,
"id": "a02414c7-8d4e-41de-aa08-818e653abf93",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}