-
Notifications
You must be signed in to change notification settings - Fork 14
Home
Geoflow is a spatial ETL tool for processing 3D geo-information such as point clouds and 3D city models.
I started developing Geoflow while was working on an algorithm for automatic 3D building reconstruction from point clouds (what currently underpins 3DBAG.nl )). This turned out to be a complex process consisting of many small steps that are executed sequentially. The first step is to read the input datasets (eg. point cloud) and the last step to write the 3D building model to a file. And, most importantly, in between there are many steps that take some data, process it and output new data. At the beginning of my work I did not know what the final algorithm would look like. And as I was working on the reconstruction algorithm and trying different ideas I quickly realised that it was very important to me to be able to quickly
- (visually) inspect and validate the output of each step in the process,
- reconfigure the behaviour of one step and immediately see the effects on the rest of the pipeline, and
- replace the operations in one steps with an alternative implementation, or remove and add steps all-together.
And thus Geoflow was born. I built it to be fast, interactive, and modular. It consists of a GUI application that allows one to quickly run and compose 'flowcharts' from 'nodes' (each node is steps in the process as described above) and connections between nodes (to direct how the data flows). A command line application also exists that can be used to run flowchart files (human readable JSON) on headless servers.
Geoflow is designed around the idea of the flowchart.
- nodes and connections.
- processing order
- node parameters and globals*
- saving and loading a flowchart
geof <flowchart file> [--config <TOML config file with globals>] [--GLOBAL1 <value> --GLOBAL2 <value> ...]
You can also simply print just information on the plugins that are loaded with:
geof info
Takes the same parameters as geof
on the command line, but opens a GUI instead of simply running a flowchart.
Warning: the GUI is currently experimental.
- Right click to open the menu to create new nodes
- Drag from input/output terminals to make connections
- Right click on a node to access its context menu
- Translate in the 3D viewer by left-mouse dragging while holding
ctrl
, faster zooming by holdingctrl
while scrolling.
The geoflow-bundle repository bundles geoflow together with the actively developed plugins and some example flowcharts (eg. for building reconstruction). With each release of this repository some binary packages become available:
Geoflow can be compiled for all major platforms (Linux, Mac, Windows). We prioritised the above packages, but we aim to provide readily usable binaries for other platforms too in the future.