Show HN:利用激光雷达数据进行高分辨率表面分析
Show HN: High-resolution surface analysis with Lidar data

原始链接: https://github.com/r-follador/delta-relief

瑞士联邦大地测量局(SwissTopo)利用机载激光雷达技术创建高精度三维地形图(swissALTI3D),去除植被和建筑物以揭示地下的地形。本项目旨在提高对这些宝贵数据的访问性,尤其是在考古应用方面,例如发现隐藏的结构。 该项目将激光雷达数据可视化为图像,突出细微的地形变化,以便于解读,然后将其部署在一个交互式、移动友好的在线地图中(目前展示的是瑞士东部地区)。在线地图允许快速进行GPS定位,并在激光雷达视图、航拍视图和地图视图之间切换。 可视化过程包括计算地形坡度并应用非线性变换以突出细微的变化,从而使隐藏的特征可见。使用二阶导数和颜色映射的实验效果较差。该项目使用`mbtileserver`进行托管,使用`GDAL`进行转换和瓦片创建,并使用NGINX进行反向代理。目标是使激光雷达数据更容易获取,以便识别细微的考古特征。

A Hacker News thread discusses a project using LiDAR data for high-resolution surface analysis, aiming to uncover subtle terrain changes that might indicate underlying archaeological remains. The original poster, folli, clarifies that the technique identifies geometric patterns in the microtopography suggestive of past human settlements. Other users questioned the process of removing buildings and vegetation from the LiDAR data. Geo_ge explains the point cloud classification process that is used to identify ground points after vegetation and buildings are labelled and removed. Folli notes that SwissTopo has existing data sets of buildings and structures that can be subtracted from the LiDAR data. A user, lyu07282, mentioned the LiDAR technology's application in discovering lost cities in the Amazon.
相关文章
  • (评论) 2024-06-22
  • (评论) 2025-04-06
  • 快速提供矢量瓦片 2025-04-06
  • 树莓派激光雷达扫描仪 2025-04-19
  • (评论) 2024-04-12

  • 原文

    delta-relief_social_media.png

    High-resolution surface analysis with LiDAR data

    Airborne LiDAR uses hundreds of thousands of laser pulses per second to generate detailed 3D maps, even through vegetation. With high point densities and 10 cm accuracy, it is among the most effective methods for mapping topography.

    Airborne LiDAR

    Source SwissTopo

    The Swiss Federal Office of Topography (Swisstopo) provides a highly precise digital elevation model based on LiDAR data, called swissALTI3D. Buildings and vegetation are removed, revealing the underlying topography.

    The data is delivered as a GeoTIFF tiles with 2000px × 2000px resolution representing 1km × 1km areas (resolution of 0.5m). The full list of all tiles is provided here.

    LiDAR has some interesting use cases in archaeology (Caspari, 2023), particularly for uncovering man-made structures that are hidden beneath vegetation or subtle terrain changes. It allows archaeologists to identify features such as ancient roads, walls, building foundations, and agricultural terraces that may be invisible to the naked eye or conventional aerial photography.

    This project aims to improve accessibility to the data in two main steps:

    • Visualize the SwissTopo data as images that highlight subtle terrain changes for easier interpretation
    • Deploy the data in an interactive, mobile-friendly online map

    Currently, part of this data of eastern Switzerland (North Graubünden) is accessible on https://lidar.cubetrek.com

    img.png

    The online map allows to quickly pan to the current location via GPS and switch between three different map layers (LiDAR, this project; Aerial View and Map View, data from SwissTopo).

    Some examples of interesting features in the covered area (North Graubünden).

    Note

    Help me extend this list! Send a pull request or mail to: [email protected] if you know of any other interesting examples.

    See also the Jupyter Notebook (delta-relief-notebook.ipynb) for more examples in other places of Switzerland.

    img.png

    Remains of a roman camp sitting at an altitude of 2200 m ASL. Likely around 15 BC, marking the start of the Roman occupation of this area of the Alps.

    The camp was discovered in 2024, and was partly an inspiration of this project, as LiDAR data was also used to help in the discovery.

    Colm La Runga

    Colm La Runga

    Colm La Runga

    Sources:

    Rohanschanze (Rohan's fortification)

    Built during the Thirty Years' War (1635) by the French Duke of Rohan. Only the earthwork remains.

    img.png

    Colm La Runga

    Sources:

    Cresta Settlement in Cazis

    img.png

    Bronze Age settlement situated on a hilltop, the settlement was continuously inhabited for approximately 500 to 600 years during the Early to Middle Bronze Age (circa 2000–1300 BCE). Excavations have uncovered multiple layers of occupation, revealing structures such as post-built houses, hearths, and storage pits.

    Colm La Runga

    Colm La Runga

    Sources:

    Visualization of LiDAR data

    The figures below are created in the Visualization trials Jupyter Notebook.

    To demonstrate how to display subtle terrain changes in the best way, we use two examples: the Rohanschanze on the left illustrates clearly visible earthworks in flat terrain, while the Colm La Runga on the right highlights more subtle features in a mountainous landscape.

    The input data consists of absolute elevation values (height above sea level). A basic way to visualize this is as a grayscale gradient-black representing the lowest and white the highest altitude within each tile.

    While the fort is visible, the Roman camp gets completely lost in the surrounding mountainous terrain.

    visualization_trial_1.png

    n scientific visualizations, elevation data is often rendered using hillshading.

    This produces a natural-looking terrain representation, but it requires significant tuning to make subtle features visible, especially in hilly terrain. (I couldn't manage for the Roman camp). So it's not ideal for our purposes.

    visualization_trial_2.png

    Our focus is not on absolute elevation, but on detecting subtle terrain variations.

    To achieve this, we compute the slope at each point: an approximation of the first derivative along both axes.

    This yields significantly finer details, and the Roman camp becomes clearly visible (centered in the lower left quadrant).

    visualization_trial_3.png

    To enhance subtle variations even further, we apply a non-linear transformation to the slope values: fine gradients are exaggerated while steeper slopes remain mostly unchanged.

    This strikes a good balance: broad features remain visible, and fine details become much clearer. In mountainous areas, the output becomes brighter overall, but with some getting used to, more structure can be perceived.

    visualization_trial_4.png

    We can also go a step further and run another differentiation (basically a second derivative), in the hope to uncover more details.

    However, this primarily amplifies noise and yields no real improvement.

    visualization_trial_5.png

    Going back to the first derivative, we can apply a colormap to encode the slope magnitude.

    This approach works well in relatively flat regions (e.g. the first example), but becomes visually overwhelming in complex, mountainous terrain, where everything tends to shift towards red.

    visualization_trial_6.png

    mbtileserver provides an easy way to host mbtiles so that they can be used as a map layer in MapLibre JS.

    To create the mbtiles file, we

    • run the create_geotiff.py script to download the GeoTiffs, convert the data as described above and save it as GeoTiff again
    • use GDAL to build the mbtiles file while converting the GeoTIFF from LVB95 (the Swiss coordinates system) to Web Mercator (EPSG:3857).
    gdalbuildvrt -a_srs EPSG:2056 lv95.vrt calculated/*.tif
    gdalwarp -s_srs EPSG:2056 -t_srs EPSG:3857 -tap -tr 0.5 0.5 -r bilinear -co COMPRESS=DEFLATE -co TILED=YES -co BIGTIFF=YES lv95.vrt webmerc.tif
    gdal_translate -of MBTILES webmerc.tif lidar.mbtiles
    gdaladdo -r average lidar.mbtiles 2 4 8 16
    

    NGINX is used as a reverse proxy to relay between the client and the mbtileserver and also to host the static index file, that uses MabLibre JS.

    联系我们 contact @ memedata.com