{"id":17671595,"url":"https://github.com/giswqs/dem-depression-level-set-method","last_synced_at":"2025-05-12T16:43:41.364Z","repository":{"id":96384478,"uuid":"115866157","full_name":"giswqs/dem-depression-level-set-method","owner":"giswqs","description":"Delineating nested hierarchy of topographic depressions in digital elevation models (DEMs) using level set methods","archived":false,"fork":false,"pushed_at":"2018-02-09T20:08:09.000Z","size":18805,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T00:41:22.526Z","etag":null,"topics":["dems","digital-elevation-model","gis","lidar","python","topographic-depressions"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giswqs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-12-31T14:01:38.000Z","updated_at":"2025-01-05T14:40:25.000Z","dependencies_parsed_at":"2023-06-12T17:47:23.927Z","dependency_job_id":null,"html_url":"https://github.com/giswqs/dem-depression-level-set-method","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"dd4655f8e2ccfa9278854072970e5b5969007845"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giswqs%2Fdem-depression-level-set-method","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giswqs%2Fdem-depression-level-set-method/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giswqs%2Fdem-depression-level-set-method/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giswqs%2Fdem-depression-level-set-method/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giswqs","download_url":"https://codeload.github.com/giswqs/dem-depression-level-set-method/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253778441,"owners_count":21962867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dems","digital-elevation-model","gis","lidar","python","topographic-depressions"],"created_at":"2024-10-24T03:42:57.176Z","updated_at":"2025-05-12T16:43:41.345Z","avatar_url":"https://github.com/giswqs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Level Set Methods\nThis repo was created for the following peer-reviewed manuscript:\n\n**Wu, Q.**, Lane, C.R., Wang, L., Vanderhoof, M.K., Christensen, J.R., \u0026 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)\n\n## How to use the level set algorithm\n\nThis tutorial assumes that you have used conda before. Please follow the [conda user guide](https://conda.io/docs/user-guide/install/index.html) to install conda if necessary.\n\n### Step 1: Creating a conda environment\nPlease create an environment from the provided [environment.yml](environment.yml) file using the following command:\n\n`conda env create -f environment.yml`\n\nThe command above will create a conda environment named `levelset`. If you want to remove the levelset conda environment, use the following command:\n\n`conda remove --name levelset --all`\n\n## Step 2: Setting Python interpreter\nClone 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`)\n\n## Step 3: Setting algorithm parameters\nOpen the Python script [level_set/slicing.py](level_set/slicing.py) and change the following parameters if needed.\n\n    # set input files\n    in_dem = \"../data/CLSA_LiDAR.tif\"\n    in_sink = \"../data/CLSA_Sink.tif\"\n\n    # parameters for level set method\n    min_size = 2000         # minimum number of pixels as a depression\n    min_depth = 0.3         # minimum depression depth\n    interval = 0.2          # slicing interval, top-down approach\n\n    # set output directory\n    out_dir = \"../result\"\n\n## Step 4: Executing the algorithm\nRun the Python script [level_set/slicing.py](level_set/slicing.py). By default, results will be saved under the `result` folder under the project root directory.  \n\n## Examples\nThe images below show working examples of the level set method for delineating nested depressions in the Cottonwood Lake Study Area (CLSA), North Dakota.\nMore test datasets (e.g., the Pipestem watershed in the Prairie Pothole Region of North Dakota) can be downloaded from \u003chttp://gishub.org/2018-JAWRA-Data\u003e\n\nThe 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.\n\n![CLSA DEM](/figures/CLSA_DEM.png)\n\n![CLSA Result](/figures/CLSA_Result.png)\n\n![CLSA Table](/figures/CLSA_Table.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiswqs%2Fdem-depression-level-set-method","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiswqs%2Fdem-depression-level-set-method","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiswqs%2Fdem-depression-level-set-method/lists"}