Saturday, 17 October 2026

Tunguska, 30 June 1908

Tunguska 1908: Event, Investigation and Airburst Model
Following two AI-assisted investigations loading Python to Google Colab - the famous double-slit experiment here & and converging longitudes in W Canada here - here's another formatting style that brings the code to play with right into the post! The Python code itself is in Google Colab here, and code + resulting tables and pics here. See also novella & journalistic formats here & here.

An atmospheric explosion over Siberia — the event, the century-long investigation, and a simple Python/JavaScript model of how an airburst works.

1 · The Event

At about 07:14 local time on 30 June 1908, a cosmic body entered Earth’s atmosphere above the Podkamennaya Tunguska River in Siberia and disintegrated at an estimated 5–10 km altitude. It released energy comparable to 10–15 megatons of TNT, flattening roughly 2,000 km² of taiga.

5–10 km Estimated burst altitude
10–15 Mt Estimated TNT equivalent
~2,000 km² Forest devastated
0 Conventional impact craters found

What happened

The incoming object was probably a stony asteroid tens of metres across. Travelling at tens of kilometres per second, it compressed the air ahead of it so violently that its leading surface became a fireball. As it reached denser air, internal stresses broke it apart; its fragments then lost kinetic energy extremely rapidly, heating and compressing the surrounding atmosphere.

The result was an airburst: an explosion in the sky rather than a ground impact. A shock wave raced downward and outward, while radiant heat briefly scorched the forest. Because most of the body vaporised and fragmented, no large crater and no substantial intact meteorite were found.

The butterfly footprint. Trees immediately below the burst were stripped and charred but often left standing, like telegraph poles. Farther away, the angled shock wave pushed trees radially outward. The resulting elongated, two-winged pattern records a moving, shallow-angle explosion—not a circular ground impact.

2 · The Investigation

Scientists did not identify the cause immediately. The remote location, political upheaval, and absence of a crater meant that the explanation emerged from decades of fieldwork, geophysics, eyewitness reconstruction, and microscopic analysis.

1908: Eyewitnesses report a fireball, thunderous explosions, a shock wave, and unusually bright nights. Distant observatories record seismic and barometric disturbances, helping locate the event in Siberia.
1927: Leonid Kulik leads the first major Soviet expedition. He maps immense forest destruction but finds no crater.
1927–1930s: Kulik investigates marshy depressions thought to be craters. Draining the “Suslov crater” reveals an old tree stump, showing it was a natural permafrost feature.
Mid-20th century: Seismic and pressure-wave analyses allow estimates of the explosion’s energy. The treefall pattern supports an atmospheric burst rather than a surface impact.
1975: Ari Ben-Menahem’s seismic analysis estimates an energy release of roughly 10–15 megatons TNT.
1990s–2000s: Computer simulations show that a fast, weak cosmic body can fragment in the atmosphere and create a destructive airburst without reaching the ground.
2013: Researchers report microscopic grains from Tunguska samples containing minerals and carbon phases consistent with extreme pressure, heating, and meteoritic material.

The consensus explanation

The best-supported explanation is a small asteroid-like body that entered at a shallow angle, fragmented in the lower atmosphere, and released most of its kinetic energy as an airburst. A comet remains a minority possibility, but the treefall geometry, energy estimates, and recovered microscopic material favour an asteroid-like object.

Why no crater? An airburst deposits energy in the atmosphere. The blast wave can devastate a huge surface area, but without a hypervelocity ground impact there is no excavated crater and little surviving meteoritic mass.

3 · Code & Model

The model below is a simplified one-dimensional “pancake” airburst calculation. It tracks a meteoroid’s velocity, mass, drag, ablation, and kinetic-energy loss as it descends through an exponential atmosphere.

The physics

At each time step the model calculates atmospheric density, drag force, velocity loss, mass lost by ablation, and kinetic energy deposited into the air:

F_D = 0.5 × C_D × ρ(z) × A_eff × v²
dv/dt = −F_D / m
dm/dt = −σ × A_eff × ρ(z) × v
E_deposited = ½ × m × (v_old² − v_new²)
ρ(z) = ρ₀ × exp(−z / H)

Before fragmentation, the object has a fixed cross-section. After it reaches the chosen fragmentation altitude, its effective area grows in a simplified “pancake” approximation. That rapidly increases drag and causes a sharp spike in energy deposition—the airburst.

Interactive version

Results

Adjust the inputs and run the model.

Blue line: altitude. Orange area: kinetic energy deposited per time step. This is an educational model, not a full hydrodynamic simulation.

Python version

import numpy as np
import pandas as pd

# Illustrative Tunguska-like parameters
rho0, H = 1.225, 8500.0       # sea-level density, scale height
v0, m0, A0 = 15000.0, 4.5e8, 2000.0
Cd, sigma = 1.0, 0.02
z_frag, alpha, dt = 8000.0, 8.0, 0.002

z, v, m, A, t = 120000.0, v0, m0, A0, 0.0
rows = []

while z > 0 and v > 100 and t < 60:
    rho = rho0 * np.exp(-z / H)

    # Compact body before fragmentation; expanding cloud afterwards
    A_eff = A if z > z_frag else A * alpha * np.exp((z_frag - z) / 3000.0)

    Fd = 0.5 * Cd * rho * A_eff * v * v
    dv = -(Fd / m) * dt
    dz = v * dt
    dm = -sigma * A_eff * rho * v * dt

    Edep = 0.5 * m * (v**2 - (v + dv)**2)

    z = max(0.0, z - dz)
    v = max(100.0, v + dv)
    m = max(1.0, m + dm)
    t += dt

    rows.append([t, z, v, m, A_eff, Edep, rho])

df = pd.DataFrame(rows, columns=[
    "time_s", "altitude_m", "velocity_m_s", "mass_kg",
    "effective_area_m2", "energy_deposited_J", "air_density_kg_m3"
])

df["cumulative_energy_J"] = df["energy_deposited_J"].cumsum()
df["yield_Mt_TNT"] = df["cumulative_energy_J"] / 4.184e15
df.to_csv("tunguska_airburst_model.csv", index=False)

peak = df.loc[df["energy_deposited_J"].idxmax()]
print(peak[["time_s", "altitude_m", "velocity_m_s", "energy_deposited_J"]])
print(df.iloc[-1][["cumulative_energy_J", "yield_Mt_TNT"]])

How to experiment

  • Raise the fragmentation altitude to make the burst occur higher.
  • Increase the pancake expansion factor to concentrate energy deposition more abruptly.
  • Change entry velocity to compare asteroidal and cometary-speed objects.
  • Plot altitude against energy deposition to see where the airburst peaks.
Educational model · Tunguska airburst, 1908 · Values are approximate and intended for illustration.

No comments:

Post a Comment