Lineament Mapping from Airborne Gravity & Magnetic Data and its Application in Mineral Exploration¶
Table of Contents¶
- Introduction
- Airborne Gravity & Magnetic Data
- Lineament Mapping Techniques
- Application in Mineral Exploration
- Conclusion
Introduction¶
Lineament mapping is a geophysical technique used to identify linear features on the Earth's surface, such as faults, fractures, and geological boundaries. These features can be indicative of underlying structures that influence the distribution of mineral deposits. Airborne gravity and magnetic data are critical tools in this process, as they provide high-resolution insights into the subsurface geological structures over large areas.
Airborne Gravity & Magnetic Data¶
- Airborne Gravity Data: Measures variations in the Earth's gravitational field. These variations are influenced by changes in rock density, which can be associated with geological structures like faults and folds.
- Airborne Magnetic Data: Records variations in the Earth's magnetic field caused by the magnetic properties of underlying rocks. Magnetic anomalies often highlight the presence of ferromagnetic minerals such as magnetite, which can delineate geological structures like dykes, sills, and faults.
Lineament Mapping Techniques¶
1. Data Acquisition¶
Airborne surveys are conducted using aircraft equipped with gravity and magnetometer sensors to collect data over the study area.
2. Data Processing¶
The raw gravity and magnetic data are processed to remove noise and correct for factors such as topography and instrument drift.
3. Filtering and Enhancement¶
Techniques like upward continuation, horizontal derivative filters, and tilt derivative are applied to enhance linear features in the data.
4. Lineament Detection¶
Automated and manual methods are used to detect and delineate lineaments from the enhanced data. This may include edge-detection algorithms, directional filters, and visual interpretation.
5. Integration with Geological Data¶
The identified lineaments are correlated with known geological maps and data to validate the results and gain insights into subsurface structures.
Application in Mineral Exploration¶
Identifying Structural Controls¶
Faults and fractures identified through lineament analysis can act as conduits for hydrothermal fluids, which are often associated with mineral deposits such as gold, copper, and rare earth elements.
Mapping Lithological Boundaries¶
Changes in magnetic susceptibility and density help delineate different rock types, aiding in the identification of host rocks and mineral-bearing formations.
Targeting Exploration Areas¶
Lineament maps provide a cost-effective method to focus exploration efforts by highlighting areas with favorable structural conditions for mineralization. Lineament maps can be valuable in targeting exploration areas, as they help identify zones where structural conditions are conducive to mineral deposits. Some mineral deposits tend to be found along lineaments—linear or curvilinear features on the Earth's surface—often aligned in a particular orientation. These lineaments, which could represent faults, fractures, or other structural discontinuities, serve as pathways for hydrothermal fluids or host rocks that are favorable for mineralization. By mapping these lineaments, geologists can focus exploration efforts on areas with increased potential for finding valuable mineral deposits, making the process more cost-effective and efficient.
Detecting Buried Intrusions¶
Magnetic data can reveal the presence of buried igneous intrusions that are often associated with mineralized zones, such as porphyry copper deposits.
Conclusion¶
Lineament mapping from airborne gravity and magnetic data is a powerful technique in the field of mineral exploration. By providing detailed information about subsurface structures and geological variations, it enables geologists to identify potential areas for mineralization. This approach not only enhances the efficiency of exploration activities but also reduces the costs associated with drilling and ground surveys, making it a valuable tool in the search for mineral resources.
import numpy as np
import matplotlib.pyplot as plt
from skimage import filters, feature
import seaborn as sns
import grav_mag_inv as gmi
import Grav_Mag_Transform as gt
import rasterio
import Euler_Deconvolution as ev
import GravMagPro as gmp
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from skimage import feature, measure, io, morphology
from gravmagpro import lineaments as lm
import warnings
warnings.filterwarnings('ignore')
df = pd.read_csv('mag_data11.csv')
df.head()
X | Y | Z | mag | |
---|---|---|---|---|
0 | 330000 | 6629200 | 211.055369 | 5535 |
1 | 330050 | 6629200 | 210.654999 | 5500 |
2 | 330100 | 6629200 | 210.286555 | 5476 |
3 | 330150 | 6629200 | 209.952679 | 5479 |
4 | 330200 | 6629200 | 209.655742 | 5496 |
# Calculate the midpoints of X and Y for the filtered data
x_mid = df['X'].mean()
y_mid = df['Y'].mean()
df['X_centered'] = df['X'] - x_mid
df['Y_centered'] = df['Y'] - y_mid
# Display the transformed dataset
print(df[['X_centered', 'Y_centered', 'mag']])
X_centered Y_centered mag 0 -4500.0 -6900.0 5535 1 -4450.0 -6900.0 5500 2 -4400.0 -6900.0 5476 3 -4350.0 -6900.0 5479 4 -4300.0 -6900.0 5496 ... ... ... ... 12665 4300.0 6900.0 4945 12666 4350.0 6900.0 4943 12667 4400.0 6900.0 4940 12668 4450.0 6900.0 4938 12669 4500.0 6900.0 4936 [12670 rows x 3 columns]
dt = df[
(df['X_centered'] > -2000) & (df['X_centered'] < 2000) & (df['Y_centered'] > -4000) & (df['Y_centered'] < 4000)
].copy()
mag_grid, x_grid, y_grid = ev.create_grid(dt, 201, 401)
mag_grid = mag_grid - np.mean(mag_grid.mean())
target_points_x = 201
target_points_y = 401
# Extracting data from DataFrame
x = dt['X'].values
y = dt['Y'].values
# Determine cell size based on the spacing of grid points
cell_size_x = (x.max() - x.min()) / (target_points_x - 1)
cell_size_y = (y.max() - y.min()) / (target_points_y - 1)
# Automatically determine the upper-left corner
upper_left_x = x.min()
upper_left_y = y.max()
# Create an affine transform for the grid (Y cell size is negative to go downward)
transform = rasterio.transform.from_origin(upper_left_x, upper_left_y, cell_size_x, -cell_size_y)
# Optional parameters for the Grid class
nodata_value = -9999
name = 'OptimizedGrid'
filename = 'theoritical_grid.tif'
mask = None # No mask for now
crs = None # Set your CRS here
data_array = mag_grid
dtilt = ev.compute_tilt(data_array, transform, nodata_value, name, filename, mask, crs = None)
gmp.plot_interactive_grid(dtilt, x_grid, y_grid, title='Tilt Derivative Map', zaxis_title=' (nT/m)')
ev.plot_contours(x_grid, y_grid, dtilt, label = 'nT/m', title = 'Tilt Derivative Map')
extent=(dt['X'].min(), dt['X'].max(), dt['Y'].max(), dt['Y'].min())
edges_canny, filtered_edges, angles_degrees = lm.extract_lineaments(dtilt, sigma=1, low_threshold=0.1, high_threshold=0.3, min_length = 20,
extent=extent, figsize=(8, 8))
lm.plot_angles_diagram(angles_degrees)
edges_canny, filtered_edges, angles_degrees, label_image = lm.extract_lineaments_angle_filter(dtilt, sigma=1, low_threshold=0.1, high_threshold=0.3, min_length = 20,
extent=extent, figsize=(8, 8),
angle_min = 270, angle_max = 360)
Lineaments with azimuth between 270 and 360 degrees¶
nx, ny = 201, 401
lm.fit_lineament_straight_lines(dtilt, extent, nx, ny, sigma=1, low_threshold=0.1, high_threshold=0.3, min_length = 10,
figsize=(10, 12), angle_min = 270, angle_max = 360)