Create Polygon Limits 
Use Create Polygon Limits to create no-coal polygons and an associated mapfile. You must have the grid model (for example, A.SF
) and the associated structural mapfile for that surface loaded. This tells the option which drillholes contain the horizon.
Note: Do not use Fixmap or quality mapfiles.
Instructions
On the Grid Calc menu, point to Contour and Limit Generation, and then click Create Polygon Limits to display the Polygon panel.
Save into layer
Enter the layer name to which the polygons will be saved. You will be asked for a design database if one is not already open.
Setup
Less than value
Select this option to create closed polygon(s) around all areas of the buffered grid less than the specified amount. Enter the less than value.
Greater than value
Select this option to create closed polygon(s) around all areas of the buffered grid greater than the specified amount. Enter the greater than value.
Total Depth Mapfile
Select this option to create polygons around each hole that pierces the surface, but is not contained in the original structural mapfile. Enter the name of the total depth mapfile. The DF (depth to floor) field is used to determine the length of the drillhole. It does not work for inclined holes.
Mapfile
The following options are only applicable iwhen using a total depth mapfile)
Format
This is the format of the DF column in a non-standard mapfile. Enter the Fortran format statement for the column.
Percent
The polygon is drawn at a specified distance between a hole that pierces the grid floor and one that does not. The Percent specifies where between the holes to draw the polygon. Fifty percent means half way, twenty five percent would create a smaller polygon at a quarter of the distance.
Tolerance
Enter the tolerance. This value specifies how close a hole must come to the surface before a polygon is generated. Zero means it must at least meet the surface. Three means that if it comes in 3 feet (or 3 metres) of the surface it will be considered to intersect the surface. Minus three means it must pass through the surface by at least 3 feet (or 3 metres) before a polygon is generated.
Hole spacing (in grid cell units)
Enter, in grid cell units, the hole spacing. This value specifies what tolerance to use for coincident holes. This is used to determine which holes are the same in the two mapfiles used (it does not rely on hole names), and can also be useful if you have cored holes and rotary holes that are close, where one may not be fully logged. For example, you may say that if a TD hole is in 1 grid cell of a modelled hole, ignore the TD hole.
Hole intersection mapfile ID
Enter an identifier for the mapfile that will be created. The (non-standard) mapfile contains information defining the intersection between the drillhole and the structure floor grid. If the drillhole pierces the floor of the horizon, a value of 1.000 is entered into the Status column. If the floor is not intersected by the drillhole, a 0.000 is computed. See below for an advanced macro and example mapfile that use this option to create limiting polygons for splitting seams.
Depth of weathering grid
Enter the name of a structure grid to ignore the seam where it goes above the DOW (Depth of Weathered) surface.
Ignore short holes
Select this check box to ignore those holes that are not deep enough to penetrate the seam. The option generates polygons half way between the holes that have the seam and those that do not. When a hole is not deep enough to penetrate the seam, there is no information and it is best to ignore it.
Ignore surface mask
Select this option to ignore the surface mask. When unticked holes falling in a masked area of the grid are disregarded.
Advanced
Display polygons
Select this check box to display the polygon(s) on the screen.
Don't save to layer
Select this check box if you do not want to save the polygons to a layer.
Mask grid
Select this check box to mask the buffered grid with the created polygons.
Click OK.
! Filename: doco_seam2exist.gdc_cmnd ! ! @seamexists2 <split1> vsplit2> <merge> <distance> ! ! ZU($1) ! Single Seam (Z) Split Environment; that is,, Z($3)< ! ZL($2) ! Description: ! ! This macro generates THREE complete and complimentary sets of polygonal ! SEAM LIMITS. The polygons for each seam are saved as EX_<seam> layers ! in the database TOTAL.DGD. ! ! An EXTRAPOLATION distance ($4) is also factored into the seam limit ! generation progress. This distance is the FARTHEST ALLOWABLE SEAM ! EXISTENCE from a drill hole intercept (as found in the seam mapfile). ! ! This macro also produces a GRID to be used soley as a MASKING grid for ! the entire GEOLOGICAL model. A SEAM LIMIT polygon is generated, by ! contouring the 0.5 MASK VALUE (half way between 0(masked) and 1(unmasked) ! from the SEAM EXIST grid). The "masking" grids are saved using the MK ! variable, that is,, <seam>.mk, and the mask polygons are named ex_<seam>. ! STEP I - Create a temporary seam split grid for the upper split - zeros on ! the merged side, ones everywhere else. ! 1) Load the full seam ($3) mapfile data for the SF. Load ONLY the XY data. ! This causes the Z value to be set to zero. ! 2) APPEND the upper split ($1) mapfile data for the SF. Load the XYZ data. ! This loads the unaltered floor values. ! 3) APPEND the lower split ($2) mapfile data for the SF. Load the XYZ data. ! This loads the unaltered floor values. ! 4) Edit ANY grid to define the graphics area. ! 5) Transform the 2 data sets with the TRUE/FALSE equation. This alters the ! loaded mapfile data to contain only zero and one values. "p gt 0" changes ! all points with values greater than zero to "1" and leaves all other ! points set to zero. ! 6) The user defined method(EXIST)should utilize the inverse distance modelling ! method, use only one point, have zero trend, smooth, and use model the ! boundary polygon as the mask. ! 7) Temporarily save the grid as: temp.sp. LOAD_MAPFILE/FILE=$3/VARIABLE=sf/XY LOAD_MAPFILE/FILE=$1/VARIABLE=sf/XYZ/APPEND LOAD_MAPFILE/FILE=$2/VARIABLE=sf/XYZ/APPEND EDIT/EQUATION=topo.tp TRANSFORM_DATA/EQUATION='p gt 0' MODEL/USER_DEFINED/METHOD=EXIST/GRID_SIZE=50 save temp.sp !------------------------------------------------------------------------------ ! STEP II - Generate an IN/OUT mapfile "<proj><seam>x.map" for the upper ! split ($1), representing where the seam DOES and DOES NOT exist. ! 1) Load the structure floor grid for the upper split. ! 2) Load the upper split ($1) mapfile data for the SF. Load the XYZ data. ! This loads the unaltered floor values. ! 3) APPEND the full seam ($3) mapfile data for the SF. Load the XYZ data. ! This loads the unaltered floor values. ! 4) Utilize the Graphics/Polygon option to create an IN/OUT mapfile. ! The new IN/OUT option searches outwardly from each grid node until it ! finds it's closest DRILLHOLE neighbor. The option then assigns a zero or ! a one the node, depending on whether or not the closest drillhole ! has the designated seam or not. Name the mapfile: <proj><seam>x.map. EDIT/EQUATION=$1.sf LOAD_MAPFILE/FILE=$1/VARIABLE=sf/XYZ LOAD_MAPFILE/FILE=$3/VARIABLE=sf/XYZ/APPEND POLYGON/TD_FILE=td/NOSAVE/PLOT/IN_OUT_MAPFILE_ID=$1x !------------------------------------------------------------------------------ ! STEP III - Use the "X" mapfile generated above to create a SEAM EXIST grid. ! 1) Load the upper split($1x) IN/OUT mapfile data for the SF. Load the XYZ ! data. ! 2) Use the "EXIST" method to model the mapfile data. The "EXIST" method ! will automatically smooth the grid. ! 3) Mask the new SEAM EXIST GRID with the SPLIT LINE GRID: "temp.sp". This ! shows where the horizon does not exist and where the horizons split. ! 4) Load the upper split ($1) XYZ mapfile data for the SF and mask the GRID ! from above with the Extrapolation Distance ($4) from each drillhole. ! 5) Save resultant grid as <seam>.mk for later GEOMODEL masking. LOAD_MAPFILE/FILE=$1x/VARIABLE=sf/XYZ MODEL/USER_DEFINED/METHOD=EXIST/GRID_SIZE=50 MASK/AREA_MASK/EQUATION='z gt 0.5 and temp.sp gt 0.5' LOAD_MAPFILE/FILE=$1/VARIABLE=sf/XYZ MASK/DISTANCE=$4 save $1.mk !------------------------------------------------------------------------------ STEP IV - Generate and save a seam EXIST polygon from the <seam>.mk grid. ! 1) Open an existing design database for saving the polygons. ! 2) Delete any pre-existing layer named: ex_<seam>. ! 3) Use the Graphics/Contour option to generate a grid mask and a closed ! contour(polygon) which is half the distance between zero(masked) and ! one(unmasked). Layer name is: ex_<seam>. ! 4) Close the design database. DESIGN_DB_ACCESS/OPEN_DATABASE/AREA=TOTAL DESIGN_DB_ACCESS/DELETE_LAYER/LAYER_AND_OBJECT=(ex_$1) CONTOUR/LEVEL=(0.5)/MASK/POLYGON/PLOT/GREATER/SAVE=(ex_$1,cn0.5) DESIGN_DB_ACCESS/CLOSE_DATABASE !------------------------------------------------------------------------------ ! STEP V -- model the lower split, $2 ! Generate an IN/OUT mapfile "<proj><seam>x.map". (See STEP II above) EDIT/EQUATION=$2.sf LOAD_MAPFILE/FILE=$2/VARIABLE=sf/XYZ LOAD_MAPFILE/FILE=$3/VARIABLE=sf/XYZ/APPEND POLYGON/TD_FILE=td/NOSAVE/PLOT/IN_OUT_MAPFILE_ID=$2x ! Use the "$2x" mapfile to create a "SEAM EXIST" grid. (See STEP III above) LOAD_MAPFILE/FILE=$2x/VARIABLE=sf/XYZ MODEL/USER_DEFINED/METHOD=EXIST/GRID_SIZE=50 ! Mask with the pre-existing Split Line Grid: "temp.sp" (See STEPS I & III) MASK/AREA_MASK/EQUATION='z gt 0.5 and temp.sp gt 0.5' ! Mask with $4 Extrapolation Distance. LOAD_MAPFILE/FILE=$2/VARIABLE=sf/XYZ MASK/DISTANCE=$4 ! Save resultant grid as <seam>.mk for later GEOMODEL masking. save $2.mk ! Generate a seam EXIST polygon (See STEP IV above) DESIGN_DB_ACCESS/OPEN_DATABASE/AREA=TOTAL DESIGN_DB_ACCESS/DELETE_LAYER/LAYER_AND_OBJECT=(ex_$2) CONTOUR/LEVEL=(0.5)/MASK/POLYGON/PLOT/GREATER/SAVE=(ex_$2,cn0.5) DESIGN_DB_ACCESS/CLOSE_DATABASE !------------------------------------------------------------------------------ ! STEP VI -- model the full merged portion of the seam ($3). ! Generate an IN/OUT mapfile "sm98<seam>x.map" EDIT/EQUATION=$3.sf LOAD_MAPFILE/FILE=$3/VARIABLE=sf/XYZ LOAD_MAPFILE/FILE=$1/VARIABLE=sf/XYZ/APPEND LOAD_MAPFILE/FILE=$2/VARIABLE=sf/XYZ/APPEND POLYGON/TD_FILE=td/NOSAVE/PLOT/IN_OUT_MAPFILE_ID=$3x ! Use the "3x" mapfile data to create a seam EXIST grid. LOAD_MAPFILE/FILE=$3x/VARIABLE=sf/XYZ MODEL/USER_DEFINED/METHOD=EXIST/GRID_SIZE=50 ! Mask with Split Line Grid: "temp.sp" MASK/AREA_MASK/EQUATION='z gt 0.5 and temp.sp le 0.5' ! Mask with Extrapolation Distance. LOAD_MAPFILE/FILE=$3/VARIABLE=sf/XYZ MASK/DISTANCE=$4 ! Save resultant grid as <seam>.mk for later GEOMODEL masking. save $3.mk ! Generate a seam EXIST polygon DESIGN_DB_ACCESS/OPEN_DATABASE/AREA=TOTAL DESIGN_DB_ACCESS/DELETE_LAYER/LAYER_AND_OBJECT=(ex_$3) CONTOUR/LEVEL=(0.5)/MASK/POLYGON/PLOT/GREATER/SAVE=(ex_$3,cn0.5) DESIGN_DB_ACCESS/CLOSE_DATABASE CLOSEGRIDS
! Filename: docostartseam2exist.gdc_cmnd ! ! DSR:11/11/98 ! ! This macro starts the "doco_seam2exist.gdc_cmnd" macro. ! $4 is equal to 100 metres. @doco_seam2exist.gdc_cmnd hw 100 @doco_seam2exist.gdc_cmnd ht 100 @doco_seam2exist.gdc_cmnd hl 100
Below is the resultant in/out mapfile. Column 6 indicates the depth from collar to intersection of drillhole and SF. Column 7 indicates how far it is from the intersection to TD. Column 8 indicates the structural depth at intersection. Column 9 shows if a seam is present (1= present, 0 = absent).
* ID | LX | LY | HZ | LC | C2 | C3 | SR | SF | * Hole | Easting | Northing | Seam | Collar|DIntsct| Miss | Intsct| Status| DH001 564253.000 3748074.000 236.430 3.069 54.461 233.361 0.000 DH002 564436.000 3748074.000 254.230 14.115 61.185 240.115 1.000 DH003 564070.000 3748074.000 220.800 -6.694 60.944 227.494 1.000 DH004 564985.000 3747891.000 240.550 37.793 54.867 202.757 0.000 DH005 563887.000 3747891.000 216.160 1.785 57.195 214.375 0.000 DH006 564070.000 3747891.000 218.720 -6.312 52.033 225.033 1.000 DH007 564438.000 3747891.000 228.300 -19.942 50.902 248.242 1.000 DH008 564619.000 3747891.000 224.760 -8.574 48.804 233.334 1.000 DH009 563887.000 3747708.000 210.920 -4.931 53.391 215.851 1.000 DH010 564619.000 3747708.000 230.400 9.855 49.885 220.545 1.000 DH011 564802.000 3747708.000 238.510 28.138 55.072 210.372 1.000 DH012 564070.000 3747708.000 214.820 -26.623 47.193 241.443 1.000 DH013 564436.000 3747708.000 223.020 -15.056 48.356 238.076 1.000 DH014 564070.000 3747526.000 220.830 -13.4 46.792 234.222 1.000 DH015 564802.000 3747526.000 240.490 31.150 50.970 209.340 1.000 DH016 564802.000 3747343.000 247.680 29.416 64.014 218.264 1.000 DH017 564253.000 3747708.000 224.490 -14.631 50.341 239.121 1.000 DH018 564619.000 3747343.000 243.810 24.224 50.296 219.586 1.000 DH019 564436.000 3747526.000 234.540 6.584 48.446 227.956 0.000 DH020 564436.000 3747343.000 232.140 4.900 51.790 227.240 0.000 DH021 564253.000 3747526.000 230.310 -12.685 49.235 242.995 1.000 DH022 564253.000 3747343.000 224.490 -9.458 47.258 233.948 1.000 DH023 564070.000 3747343.000 222.230 -16.965 45.315 239.195 1.000 DH024 563796.000 3747343.000 214.880 2.037 45.103 212.843 0.000 DH025 563979.000 3748257.000 235.670 35.241 53.429 200.429 1.000 DH026 563796.000 3747526.000 213.000 9.511 51.909 203.489 1.000 DH027 563887.000 3748074.000 230.900 47.621 32.949 183.279 1.000 DH028 564162.000 3747160.000 218.470 -12.449 48.489 230.919 1.000 DH029 564527.000 3747160.000 241.510 22.881 47.829 218.629 1.000 DH030 564345.000 3746794.000 232.250 -6.427 49.097 238.677 1.000 DH031 564345.000 3746977.000 235.900 16.992 35.588 218.908 0.000 DH032 564162.000 3746428.000 217.530 -9.166 52.446 226.696 1.000 DH033 563979.000 3746794.000 214.140 -5.522 47.732 219.662 1.000 DH034 564162.000 3748257.000 229.450 6.268 57.912 223.182 0.000 DH035 564527.000 3748257.000 258.070 20.370 60.300 237.700 0.000 DH036 564527.000 3748074.000 261.270 14.592 48.198 246.678 0.000 DH037 564756.000 3747882.000 229.210 8.652 47.348 220.558 0.000 DH038 564992.000 3747688.000 248.500 48.389 58.741 200.111 0.000 DH039 564223.875 3747859.250 230.200 -21.724 50.324 251.924 1.000 DH040 563922.500 3746648.250 203.900 -6.727 52.727 210.627 1.000 DH041 564965.812 3747499.250 250.000 54.519 55.671 195.481 0.000 DH042 565064.000 3747602.000 258.200 76.840 54.260 181.360 0.000 DH043 563896.000 3747160.000 199.400 -25.178 47.178 224.578 1.000 DH044 563896.000 3746977.000 208.100 -12.061 49.811 220.161 1.000 DH045 564790.000 3747186.000 258.500 48.394 45.696 210.106 0.000 DH046 564096.000 3746977.000 218.700 -5.659 46.459 224.359 1.000 DH047 563707.312 3747162.000 212.800 2.595 48.755 210.205 0.000 DH048 564096.125 3746794.000 221.900 -4.817 52.417 226.717 1.000 DH049 563996.000 3746428.000 214.700 -1.684 53.684 216.383 1.000 DH050 563679.875 3746977.250 196.600 -12.394 50.894 208.994 1.000 DH051 563796.000 3746428.000 216.300 5.189 55.451 211.111 0.000 DH052 563696.000 3746794.000 197.700 -8.170 51.170 205.870 1.000 DH053 563379.125 3746428.000 200.600 -5.683 54.093 206.283 1.000 DH054 563496.000 3746611.000 196.500 -0.886 50.126 197.386 1.000 DH055 564319.375 3746611.000 223.900 -8.062 48.262 231.962 1.000 DH056 563696.000 3746611.000 203.500 -2.830 48.580 206.330 1.000 LMW36C 564575.000 3747500.000 230.400 9.992 49.748 220.408 1.000 ONE 564250.000 3747250.000 218.470 -13.024 43.954 231.494 1.000