https://github.com/arup-group/irl-mia-development

https://github.com/arup-group/irl-mia-development

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: arup-group
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 659 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 3
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme

README.md

Indian River Lagoon Smart Watershed Project

Purpose

The "Microwatershed Impact Assessment" open-source tool, at a high-level, is a geospatial workflow which breaks down larger watersheds into smaller, more manageable microwatersheds and allows users to determine locations of hydraulically connected sytems which include ponds that are optimal for smart control.

The key inputs into this process (either read in via API in the scripts, or included in the 'data-inputs' folder) are a Digital Elevation Model (DEM, up to 10m resolution) that represents the terrain of an area, and a GIS dataset containing the ponds in that area. That area of interest can be up to 2,500 square miles, with a computation time of less than an hour.

With the inputs, the MIA utilizes the Pysheds open-source Python library to pre-process the DEM, delineate flow channels based on a flow accumulation output, and then delineate granular "microwatersheds" based on those flow channels. Additional information and statistics are then automatically calculated attributed to each microwatershed, including the area of the microwatershed, the number of ponds (>1 acre surface area), the total controllable volume of those ponds (linearly interpolated from pond surface area), the annual volume treated by ponds (calculation method provided by Opti), the nitrogen load for a common storm event, and total pondshed area (total area of a microwatershed that flows into ponds). The nitrogen load is based on calculated runoff for each FL DEP Land Use class within a microwatershed, and an Event Mean Concentration value derived from the 2021 FL DEP SWIL model.

Repo Contents

The primary contents of the repo are jupyter notebooks that run the analysis, and a folder for the data-inputs (shapefile, tif, csv)

The 'jupyter' folder notably contains the 2 key notebooks used to conduct the analysis: - 1ConditionDEMWhitebox.ipynb - 2_DelineateMicrowatersheds.ipynb

In addition, the 'makecatchments' python script is derived from a Pysheds wrapper (https://github.com/eorland/nestedwatersheds) and is utilized in the second notebook.

The relevant subfolders are the 'data-inputs' and 'outputs' folders: - data-inputs: this folder contains a series of subfolders containing the necessary dataset inputs into the delineation process.

Setup

In your terminal (this assumes a bash terminal):

  1. Create the virtual environments Due to package dependencies, we need to create 2 separate environments, one for the DEM processing, and one for the microwatershed delineation.

    We used Python version 3.9.13, so install that specific version of python, and install it in your venv. Let's start with the DEM processing env: bash virtualenv --python="<path to your version...>/Python39/python.exe" venv39_dem

  2. Activate the environment bash source venv39_dem/Scripts/activate

  3. Install the requirements Note: this may take a couple minutes to install all of the packages.

    bash pip install -r venv39_dem.txt

  4. Create second venv Now let's create the microwatershed environment: bash deactivate virtualenv --python="<path to your version...>/Python39/python.exe" venv39_mws

  5. Activate the environment bash source venv39_mws/Scripts/activate

  6. Install the requirements Note: this may take a couple minutes to install all of the packages.

    bash pip install -r venv39_mws.txt

  7. Proceed to the '1ConditionDEMWhitebox.ipynb' to begin the analysis! Remember to select the given virtual environment as the notebook kernel to ensure the packages are all installed.

    DEM Conditioning Notebook

Owner

  • Name: Arup
  • Login: arup-group
  • Kind: organization
  • Email: media@arup.com

We Shape a Better World

GitHub Events

Total
  • Delete event: 1
  • Issue comment event: 1
  • Public event: 1
  • Push event: 8
  • Pull request event: 6
  • Create event: 7
Last Year
  • Delete event: 1
  • Issue comment event: 1
  • Public event: 1
  • Push event: 8
  • Pull request event: 6
  • Create event: 7

Dependencies

SS_requirements/requirements.txt pypi
  • geopandas *
  • matplotlib *
  • mplleaflet *
  • numpy ==1.22
  • pandas ==1.4.4
  • pysheds ==0.4
  • scipy ==1.9.1
  • seaborn *
  • shapely *
SS_requirements/venv39.txt pypi
  • GitPython ==3.1.43
  • Jinja2 ==3.1.4
  • MarkupSafe ==3.0.2
  • PyDispatcher ==2.0.5
  • PyWavelets ==1.4.1
  • Pygments ==2.18.0
  • affine ==2.4.0
  • altair ==5.4.1
  • asttokens ==2.4.1
  • attrs ==24.2.0
  • blinker ==1.8.2
  • cachetools ==5.5.0
  • certifi ==2024.8.30
  • charset-normalizer ==3.4.0
  • click ==8.1.7
  • click-plugins ==1.1.1
  • cligj ==0.7.2
  • colorama ==0.4.6
  • comm ==0.2.2
  • contourpy ==1.2.1
  • cycler ==0.12.1
  • debugpy ==1.8.7
  • decorator ==5.1.1
  • exceptiongroup ==1.2.2
  • executing ==2.1.0
  • fonttools ==4.54.1
  • geojson ==3.1.0
  • gitdb ==4.0.11
  • idna ==3.10
  • imageio ==2.36.0
  • importlib_metadata ==8.5.0
  • importlib_resources ==6.4.5
  • ipykernel ==6.29.5
  • ipython ==8.18.1
  • jedi ==0.19.1
  • jsonschema ==4.23.0
  • jsonschema-specifications ==2024.10.1
  • jupyter_client ==8.6.3
  • jupyter_core ==5.7.2
  • kiwisolver ==1.4.7
  • llvmlite ==0.41.1
  • looseversion ==1.3.0
  • markdown-it-py ==3.0.0
  • matplotlib ==3.8.4
  • matplotlib-inline ==0.1.7
  • mdurl ==0.1.2
  • narwhals ==1.13.2
  • nest-asyncio ==1.6.0
  • networkx ==3.2.1
  • numba ==0.58.0
  • numpy ==1.22.0
  • packaging ==24.1
  • pandas ==1.4.4
  • parso ==0.8.4
  • pillow ==11.0.0
  • platformdirs ==4.3.6
  • prompt_toolkit ==3.0.48
  • protobuf ==5.28.3
  • psutil ==6.0.0
  • pure_eval ==0.2.3
  • pyarrow ==18.0.0
  • pydeck ==0.9.1
  • pyparsing ==3.2.0
  • pyproj ==3.6.1
  • pysheds ==0.4
  • python-dateutil ==2.9.0.post0
  • pytz ==2024.2
  • pywin32 ==308
  • pyzmq ==26.2.0
  • queuelib ==1.5.0
  • rasterio ==1.3.11
  • referencing ==0.35.1
  • requests ==2.32.3
  • rich ==13.9.4
  • rpds-py ==0.21.0
  • scikit-image ==0.19.3
  • scipy ==1.9.1
  • seaborn ==0.13.2
  • six ==1.16.0
  • smmap ==5.0.1
  • snuggs ==1.4.7
  • stack-data ==0.6.3
  • streamlit ==1.40.0
  • tenacity ==9.0.0
  • tifffile ==2024.8.30
  • toml ==0.10.2
  • tornado ==6.4.1
  • traitlets ==5.14.3
  • typing_extensions ==4.12.2
  • urllib3 ==2.2.3
  • watchdog ==5.0.3
  • wcwidth ==0.2.13
  • zipp ==3.20.2
SS_requirements/venv39_2.txt pypi
  • Jinja2 ==3.1.4
  • MarkupSafe ==3.0.2
  • PyWavelets ==1.4.1
  • Pygments ==2.18.0
  • affine ==2.4.0
  • asttokens ==2.4.1
  • attrs ==24.2.0
  • certifi ==2024.8.30
  • click ==8.1.7
  • click-plugins ==1.1.1
  • cligj ==0.7.2
  • colorama ==0.4.6
  • comm ==0.2.2
  • contourpy ==1.2.1
  • cycler ==0.12.1
  • debugpy ==1.8.7
  • decorator ==5.1.1
  • exceptiongroup ==1.2.2
  • executing ==2.1.0
  • fonttools ==4.54.1
  • geojson ==3.1.0
  • geopandas ==1.0.1
  • imageio ==2.36.0
  • importlib_metadata ==8.5.0
  • importlib_resources ==6.4.5
  • ipykernel ==6.29.5
  • ipython ==8.18.1
  • jedi ==0.19.1
  • jupyter_client ==8.6.3
  • jupyter_core ==5.7.2
  • kiwisolver ==1.4.7
  • llvmlite ==0.41.1
  • looseversion ==1.3.0
  • matplotlib ==3.8.4
  • matplotlib-inline ==0.1.7
  • mplleaflet ==0.0.5
  • nest-asyncio ==1.6.0
  • networkx ==3.2.1
  • numba ==0.58.0
  • numpy ==1.22.0
  • packaging ==24.1
  • pandas ==1.4.4
  • parso ==0.8.4
  • pillow ==11.0.0
  • platformdirs ==4.3.6
  • prompt_toolkit ==3.0.48
  • psutil ==6.0.0
  • pure_eval ==0.2.3
  • pyogrio ==0.10.0
  • pyparsing ==3.2.0
  • pyproj ==3.6.1
  • pysheds ==0.4
  • python-dateutil ==2.9.0.post0
  • pytz ==2024.2
  • pywin32 ==308
  • pyzmq ==26.2.0
  • rasterio ==1.3.11
  • scikit-image ==0.19.3
  • scipy ==1.9.1
  • seaborn ==0.13.2
  • shapely ==2.0.6
  • six ==1.16.0
  • snuggs ==1.4.7
  • stack-data ==0.6.3
  • tifffile ==2024.8.30
  • tornado ==6.4.1
  • traitlets ==5.14.3
  • typing_extensions ==4.12.2
  • wcwidth ==0.2.13
  • zipp ==3.20.2