Graph Processing

Graphs

Graph Processing is used to apply operations to the data to allow you to create your own processing chains.

A graph is a set of nodes connected by edges.  In this case, the nodes will be the processing steps.  The edges will show the direction in which the data is being passed between nodes; therefore it will be a directed graph.  The graph will have no loops or cycles, so it will be a Directed Acyclic Graph (DAG).

The sources of the graph will be the data product readers, and the sinks can be either a product writer or an image displayed on the DAT.

The GPF uses a Pull Model, wherein a request is made from the sink backwards to the source to process the graph. This request could be to create a new product file or to update a displayed image.  Once the request reaches a source, the image is pulled through the nodes to the sink.  Each time an image passes through an operator, the operator transforms the image, and it is passed down to the next node until it reaches the sink.

The graph processor will not introduce any intermediate files unless a writer is optionally added anywhere in the sequence

Tiling

The memory management allows very large data products that can not be all stored in available memory, to be handled by the processing tools and visualization.  To do so, a tiled approach is used.

The dataset is divided into workable areas called tiles consisting of a subset of the data read from disk in one piece.  Only the data for tiles being visualized is read in, and in some cases the data could be down-sampled to view the desired area at the expense of resolution.

Depending on the tool, data is ingested for a tile or a set of tiles, and processing is applied only to the current set of tiles.  The data is then written to a file and released from memory.  The process is then repeated on a new set of tiled data from the large data product.

From the DAT, in order to allow zooming out and viewing of the entire image, a pyramid of tiled images at different resolutions is used. Tiling is generally transparent to the user.

Operators

In order to provide the greatest flexibility to the end user, processing algorithms such as orthorectification and co-registration are broken down into unit processing steps called Operators. These operators may be reused to create new processing graphs for other purposes.


The Toolbox includes various processing modules that could be run either from the DAT GUI or from the command line such as: