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
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
Metadata Files
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):
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_demActivate the environment
bash source venv39_dem/Scripts/activateInstall the requirements Note: this may take a couple minutes to install all of the packages.
bash pip install -r venv39_dem.txtCreate second venv Now let's create the microwatershed environment:
bash deactivate virtualenv --python="<path to your version...>/Python39/python.exe" venv39_mwsActivate the environment
bash source venv39_mws/Scripts/activateInstall the requirements Note: this may take a couple minutes to install all of the packages.
bash pip install -r venv39_mws.txtProceed 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.
Owner
- Name: Arup
- Login: arup-group
- Kind: organization
- Email: media@arup.com
- Website: https://www.arup.com/
- Repositories: 168
- Profile: https://github.com/arup-group
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
- geopandas *
- matplotlib *
- mplleaflet *
- numpy ==1.22
- pandas ==1.4.4
- pysheds ==0.4
- scipy ==1.9.1
- seaborn *
- shapely *
- 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
- 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