Grid File Utilities
This command is used to modify and create grid files. The
modifications can be done manually on a single grid, on multiple
grids in a batch mode or saved and rerun using the grid macros. To
modify manually, start by picking the Select Grid(s) button. There
is an option to use inclusion and exclusion polylines to only
modify the grid within/outside these perimeters. With this option
active, the program will prompt for inclusion and exclusion
polylines when a function is selected. Only grid cells inside the
inclusion polylines will be modified. Grid cells inside the
exclusion polylines will not be modified. If no inclusion and
exclusion polylines are selected, then the entire grid will be
modified. Each function is described below.
- Max Value: Compares a
grid and a value and takes the Maximum value of either. This is a
way to stop a grid from going negative, below zero.
- Max Grids: Compares a
grid with another grid and takes the Maximum (higher) value of
either.
- Min Value: Compares a
grid and a value and takes the Minimum value of either. This is a
good way to cap a grid off at a certain value so it never goes
higher than the specified value.
- Min Grids: Compares a
grid with another grid and takes the Minimum (lesser) value of
either.
- Less Value: Asks for a
value to compare and a value to assign and uses the following
logic:
If GridA < compare_value then GridA =assign_value, otherwise no
change
- Less Grids: Asks for a
grid to compare and a grid to assign and uses the following
logic:
If GridA < compare_GridB then GridA = GridC, otherwise no
change
- Greater Value: Asks for
a value to compare and a value to assign and uses the following
logic:
If GridA > compare_value then GridA =assign_value, otherwise no
change
- Greater Grids: Asks for
a grid to compare and a grid to assign and uses the following
logic:
If GridA > compare_GridB then GridA = GridC, otherwise no
change
- Add Value: Adds an
entered value to the grid values. (GridA + X)
- Add Grid: Adds one grid
to another grid. (GridA + GridB)
- Subtract Value:
Subtracts an entered value from the grid values. (GridA - X)
- Subtract Grid:
Subtracts one grid from another grid. (GridA - GridB)
- Multiply Value:
Multiplies the grid values by an entered value. (GridA * X)
- Multiply Grid:
Multiplies the grid values by another grid. (GridA * GridB)
- Divide Value: Divides
the grid values by an entered value. (GridA / X)
- Divide Grid: Divides
the grid values by another grid. (GridA / GridB)
- Power Value: Raises the
grid values to the specified power. (GridA squared, or Grid A to
the 1.8 power)
- Power Grid: Raises the
grid values to another grid for the "power". (GridA raised to
GridB)
- Change Units: Scales
the grid X/Y and/or Z values to switch units such as meters to
feet.
- Set Value: assigns the
grid elevations to the user-specified value. For example by using
Set Value with the inclusion perimeter option, you could set the
grid values to 0.0 within the inclusion polyline for a strata
thickness grid. The four options are Value to Value which will set
all values to one value, Null to Value, which will set all Nulls to
one value, Null to Grid, which will set all Nulls to another
specified grid and Value to Null, which will set all values to
Null. Using inclusion and exclusion perimeters are usually required
for this command.
- Extrapolate: can be
used to assign values to all grid nodes by any of four methods.
Global Trend finds the average slope and slope direction from the
existing grid elevations and applies this slope to calculating the
missing elevations. Average method calculates a grid elevation as
the average of its nearest neighbors. Projected method extends the
trend at the edge. Combined method uses both Average and
Projected.
- Change Position: This
lets you change the lower left and upper right corners of the grid
file. For example, you can use this routine to localize a grid file
if you have a large grid for the entire site but are currently
working on a smaller area. If the new position covers area outside
the original position, any grid cells in this area will be assigned
a null value. Otherwise the program uses the original grid values
for the new grid position.
- Change Resolution: This
changes the grid resolution (number or dimensions of grid cells).
The program uses the original grid values for calculating the grid
values at the new resolution. Enter a new value for X and Y number
of cells or dimensions of cells.
- Match Dimensions: Sets
the grid position and resolution to match another grid file. The
program will prompt for a grid file to get the position from.
Certain commands require grids match position and resolution.
Running this command will ensure grids will match.
- Smooth Grid: Smoothing
applies a quadratic smoothing algorithm to the grid by using
neighboring nodes to adjust each grid node. This routine can be
used to refine a grid so that the contours from the Contour from
Grid routine appear smoother. Typically this adjustment is
relatively small. To get more smoothing, run the routine more
times.
- Plot Grid: This runs
the Draw 3D Grid command. It is documented elsewhere in the
manual.
- Export Grid: There are
several choices for export options: Carlson Coordinate File (CRD),
ASCII text as XYZ, ASCII text as YXZ, DTM, Carlson Triangulation
(TIN) and Esri (ASC). There are two options for the ASCII
delimiter, either a comma or a space. There is an option to skip a
number of rows and columns between the exported points. When
exporting into the Carlson CRD file, the description for the points
is set at the bottom.
Export to DTM writes the current grid file to a DTM format text
file. The format of this file is the following:
DTM 1.0 Header Line
test.dtm
Name of file
51
Number of cells in X direction
51
Number of cells in Y direction
79442.4697 Lower left grid corner Y
coordinate
14899.0326 Lower left grid corner X
coordinate
0.0
Lower left grid corner Z coordinate
11.5618
Dimension of cell in X direction
7.0639
Dimension of cell in Y direction
1581.2612 Grid cell
values starting from lower left, moving from left to right
1580.8879
1580.3257
etc...
- Merge Grids: creates a
grid file by merging together two existing grid files, grid1 and
grid2. The current grid is grid1 and the program will prompt for a
second grid. These two grids must overlap with the same location
and resolution. The inclusion and exclusion perimeters apply to
grid2 such that the merged grid will consist of grid2 cells within
the inclusion perimeters and outside the exclusion perimeters and
grid1 cells everywhere else. The result is stored in the current
grid.
- Import Grid: There are
several formats that may be imported.
-
- Text File (ASCII): This function allows for various formats.
The data can be comma or space separated or in fixed width
columns.
- Carlson Triangulation (TIN, FLT)
- DEM (Digital Elevation Model) such as from the USGS (US
Geological Survey)
- Esri (ADF)
- Minex (ASC, CSV)
- Mintec
- Surfer (GRD both ASCII and Binary)
- Vulcan (ASC, CSV)
Import from Text File
(X, Y, Z) creates a grid file from X Y Z data in any text
file. There does not need to be a current grid file loaded since
this routine will create a grid file. The text file should consist
of one X Y Z coordinate per row with the first coordinate being the
lower left grid corner and the last coordinate as the upper right
grid corner. There are options for space or comma separated
coordinates and for the order of the coordinates as either row
(left to right) or column (bottom to top). The prompting will be as
follows:
Separation type [<Space>/Comma/FixedWidth]?
Column number for X coordinate <1>:
Column number for Y coordinate <2>:
Column number for Z value <3>:
Import from Triangulation
prompts user to select a tin or flt file and allows user to adjust
grid position and resolution. The grid file is created with the
same name in the same directory as selected tin/flt
file.Import DEM/ESRI
prompts user to select a dem, adf or ASCII ESRI grid file to be
imported. The ESRI grid files can be created from ArcMap using the
Raster To ASCII tool. If the file format is recognized program
reads and displays the information about source projection and
allows user to define target projection for transforming the grid
to local coordinate system. Skip every # rows/cols allows user to
reduce the size of the imported grid file. The grid file is created
with the same name in the same directory as selected dem
file.
Import Mintec allows user to import Mintec GSM Model Dump as grd files. User is prompted to select GSM Model Dump
(txt) file, which is then processed to determine minimum northing,
easting (lower left corner), resolution and size of the grid. First
three columns of the GSM model dump must represent the X, Y and
SEAM LEVEL respectively, a base name for the grid files is
specified along with name of the quality that each column
represents. User can define up to 17 qualities. When the import
button is pressed all the imported grids are created with the name
"BASE NAME-SEAM LEVEL-BASE ITEM.grd" in the same directory as
source dump file.Import
Surfer prompts to select a grd file from Surfer program and
creates a grd file.
- List Grid: displays a
list of the northing, easting and elevation of each grid corner.
There is an option to Include NULL values in the list. A grid node
will have no value, or a Null value, listed as None, if the grid
node was outside the limits of the data during Make 3D Grid
File.
- Spreadsheet: displays
the grid elevations in a row and column spreadsheet that is in the
same layout as the grid file. Grid elevations can be edited in this
spreadsheet and saved upon exiting the spreadsheet.
- Select Grid(s): This is
the first step to load a grid. Usually a grid needs to be loaded
before running a function. If Batch Process Grids is turned on,
then multiple grids may be selected while holding down the Shift or
CTRL buttons.
- Grid Info: This
function displays information about the grid file. It is a form of
Grid Statistics. The items it displays are shown in the report
below:
- Macro Command Recorder:
If there is a grid function that is done over and over again,
or for many different grids, then this Macro Recorder is an
efficient way to perform Grid File Utilities on many files, for
many functions.
The Macro Command Recorder allows you to store the grid
modifications steps to a (.GFU) file. The macro can be recalled
with the LOAD button to re-run the steps. The Record button will
prompt for a macro file name to create. Then start choosing grid
function buttons and each grid file function will be stored to this
file. Each grid file in the script is represented as a variable
name such as A or B or anything, such as COALTHK. The current grid
file that is being modified is specified in the Current Variable
edit box.
When recording a step that involves another grid file, there are
three options for storing this grid into the script. Use Grid
Variable will use the grid assigned to the Grid Variable Name.
Prompt for Grid File Name will bring up a grid file selection
dialog each time the macro is run. Store the Grid File Name will
save the specific grid file name into the macro.
To start the recording process, choose Record. Then go through the
functions. Each will appear in the macro window. When done
recording, choose Stop. The Append will add on to the end of an
existing GFU file. Load will recall a save GFU file. Run will
execute the Macro, and Edit will bring the text editor up for
editing the GFU file. If Copy, Paste, Search and Replace are useful
tools here. Sometimes it helps to record a function once, then copy
and paste it many times while using the Search and Replace function
to change grid file names etc. Additional explanation of the proper
syntax is shown below in the GFU Macro File Details section.
- Auto Extrapolate On
Load: This will extrapolate values for any null or empty
values in the grid as the grid is loaded.
- Use Inclusion/Exclusion
Areas: If this is turned on, then the GFU function will only
be applied within the selected inclusion polyline and outside the
selected exclusion polyline.
- Batch Process Grids:
When this option is turned on, GFU functions can be executed on
many grids at once. It is recommended to move the grids to a backup
directory, or create a copy of them, as the grids are over-written
with the same name. The functions that cannot be batched are: Plot
Grid, Merge Grid, List Grid, Export Grid, Import Grid and
Spreadsheet.
GFU Macro File
Details
The Surface Macro Launcher displays the GFU in the upper left
window. This is an editor, and you can use basic functions like
CTRL-X, CTRL-C & CTRL-V for cut, copy & paste. If there are
any errors in the GFU during its execution, they will be displayed
in the error log section. The Values Drilldown is a good way to do
error checking on the macro. Use the Pick button to select a spot
in plan view to fill in the Northing and Easting boxes. Then when
the GFU is executed, the results of each line will be displayed.
The Verbose Output will show the value of each line L1, L2, etc.,
instead of overwriting the variable each time it is encountered.
GFU files also can be edited easily in any text editor, such as
Notepad, WordPad or K-Edit.
Variables
Variables in the GFU can be any keywords providing meaningful
identification of the data loaded. A variable can be either just a
value or constant; or most commonly a surface (Grid or TIN).
Individual macro lines typically have one of the following
forms:
Variable1=Variable2
Variable1=Expression
Variable1=Function(Expression1,Expression2)
Whenever new variable name is encountered on the left side of the
equation, the new variable will be created. The program will use
its knowledge of the right side of equation to define a type of the
new variable. For example:
A=1.0
Variable A
will be just a value
A=LoadFrom(abc.grd)
Variable A is a grid loaded from file
B=A
Variable B is same variable type as A
B=(1+C+A)/D
Variable B will be 1+C+A, all divided by D. C
and D will need to be defined somewhere before this line in the
GFU.
Important!: Once a variable is defined, its type (like grid
location and resolution) does not change. Therefore, for the
existing variable A, the following expression:
A=Min(B,C)
is interpreted in the following way: for every point of the
existing surface A calculate values of surface B and C and use the
smaller of the two values to set new value of point elevation on
surface A.
The following operators may be used in the expressions:
+, -, *, / - regular arithmetic operators
<, >, =, ! (not) - logic operators
| (or), & (and) - binary operators
Changing the scope of the
equation
The scope of any line of the script can be modified by adding one
of the following inclusion/exclusion operators:
A=Min(B,C);INCLU()
- will prompt for inclusion at run-time
A=Min(B,C);INCLU(handle_here) - will
use AutoCAD entity with specified handle for the inclusion
A=Min(B,C);EXCLU() - will prompt for
exclusion at run-time
A=Min(B,C);EXCLU(handle_here) - will
use AutoCAD entity with specified handle for the exclusion
A=Min(B,C);PERIM() - will prompt for
polyline file with inclusions/exclusions
A=Min(B,C);PERIM(file_name) - will
use specified file with inclusions/exclusions
Multiple inclusions or exclusions can be appended in this manner.
Only points of target surface (A) passing inclusion/exclusion
filter will be evaluated.
For custom, user define prompting, the following text should be
used:
PERIM(,Prompt goes here) for user defined
interactive inclusion and exclusion selection in CAD
PERIM(*,Prompt goes here) for file selection
dialog with user defined prompts to select a PLN file.
The following script
functions are currently defined:
Macro functions (performing operations on the entire surface at
once)
LOAD() Prompt user for the file to load. Returns a variable.
LOAD(,Prompt goes here) for user defined prompting
LOADFROM(string) Load surface from file. Grids (GRD) and TINs (FLT,
TIN) are supported. Returns a variable.
SAVE(Variable) Saves surface back to original file.
SAVEAS(Variable,FileName) Saves surface into a file with given
name.
RELEASE(Variable) Releases memory used by a surface and
undefines it for further use.
EXTRAP(Variable[,Type])
Micro functions (taking effect on point by point basis as
controlled by left side of the equation) Expressions can be complex
ones with variables, value and functions
MAX(Expresson1,Expression2) Sets value to larger of two expressions
evaluated.
MIN(Expresson1,Expression2) Sets value to smaller of two
expressions evaluated.
LESS(Expression1,Expression2,Expression3) If result of Expression1
is less than Expression2 then result is Expression3. Otherwise the
source point is not changed. If Expression3 is not specified value
is set to NULL.
GREATER(Expression1,Expression2,Expression3) If result of
Expression1 is greater than Expression2 then result is Expression3.
Otherwise the source point is not changed. If Expression3 is not
specified value is set to NULL.
IF(Expression1,Expression2,Expression3) If Expression1 (can be
logic expression like (A+B)>C or A=B or A!B 'not equal') not 0
then result is Expression2, otherwise it is Expression3.
POW(Expression1,Expression2) Result is value of Expression1 in
power of Expression2
MERGE(Expression1,Expression2) If Expression2 is valid at a point,
then result is that value, otherwise it is value of Expression1
SET_NULL(Expression1,Expression2) If Expression1 is valid at a
point, then result is that value, otherwise it is value of
Expression2
CHANGE_RANGE_VALUE(Expression1, Range1, Range2, Expression2) If
Expression1 is a valid point and its value is greater than equal to
Range1 and less than equal to Range2, then result is Expression2.
If Expression2 is not specified value is set to NULL.
Here is an example of a complex IF statement used for coal recovery
based on thickness of the seam:
COALTHK=LoadFrom(C:\Carlson Projects\Grids\C40_THK.GRD);
ROM_COAL=COALTHK
ROM_COAL=if((COALTHK<2)|(COALTHK=2),COALTHK - (COALTHK *
0.50),ROM_COAL)
ROM_COAL=if(((COALTHK<4)|(COALTHK=4))&(COALTHK>2),COALTHK
- (COALTHK * 0.10),ROM_COAL)
ROM_COAL=if((COALTHK<7)&(COALTHK>4),COALTHK - (COALTHK *
0.075),COALTHK - (COALTHK * 0.05))
SaveAs(ROM_COAL, C:\Carlson Projects\Grids\C40_ROM_THK.GRD)
Pulldown Menu Location: Surface
Keyboard Command: GFU
Prerequisite: Make a grid (.GRD) file with the Make 3D
Grid File command.