Maptitude GISDK Help

Table Class

A class to make working with views and tabular data easier.

Changes

New in Maptitude 2022

Constructor

table = CreateObject(“Table”, array options)

Option Type Contents
View String Name of an existing view to create the table on
FileName String File path to be opened into a table. Can be either a table file (BIN or CSV) or a geographic file (DBD or CDF)
Fields Array An array of field definitions used to create a new table from scratch. See Table.AddFields() for details on this option
Layer String or Numeric Optional. Layer name or its position in the geographic file when FileName extension is CDF or DBD. For example, node layers are always first in line layers. Defaults to 1 (for the first layer in the file).

Methods

AddField(array options)

Adds a single field to the table.

Option Type Contents
FieldName String Name of field to be added. If the only argument passed to AddField() is a string, it is assumed to be the FieldName
Type String Optional. Field type. Default: real. Allowed Values: 'short', 'integer', 'real', 'string', etc. SeeModifyTable()help page for all possible values
Width Integer Optional display width of the field. Default: 12
Decimals Integer Optional. Number of decimal places to display. Default: 2 for real fields. 0 otherwise
Description String Optional description for the field

AddFields(array options)

Adds multiple fields at once, which is faster than adding many fields one at a time.

Option Type Contents
Fields Array Array where each element is an array containing the options describe din the Add|Field() method above. See the example underAdding/Dropping multiple fieldsbelow

AddRows(array options)

Add empty rows to a table.

Option Type Contents
EmptyRows Integer The number of empty rows to be added

Aggregate(array options)

Groups and summarizes tables by fields.

Option Type Contents
GroupBy String or array of strings Fields to group by
FieldStats Array Each element is a field name paired with stats. Example: {Length: "sum", "FFSpeed": {"average", "max"}}. Stats supported: count, sum, average, distinct, variance, min, max. Resulting fields have a naming convention like “sum_Length” and “average_FFSpeed”

ChangeField(array options)

Used to change various attributes of a field. See RenameField() if just changing field name.

Option Type Contents
FieldName String Name of the existing field to be changed
NewName String Optional. The new name of the field
Type String Optional. Field type. Default: real. Allowed Values: 'short', 'integer', 'real', 'string', etc. See ModifyTable() help page for all possible values
Width Integer Optional display width of the field.
Decimals Integer Optional. Number of decimal places to display. Default: 2 for real fields. 0 otherwise
Description String Optional description for the field

ChangeSet(array options)

Changes which set is active. Active sets are used when getting/setting data vectors and must be created using CreateSet(). Call ChangeSet() with no arguments to clear the active set (i.e. use all records).

Option Type Contents
SetName String Name of the set to switch to or null to clear the active set. If the only argument passed is a string, it is assumed to be the SetName

CreateSet(array options)

Creates a selection set on the table. If the set already exists, it is updated. Does not make that set active (See ChangeSet() ).

Option Type Contents
SetName String Name of the new set to create
Filter String Conditional statement / query used to select records. Example: "Area > 1"
Operation String Optional. How the new set should be created (see SelectByQuery() for details). Valid values: “several”, “less”, “more”, “subset”. Default: “several”
Options Array Other options passed toSelectByQuery()

DropSet(array options)

Removes a set from the table.

Option Type Contents
SetName String The set to be dropped

DropFields(array options)

Permanently removes a field (or fields) from a table.

Option Type Contents
FieldNames String or Array Name(s) of field(s) to be removed
NotFoundError Boolean Should an error be thrown if the field does not exist when attempting to remove? Default: false

Export(array options)

Exports a table to a file (either FFB or CSV). Returns a table object.

Option Type Contents
FileName String Optional. Full file path where the table will be exported. Do not provide if providing ViewName
ViewName String Optional. The name of the view for the memory table that will be created. If neither FileName nor ViewName is provided, a mem table will be created with a unique name
FieldNames Array Optional. Names of fields to include in the new table. Default is all fields

GetActiveSet(array options)

Returns the currently active set on the table.

GetDataVectors(array options)

Retrieve multiple fields at once.

Option Type Contents
FieldNames Array Optional. Name of fields to get data for. If null, data for all fields is returned
Options Array Optional. Other options passed toGetDataVectors(). Note: the “Sort Order” option is set to the table’s sort order by default (see Table.Sort() ). Also, the “options” option is set to true by default

GetFieldNames()

Returns the field names of the table.

GetFieldSpes()

Returns the field specs of the table.

GetRecordCount(array options)

Returns the number of records in a table.

Option Type Contents
SetName String Optional. If provided, only the number of records in the set are returned

GetSets()

Returns the names of selection sets on the table.

GetSortOrder()

Returns the current sort order of the table.

GetView()

Returns the name of the view referenced by the table object.

Join(array options)

Joins two tables together and returns a new table object.

Option Type Contents
Table Table object The table to be joined to the current table
LeftFields String or Array Fields in existing (left) table used for joining
RightFields String or Array Fields in second (right) table used for joining.
Options Array Optional. Additional options passed toJoinViewsMulti()

RenameField(array options)

Changes the name of a field.

Option Type Contents
FieldName String Name of the existing field to be changed
NewName String or Array The new name of the field

SetDataVectors(array options)

Used to write values to multiple fields at once. Faster than writing vectors one at a time.

Option Type Contents
FieldData Array An array of two-element arrays. The first element is the name of the field and the second is a data vector. Example: {{“Speed”, v_speed}, {“Time”, v_time}}
Options Array Optional. Other options passed toGetDataVectors(). Note: the “Sort Order” option is set to the table’s sort order by default (see Table.Sort() )

SetDataVectors(array options)

Used to write values to multiple fields at once. Faster than writing vectors one at a time.

Option Type Contents
FieldData Array An array of two-element arrays. The first element is the name of the field and the second is a data vector. Example: {{“Speed”, v_speed}, {“Time”, v_time}}
Options Array Optional. Other options passed to GetDataVectors(). Note: the “Sort Order” option is set to the table’s sort order by default (see Table.Sort() )

Sort(array options)

Sorts a table by given fields.

Option Type Contents
FieldArray Array An array of field-direction pairs. If null, any existing sort order is removed. Example: {{"State", "Ascending"}, {"Population", "Descending"}}

View()

Displays a table in an editor window.

Examples

folder = RunMacro("G30 Tutorial Folder")

file = folder + "AIRPORTS.BIN"

// Test export and create a copy for join tests

table = CreateObject("Table", {FileName: file})

// can also call like this:

// table = CreateObject("Table", file)

file_copy = Substitute(file, ".BIN", "_copy.bin",)

table.Export({FileName: file_copy})

// Basics of getting/setting data

v = table.City

v = table.[Site#]

table.AddField("test")

fields = table.GetFieldNames()

table.DropFields({FieldNames: "test"})

fields = table.GetFieldNames()

table.CreateSet({SetName: "Hawaii", Filter: "State = 'HI'"})

sets = table.GetSets()

table.ChangeSet({SetName: "Hawaii"})

table.[A Real] = 5.1

table.AnInt = 5

table.ChangeSet()

table.AString = "test"

table.RenameField({FieldName: "AString", NewName: "String"})

table.ChangeField({FieldName: "A Real", Decimals: 3})

table.DropFields({FieldNames: {"String", "A Real", "AnInt"}})

// Getting/setting multiple fields

data = table.GetDataVectors({FieldNames: {"City", "County"}})

v = data.City

table.SetDataVectors({FieldData: data})

// Sorting

table.Sort({FieldArray: {County: "Ascending", Name: "Ascending"}})

view = table.GetView()

n = GetRecordCount(view, )

v = Vector(n, "Long", {{"Sequence", 1, 1}})

table.test = v

table.Sort({FieldArray: {County: "Descending", Name: "Descending"}})

v = table.test

data = table.GetDataVectors({FieldNames: {"test"}})

table.DropFields({FieldNames: "test"})

data = table.GetDataVectors({FieldNames: {"City", "County"}})

table.SetDataVectors({FieldData: data})

table.DropFields({FieldNames: {"test", "test2"}})

table.Sort()

// Adding/dropping multiple fields

fields = {

   {FieldName: "CongSpeed", Type: "Real", Width: 10, Decimals: 3, Description: "Congested Speed"},

   {FieldName: "CongTime", Type: "Real", Width: 10, Decimals: 3, Description: "Congested Travel Time"}

}

table.AddFields({Fields: fields})

table.DropFields({FieldNames: {"CongSpeed", "CongTime"}})

// Fields with odd names

table.Length = 1

table.DropFields({FieldNames: "Length"})

table.[A Space] = 1

table.DropFields({FieldNames: "A Space"})

table.[An *] = 1

table.DropFields({FieldNames: "An *"})

// Joining views and getting data

right_table = CreateObject("Table", {FileName: file_copy})

jt = table.Join({

   Table: right_table,

   LeftFields: {"Name", "City"},

   RightFields: {"Name", "City"}

})

jt.ChangeSet("Hawaii")

test = jt.[Table_1.Site#]

jt.View()

jt = null

// Aggregation

agg_tbl = table.Aggregate({

   GroupBy: {"Name", "City"},

   FieldStats: {FLIGHTS: "sum", Domestic: {"sum", "average"}}

})

v = agg_tbl.average_Domestic

agg_tbl = table.Aggregate({

   GroupBy: "State",

   FieldStats: {FLIGHTS: "sum", Domestic: {"sum", "average"}}

})

v = agg_tbl.sum_FLIGHTS

agg_tbl.View()

// Creating a new table from scratch

fields = {

   {FieldName: "CongSpeed", Type: "Real", Width: 10, Decimals: 3, Description: "Congested Speed"},

   {FieldName: "CongTime", Type: "Real", Width: 10, Decimals: 3, Description: "Congested Travel Time"}

}

new = CreateObject("Table", {Fields: fields})

new.AddRows({EmptyRows: 5})

new.View()

// Using methods inherited from the CalculateTable class

table.ApplyFilter("State = 'NY'")

sum = table.Statistics(FieldName: {"Foreign"} )

See Also:

AddLayerDB

AddTables

Calculate Tables

Caliper.Charts

CC.ModifyTableOperations

CC.Table

Clustering

Data.Finder

Data.Geocoder

PostgreSQLConnect

PostgreSQLCommand

Routing.Bands

Routing.Path

Routing.Router

Table

Utilities.Mail

 

 

©2025 Caliper Corporation www.caliper.com