Chapter 11

Economic Geology

Ore deposit formation and classification, mining techniques and environmental impact, resource exploration methods, energy resources (oil, gas, coal, uranium), critical minerals and materials.

Economic Geology

Economic geology is the study of Earth's mineral and energy resources, their formation, distribution, and extraction. It encompasses both metallic and non-metallic resources that have economic value and examines the geological processes that concentrate these materials into mineable deposits.

Classification of Ore Deposits

Magmatic Deposits

Formed during crystallization of magmas:

Cumulate Deposits

Concentration=C01DDF+(1F)\text{Concentration} = C_0 \cdot \frac{1-D}{D \cdot F + (1-F)}

Where C0C_0 is initial concentration, FF is fraction of liquid remaining, and DD is distribution coefficient.

Examples:

  • Layered mafic intrusions: PGE, chromite, titanium
  • Ultramafic intrusions: Platinum group elements, chromium

Hydrothermal Deposits

Formed from hot, chemically active fluids:

Classification by Temperature

  • Magmatic-hydrothermal: >500°C (porphyry Cu-Au-Mo, skarn)
  • Epithermal: 50-250°C (gold-silver, mercury)
  • Mesothermal: 200-300°C (gold-quartz veins)

Ore Mineral Assemblages

  • Sulfides: Pyrite, chalcopyrite, galena, sphalerite
  • Oxides: Hematite, magnetite, cassiterite
  • Native metals: Gold, silver, platinum

Sedimentary Deposits

Chemical Precipitation

  • Banded iron formations: Archean age, Fe-oxide deposits
  • Evaporites: Halite, gypsum, potash
  • Phosphorites: Phosphate deposits

Mechanical Accumulation

  • Placer deposits: Heavy mineral concentrations
  • Paleoplacers: Ancient placer deposits
  • Residual deposits: Weathering concentration (bauxite, laterite)

Metamorphic Deposits

Formed or modified during metamorphism:

  • Skarns: Contact metamorphic deposits
  • Greisen: Pneumatolytic alteration
  • Graphite: From organic matter

Ore Deposit Models

Porphyry Copper Systems

Cu grade=f(fluid composition, temperature, pressure)\text{Cu grade} = f(\text{fluid composition, temperature, pressure})

Characteristics:

  • Associated with calc-alkaline magmatism
  • Stockwork veining (Q-type quartz)
  • Zoning: K-feldspar → biotite → propylitic

Alteration Assemblages

  • Potassic: K-feldspar + biotite
  • Phyllic: Sericite + pyrite
  • Propylitic: Chlorite + epidote + calcite
  • Argillic: Kaolinite + montmorillonite

VMS (Volcanogenic Massive Sulfide)

Formed at seafloor spreading centers:

  • Cyprus-type: Bimodal volcanic sequence
  • Noranda-type: Felsic volcanic environment
  • Besshi-type: Siliciclastic environment

SEDEX (Sedimentary Exhalative)

Formed in restricted marine basins:

  • Mississippi Valley-type: Dolomite-hosted Pb-Zn
  • Sedex-type: Clastic-hosted Pb-Zn-Ag

Exploration Techniques

Geochemical Exploration

Anomaly=sample valuebackground\text{Anomaly} = \text{sample value} - \text{background}

Sampling Media

  • Stream sediments: Downstream dispersion
  • Soils: Direct sampling over deposits
  • Till: Glacial transport indicator
  • Groundwater: Mobile metal detection

Geophysical Methods

Gravity Methods

Δg=2πGΔρh\Delta g = 2\pi G \Delta \rho h

For horizontal cylinder of height hh and density contrast Δρ\Delta \rho.

Magnetic Methods

  • Magnetic susceptibility: Concentration of magnetic minerals
  • Total field intensity: Magnetic anomalies
  • Aeromagnetics: Regional coverage

Electrical Methods

  • Resistivity: Electrical property contrasts
  • Induced polarization: Chargeability effects
  • Electromagnetic: Conductive mineral detection

Seismic Methods

  • Reflection: Structural controls
  • Refraction: Velocity variations

Remote Sensing

  • Spectral analysis: Mineral identification
  • Structural mapping: Lineament analysis
  • Alteration detection: Hydrothermal alteration mapping

Resource Evaluation

Grade-Tonnage Relationships

Economic viability=Value of metalCost of extraction\text{Economic viability} = \frac{\text{Value of metal}}{\text{Cost of extraction}}

Cut-off Grade

Cut-off=Mining cost+Processing costRecoveryPriceRefining credit\text{Cut-off} = \frac{\text{Mining cost} + \text{Processing cost}}{\text{Recovery} \cdot \text{Price} \cdot \text{Refining credit}}

Reserve Classifications

  • Measured: Detailed geological knowledge
  • Indicated: Geological continuity shown
  • Inferred: Limited geological knowledge

Mining Methods

Surface Mining

  • Open pit: Large, near-surface deposits
  • Strip mining: Horizontal or gently dipping deposits
  • Placer mining: Alluvial deposits

Economics

Strip ratio=waste tonsore tons\text{Strip ratio} = \frac{\text{waste tons}}{\text{ore tons}}

Underground Mining

  • Room and pillar: Extraction with support pillars
  • Longwall: Complete extraction in panels
  • Block caving: Gravity extraction of broken ore

Support Systems

  • Bolting: Rock reinforcement
  • Shotcreting: Surface stabilization
  • Steel sets: Frame support

Environmental Considerations

Acid Mine Drainage

2FeS2+7O2+2H2O2Fe2++4SO42+4H+2FeS_2 + 7O_2 + 2H_2O \rightarrow 2Fe^{2+} + 4SO_4^{2-} + 4H^+

Prevention Methods

  • Alkaline addition: Neutralize acidity
  • Oxygen exclusion: Prevent oxidation
  • Water management: Control flow paths

Tailings Management

  • Dry stacking: Reduced environmental risk
  • Paste thickening: Improved stability
  • Cemented paste backfill: Underground support

Rehabilitation

  • Soil replacement: Establish vegetation
  • Contouring: Restore landforms
  • Capping: Isolate contaminated materials

Energy Resources

Fossil Fuels

Coal

  • Formation: Organic matter preservation
  • Rank: Lignite → sub-bituminous → bituminous → anthracite
  • Quality parameters: Ash, sulfur, calorific value

Petroleum Systems

Petroleum system=Source rock+Reservoir+Seal+Trap\text{Petroleum system} = \text{Source rock} + \text{Reservoir} + \text{Seal} + \text{Trap}

Formation Evaluation

  • Source rock: TOC, Rock-Eval pyrolysis
  • Reservoir: Porosity, permeability
  • Maturation: Vitrinite reflectance

Nuclear Resources

Uranium Deposits

  • Unconformity-type: Sandstone-hosted
  • Vein-type: Hydrothermal
  • Sandstone-type: Roll-front deposits

Thorium Resources

  • Monazite: Rare earth phosphate
  • Thorite: ThSiO₄
  • Bearing minerals: Accessory phases

Critical Minerals

Supply Risk Assessment

InLCA (Indicators for Long-term Criticality Assessment)

Criticality=f(Supply risk,Economic importance)\text{Criticality} = f(\text{Supply risk}, \text{Economic importance})

Key Minerals

  • Rare earth elements: Neodymium, dysprosium (magnets)
  • Lithium: Battery technology
  • Cobalt: Batteries, superalloys
  • Graphite: Battery anodes

Recycling and Substitution

  • Urban mining: Recovery from waste
  • Substitution: Alternative materials
  • Efficiency: Reduced consumption

Global Distribution

Metallogenic Provinces

  • Circum-Pacific: Porphyry systems
  • Tethyan: Orogenic gold, VMS
  • Siberian Traps: Ni-Cu-PGE

Political Considerations

  • Resource nationalism: Government control
  • Trade restrictions: Supply chain concerns
  • Investment security: Political stability

Real-World Application: Porphyry Copper Deposit Evaluation

Porphyry copper deposits represent the world's primary source of copper and are critical for the global economy.

Porphyry System Analysis

# Porphyry copper deposit evaluation
deposit_data = {
    'ore_grade': 0.6,     # % Cu (copper grade)
    'tonnage': 1000,      # million tonnes
    'recovery_rate': 85,  # % (metallurgical recovery)
    'copper_price': 3.5,  # $/lb (copper price)
    'mining_cost': 1.2,   # $/tonne (operating cost)
    'stripping_ratio': 3, # waste/ore ratio
    'mineralization_type': 'porphyry'
}

# Calculate metal content and value
total_copper_metal = deposit_data['tonnage'] * 1e6 * deposit_data['ore_grade'] / 100  # tonnes
total_copper_value = total_copper_metal * 1000 * 2205 * deposit_data['copper_price']  # tonnes to lbs conversion

# Calculate extraction costs
total_ore_tons = deposit_data['tonnage'] * 1e6  # tonnes
total_waste_tons = total_ore_tons * deposit_data['stripping_ratio']
total_mining_cost = (total_ore_tons + total_waste_tons) * deposit_data['mining_cost']

# Calculate net smelter return (NSR)
recovery_tons = total_copper_metal * deposit_data['recovery_rate'] / 100
copper_pounds = recovery_tons * 1000 * 2205  # tonnes to pounds
revenue = copper_pounds * deposit_data['copper_price']
net_revenue = revenue - total_mining_cost

print(f"Deposit evaluation for porphyry copper:")
print(f"  Ore grade: {deposit_data['ore_grade']}% Cu")
print(f"  Tonnage: {deposit_data['tonnage']} million tonnes")
print(f"  Total copper metal: {total_copper_metal:,.0f} tonnes")
print(f"  Total metal value: ${total_copper_value/1e9:.1f} billion")
print(f"  Total mining cost: ${total_mining_cost/1e6:.0f} million")
print(f"  Net revenue: ${net_revenue/1e9:.1f} billion")
print(f"  Average stripping ratio: {deposit_data['stripping_ratio']}:1")

# Economic assessment
if net_revenue > 0:
    economic_status = "Economically viable"
    roi = (net_revenue / total_mining_cost) * 100
    print(f"  Return on investment: {roi:.1f}%")
else:
    economic_status = "Not economically viable"
    
print(f"  Economic status: {economic_status}")

# Environmental considerations
environmental_impact_score = deposit_data['stripping_ratio'] * 10  # Simplified scoring
if environmental_impact_score > 25:
    env_status = "High environmental impact"
elif environmental_impact_score > 15:
    env_status = "Moderate environmental impact"
else:
    env_status = "Low environmental impact"
    
print(f"  Environmental impact: {env_status}")

Exploration Vectoring

Using geochemical and structural indicators to locate additional mineralization.


Your Challenge: Mineral Exploration Analysis

Analyze geochemical data to identify potential mineralization targets and assess their economic potential.

Goal: Evaluate geochemical anomalies and assess their potential for economic mineral deposits.

Exploration Data

import math

# Geochemical exploration data from grid sampling
sample_data = [
    {'id': 'A1', 'x': 0, 'y': 0, 'Cu_ppm': 150, 'Au_ppb': 8, 'Pb_ppm': 45, 'Zn_ppm': 120},
    {'id': 'A2', 'x': 100, 'y': 0, 'Cu_ppm': 220, 'Au_ppb': 12, 'Pb_ppm': 65, 'Zn_ppm': 180},
    {'id': 'A3', 'x': 200, 'y': 0, 'Cu_ppm': 450, 'Au_ppb': 25, 'Pb_ppm': 90, 'Zn_ppm': 320},  # Anomaly center
    {'id': 'A4', 'x': 300, 'y': 0, 'Cu_ppm': 180, 'Au_ppb': 10, 'Pb_ppm': 55, 'Zn_ppm': 150},
    {'id': 'A5', 'x': 400, 'y': 0, 'Cu_ppm': 90, 'Au_ppb': 5, 'Pb_ppm': 35, 'Zn_ppm': 80},
    {'id': 'B1', 'x': 0, 'y': 100, 'Cu_ppm': 130, 'Au_ppb': 6, 'Pb_ppm': 40, 'Zn_ppm': 100},
    {'id': 'B2', 'x': 100, 'y': 100, 'Cu_ppm': 380, 'Au_ppb': 20, 'Pb_ppm': 85, 'Zn_ppm': 280},  # Anomaly
    {'id': 'B3', 'x': 200, 'y': 100, 'Cu_ppm': 650, 'Au_ppb': 45, 'Pb_ppm': 120, 'Zn_ppm': 450},  # Anomaly center
    {'id': 'B4', 'x': 300, 'y': 100, 'Cu_ppm': 280, 'Au_ppb': 15, 'Pb_ppm': 75, 'Zn_ppm': 220},
    {'id': 'B5', 'x': 400, 'y': 100, 'Cu_ppm': 110, 'Au_ppb': 4, 'Pb_ppm': 30, 'Zn_ppm': 70},
    {'id': 'C1', 'x': 0, 'y': 200, 'Cu_ppm': 100, 'Au_ppb': 4, 'Pb_ppm': 25, 'Zn_ppm': 60},
    {'id': 'C2', 'x': 100, 'y': 200, 'Cu_ppm': 250, 'Au_ppb': 14, 'Pb_ppm': 70, 'Zn_ppm': 190},
    {'id': 'C3', 'x': 200, 'y': 200, 'Cu_ppm': 520, 'Au_ppb': 35, 'Pb_ppm': 110, 'Zn_ppm': 380},  # Anomaly
    {'id': 'C4', 'x': 300, 'y': 200, 'Cu_ppm': 220, 'Au_ppb': 12, 'Pb_ppm': 60, 'Zn_ppm': 170},
    {'id': 'C5', 'x': 400, 'y': 200, 'Cu_ppm': 80, 'Au_ppb': 3, 'Pb_ppm': 20, 'Zn_ppm': 50},
]

# Background levels for each element
background_levels = {
    'Cu_ppm': 50,   # ppm (parts per million)
    'Au_ppb': 2,    # ppb (parts per billion)
    'Pb_ppm': 20,   # ppm
    'Zn_ppm': 65    # ppm
}

# Calculate anomaly thresholds (typically 2-3x background)
threshold_multipliers = {'Cu_ppm': 3, 'Au_ppb': 4, 'Pb_ppm': 3, 'Zn_ppm': 2.5}
anomaly_thresholds = {elem: background_levels[elem] * mult 
                       for elem, mult in threshold_multipliers.items()}

# Identify anomalous samples
anomalous_samples = []
for sample in sample_data:
    has_anomaly = False
    for element in ['Cu_ppm', 'Au_ppb', 'Pb_ppm', 'Zn_ppm']:
        if sample[element] > anomaly_thresholds[element]:
            has_anomaly = True
            break
    if has_anomaly:
        anomalous_samples.append(sample)

# Calculate weighted index for each sample (importance: Au > Cu > Zn > Pb)
for sample in sample_data:
    # Normalize each element against background
    cu_norm = sample['Cu_ppm'] / background_levels['Cu_ppm']
    au_norm = sample['Au_ppb'] / background_levels['Au_ppb']
    zn_norm = sample['Zn_ppm'] / background_levels['Zn_ppm']
    pb_norm = sample['Pb_ppm'] / background_levels['Pb_ppm']
    
    # Calculate weighted index (Au most important)
    sample['weighted_index'] = au_norm * 1.5 + cu_norm * 1.0 + zn_norm * 0.5 + pb_norm * 0.3

# Rank samples by weighted index
ranked_samples = sorted(sample_data, key=lambda x: x['weighted_index'], reverse=True)

# Calculate distance of anomalies from center (for vectoring)
if anomalous_samples:
    center_x = sum(s['x'] for s in anomalous_samples) / len(anomalous_samples)
    center_y = sum(s['y'] for s in anomalous_samples) / len(anomalous_samples)
    
    for sample in sample_data:
        sample['distance_from_center'] = math.sqrt((sample['x'] - center_x)**2 + (sample['y'] - center_y)**2)

Analyze the geochemical data to assess the potential for economic mineralization.

Hint:

  • Look for coherent multi-element anomalies
  • Consider element ratios that indicate specific deposit types
  • Evaluate the spatial distribution of anomalies for vectoring
  • Calculate potential resource sizes and grades
# TODO: Calculate exploration targets and potential deposit type
primary_anomaly_center = ""  # ID of sample with highest weighted index
multi_element_anomalies = []  # List of samples with multiple element anomalies
deposit_type = ""  # Type of deposit based on element associations
resource_estimate = 0  # Million tonnes (estimated resource)
economic_potential = ""  # Viability assessment

# Identify multi-element anomalies
for sample in anomalous_samples:
    anomalous_elements = []
    for element in ['Cu_ppm', 'Au_ppb', 'Pb_ppm', 'Zn_ppm']:
        if sample[element] > anomaly_thresholds[element]:
            anomalous_elements.append(element)
    if len(anomalous_elements) >= 2:  # Multi-element anomaly
        multi_element_anomalies.append(sample['id'])

# Assess deposit type based on element ratios
# Cu/Au ratios can indicate deposit type
high_cu_au_ratio_samples = []
for sample in sample_data:
    if sample['Au_ppb'] > 0:
        cu_au_ratio = sample['Cu_ppm'] / sample['Au_ppb']
        if cu_au_ratio > 15:
            high_cu_au_ratio_samples.append(sample['id'])

if len(high_cu_au_ratio_samples) > 0:
    deposit_type = "Porphyry-type (Cu-rich)"
elif len(multi_element_anomalies) > 0:
    deposit_type = "Polymetallic (Cu-Au-Pb-Zn)"
else:
    deposit_type = "Unknown"

# Calculate potential tonnage (simplified approach)
# Volume estimation based on anomaly size
if len(anomalous_samples) > 0:
    # Assume 20m vertical extent and rectangular prism
    anomaly_area = 0.02 * (len(anomalous_samples) * 100)  # km² (2% of grid area per anomaly)
    thickness = 50  # meters (assumed)
    density = 2.7  # g/cm³ = 2700 kg/m³
    resource_estimate = (anomaly_area * 1e6 * thickness * density) / 1e9  # billion tonnes

# Economic assessment
if ranked_samples[0]['weighted_index'] > 10:
    economic_potential = "High - warrants detailed exploration"
elif ranked_samples[0]['weighted_index'] > 5:
    economic_potential = "Moderate - consider additional sampling"
else:
    economic_potential = "Low - unlikely to be economic"

# Print results
print(f"Primary anomaly center: {primary_anomaly_center}")
print(f"Multi-element anomalies: {multi_element_anomalies}")
print(f"Deposit type: {deposit_type}")
print(f"Resource estimate: {resource_estimate:.2f} billion tonnes")
print(f"Economic potential: {economic_potential}")
print(f"Top ranked sample: {ranked_samples[0]['id']} (index: {ranked_samples[0]['weighted_index']:.2f})")

# Next exploration steps
next_steps = []
if len(multi_element_anomalies) > 2:
    next_steps.append("Detailed mapping of anomaly extent")
    next_steps.append("Soil or stream sediment sampling to expand anomaly")
if deposit_type == "Porphyry-type":
    next_steps.append("Structural analysis for porphyry targeting")
    next_steps.append("Geophysical survey for alteration mapping")
    
print(f"Recommended next steps: {next_steps}")

What additional exploration techniques would you recommend based on the geochemical data and spatial distribution of anomalies?

ELI10 Explanation

Simple analogy for better understanding

Think of economic geology like being a treasure hunter who uses scientific knowledge to find valuable materials hidden in the rocks and minerals under our feet. Instead of looking for gold coins, economic geologists search for concentrations of valuable resources like metals, fossil fuels, and industrial minerals that are worth the cost to extract. They study how these resources form naturally in the Earth over millions of years through processes like volcanic activity, metamorphism, and hydrothermal circulation. Economic geologists don't just find these resources - they also figure out the most efficient ways to extract them while minimizing environmental damage, similar to how a skilled miner would extract treasure while keeping the surrounding area as intact as possible.

Self-Examination

Q1.

What are the main processes that form economic mineral deposits?

Q2.

How do exploration geologists locate and evaluate mineral resources?

Q3.

What are the environmental considerations in modern mining operations?