GeoZui3D Data File Format Specifications


CONTENTS


Object Formats

GZX Objects

Composite Object File Formats

Non-Object Formats

Texture Map Formats


OBJECT FORMATS


General Object Format

All object formats native to GeoZui3D have a similar structure. Elements in this format that act unchanged across objects only appear in this section (to reduce clutter and repetition). The structure is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN < Data-Type> < Version-Number> Each file format is designated by a Data-Type. The Version-Number indicates the version of the general format in the digit before the first decimal, and the version of the format for the specific Data-Type after the first decimal.
[Header Contents] Each Data-Type has its own header format. Each line in the header has a keyword optionally followed by parameters. Each keyword consists only of capital letters, numbers, and underscores. The contents of a header line following a percent sign "%" will be treated as a comment and ignored by GeoZui3D. Blank lines in the header are also ignored.
[DEGRADATION {OFF | ON | < Object-specific-keyword>}] Specifies whether or not to degrade the object. If "OFF", minimal or no degradation is done. If "ON", degradation occurs according to the default for the object. Various objects define additional possible types of degradation. If this line is not present, defaults to the default for the object (same as "ON").
[REVERSED_XY] Using this keyword, objects support the reversal of X and Y coordinates, allowing Y-coordinates to appear first. This reversal is especially useful when information is given in latitude-longitude pairs, but the format expects x- and y- coordinates. The reversal applies to LOCAL_ORIGIN and PROJECT...CENTER coordinates as well.
[PROJECT {AUTO | < Projection-Name>} [CENTER < Longitude> < Latitude> < Height>] [< arg>]* ] Specifies that the data in this file is not in UTM, and should be projected first (currently, only projections from latitude-longitudes are supported). All objects that support the PROJECT keyword take at least one argument (Projection-Name) and an optional CENTER clause. The Projection-Name is one of the projections available in the .Projection hierarchy (accessible through the "gz projection list" command). If AUTO is specified, then the currently active projection in GeoZui3D is used, or if no projection is present then an appropriate UTM zone is automatically determined and made the active GeoZui3D projection. The CENTER clause is optional, and specifies what a point to be used to select an AUTO projection, as well as what to use as the internal reference point from which the remaining points will be offset. Further arguments may be present in some formats, such as the GUTM format. The PROJECT line replaces the LOCAL_ORIGIN line as indicating the end of the header, and should not appear in the header for files that contain data already in UTM coordinates.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> [IN < Projection-Name>] The end of each header is designated by the local origin of the object given in UTM coordinates (meters). The height is with respect to "sea level": a negative height specifies an origin below sea-level, and a positive height specifies an origin above sea-level. If a Projection-Name is given, GeoZui3D attempts to set this as the current projection. If another projection is already in place, however, GeoZui3D produces a warning and loads the object as if the LOCAL_ORIGIN coordiates are relative to the current projection already in place.
[Data] Each Data-Type has its own data format, although some have no data whatsoever.


GUTM (.gutm) Format

The Gridded UTM file type is intended for bringing in regularly gridded bathymetry, or other regularly gridded surfaces. It allows holes and oddly shaped boundaries, but uses a rectangular bounding grid area for its specification. The structure of the GUTM file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN GUTM < Version-Number> The current version is 1.1. Features that were not present in version 1.0 have the number of the first version they appear in at the end of the description.
COLS_ROWS < Column-Count> < Row-Count> Specifies the number of points in each column and row of the bounding grid.
CELLSIZE {< Cell-Size> | AUTO} Specifies the distance between grid points in meters. AUTO can only be specified if a PROJECT line is present, and is the default.
SHAPE { FULLGRID | PARTIAL } Specifies whether the Strips that follow specify the start and end of a line (PARTIAL) or not (FULLGRID). PARTIAL is the default if no SHAPE is given.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the Southwestern corner of the bounding grid.
[PROJECT {AUTO | < Projection-Name>} [CENTER < Longitude> < Latitude> < Height>] < Conversion-Method> [< arg>]* ] Specifies that the data in this file is to be converted to GUTM format from another gridded format, and that the data following the PROJECT line is in the Conversion Grid Format. The Projection-Name is one of the projections available in the .Projection hierarchy (accessible through the "gz projection list" command), and the Conversion-Method is one of the methods available in the .Conversion hierarchy (accessible through the "gz address Conversion list" command). If AUTO is specified, then the currently active projection in GeoZui3D is used, or if no projection is present then an appropriate UTM zone is automatically determined. If a CENTER clause is present, it is not used to give an internal (x, y, z) reference point. The Longitude is used to determine the projection if AUTO is specified, and the Height is used as the base of the GUTM (the Latitude is for all purposes ignored). Further arguments after the Conversion-Method are passed to the conversion method, as are information from COLS_ROWS, CELLSIZE, and SHAPE parameters. The PROJECT line replaces the LOCAL_ORIGIN line as indicating the end of the GUTM header, and should not appear in the header for normal GUTM files that contain triangle-strip records. (New in 1.1)
{< Triangle-Strip>}* | < Conversion-Grid> If no PROJECT line is in the header, Triangle-Strips are specified from South to North. There must be as many strips as there are rows. The format of the strips are defined in the following table. If a PROJECT line is in the header, a full Conversion Grid Format is expected.

Triangle Strip Records

The definition of < Triangle-Strip> for the GUTM file format is as follows:

[< Start-Column> < End-Column+1>] Indicates the starting and ending columns in the current strip (row) from West to East. The GUTM is assumed to be empty outside this range, but data is expected for every point within this range (excluding the column of End-Column+1). This line is only present if "PARTIAL" is chosen for the SHAPE.
{< Height-Value>}* The height for the current row and column. Any values less than or equal to 0.0 are assumed to be holes. The number of heights in a strip is equal to < End-Column> - < Start-Column> + 1.

Example

The following example shows a 5x4 bounding grid with a surface defined at the points represented in the following schematic. The bounding grid area is 100x80, as determined by the cellsize and the dimensions of the grid. *** *** **** ** ** BEGIN GUTM 1.0 COLS_ROWS 5 4 CELLSIZE 20.000000 LOCAL_ORIGIN 483785.000000 5297590.000000 -2700.000000 0 5 204.495850 206.458008 0.000000 205.375000 204.011719 1 5 216.243408 225.353516 231.915527 233.036865 1 4 228.806641 240.465088 233.954102 0 3 231.991943 237.942139 233.266113

Images (.img) Format

The Images file type is intended for displaying 2D jpeg files as flat georeferenced images in a 3D scene. There are three formats for specifying the placement of these images, as described below. The structure of the Images file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN IMAGEFILE < Version-Number> Currently, there is only one version (1.0).
{ROV | BILLBOARD | HOVER} Specifies the format for the Image-Records that follow.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which image locations are specified.
{< Image-Record>}* Specified in any order. There can be any number of Image-Records, as there is no line specifying how many to expect. The format of the Image-Records are defined in the following table.

Images Format Options

A < Image-Record> within the Images file format takes one of the following formats (all location values are specified in meters from the LOCAL_ORIGIN):

< X> < Y> < Z> < Heading> < Filename> < Time> "ROV" Option. The x-y-z position indicates the location of the "camera" that took the picture. Default values for the size and distance of the images from the camera are assumed. Heading is given in degrees, and indicates the direction the camera was facing (in absolute terms). The filename is the name of the jpeg to be shown. The time field is currently unused, but a value must be present here. The format expected is HH:MM:SS, although any format that does not contain whitespace would be acceptable at this time.
< X> < Y> < Z> < Heading> < Height> < Width> < Filename> "BILLBOARD" Option. The x-y-z position indicates the location of the "camera" that took the picture. Heading is given in degrees, and indicates the direction the camera was facing (in absolute terms). Height and Width parameters specify what size the image should have when displayed. The distance from the camera is assumed to be 1.5 * Width. The filename is the name of the jpeg to be shown.
< X1> < Y1> < X2> < Y2> < X3> < Y3> < X4> < Y4> < Z> < Filename> "HOVER" Option. The X and Y positions specify the four corners of the image, all using the same Z. This has the effect of generating an image that is parallel with the sea-plane. The filename is the name of the jpeg to be shown.

Examples

The following example shows a 10-image ROV-style file. # X Y Z HEADING FILENAME TIME BEGIN IMAGEFILE 1.0 ROV LOCAL_ORIGIN 493419 5312806 -2170 -16.4 62.2 -13 115.4 R5091.jpg 14:43:37 -17.3 64.2 -13 115 R5092.jpg 14:46:4 -14.1 63.4 -13.1 118.7 R5093.jpg 14:46:19 -18.5 70 -13 115.2 R5094.jpg 14:46:45 -17.9 57.9 -13 107.6 R5095.jpg 14:48:46 -24.5 56.8 -13.1 56.9 R5096.jpg 14:52:6 -23.9 66.7 -10.7 174.7 R5097.jpg 14:55:8 -36.8 15.6 -14.9 65.5 R5098.jpg 15:9:36 -1.7 40 -9.5 81 R5099.jpg 15:11:38 43.3 41.1 1.8 285.4 R50910.jpg 15:24:21 The following example shows a 6-image HOVER-style file. BEGIN IMAGEFILE 1.0 HOVER LOCAL_ORIGIN 356000 4772000 0 5324.41 -2547.43 5324.41 -2472.13 5399.71 -2472.13 5399.71 -2547.43 14 310_103_1650_3_m.jpg 5301.3 -2769.38 5301.3 -2686.48 5384.2 -2686.48 5384.2 -2769.38 15.4 310_103_1650_4_m.jpg 5273.23 -1493.46 5273.23 -1386.56 5380.13 -1386.56 5380.13 -1493.46 11.6 310_103_1650_5_m.jpg 5056.23 -1817.33 5056.23 -1732.03 5141.53 -1732.03 5141.53 -1817.33 17 310_105_1704_1_m.jpg 4988.94 -1846.31 4988.94 -1759.81 5075.44 -1759.81 5075.44 -1846.31 19.4 310_105_1704_2_m.jpg 5072.8 -1887.51 5072.8 -1799.11 5161.2 -1799.11 5161.2 -1887.51 17.3 310_105_1704_3_m.jpg


Plane (.plane) Format

The Plane file type generates a finite, filled or hollow grid parallel to the ground. The structure of the Plane file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN PLANE < Version-Number> Currently, there is only one version (1.0).
BACKGROUND {ON | OFF} Specifies whether the grid is filled ("ON") or hollow ("OFF")
BGCOLOR < Red-Byte> < Green-Byte> < Blue-Byte> Specifies the color of the background when it is on (even if it is off, this field is required anyway). Each color component is specified as a decimal integer between 0 and 255.
GCOLOR < Red-Byte> < Green-Byte> < Blue-Byte> Specifies the color of the grid itself. Each color component is specified as a decimal integer between 0 and 255.
CELLSIZE < X-Size> < Y-Size> Specifies the size of a grid rectangle (might not be square) in meters.
CELLCOUNT < X-Count> < Y-Count> Specifies the number of grid rectangles in each direction. Must be an integer.
GRIDOFFSET < Height> Specifies the distance between the background and the grid, when the background is on (if it is off, this field is required anyway). The offset is always added to the LOCAL_ORIGIN to determine the location of the plane; the background is always at the height of the LOCAL_ORIGIN. The offset is given in meters.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the center of the background plane.
The Plane format has no data after the header.

Example

The following example shows a sea-level plane with a blue background and a white grid. The grid is 5km x 6km, with 100m x 100m squares. BEGIN PLANE 1.0 BACKGROUND ON BGCOLOR 50 50 250 GCOLOR 255 255 255 CELLSIZE 100 100 CELLCOUNT 50 60 GRIDOFFSET 1 LOCAL_ORIGIN 493410.000000 5312810.000000 0.000000


Points (.point) Format

The Points file type is intended for representing points of interest within a scene. Each point of interest is represented by a cone and a 50-meter line dropped from the cone to help indicate x-y position. The shape, size, and color of each point can be changed (within limits), and text can optionally be associated with each point. The structure of the Points file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN POINTS < Version-Number> Currently, there is only one version (1.0).
N_RECORDS < Point-Count> Specifies the number of point records to follow
{XYZC | XYZDC | XYZDCT} Specifies one of three formats for the point records to follow. All of them expect x-y-z coordinate triples. "XYZC" expects color specificaiton, "XYZDC" expects cone diameter in addition to color, and "XYZDCT" expects diameter, color, and text.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which points are specified.
{< Point>}* Specified in any order. There must be as many points as specified in the "N_RECORDS" line. The format of the points are defined in the following table.

Point Format Options

A < Point> within the Points file format takes one of the following formats (all x-y-z triples are specified in meters from the origin, and supported colors are listed in the next subsection):

< X> < Y> < Z> < Color> "XYZC" Option.
< X> < Y> < Z> < Diameter> < Color> "XYZDC" Option. The Diameter is actually a (multiplicative) scale factor on the entire point representation.
< X> < Y> < Z> < Diameter> < Color> "< Text>" "XYZDCT" Option. The Diameter is actually a (multiplicative) scale factor onthe entire point representation. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes.

Supported Colors

A Auburn (brown)
B Blue
C Cyan
D Dark Green
E Elephant Grey
G Green (bright)
R Red
Y Yellow

Example

The following example shows a 7-point object, with diameter and text fields included. BEGIN POINTS 1.0 N_RECORDS 7 XYZDCT LOCAL_ORIGIN 493410.000000 5312810.000000 -2140.000000 0.500000 -59.400002 38.700001 1.0 B "Blue Point" 4.600000 -28.900000 42.099998 1.0 A "Brown Point" 4.600000 -28.900000 42.599998 3.0 B "Big Blue Point" 10.000000 -2.000000 41.500000 1.0 C "Multi-line Cyan Point With three lines of text." 10.000000 -2.000000 42.000000 1.0 R "Red Point" 17.900000 8.900000 41.900002 1.0 Y "Yellow Point" 31.200001 28.600000 40.900002 1.0 E "Grey Point"


Tube (.tube) Format

The Tube file type is intended for representing 3D paths as a tube. Tubes can be rendered as given, or with automatically generated splines. The structure of the Tube file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN TUBE < Version-Number> Currently, there is only one version (1.0).
N_RECORDS < Point-Count> Specifies the number of point records to follow
{SPLINE | NO_SPLINE} Specifies whether or not a spline is automatically generated. Currently, the "SPLINE" option can only be used with the "XYZ 0" below.
DIA < Diameter> Specifies the diameter of the tube.
COLOR < Red-1> < Green-1> < Blue-1> < Red-2> < Green-2> < Blue-2> Specifies two colors for striping the tube, or for using in choosing blended colors.
XYZ < Num-Params> Specifies the number of parameters for the tube. x-y-z triples are always present. If Num-Params > 1, then floats between 0 and 1 are expected (indicating a blend of the colors specified above). If Num-Params > 2, then diameter multipliers are also expected (multiplied by the base diameter given above). If Num-Params is greater than zero, "NO_SPLINE" must be specified (for now, at least).
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which tube points are specified.
{< Point-Record>}* Specified in order from first to last. There must be as many point-records as specified in the "N_RECORDS" line. The format of the point-records are defined in the following table.

Tube Format Options

A < Point-Record> within the Tube file format takes one of the following formats (all x-y-z triples are specified in meters from the origin):

< X> < Y> < Z> "XYZ 0" Option.
< X> < Y> < Z> < Color-Blend> "XYZ 1" Option. The Color-Blend number is a float between 0 and 1. If a is the first color specified in the "COLOR" header attribute, b is the second color, and C is the value of the Color-Blend for this particular record, then the resulting color is (1 - C)a + Cb.
< X> < Y> < Z> < Color-Blend> < Size-Factor> "XYZ 2" Option. The Color-Blend is described above in the "XYZ 1" option. The Size-Factor is a (multiplicative) factor on diameter of the tube at the current point.

Examples

The following example shows a 10-point tube, with changing diameters and colors BEGIN TUBE 1.0 N_RECORDS 10 NO_SPLINE DIA 2.0 COLOR 0.7 0.7 0.7 0.6 0.85 0.85 XYZ 2 LOCAL_ORIGIN 493400.000000 5312810.000000 -2100.000000 43.200001 73.000000 -64.400002 0.0 0.5 66.500000 170.000000 -64.500000 0.2 0.5 127.199997 152.000000 -56.299999 0.4 0.50 103.000000 129.000000 -41.599998 0.6 1.0 83.599998 93.000000 -50.400002 0.8 1.0 63.000000 67.000000 -51.200001 1.0 1.0 49.599998 39.000000 -51.799999 0.8 2.0 32.500000 11.000000 -45.700001 0.6 2.0 16.600000 -11.000000 -57.000000 0.4 1.0 4.300000 -38.000000 -59.200001 0.2 1.0 The following example shows the same 10-point tube as a spline (without colors or sizes given). BEGIN TUBE 1.0 N_RECORDS 10 SPLINE DIA 2.0 COLOR 0.7 0.7 0.7 0.6 0.85 0.85 XYZ 0 LOCAL_ORIGIN 493400.000000 5312810.000000 -2100.000000 43.200001 73.000000 -64.400002 66.500000 170.000000 -64.500000 127.199997 152.000000 -56.299999 103.000000 129.000000 -41.599998 83.599998 93.000000 -50.400002 63.000000 67.000000 -51.200001 49.599998 39.000000 -51.799999 32.500000 11.000000 -45.700001 16.600000 -11.000000 -57.000000 4.300000 -38.000000 -59.200001


Geographic Data Points (.gdp) Format

The Geographic Data Points file type is intended for representing points that have scalar values associated with them. The format is designed to make it very easy to cut and paste data from another format into this format. The structure of the Points file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN DATA_POINTS < Version-Number> Currently, there is only one version (1.0).
N_RECORDS < Point-Count> Specifies the number of Point-Records to follow
N_COLUMNS < Column-Count> Specifies how many whitespace delineated data items to expect in each Point-Record.
{XYZ | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column>} If "XYZ", specifies that the first three columns should be used for x-y-z triples. If "XYZ_COLUMNS", specifies which column contains the coordinate data for each dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS.
COLOR { ATTRIBUTE < Attrib-Column> [AS_HEIGHT] |

RGB_COLUMNS < Red-Column> < Green-Column> < Blue-Column> |

CODE < Index-Column> |

CONSTANT {RGB | CODE} < Color-Info> }

If "ATTRIBUTE", specifies which column contains the data attribute to be mapped to color. If AS_HEIGHT is specified, applies the proper georeference height offset to the attribute before mapping it to color.

If "RGB_COLUMNS", specifies which columns contain the color data for each color dimension. Unused components are designated by a 0.

If "CODE", specifies which column contains a character representing color (given in the table that follows).

If "CONSTANT", indicates that the following color should be used for all points. Color-Info consists of three floating point numbers between 0 and 1 if RGB, or a supported code if CODE.

GLYPH {POINT | Shape | COLUMN < Glyph-Column>} Specifies how to represent a point. If "POINT" is selected, then each point is represented as a scale-independent square, with a size in pixels determined by the SIZE option. Otherwise, Shape can be one of glyphs listed in the "Supported Glyphs" table below. If COLUMN is selected, then the following argument specifies which column contains the glyph specification for each point.
[DROP_LINE {ON | OFF | FRAGILE | TRANSIENT}] Specifies whether or not a line is dropped from the point, to provide better depth-cueing. If specified as "FRAGILE", then the dropped line only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the dropped line only appears in low-resolution drawing (it is only there during interaction). Default is FRAGILE.
SIZE {CONSTANT < Size-Factor> | COLUMN < Size-Column> < Size-Factor> | COLUMNS [X][Y][Z][C][K] < Dim-Size-Column>* [< Size-Factor>]} Specifies a constant size, or which column(s) contains the size information for each data point. If the GLYPH selected is a point, the size is multiplied by Size-Factor to indicate the number of pixels, otherwise the size is multiplied by Size-Factor to scale the GLYPH selected. Size-Column should be specified only if COLUMN is present. If COLUMNS is specified, then what follows is a 1-, to 5-letter designation for the numbers that follow respectively. X, Y, and Z indicate that the associated number is the column (starting from 1) in which the size for that dimension is specified. C indicates that the associated number is the column in which a multiplier on every dimension can be found. K indicates a that the associated number is a constant (Size-Factor) for any unspecified dimensions, and a multiplier for the specified dimensions. COLUMNS size specification can only be used with non-point GLYPH's.
TEXT {NONE | COLUMN < Text-Column>} If "NONE" is specified, then no text is expected. If "COLUMN" is specified, then the following argument specifies which column contains the text information for each data point. This text can be displayed in the Information window of the Objects panel in GeoZui3D. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes. A Text-Column of 0 indicates that no text should be associated with any points.
DEGRADATION {OFF | SIMPLIFY_GLYPH | NTH} Specifies how to degrade the collection of points. If "OFF", no degradation is done. If "NTH", degradation occurs by only displaying every nth point.
DATA COLUMN < Data-Column> < Name> [AS_NUMBER | AS_STRING | AS_EXPONENTIAL] Specifies that some data column should be read in for each row, and exported as an attribute named Name (rather than being actively displayed in some way). "AS_NUMBER" indicates the data should be treated as integer or floating point data, while "AS_STRING" indicates the data should be treated as literal strings. "AS_EXPONENTIAL" indicates that a log (base 2) should be taken on the data, then treated as floating point data. Defaults to "AS_NUMBER".
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which points are specified.
{< Point-Record>}* Specified in any order. There must be as many points as specified in the "N_RECORDS" line. The format of the points are defined by the settings specified above.

Supported Color Codes

A Auburn (brown)
B Blue
C Cyan
D Dark Green
E Elephant Grey
G Green (bright)
K Black
M Magenta
R Red
W White
Y Yellow

Supported Glyphs

These are the supported glyphs for the Geographic Data Points format. In practice, only the first three letters of the name are looked at, so you could specify CONE instead of CON, for instance.
CON Cone
CUB Cube
CYL Cylinder
DIA Diamond
INV Inverted Cone
SPH Sphere
UCU UCube (Unit Cube, width of 2.0)
UCY UCylinder (Unit Cylinder, radius and height of 1.0)
USP USphere (Unit Sphere, radius of 1.0)

Example

The following example creates 7-points, represented as cones with dropped lines, and with diameter and text fields included. BEGIN DATA_POINTS 1.0 N_RECORDS 7 % Number of points N_COLUMNS 6 % Number of columns per point XYZ % First 3 columns have XYZ data COLOR CODE 5 % Column 5 has a color code GLYPH CONE DROP_LINE ON SIZE COLUMN 4 1.0 % Column 4 has a scale factor, multiply it by 1.0 TEXT COLUMN 6 % Column 6 has informational text DEGRADATION NTH LOCAL_ORIGIN 493410.000000 5312810.000000 -2140.000000 0.500000 -59.400002 38.700001 1.0 B "Blue Point" 4.600000 -28.900000 42.099998 1.0 A "Brown Point" 4.600000 -28.900000 42.599998 3.0 B "Big Blue Point" 10.000000 -2.000000 41.500000 1.0 C "Multi-line Cyan Point With three lines of text." 10.000000 -2.000000 42.000000 1.0 R "Red Point" 17.900000 8.900000 41.900002 1.0 Y "Yellow Point" 31.200001 28.600000 40.900002 1.0 E "Grey Point"


Geographic Data Lines (.gdl) Format

The Geographic Data Lines file type is intended for representing lines that have scalar values associated with their vertices. The format is designed to make it easier to cut and paste data from another format into this format. The structure of the Lines file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN DATA_LINES < Version-Number> Currently, there is only one version (1.0).
N_RECORDS < Point-Count> Specifies the number of Line-Records to follow
N_COLUMNS < Column-Count> Specifies how many whitespace delineated data items to expect in each line of a Line-Record.
{XYZ | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column>} If "XYZ", specifies that the first three columns should be used for x-y-z triples. If "XYZ_COLUMNS", specifies which column contains the coordinate data for each dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS.
COLOR { ATTRIBUTE < Attrib-Column> [AS_HEIGHT] |

RGB_COLUMNS < Red-Column> < Green-Column> < Blue-Column> |

CODE < Index-Column> |

PER_RECORD {ATTRIBUTE | RGB | CODE} |

CONSTANT {RGB | CODE} < Color-Info> }

If "ATTRIBUTE", specifies which column contains the data attribute to be mapped to color. If AS_HEIGHT is specified, applies the proper georeference height offset to the attribute before mapping it to color.

If "RGB_COLUMNS", specifies which columns contain the color data for each color dimension. Unused components are designated by a 0.

If "CODE", specifies which column contains a character representing color (given in the color table for .gdp's).

If "PER_RECORD", indicates that the color will be given at the beginning of a record in one of these formats.

If "CONSTANT", indicates that the following color should be used for all lines. Color-Info consists of three floating point numbers between 0 and 1 if RGB, or a supported code if CODE.

[LINE {OFF | ON | FRAGILE | TRANSIENT}] Specifies whether to show a line or not. If specified as "FRAGILE", then the line only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the line only appears in low-resolution drawing (it is only there during interaction). Default is ON.
[TUBE {OFF | ON | FRAGILE | TRANSIENT} [FACETS < FacetCount>]] Specifies whether to show a tube or not. If specified as "FRAGILE", then the tube only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the tube only appears in low-resolution drawing (it is only there during interaction). If FACETS is given, TUBE must not be OFF, and the FacetCount specifies how many rectangles to use to approximate a tube. Default is OFF.
SIZE {PER_RECORD | CONSTANT < Size>} Specifies whether the size (width) for a line is given at the beginning of a Line-Record, or is constant and given here.
TEXT {NONE | PER_RECORD} Specifies whether text is supplied at the beginning of a Line-Record or not.
[DEGRADATION {OFF | NTH | FACETS | FACETS_NTH}] Specifies how to degrade the collection of points. If "OFF", no degradation is done. If "NTH", degradation occurs by only displaying every nth point. "FACETS" and "FACETS_NTH" are respective degradations of "OFF" and "NTH" that degrade a tube to have fewer facets. The default is FACETS_NTH.
DATA {COLUMN < Data-Column>| PER_RECORD} < Name> [AS_NUMBER | AS_STRING | AS_EXPONENTIAL] Specifies that some data should be read in and exported as an attribute named Name (rather than being actively displayed in some way). If "COLUMNS" is specified, the data will be expected for every point. If "PER_RECORD" is specified, the data will be expected after all other fields in each "NEW" line (but before any DATA lines declared after this line). "AS_NUMBER" indicates the data should be treated as integer or floating point data, while "AS_STRING" indicates the data should be treated as literal strings. "AS_EXPONENTIAL" indicates that a log (base 2) should be taken on the data, then treated as floating point data. Defaults to "AS_NUMBER".
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which points are specified.
{< Line-Record>}* Specified in any order. There must be as many Line-Records as specified in the "N_RECORDS" line. The format of the Line-Records are given in the folowing table.

Line-Records

A < Line-Record> within the Geographic Data Line file format takes the following format:

NEW < Point-Count> [< Color>] [< Size>] [< Text>] Indicates the number of points in this line (>= 2). Any attributes that were designated as PER_RECORD in the header are listed in the order shown here. If COLOR was specified as RGB, three floats between 0.0 and 1.0 are expected. Size is either a scale-independent line width or a scale-dependent tube diameter. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes.
{< Point-Record>}* Specified in order of the line. There must be as many points as specified in the Point-Count above. The format of the points are defined by the settings specified in the header.

Example

The following example creates three lines, represented as tubes with lines running down the center, and with diameter and text fields included. Color is given independently for each point. BEGIN DATA_LINES 1.0 N_RECORDS 3 % Three line records N_COLUMNS 6 % 6 columns per line record XYZ % First three columns have XYZ COLOR CODE 5 % Column 5 contains a color code LINE ON TUBE ON SIZE PER_RECORD % Expect a tube size in each record TEXT PER_RECORD % Expect informational text in each record DEGRADATION OFF LOCAL_ORIGIN 493410.000000 5312810.000000 -2140.000000 NEW 4 2.0 "2m Diameter Line, with multiline text, blue-green-yelow-auburn" 0.500000 -59.400002 38.700001 junk B junk 4.600000 -28.900000 42.099998 junk G more_junk 4.600000 -28.900000 42.599998 1.0 Y just_junk 10.000000 -2.000000 41.500000 x A 6.2 NEW 2 1.0 "Thin grey tube" 10.000000 -2.000000 42.000000 1.0 E 16 17.900000 8.900000 41.900002 1.0 E hut_hut NEW 2 5.0 "Fat grey tube semi-connected to the thin grey tube" 17.900000 8.900000 41.900002 1.0 E hut_hut 31.200001 28.600000 40.900002 1.0 E 1594


Geographic Data Triangles (.gdt) Format

The Geographic Data Triangles file type is intended for representing triangles and surfaces that have scalar values associated with their vertices. The format is designed to make it easier to cut and paste data from another format into this format. The structure of the Geographic Data Triangles file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN DATA_TRIANGLES < Version-Number> Currently, there is only one version (1.0).
N_RECORDS < Point-Count> Specifies the number of Triangle-Records to follow
N_COLUMNS < Column-Count> Specifies how many whitespace delineated data items to expect in each line of a Triangle-Record.
{XYZ | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column>} If "XYZ", specifies that the first three columns should be used for x-y-z triples. If "XYZ_COLUMNS", specifies which column contains the coordinate data for each dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS.
COLOR { ATTRIBUTE < Attrib-Column> [AS_HEIGHT] |

RGB_COLUMNS < Red-Column> < Green-Column> < Blue-Column> |

CODE < Index-Column> |

TEXTURE |

PER_RECORD {ATTRIBUTE | RGB | CODE} |

CONSTANT {RGB | CODE} < Color-Info> }

If "ATTRIBUTE", specifies which column contains the data attribute to be mapped to color. If AS_HEIGHT is specified, applies the proper georeference height offset to the attribute before mapping it to color.

If "RGB_COLUMNS", specifies which columns contain the color data for each color dimension. Unused components are designated by a 0.

If "CODE", specifies which column contains a character representing color (given in the color table for .gdp's).

If "TEXTURE", the user will assign a geo-referenced texture at run-time.

If "PER_RECORD", indicates that the color will be given at the beginning of a record in one of these formats.

If "CONSTANT", indicates that the following color should be used for all triangle strips. Color-Info consists of three floating point numbers between 0 and 1 if RGB, or a supported code if CODE.

[FILL {PER_RECORD | OFF | ON | FRAGILE | TRANSIENT}] Specifies whether to render hollow triangles or fill them in. If specified as "FRAGILE", then triangles are only filled in during high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the triangles are filled in only during low-resolution drawing (it is only there during interaction). Default is ON.
NORMALS {PER_RECORD | RIGHT_HANDED | LEFT_HANDED | UP | DOWN | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column> [SCALE_Z < Z-Factor>]} Specifies how the normals should be calculated for the purposes of lighting. If XYZ_COLUMNS, specifies which column contains the vector normal component for each respective dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS. If a SCALE_Z is present, then the Z-factor that follows is multiplied by each normal's z-component, which can be useful when normals are calculated in lat-long (normals do not get transformed by projections). If not XYZ_COLUMNS, the normals are automatically generated by taking the cross-product of the lines between the first two points of a triangle and the second two points, modified as follows (If PER_RECORD, each triangle strip will define its own option from RIGHT_HANDED, LEFT_HANDED, UP, or DOWN). RIGHT_HANDED and LEFT_HANDED indicate whether the right-hand rule (standard) or the left-hand rule (multiply each component of the cross product result by -1) should be used to determine the direction of the normal for the first triangle--after this, the rule is alternated with each successive triangle so that a "regular" strip has all normals pointing in the same z-direction. UP or DOWN indicates that all normals should be forced to point in the same z-direction (either UP or DOWN).
SIZE {PER_RECORD | CONSTANT < Size>} Specifies whether the size (width) for lines are given at the beginning of a Triangle-Record, or is constant and given here. This specifies the line thickness.
TEXT {NONE | PER_RECORD} Specifies whether text is supplied at the beginning of a Triangle-Record or not.
DATA {COLUMN < Data-Column>| PER_RECORD} < Name> [AS_NUMBER | AS_STRING | AS_EXPONENTIAL] Specifies that some data should be read in and exported as an attribute named Name (rather than being actively displayed in some way). If "COLUMNS" is specified, the data will be expected for every point. If "PER_RECORD" is specified, the data will be expected after all other fields in each "NEW" line (but before any DATA lines declared after this line). "AS_NUMBER" indicates the data should be treated as integer or floating point data, while "AS_STRING" indicates the data should be treated as literal strings. "AS_EXPONENTIAL" indicates that a log (base 2) should be taken on the data, then treated as floating point data. Defaults to "AS_NUMBER". Not actively implemented yet!
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which points are specified.
{< Triangle-Record>}* Specified in any order. There must be as many Triangle-Records as specified in the "N_RECORDS" line. The format of the Triangle-Records are given in the folowing table.

Triangle-Records

A < Triangle-Record> within the Geographic Data Triangles file format takes the following format:

NEW < Point-Count> [< Color>] [< Fill-Mode>}] [< Normal-Rule>] [< Size>] [< Text>] Indicates the number of points in this triangle strip. Any attributes that were designated as PER_RECORD in the header are listed in the order shown here. If COLOR was specified as RGB, three floats between 0.0 and 1.0 are expected. The Fill-Mode can be one of ON, OFF, FRAGILE, or TRANSIENT, with the effect described for the FILL parameter above. The Normal-Rule can be one of RIGHT_HANDED, LEFT_HANDED, UP, or DOWN, with the effect described for the NORMALS parameter above. Size indicates a scale-independent line width. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes.
{< Point-Record>}* Specified as in GL_TRIANGLE_STRIP. In othe words, for a list of n points, the first triangle is formed by p0, p1, and p2; the second triangle is formed by p1, p2, and p3; all the way up to p(n-2), p(n-1), pn. There must be as many points as specified in the Point-Count above. The format of the points are defined by the settings specified in the header.

Example

The following example creates three triangle stips using a texture supplied through GeoZui3D at runtime. BEGIN DATA_TRIANGLES 1.0 N_RECORDS 3 % Expect 3 Triangle records N_COLUMNS 6 % Each record has 6 columns XYZ % First three columns have XYZ COLOR TEXTURE % Use a texture for coloring FILL PER_RECORD % Expect a FILL designation in each record SIZE CONSTANT 1.0 % Keep line widths at 1.0 TEXT PER_RECORD % Expect information text in each record DEGRADATION OFF LOCAL_ORIGIN 493410.000000 5312810.000000 -2140.000000 NEW 3 FRAGILE "Filed triangle" 0.500000 -59.400002 38.700001 junk junk junk 4.600000 -28.900000 42.099998 junk junk more_junk -4.600000 28.900000 42.599998 1.0 Y just_junk NEW 5 FRAGILE "Mesh of three triangles" 10.000000 -2.000000 41.500000 x Q 6.2 10.000000 2.000000 45.000000 1.0 E 16 17.900000 8.900000 41.900002 1.0 E hut_hut 17.900000 -8.900000 35.900002 1.0 E hut_hut 31.200001 28.600000 40.900002 1.0 E 1594 NEW 6 FRAGILE "Prism" 4.5 4.5 4.5 a b c 0.0 0.0 0.0 d e f 10.0 10.0 0.0 g h i 4.5 8.0 0.0 j k l 4.5 4.5 4.5 a b c 0.0 0.0 0.0 d e f


Coordinate Grid/Axis(.cga) Format

The Coordinate Grid/Axis file type generates a finite grid or set of axes, filled or hollow, in 1, 2, or 3 dimensions. The structure of the Coordinate Grid/Axis file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN COORD < Version-Number> Currently, there is only one version (1.0).
DIMENSIONS < XYZ-String> {< Length>}+ Specifies the dimensions of the grid/axis. XYZ-String can be one of the folowing: X, Y, Z, XY, XZ, YZ, or XYZ. There is one Length value for each character in the string, representing the length in the respective dimension.
REFERENCE {LOCAL | GLOBAL} Specifies whether gridlines and ticks are displayed at local offsets or at global coordinate locations.
[BACKGROUND < Num-Planes> {< Plane-String>}*] Specifies how many background planes are generated, and which ones they are. The Plane-Strings are selected from the following: XYMIN, XYMAX, XZMIN, XZMAX, YZMIN, YZMAX. The "MIN" designation means the plane should be at the minimum position of the orthogonal dimension, while "MAX" designates the maximum position. The BACKGROUND field is not required if no backgrounds are desired.
[BGCOLOR < Red> < Green> < Blue>] Specifies the color of the backgrounds when they are on. Each color component is specified as a float between 0.0 and 1.0. The BGCOLOR field is not required.
LINECOLOR < Red> < Green> < Blue> Specifies the color of the grid/axis lines. Each color component is specified as a float between 0.0 and 1.0.
[BACKGROUND_OFFSET < Distance>] Specifies the distance between the background and the grid/axis, when a background is on. The offset is always subtracted from MIN planes and added to MAX planes. The offset is given in meters. The BACKGROUND_OFFSET field is not required.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin of the coordinate grid/axis. The origin corresponds to the MIN position in all three dimensions.
{[{FRAGILE | TRANSIENT}] < Coord-Spec>}* Specified in any order. Determines where lines, axis ticks, and/or labels are to go. Optionally, FRAGILE or TRANSIENT may appear before each record. If FRAGILE is specified, then the entity only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If TRANSIENT is specified, then the entity only appears in low-resolution drawing (it is only there during interaction). The format of the Coord-Specs are defined in the following table.

Coordinate Grid/Axis Format Options

A < Coord-Spec> within the Coordinate Grid/Axis file format takes one of several formats. Some options are present across formats, as listed:

< Location*> { MIN | MAX | MIN_MAX | THROUGH} The Location takes the value of MIN, THROUGH, MAX, or MIN_MAX, indicating where lines, ticks, or labels should appear in the dimension being specified. For instance, an axis drawn through the X dimension might be drawn at the local-"0" values for both Y and Z, which would require MIN to be chosen for each of these dimensions. If MAX were chosen for both, the axis would be drawn at the opposite edge of the bouding-box (specified in the DIMENSIONS field in the header). THROUGH indicates that a line, tick, or label should be repeated at a regular interval throughout the respective dimension.
< Spacing-clause> {SPACING_EVEN < Spacing> |

SPACING_XYZ < X-Spacing> < Y-Spacing> < Z-Spacing> |

SPACING_DYNAMIC [< Spacing-Factor>] }

If the first token in the Spacing-clause is "SPACING_EVEN", then the following argument describes the distance between lines, ticks, or labels given in meters. If the token is "SPACING_XYZ", then three arguments must follow, each describing the distance between lines, ticks, or labels, given in meters for each respective dimension. If the first token is intstead "SPACING_DYNAMIC", then the following argument describes the factor at which new sets of ticks/axes are created as the environment is zoomed in and out. If no argument is given for SPACING_DYNAMIC, the Spacing-Factor defaults to 10.0.

The formats for the different types of Coord-Spec's are as follows:

LINES < Direction> < Location1>
[< Location2>] [< Spacing-clause>]
Lines for grid markings, axis. Direction is given as a letter indicating which axis the line is parallel to, followed by a dash, followed by one or two letters indicating which axes the line should be replicated in. For instance, X-Y is a line parallel to the X axis, potentially replicated in the XY plane; while X-YZ is also parallel to the X axis, but is potentially replicated throughout space. The Location indicates where the line(s) should appear relative to the portion of the direction after the dash. If the portion of the direction after the dash is a single letter, then Location2 must be specified (otherwise it must not be specified), and indicates the location with respect to the missing dimension (othogonal to both in the Direction argument). If THROUGH is specified for any dimension, then a Spacing-clause is required.
{TICKS | LABELS | TICKS_LABELS} < Direction>
< Location1> < Location2> < Distance>
< Spacing-clause>
Tick marks and/or labels for axes. Direction is given as a letter indicating the dimension along which ticks and/or labels should be placed. Location1 and Location2 indicate where on the other two orthogonal axes the tick marks and/or labels should go. Location1 specifies either X or Y, and Location2 specifies either Y or Z, Direction != Location1 != Location2. LABELS are never really drawn THROUGH, but instead appear as if specified as MIN_MAX. < Distance> specifies how long the tick marks should be (in meters) and/or how far away the labels should be from the axis.

When SPACING_DYNAMIC is chosen as the method of spacing, the meaning of Location and Distance information changes somewhat. The Distance gets scaled according to the scale of the level being drawn. For instance, if Distance is 2.0 and the Spacing-Factor is 10.0, then for a grid level with spacing of 100 meters, the length of a tick would be 20 meters. With LABELS, if Location is THROUGH, labels will appear on either end of each dynamic area, as if specified as MIN_MAX for each dynamic area.

GRID < Direction> < Location> < Spacing-clause> Special case of LINES for simple grid creation. Direction is one of XY, XZ, YZ, or XYZ. The Location indicates where the plane should appear in the dimension orthogonal to the grid plane (or in the case of XYZ, it specifies the location for all 3 orthogonal directions at once).

Example

The following example shows a sea-level plane with a blue background and a white grid. The grid is 5km x 6km, with 100m x 100m squares. BEGIN COORD 1.0 DIMENSIONS XY 5000 6000 % 5km east, 6km north REFERENCE LOCAL % (0,0) is at LOCAL_ORIGIN BACKGROUND 1 XYMIN % Draw one background plane BGCOLOR 0.2 0.2 0.95 % Blue LINECOLOR 1.0 1.0 1.0 % White BACKGROUND_OFFSET 10.0 % Draw plane 10m below grid LOCAL_ORIGIN 493410.000000 5312810.000000 0.000000 GRID XY MIN SPACING_EVEN 100.0 The following example shows a set of coordinate axes in all three dimensions. The gobal reference means that major ticks will not necessarily align with the axes as one might normally expect. The dynamic spacing on the X and Y axes generates different sized markers for each power of 10, based on the current viewing scale. For demonstration, the dynamic spacing on Z is set to 10.0 (not necessary since it defaults to 10 anyway). BEGIN COORD 1.0 DIMENSIONS XYZ 5000 6000 3000 % 5km east, 6km north REFERENCE GLOBAL % (0,0) is at UTM origin LINECOLOR 1.0 1.0 1.0 % White grid, numbers LOCAL_ORIGIN 493410.000000 5312810.000000 -2048.000000 LINES X-Y MIN MIN TICKS_LABELS X MIN MIN 10.0 SPACING_DYNAMIC LINES Y-X MIN MIN TICKS_LABELS Y MIN MIN 10.0 SPACING_DYNAMIC LINES Z-X MIN MIN TICKS_LABELS Z MIN MIN 10.0 SPACING_DYNAMIC 10.0


Curtain Plot Data (.ctn) Format

The Curtain Plot file type is intended for representing data that should be displayed as a 3D curtain plot. A curtain is constructed of columns of data, where each column is georeferenced in UTM coordinates, with a height locating the top of the column. Each column consists of any number of data-points equally spaced below the position of the top of the column. For good interactive performance, a maximum of up to 512 data points per column is suggested.

The structure of the Curtain Plot file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN CURTAIN < Version-Number> Currently, there is only one version (1.0).
{ CLUT | RGB | RGBA } "CLUT" specifies that each data point is represented in the file as a single pair of hex digits representing an index between 0 (00) and 255 (FF). The index value 0 is reserved to indicate an invalid reading. For rendering purposes, the index will be used to index an unassigned color lookup table. "RGB" specifies that each data point is represented by three pairs of hex digits representing the red, green, and blue components of the color to be used to represent the data point. "RGBA" specifies that each data point is represented by four pairs of hex digits representing the red, green, blue and alpha components of the data point's color. Alpha is an opacity value, where 255 (FF) means fully opaque and 0 (00) means fully transparent. In index (CLUT) mode, a standard GeoZui3D color lookup table must be assigned to the curtain, via the user interface. This lookup table is indexed by the curtain to determine colors (i.e. the height value in the lookup table is ignored, and each unique height entry in the table is given an index, starting at 0). Since index value 0 is reserved for an invalid reading, the color table should be constructed with its first entry being the one to represent bad data.
NCOLS < Column-Count> Specifies the number of columns of data to follow
Z_STEP < Depth-Increment> Specifies the distance in meters between the readings in a single column of data.
DEGRADATION {OFF | NTH} Specifies how to degrade the curtain of points. If "OFF", no degradation is done. If "NTH", degradation occurs by creating the curtain using every nth point, potentially changing the shape and continuity of the curtain.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the origin from which data columns are specified.
{< X> < Y> < Z> < NVALS> {XX}*}* This is the column data. There is one line in the data file per column, in order by column number. There must be as many columns as specified in the "NCOLS" line. The X, Y and Z values are the coordinates of the top of the column. NVALS is the number of data values in the column. The data values XX themselves appear next, in order from the top of the column. These values are hex encoded as explained above and must not be comma or space separated.

Example

The following example shows a curtain plot file for a curtain consisting of only 8 columns, each with at most 15 data points, and with data coded by an index. The curtain reference height is 500 meters below sea level. BEGIN CURTAIN 1.0 CLUT NCOLS 6 Z_STEP 10.0 LOCAL_ORIGIN 483785.00 5297590.00 -500.00 501.23 -5935.73 10.54 15 58605d55514f464948474948414741 510.66 -6029.69 13.33 15 575151514c484d46463f4340474242 520.39 -6126.67 8.67 14 5e69625c545146403e41433f3b43 529.82 -6220.62 8.30 10 d5f5b51564a4b4644424 540.22 -6323.12 9.97 8 666d674f494a4342 551.37 -6431.33 11.41 8 535b584947464240 562.51 -6539.54 12.73 12 625950484c424a4442474443 574.02 -6651.24 11.05 15 656b6c6863655e5855514e40434543


Label (.label) Format

The Label file type creates bitmap text anchored at a specific 3D position, with the potential for different renderings at different scales. The header describes default settings for how the label should be rendered, while records after the LOCAL_ORIGIN line specify how the default should be modified to render the label within particular scale ranges. The structure of the Label file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN LABEL < Version-Number> Currently, there is only one version (1.0).
N_RECORDS < Record-count> Specifies the number of records that will follow for specifying the scale-dependent representations.
SCALE < Min-Scale> < Max-Scale> Specifies the minimum and maximum scales at which the label should be drawn at all. If Max-Scale is 0, the label is always visible.
[LABEL {ROBUST | OFF | FRAGILE | TRANSIENT | DEFAULT}] Specifies when a label is drawn with respect to interaction. If specified as "FRAGILE", then the label only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the label only appears in low-resolution drawing (it is only there during interaction). ROBUST means it always shows, while OFF means it does not show. Default is ROBUST.
[TEXT < Label-String>] Specifies what should be displayed as the label text. If Label-String includes whitespace, it should be enclosed in quotes.
[FONT < Font-Type>] Specifies what font should be used in displaying the label. Valid Font-Types are STANDARD_9_BY_15, STANDARD_8_BY_13, TIMES_ROMAN_10, TIMES_ROMAN_24, HELVETICA_10, HELVETICA_12, and HELVETICA_18. The default is HELVETICA_10.
[COLOR < Red> < Green> < Blue> [< Alpha>]] Specifies the foreground color of the text, as well as any lines or wireframe boxes drawn with the label. Valid values for each channel are between 0.0 and 1.0, inclusive. The default is all 1.0's (opaque white).
[PRIORITY < Priority-Value>] The PRIORITY syntax is reserved for future use and currently has no effect.
[LINE {ALWAYS | AUTO | DEFAULT | OFF} [ROBUST | OFF | FRAGILE | TRANSIENT | DEFAULT]] The LINE syntax is reserved for future use and currently has no effect.
[BACKGROUND [COLOR < Red> < Green> < Blue> < Alpha>] {SHADOW | OUTLINED_BOX | BOX | OFF | DEFAULT} [ROBUST | OFF | FRAGILE | TRANSIENT | DEFAULT]] Specifies that a background of some sort should appear behind the label. If COLOR is present, all four channels must be present as well, with each in the range of 0.0 to 1.0. Otherwise, the background color defaults to all 0.0's (transparent black). The "background" can take the form of shadowed text, a solid box, or an outlined solid box. In the case of the outlined solid box, the outline color is determined by the toplevel COLOR line (not from this BACKGROUND line). If a robustness argument is given, "FRAGILE" indicates the background should only appear in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the background only appears in low-resolution drawing (it is only there during interaction). ROBUST means it always shows, while OFF means it does not show. The default if no BACKGROUND line is present is OFF, but the default if a BACKGROUND line is present and no robustness keyword is used is ROBUST.
[SURFACE < GUTM-Name>] The SURFACE syntax is reserved for future use and currently has no effect.
[INTEREST {POINT | REGION} x1 y1 z1 [x2 y2 z2]] Specifies where the label should appear relative to the LOCAL_ORIGIN. If POINT is given, appears centered at (x1, y1, z1), relative to the LOCAL_ORIGIN. The REGION syntax and use of (x2, y2, z2) is reserved for future use and may cause instability if used currently.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The base coordinates of the label.
{< Label-Record>}* Specified in order of increasing scale (magnification). There must be as many Label-Records as specified in the "N_RECORDS" line. The format of the Label-Records are given in the folowing table.

Label-Records

A < Label-Record> within the Label file format takes the following format (label records must appear in the order of increasing scale):

NEW_SCALE < Min-Scale> Indicates the lower scale bound for the scale region in which the record applies.
{< Label-Specification>}* Most of the syntax that is valid in the header is also valid in a Label-Record. LABEL, TEXT, FONT, COLOR, PRIORITY, LINE, BACKGROUND, SURFACE, and INTEREST syntax are all applicable here.

Examples

The following example shows a label that appears in a larger font between scales of 0.5 and 5.0 in the window that is rendering it, and a smaller font between scales of 5.0 and 50.0. When shown as the larger text, the text appears in cyan, with a grey box and a cyan outline, all centered at a position 100 meters from the LOCAL_ORIGIN in each dimension. When shown as the smaller text, it appears in light-blue with a white background box (no outline), 50 meteres lower than the larger text was. BEGIN LABEL 1.0 N_RECORDS 1 SCALE 0.5 50.0 TEXT "This is a test label" FONT STANDARD_9_BY_15 COLOR 0.0 1.0 1.0 INTEREST POINT 100 100 100 BACKGROUND COLOR 0.3 0.3 0.3 1.0 OUTLINED_BOX LOCAL_ORIGIN 493278.000000 5312620.000000 -2500.000000 NEW_SCALE 5.0 COLOR 0.4 0.7 1.0 INTEREST POINT 100 100 50 FONT STANDARD_8_BY_13 BACKGROUND COLOR 1.0 1.0 1.0 1.0 BOX

The following example shows a label that appears at any scale up to a scale of 5. It appers at one location (in the center of Maine) up to a scale of .01, and then gets moved closer and closer to the New Hampshire border as the scale reaches .01, then .05, and finally .50 (it disappears at a scale of 5). This example is used in an exhibit that zooms in from a large region containing several states to an area on the border between New Hampshire and Maine. At the last level, the label changes to "Kittery, Maine" (this last line does not appear in the exhibit).

BEGIN LABEL 1.0 N_RECORDS 3 SCALE 0 5 TEXT "Maine" FONT HELVETICA_18 BACKGROUND SHADOW COLOR 1.0 1.0 1.0 INTEREST POINT 200000 600000 10000 LOCAL_ORIGIN 285039.311421 4372264.503058 0 NEW_SCALE 0.01 INTEREST POINT 88000 430000 2000 NEW_SCALE 0.05 INTEREST POINT 78000 401000 500 NEW_SCALE 0.50 INTEREST POINT 76700 399000 100 TEXT "Kittery, Maine"


Vector Data (.vector) Format

The Vector file type is intended for representing data that should be displayed as vector fields.

The structure of the vector file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN VECTOR < Version-Number> Currently, there is only one version (1.0).
{ STATIC } "STATIC" specifies that vectors are not animated at a certain point in time.
SCALE < scale > Specifies the amount to scale the vectors to make them visible when viewed as a group.

Example

The following example shows a curtain plot file for a curtain consisting of only 8 columns, each with at most 15 data points, and with data coded by an index. The curtain reference height is 500 meters below sea level. BEGIN CURTAIN 1.0 CLUT NCOLS 6 Z_STEP 10.0 LOCAL_ORIGIN 483785.00 5297590.00 -500.00 501.23 -5935.73 10.54 15 58605d55514f464948474948414741 510.66 -6029.69 13.33 15 575151514c484d46463f4340474242 520.39 -6126.67 8.67 14 5e69625c545146403e41433f3b43 529.82 -6220.62 8.30 10 d5f5b51564a4b4644424 540.22 -6323.12 9.97 8 666d674f494a4342 551.37 -6431.33 11.41 8 535b584947464240 562.51 -6539.54 12.73 12 625950484c424a4442474443 574.02 -6651.24 11.05 15 656b6c6863655e5855514e40434543


Vessel (.vessel) Format

The Vessel file type creates a crude, boxy-looking boat that has a tail and a course-made-good indicator line. The structure of the Vessel file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN VESSEL < Version-Number> Currently, there is only one version (1.0).
BOW_SIZE < Width> < Length> < Height> Specifies the dimensions of the bow (front) of the vessel. The Width and Height arguments indicate what the hull dimensions taper to Length meters from the front end of the hull.
HULL_SIZE < Width> < Length> < Height> Specifies the dimensions of the hull (main body) of the vessel. All dimensions are given in meters. The hull is just a big rectangular solid that connects the bow, stern, and bridge together. The main reference point for the vessel is in the center of the bottom-rear of the hull, where the tail comes out.
STERN_SIZE < Width> < Length> < Height> Specifies the dimensions of the stern (rear) of the vessel. The Width and Height arguments indicate what the hull dimensions taper to Length meters from the back end of the hull.
BRIDGE_SIZE < Width> < Length> < Height> Specifies the dimensions of the bridge (box on top) of the vessel. All dimensions are given in meters. The bridge is a rectangular solid that sits on top of the hull, starting one quarter of the way up the hull.
SHADOW {ON | OFF} Specifies whether or not a shadow should be shown below the vessel over the bathymetry underneath. NOT IMPLEMENTED YET.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The coordinates of the bottom center of the vessel, where the hull meets the stern.

Example

The following example shows a vessel with its keel 10 meters below the surface. BEGIN VESSEL 1.0 BOW_SIZE 2.0 30.0 1.0 HULL_SIZE 25.0 180.0 18.0 STERN_SIZE 15.0 20.0 15.0 BRIDGE_SIZE 20.0 40.0 18.0 LOCAL_ORIGIN 355508.312009 4768062.760335 -10


GZX OBJECTS


XML Scene (.gzx) Format

The Scene file type is a special case that does not follow the regular format. It is not an object, but actually a collection of objects, textures, and scripts. It also allows for certain objects and scripts to be specified on-the-fly without pointing to another file. The format for the XML Scene file is as follows (bold words must appear exactly as they do here, including case).

<?xml version="1.0"?> Must appear at the very beginning of the file. Identifies the XML version used.
<GZ> Identifies this XML file as a GeoZui file.
{< Scene-Item>}* Any number of Scene-Items may be present between the GZ statements. Scene-Items include Object-Items, Texture-Items, Script-Items, and Collections, as described in the next table.
</GZ> Must appear at the end of the GeoZui-specific information. No other top-level tags can be present, and no more than one GZ section is read.

Scene Items

A < Scene-Item> within the XML Scene file format takes one of the following formats:

<Collection [label=< label>]>
< Scene-Item>*
</Collection>
A Collection allows object-items to be nested and given a collective name.
<Texture filename=< filename> [label=< label>] [default=< value>] >
</Texture>
Causes GeoZui to load a texture of the given filename. A label can be given (otherwise the texture name is generated from the filename), and if the default tag is present, then the texture is designated as the default texture for objects.
<Object {filename=< filename> | type=< type> [< tags>} [label=< label>] [texture=< texture>] >
[< inline-object-info>]
</Object>
Causes GeoZui to either load an of the given filename or create an object of the given type. A label can be given (otherwise the object name is generated from the filename), and a texture can be given, either as the name of a texture already loaded, or as "default" (with quotes included).
<Script [filename=< filename>]>
[< inline-TCL-script>] </Script>
Causes GeoZui to source a script of the given filename, if a filename is given. Also executes any text between the Script tags as TCL.

Example

The following example loads two textures and three objects. It runs a script called "testscript.tcl" between loading endeavor.gutm and r509.gutm, then runs an embedded script at the end. <?xml version="1.0"?> <GZ> <Texture filename="default.clut" label="default" default="true"></Texture> <Texture filename="finegrid.grid" label="finegrid"></Texture> <Object filename="nonan.gutm" texture="default"></Object> <Object filename="endeavor.gutm" texture="default"></Object> <Script filename="testscript.tcl"></Script> <Object filename="r509.gutm" texture="finegrid"></Object> <Script>puts "Here is an embeded script!\n"</Script> </GZ>

Chart Object Format

A chart object displays a horizontal image at sea level, such as a nautical charts. When fused with a gutm, a hole will be created trough the image to display the gutm. Currently, only TIFF format images are supported for chart objects.

imagefile

Location of the TIFF file.

worldfile

Location of the corresponding World Header File as used in ArcView and Arc/INFO.

Example

<?xml version="1.0"?> <GZ> <Object type="Chart" imagefile="portsmouth.tif" label="Porstmouth_chart" worldfile="portsmouth.tfw"></Object> </GZ>


Tide Object Format

Tides are represented as a series of Gutms representing waterlevel hights above a datum. Each timestep is represented by a Timestep tag in the Object tag of type Tide.

time

Time in seconds since January 1st, 1970.

filename

Filename of the gutm for this timestep.

Example

<?xml version="1.0"?> <GZ> <Object type="Tide" label="tide"> <Timestep time="1023755397.12" filename="tidegrid37418.0208.txt.gutm"></Timestep> <Timestep time="1023759000" filename="tidegrid37418.0625.txt.gutm"></Timestep> <Timestep time="1023762602.88" filename="tidegrid37418.1042.txt.gutm"></Timestep> <Timestep time="1023766197.12" filename="tidegrid37418.1458.txt.gutm"></Timestep> </Object> </GZ>


Time-Varying Gutm

A TVGutm is a surface that varies in time. Essentially, it is a collection of Gutms that are displayed one at a time, at their specified time.

time

Time in seconds since January 1st, 1970.

filename

Filename of the gutm for this timestep.

Example

<?xml version="1.0"?> <GZ> <Object type="TVGutm" label="Land" texture="land"> <Timestep time="946702800" filename="step0.gutm"></Timestep> <Timestep time="946703800" filename="step1.gutm"></Timestep> <Timestep time="946704800" filename="step2.gutm"></Timestep> <Timestep time="946705800" filename="step3.gutm"></Timestep> </Object> </GZ>


NetCDF Object Formats

GeoZui3D has limited support for loading objects from netCDF files. A .gzx file with an Object type of NetCDF is used to describe how to interpret the data within the netCDF file.

ncfile
Filename of the netCDF file

A NetCDF Object tag may contain one or more of the following object types.

Flow

A flow tag describes how to read a collection of moving particles. The particles are rendered using an interpolated trail between particle positions to illustrate their flow.

Values may be interpreted from a netCDF file in various ways. The following codes are used to describe the source of some values:

d
Dimension
va
Variable attribute
ds
Dimension size

The follwoing values are used to determine what and how to read from the netCDF file.

var
Variable in the netCDF file containing the particle data
time
Dimension representing the times
timestep
Length of time bwtween steps
x
Which dimension and index points to the x values
y
Which dimension and index points to the y values
z
Which dimension and index points to the z values
count How to determine the number of particles
headcolor
RGB color of the head of the particle streaks
tailcolor
RGB color of the tail of the particle streaks
linewidth
Width in pixels of the streaks.
antialias
If set to "true",
length
length in timesteps of the streaks.

A flow tag may also include the following tags:

BBox

A BBox tag represents a bounding box that colors all particles that start within.

east
East edge of the bounding box.
west
West edge of the bounding box.
north
North edge of the bounding box.
south
South edge of the bounding box.
top
Top of the bounding box.
bottom
Bottom of the bounding box.
headcolor
RGB color of the head of the particle streaks starting in the bounding box.
tailcolor
RGB color of the tail of the particle streaks starting in the bounding box.

Highlight

The highlight tag allows to highlight every nth particle trace.

step
Determines how many particles to skip between highlighted ones.
headcolor RGB color of the head of the highlighted particle streaks
tailcolor
RGB color of the tail of the highlighted particle streaks

Example

<?xml version="1.0"?> <GZ> <Object type="NetCDF" ncfile="nh_drogue/drogue.nc" label="NH_drogue" usetexture="false"> <Flow var="Drogues" time="d Time" timestep="va Drogues Timestep" x="d Coordinate 0" y="d Coordinate 1" count="ds Count" headcolor="0.5 0.5 0.5" tailcolor="0.1 0.1 0.1" linewidth="1.75" antialias="false" length="3"> <BBox name="A" east="348500" west="347500" north="4771500" south="4770500" headcolor="0.0 1.0 0.0" tailcolor="0.0 0.5 0.0"> </BBox> <BBox name="B" east="362500" west="361500" north="4768750" south="4767250" headcolor="1.0 0.0 0.0" tailcolor="0.5 0.0 0.0"> </BBox> <BBox name="C" east="352900" west="352400" north="4775750" south="4775250" headcolor="0.0 1.0 1.0" tailcolor="0.0 0.4 0.4"> </BBox> <BBox name="D" east="369800" west="368800" north="4763000" south="4762000" headcolor="0.0 1.0 0.7" tailcolor="0.0 0.2 0.2"> </BBox> </Flow> </Object> </GZ>

Gutm

Not yet available

Tide

Not yer available


COMPOSITE OBJECT FILE FORMATS


General Composite Object Format

All composite object formats have a similar structure, since they are essentially objects that in some sense "manage" other objects. Elements in this format that act unchanged across composite objects only appear in this section (to reduce clutter and repetition). The structure is as follows:

[Optional Comments] As normal, anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN ... See the General file format description for details about the BEGIN keyword.
N_RECORDS < Posable-Count> Specifies how many posables are to follow the LOCAL_ORIGIN keyword and be "managed" by this composite object.
[Header Contents] Each Data-Type has its own additional keywords.
[REVERSED_XY] See the General file format description for details about the REVERSED_XY keyword.
[PROJECT ... ] See the General file format description for details about the PROJECT keyword.
LOCAL_ORIGIN ... See the General file format description for details about the LOCAL_ORIGIN keyword.
< Posable*> The lines following the LOCAL_ORIGIN keyword each contains the address of exactly one posable (which must already be loaded before the composite object is loaded). There should be as many of these lines as specified after N_RECORDS.
[Data] Additional data may appear afterward, depending on the composite object.


AveragingOverview (.avov) Format

The AveragingOverview file type creates a composite object that tracks all managed posables. It optionally maintains a position that is at the center of the box bounding the managed posables, an orientation that is the average of the managed posables, and a scale that allows an attached window to contain all of the managed posable positions in it's central region. The structure of the AveragingOverview file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN AVERAGING_OVERVIEW < Version-Number> Currently, there is only one version (1.0).
TRACKING {{H | P | R | S | T | X | Y | Z}*} Specifies which components of the managed posables are to be tracked, in terms of maintaining the average composite value. Each letter is the first letter of the particular component: Heading, Pitch, Roll, Scale, Translation (XYZ), X-position, Y-position, and Z-position. Defaults to all except Roll being tracked (HPST).
AVERAGE [MEAN | MIN_MAX] Specifies whether the average position should be calculated as a mean of all managed posables, or as a mean of the min/max extents of these posables. Defaults to MIN_MAX.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The value for the LOCAL_ORIGIN has little meaning, but for the sake of rendering accuracy, should be in the vicinity of where the managed posables are expected to be.
< Posable*> The list of managed posables.
The AveragingOverview format has no data after the list of posables.

Example

This example creates an AveragingOverview that tracks the scale and position of two objects. When there are only two managed posables, there is no difference between AVERAGE MEAN and AVERAGE MIN_MAX. BEGIN AVERAGING_OVERVIEW 1.0 N_RECORDS 2 TRACKING TS AVERAGE MEAN LOCAL_ORIGIN 493278.000000 5312620.000000 -2500.000000 Object.Sample1_sample Object.Sample2_sample

Boundary (.boundary) Format

The Boundary file type creates a composite object that generates events whenever a managed posable crosses a planar boundary. The boundary is the plane passing through the position of the Boundary pose, where the plane is normal to the heading/pitch/roll of the Boundary pose. The boundary is rendered as a rectangle starting at the LOCAL_ORIGIN, with a width determined by the SCALE, and a height determined by the SCALE and HEIGHT_RATIO. The structure of the Boundary file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN AVERAGING_OVERVIEW < Version-Number> Currently, there is only one version (1.0).
SCALE < Scale> Specifies the width (and contributes to the height) of the rendered rectangle of the boundary. Defaults to 1.0.
HEIGHT_RATIO < Ratio> Specifies the height of the rendered rectange of the boundary with respect to the scale. The height is determined by multiplying the scale by this value. Defaults to 0.0 (renders as a line segment).
YAW < Angle> Specifies the heading of the normal vector to the boundary, pointing in the "inward" direction. Defaults to 0.
PITCH < Angle> Specifies the pitch of the normal vector to the boundary, pointing in the "inward" direction. Defaults to 0.
ROLL < Angle> Specifies the roll of the rendered rectangle with respect to the boundary's normal vector. Defaults to 0.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> Specifies the origin of the rendered rectangle.
< Posable*> The list of managed posables, for which events will be generated whenever they cross the boundary.
The Boundary format has no data after the list of posables.

Example

This example creates a Boundary that faces nearly east, and is pitched down at 45 degrees. When rendered, the Boundary has width of 100m and a height of 80m. It generates a boundaryCrossedOut or boundaryCrossedIn event whenever the main window crosses the boundary (in on the east side, out on the west). BEGIN BOUNDARY 1.0 N_RECORDS 1 SCALE 100 HEIGHT_RATIO 0.8 YAW 80 PITCH 45 LOCAL_ORIGIN 493278.000000 5312620.000000 -2000.000000 Window.main

ProximityHighlighter (.proximity) Format

The ProximityHighlighter file type creates a composite object that tracks the two closest of its managed posables. It optionally maintains a position that is at the center of the two closest posables and a scale that allows an attached window to contain both in it's central region. Events are generated as the two closest managed posables cross certain thresholds of proximity. Note that events are only generated for the nearest two, even if other posables come within proximity of each other. The structure of the ProximityHighlighter file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN PROXIMITY_HIGHLIGHTER < Version-Number> Currently, there is only one version (1.0).
TRACKING {ON | OFF} Specifies whether or not the position of the nearest two objects should be tracked (and maintained in the ProximityHighlighter's posable). Defaults to ON.
THRESHOLD < distance> Specifies the distance at which the two nearest managed posables should cause the ProximityHighlighter to trigger and event. Triggers an inProximity event when two managed posables are within distance meters of each other, an inCloseProximity event when they are within half that distance, an outOfCloseProximity event when they were previously in close proximity and move out of 0.55 times the distance, and and outOfProximity event when they were in proximity and they move out of 1.1 times the distance. Defaults to 60 meters.
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> The value for the LOCAL_ORIGIN has little meaning, but for the sake of rendering accuracy, should be in the vicinity of where the managed posables are expected to be.
< Posable*> The list of managed posables.
The ProximityHighlighter format has no data after the list of posables.

Example

This example creates a ProximityHighlighter that tracks the scale and position of the nearest of four objects, triggering events when any two of them are within 20 meters of each other. BEGIN PROXIMITY_HIGHLIGHTER 1.0 N_RECORDS 4 THRESHOLD 20 LOCAL_ORIGIN 493278.000000 5312620.000000 -2500.000000 Object.Sample1_sample Object.Sample2_sample Object.Sample3_sample Object.Sample4_sample


NON-OBJECT FORMATS


Legacy Scene (.sdv) Format

The Scene file type is a special case that does not follow the regular format. It is not an object, but actually a collection of objects and textures. It also allows for the automatic invocation of a script upon loading. The format for the Scene file is as follows (bold words must appear exactly as they do here, including case).

textures Must appear at the very beginning of the file.
{< Texture-Filename> < Texture-Label>[ < Default-Indicator>]}* Any number of texture filename-label pairs may be present after the "textures" line. The Texture-Label is the name used to represent the texture loaded in from the file specified by Texture-Filename. Only one texture may have the Default-Indicator present, and there must not be any space between int and the Texture-Label. The Default-Indicator is the star character ("*").
objects Must appear immediately after the last texture filename-name pair, without any intervening lines.
{< Object-Filename> < Object-Label> < Texture-Label>}* Any number of object specification triples may be present after the "objects" line. The Object-Label is the name used to represent theobject loaded in from the file specified by Object-Filename. The Texture-Label specifies which texture should be mapped to this object when it is first rendered. If Texture-Label is "default", then the texture marked with the Default-Indicator is assigned.
end Marks the end of required information (objects and textures). Must appear immediately after the last object specification triple, without any intervening lines.
[< Script-Filename>]* Optional scripts to be run upon completion of loading all textures and objects. If present, the first line must appear immediately after the "end" line. Each script must be on a separate line without any intervening lines between them.

Example

The following example loads two textures and five objects. It runs a script called "tube.tcl" after everything has been loaded. textures default.clut default.clut* myclut.clut myclut objects r509.gutm r509.gutm myclut ROV4.tube ROV4.tube default animals.point animals.point default nonan.gutm nonan.gutm default Sample1.sample Sample1_sample default end tube.tcl

Conversion Grid Format

The Conversion Grid file type is intended for bringing in regularly gridded surfaces that are not in UTM coordinates. It allows holes and oddly shaped boundaries, but uses a rectangular bounding grid area for its specification. This grid can then be converted to a GUTM grid using existing or user-provided projections and/or conversion methods. Conversion grids are not currently supported as their own file type, but are used for the GUTM "PROJECT" specification. The structure of the Conversion Grid file format is as follows:

[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN CONVERSION_GRID < Version-Number> Currently, there is only one version (1.0).
LAYOUT {LITERAL | ROW_MAJOR | COLUMN_MAJOR} [ INVERTED_ROWS] Specifies how the height data is layed out. LITERAL indicates that the data are arranged in rows and columns in the file (one row to a line). ROW_MAJOR and COLUMN_MAJOR indicate that the data is listed in row major or column major order, respectively, according to other parameters in the header. If INVERTED_ROWS is specified, then rows are expected to be given in the data from the northwest corner, down, rather than the usual southwest corner, up.
[COLS_ROWS < Column-Count> < Row-Count>] Specifies the number of points in each column and row of the grid. COLS_ROWS should not appear if LAYOUT is LITERAL.
CELLSIZE { IMPLICIT |
{{< X-Size> | VARIABLE} {< Y-Size> | VARIABLE} [ PER_RECORD]}
Specifies the distance between grid points in X and Y directions. If IMPLICIT, then X and Y coordinates are expected for every point, always as an (x, y, z) triple. COLS_ROWS must be used and SHAPE must be FULLGRID if the IMPLICIT keyword is used here. If a number is given for X-size or Y-size, it specifies the width or height (respectiviely) of every cell. If VARIABLE is given for a dimension, it means that the individual coordinates will be given for each column and/or row, respectively. If PER_RECORD does not appear, the coordinates for each row and column are expected in sections delimited by the SECTION_DELIMITER. The non-major-ordered coordinates always appear in the data section first (column coordinates for row-major order, for instance) followed by the major-ordered coordinates (rows, for our example). If PER_RECORD appears, the major-ordered coordinates are expected at the beginning of each line record (whether this is a row or a column), and not in a separate section.
GRID_ORIGIN < X-Origin> < Y-Origin> The coordinates of the Southwestern corner of the grid. This line is required if any numeric values are given for CELLSIZE. Values given here are ignored if the CELLSIZE for the corresponding dimension is given as VARIABLE.
[SECTION_DELIMITER < Delimiter>] Specifies what ends a particular section of data. If no SECITON_DELIMITER is given, "END" is the default.
[VALID_DATA {LESS_THAN | GREATER_THAN | BETWEEN} < value1> [< value2>]] Specifies what values constitue valid data (the rest are considered to be missing, or a "hole"). Any data that does not start with a digit or sign will also be considered missing. If VALID_DATA does not appear, all numeric data is considered valid.
[SHAPE { FULLGRID | PARTIAL }] Specifies whether the data that follow specify the start and end of a line (PARTIAL) or not (FULLGRID). FULLGRID is the default if no SHAPE is given. SHAPE should not appear if LAYOUT is LITERAL.
END_HEADER Specifies end of header.
< Data> Specified from South to North and West to East, according to the parameters specified earlier in the header.


Color Look-Up Table (.clut) Format

The Clut file type is another special case that does not follow the regular format. It is not an object, but a specification for color assignment. Clut's can be used either as height-mapped textures or as lookup tables for data values, depending on the object they are applied to. The format for the Clut file is as follows (bold words must appear exactly as they do here, including case).

clut1.0 Must appear at the very beginning of the file.
{< Value> < Red> < Green> < Blue> < Alpha>}* Any number of look-up table entries can be present after the "clut1.0" line. The Value is a floating point number, indicating the top of the range to have the specified color. The color is specified as levels of red, green, blue, and alpha; the levels are simple integers between 0 and 255 inclusive. If this Clut is used as a height-mapped texture, the color associated with the topmost value is used for all values above that value as well. For all other applications, values outside the range of the table entries result in a neutral color.
done Must appear immediately after the last look-up table entry, without any intervening lines. Indicates the end of Clut information. Anything after this line is ignored.

Example

The following example specifies 11 different colors at values spaced 10.0 apart (when used as a height mapped texture, this would be 10.0 meters apart). Colors range from blue (-2190) to red (-2000). clut1.0 -2190.000000 0 126 255 205 -2180.000000 0 169 255 205 -2170.000000 0 236 255 205 -2160.000000 0 255 126 205 -2150.000000 81 255 0 205 -2140.000000 185 255 0 205 -2130.000000 255 250 0 205 -2120.000000 255 232 0 205 -2110.000000 255 183 0 205 -2100.000000 255 104 0 205 -2000.000000 255 0 0 205 done

Draped Grid (.grid) Format

The Draped Grid file provides a specification for a grid pattern to be draped on a surface. Grids are intended to produce a "graph paper" look, and provide a convenient way of measuring distance on a horizontal surface. A grid is defined by specification of a single tile, which is replicated across the surface to which it is assigned. The tile is made up of an image for which width and height in pixels and a background color may be specified. A maingrid and up to 10 subgrids are drawn on this tile. The maingird determines the width and height in meters of the tile, and has an outline drawn around it of specified thickness and color. Thus a tile with only a maingrid looks like an outlined rectangle. Each subgrid is used to subdivide the maingrid, and consists of a number of vertical and horizontal dividing lines of specified thickness and color. When a draped grid texture tile is created, first the tile is filled in with the background image color. Then, drawing begins in order from the last subgrid specified in the file up to the first, and finally the maingrid outline is drawn. Thus, subgrids specified early in the file will draw over those specified later. The format for a Draped Grid file is as follows. Note, that lines need only be included in the file if values other than the default values are desired. The default grid contains only a main grid, but if subgrids are specified, the defaults for a subgrid apply unless overridden. Section headers (image, maingrid and subgrid) can appear in any order, and within a section order of the lines is unimportant.
[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN GRID < Version-Number> Currently, there is only one version (1.0).
< Image-Section> This is the background specification for the grid tile. The format of the Image-Section is found in the first table below.
< Maingrid-Section> This is the specification for the topmost level of the grid, which is essentially a border around the grid tile. The format of the Maingrid-Section is found in the second table below.
{< Subgrid-Section>}* These are the specifications for the subdivisions within a grid tile. There may be up 10 Subgrid-Sections. The format of the Subgrid-Section is found in the third table below.

Grid Image-Section Format

< Image-Section> within the Grid file format takes the following form.

IMAGE Indicates that general specifications for a background image tile follow.
WIDTH < pixel-width> The width (east-west direction) in pixels of one tile. Default = 512 pixels.
HEIGHT < pixel-height> The height (north-south direction) in pixels of one tile. Default = 512 pixels.
COLOR < red> < green> < blue> < alpha> The tile's background color. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the image background is fully transparent, 1 that it is fully opaque. Default = 0 0 0 0 (transparent black).

Grid Maingrid-Section Format

< Maingrid-Section> within the Grid file format takes the following form.

MAINGRID Indicates that general specifications for the main grid drawn on an image tile follow.
HSIZE < width> The horizontal size (east-west direction) in meters of the main grid. Default = 100 m.
VSIZE < height> The vertical size (north-south direction) in meters of the main grid. Default = 100 m.
LINEWIDTH < thickness> The thickness in pixels of the outline to be drawn around main grid tile. Default = 10 pixels.
COLOR < red> < green> < blue> < alpha> The color of the outline to be drawn around main grid tile. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the line is fully transparent, 1 that it is fully opaque. Default = 0.3 0.3 0.9 0.7.

Grid Subgrid-Section Format

< Subgrid-Section> within the Grid file format takes the following form.

SUBGRID Indicates that general specifications for a subgrid drawn on an image tile follow.
HDIVS < m> The number of horizontal divisions (east-west direction) across one tile of the main grid. Default = 10 divisions.
VDIVS < n> The number of vertical divisions (north-south direction) across one tile of the main grid. Default = 10 divisions.
LINEWIDTH < thickness> The thickness in pixels of the lines forming the subgrid. Default = 5 pixels.
COLOR < red> < green> < blue> < alpha> The color of the lines forming the subgrid. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the line is fully transparent, 1 that it is fully opaque. Default = 0.2 0.2 0.7 0.7.

Example

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % A Grid that looks like a blue and red lined graph paper %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% begin grid 1.0 image width 512 % the base grid image tile will be 512x512 pixels height 512 color 1 1 1 1 % the background of the grid will be opaque white maingrid hsize 100 % the main grid cell is 100m x 100m vsize 100 linewidth 8 % main grid lines are drawn 8 pixels wide color 0.4 0.4 1 1 % main grid lines are light blue, fully opaque subgrid hdivs 2 % this subgrid divides the main grid in half (50 m) vdivs 2 linewidth 4 % lines are 4 pixels wide color 0.9 0.35 0.35 1 % lines are light red subgrid hdivs 10 % this subgrid divides the main grid in tenths (10m) vdivs 10 linewidth 2 % lines are 2 pixels wide color 0.5 0.5 0.9 1 % lines are darker and grayer than main blue lines subgrid hdivs 100 % this subgrid divides the main grid in hundreths (1m) vdivs 100 linewidth 1 % lines are 1 pixel wide color 0.3 0.3 0.7 1 % lines are even darker and grayer than 10m lines

Georeferenced Draped Image (.jgw & .tfw) Formats

The georeferenced draped image file type is a special case that does not follow the regular format. It is not an object, but a specification for how an image is to be georeferenced before being draped on a horizontal surface. The format used is the World Header File format used in ArcView and Arc/INFO. Currently only JPEG and TIFF file formats are supported. The suffix of the file name determines which type of image file is to be loaded (.jgw = .jpg, .tfw = .tif). The body of the name of the file determines the body of the name of the image file to be loaded. For example, the file neahbay.twf will provide georeferencing information for the image file neahbay.tif. The image file must be located in the same directory. The file itself contains six lines which determine size, orientation, and geographic position of the image. The format is as follows.
< x cellsize> The size of a single pixel of the georeferenced image in the east direction.
0 Must be zero (used in Arc/INFO to rectify rotation, but not supported in GeoZui3D)
0 Must be zero (used in Arc/INFO to rectify rotation, but not supported in GeoZui3D)
< y cellsize> The size of a single pixel of the georeferenced image in the north direction.
< x> The projected east position in meters (UTM) of the origin of the image to be draped. If this entry is positive, the origin of the image is on its west side. If it is negative the origin of the image is on its east side.
< y> The projected north position in meters (UTM) of the origin of the image to be draped. If this entry is positive, the origin of the image is on its south side. If it is negative the origin of the image is on its north side.

Example

The following example indicates that the image is to be loaded with its origin in the north-west (upper left-hand) corner. This corner is geopositioned at (493278.0, 5313619.6) in UTM coordinates. Pixels of the image are square, with linear dimension 1.96 m. 1.96 0 0 -1.96 493278.000000 5313619.6000000

Draped Lattice Texture (.lat) Format

The Draped Lattice Texture file provides a very simple technique for producing a variety of both regular and irregular patterns with which to texture a surface. A lattice texture is defined by specification of a single tile, which is replicated across the surface to which it is assigned. The lattice texture tile is made up of an image for which width and height in pixels, a background color, and width and height in meters can be specified. In addition, a filtering operation can be specified, which is used to low-pass filter the image once it is created. Up to 10 lattices may be drawn on this tile. Each lattice is a regular grid of lattice points (intersections of grid lines) at which a pattern element may be drawn. Associated with each lattice is a specification for how pattern elements are to be drawn into the tile. When a draped lattice texture tile is drawn, the tile is first filled in with the background image color. Then, drawing begins in order from the last lattice specified in the file up to the first. Thus, lattices specified early in the file will draw over those specified later. The format for a Draped Lattice file is as follows. Note, that lines need only be included if values other than the default values are desired. By default (i.e. if no lattices are explicitly specified in the file), only a single lattice is created with the default parameters.
[Optional Comments] Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment.
BEGIN LATTICE < Version-Number> Currently, there is only one version (1.0).
< Image-Section> This is the background specification for the lattice tile. The format of the Image-Section is found in the first table below.
{< Lattice-Section>}* These are the specifications for the various texture elements to be generated within the lattice tile. There may be up to 10 Lattice-Sections. The format of the Lattice-Section is found in the second table below.

Lattice Image-Section Format

< Image-Section> within the Lattice file format takes the following form.

IMAGE Indicates that general specifications for a background image tile follow.
WIDTH < pixel-width> The width (east-west direction) in pixels of one tile. Default = 512 pixels.
HEIGHT < pixel-height> The height (north-south direction) in pixels of one tile. Default = 512 pixels.
HSIZE < width> The horizontal size (east-west direction) in meters of a single tile. Default = 100 m.
VSIZE < height> The vertical size (north-south direction) in meters of a single tile. Default = 100 m.
COLOR < red> < green> < blue> < alpha> The tile's background color. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the image background is fully transparent, 1 that it is fully opaque. Default = 0 0 0 0 (transparent black).
FILTER [NOFILTER | [GAUSS | BOX] <w> ] Keyword NOFILTER indicates that no filtering is to be done, GAUSS that a gaussian filter is to be applied, and BOX that a box filter is to be applied. The filter kernel is of width w. Default = NOFILTER.

Lattice Lattice-Section Format

< Lattice-Section> within the Lattice file format takes the following form.

LATTICE Indicates that general specifications for a lattice drawn on an image tile follow.
ROWS < m> The number of lattice rows across one tile of the main grid. Default = 10 rows.
COLS < n> The number of lattice columns across one tile of the main grid. Default = 10 columns.
PROBABILITY < p> The probability that an individual lattice element will be drawn when the texture tile is created. p ranges between 0.0 and 1.0, where 0.0 = never drawn, 1.0 = always drawn. Default = 1.0
HJITTER [CONSTANT <offset>| [NORMAL | UNIFORM] <offset> <range> ] Horizontal (east-west) offset and jitter. Keyword CONSTANT indicates that no horizontal jitter is to be applied, NORMAL that a normally distributed jitter is to be applied, and UNIFORM that a uniformly distributed jitter is to be applied. The offset determines a fixed horizontal offset of the point from the lattice point. The range parameter indicates one standard deviation for a NORMAL distribution and indicates the maximum magnitude deviation for a UNIFORM distribution. All distances are specified in meters. Default = CONSTANT 0
VJITTER [CONSTANT <offset>| [NORMAL | UNIFORM] <offset> <range> ] Vertical (north-south) offset and jitter. Keywords and paramters are the same as for HJITTER. Default = CONSTANT 0
RJITTER [CONSTANT <offset>| [NORMAL | UNIFORM] <offset> <range> ] Rotational offset and jitter. Keyword CONSTANT indicates that no rotational jitter is to be applied, NORMAL that a normally distributed jitter is to be applied, and UNIFORM that a uniformly distributed jitter is to be applied. The offset determines a fixed rotational offset. The range parameter indicates one standard deviation for a NORMAL distribution and indicates the maximum magnitude deviation for a UNIFORM distribution. All angles are specified in degrees. Default = CONSTANT 0
STYLE [DOT <diameter>| [LINE | GABOR] <angle> <length> <thickness>] The style of the patterning element to be drawn at the lattice points. Keyword DOT signifies a filled circle with the indicated diameter. LINE signifies a straight line drawn at the indicated angle, and with the specified length and thickness. GABOR signifies a gabor function drawn with its main axis at the indicated angle, and with the specified length determining wavelength and thickness determining the ratio of gaussian size to wavelength. Default = DOT 0.1
COLOR < red> < green> < blue> < alpha> The color to be used when drawing the patterning element. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the element is fully transparent, 1 that it is fully opaque. Default = 0.2 0.2 0.7 0.7.

Examples

%--------------------------------------------------------------------- % A sample regular lattice texture using both lines and dots %--------------------------------------------------------------------- begin lattice 1.0 image width 512 % the base image tile will be 512x512 pixels height 512 color 1 1 1 1 % the background color is opaque white hsize 50 % one image tile is taken to be 50m x 50m vsize 50 filter gauss 5 % 5x5 gaussian filter after drawing % a 10 x 10 lattice of short angled red lines % by default, all lines are drawn and there is no jitter or offset lattice rows 10 % 10 x 10 lattice cols 10 style line 45 2 0.4 % draw each line at 45 degrees, 2 m long, 0.4 m wide color 1 0.2 0.2 1 % lines are red % a 5 x 5 lattice of green dots % by default, all dots are drawn and there is no jitter or offset lattice rows 5 cols 5 style dot 1.6 % draw each point as 1.6 m diameter dot color 0.2 1 0.2 1 % dots are green % a 1 x 50 lattice of vertical blue lines % the lines are rotated 90 degrees and are long enough so that when the % texture is tiled, they make unbroken vertical lines % by default, all lines are drawn and there is no jitter or offset lattice rows 1 % 1 row in lattice cols 50 % 50 cols in lattice style line 90 50 0.4 % draw each vertical line 50 m long, 0.4 m wide color 0.3 0.3 1 1 % lines are blue %--------------------------------------------------------------------- %--------------------------------------------------------------------- % a sample irregular lattice texture that creates a random dot pattern %--------------------------------------------------------------------- begin lattice 1.0 image width 512 % the base grid image will be 512x512 pixels height 512 color 0 0 0 0 % the background color is transparent black hsize 50 % the total image is taken to be 50m x 50m vsize 50 filter gauss 3 % 3x3 gaussian filter after drawing lattice rows 250 % row and col divisions are 0.1 meters cols 250 probability 0.25 % 25% probability of lattice point being drawn hjitter uniform 0 0.1 % uniform dist. no offset, range +/- 0.1 vjitter uniform 0 0.1 style dot 0.4 % draw each point as 0.4 m diameter dot color 1 0.2 0.2 1 % dots are opaque red %---------------------------------------------------------------------