-
Notifications
You must be signed in to change notification settings - Fork 19
Point clouds
The requirements for point clouds are the following:
- They must be in XYZ or PLY (either binary or ASCII) format
- Buildings and terrain are separated into different files. We give advice on how to prepare the data below
We suggest you use CloudCompare, an open-source point cloud manipulation project and we offer information on preparing a point cloud with it.
Point clouds can get very dense, hence we need to remove some of the points for efficiency reasons. A rule of thumb is to keep the number of points up to a few million for a district level, but this number can vary on a case-by-case basis. The process of removal of points is referred to as thinning. You should use random thinning for building points, while space-based thinning can result in uniform terrain triangulation, should isotropic terrain triangulation be your goal. In CloudCompare, you perform subsampling of the point cloud to extract thinned points. Access it through Edit → Subsample.
Please note that City4CFD also has random thinning implemented as part of the workflow. The intention of this is to speed up the reconstruction during the initial setup iterations.
Point clouds are generally available in LAS/LAZ formats, which, by default, contain specific classes, with the two of them reserved for ground (class 2) and buildings (class 6). However, not every point cloud is nicely classified. You can check for classification in CloudCompare.
In case the ground and buildings are properly classified, you can use this script that automatically loads the point cloud and extracts the classes, or through Edit → Scalar Fields → Filter By Value with classification selected as an active scalar field in the property menu.
When buildings and ground are not properly classified, you can use the whole point cloud as input for buildings, whereas for the terrain you need to conduct terrain filtering. CloudCompare contains Cloth Simulation Filter (CSF) which handles filtering automatically. You can find it in Plugins → CSF Filter.
We can propose the following workflow for preparing the point cloud:
- Load the point cloud into CloudCompare
- Subsample with random thinning in case of a large number of points (tens of millions)
- If point cloud is classified:
- Extract buildings (class 6), extract terrain (class 2) with water points (class 9)
- Conduct additional space-based thinning (e.g. 10 m) if you would like isotropic terrain mesh
- Export buildings and terrain + water separately to different PLY or XYZ files
- If point cloud is not classified:
- Perform terrain filtering with the CSF
- Conduct additional space-based thinning on the filtered point cloud if you would like isotropic terrain mesh
- Export unfiltered point cloud and use it as input for buildings, export filtered point cloud and use it for terrain
Please bear in mind that the program runtime greatly depends on the number of points that are used, especially with the terrain. Everything up to a few million (3-4) for terrain will be fairly quick. But still, a good rule of thumb is to use strong thinning in City4CFD (values of 80-90%) until your final reconstruction.
QGIS natively supports LAS/LAZ format. You can import the point cloud into QGIS to make sure the polygon and point projections match. You can view the point cloud in 3D by selecting View → New 3D Map View. More information can be found here. If the original point cloud is too large, perform thinning before loading it into QGIS.
Copyright (c) 2021-2024 3D Geoinformation, Delft University of Technology