Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.stsci.edu/~mperrin/software/gpidata/developers/organization.html
Дата изменения: Sat Feb 15 03:42:02 2014 Дата индексирования: Sun Mar 2 09:17:22 2014 Кодировка: IBM-866 Поисковые слова: п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п |
The GPI data pipeline is implemented in object-oriented fashion using IDL classes. Some classes provide GUI windows, other provide internal components that don’t directly draw to the screen.
This page briefly summarizes the different components. For detailed documentation on the functions and variables internal to the following, please see the comments in the source code directly.
The following are all object classes, so see e.g. launcher__define.pro for the source code for the “launcher” object.
The main loop of the pipeline occurs inside the gpipipelinebackbone::run_queue method.
The call hierarchy inside gpipipelinebackbone is something like the following. Each indentation indicates being one level deeper in the call stack or inside a loop Each of these methods is part of gpipipelinebackbone.
gpipipelinebackbone::Run_queue (loops forever checking the queue)
gpipipelinebackbone::run_one_recipe (called when a recipe is found)
parses recipe
gpipipelinebackbone::Reduce
loops over input files in that recipe
loops over modules in that recipe
gpipipelinebackbone::RunModule
invokes actual primitive code here...
update log and status window for each primitive
update log and status window for each file
update status console, clean up recipe file
Check for user input from status console buttons
Check for any new recipe files to process
loop to continue running queue
The pipeline uses some IDL common blocks to pass global variables between different routines.
Note
TODO
Document here the common block variables in the code, in both the APP_CONSTANTS and PIP common blocks. TBD if it is possible to merge both? There is some low level stuff here that is probably obsolete and could be cleaned up.