Git Product home page Git Product logo

geoflow-bundle's Introduction

Automated 3D building reconstruction from point clouds

3D model from point cloud

A tool for reconstructing 3D building models from point clouds, fully automated, with high-detail. Free and open-source.

TLDR;

Install and run from your terminal

lod22-reconstruct --input_footprint=my_footprint.gpkg --input_pointcloud=my_pointcloud.las

and enjoy the output files that are created.

What does it do?

  • Takes the point cloud and the 2D polygon of a single building and generates a 3D model of the building. It is a fully automated process, there is no manual intervention.
  • It is possible to tweak the reconstruction parameters to adjust it a little to different input data qualities.
  • Outputs a model as a simple extrusion, in LoD1.2, LoD1.3, LoD2.2. See the refined Levef of Details by the 3D geoinformation research group .
  • For LoD2.2, it generates the model with as much detail in the roof structure as there is in the point cloud.
  • It generates the required Semantics for the surfaces.
  • It outputs to formats like Wavefront OBJ, GeoPackage, CityJSON or a PostgreSQL database.

Requirements on the input data

Point cloud

  • Acquired through aerial scanning, either Lidar or Dense Image Matching. But Lidar is preferred, because it is often of higher quality. Thus point clouds with only building facades eg. mobile mapping surveys are not supported.
  • The fewer outliers the better.
  • Classified, with at least ground and building classes.
  • Has sufficient point density. We achieve good results with 8-10 pts/m2 in the 3D BAG.
  • Well aligned with the 2D building polygon.
  • Do include some ground points around the building so that the software can determine the ground floor elevation.
  • Pointcloud is automatically cropped to the extent of the 2D building polygon.
  • In .LAS or .LAZ format.

2D building polygon

  • A simple 2D polygon of a single building.
  • Preferably roofprint, since the input point cloud was also acquired from the air.
  • Well aligned with the point cloud.
  • In GeoPackage or ESRI Shapefile format, or a PostGIS database connection.

Installation

Using the binary packages

It will probably be easiest to use one of the binary packages on the Release page (docker, windows installer) as explained below. In case you are on windows, the cli version is recommended.

Building from source

In case you can not or do not want to use the binary packages, you can also build everything from source. This is only recommended if you know what you are doing, ie. have experience in compiling software.

Note: macOS is currently untested

So only in case you want to compile the software from scratch you need to clone this repository with all of its submodules, eg:

git clone --recurse-submodules https://github.com/geoflow3d/geoflow-bundle.git
mkdir build && cd build
cmake ..
cmake --build . --config Release --parallel 4
cmake --install .

Before compiling this software you will need to install the various dependencies. Please refer to the README's of the respective submodules in this repository for more information.

Usage

Two things are needed for running the reconstruction on some input data.

  1. A flowchart that contains the logic of the reconstruction and describes how the various components (plugins and nodes) connect. The flowchart is a JSON file.
  2. The geoflow executable (geof), which executes the logic in flowchart.
geof flowchart.json

Use geof --help to see the detailed help.

Usage: 
   geof [-v|-p|-n|-h]
   geof <flowchart_file> [-V] [-g] [-w] [-c <file>] [--GLOBAL1=A --GLOBAL2=B ...]

Options:
   -v, --version                Print version information
   -p, --list-plugins           List available plugins
   -n, --list-nodes             List available nodes for plugins that are loaded
   -h, --help                   Print this help message

   <flowchart_file>             JSON flowchart file
   -V, --verbose                Print verbose messages during flowchart execution
   -g, --list-globals           List available flowchart globals. Cancels flowchart execution
   -w, --workdir                Set working directory to folder containing flowchart file
   -c <file>, --config <file>   Read globals from TOML config file
   --GLOBAL1=A --GLOBAL2=B ...  Specify globals for flowchart (list availale globals with -g)

Globals

A flowchart can contain some parameters that are set for the whole flowchart. These are called globals To see the global parameters of a flowchart and their explanation pass the --list-globals option.

geof flowchart.json --verbose --list-globals

An example of the flowchart globals printed by --list-globals:

Available globals:
 > building_identifier [Unique identifier attribute present in input footprint source]
   default value: "fid"
 > input_footprint [Input 2D vector file with building footprint(s)]
   default value: ""
 > input_footprint_select_sql ["OGR SQL statement to select one input footprint from the input_footprint file, eg \"fid=47\"]
   default value: "fid=47\"
...

You can set the value of one or more flowchart global parameters from the commandline. For instance, set the building_identifier and input_footprint parameters.

geof flowchart.json --input_footprint=/some/path/file.gpkg --building_identifier=gid

In addition to the command line, you can also set the global parameters in a TOML configuration file.

# contents of config.toml
input_footprint="/bla/file.gpkg"
building_identifier="gid"
geof flowchart.json --config config.toml

Order of priority

It is possible to set the global parameters in three different places and their order of priority is as follows:

  1. parameters passed in the command line
  2. parameters set in a TOML configuration file
  3. parameters stored in the flowchart

Thus, a parameter set in the command line has the highest priority and overrides the value set in any other location.

Building reconstruction

The flowchart of the building reconstruction is in flowcharts/gfc-brecon/single/reconstruction.json. You need to use this flowchart to generate the 3D building models. However for you convenience we automatically install this flowchart and the script lod22-reconstruct to easily run it. The command lod22-reconstruct (lod22-reconstruct.bat on windows) is an alias for geof long/path/reconstruction.json.

Download the test data and unzip into a test-data directory. Then run:

lod22-reconstruct \
  --input_footprint=test-data/wippolder.gpkg \
  --input_pointcloud=test-data/wippolder.las \
  --config test-data/config.toml

Here we override the default values that are set in the flowchart. The input_footprint and input_pointcloud are passed directly in the command line. In addition, the input_footprint_select_sql='fid=47' (to select the 47th feature from the input footprint file) is read from the config file config.toml.

Combining the command line parameters and the config file allows you to keep the parameters that don't change with each model in the configuration file, while passing input and output parameters in the command line.

By default the output is saved to the output directory. By default the output is generated in CityJSON, Wavefront OBJ and GeoPackage formats. To omit an output format leave the corresponding output parameter empty (see lod22-reconstruct -g).

It is possible to save the model to a PostgreSQL database instead of a GeoPackage. To write to a database, you need to pass a GDAL-style database connection string and set the output format to PostgreSQL.

geof single/reconstruct.json --output_ogr="PG:dbname=test" --output_ogr_format="PostgreSQL"

model

To run the reconstruction with your own data, set the global parameters as explained above. Make sure that you have prepared your input data according to the Requirements on the input data.

Running the building reconstruction with Docker

Download the and load the docker image from the Releases page.

The flowcharts that are needed for the building reconstruction are packaged into the docker images for convenience. Thus, you only need to update the global parameters when running a container so that the correct input and output paths are set.

If you write the results back to the docker host, make sure that the target directory is writable by all. For instance in Linux you would do:

mkdir output_docker
chmod a+w output_docker

All LoD-s

The following is an example for running the building reconstruction on the test data. No need to pass the flowchart, because the image already contains it.

docker run \
  --rm \
  --network=host \
  -v "flowcharts/gfc-brecon:/data" \
  geoflow3d/lod22-reconstruct:latest \
  --input_footprint=/data/test-data/wippolder.gpkg \
  --input_pointcloud=/data/test-data/wippolder.las \
  --output_cityjson=/data/output_docker/model.json \
  --output_ogr=/data/output_docker/model_2d.gpkg \
  --output_obj_lod12=/data/output_docker/model_lod12.obj \
  --output_obj_lod13=/data/output_docker/model_lod13.obj \
  --output_obj_lod22=/data/output_docker/model_lod22.obj

LoD1.3 only

The building reconstruction tool for LoD1.3 models is packaged into a docker image, geoflow3d/lod13tool. An example command to run the reconstruction in a new container from the image and write the results to a database on the host:

NOTE: the flowchart underpinning lod13tool works very different from the standard one. It is not recommended to use unless you know what you are doing.

docker run \
  --rm \
  --network=host \
  -v /my/dir/data:/data/in_out_data \
  geoflow3d/lod13tool:latest \
  --config config.toml

Citation

If you use the software in scientific publications, please see CITATION.bib

About Geoflow

This software was mostly developed by Ravi Peters, and now also by Balazs Dukai. Geoflow was originally developed during our time at the 3D geoinformation research group at the Delft University of Technology. We are currently working on this software from the company 3DGI, a spin-off of said research group.

In case you have the need for professional support (SLA), consultancy, or the implementation of custom features don't hesitate to drop us a line at [email protected]

geoflow-bundle's People

Contributors

balazsdukai avatar ylannl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoflow-bundle's Issues

Error on Docker : ERROR:error: Open failed on wippolder.gpk

Hello,
This project is awesome and i wanted to try to use geoflow Bundle with Docker.
I tried with :

  • Docker Desktop on Windows
  • Ubuntu 20.04

I changed the rights of the folder in Ubuntu with chmod a+w like you said in the README.
And i got the same error message on windows and Ubuntu.

    ERROR: Error: Open failed on /var/geoflow/data/test-data/wippolder.gpkg

I used the test dataset that you provided in the README markdown.
I tried with my own data, and shapefile or geopackages and i got the same error message.

Command Line in Ubuntu

docker run 
--rm 
--network=host 
-v /flowcharts/gfc-brecon:/var/geoflow/data/ 
geoflow3d/lod22-reconstruct:2022.06.17 
--input_footprint=/var/geoflow/data/test-data/wippolder.gpkg 
--input_pointcloud=/var/geoflow/data/test-data/wippolder.las 
--output_cityjson=/var/geoflow/data/output_docker/model.json 
--output_ogr=/var/geoflow/data/output_docker/model_2d.gpkg 
--output_obj_lod12=/var/geoflow/data/output_docker/model_lod12.obj 
--output_obj_lod13=/var/geoflow/data/output_docker/model_lod13.obj 
--output_obj_lod22=/var/geoflow/data/output_docker/model_lod22.obj
docker run --rm --network=host -v /flowcharts/gfc-brecon:/var/geoflow/data/ geoflow3d/lod22-reconstruct:2022.06.17 --input_footprint=/var/geoflow/data/test-data/wippolder.gpkg --input_pointcloud=/var/geoflow/data/test-data/wippolder.las --output_cityjson=/var/geoflow/data/output_docker/model.json --output_ogr=/var/geoflow/data/output_docker/model_2d.gpkg --output_obj_lod12=/var/geoflow/data/output_docker/model_lod12.obj --output_obj_lod13=/var/geoflow/data/output_docker/model_lod13.obj --output_obj_lod22=/var/geoflow/data/output_docker/model_lod22.obj
key not found in node parameters: skip_LoD12
key not found in node parameters: skip_LoD13
key not found in node parameters: skip_LoD22
set global input_footprint = /var/geoflow/data/test-data/wippolder.gpkg (from command line)
set global input_pointcloud = /var/geoflow/data/test-data/wippolder.las (from command line)
set global output_cityjson = /var/geoflow/data/output_docker/model.json (from command line)
set global output_obj_lod12 = /var/geoflow/data/output_docker/model_lod12.obj (from command line)
set global output_obj_lod13 = /var/geoflow/data/output_docker/model_lod13.obj (from command line)
set global output_obj_lod22 = /var/geoflow/data/output_docker/model_lod22.obj (from command line)
set global output_ogr = /var/geoflow/data/output_docker/model_2d.gpkg (from command line)
ERROR: Error: Open failed on /var/geoflow/data/test-data/wippolder.gpkg

Command Line in Docker Desktop in Windows

On windows, i have a disk name F and the test-data that you provide is located here :
F:/LOD_2/DockerWindows/data/test-data.
I tried with the native windows path or the quasi-linux path and i still got the same error.

docker run 
--rm 
--network=host 
--volume "/flowcharts/gfc-brecon://f/LOD_2/DockerWindows/data" 
geoflow3d/lod22-reconstruct:2022.06.17 
--input_footprint=//f/LOD_2/DockerWindows/data/test-data/wippolder.gpkg  
--input_pointcloud=//f/LOD_2/DockerWindows/data/test-data/wippolder.las  
--output_cityjson=//f/LOD_2/DockerWindows/data/output_docker/model.json  
--output_ogr=//f/LOD_2/DockerWindows/data/output_docker/model_2d.gpkg  
--output_obj_lod12=//f/LOD_2/DockerWindows/data/output_docker/model_lod12.obj  
--output_obj_lod13=//f/LOD_2/DockerWindows/data/output_docker/model_lod13.obj  
--output_obj_lod22=//f/LOD_2/DockerWindows/data/output_docker/model_lod22.obj
docker run --rm --network=host --volume "/flowcharts/gfc-brecon://f/LOD_2/DockerWindows/data" geoflow3d/lod22-reconstruct:2022.06.17 --input_footprint=//f/LOD_2/DockerWindows/data/test-data/wippolder.gpkg  --input_pointcloud=//f/LOD_2/DockerWindows/data/test-data/wippolder.las  --output_cityjson=//f/LOD_2/DockerWindows/data/output_docker/model.json  --output_ogr=//f/LOD_2/DockerWindows/data/output_docker/model_2d.gpkg  --output_obj_lod12=//f/LOD_2/DockerWindows/data/output_docker/model_lod12.obj  --output_obj_lod13=//f/LOD_2/DockerWindows/data/output_docker/model_lod13.obj  --output_obj_lod22=//f/LOD_2/DockerWindows/data/output_docker/model_lod22.obj
key not found in node parameters: skip_LoD12
key not found in node parameters: skip_LoD13
key not found in node parameters: skip_LoD22
set global input_footprint = //f/LOD_2/DockerWindows/data/test-data/wippolder.gpkg (from command line)
set global input_pointcloud = //f/LOD_2/DockerWindows/data/test-data/wippolder.las (from command line)
set global output_cityjson = //f/LOD_2/DockerWindows/data/output_docker/model.json (from command line)
set global output_obj_lod12 = //f/LOD_2/DockerWindows/data/output_docker/model_lod12.obj (from command line)
set global output_obj_lod13 = //f/LOD_2/DockerWindows/data/output_docker/model_lod13.obj (from command line)
set global output_obj_lod22 = //f/LOD_2/DockerWindows/data/output_docker/model_lod22.obj (from command line)
set global output_ogr = //f/LOD_2/DockerWindows/data/output_docker/model_2d.gpkg (from command line)
ERROR: Error: Open failed on //f/LOD_2/DockerWindows/data/test-data/wippolder.gpkg

So i wanted to know if i did something wrong.
Thanks in advance

Enable LoD2 in github builds

  • Enable lod2 in docker image, so that it takes the flowchart just like the windows exe. It is better to be consistent across the executables. Or do we need this?
  • Update the Installation section in the README with the new Lod2 exe-s.

[Release 2023.07.17] Docker images status

Hi,

As a new release was pushed (2023.07.17) and alpine docker images failed to build using github actions (https://github.com/geoflow3d/geoflow-bundle/actions/runs/5576854283/job/15101126880), I was wondering what was the status of the Docker images.

I've tried and update the alpine images. Base can be built with necessary adjustments (update proj to 9.0.0 and rewrite compilation with cmake + update CGAL version) but I'm blocked when trying to build the builder image (compilation error in gfp-basic3d and flatbuffers/util.h). In addition I had to remove the .git from .dockerignore in order for COPY .git $root/.git in builder to work (same error than the one which blocks github action for now)

I've seen ubuntu images have recently been added. I was able to build the base image and then builder image with my built base image. For the lod22-reconstruct image I had to add ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ as it seems the strip/export/copy process changed some linking absolute paths to relative paths and was causing issues.

Having done that I'm capable to launch docker example from the documentation using the ubuntu images. I struggled to make it work completely due to the error in the single flowchart as described in #23 but the workaround described in this issue solved my problem.
Having looked at the geof verbose log output : Is GF_PROCESS_CRS necessary for the single reconstruct flowchart ?

So at the end of day I presume alpine images are now deprecated, the ubuntu ones are the one to use but the github workflows files have not been updated ?

Thanks in advance

Error when runnning on test data

Hello,

First, thanks for sharing this tool!

Second, I'm trying to run geoflow-bundle on the test dataset that you provide, but I'm getting an error that I don't quite understand so I'd appreciate any hint about what is causing the error.

The context:

  • I'm using Ubuntu 22.04
  • I've installed geoflow-bundle from source using cmake (using the instructions in the README file). It seems to have succeeded.
  • I use the following command:
lod22-reconstruct \
  --input_footprint=${data_dir}/wippolder.gpkg  \
  --input_pointcloud=${data_dir}/wippolder.las  \
  --config=${data_dir}/config.toml

The logs:

Automatically loading flowchart /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json
key not found in node parameters: skip_LoD12
key not found in node parameters: skip_LoD13
key not found in node parameters: skip_LoD22
Could not load node of type OGRLoader, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type OGRWriter, register not found: io-gdal
Could not load node of type PolygonBufferGEOS, register not found: io-gdal
Could not load node of type PolygonSimplifyGEOS, register not found: io-gdal
Could not connect output global_elevation_50p
Could not connect output global_elevation_70p
Could not connect output global_elevation_max
Could not connect output global_elevation_min
Could not connect output attributes
Could not connect output linear_rings
Could not connect output attributes
Could not connect output linear_rings
Could not connect output attributes
Could not connect output linear_rings
Could not connect output data_coverage
Could not connect output roof_pt_cnt
Could not connect output roof_type
Could not connect output ground_elevations
Could not connect output mesh_error_f
Could not connect output mesh_error_f
Could not connect output mesh_error_f
Could not connect output multi_triangle_collections
Could not connect output multi_triangle_collections
Could not connect output multi_triangle_collections
Could not connect output replace
Could not connect output roof_type
Could not connect output skip
Could not connect output errors
Could not connect output errors
Could not connect output errors
Reading configuration from file /path/to/data/config.toml
set global input_footprint_select = 47 (from config file)
set global input_footprint =/path/to/data//wippolder.gpkg (from command line)
set global input_pointcloud = /path/to/data//wippolder.las (from command line)

I've checked /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json and it contains a field named parameters, that contains skip_LoD12 etc.
Also I'm not sure of what the other errors mean.

Thanks for any advice on what is going wrong!

EDIT: remove local filepaths in log

question about the v2023.03.15 tag version

Hello,
and first of all felicitation for this impressive works and initiative.

I am currently trying to get into geoflow, just recently, and so do I using the v2023.03.15.
I choose to try to build the application using the ubuntu builder and things are going well until there.
The tool is installed and I get get the geof command line working fine (i tried inside the builder image).

But When I try to test and execute a simple geof reconstruction using the https://github.com/geoflow3d/gfc-brecon methodology I always have the following error message (from gfp-gdal/ogr_writer_node.cpp)

Reading configuration from file config.toml   
set global input_footprint_select = 1 (from config file)  
set global r_optimisation_data_term = 15.0 (from config file)  
set global input_footprint = wippolder.gpkg (from command line)  
set global input_pointcloud = wippolder.las (from command line)  
ERROR: Error: Number of attributes not equal to number of geometries [field name =OGRLoader.aantal_verblijfsobjecten]  

I tried with different set of parameters and even modifying the gpkg feature (cleaning the last one containing lot of null values etc).

I'd really appreciate it someone could help me finding a starting point to troubleshoot that?

Plugin cloning doesn't work

Pulling in several submodules with git submodule update --init fails:

Cloning to './geoflow-bundle/flowcharts/gfc-brecon'...
The authenticity of host 'github.com (140.82.121.4)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.

After importing those keys it fails with
[email protected]: Permission denied (publickey).

List required dependencies in README

The README shows how to build from source with cmake, but it does not list the required dependencies (gdal, cgal etc). Although, technically these are dependencies of the submodules, since geoflow-bundle bundles them, all their dependencies should be listed (or pointed to), here as well.

Number of attributes not equal to number of geometries

When I try lod22-reconstruct with the test-data I get this error ERROR: Error: Number of attributes not equal to number of geometries [field name =OGRLoader.aantal_verblijfsobjecten]
PS : I am working on ubuntu with the latest version of the code on github.
this is the full log key not found in node parameters: skip_LoD12 key not found in node parameters: skip_LoD13 key not found in node parameters: skip_LoD22 key not found in node parameters: feature_select key not found in node parameters: epsg key not found in node parameters: overwrite key not found in node parameters: epsg key not found in node parameters: overwrite key not found in node parameters: epsg key not found in node parameters: overwrite key not found in node parameters: epsg key not found in node parameters: overwrite key not found in node parameters: epsg key not found in node parameters: overwrite key not found in node parameters: epsg key not found in node parameters: overwrite key not found in node parameters: epsg key not found in node parameters: overwrite ERROR: Error: Number of attributes not equal to number of geometries [field name =OGRLoader.aantal_verblijfsobjecten]

GF_PLUGIN_FOLDER is not created

On branch: develop

chmod 1777 $geoflow_src && \
    cd $geoflow_src && \
    mkdir -p $GF_PLUGIN_FOLDER && \
    mkdir -p build && cd build && \
    cmake .. \
      -DCMAKE_BUILD_TYPE=Release \
      -DGF_BUILD_GUI=OFF \
      -DGF_PLUGIN_FOLDER=$GF_PLUGIN_FOLDER && \
    cmake --build . --parallel $JOBS --config Release
# Split the install from the build, because it makes easier to debug installation issues
cd $geoflow_src/build && cmake --install .

If the GF_PLUGIN_FOLDER does not exists, it is not created. However, geoflow builds and installs without errors. Only when running it, it complains about the missing GF_PLUGIN_FOLDER.

The same happens even if I don't specify GF_PLUGIN_FOLDER.
It sets GF_PLUGIN_FOLDER to /usr/local/lib/geoflow-plugins (on ubuntu), but does not create the dir.

Could cmake create GF_PLUGIN_FOLDER if it does not exist?

open file gpkg error

I download the latest realease Geoflow-2023.08.16-win64.exe an install it on windows system. When I installed it said that can not modified the path var so I added to the variable system the path C:\Program Files\Geoflow\bin

After that I execute the comand
lod22-reconstruct --input_footprint=pruebas2.gpkg --input_pointcloud=prueba2.las
Both files exits and I can open them with qgis

And it gives me the next error:
Automatically loading flowchart C:\Program Files\Geoflow\share\geoflow\gfc-brecon\single\reconstruct.json
Detected environment variable GF_PLUGIN_FOLDER = C:\Program Files\Geoflow\lib\geoflow-plugins
key not found in node parameters: skip_LoD12
key not found in node parameters: skip_LoD13
key not found in node parameters: skip_LoD22
key not found in node parameters: only_horizontal
could not find one marked terminal
key not found in node parameters: only_horizontal
could not find one marked terminal
key not found in node parameters: feature_select
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
ERROR: Error: Open failed on pruebas2.gpkg

I downladed the test data and gives me the same error

ERROR: Error: Open failed on wippolder.gpkg

ERROR: no flowchart_file provided! Segmentation fault & Number of attributes not equal to number of geometries

Hi,

Thanks for sharing the tool, When I try to run the command and test data I'm getting an error that I don't quite understand.

I'm using Ubuntu 22.04, downloaded the lastest version of geoflow-bundle;
I've installed geoflow-bundle from source using cmake (using the instructions in the README file). It seems to have succeeded.

In short: 1. cannot find .json files; 2. Number of attributes not equal to number of geometries; 3. Reinstall encounter new error.

Question1: no flowchart_file provided! Segmentation fault
I use the following command:
geof flowchart.json
The output is:

ERROR: no flowchart_file provided!
Segmentation fault

And I also run other command, like:

 geof single/reconstruct.json

 lod22-reconstruct --list-plugins

The output are:

Automatically loading flowchart /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json
/usr/local/bin/lod22-reconstruct: line 3:  5492 Segmentation fault      /usr/local/bin/geof /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json "$@"

ERROR: no such flowchart_file: single/reconstruct.json
Segmentation fault

Question2: Number of attributes not equal to number of geometries
When I follow the command to run lod22 reconstruction:

lod22-reconstruct \
  --input_footprint=test-data/wippolder.gpkg \
  --input_pointcloud=test-data/wippolder.las \
>
Automatically loading flowchart /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json
key not found in node parameters: skip_LoD12
key not found in node parameters: skip_LoD13
key not found in node parameters: skip_LoD22
key not found in node parameters: feature_select
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
key not found in node parameters: epsg
key not found in node parameters: overwrite
ERROR: Error: Number of attributes not equal to number of geometries [field name =OGRLoader.aantal_verblijfsobjecten]
/usr/local/bin/lod22-reconstruct: line 3:   878 Segmentation fault      /usr/local/bin/geof /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json "$@"

And I checked the output obj file, it only generated 1 buildings.

Question3: New error when I reinstall
I remove the install files in Linux and reinstall geoflow, but new error shows when I run lod22-reconstruction command:

WARNING: no payload for LASF_Projection VLR with record_id 2112.
/usr/local/bin/lod22-reconstruct: line 3:  5736 Segmentation fault      /usr/local/bin/geof /usr/local/share/geoflow/gfc-brecon/single/reconstruct.json "$@"

Before I post this new issue I read the previous issues like #14 , ldd gfp_gdal.so seems good and the installation steps are fine as well. So I have no idea how to fix these...

P.S. during the first I tried to build, I adapted a little bit in order to fix the error I had:

geoflow-bundle/plugins/gfp-basic3d/nodes_cityjson.cpp:672:57: error: ambiguous overload for ‘operator[]’ (operand types are ‘nlohmann::basic_json<>::value_type’ {aka ‘nlohmann::basic_json<>’} and ‘nlohmann::basic_json<>’)
  672 |             std::string optilod = feature["CityObjects"][ ref ] ["attributes"]["optimal_lod"];
      |                                                         ^

then adapted this line in nodes_cityjson.cpp to:
std::string optilod = feature["CityObjects"].find(ref).value()["attributes"]["optimal_lod"];

After this adaption, no error occurs during the build process.

Thanks for your attention in advance! Help wanted!

Can't output as cityjson

Hi,

This is great and very usefull.

I geo problems when I am trying to output as CityJSON:

ERROR: Error: CityJSON driver not available

How do i Install that driver to be able to output as CityJson

Thanks!

Missing input polygon requirement

If a polygon layer with only one column is entered, LOD22-reconstruct will break.
Reproduce this by deleting all columns except FID from the provided GeoPackage and running the lod22-reconstruct command as provided in the docs. Using 2022.06.17 windows CLI executable.

Test data run issue

Hello,

I am getting an error when trying to run the test data on a Windows 64 bits machine

From the cmd:
C:\Program Files\Geoflow\bin>lod22-reconstruct --input_footprint=test-data/wippolder.gpkg --input_pointcloud=test-data/wippolder.las --config=test-data/config.toml

Automatically loading flowchart C:\Program Files\Geoflow\share\geoflow\gfc-brecon\single\reconstruct.json
Detected environment variable GF_PLUGIN_FOLDER = C:\Program Files\Geoflow\lib\geoflow-plugins
key not found in node parameters: meta_poc_address
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/5482
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/5936
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/3978
ERROR 1: PROJ: proj_create: no database context specified
ERROR 1: Cannot parse CRS http://www.opengis.net/def/crs/EPSG/0/2193
ERROR 4: sqlite3_open(output/model_2d.gpkg) failed: unable to open database file
ERROR: Error: Starting database connection failed.

Version: Geoflow-2024.03.08-win64
test-data folder is inside the C:\Program Files\Geoflow\bin
I create an output folder inside the bin folder

Can you please help?
Regards,
JP

Get not triangulated .obj output

Hi, I've successfully built the project and started using it, it's great.
I was wondering if there was anything I could configure as to have a .obj output without triangulating the faces.

Errors occurred when running my custom data set,the output just have a file : model_2d.gpkg

This is a great work. Could you help me solve a problem that everyone might encounter.
1 .data set description:
The data set consists of a single unclassified point cloud and aligned vector data. The vector coordinates are in GWS1984 coordinate system.
2. The command on windows:
lod22-reconstruct --input_footprint=test-data\newconvert\daxinxian_1984.gpkg --input_pointcloud=test-data\1079-shp-model-Cloud444444.las --config test-data/config.toml"
3. running message:
The flowchart "reconstruct.json" is automatically loaded from the path "E:\geoflow_install\share\geoflow\gfc-brecon\single".
An environment variable "GF_PLUGIN_FOLDER" is detected and its value is "E:\geoflow_install\lib\geoflow-plugins".
A key "meta_poc_address" cannot be found in the node parameters.
Warning 3: The file "tms_NZTM2000.json" cannot be found, and the environment variable "GDAL_DATA" is not defined.
4.Does there have any other requirements for the data,Thank you.
image
image

Documentation to get started

  • What is geoflow and what is it not
  • The current status of geoflow
  • Tutorial on how to do the building reconstruction with test data in the CLI.
  • Explain all the global parameters. Keep them in the TOML, just review them if they still up to date.
  • Describe and show what dir structure is created for the outputs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.