GithubHelp home page GithubHelp logo

giswqs / dem-depression-level-set-method Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 3.0 18.36 MB

Delineating nested hierarchy of topographic depressions in digital elevation models (DEMs) using level set methods

Python 100.00%
dems digital-elevation-model topographic-depressions lidar gis python

dem-depression-level-set-method's Introduction

Level Set Methods

This repo was created for the following peer-reviewed manuscript:

Wu, Q., Lane, C.R., Wang, L., Vanderhoof, M.K., Christensen, J.R., & Liu, H. (2018). Efficient Delineation of Nested Depression Hierarchy in Digital Elevation Models for Hydrological Analysis Using Level-Set Methods. Journal of the American Water Resources Association (under review)

How to use the level set algorithm

This tutorial assumes that you have used conda before. Please follow the conda user guide to install conda if necessary.

Step 1: Creating a conda environment

Please create an environment from the provided environment.yml file using the following command:

conda env create -f environment.yml

The command above will create a conda environment named levelset. If you want to remove the levelset conda environment, use the following command:

conda remove --name levelset --all

Step 2: Setting Python interpreter

Clone this repo and create a PyCharm project using the repo folder. Set the Python interpreter to your conda env path (e.g., ~/anaconda3/envs/levelset/bin/python)

Step 3: Setting algorithm parameters

Open the Python script level_set/slicing.py and change the following parameters if needed.

# set input files
in_dem = "../data/CLSA_LiDAR.tif"
in_sink = "../data/CLSA_Sink.tif"

# parameters for level set method
min_size = 2000         # minimum number of pixels as a depression
min_depth = 0.3         # minimum depression depth
interval = 0.2          # slicing interval, top-down approach

# set output directory
out_dir = "../result"

Step 4: Executing the algorithm

Run the Python script level_set/slicing.py. By default, results will be saved under the result folder under the project root directory.

Examples

The images below show working examples of the level set method for delineating nested depressions in the Cottonwood Lake Study Area (CLSA), North Dakota. More test datasets (e.g., the Pipestem watershed in the Prairie Pothole Region of North Dakota) can be downloaded from http://gishub.org/2018-JAWRA-Data

The following example was conducted on a 64-bit Linux machine with a quad-core Intel i7-7700 CPU and 16 GB RAM. The average running time of the algorithm for this DEM was 0.75 seconds.

CLSA DEM

CLSA Result

CLSA Table

dem-depression-level-set-method's People

Contributors

giswqs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

chinasio nnu-gisa

dem-depression-level-set-method's Issues

scikit-iamge

Hello, how I slove this issue

from skimage.external.tifffile import TiffFile
ModuleNotFoundError: No module named 'skimage'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.