PHAST Graphical Interface

This page contains executable versions of a graphical interface for PHAST. The interface is still under development. The interface is being developed by Richard B. Winston (rbwinst@usgs.gov).

Draft documentation: do not cite

Downloads

Updated: Feb. 2, 2005

Linux

Windows

Source Code

Future Directions

The following are some of the major tasks that may be done in a future version of the PHAST interface. 

Version History

Version Date Characteristics
0.6.5.0
Feb. 2, 2005
Fixed bugs in display of  Object Properties dialog box. Fixed bug in selecting objects so that objects drawn on different view of the model can't be selected simultaneously. Fixed bug importing shape files. Speeded up display of  "Show or Hide Objects" dialog box. Fixed bug in handling interpolation.  Fixed bug in updating the "Show or Hide Objects" dialog box.  Removed "visible" attribute of data sets. Fixed bug in reading grid angle when opening a file. Fixed handling of delete key when creating an object. Fixed bug in setting vertical exageration.
0.6.3.0
Dec. 19, 2005
Fixed bug that caused a rain-check error in the Object Properties dialog box if a data set was made invisible and then made visisble again. Fixed bug that incorrectly allowed editing of boundary conditions in several objects at one time when the choice of boundary conditions conflicted.  Fixed bug that prevented the Active data set from being made invisible.
0.6.2.0
Dec. 8, 2005
Speeded up display of Object Properties dialog box.
0.6.1.0
Dec. 6, 2005
Fixed bug that caused an access violation when double-clicking in the "Show or Hide Objects" dialog box. Fixed a bug in the "Show or Hide Objects" dialog box in which popup menu items were enabled or disabled inappropriately.
0.6.0.0
Nov. 21, 2005
Release candidate 2:  Implemented undo for changes to data sets. Help updated to reflect changed documentation. Added "most recently used files" menu items.  Added support for *.wld  files to specify the locations of bitmaps. Fixed bugs that caused access violations. "Show and Hide Objects" dialog box modified to allow the user to select and edit objects and to show formulas.  Added coordinate conversion option when importing shape files. Added support for filtering shapes when importing shape files.  Added support for importing scattered data points.  Modified  "Show and Hide Objects" dialog box to allow it to remain open when the user is editing the model in the main window.  Changed the terminology to use "vertex" instead of "node" in description of objects. Changed default size of initial grid.
0.5.0.1 Aug.. 29, 2005
Fixed several bugs that caused access violations. (Linux executable and source code not updated until Sept. 19)
0.5.0.0
July 22, 2005
Release candidate 1: A variety of bugs were fixed, the help system and draft documentation were completed.
0.4.1.0
Mar. 17, 2005 Fixed bug that would cause an endless series of assertion violations if the user exported the PHAST input file while the grid was being colored with a boundary condition data sets that was time-dependent. Added Search capabilities to the help.
0.4.0.0
Mar. 2, 2005
A help system has been implemented. Selecting objects has been changed to be more intuitive.  A new method fo slecting objects has been added (Object|Select Objects).  A varitey of of bugs have been fixed. The following functions have been changed. 
  • ObjectNodeX
  • ObjectNodeY
  • ObjectCurrentNodeX
  • ObjectCurrentNodeY
  • LayerHeight
  • BlockAreaSide
  • BlockAreaFront
  • LayerBoundaryPosition
  • FractionOfObjectLength
Users should check the help system under "Functions" for how these functions are now used and make any required adjustments to their models.  There is a link to "Functions" in the help for the formula editor.
0.3.4.0 Jan. 25, 2005 Objects can now be displayed in 3D.
If started from the command line, command line parameters can be used to open a paticular file, export the PHAST transport input file and close the file.  The first parameters must be the file name and may include the complete path.  Use quotes if the name or path include spaces.  The command line option "-e" is used to export the PHAST transport input file.  "-c" will cause GoPhast to close.  The "-c" and "-e" must file the name of the file (if any) to open.
0.3.3.0 Jan. 11, 2005
When exporting the transport file, the file format was modified to reflect PHAST version 1.0. The examples were updated. Several bugs were fixed.
0.3.2.0 Nov. 10, 2004 The user can now control the visibility of individual objects via the Objects|Show/Hide Objects menu item.
0.3.1.0 Nov. 4, 2004 It is now possible to color the cells in the 3D view of the model based on a data set.  It is now possible to limit the cells that are colored in any view of the model to be within a specified range of values.  Cells outside that range are left uncolored.
0.3.0.0 Oct. 21, 2004 3D rendering of the model was added.  So far only the grid lines are displayed.
0.2.26.0 Oct. 18, 2004 Fixed additional bugs in the ColumnBoundaryPosition, RowBoundaryPosition, and LayerBoundaryPosition functions.
0.2.25.0 Oct. 18, 2004 Fixed bugs in the ColumnBoundaryPosition, RowBoundaryPosition, and LayerBoundaryPosition functions.
0.2.24.0 Oct. 18, 2004 Fixed bug in drawing objects. Added command to show the selected objects.  Added command to search for and select objects based on what they do. Added functions that return the number of rows, columns and layers in the grid. Fixed bug in initialization of OpenGL rendering.
0.2.23.0 Oct. 15, 2004 Fixed bug in drawing objects.
0.2.22.0 Oct. 14, 2004 Fixed bug in export of Wells.
0.2.21.0
Oct. 14, 2004
Fixed bug in the "View|Go To" command that caused it to go to the wrong location if the user wanted to go to an object on the side view of the model.  Added option to select an object with the "View|Go To" command when going to an object. Fixed bug in display of objects.
0.2.20.0 Oct. 12. 2004
Fixed a bug that caused assertion violations when editing objects used to specify well boundaries.
0.2.19.0 Sept. 27, 2004 GoPhast now properly accounts for overlapping boundary conditions.  If two incompatible boundary conditions are both applied to the same location, the one that is applied is determined by the order of the objects used to define the boundary condition,  The object that occurs higher in the list of objects has precidence.
0.2.18.0
Sept. 23, 2004
Fixed bugs that could cause access violations. Specified concentrations eliminated as a separate boundary type.  Instead, specifiec concentrations must now be defined in conjunction with specified head boundaries.
0.2.17.0
Aug. 20, 2004
Minor improvement in importing shape files.
0.2.15.0
June 29, 2004 Fixed bug in setting one chemistry option. Improved consistency in color and font. Fixed bug in automatic grid generation.
0.2.13.0 June 10, 2004 Fixed descriptor of *.h5 file in Print Frequency dialog box.
0.2.12.0 June 10, 2004 Fixed bug in display of  Print Frequency dialog box.  Fixed bug in file name for export of PHAST input file under Linux. Fixed access violation bug.
0.2.11.0 June 8, 2004 Fixed bugs related to display of objects in side views.
0.2.10.0 June 2, 2004 Fixed a bug related to evaluation of formulas depend on the position along the length of an object.  Some default values were changed.
0.2.9.0 May 28, 2004 Fixed another bug related to specification of PHAST interpolation for boundary conditions.
0.2.8.0 May 28, 2004 Fixed a bug related to specification of PHAST interpolation for boundary conditions.
0.2.7.0 May 28, 2004 Fixed a variety of bugs.
0.2.6.0 May 20, 2004 Fixed bugs related to reading PHAST-interpolation values from files and subdividing cells
0.2.5.0 May 18, 2004 Fixed bugs related to setting data for multiple objects, importing data, and drawing and updating front and side views of the model.
0.2.4.0 May 13, 2004 Added initial screen that prompts the user to open an existing file or create a new one.  If the user chooses to create a new model, an initial grid can be created.  Other minor changes.
0.2.3.0 May 6, 2004 Fixed another bug.
0.2.2.0 May 6, 2004 Fixed a bug.
0.2.1.0
May 4, 2004
Fixed several bugs.
0.2.0.0
Apr. 21, 2004 Added support for importing DXF files and bitmaps. Removed support for release candidate 2.  Now only release candidate 3 is supported.
0.1.5.0
Mar. 31, 2004 Added support for importing Shape files.  Several bugs fixed.
0.1.0.4 Mar. 11, 2004 Added support for initial water table and for PHAST Release Candidate 3
0.1.0.3 Mar. 2, 2004 Fixed bugs.  Added examples.
0.1.0.2 Feb. 23, 2004 Added several new functions to Function Editor. Updated qtinf.dll to qtinf70.dll
0.1.0.1 Feb. 18, 2004 Fixed bugs related to display of data. Added "decay" example.
0.1.0.0 Feb. 18, 2004 Added data sets specific to PHAST. Added PHAST boundary conditions. Implemented the export of the PHAST *.trans.dat file. Added saving files in text, binary, and XML formats.
0.0.4.0 June 23, 2003 Reworked graphics. Added methods for automatically generating grid. Implemented loading and saving files. Added GIS functions. Allowed uses to bypass the formula editor. Added "anisotropy" to interpolators. Added Nearest Point interpolator
0.0.3.0 May. 2, 2003 Implemented 3D data sets. Implemented setting 3D data set properties via 3D objects and formulas. Added 2D interpolation options.
0.0.2.0 Feb. 25, 2003 Implemented 2D data sets. Implemented setting 2D data set properties via 2D objects and formulas.
0.0.1.5 Nov. 19, 2002 Implemented objects on front and side views.
0.0.1.4 Nov. 14, 2002 Changed code for selecting objects. Added icons for selecting layers, rows, and columns. Added command to allow the user to select cells and specify their width.
0.0.1.3 Nov. 7, 2002 Several small changes plus a bug fix (the buttons weren't working).
0.0.1.2 Nov. 7, 2002 Numerous small changes including rotating the grid by dragging it.
0.0.1.1 Nov. 4, 2002 Objects can now be edited and Undo/Redo has been implemented for objects.
0.0.1.0 Oct. 18, 2002 Added drawing of objects and evaluating them in 2D for the top surface. (Undo/Redo for objects not yet implemented.) At present, evaluating contours only means assigning colors to grid cells. This acts as a proxy for assigning aquifer and boundary condition properties later on.
0.0.0.5 Sept. 23, 2002 Fixed (I hope) some bugs related to vertical exaggeration.
0.0.0.4 Sept. 23, 2002 Fixed (I hope) some bugs related to cursors, grid-editing, and tool-tip fonts.
0.0.0.3 Sept. 19, 2002 Fixed (I hope) some bugs related to access violations, cursors, colors, and grid-editing.
0.0.0.2 Sept. 17, 2002 Added grid smoothing function and an about box. Fixed some bugs related to access violations, cursors, colors, fonts, resizing, grid-editing, etc. Modified subdivide command to support subdividing multiple cells at once. Added Undo/Redo
0.0.0.1 Sept. 9, 2002 Initial release for Windows and Linux has some grid-editing and resizing implemented but nothing else.

Suggestions and Their Status

Suggestion Status Comment
"I think the 'subdivide grid' button would benefit from a fatter line as a frame around the subdividing gridlines." Rejected This change would make the icon on the button appear different from the cursor which would be confusing.
Make it possible to combine grid cells Rejected This is already possible by deleting grid lines.
Change "Navigate" menu to "View" Accepted and Implemented  
Colors on some icons were not contrasty enough Deferred I need more information required to understand this suggestion.
Have side views keep the same magnification as areal view Rejected It would unnecessarily limit magnifications in some views and introduce greater complexity.
Use the lower right pane as a 3D or isometric projection

I think a separate window with ModelViewer-type ability to rotate, slice, and dice would be good to be able to visualize definitions.

Accepted and Implemented
The sliding bar for the view position should jump more per mouse click when clicking above or below the view position indicator. Accepted and Implemented  
An undo last command option would be helpful. Accepted and Implemented  
I think it would be useful to be able to turn off one or two of the views in order to have more screen space for a view. Rejected The splitters between views are sufficient for this purpose.
I think that the bubble messages should have a shorter description Accepted and Implemented  
maybe put the longer descriptions in a status window below (same area as the X-Y coordinates) Accepted and Implemented  
I think that the move grid line command should display move along with the cursor if possible. Accepted and Implemented  
I think that it would help if the Enter key moved the current cell down one in the Grid spacing dialog. Accepted and Implemented  
I think you should be able to resize the columns, rows, layers uniformly (ie Layer 1 = 10 Layer 2 = 20 ... Layer 5 = 50 Number of Layers: 5 and changing the number of layers to 9 would make Layer 1 = 10 Layer 2 = 15 ... Layer 9 = 50) Rejected This has the potential to interfere with the positions of grid lines that the user has already worked carefully to specify. Instead, the user could subdivide existing layers to get this sort of functionality.
I think that the menus need some separators (ie place a separator between the "Select All" and the "Vertical Exaggeration" items) Accepted and Implemented with modifications The real problem appears to be that these menu items are not placed under the correct menu. However some separators would be useful.
The "Edit Grid Lines dialog" the number of (rows, cols, layers) should be validated (1 or greater). Accepted and Implemented with modifications 0 is a valid number of rows columns or layers but setting the number to 0 should not cause access violations.
Linux text looks ragged (X,Y at bottom for example). Accepted and Implemented The default Linux font was changed to Helvetica
The magnifying glass without + or - is really a selection tool and a magnifying glass may not be best. GIMP uses a dotted rectangle to select an area. The area selected is not exactly what is outlined with GoPhast. This is a little confusing and perhaps aggravating if you cannot focus on the area that you want; in general users will expect to see the exact area they selected. A general consideration is whether clicking a tool generates a tool window. In Gimp, when you select the crop tool, a window pops up. You then select the area, readjust if necessary, and finally click the crop window to make the crop. This lets you revise your selection before it is finalized. The crop window can let you make other selections and enter selections by coordinates. Just something to think about to make the interface consistent throughout as many features as possible. Deferred  
Eventually, I assume there will be tools for generating an entirely new grid. Accepted and Implemented  
I think the current tool refines a single cell, rather than multiple cells. A tool by which you select an area that is then refined would be useful. Accepted and Implemented  
If I change the drawing size, the side view disappears. Accepted and Implemented This was a bug.
When panning, the redraw is jerky and distracting. Deferred I want more information about how frequently this problem occurs and under what conditions
Perhaps add text to the various panes, so that it is clear what is top, front, + x,y,z coordinates, units etc. Accepted with modifications, Partially implemented Icons have been added to indicate the direction from which each view of the model is viewed. These can also be used to change the selected layer, row, or column. Units have not yet been added.
Would it even be possible to rotate the views in the panes Deferred I am not sure I understand this suggestion. However, no 3D rotations are planned for the top, side and front views of the model are planned. These will be used specifying objects and need to have a fixed orientation. A 3D view for visualization purposes, however, may be created in the future and this should allow 3D rotations.
The navigate button worked fine except that when you zoom out it looks like the label of the coordinates are lost? Rejected This is a genuine bug but I plan to replace the coordinates with the new magnification when zooming in and out so fixing it is not required.
In the rearrange objects menu it shows a submenu with the numbered object labels but it is not clear what to do next to rearrange them. Accepted and Implemented Text has been added to tell what to do and the cursors have been changed to help indicate what to do too.
Might be nice to set a default color for objects that persists until changed. Accepted and Implemented  
After selecting by lasso i could not figure out how to move the object. dragging just made a new lasso. Accepted and Implemented When finished drawing the lasso and the objects have been selected, the Select button is changed to down and the lasso button goes up so that moving objects is facilitated.
It was not initially obvious that you had to use the "select" tool to edit objects. Accepted and Implemented The hint for the "select" tool has been changed to make it more obvious that it must be selected to edit objects.
With only line objects in closed polygons i could not see what was in front of what. Deferred This shouldn't be too hard for the user to see; if the polygon is filled in, any objects behind it will be hidden.
When attempting to move objects, I kept getting the color and coordinate dialog box. Rejected The user needs to have the select tool selected to move objects. Double-clicking objects allows you to edit them. Don't double-click if you don't want to edit objects. The cursors have been modified to give more of a visual clue as to what will happen when you click.
You can select an object and add another with the shift key, which shows a box enclosing both. However, when you drag the box, only one of the objects moves. Accepted and Implemented This bug has been fixed.
When you select an object and then select a vertex, I expected to unselect with a second click or a double click. Accepted and Implemented This behavior has been changed.
I had red cells shown on one object and interior black on another overlapping object, but I could never get the red to overlay the black. Accepted At present, objects are always drawn on top of the grid. This will be changed so that objects can be either all in front of the grid or all behind it. It will also be possible to hide either the objects or grid.
I like the way ModelViewer resizes the view, so I will describe it first. (FYI, If you click the left mouse button and drag, the object will rotate. I actually don't know the formula that it uses, but it seems to pick an axis from the point you click, like sticking a fork in a potato and then moving the end of the fork while keeping some other spatial point fixed. If you click and drag the middle mouse button, the object is translated according to the xy movement of the cursor.) For resizing, if you click the right mouse button and drag down, the size of the object diminishes; the farther you drag down, the smaller it gets. If you click the right mouse and drag up, the object increases in size.

With GoPhast, it could be as follows: Click the Plus magnifying glass, click and hold down the middle mouse button in the xy plane pane; drag vertically, up to increase the magnification, down to decrease the magnification; the distance you drag determines the scale increase or decrease.

Deferred  
It wasn't clear on how to end the polyline, polygon, or the straitline-line objects. You might want to add the Enter key as a way of ending the input. (It can be difficult to remember to double-click the last point). Accepted and Implemented  
I don't think that the shift key should be required to be down for the first object in order to select multiple objects. (ie clicking the first object w/o the shift key and clicking a second object with the shift key down currently deselects the first object) Accepted and Implemented This bug has been fixed.
I think that the context menu should reflect the state of the selected object. (ie if the selected object is in front of all objects which it overlaps than the "To Front" and the "Forward One" should be disabled) Accepted and Implemented  
sometimes the selection rectangle disappears when using the scrollbars. Accepted This is a a bug but not a very important one. I'll get to it later.
It'd be nice to have keyboard shortcuts. (For windows these are usually "Ctrl-Z" for Undo and "Ctrl-Y" for Redo). Accepted with modifications, Implemented The GNOME Human Interface Guidelines suggest using Ctrl-Shift-Z for Redo. Most of the Windows programs I checked often used Ctrl-ShiftZ for Redo although some, such as Microsoft Word, Excel, and Powerpoint did use Ctrl-Y. I did a search on Google for "Redo shortcut". The web pages I looked indicate that software is about equally split between Ctrl-Shift-Z and Ctrl-Y for Redo with some programs using other combinations entirely. I choose to use Ctrl-Shift-Z.
It would be nice if the cursor indicated the tool you were using like it works for the grid editing tools. Accepted, Implemented  
When you view the whole grid (assuming it is large like the sample grid) the grid lines become thick relative to the cells resulting in a less pleasant appearance. Maybe a "scale grid drawing frequency with the zoom factor" option could be implemented. I know this would result in the perception of the redrawing time when zooming in as being even slower – but it shouldn’t change the absolute time. Another simpler option that might work would be to change the color of the gridlines to gray when zooming out.   Rejected The grid lines are drawn with a width of one pixel. It is not possible to draw them any thinner than that.
It might be useful to be able to set the third coordinate for each node Deferred  
Implement krigging methods  Accepted but not yet impemented  

USGS Privacy statement
USGS Disclaimer statement

Last Iteration: Feb. 2, 2005