>  Docs Center  >  Libraries  >  Buie  >  ITOOL__DEFINE
Libraries

ITOOL__DEFINE

ITOOL__DEFINE

Class Name


    itool

Purpose (one Line)


    To display an image and provide tools for its visualization.

Category


    Widgets

Superclasses


Subclasses


Creation


    See itool::init

Methods


    itool::apdraw
    itool::cleanup
    itool::close
    itool::cstr
    itool::display
    itool::draw
    itool::getproperty
    itool::newprofile
    itool::nextimage
    itool::oneph
    itool::phact
    itool::setproperty
    itool::tpdraw
    itool::trk
    itool::realize
    itool::init
  2004, Mar and Apr, DWL,
    This version of itool was derived from a major overhaul of cw_itool
  and related routines. It was implemented as an object class
  named 'itool.' Multiple instances may be realized and managed by host
  applications.
    All of the widget applications that may be launched from itool have
  been re-written using object-oriented techniques and using a standard
  interface that allows simple and efficient communication of data between
  them and itool. The object-oriented approach simplifies operation on
  data, via method routines. With this approach and the standard
  interface, it should be simple to maintain itool and its related
  applications, as well as to add other widget applications in the
  future.
    All of the itool object-oriented widget applications are named with
  "itoolwa" as the prefix. The "wa" in the name stands for "widget
  application." The portion of the file names before the two "underscore"
  characters are the object-class names. The itool widget applications are:
  itoolwacpmgr__define.pro ; The Comet Photometry Manager.
  itoolwaimparms__define.pro ; The Image Parameters Editor.
  itoolwaphparms__define.pro ; The Photometry Parameters Editor.
  itoolwapixed__define : The Pixel Editor.
  itoolwaprofile__define.pro ; The Profiles Tool.
  itoolwatpmgr__define : The Template Manager.
  itool widget-application details:
    First, each object-oriented widget application, including itool itself,
  have the following "properties" available within their respective
  object classes:
    tlb : the top-level-base of the widget application.
    pstate : a pointer to the widget application's state structure.
    In addition, each of the widget applications listed above have the
  following property in their respective object classes:
    oitool : The object reference of the instance of itool from which
                  the application was launched.
    Other properties are defined for each object class, including
  the "itool" object class.
    Finally, each object-oriented widget application, including itool,
  stores a copy of its own object reference in the UVALUE of its
  top-level base. Every event handler may retrieve a copy of the application's
  object reference by calling
    widget_control, event.top, get_uvalue=oref
  Then, a copy of the pointer to the state structure may be obtained by calling
    oref->getproperty, PSTATE=pstate
  Method routines have direct access to the pointer to the state structure,
  via their intrinsic "self" arguments (self.pstate).
    When one of the above widget applications is launched from an instance
  of itool, itool passes a copy of its object reference to that application.
  In return, itool receives a copy of the object reference for the new
  instance of that application. The object class for itool defines
  "properties" for storing object references of each of the applications
  listed above. The Profiles Tool is allowed more than one instance
  to be active; object references for it are maintained within an object
  array.
 
  Additional comments:
    Fixed old bugs. Cleaned up event handling and data-storage techniques.
  Some of the external routines called are:
  itool_pplod.pro Loads photometry parameters into a
                    structure, from a file.
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::apdraw

Purpose


    To draw a photometric aperture in the zoom window.

Calling Sequence


    oref->apdraw,x,y
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::cleanup

Purpose


    Self-explanatory

Calling Sequence


    obj_destroy, oref

Inputs


    oref : An itool object reference.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::close

Purpose


    Self-explanatory

Calling Sequence


    oref->close

Inputs


    oref : An itool object reference.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::cstr

Purpose


    To compute a stretch range for the image.

Calling Sequence


    oref->cstr, frame

Inputs


    frame : The image frame number (the image may be a "cube" of images).
            Always 1 for 2-D images.

Optional Inputs


   

Keyword Parameters


    SILENT : Set this keyword to suppress display of the stretch range.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::display

Purpose


    To refresh the itool label and text widgets.

Calling Sequence


    oref->display
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::draw

Purpose


    To refresh the draw itool widgets (full, zoom, and work).

Calling Sequence


    oref->draw

Inputs


Optional Inputs


   

Keyword Parameters


    ALT_WORKWIN : Set this keyword to a valid window number. It will be
                  used instead of the window number of the local work
                  window.
    FULL : Set this keyword to draw the full window.
    WORK : Set this keyword to draw the work window.
    ZOOM : Set this keyword to draw the zoom window.
    ZXCEN : The x-coordinate of the center of the zoom array.
    ZYCEN : The y-coordinate of the center of the zoom array.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::getproperty

Purpose


  To retrieve "properties" defined for the itool object class. Properties
  are specified as keyword arguments.

Calling Sequence


    oref->getproperty

Inputs


Optional Inputs


   

Keyword Parameters


    NO_BLOCK : Set this keyword to a named variable in which to return the
              value of the NO_BLOCK property. It is passed to all of the
              itool widget applications. If itool is running in non-blocked
              mode, all of its widget applications will run in non-blocked
              mode.
    OIMAGE : Set this keyword to a named variable in which to return the
            object reference of the current image object that is active.
    OITOOLWACPMGR : Set this keyword to a named variable in which to return
                      the object reference for an active Comet Photometry
                      Manager.
    OITOOLWAIMPARMS : Set this keyword to a named variable in which to return
                      the object reference for an active Image Parameters
                      tool.
    OITOOLWAPHPARMS : Set this keyword to a named variable in which to return
                      the object reference for an active Photometry Parameters
                      tool.
    PPH_PARMS : Set this keyword to a named variable in which to return
                      a pointer to the ph_parms structure.
    PSTATE : Set this keyword to a named variable in which to return
                      a pointer to the state structure.
    STATUS : Set this keyword to a named variable in which to return
                      the itool status structure. The status structure is
                      defined as:
                      status = {flag:flag, msg:msg, lasttype:lasttype,
                                lastpos:lastpos, object:object,
                                lastfwhm:lastfwhm, lastmag:lastmag}
                      where
                      flag = true if photometry parameters or if templates
                              have been modified.
                      msg = A message string, indicating which have been
                              modified.
                      lasttype, lastpos, object, lastfwhm, and lastmag are
                      from the im_parms structure.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::newprofile

Purpose


    To launch a new instance of the Profiles widget application.

Calling Sequence


    oref->newprofile

Inputs



  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::nextimage

Purpose


    To display another image.

Calling Sequence


    oref->nextimage, oimage

Inputs


    oimage : An object reference of class itoolimage.

Optional Inputs


   

Keyword Parameters


    FIRST : Set this keyword if nextimage is called from a fresh start-up
            of itool. Otherwise, assume that nextimage is being called
            directly from the host application that launched this instance
            of itool.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::oneph

Purpose


    To do one single-object photometry operation.

Calling Sequence


    oref->oneph, x, y

Inputs


    x, y : the work-window coordinates from a mouse-button event.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::phact

Purpose


    To perform template photometry.

Calling Sequence


    oref->phact, x, y

Inputs


    x, y : the work-window coordinates from a mouse-button event.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::setproperty

Purpose


    To set "properties" defined for the itool object class. Properties
  are specified as keyword arguments.

Calling Sequence


    oref->setproperty

Inputs


Optional Inputs


   

Keyword Parameters


    OITOOLWACPMGR : the object reference for the newly-launched Comet
                      Photometry manager.
    OITOOLWAIMPARMS : the object reference for the newly_launched Image
                      Parameters tool.
    OITOOLWAPHPARMS : the object reference for the newly_launched Photometry
                      Parameters tool.
    OITOOLWATPMGR : the object reference for the newly_launched Template
                      Manager.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::tpdraw

Purpose


    To plot the current template in the work window.

Calling Sequence


    oref->tpdraw

Keyword Parameters


    ALT_TPLATE : Set this keyword to a valid {itool_templatelist} structure.
                  It will be used as the template to draw, instead of the
                  currently-selected template from The Template Manager.
    ALT_WORKWIN : Set this keyword to a valid window number. It will be
                  used instead of the window number of the local work
                  window.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::trk

Purpose


    To refresh the cursor tracking display widgets.

Calling Sequence


    oref->trk, x, y

Inputs


    x, y : the coordinates from a motion event in the work or zoom window.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::realize

Purpose


    To realize a new, managed instance of the itool object class.

Calling Sequence


    oref->realize

Inputs


Optional Inputs


   

Keyword Parameters


    NO_BLOCK : Set this keyword to cause the widget application to run
              in non-blocked mode.
  -----------------------------------------------------------------------------
  METHOD NAME:
    itool::init

Purpose


    To initialize a new instance of the itool object class (the itool GUI).

Calling Sequence


    oref = obj_new('itool', oimage)

Inputs


    oimage : An object reference of class itoolimage.

Optional Inputs


   

Keyword Parameters


    EXPERT : Set this keyword to turn on certain "expert" modes of
                  operation.
    FVISIBLE : Set this keyword to the desired size, in pixels, of the
                  full window (default is 128).
    GROUP_LEADER : Set this keyword to the group leader for this instance.
    NODISMISS : Set this keyword, to de-sensitize the Dismiss button on
                  the file menu and sensitize the Exit button. Otherwise,
                  the Dismiss button will be sensitive and the Exit button
                  will be insensitive.
    PHOTPARMFILE : Set this keyword to a string containing the name of
                  a photometry-parameters file.
    SCLMIN : Set this keyword to a minimum stretch-range value.
    SCLMAX : Set this keyword to a maximum stretch-range value.
    TMPLFILE : Set this keyword to a string containing the name of
                  a template file.
    WXVISIBLE : Set this keyword to the size, in pixels, of the width
                  of the work window (default is 500).
    WYVISIBLE : Set this keyword to the size, in pixels, of the height
                  of the work window (default is 500).
    WZOOMFACT : Set this keyword to the ceiling of the zoom factor
                  (default is unlimited).
    XSIZE : Set this keyword to the width, in pixels, of the image
                  (required).
    YSIZE : Set this keyword to the height, in pixels, of the image
                  (required).
    ZVISIBLE : Set this keyword to the desired size, in pixels, of the
                  zoom window (default is 128).

Outputs


    oref = The object reference of the new instance of the itool
          object class.

Optional Outputs


Common Blocks


Side Effects


Restrictions


Procedure


    After creating a new instance of this object-oriented widget application,
  it must be realized.

Example


    oref = obj_new('itool', oimage, GROUP_LEADER=group_leader)
    oref->realize
  -----------------------------------------------------------------------------

Modification History


    Note: Adapted from cw_itool.pro. The following history has been copied
  from cw_itool:
    Written by Doug Loucks, Lowell Observatory, June 1994.
    This version is a major re-write, employing the compound widget design
  introduced in Version 3 of IDL.
  94/10/27, MWB, Lowell Observatory, fixed ZOOM bug on line 1144.
  95/01/24, MWB, xcen,ycen size mismatch storing back to template if array is
          3-d. Fixed to copy *last* position from Basphote return.
  95/06/12, MWB, Fixed bug in stretch range computation for large cubes of
          small images.
  95/09/07, MWB, Changed auto-stretch computation to make it more robust.
  95/10/31, MWB, Fixed widget layout problem caused by IDL v4.0 changes.
  96/01/06, MWB, Changed W*VISIBLE default to recognize smaller screens.
  96/01/16, MWB, Fixed !order=1 bug in mouse event handling.
                Fixed Stretch Menu operational bugs for handling image cubes.
  96/06/25, MWB, Added autophot support
  97/12/12, MWB, changed display to include more image info on main window.
  99/08/31, MWB (with help from John Mattox), added a
              feature that overplots the aperture on the zoom window
              image after template or single-object photometry measurement.
  2001/4/3, MWB, added plotting of active template in work window
  2001/9/18, MWB, fixed color error in plots with 8-bit display.
  2002/11/17, MWB, fixed !order=1 bug for overplotting templates.
                  Replaced image scaling with updated skysclim routine.
  2004/04/15, DWL, Major overhaul of the entire program.
  2004/05/28, DWL. Added a 'Save Image to FITS' button to the File Menu.
                    Added a 'Save Thumbnail Window to JPEG' button to the
                    File Menu.
                    Added a 'Save Work Window to JPEG' button to the
                    File Menu.
                    Added a 'Save Zoom Window to JPEG' button to the
                    File Menu.
  2005/11/01, DWL. Added method routine itool::close. This method allows
                  an instance of itool to be closed, from an application
                  that is managing the instance.
  2006/03/15 - DWL, Created a new object class named 'itoolimage' (see
                itoolimage__define.pro for details).
                  An instance of this object class is now passed as the
                argument to this init method, instead of the former "pim_parms"
                argument.
                  The changes to the itool GUI involve the places where the
                "pim_parms" argument is required. Now, "pim_parms" is acquired
                via the "getproperty" method of the 'itoolimage' object class,
                using the object reference provided via the "oimage"
                argument.
                  Since it has always been necessary to generate and store
                information (im_parms) about the image to be displayed in the
                itool GUI, I felt that this was a good argument in favor of
                combining the image data and the initialization requirements
                for those data. Obviously, this suggested object-oriented
                techniques. With this new object class, calling routines
                that use the itool GUI benefit from the built-in
                initialization and cleanup when an instance is created or
                destroyed. It is no longer necessary for callers of the itool
                GUI to invoke separate code segments to handle initialization
                and cleanup of image data; they need only create and destroy
                instances of the 'itoolimage' object class (obj_new and
                obj_destroy).
                  Note that the old procedure named itool_init is no longer
                needed; the duties of that procedure are now handled by the
                "init" method of the 'itoolimage' object class.
  2006/04/4, MWB, fixed auto-scaling bug when looking at image cubes.
  2006/5/22, Peter L. Collins, Lowell Observatory
              added ccd readout noise as photometric parameter.



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
   Contact Us