Multiple Inputs and Outputs
While most processing components that can be included into a processing pipeline only accept one input component or only produce one output component, a few components either accept more than one input and/or produce more than one output:
- BMIModel
- ImageWriter
- JSMapKernelScript
- MapAlgebra
- MapKernelScript2
- RAMFlowAcc
- SQLProcessor
- SummarizeZones
- UniqueCombination
Linking Multiple Input Images to a Component
Components that accept more than one input, refer to different input images using the input compnents’ UserID
s. Components that expect inputs of a specific type or content, e.g. SummarizeZones
or RAMFlowAcc
, expect different inputs to be indicated by specific names (UserID
), e.g. ZoneImage
or DEM
. Please refer to the individual component’s reference for more information.
Linking Multiple SQLite Databases to a SQLProcessor
When multiple SQLite databases are linked as input to a SQLProcessor
component, the first input becomes the main database. All subsequent databases linked to that component are attached to the main database. For example, in the pipeline depicted below, ImageReader116
provides the main
database as it is listed as the first input component to SQLProcessor89
. The database provided by ImageReader118
is then attached to the database of ImageReader116
. Thereby its UserID
(blackhole
) is registered as the schema name for its database. This way all database tables from all attached databases can be accessed by the SQLProcessor
via schema-name.table-name
.
Assigning Names to Multiple Outputs
Since each component only has a single UserID
, components that produce more than one output image provide other means of specifying individual output names. For example, the MapAlgebra
component provides the property OutputNames
(s. image Image Access by Index or Name) for users to specify a name for each individual output image produced. Whether or not a BMIModel
provides multiple outputs and how they’re named, can be determined using the model’s API or consulting the model’s documentation.
Linking Specific Outputs as Input to Another Component
To link a specific output image of a processing component that produces more than one ouput, e.g. MapAlgebra
, as input to another component, the user needs to append the name of the output image to the component’s name using a colon :
(s. ‘access by name’ in image below). Alternatively, the output image can also be referred to by its output index (s. ‘access by index’).