The GIFtools cookbook provides supporting documentation for proprietary software developed by the UBC Geophysical Inversion Facility. Currently, GIFtools software is only accessible by the consortium of companies which funded the GIFtools project. Plans to commercialize this software is underway.


1. GIFtools quick-start guide

1.1. Why GIFtools ?


The UBC-Geophysical Inversion Facility (GIF) has developed a large number of high-performance forward modeling and inversion codes over the last decades. While proving to be useful in characterizing the sub-surface, the usability of these codes remained challenging due to the number of complex tasks needed from the user:

  1. Gather and format a wide range of geoscientific data

  2. Interact with various Fortran codes and utilities

  3. Manage and archive projects


GIFtools has been designed to facilitate the interaction between the practicing geophysists and the various forward and inversion codes through a modular Framework. The front-end of GIFtools is its Graphical User Interface (GUI) menu structure.

1.2. GIFtools Framework


The GIFtools Framework has been designed to store, visualize and modify the different Objects needed to interact with the various Fortran executable. In computer language, an object is a container holding a set of attributes and functions that can be used to perform tasks. You can think of it as computer hardware. For example, a GIFdata object knows all the necessary details about the geophysical experiment (location, receivers, units, etc.) and can perform actions (add/substract, write to file, plot, etc.)


Objects can be linked to each other, like building blocks, to achieve more complex tasks. For example, a Model needs a Mesh in order to exist in 3D and be visualized.

More complex objects, such as a GIFinversion, need to know about many other objects in order to exist (Data, Mesh and Model). Once all the pieces are connected, the inversion object can interact with external Fortran codes and knows how to handle the various outputs.


1.3. Graphical User Interface (GUI)

The next four subsections will describe the main components of GIFtools pointed out below:


The following video also introduces the look and feel of GIFtools:

1.3.2. Tree

All of the items in GIFtools fall under a GIFproject. Beyond that, each is present in the tree structure on the right-side. Folders can be created or are transformed (in the case of inversions that have been loaded) to contain other items. In the above case, the gravity gradiometry data (GGdata object), topography (TOPOdata object), and mesh (mesh3D object) are in the folder final, but are still in the project. To move items to a folder, simply left-click, drag-and-drop the item into the folder. To get items back to the main project folder, drag-and-drop to the GIFproject at the very top.

1.3.3. Information panel

Every item selected has a panel that shows up on the right-side of the main GIFtools window. This panel gives the user a brief over-view of the item, such as the number of cells for a mesh, or the number of frequencies in an FEMdata (Frequency-ElectroMagnetics Data) item. For data items, certain columns must be denoted in order to export them for inversion. These are known as input/output headers (often referred to as i/o headers).

1.3.4. Notes section

This is a section where a log of what has happened to the selected item is recorded. Additionally, users may write their own comments in this section to remind them what was performed. To write notes, click on the note section and begin typing.

1.3.5. Need Help?

When you get to a dialog box and are not sure what to do, look for the question mark button:


The button will link you to a short tutorial on how (a) you got there and (b) what to do inside the dialog box. If you find a bad link, let us know here !