Vector File Formats

Text Format

ITASCA VECTOR3D
; The line above is a text mode header indicator  —  it is required for the
; file to be recognized as a scalar data text file.
; Comment field  —  any text after a semicolon is ignored.  Blank lines are
; ignored.
; The following first
; All data are comma and space delimited.
GROUP s name  ; All scalars following are assigned group name name to the
             ; slot s.
             ; GROUP statements can be added later in the file,
             ; adding to or replacing previous GROUP assignments.
EXTRA i val    ; All scalars following are assigned extra data val in the ith
             ; index.
             ; EXTRA statements can be added later
             ; in the file, adding to or replacing previous EXTRA
             ; assignments.
x y z  vx vy vz EXTRA i val  ... GROUP s name   ...
   ; The above format is the position/vector value version, other valid
   ; formats are:
x y z  vx vy vz MAG m EXTRA i val  ... GROUP s name  ...
   ; In the above format, (vx,vy,vz) is taken as a direction vector with a
   ; magnitude of m.
x y z  DIR dip dd m EXTRA i val  ... GROUP s name  ...
  ; In the above format, the direction is given by dip and dip direction,
  ; with magnitude m.
; Each line indicates a single vector object.  The EXTRA and GROUP keywords
; are optional.
; each EXTRA and GROUP keyword (there can be more than one per line) can
; be followed by any number of index value pairs, indicating the index of
; slot the value should be made to.
; Group names are strings (" delimited for embedded spaces).
; EXTRA data can be a string, an integer, or a real.

Binary Format

0x03714712 (unsigned 32 bit integer indicating it is binary vector data)
3 (unsigned 8 bit integer indicating 2 or 3 dimensions)
Each scalar:
  x y z as double precision
  vx vy vz as vector value
     uint32 as number of extra, following by that many extra.
     uint32 as number of group names, following by that many strings.
extra:  uint8 as type code (0= 64 bit signed int, 1 = 64 bit double
  precision, 2 = string).
string: uint16 as string length, that many uint16 as string contents.