Flows are a graphical representation the processing of data.
Every flow needs inputs, outputs, and wires connecting them.
Flows are directed acyclic graphs (DAG). A DAG is a graph where nodes are connected by directed (directional) edges that do not form a closed loop. DAGs represent the flow of data through a processing pipeline.
Data Processing
Data in Giraffe Flows always processes from left to right - starting with an input and flowing to an output.
Almost all flows include at least one instructional node, which changes the input geometry in some way before writing the output.
Parts of Every Flow
Every flow has:
One
read featureAt least one
write featuresWires connecting the
read featureto thewrite features
Most flows have:
At least one instructional node
Data primitive inputs for the instructional node(s)
Some flows have:
Two or more branches, creating multiple data streams from a single input
Additional geometric inputs, like
get raw featuresAdditional formatted inputs, like
get usageSpecial transform inputs which display as form fields in the properties palette, like
input parameterorapartment transformData Flow nodes, which loop through lists of objects, like
maporfilter
Input and Output Features
The inputs and outputs have a 1:1 relationship with features in your project.
Read Feature
Read Feature feeds in the data for the original geometry the flow is assigned to.
It has a 1:1 relationship with a single piece of geometry, like this rectangle.
Read Feature can never reference more than one geometry.
The same flow graph can be assigned to multiple geometries, but a single flow graph can never start with more than one geometry.
Write Features
Write Features tells Giraffe where the flow "ends" - the final output of the logic you've created in the flow. The output feature is the transformed geometry result from the instructional node(s) in the flow.
For instance, this rectangle has been offset by 5 meters. It renders on the map because the graph ends with a write features node.
Don't forget to connect your instructional nodes' outputs to a write features node. Your flow results will not render on the map without being connected to a write features node.
Instructional Nodes
Instructional nodes transform geometry and/or data objects in some way.
To make the flow do something interesting, we need to add instructional nodes.
This is where the big data and geometric transformations happen!
Every instructional node will require one or more input values and will output one or more result values.
Instructional nodes do not necessarily have a 1:1 relationship with geometric features or project data. Rather, they are processing data within the flow of information through your graph.
Branches
Flows allow for branching logic. A single input can feed values to multiple outputs. Sometimes, key values can be re-used in multiple branches.
All output connectors can support multiple wires leading to other nodes. This allows you to create branching logic from one input.







