Processes: Basic Concepts
A thorough, formal discussion on PixInsight's processes is out of the scope of this documentation. It would require some technical background and fluency with advanced programming concepts, which of course are of no interest to us here.
Our intention with this document is just to give you some precise information and terminology on a small number of concepts that correspond to fundamental design principles of PixInsight.
A process in PixInsight is a formal definition of data items and functions that characterize a particular task or action of any kind. Many of these data elements are accessible to the user, including process parameters and preferences settings. Many process functions are also used routinely, as executing a process on an image view or preview, storing a process in a disk file and retrieving it, defining process parameters, etc.
Each process belongs to a process category. Process categories group processes that share some defining aspects and/or whose processing tasks are related in some way. For example, an easily identifiable category is that of geometric processes: cropping, resampling, rotating, mirroring, warping, distorting, and so on.
Each process category defines some functionality and imposes some restrictions which are inherited by all of its derived processes. For example, no geometric process can be executed on a preview.
Default categories have been defined with some unavoidable degree of arbitrarity. We have tried to achieve a good structuration in the default set of processes.
Each process is formally identified through a process name, which is usually formed by joining some capitalized words that are meaningful to what a process is intended to do. For example, the CropExpand process is obviously to crop or expand images, and the CurvesTransform process does what a common curves adjustment is expected to do (and much more, actually), just to put two frequently used examples.
PixInsight comes with a set of predefined processes, whose description is the subject of much of the available documentation material. Each version and/or edition of PixInsight includes a different set of processes.
In standard versions of PixInsight, processes are defined in a flexible and modular way by using dedicated API (Applications Programmer Interface) functions from external modules written in the C++ programming language. New modules, implementing new or improved processes, file formats and interfaces, can also be provided by the user as well as third party sources.
The modular API system will not be included in PixInsight LE. In PixInsight LE, a fixed set of processes, file formats and interface resources has been hard-coded and cannot be altered.
Processes can have dedicated interfaces. This usually refers to one or some windows where the user can define the parameters of an instance of that process. These windows are generically known as processing windows in PixInsight. Processing windows play a key role in the practical usage of PixInsight because they are the main visible faces of processes. For each process, we'll give a detailed description of the associated processing windows.
Processing interfaces can also be defined by external modules through the use of dedicated API functions in PixInsight Standard.
A process instance is a tangible object whose properties and functionality are given by the fact that it represents a particular process. In other words, you can think of a process instance as a material realization of the abstract definition provided by a process.
Process instances are as important as images in PixInsight. In fact, you can play a lot with processes in PixInsight without having an image open.
When we refer to a process instance of a specific process we usually say something like an instance of ReadoutOptions, for example, or instances of RGBSpaceParameters.
Process instances can appear under different forms in PixInsight. The set of graphical elements that the user can see to identify and manipulate a process instance is known as a process envelope.
There are two main process envelopes in the default PixInsight's interface: process icons and process drag objects. Process icons are free process instances that the user can create and manage on the main window's workspace. Process drag objects are tied to processing windows and have more limited functionality. The screenshot below shows a few real examples:
As you see, process icons include unique names (identifiers) and graphical images that identify them. Both icons and drag objects will be described in detail throughout the rest of this documentation.