Chapter 13

Remote Sensing & GIS in Geology

Satellite imagery interpretation, digital terrain analysis, geological mapping techniques, change detection over time, integration with field data.

Remote Sensing & GIS in Geology

Remote sensing and Geographic Information Systems (GIS) have revolutionized geological mapping and analysis. These technologies allow geologists to study Earth's surface and subsurface from a distance, providing unprecedented spatial and temporal coverage that enhances field-based investigations.

Remote Sensing Fundamentals

Electromagnetic Spectrum and Geological Applications

E=hν=hcλE = h \nu = \frac{hc}{\lambda}

Where EE is energy, hh is Planck's constant, ν\nu is frequency, cc is speed of light, and λ\lambda is wavelength.

Spectral Ranges for Geological Applications

Visible (VIS): 0.4-0.7 μm

  • Applications: Color variations in rocks, vegetation stress
  • Sensors: Landsat TM bands 1-3, Sentinel-2 bands 2-4

Near Infrared (NIR): 0.7-1.3 μm

  • Applications: Vegetation health, water content in soils
  • Sensors: Landsat TM band 4, Sentinel-2 band 8

Shortwave Infrared (SWIR): 1.3-3.0 μm

  • Applications: Hydration detection, mineral identification
  • Sensors: Landsat TM bands 5-7, Sentinel-2 bands 11-12

Thermal Infrared (TIR): 8-14 μm

  • Applications: Heat signatures, thermal inertia, rock identification
  • Sensors: Landsat TM band 6, Landsat 8 TIRS bands 10-11

Spectral Signatures

Mineral Absorption Features

R(λ)=R0ek(λ)dR(\lambda) = R_0 \cdot e^{-k(\lambda) \cdot d}

Where R(λ)R(\lambda) is reflectance at wavelength λ\lambda, R0R_0 is reference reflectance, k(λ)k(\lambda) is absorption coefficient, and dd is path length.

Diagnostic Absorption Bands

  • OH/H₂O: 1.4, 1.9, 2.2 μm
  • Carbonates: 2.3, 2.5 μm
  • Clays: 2.2, 2.3 μm
  • Ferro-magnesium minerals: 2.0-2.4 μm

Satellite Sensors and Platforms

Optical Sensors

Landsat Series

  • Landsat 8/9: Operational Land Imager (OLI) and Thermal Infrared Sensor (TIRS)
    • Spatial resolution: 15-30 m (depending on band)
    • Spectral bands: 9 optical + 2 thermal
    • Temporal resolution: 16 days

Sentinel-2

  • Spatial resolution: 10-60 m
  • Spectral bands: 13 bands from VIS to SWIR
  • Temporal resolution: 5 days (with two satellites)

ASTER (Advanced Spaceborne Thermal Emission Radiometer)

  • Spectral coverage: VIS, NIR, SWIR, TIR
  • Spatial resolution: 15-90 m
  • Applications: Mineral mapping, temperature mapping

Radar Sensors

Synthetic Aperture Radar (SAR)

σ0=backscattered powerincident power4πλ21sinθ\sigma^0 = \frac{\text{backscattered power}}{\text{incident power}} \cdot \frac{4\pi}{\lambda^2} \cdot \frac{1}{\sin\theta}

Where σ0\sigma^0 is radar backscatter coefficient, λ\lambda is wavelength, and θ\theta is incidence angle.

Applications:

  • Structural mapping: Penetrates vegetation cover
  • Deformation monitoring: Interferometric SAR (InSAR)
  • Surface roughness: Texture analysis

Image Processing Techniques

Preprocessing

Atmospheric Correction

Ls=πTOAradianced2ESUNcosθsL_s = \frac{\pi \cdot TOA_{radiance} \cdot d^2}{ESUN \cdot \cos\theta_s}

Where LsL_s is surface reflectance, TOAradianceTOA_{radiance} is top-of-atmosphere radiance, dd is Earth-Sun distance, ESUNESUN is solar exoatmospheric irradiance, and θs\theta_s is solar zenith angle.

Geometric Correction

  • Ground Control Points: Known coordinates for image rectification
  • Sensor Model: Mathematical relationship between image and ground coordinates

Enhancement Techniques

Principal Component Analysis (PCA)

Z=XP\mathbf{Z} = \mathbf{X} \cdot \mathbf{P}

Where Z\mathbf{Z} is principal components, X\mathbf{X} is original data matrix, and P\mathbf{P} is principal component transformation matrix.

Band Ratios

Rij=RiRjR_{ij} = \frac{R_i}{R_j}

Common geological ratios:

  • Fe content: Band 5 / Band 4 (Landsat TM)
  • Clay content: Band 5 / Band 7 (Landsat TM)
  • Vegetation: (NIR - Red) / (NIR + Red) (NDVI)

Geological Applications

Structural Analysis

Lineament Detection

Lineament density=Total length of linear featuresArea\text{Lineament density} = \frac{\text{Total length of linear features}}{\text{Area}}

Techniques:

  • Edge detection: Sobel, Canny, Laplacian operators
  • Texture analysis: Gray-level co-occurrence matrices (GLCM)
  • Frequency domain: Fourier transforms for pattern recognition

Fracture Analysis

  • Rose diagrams: Directional analysis of structural features
  • Spacing analysis: Statistical distribution of fracture spacing
  • Intensity mapping: Density of structural features

Lithological Mapping

Spectral Classification

  • Supervised classification: Training sites with known lithology
  • Unsupervised classification: Clustering algorithms (K-means, ISODATA)
  • Spectral angle mapper: Angular distance in n-dimensional space

Mineral Mapping

Mineral abundance=f(spectral signature,absorption depth)\text{Mineral abundance} = f(\text{spectral signature}, \text{absorption depth})

Techniques:

  • Spectral unmixing: Linear combinations of endmembers
  • Continuum removal: Isolate absorption features
  • Absorption band analysis: Center wavelength and depth

Hydrothermal Alteration Mapping

Alteration Assemblage Detection

  • Alunite/Kaolinite/Aluminum: ASTER bands 6/(5/4)
  • Ferrous Iron: ASTER band 4/band 2
  • Silica: ASTER band 6 (1.65 μm) depth

Digital Terrain Analysis

Topographic Attributes

Slope and Aspect

Slope=arctan((zx)2+(zy)2)\text{Slope} = \arctan\left(\sqrt{\left(\frac{\partial z}{\partial x}\right)^2 + \left(\frac{\partial z}{\partial y}\right)^2}\right) Aspect=arctan(z/xz/y)\text{Aspect} = \arctan\left(\frac{\partial z/\partial x}{\partial z/\partial y}\right)

Curvature Analysis

Profile curvature=2zs2\text{Profile curvature} = \frac{\partial^2 z}{\partial s^2} Planform curvature=2zu2\text{Planform curvature} = \frac{\partial^2 z}{\partial u^2}

Where ss is direction of maximum slope and uu is direction perpendicular to ss.

Terrain Analysis Applications

Structural Geology

  • Drainage pattern analysis: Rectangular, trellis, radial patterns
  • Valley floor mapping: Identifies potential structural lows
  • Escarpment analysis: Identifies resistant rock units

Engineering Geology

  • Slope stability: Steepness and aspect analysis
  • Landslide susceptibility: Curvature and slope analysis
  • Stream gradient analysis: Erosion potential assessment

GIS in Geological Applications

Spatial Analysis

Overlay Analysis

Suitability index=i=1nwiri\text{Suitability index} = \sum_{i=1}^{n} w_i \cdot r_i

Where wiw_i is weight of factor ii and rir_i is rating of factor ii.

Proximity Analysis

  • Buffer analysis: Distance zones around features
  • Viewshed analysis: Visibility from specific locations
  • Cost distance: Minimum cost path analysis

Database Management

Attribute Tables

  • Lithology codes: Standardized rock type classification
  • Age assignments: Temporal information
  • Structural data: Orientation measurements
  • Sample information: Geochemical and geochronological data

Change Detection

Multi-Temporal Analysis

Normalized Difference Vegetation Index (NDVI)

NDVI=NIRRedNIR+RedNDVI = \frac{NIR - Red}{NIR + Red}

Normalized Difference Built-up Index (NDBI)

NDBI=SWIRNIRSWIR+NIRNDBI = \frac{SWIR - NIR}{SWIR + NIR}

Landform Evolution Analysis

Erosion rate=Topographic changeTime interval\text{Erosion rate} = \frac{\text{Topographic change}}{\text{Time interval}}

Integration with Field Data

Ground Truth Validation

Accuracy=Correctly classified samplesTotal samples\text{Accuracy} = \frac{\text{Correctly classified samples}}{\text{Total samples}}

Field-to-Satellite Scaling

  • Pixel integration: Averaging field measurements over pixel area
  • Up-scaling: Extrapolating field observations to satellite scale
  • Down-scaling: Refining satellite interpretations with field data

Applications in Mineral Exploration

Target Identification

Prospectivity index=f(geochemistry,geophysics,remotesensing,geology)\text{Prospectivity index} = f(\text{geochemistry}, \text{geophysics}, \text{remotesensing}, \text{geology})

Exploration Planning

  • Accessibility analysis: Route planning from satellite data
  • Prioritization: Ranking target areas based on evidence
  • Cost optimization: Efficient field campaign planning

Emerging Technologies

Hyperspectral Imaging

  • AVIRIS: Airborne Visible/Infrared Imaging Spectrometer
  • EnMAP: Environmental Mapping and Analysis Program
  • PRISMA: Hyperspectral Precursor and Application Mission

LiDAR Applications

  • DEM generation: High-resolution topography
  • Vegetation penetration: Sub-canopy mapping
  • Deformation monitoring: mm-scale precision

Real-World Application: Structural Mapping Using Remote Sensing

Remote sensing is particularly valuable for mapping geological structures in areas with limited field access.

Lineament Analysis Example

# Structural analysis using remote sensing data
struct_analysis = {
    'image_resolution': 15,    # meters (pixel size)
    'study_area': 1000,        # km² (total area)
    'lineament_density': 2.5,  # km/km² (lineaments per unit area)
    'average_length': 1.2,     # km (average lineament length)
    'dominant_azimuth': 45,    # degrees (most common direction)
    'preferred_directions': [45, 135, 225, 315],  # degrees (common directions)
    'confidence_level': 0.85   # unitless (rating of interpretation confidence)
}

# Calculate total lineament length
total_lineament_length = struct_analysis['lineament_density'] * struct_analysis['study_area']  # km
number_of_lineaments = total_lineament_length / struct_analysis['average_length']  # count

# Analyze directional clustering
direction_tolerance = 10  # degrees (acceptable variation from preferred directions)

# Calculate structural index
# Factor in density, length, and clustering around preferred directions
structural_complexity = (struct_analysis['lineament_density'] * 
                         struct_analysis['average_length'] * 
                         len(struct_analysis['preferred_directions']) / 4)

print(f"Structural analysis results:")
print(f"  Study area: {struct_analysis['study_area']} km²")
print(f"  Lineament density: {struct_analysis['lineament_density']} km/km²")
print(f"  Total lineament length: {total_lineament_length} km")
print(f"  Estimated number of structures: {number_of_lineaments:.0f}")
print(f"  Dominant direction: {struct_analysis['dominant_azimuth']}°")
print(f"  Structural complexity index: {structural_complexity:.2f}")
print(f"  Confidence level: {struct_analysis['confidence_level']:.2f}")

# Interpret tectonic significance
if structural_complexity > 3:
    tectonic_setting = "Highly deformed - complex tectonic environment"
elif structural_complexity > 1.5:
    tectonic_setting = "Moderately deformed - multiple deformation events"
else:
    tectonic_setting = "Low deformation - stable cratonic setting"
    
print(f"  Tectonic interpretation: {tectonic_setting}")

# Geological implications
if struct_analysis['dominant_azimuth'] in [0, 180] or struct_analysis['dominant_azimuth'] in [90, 270]:
    stress_pattern = "Orthogonal stress system (likely maximum compression)"
else:
    stress_pattern = "Oblique stress system"

print(f"  Stress pattern: {stress_pattern}")

Integration with Field Data

Combining remote sensing with field observations enhances geological understanding.


Your Challenge: Lithological Classification Using Spectral Data

Analyze multispectral satellite data to classify and map different rock types in an area.

Goal: Use spectral analysis techniques to identify and map lithological units from satellite data.

Satellite Data

import math

# Multispectral data for sample areas
# Simulated data for different rock types (reflectance values in different bands)
spectral_data = [
    {'name': 'Area A', 'band1': 0.15, 'band2': 0.22, 'band3': 0.32, 'band4': 0.45, 'band5': 0.55, 'band7': 0.65, 'rock_type': 'unknown'},
    {'name': 'Area B', 'band1': 0.25, 'band2': 0.35, 'band3': 0.42, 'band4': 0.52, 'band5': 0.75, 'band7': 0.85, 'rock_type': 'unknown'},
    {'name': 'Area C', 'band1': 0.12, 'band2': 0.18, 'band3': 0.25, 'band4': 0.35, 'band5': 0.45, 'band7': 0.52, 'rock_type': 'unknown'},
    {'name': 'Area D', 'band1': 0.35, 'band2': 0.45, 'band3': 0.58, 'band4': 0.72, 'band5': 0.82, 'band7': 0.88, 'rock_type': 'unknown'},
    {'name': 'Area E', 'band1': 0.20, 'band2': 0.30, 'band3': 0.38, 'band4': 0.48, 'band5': 0.68, 'band7': 0.78, 'rock_type': 'unknown'},
]

# Known training sites for supervised classification
training_data = {
    'granite': {'band1': 0.22, 'band2': 0.32, 'band3': 0.42, 'band4': 0.55, 'band5': 0.72, 'band7': 0.82},
    'basalt': {'band1': 0.15, 'band2': 0.22, 'band3': 0.28, 'band4': 0.38, 'band5': 0.48, 'band7': 0.55},
    'sandstone': {'band1': 0.25, 'band2': 0.35, 'band3': 0.45, 'band4': 0.58, 'band5': 0.75, 'band7': 0.85},
    'limestone': {'band1': 0.18, 'band2': 0.28, 'band3': 0.35, 'band4': 0.45, 'band5': 0.58, 'band7': 0.68}
}

# Calculate spectral distance for each sample to each training class
classifications = []
for sample in spectral_data:
    distances = {}
    for rock_type, train_vals in training_data.items():
        # Calculate Euclidean distance in spectral space
        sum_sq_diff = 0
        for band in ['band1', 'band2', 'band3', 'band4', 'band5', 'band7']:
            diff = sample[band] - train_vals[band]
            sum_sq_diff += diff**2
        distance = math.sqrt(sum_sq_diff)
        distances[rock_type] = distance
    
    # Assign to closest class
    closest_class = min(distances, key=distances.get)
    sample['rock_type'] = closest_class
    sample['confidence'] = 1.0 / (1.0 + distances[closest_class])  # Higher confidence for smaller distances
    classifications.append((sample['name'], closest_class, sample['confidence']))

# Calculate commonly used geological indices
for sample in spectral_data:
    # Iron content index
    sample['fe_index'] = sample['band5'] / sample['band4']
    
    # Clay content index (albedo ratio for clay minerals)
    sample['clay_index'] = sample['band5'] / sample['band7']
    
    # Silica content proxy (band 7 response)
    sample['silica_index'] = sample['band7']

# Evaluate quality of classification
avg_confidence = sum([s['confidence'] for s in spectral_data]) / len(spectral_data)

Analyze the spectral data to classify lithologies and identify geological patterns.

Hint:

  • Use spectral distance calculations to match unknown samples to known rock types
  • Calculate geological indices (Fe, clay, silica) from spectral ratios
  • Consider how different rock types have characteristic reflectance patterns
  • Assess classification confidence based on spectral similarity
# TODO: Calculate classification results
classification_results = []  # List of (area, rock_type, confidence) tuples
dominant_rock_type = ""      # Most common rock type identified
geological_pattern = ""      # Pattern of rock distribution
confidence_level = 0         # Average confidence level

# Calculate geological indices for each area
indices_results = []
for sample in spectral_data:
    area_name = sample['name']
    fe_content = sample['fe_index']
    clay_content = sample['clay_index']
    silica_content = sample['silica_index']
    rock_type = sample['rock_type']
    confidence = sample['confidence']
    
    indices_results.append({
        'area': area_name,
        'rock_type': rock_type,
        'fe_index': fe_content,
        'clay_index': clay_content,
        'silica_index': silica_content,
        'confidence': confidence
    })

# Determine dominant rock type
rock_type_counts = {}
for sample in spectral_data:
    rock_type = sample['rock_type']
    rock_type_counts[rock_type] = rock_type_counts.get(rock_type, 0) + 1

dominant_rock_type = max(rock_type_counts, key=rock_type_counts.get)
dominant_percentage = rock_type_counts[dominant_rock_type] / len(spectral_data) * 100

# Calculate average confidence
confidence_level = sum([sample['confidence'] for sample in spectral_data]) / len(spectral_data)

# Assess geological pattern
if len(set([s['rock_type'] for s in spectral_data])) == 1:
    geological_pattern = "Homogeneous - single rock type dominates"
elif dominant_percentage > 60:
    geological_pattern = f"Moderately heterogeneous - {dominant_rock_type} dominant"
else:
    geological_pattern = "Heterogeneous - multiple rock types, no clear dominance"

# Print results
print(f"Classification results:")
for result in indices_results:
    print(f"  {result['area']}: {result['rock_type']} (conf: {result['confidence']:.2f})")
    
print(f"\nDominant rock type: {dominant_rock_type} ({dominant_percentage:.1f}%)")
print(f"Average classification confidence: {confidence_level:.2f}")
print(f"Geological pattern: {geological_pattern}")

# Geological interpretation
if 'basalt' in dominant_rock_type:
    interpretation = "Mafic igneous terrain - possible volcanic or plutonic mafic rocks"
elif 'granite' in dominant_rock_type:
    interpretation = "Felsic igneous terrain - granitic plutonic rocks"
elif 'sandstone' in dominant_rock_type:
    interpretation = "Sedimentary terrain - clastic sedimentary rocks"
elif 'limestone' in dominant_rock_type:
    interpretation = "Sedimentary carbonate terrain"
else:
    interpretation = "Mixed lithologies - complex geological setting"

print(f"Geological interpretation: {interpretation}")

How might the geological setting identified through remote sensing compare with what you might expect from the tectonic setting of the region?

ELI10 Explanation

Simple analogy for better understanding

Think of remote sensing like having superpowers that let geologists see Earth from space and detect things that are invisible to the naked eye. Remote sensing satellites can 'see' different wavelengths of light (like infrared) that reveal hidden geological features, just like how night vision goggles let soldiers see in the dark. GIS (Geographic Information Systems) is like a digital filing cabinet that stores, organizes, and analyzes all this geological information on a computer map, allowing geologists to layer different types of data together and discover patterns that would be impossible to see otherwise. These tools are like having a high-tech Swiss Army knife for geology, letting geologists explore dangerous or hard-to-reach areas safely while identifying rock types, structures, and deposits from orbit.

Self-Examination

Q1.

How do different spectral bands help identify geological materials?

Q2.

What are the applications of digital terrain analysis in geological mapping?

Q3.

How is GIS used to integrate and analyze geological data sets?