-
Notifications
You must be signed in to change notification settings - Fork 14
2. Tutorial LoD1.3 building reconstruction
The gfc-lod13 repository contains the flowcharts necessary to perform LoD1.3 building reconstruction.
To finally perform the reconstruction for the test dataset run the geof.exe
exectutable as follows from the C:\3dbag-tooling
directory:
.\bin\geof.exe flowcharts\runner.json
If everything works this should produce an output file from the test dataset: C:\3dbag-tooling\test-data\wippolder-output.gpkg
.
If you want to run it with your own data you can specify several paramaters with the geof
command, either by passing them directly on the command line (append eg. --OUTPUT_FORMAT GPKG
) or by passing a configuration file that contains them (see the section below):
-
INPUT_FOOTPRINT_SOURCE
: input dataset with footprints. Can be a vector file or a postgresql database connection string -
INPUT_LAS_FILES
: the input point cloud files. In LAS or LAZ format. Can be a list of files separated by a space. -
OUTPUT_FORMAT
: The output vector format. See OGR documentation. For exampleGPKG
orPostgreSQL
. -
OUTPUT_SOURCE_*
: Output filename or database connection string to write the output to. -
OUTPUT_LAYERNAME_*
: Output layer name. -
TILE_ID
: Tile ID. -
OUTPUT_OBJ_DIR
: Output directory for obj files (obj files are written to{{OUTPUT_OBJ_DIR}}/{{OUTPUT_LAYERNAME_*}}_{{TILE_ID}}.obj
). -
OUTPUT_CITYJSON_DIR
: Output directory for CityJSON files (CityJSON files are written to{{OUTPUT_CITYJSON_DIR}}/{{TILE_ID}}.json
). -
id_attribute
: Specify the attribute name that carries a unique identifier per input footprint. Must be string. Is used for the OBJ output and CityJSON output. -
CJ_DATASET_TITLE
: CityJSON metadata -
CJ_GEOGRAPHIC_LOCATION
: CityJSON metadata -
RUN_REFERENCE
: an identifier to the run this execution is part of (eg 3DBAG version number or hash)
Notice that relative input paths are treated as being relative to the location of the flowchart file (runner.json
). Of course you can also specify absolute paths.
The default values are set such that it should work for the test dataset if extracted in the directory specified above:
Parameter | Default value |
---|---|
INPUT_FOOTPRINT_SOURCE |
../test-data/wippolder.gpkg |
INPUT_LAS_FILES |
../test-data/wippolder.las |
OUTPUT_SOURCE |
../test-data/wippolder-output.gpkg |
OUTPUT_FORMAT |
GPKG |
The 3DBAG software requires 2 inputs: building footprints and point clouds. It is assumed that the point cloud tiles are classified and have at least the building class and the ground class (ASPRS LAS classes 6 and 2 respectively). It is also assumed that the point clouds completely cover all the footprints.
When run as above the software will create 6 output layers (tables):
-
lod11_2d
: Input 2D footprints with elevation attributes (no groundpart separation as in LoD12) -
lod11_3d
: Input footprints extruded to fixed height (no groundpart separation as in LoD12) -
lod12_2d
: LoD1.2 output as 2D footprints with elevation attributes -
lod13_2d
: LoD1.3 output as 2D footprints with elevation attributes -
lod22_2d
: LoD2.2 output as 2D footprints with elevation attributes -
lod12_3d
: LoD1.2 output as 3D model -
lod13_3d
: LoD1.3 output as 3D model -
lod22_3d
: LoD2.2 output as 3D model
The attributes from the input are copied to the output features. In addition a number of attributes are added depending on the LoD. The LoD12 layer has the most attributes (best for analysis).
Attribute name | Description |
---|---|
dak_type |
Type of roof detected in point cloud (see next table) |
rmse |
Root mean square error between 3D model and input point cloud (only roof points) |
h_maaiveld |
ground elevation |
h_dak_50p |
roof elevation 50th percentile |
h_dak_70p |
roof elevation 70th percentile |
h_dak_min |
min roof elevation |
h_dak_max |
max roof elevation |
t_run |
total reconstruction time in ms (for all LoDs) |
roofplane_cnt |
number of detected roof planes |
roof_pt_cnt |
total number of points in roof planes |
wall_pt_cnt |
total number of points in wall planes |
usegmented_pt_cnt |
number of unsegmented points |
val3dity_codes |
val3dity error codes for the model given as a JSON array |
data_area |
area in footprint that has a roofplane above it |
data_coverage |
portion of the geometry covered by roof points |
error_his* |
histogram of errors measure from point cloud to mesh triangles |
m2pc_error_hist |
histogram of errors measure from mesh vertices to point cloud |
m2pc_error_max |
maximum errors from any mesh vertex to point cloud |
lod11_replace |
bool that indicates whether the LoD1.2, LoD1.3 and LoD2.2 output was replaced by a LoD1.1 model |
reconstruction_skipped |
bool that indicates whether full LoD1.2/LoD1.3/LoD2.2 reconstruction was skipped for this feature (and also LoD1.2 if lod11_replace==false ) |
is_ground |
bool that indicates if this part is a groundpart. If true the part is a ground part, otherwise it is a roof part (lod13_2d/lod22_2d only) |
labels |
semantic labels of triangles in the same order as they are stored in the geometry |
dak_type value |
Meaning |
---|---|
2 |
roof with at least one slanted surface |
1 |
roof with multiple, only horizontal surfaces |
0 |
roof with a single horizontal surface |
-1 |
no point was found for the building |
-2 |
could not detect a roof surface, even though points were found |