File Information
Macro Command File : Several
- Grid Calc macro to clip seam roof
- Grid Calc macro to clip seam roof (long version)
- Grid Calc startup macro for clip seam roof (long version)
- Grid Calc macroto create East-West Cross-section
- Grid Calc macro to create overburden bench surfaces
- Grid Calc macro to create no-coal polygons
- Grid Calc macro to create pinchouts
- Grid Calc startup macro for pinchouts
- Grid Calc macro to create multiple quality limits
- Grid Calc startup macro for multiple quality limits
Refer to the Rsvute documentation for an example of a Grid Calc macro used in reserving.
Grid Calc macro to clip seam roof:
! Filename: abc2clip.gdc_cmnd ! !A Grid Calc macro which clips a seam roof grid to a limiting surface (DOW.TP). ! ! Steps: ! 1. Set access specs to "ALL" ! 2. Take the minimum of DOW.TP & X.SR. ! 3. Take the maximum of Z (the results of step 2) & X.SF. ! 4. Save as the new Seam SR grid. ! 5. Subtract SF from SR to calculate a new seam thickness. ! 6. Mask the new SR, SF, and TK grids where thickness equals zero. access_specs/area="ALL"/access_specs !Seam C1 EDIT/EQUATION=min(dow.tp,c1.sr) EDIT/EQUATION=max(z,c1.sf) save c1.sr EDIT/EQUATION=c1.sr-c1.sf MASK/EQUATION='c1.tk gt 0' save c1.tk EDIT/EQUATION=c1.sf MASK/EQUATION='c1.tk gt 0' save c1.sf EDIT/EQUATION=c1.sr MASK/EQUATION='c1.tk gt 0' save c1.sr !Seam C2 EDIT/EQUATION=min(dow.tp,c2.sr) EDIT/EQUATION=max(z,c2.sf) save c2.sr EDIT/EQUATION=c2.sr-c2.sf MASK/EQUATION='c2.tk gt 0' save c2.tk EDIT/EQUATION=c2.sf MASK/EQUATION='c2.tk gt 0' save c2.sf EDIT/EQUATION=c2.sr MASK/EQUATION='c2.tk gt 0' save c2.sr !Seam D1 EDIT/EQUATION=min(dow.tp,d1.sr) EDIT/EQUATION=max(z,d1.sf) save d1.sr EDIT/EQUATION=d1.sr-d1.sf MASK/EQUATION='d1.tk gt 0' save d1.tk EDIT/EQUATION=d1.sf MASK/EQUATION='d1.tk gt 0' save d1.sf EDIT/EQUATION=d1.sr MASK/EQUATION='d1.tk gt 0' save d1.sr !Seam D2 EDIT/EQUATION=min(dow.tp,d2.sr) EDIT/EQUATION=max(z,d2.sf) save d2.sr EDIT/EQUATION=d2.sr-d2.sf MASK/EQUATION='d2.tk gt 0' save d2.tk EDIT/EQUATION=d2.sf MASK/EQUATION='d2.tk gt 0' save d2.sf EDIT/EQUATION=d2.sr MASK/EQUATION='d2.tk gt 0' save d2.sr !Seam E1 EDIT/EQUATION=min(dow.tp,e1.sr) EDIT/EQUATION=max(z,e1.sf) save e1.sr EDIT/EQUATION=e1.sr-e1.sf MASK/EQUATION='e1.tk gt 0' save e1.tk EDIT/EQUATION=e1.sf MASK/EQUATION='e1.tk gt 0' save e1.sf EDIT/EQUATION=e1.sr MASK/EQUATION='e1.tk gt 0' save e1.sr !Seam E2 EDIT/EQUATION=min(dow.tp,e2.sr) EDIT/EQUATION=max(z,e2.sf) save e2.sr EDIT/EQUATION=e2.sr-e2.sf MASK/EQUATION='e2.tk gt 0' save e2.tk EDIT/EQUATION=e2.sf MASK/EQUATION='e2.tk gt 0' save e2.sf EDIT/EQUATION=e2.sr MASK/EQUATION='e2.tk gt 0' save e2.sr !Seam H EDIT/EQUATION=min(dow.tp,h.sr) EDIT/EQUATION=max(z,h.sf) save h.sr EDIT/EQUATION=h.sr-h.sf MASK/EQUATION='h.tk gt 0' save h.tk EDIT/EQUATION=h.sf MASK/EQUATION='h.tk gt 0' save h.sf EDIT/EQUATION=h.sr MASK/EQUATION='h.tk gt 0' save h.sr !Seam I EDIT/EQUATION=min(dow.tp,i.sr) EDIT/EQUATION=max(z,i.sf) save i.sr EDIT/EQUATION=i.sr-i.sf MASK/EQUATION='i.tk gt 0' save i.tk EDIT/EQUATION=i.sf MASK/EQUATION='i.tk gt 0' save i.sf EDIT/EQUATION=i.sr MASK/EQUATION='i.tk gt 0' save i.sr
Grid Calc macro to clip seam roof (long version):
! Filename: abcclip2.gdc_cmnd ! ! !THIS MACRO IS APPLIED TO EACH SEAM BY RUNNING THE ABCSTARTCLIP2.GDC_CMND ! MACRO BY TYPING: @abcstartclip2.gdc_cmnd AT THE Grid Calc COMMAND LINE OR ! USING THE "INVOKE MACRO" COMMAND FROM THE MODELLING MENU. ! ! Description: ! A Grid Calc macro which clips a seam roof grid to a limiting surface, ! in this case, a burn (surface) grid - topob.tp. ! The x seam thickness is recalculated from the clipped structure grids. ! All the x seam grids are masked where each cell is greater than zero. ! ! Steps: ! 0. Set access specification (grid area coords and grid size) to "ALL" ! 1. Take the minimum of topob.tp & x.sr ! 2. Take the maximum of z (result of step 1.) & x.sf ! 3. Save as new x.sr ! 4. Subtract x.sf from s.sr to calculate new x.tk grid ! 5. Mask each of the seam grids <g>+0*mask(x.tk gt 0) access_specs/area="ALL"/access_specs ! Seam X EDIT/EQUATION=min(topob.tp,$1.sr) EDIT/EQUATION=max(z,$1.sf) save $1.sr EDIT/EQUATION=$1.sr-$1.sf save $1.tk edit $1.tk MASK/EQUATION='$1.tk gt 0' save $1.tk edit $1.sr MASK/EQUATION='$1.tk gt 0' save $1.sr edit $1.sf MASK/EQUATION='$1.tk gt 0' save $1.sf
Grid Calc startup macro for clip seam roof (long version)
!Filename: abcstartclip2.gdc_cmnd ! !This is an example of the macro used to start the abcclip2.gdc_cmnd macro. ! @abcclip2.gdc_cmnd c1 @abcclip2.gdc_cmnd c2 @abcclip2.gdc_cmnd d1 @abcclip2.gdc_cmnd d2 @abcclip2.gdc_cmnd e1 @abcclip2.gdc_cmnd e2 @abcclip2.gdc_cmnd h @abcclip2.gdc_cmnd i
Grid Calc macro to create East-West Cross-section
! Filename: abc_xsec_c1.gdc_cmnd ! ! ! Description: ! A Grid Calc macro to create an East-West Cross-Section through the ! ABC deposit at N3747275 which displays the small C1 seam area which still exists. ! Set the graphical display area by buffering a grid. EDIT/EQUATION=C1.TK ! Section Grids SECTION_GRIDS/TOPO_VARIABLE=SR/X_COORDINATE=(563054.367,564914.939)/STEP_SIZE=5/ ANNOTATIONS/ROOF_VARIABLE=SR/Y_COORDINATE=(3748275.18,3747585.55)/PATTERN_FILL=13/ ANNOTATION_HEIGHT=0.2/FLOOR_VARIABLE=SF
The above has been split over several lines for ease of reading only. Normally this information would all be entered as one line.
Grid Calc macro to create overburden bench surfaces
! Filename: demobenches.gdc_cmnd ! ! Part 1. Generate Overburden Bench Surfaces ! ! This macro generates the bench surface roofs for all Overburden Benches. ! Overburden benches are defined as OB2.SR (Base) then +/-n50. The OB2 ! bench grid was designed and used as the basis for overburden bench ! modelling. ! Naming as: demoob2.srg Base Overburden Bench ! demoob1.srg (demoob2.srg - 50) Overburden Bench 1 ! demoob3.srg (demoob2.srg + 50) Overburden Bench 3 ! --- and so on +/- 50 for all Overburden Benches to Bench 7. ! ! Note Each overburden bench will be defined by its crest grid, that is,, OB2 ! overburden has a crest grid named- "demoob2.srg". The toe grid is the ! crest grid of the horizon below, that is,, "demoob1.srg". For the OB3 bench, the ! crest grid is called "demoob3.srg"; the toe grid for OB3 is called ! "demoob2.srg", and so on. ! ! demoob2.srg is the original design Grid !!!! access_specs/area="ALL"/access_specs EDIT/EQUATION=ob2.sr-50 EDIT/EQUATION=max(z,a.sr) save ob1.sr EDIT/EQUATION=ob2.sr+50 save ob3.sr EDIT/EQUATION=ob3.sr+50 save ob4.sr EDIT/EQUATION=ob4.sr+50 save ob5.sr EDIT/EQUATION=ob5.sr+50 save ob6.sr EDIT/EQUATION=ob6.sr+50 save ob7.sr closegrids ! ! Part 2. Generate Overburden Bench Thickness Grids ! ! Subtract the Top surface from the Base surface to give the OB bench thickness. ! First: Take the Minimum of topo.tp and bench.sr ! Second: Take the maximum of "z-bench below.sr" & "0" (zero) ! Thirdly: Mask the grid where thickness = 0 ! Lastly: Save as bench.tk ! EDIT/EQUATION=min(topo.tp,ob1.sr) EDIT/EQUATION=max(z-a.sr,0) EDIT z+0*mask(z gt 0) save ob1.tk EDIT/EQUATION=min(topo.tp,ob2.sr) EDIT/EQUATION=max(z-ob1.sr,0) EDIT z+0*mask(z gt 0) save ob2.tk EDIT/EQUATION=min(topo.tp,ob3.sr) EDIT/EQUATION=max(z-ob2.sr,0) EDIT z+0*mask(z gt 0) save ob3.tk EDIT/EQUATION=min(topo.tp,ob4.sr) EDIT/EQUATION=max(z-ob3.sr,0) EDIT z+0*mask(z gt 0) save ob4.tk EDIT/EQUATION=min(topo.tp,ob5.sr) EDIT/EQUATION=max(z-ob4.sr,0) EDIT z+0*mask(z gt 0) save ob5.tk EDIT/EQUATION=min(topo.tp,ob6.sr) EDIT/EQUATION=max(z-ob5.sr,0) EDIT z+0*mask(z gt 0) save ob6.tk EDIT/EQUATION=min(topo.tp,ob7.sr) EDIT/EQUATION=max(z-ob6.sr,0) EDIT z+0*mask(z gt 0) save ob7.tk EDIT/EQUATION=max(topo.tp-ob7.sr,0) EDIT z+0*mask(z gt 0) save ob8.tk ! ! Part 3. Generate the Split Coal Horizon Grids. ! The B Seam is split according to mining constraints: ! B1 Seam is >= 5 feet and <= 65 feet thick. ! B2 Seam is >= 5 feet thick. ! ! First: Generate the B1 Seam SR, SF, and TK. ! B1.SR = B.SR ! B1.SF = Max(B.SR-65,B.SF+5) ! B1.TK = B1.SR-B1.SF ! ! Second: Generate the B2 Seam SR, SF, and TK. ! B2.SR = B1.SF ! B2.SF = B.SF ! B2.TK = B2.SR-B2.SF ! ! Third: Generate the B1 Midburden (Parting) thickness grid. ! B1P.TK=B1.MD = A.SF-B1.SR ! ! Fourth: Generate the A seam thickness grid ! A.TK = A.SR - A.SF ! ! FIRST EDIT/EQUATION=b.sr save b1.sr EDIT/EQUATION=b.sf+5 EDIT/EQUATION=max(b1.sr-65,z) EDIT/EQUATION=min(z,b1.sr) save b1.sf EDIT/EQUATION=b1.sr-b1.sf save b1.tk ! SECOND EDIT/EQUATION=b1.sf save b2.sr EDIT/EQUATION=b.sf save b2.sf EDIT/EQUATION=b2.sr-b2.sf save b2.tk ! THIRD EDIT/EQUATION=a.sf-b1.sr save b1.md EDIT/EQUATION=b1.md save b1p.tk ! FOURTH EDIT/EQUATION=a.sr-a.sf save a.tk
Grid Calc macro to create no-coal polygons
! Filename: abcnocoal_2.gdc_cmnd ! ! This macro must be run before any model manipulation ! on the raw model ! ! A Grid Calc macro which creates nocoal polygons for ! each seam in the ABC dataset, and automatically ! saves them into the Total.dgd database. access_specs/area="ALL"/access_specs DESIGN_DB_ACCESS/OPEN_DATABASE/AREA=TOTAL LOAD_MAPFILE/FILE=c1/VARIABLE=sf/XYZ EDIT/EQUATION=c1.sf POLYGON/LAYER=c1_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=c2/VARIABLE=sf/XYZ EDIT/EQUATION=c2.sf POLYGON/LAYER=c2_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=d1/VARIABLE=sf/XYZ EDIT/EQUATION=d1.sf POLYGON/LAYER=d1_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=d2/VARIABLE=sf/XYZ EDIT/EQUATION=d2.sf POLYGON/LAYER=d2_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=e1/VARIABLE=sf/XYZ EDIT/EQUATION=e1.sf POLYGON/LAYER=e1_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=e2/VARIABLE=sf/XYZ EDIT/EQUATION=e2.sf POLYGON/LAYER=e2_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=hw/VARIABLE=sf/XYZ EDIT/EQUATION=hw.sf POLYGON/LAYER=hw_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=ht/VARIABLE=sf/XYZ EDIT/EQUATION=ht.sf POLYGON/LAYER=ht_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=hu1/VARIABLE=sf/XYZ EDIT/EQUATION=hu1.sf POLYGON/LAYER=hu1_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=hu2/VARIABLE=sf/XYZ EDIT/EQUATION=hu2.sf POLYGON/LAYER=hu2_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=hu3/VARIABLE=sf/XYZ EDIT/EQUATION=hu3.sf POLYGON/LAYER=hu3_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=hl/VARIABLE=sf/XYZ EDIT/EQUATION=hl.sf POLYGON/LAYER=hl_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT LOAD_MAPFILE/FILE=i/VARIABLE=sf/XYZ EDIT/EQUATION=i.sf POLYGON/LAYER=i_nocoal/TD_FILE=td/PERCENT=50/TOLERANCE=-1/COINCIDENT_POINTS=0.01/MASK/PLOT
Grid Calc macro to create pinchouts
! Filename: abcpinch.gdc_cmnd ! ! Description: SECTION 2 - Syndepositional Pinchout ! ! ! THIS MACRO IS APPLIED TO EACH SEAM BY RUNNING THE ABCSTARTPINCH.GDC_CMND ! MACRO BY TYPING: @abcstartpinch.gdc_cmnd AT THE Grid Calc COMMAND LINE OR ! USING THE "INVOKE MACRO" COMMAND FROM THE MODELING MENU. ! ! A Grid Calc macro to pinch out seam thickness in an area identified ! as a syndepositional alteration to the seam structure. Final X seam ! grids will be unmasked for plotting on a cross-section for checking. ! ! Steps: ! As documented in the "Creating, Editing, and Using Grid Calc Macros" ! conference paper - Denver, 1996 - Contact your local MAPTEK office ! to obtain a copy. Comment lines ! are added in the ! macro at the appropriate points to describe the manipulation process. ! ! Note Only C1, C2, D1, and D2 seams have SYNDEPOSITIONAL PINCHOUTS. ! ! X Seam ! Buffer the x.tk, unmask, remask, and save. EDIT/EQUATION=$1.tk unmask MASK/DESIGN_DB=TOTAL/LAYER=(syn_$1) save $1.tk ! multiply the x.tk grid by its own mask value x.tk. (0 where thickness = 0) ! Then unmask and save. EDIT/EQUATION=$1.tk*(1-$1.tk.) unmask save $1.tk ! Unmask $1.sf and save. EDIT/EQUATION=$1.sf unmask save $1.sf ! Calculate a new $1 seam roof. EDIT/EQUATION=$1.sf+$1.tk save $1.sr
Grid Calc startup macro for pinchouts
!Filename: abcstartpinch.gdc_cmnd ! !This example macro is used to start the abcpinch.gdc_cmnd macro. ! @abcpinch.gdc_cmnd c1 @abcpinch.gdc_cmnd c2 @abcpinch.gdc_cmnd d1 @abcpinch.gdc_cmnd d2 @abcpinch.gdc_cmnd e1 @abcpinch.gdc_cmnd e2 @abcpinch.gdc_cmnd h @abcpinch.gdc_cmnd i
Grid Calc macro to create multiple quality limits
!Filename:abcqual_limits.gdc_cmnd ! ! DSR: 11/11/98 ! ! A Grid Calc macro which generates multiple quality limits for each seam. access_specs/area="ALL"/access_specs DESIGN_DB_ACCESS/OPEN_DATABASE/AREA=TOTAL EDIT/EQUATION=$1.as EDIT/EQUATION=$1.as CONTOUR/LEVEL=(12.0)/POLYGON/PLOT/LESS/SAVE=($1as12_lim,cont)/COLOUR=8/LINE_TYPE=0 CONTOUR/LEVEL=(10.0)/POLYGON/PLOT/LESS/SAVE=($1as10_lim,cont)/COLOUR=7/LINE_TYPE=0 CONTOUR/LEVEL=(8.0)/POLYGON/PLOT/LESS/SAVE=($1as8_lim,cont)/COLOUR=6/LINE_TYPE=0 EDIT/EQUATION=$1.su CONTOUR/LEVEL=(0.15)/POLYGON/PLOT/LESS/SAVE=($1su15_lim,cont)/COLOUR=5/LINE_TYPE=0 CONTOUR/LEVEL=(0.12)/POLYGON/PLOT/LESS/SAVE=($1su12_lim,cont)/COLOUR=4/LINE_TYPE=0 CONTOUR/LEVEL=(0.10)/POLYGON/PLOT/LESS/SAVE=($1su10_lim,cont)/COLOUR=3/LINE_TYPE=0
Grid Calc startup macro for multiple quality limits
! Filename: abcstartqual_limits.gdc_cmnd ! ! ! This macro starts the "abcqual_limits.gdc_cmnd" macro. @abcqual_limits.gdc_cmnd c1 @abcqual_limits.gdc_cmnd c2 @abcqual_limits.gdc_cmnd d1 @abcqual_limits.gdc_cmnd d2 @abcqual_limits.gdc_cmnd e1 @abcqual_limits.gdc_cmnd e2 @abcqual_limits.gdc_cmnd hw @abcqual_limits.gdc_cmnd ht @abcqual_limits.gdc_cmnd hu1 @abcqual_limits.gdc_cmnd hu2 @abcqual_limits.gdc_cmnd hu3 @abcqual_limits.gdc_cmnd hl @abcqual_limits.gdc_cmnd i