Design Overview
SIFT’s software design revolves around a few key components:
Main Window (GUI)
Workspace
Document
Scene Graph
Each of these components is described in the sections below. Other components involved in accomplishing SIFT’s feature.
Main Window
Currently the main window for the SIFT GUI connects all other components and helper objects. This may change in future versions of SIFT. By defining things this way the main window has access to UI events and can connect them to the other SIFT components that need to use them like those listed below.
Workspace
The Workspace acts as the manager of on-disk or remote data. It will handle importing requested datasets, caching binary data, and storing dataset metadata in a database for easier querying. Since the Workspace manages all of the cached data it is also the best place that SIFT components will go for variations on the data (different resolutions, data within a polygon, etc).
Document
The Document acts as the “model” of the Model-View-Controller design of SIFT. Through the Document a developer can get access to individual layer objects containing metadata, layer order, and animation order. In the future as other features are added to SIFT the Document may provide user profile or configuration information.
Scene Graph
The Scene Graph wraps all map canvas elements visual elements.
It handles connecting all mouse events from the map canvas like pan and zoom
events. The majority of this components responsibility is to map SIFT
functions to the python vispy
library.