https://github.com/baltic-coastal-monitoring-team/scandem

App classifies LAS point cloud files and generates digital elevation models (DEM)

https://github.com/baltic-coastal-monitoring-team/scandem

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 (16.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

App classifies LAS point cloud files and generates digital elevation models (DEM)

Basic Info
  • Host: GitHub
  • Owner: Baltic-Coastal-Monitoring-Team
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 181 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

SCANDEM – LAS File Classifier

SCANDEM (Streamlit Classification and DEM generation) is an interactive application built with Python and Streamlit that allows you to classify .las point cloud files, generate digital elevation models (DEM), interpolate missing values, and explore the results visually and statistically.

Features

  • Support for .las point cloud files.
  • Ground classification using the SMRF (Simple Morphological Filter).
  • Outlier removal using statistical method.
  • DEM raster generation from classified ground points.
  • Interpolation of missing values in the DEM.
  • Visual inspection of DEMs and histograms of elevation.
  • Side-by-side comparison of raster statistics.
  • Highlighting interpolated pixels.
  • Demo mode with example LAS file for quick testing.

Interface Preview

Preview

Folder Structure

text scandem/ ├── input/ # Folder for input LAS files (e.g., demo.las) ├── output/ # Automatically generated output files ├── app.py # Main Streamlit application ├── config.json # Configuration generated at runtime ├── main.py # Main script to use from console ├── requirements.txt # Python dependencies └── README.md # This file

Requirements

The application requires Python 3.9+ and the following packages:

  • streamlit
  • pdal
  • gdal (from osgeo)
  • rasterio
  • matplotlib
  • numpy

Installation

It's recommended to use Conda:

bash conda create -n scandem-env python=3.10 conda activate scandem-env conda install -c conda-forge pdal gdal rasterio matplotlib streamlit pip install numpy

Or install via env.yml if provided: bash conda env create -f env.yml conda activate scandem-env

Running the App

Navigate to the project folder and run: streamlit run app.py The app will launch in your browser at http://localhost:8501.

Demo Mode

If a file named demo.las exists in the input/ folder, the app will offer an automatic demo mode, ideal for testing or public showcasing. You can include a sample file as input/demo.las.

To run the app in demo mode, download the sample LAS file and place it in the input/ folder with the name demo.las.

Download demo.las from OneDrive

Make sure the downloaded file is renamed to demo.las and saved inside the input/ directory. Once demo.las is detected in the input folder, the app will automatically enable demo mode – ideal for public presentations, tutorials, or first-time testing

Project Status

This application is under active development. Upcoming features may include:

Export to GeoTIFF / GeoJSON Batch processing of multiple files

Author

Developed by Paweł Terefenko, Kamran Tanwari, Jakub Śledziowski, Andrzej Giza, Xiaohao Shi as part of Baltic Coastal Monitoring Team.

Licence

Distributed under the MIT License.

Owner

  • Name: JakubS
  • Login: Baltic-Coastal-Monitoring-Team
  • Kind: user
  • Location: Szczecin

GitHub Events

Total
  • Public event: 1
  • Push event: 3
  • Fork event: 1
  • Create event: 1
Last Year
  • Public event: 1
  • Push event: 3
  • Fork event: 1
  • Create event: 1