Top Banner
An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG- 726 Computing For Imaging Science Adam Goodenough 2.28.2002
12

An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

An Initial Attempt at a Rewrite of

Hydromod

Final Project submitted for SIMG-726 Computing For Imaging

ScienceAdam Goodenough

2.28.2002

Page 2: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam 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

Page 3: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.
Page 4: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

What Does it Do?

MODTRAN

Page 5: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

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

Page 6: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

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

Page 7: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

Implementation with Objects

ModuleObjects

ContainerObjects

InterfaceObject

Page 8: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

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

Page 9: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

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

Page 10: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

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

Page 11: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

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

Page 12: An Initial Attempt at a Rewrite of Hydromod Final Project submitted for SIMG-726 Computing For Imaging Science Adam Goodenough 2.28.2002.

Questions??

?