GIS Spatial Join
David Tennant 9 years ago in General • updated by Yan 9 years ago • 4
It would be great if one could do a spatial query whereby attributes from any given file can be joined with attributes of another file based on XYZ coordinates. This is not only useful for exploration but also for geotechnical applications. I currently use the ArcGIS Spatial Join function to perform these queries on triangle orientations so as to calculate apparent dips of various lithologies in relation to triangle orientations of design pit shells.
Customer support service by UserEcho
Assuming you have separate triangle orientation files for your lithologies and pit shells, and you are assigning the lithology triangle orientations to the pit shell triangles, here is how the two techniques would work:
- Use IDW to do the 3D equivalent of a point-in-polygon operation
- Create grid surfaces of dip and direction and then use Generate Z Values to estimate the orientations for the unknown locations
This technique will essentially copy the the nearest lithology triangle orientation to each pit shell triangle orientation. It is the closest approximation to an ArcGIS spatial join in Micromine, and has the advantage of being able to work with true 3D data.
- Convert the pit shell triangle (target) orientations file to a fake block model by creating temporary dimension fields. For example, if the coordinate fields are labelled X, Y and Z, the dimension fields would be _X, _Y and _Z. Fill them all with a small number such as 0.1.
- Set up Modelling | 3D Block Estimate | Inverse Distance Weighting so that the input file is your lithology (source) orientations file and the input and output block model files are the modified pit shell (target) orientations file.
- Set the "grade" fields to dip and direction.
- Use a really large search neighbourhood and set max points per sector to 1, with ONE sector. The power is irrelevant because there is only ever one point per neighbourhood.
- Delete the temporary dimension fields once you are done.
This technique is only appropriate if your data complies with the basic rule for DTMs and grid surfaces: that there is only ever one Z value at any X-Y location.
Assuming your data meets the DTM/grid requirement this technique will assign the interpolated lithology triangle orientations (which vary continuously across each grid surface). It is a bit simpler to set up than the IDW method, but because the grid surfaces are interpolated it won't honour the strict "join" of attributes (unless you use nearest neighbour when you create the grid surfaces).
- Use Grid | Create to produce a grid surface of the dip of the lithology triangles.
- Use it again to create a grid surface of the direction of the triangles.
- Use Grid | Generate Z Values to assign the lithology dip to the pit shell triangles.
- Use it again to assign the lithology direction to the pit shell triangles.
If this is a recurring task then both methods are classic candidates for automation via a macro or Python script.
Hope this helps.