Skip to content

File Formats

File extensions

File extensions used in IGMAS+ together with related functionality are presented in the following summary table:

Function ↓ / Format → .csv .grd .igmas .meta .model .obj .stations .ts .vxo .xml .xyz
Import project + +
Import model + + + + +
Export model +
Import stations + + + +
Export stations/anomaly + + + +
Import horizon + + +
Import interface + + + + + +
Export interface + + +
Import borehole +
Export borehole + +
Import VoxelCube +
Export VoxelCube +
Export Body Parameter Table +
Export StressMap +
Import lines + + +
Import PointSet + + +

Extension Descriptions

Brief descriptions of file extensions are given the following summary table:

Extension Format Description
.csv Comma Separated Value, ASCII file Standard format for point data
.grd Geosoft Grid file Geosoft Grid is a binary format for storing raster data typically used for geophysical and elevation data
.igmas IGMAS+ project file (deprecated) Old format for storing projects
.meta IGMAS+ model file (deprecated) Old format for storing models and interfaces
.model IGMAS+ model file, XML-based Holds an internal DTD for XML file validation. No external .dtd file is required.
.obj Wavefront Object file Open file format for definition of geometry and other properties for 3D objects
.stations stations, XML-based Holds an internal DTD for XML file validation. No external .dtd file is required.
.ts GOCAD TSURF (Triangulated Surface format) Triangle based surface format containing vertex coordinates and triangle to vertex connectivities
.xyz XYZ grid data file Grid data for model geometry and point sets for e.g. borehole data or Euler Depth. Three columns (x, y, z).
.xml XML file General extension for all XML-based formats
.vxo Voxel Cube file Similar to .xyz, but with 4 columns (x, y, z, value). Used for voxel import and export.

Format Descriptions

Horizon Files

Horizon Files .xyz

The .xyz file format is similar to the .csv format and is also used for ASCII point data.

Each line in horizon .xyz files contains one point using a fixed column order x, y, z.

A header line

X,Y,Z

will be interpreted, but is not needed. If this header is missing, an additional window will ask for the columns to be imported.

Voxel Cube Files .vxo

The only file format for importing and exporting voxel cubes is an ASCII file with the file extension .vxo.

Example

An example of a .vxo Voxel Cube file exported from IGMAS+.:

#VoxelCube Header Information [start]
#unit=km
#nx=80
#ny=48
#nz=36
#dx=0.25
#dy=0.25
#dz=0.25
#lower=(0.0, -2.0E-4, -9.0)
#upper=(20.0, 12.0, 0.0)
#nodata=-9999
#VoxelCube Header Information [end]
x y z cellValue
0.125 0.1248 -8.875 0.25
0.375 0.1248 -8.875 0.25
0.625 0.1248 -8.875 0.25
0.875 0.1248 -8.875 0.25
1.125 0.1248 -8.875 0.25
1.375 0.1248 -8.875 0.25
1.625 0.1248 -8.875 0.25
...

The file may contain header line(s) marked with a # symbol. These header lines in are not interpreted! It may also contain additional (commenting) lines: each line containing non-numeric information is ignored without notice!

A special order of the cell elements is not required. The size of the cells has to be regular (constant) throughout the file. The cell size is determined by the first non-zero difference between two consecutive lines in x, y and z separately. Negative differences are taken positively.

Note

The number of voxel cells is limited - the maximum number of voxel cells is 50000000 (50 million).

Station Files

A station file contains the station coordinates (xx, yy, zz) or (xx, yy), as well the measured (and/or calculated) data corresponding to these stations.

Import stations: Use FileImportStations to import the station data.

Note

After importing the stations, the model is automatically clipped to the station area using clipplanes. If there is no model in the project, a model domain of a corresponding size will be automatically created.

Export stations: Use FileExportStations to save the Fields that are actually selected in the Object Tree.

There are two main file formats for station files: .csv and .stations (can optionally be .xml).

Station Files .csv

Each line in station .csv files contains information about one point, and the number of columns in each line is fixed.

The following settings may be used:

  • separator: comma ([,]), semicolon ([;]), tab ([tabulator]) or space ([blank]).
  • header: a header line can be included or not
  • quotes: one can use quotes for numbers and/or header entries, e.g. "value"

While importing, the settings used in the file will be recognized and used automatically.
While exporting, a wizard will pop up and offer export CSV settings:

A station .csv file does not contain information about the units used. However, the wizard (figure above) give you the possibility to choose the units used from a list (available both for Import and Export).

IGMAS+ uses double precision (64bit) for measured values and single precision (32bit) for coordinates.

Example

An example of a station .csv file with ; delimeter:

1
2
3
4
5
6
7
8
X;Y;Z;measured gravity;measured gzz
472;7968;0.129999995;14.5165615081787;-1.19159984588623
474;7968;0.129999995;15.8175678253174;6.28382110595703
476;7968;0.129999995;17.1463527679443;10.6069469451904
478;7968;0.129999995;16.2382793426514;0.371654510498047
480;7968;0.129999995;15.7985668182373;-0.996235847473145
482;7968;0.129999995;16.1438369750977;2.18927764892578
484;7968;0.129999995;16.5048122406006;-0.554471015930176

A header with descriptions about the stations and data can be included in the first line.
In this case don't forget to check interpret Header checkbox in the wizard:

For changing the value types, please click on table header and select the column value that you want to change:

Possible header entries are:

  • "x"
  • "y"
  • "z"
  • "measured x component"
  • "measured y component"
  • "measured z component" (similar to "measured gravity")
  • "measured gxx"
  • "measured gxy"
  • "measured gxz"
  • "measured gyx"
  • "measured gyy"
  • "measured gyz"
  • "measured gzx"
  • "measured gzy"
  • "measured gzz"
  • "measured geoid"
  • "measured i0"
  • "measured i1"
  • "measured i2"
  • "measured hdt"
  • "measured hg"
  • "measured magnetic x"
  • "measured magnetic y"
  • "measured magnetic z"
  • "measured magnetic tfi"
  • "measured magnetic tfir"
  • "measured magnetic vg"
  • "measured mxx"
  • "measured mxy"
  • "measured mxz"
  • "measured myx"
  • "measured myy"
  • "measured myz"
  • "measured mzx"
  • "measured mzy"
  • "measured mzz"

The keyword measured in the file header can be replaced by calculated.

Note

During the import of stations calculated anomalies are skipped.

Station Files .stations, .xml

The internally preferred .stations format is an XML-based format, which contains more information compared to the .csv station file, e.g. the coordinate system, units etc.

Example

An example of a .stations file with three stations:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE geodata SYSTEM "geodata.dtd">
<geodata>
<projection name="unknown" units="km" />
<vertex x=".00000" y="-.00020" z=".00020" >
<property name="Measured gravity" value="-1.63953" units="mGal"/>
</vertex>
<vertex x=".00000" y="1.00000" z=".00020" >
<property name="Measured gravity" value="-1.53329" units="mGal"/>
</vertex>
<vertex x=".00000" y="1.99980" z=".00020" >
<property name="Measured gravity" value="-1.43530" units="mGal"/>
</vertex>
</geodata>

Station files in the .stations format with an .xml extension can also be imported to IGMAS+.

Model Files .model, .xml

IGMAS+ model files with extension .model are XML-based files that are used to store information about the model elements like bodies and working sections, as well as information about projection and units.

Example

An example of the .model (for the original model from the Two Layers Example), that contains two bodies and five working sections:

<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE geodata SYSTEM "geodata.dtd"> -->
<geodata name="Two Layers">
<projection name="unknown" units="km"></projection>
<magnetic_field units="nT" total_field="49441.0" inclination="69.0" declination="1.0"></magnetic_field>
<property name="body" value="Oben">
    <property name="density" units="t/m³" value="0.0"></property>
    <color red="0.0" green="1.0" blue="0.0"></color>
</property>
<property name="body" value="Unten">
    <property name="voxel mzz" units="km³" value="0.0"></property>
    <property name="density" units="t/m³" value="0.2"></property>
    <color red="0.28235295" green="0.23921569" blue="0.24313726"></color>
</property>
<property name="body" value="reference">
    <property name="density" units="t/m³" value="0.0"></property>
    <color red="0.5019608" green="0.5019608" blue="0.5019608"></color>
</property>
<geometry>
    <cross_section name="1" x_start="0.0" y_start="0.0" x_end="20.0" y_end="0.0"></cross_section>
    <vertex id="19" x="20.0" z="0.0"></vertex>
    <vertex id="18" x="0.0" z="0.0"></vertex>
    <vertex id="17" x="0.0" z="-5.0"></vertex>
    <vertex id="16" x="20.0" z="-5.0"></vertex>
    <vertex id="29" x="0.0" z="-10.0"></vertex>
    <vertex id="28" x="20.0" z="-10.0"></vertex>
    <entry type="polygon" id_list="16 19 18 17 ">
        <property name="body" value="Oben "></property>
    </entry>
    <entry type="polygon" id_list="17 29 28 16 ">
        <property name="body" value="Unten "></property>
    </entry>
</geometry>
<geometry>
    <cross_section name="2" x_start="0.0" y_start="5.0" x_end="22.912878" y_end="5.0"></cross_section>
    <vertex id="15" x="20.0" z="-5.0"></vertex>
    <vertex id="14" x="20.0" z="0.0"></vertex>
    <vertex id="13" x="0.0" z="-5.0"></vertex>
    <vertex id="12" x="0.0" z="0.0"></vertex>
    <vertex id="27" x="0.0" z="-10.0"></vertex>
    <vertex id="26" x="20.0" z="-10.0"></vertex>
    <entry type="polygon" id_list="15 14 12 13 ">
        <property name="body" value="Oben "></property>
    </entry>
    <entry type="polygon" id_list="13 27 26 15 ">
        <property name="body" value="Unten "></property>
    </entry>
</geometry>
<geometry>
    <cross_section name="3" x_start="0.0" y_start="10.0" x_end="20.0" y_end="10.0"></cross_section>
    <vertex id="11" x="20.0" z="-5.0"></vertex>
    <vertex id="10" x="20.0" z="0.0"></vertex>
    <vertex id="9" x="0.0" z="-5.0"></vertex>
    <vertex id="8" x="0.0" z="0.0"></vertex>
    <vertex id="25" x="0.0" z="-10.0"></vertex>
    <vertex id="24" x="20.0" z="-10.0"></vertex>
    <entry type="polygon" id_list="11 10 8 9 ">
        <property name="body" value="Oben "></property>
    </entry>
    <entry type="polygon" id_list="9 25 24 11 ">
        <property name="body" value="Unten "></property>
    </entry>
</geometry>
<geometry>
    <cross_section name="4" x_start="0.0" y_start="15.0" x_end="26.925823" y_end="15.0"></cross_section>
    <vertex id="22" x="20.0" z="-10.0"></vertex>
    <vertex id="7" x="20.0" z="-5.0"></vertex>
    <vertex id="6" x="20.0" z="0.0"></vertex>
    <vertex id="5" x="0.0" z="-5.0"></vertex>
    <vertex id="4" x="0.0" z="0.0"></vertex>
    <vertex id="23" x="0.0" z="-10.0"></vertex>
    <entry type="polygon" id_list="7 6 4 5 ">
        <property name="body" value="Oben "></property>
    </entry>
    <entry type="polygon" id_list="5 23 22 7 ">
        <property name="body" value="Unten "></property>
    </entry>
</geometry>
<geometry>
    <cross_section name="5" x_start="0.0" y_start="20.0" x_end="20.0" y_end="20.0"></cross_section>
    <vertex id="21" x="0.0" z="-10.0"></vertex>
    <vertex id="20" x="20.0" z="-10.0"></vertex>
    <vertex id="3" x="20.0" z="0.0"></vertex>
    <vertex id="2" x="0.0" z="-5.0"></vertex>
    <vertex id="1" x="0.0" z="0.0"></vertex>
    <vertex id="0" x="20.0" z="-5.0"></vertex>
    <entry type="polygon" id_list="0 3 1 2 ">
        <property name="body" value="Oben "></property>
    </entry>
    <entry type="polygon" id_list="2 21 20 0 ">
        <property name="body" value="Unten "></property>
    </entry>
</geometry>
</geodata>

Model files in the .model format with an .xml extension can also be imported to IGMAS+.

GOCAD Model Files .ts

The GOCAD® TSURF (Triangulated Surface format) is used to store triangulated surfaces containing vertex coordinates and triangle-to-vertex connectivities.

The elements which are interpreted are:

  • name: (in HEADER)
    • Each interface separates two bodies, the names of which are separate by <>. Example: Saltbody<>Mesozoic
    • The first body name (here: Saltbody) is assumed to be on the left hand side of the interface, the second (here: Mesozoic) on the right hand side, i.e. on the side of the positive triangle normal.
    • Using Saltbody\<>Mesozoic instead of Mesozoic\<>Saltbody will flip the orientation of every single triangle of the entire interface.
    • If the body separator <> is missing (eg. name: Saltbody), Saltbody<>Reference is interpreted.
  • *solid*color:RGBα\alpha (in HEADER)
    • The Red, Green, Blue, Transparency values (transparency is not interpreted).
    • The color is assigned to the body name to the left of the body separator <>.
  • ZPOSITIVE (Elevation | Depth):
    • Z-Coordinate positive to the top / to the bottom.
    • Default: Elevation.
  • AXIS_UNIT ("m" "m" "m" | "km" "km" "km")
    • Default: "m" "m" "m"
  • TFACE
    • Starts a new triangulated interface.
  • VRTX
    • Keyword to identify lines with vertices, which contain of 5 columns:
      VRTX id x_coordinate y_coordinate z_coordinate
  • ATOM
    • Linked VRTX indices are interpreted
  • TRGL
    • Keyword to identify lines with trianges, which contain of 4 columns:
      TRGL id1 id2 id3

Note

The orientation of the triangles is assumed to be identical throughout the entire TFACE. It is defined by the order of the triangle vertices with the right hand thumb-rule: the thumb is indicating the positive triangle normal, if the fingers follow the order of the vertices (see more in the Triangle Orientation chapter).

Example

A TSURF .ts file, defining a simple cube:

GOCAD TSurf 1
HEADER {
name: reference<>new_body
*solid*color: 0.5019608 0.5019608 0.5019608 1
}
GOCAD_ORIGINAL_COORDINATE_SYSTEM
NAME: from_Shape
AXIS_NAME: "X" "Y" "Z"
AXIS_UNIT: "m" "m" "m"
END_ORIGINAL_COORDINATE_SYSTEM
TFACE
VRTX 7 0.0 0.0 0.0
VRTX 6 0.0 1.0 0.0
VRTX 5 1.0 1.0 0.0
VRTX 4 1.0 0.0 0.0
VRTX 3 1.0 0.0 -1.0
VRTX 2 0.0 1.0 -1.0
VRTX 1 1.0 1.0 -1.0
VRTX 0 0.0 0.0 -1.0
TRGL 0 1 2
TRGL 0 3 1
TRGL 3 4 1
TRGL 4 5 1
TRGL 4 6 5
TRGL 4 7 6
TRGL 7 2 6
TRGL 7 0 2
TRGL 4 0 7
TRGL 4 3 0
TRGL 5 6 2
TRGL 5 2 1
END

Wavefront Object files .obj

IGMAS+ can import and export models and interfaces using the Wavefront Object .obj file format, which is a plain ASCII text format.

See more about this format here.

The interpreted lines are:

  • v
    • Keyword to identify lines with vertices, which contain 4 columns:
      v x_coordinate y_coordinate z_coordinate
  • f
    • Keyword to identify lines with trianges, which contain 4 columns:
      f id1 id2 id3
      Lines with more than 4 columns (i.e. faces with more than 3 vertices) are not interpreted.
  • #
    • Comments, not interpreted.
Example

An example of a Wavefront Object .obj file defining a simple cube:

#vertex definitions
v 0.0 0.0 -1.0
v 1.0 1.0 -1.0
v 0.0 1.0 -1.0
v 1.0 0.0 -1.0
v 1.0 0.0 0.0
v 1.0 1.0 0.0
v 0.0 1.0 0.0
v 0.0 0.0 0.0
#Face: reference <> new_body
f 1 2 3
f 1 4 2
f 4 5 2
f 5 6 2
f 5 7 6
f 5 8 7
f 8 3 7
f 8 1 3
f 5 1 8
f 5 4 1
f 6 7 3
f 6 3 2