an initial attempt at a rewrite of hydromod final project submitted for simg-726 computing for...
Post on 21-Dec-2015
213 views
TRANSCRIPT
An Initial Attempt at a Rewrite of
Hydromod
Final Project submitted for SIMG-726 Computing For Imaging
ScienceAdam Goodenough
2.28.2002
What is Hydromod?
• Hydromod is an interface to the programs Hydrolight and MODTRAN
• Contains additional routines that integrate the two programs
• Originally written by Major Ron Fairbanks in 1999 to determine the impact of clouds on remotely sensed water parameters
• IDL code consists of more than 100 possibly useful routines
MODTRAN
Hydrolight
Why Try to Rewrite It
• Code is difficult to follow (common blocks, commented out code)
• Interface is buggy • Usage is unintuitive• Hard to extract useful routines
for other applications• Windows jump around
Approach
• Write an interface that is independent of the algorithms
• Input parameters to algorithms defined through independent widget interfaces
• Each “module” independent of the overall program
• Scripting control that bypasses widgets• Ability to easily switch modules in and
out of the main program
Module Objects
• Self-contained variables and routines that relate to a specific task
• Can be run independently (either interactively or scripted)
• Contain functions that are common to all modules so that they can be used by the other objects
Container Objects
• Contain a list of all of the modules currently being used
• Provide a way to efficiently access some or all of the module objects
• Contain functions that can be used to manipulate the modules
Interface Objects
• Provide a way to switch between different modules to do different tasks
• Create an overall structure for passing information between modules
• Allow the user to save/load a “project”
• Maintain a constant environment
Current Implementation
• Container Object: BaseList– Allows manipulation of module bases
• Interface Object: TabManager– Produces a tabbed window interface
• (Still needs project support)
• Module Object: SkyGen– Sets up MODTRAN to generate sky
• (Not quite complete)
• Other Module Objects: TBA