Septima / malstroem

Tools for screening of bluespots and water flow between bluespots. Fork of original SDFE repository
Other
7 stars 4 forks source link

malstroem

Tools for screening of bluespots and water flow between bluespots.

Malstrøm is based on the ideas presented by Balstrøm and Crawford (2018).

Balstrøm, T. & Crawford, D. (2018): Arc-Malstrøm: A 1D hydrologic screening method for stormwater assessments based on geometric networks-. Computers & Geosciences vol. 116, July 2018, pp. 64-73., doi:10.1016/j.cageo.2018.04.010

Build status

Note:

This is a fork of the original malstroem repository. It seems like the original malstroem repo is not maintained anymore. This repo is intended to be a maintained version of malstroem.

Features

malstroem provides command line tools and a python api to calculate:

Assumptions

malstroem makes some assumptions to simplify calculations. The most important ones which you must be aware of:

Example usage

Calculate all derived data for 20mm rain incident ignoring bluespots where the maximum water depth is less than 5cm and using 20cm statistics resolution when approximating water level of partially filled bluespots:

malstroem complete -mm 20 -filter 'maxdepth > 0.05' -dem dem.tif -outdir c:\outputdirectory -zresolution 0.2

Installation

It is a bit tricky to get malstroem correctly installed. Use the precompiled Windows binary if you are on Windows, otherwise install using Anaconda.

Windows

If you are not going to write your own python program using malstroem you can just download the precompiled standalone executable.

Download malstroem.exe from releases.

This file includes everything needed to run malstroem from a command prompt. You don't need to install anything else. Not even python.

Installing on Windows

  1. Install Microsoft Visual C++ 14.2 standalone: Build Tools for Visual Studio 2019 as described here.

  2. Download and install miniconda3 64bit for you Windows. (If you have other versions of python installed on your system, make sure to untick Register Anaconda as my default Python)

  3. Download the malstroem dependencies file environment.yml. Note the path to the downloaded file like C:\Users\asger\Downloads\environment.yml.

  4. From the start menu, search for and open Anaconda Prompt.

  5. In the Anaconda Prompt run

    conda env create -f C:\Users\asger\Downloads\environment.yml

    Where C:\Users\asger\Downloads\environment.yml is the path to your downloaded copy of environment.yml.

  6. In the Anaconda Prompt run

    conda activate malstroem

    This activates the malstroem environment in the current prompt. Your prompt should show something like

    (malstroem) C:\Users\asger>

    Indicating that malstroem is the currently active environment.

  7. Install malstroem into the environment by running

    pip install https://github.com/Septima/malstroem/archive/master.zip#[speedups]
  8. Still in the Anaconda Prompt check that malstroem responds to

    malstroem --help

Installing on Linux or Mac OSX

  1. Download and install miniconda3 64bit.

  2. Download the malstroem dependencies file environment.yml.

  3. in a terminal run

    conda env create -f path/to/environment.yml

    Where path/to/environment.yml is the path to your downloaded copy of environment.yml.

  4. Run

    conda activate malstroem

    This activates the malstroem environment in the current prompt. Your prompt should show something like

    (malstroem) ~$

    Indicating that malstroem is the currently active environment.

  5. Install malstroem into the environment by running

    pip install https://github.com/Septima/malstroem/archive/master.zip#[speedups]
  6. Still in the Anaconda Prompt check that malstroem responds to

    malstroem --help

Install using pip

Theoretically it should be possible to install malstroem using pip:

pip install cython numpy scipy gdal
pip install https://github.com/Septima/malstroem/archive/master.zip#[speedups]

Unfortunately the above doesn't work on all platforms as malstroem uses som third party libraries and has some optimized code which needs to be compiled for each platform.

Bugs and contributions

If you are not familiar with GitHub please read this short guide.

License

Copyright (c) 2020
Developed by Septima.dk and Thomas Balstrøm (University of Copenhagen) for the Danish Agency for
Data Supply and Efficiency. This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the Free Software Foundation,
either version 2 of the License, or (at you option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Gene-
ral Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not,
see http://www.gnu.org/licenses/.