Maptitude GISDK Help

Working with Arrays

Caliper Script contains a number of functions you can use to create and manipulate arrays. In addition, the + operator concatenates two arrays.

GISDK Function

Summary

ArrayElementToInteger()

Converts an array element to an integer

ArrayElementToReal()

Converts an array element to a real number

ArrayElementToString()

Converts an array element to a string

ArrayExclude()

Excludes elements from an array

ArrayIntersect()

Creates an array that contains the elements of the array a that are also in array b

ArrayLength()

Computes the number of elements in an array

ArrayMax()

Determines the largest value in an array of numbers

ArrayMin()

Determines the smallest value in an array of numbers

ArrayPosition()

Finds the position of a sub-array in an array

Avg()

Computes the average value of the elements of an array

CompareArrays()

Compares two arrays, element by element

CopyArray()

Makes a copy of the array, including nested sub-arrays, to any depth

ExcludeArrayElements()

Removes elements from an array

ExtractArray()

Returns the specified sub-array, which must itself be an array

FindOption()

Finds a particular option and its setting in an array of name-value pairs

FindOptionValue()

Finds the value of a particular option in an options array

FindStrings()

Finds strings in an array that match one or more search specs

GetArrayScope()

Returns the scope of an array of coordinates

InsertArrayElements()

Inserts elements into an array

JsonToArray()

Converts a proper JSON literal object to an options array

Kurtosis()

Returns the kurtosis of a set of numbers

LoadArray()

Loads an array from a file

Mean()

Computes the mean (average) of the elements of an array

Median()

Computes the median of the elements of an array

Percentile()

Returns the value at which a given percentile is reached

ReadArray()

Reads a text file into an array of strings

ReadSizedArray()

Reads a group of strings from a file

ReverseArray()

Returns a new array, with the same elements as the input array, but in the reverse order

SaveArray()

Saves an array to a file

ShowArray()

Displays a Windows dialog box containing the contents of an array, including nested sub-arrays

Skew()

Returns the skew of the values in an array

SortArray()

Sorts the elements of an array

Std()

Computes the standard deviation of an array of numbers

Subarray()

Extracts a number of elements from an array

Sum()

Computes the sum of an array of numbers

TransposeArray()

Transposes an array of arrays, where element b[i][j] = a[j][i]

Var()

Returns the variance on an array of numbers

WriteArray()

Writes the elements of an array to a text file

WriteArraySeparated()

Writes the elements of an array to a file, separated by a delimiter

You can determine the length of an array using ArrayLength() or using the special syntax arrayname.length, as in:

n = names.length

ShowMessage ("There are " + String(n) + " names in the list")

Since you can concatenate arrays, you can increase the size of an array. Here an example, using array x from above:

x = { "New York", "Los Angeles", "Miami"}

y = { "Seattle", "Atlanta"}

x = x + y          // x[4] equals "Seattle"

If you change the original array, the array that it is concatenated to will also be changed:

y[2] = {"Chicago"}          // x[5] is now "Chicago" as well

To make a completely new copy of an array, use CopyArray().

You can build an array of any length at runtime by concatenating the desired number elements to the array. Note that a variable or array element must be placed in an array to do the concatenation:

window_array = GetWindows("All")       // returns an array containing three arrays

map_names = null                       // initialize the variable for the new array

for i = 1 to window_array[2].length do

     if window_array[2][i] = "Map"     // type in second sub-array, name in first

          then map_names = map_names + { window_array[1][i] }

     end

Also note that this is very inefficient if the array may be large and you can dimension the array first. This executes slowly:

slow_array = null

for i = 1 to 1000 do

     slow_array = slow_array + {i}

     end

This executes much faster:

dim fast_array[1000]

for i = 1 to fast_array.length do

     fast_array[i] = i

     end

For more information, see...

Working with Arrays

Options Arrays and Dot Notation

How Arrays Work

Array Methods

 

 

©2025 Caliper Corporation www.caliper.com