TouchTerrain is a web application and standalone tool that converts digital elevation models (DEMs) into 3D-printable terrain models (STL/OBJ). It uses Google Earth Engine as the primary DEM source, with support for local GeoTIFF files. The architecture includes a Flask web server with a frontend using Google Maps and Three.js for preview, a standalone Python script for batch processing, and Jupyter notebooks for interactive use. The core processing pipeline fetches DEM data, resamples it, tiles it, generates mesh geometry with optional walls and bottom, and bundles the output as a ZIP file. The repository also includes geospatial utilities (coordinate conversion, KML parsing, GPX path embossing) and raster cleaning functions. While the codebase is functional and well-documented, it shows signs of technical drift: multiprocessing is broken, JavaScript libraries are outdated (Three.js r71), and there is commented-out code. The project is actively maintained with recent commits and issue triage.
This repository provides the `lidar` Python package, a specialized library for hydrological depression analysis of high-resolution topographic data, particularly LiDAR-derived DEMs. Its core functionality includes DEM smoothing (mean, median, Gaussian filters), sink extraction, and a novel level-set algorithm for delineating nested depression hierarchy, yielding topological and geometric properties (size, volume, depth, perimeter). The package is designed as a reusable library with a CLI (`lidar` command), a PySimpleGUI-based graphical interface, and integration with ArcGIS via a dedicated toolbox. It also includes Jupyter notebooks for tutorial and research workflows, demonstrating the complete analysis pipeline. The project is research-grade, backed by peer-reviewed publications, and follows a modular architecture with separate modules for filtering, filling, slicing, and mounts. However, some dependencies (GDAL, arcpy) and Python version constraints introduce moderate technical drift risk.