EXPERIMENT I
BLACKBODY RADIATION
Aim
To verify Weins Law and to determine the surface temperature of Sun
Requirements
Python Programming
Theory and Equations
Blackbody radiation refers to the electromagnetic radiation emitted by a body that absorbs all
incident radiation, regardless of frequency or angle. The spectrum of this radiation depends
solely on the temperature of the body and is continuous, covering a wide range of
wavelengths. A perfect blackbody emits radiation at all wavelengths, and its emission can be
described using Planck's equation:
8 π hc 1
E ( λ , T )= 5 hc
λ
e λ kT
−1
where E(λ,T) is the energy emitted per unit wavelength, h is Planck's constant, c is the speed
of light, k is Boltzmann's constant, and T is the absolute temperature. One of the key findings
from blackbody radiation theory is Wien's Displacement Law, which states that the
wavelength at which the emission intensity is maximum, λmax is inversely proportional to
the temperature of the blackbody. This relationship is expressed as:
b
λ max =
T
where b is Wien's constant (2.898×10−3 mK), T is the temperature in Kelvin. By applying
this law to the Sun’s emission spectrum, we can determine its surface temperature. The
λ_max value for the Sun is around 500 nm, which corresponds to the visible light range.
Using Wien's Law, the surface temperature of the Sun is calculated to be approximately 6000
K, which is essential for understanding its energy output and overall behaviour in
astrophysical studies.
Procedure
Here’s the revised procedure for your record, without the equations:
1. Obtain Approximate Temperatures:
o Access the PhET Blackbody Spectrum simulation.
o Use the simulation to estimate the temperatures of the Sun, Sirius, Earth, and a
light bulb by analyzing the peaks of their blackbody radiation curves.
o Record the temperatures of each object.
2. Plot Blackbody Radiation Curves:
o Using the temperatures obtained in the previous step, plot the blackbody
radiation curves for the Sun, Sirius, Earth, and a light bulb.
o These curves represent the relationship between intensity and wavelength for
each object.
o The x-axis will represent wavelength (in nm), and the y-axis will represent
spectral radiance (in W/m²/nm).
3. Verify Wien’s Displacement Law:
o From the plotted curves, identify the wavelength at which each curve peaks,
corresponding to the maximum intensity.
o Using the temperatures of the objects, verify Wien’s Displacement Law by
checking that the wavelength of maximum intensity is inversely proportional
to the temperature.
4. Obtain Solar Spectra Data:
o Download the solar spectra data from the PV Education Solar Spectra website
in Excel format.
o Import the data to your analysis tool for plotting.
5. Plot Solar Spectra Data:
o Plot the solar radiation spectra using the data obtained from the Excel file.
o The plot will show the relationship between wavelength and intensity for the
solar spectrum.
6. Calculate the Surface Temperature of the Sun:
o From the plotted solar spectrum, determine the wavelength at which the
intensity is maximum.
o Use Wien’s Displacement Law to calculate the surface temperature of the Sun.
o Compare the calculated temperature with the known value for the Sun’s
surface temperature (approximately 5778 K).
Coding
import numpy as np
import [Link] as plt
# Constants
h = 6.626e-34 # Planck's constant (J·s)
c = 3.0e8 # Speed of light (m/s)
k = 1.38e-23 # Boltzmann constant (J/K)
# Planck function
def planck(wavelength, T):
exponent = h * c / (wavelength * k * T)
return (8 * [Link] * h*c / wavelength**5) / ([Link]([Link](exponent, None, 700)) - 1)
# Extended wavelength range
wavelength = [Link](1e-7, 1e-5, 1000) # meters
# Temperatures
Tsun = 5800 # Sun
Tearth = 300 # Earth
Tsirius = 10000 # Sirius
Tbulb = 3000 # Bulb
# Calculate intensities
sun = planck(wavelength, Tsun)
earth = planck(wavelength, Tearth)
sirius = planck(wavelength, Tsirius)
bulb = planck(wavelength, Tbulb)
# Find wavelengths of maximum intensity
wavelength_max_sun = wavelength[[Link](sun)]
wavelength_max_earth = wavelength[[Link](earth)]
wavelength_max_sirius = wavelength[[Link](sirius)]
wavelength_max_bulb = wavelength[[Link](bulb)]
# Compute λ_max * T
product_sun = wavelength_max_sun * Tsun
product_earth = wavelength_max_earth * Tearth
product_sirius = wavelength_max_sirius * Tsirius
product_bulb = wavelength_max_bulb * Tbulb
# Print calculations
print("Maximum Wavelengths (m):")
print(f"Sun: {wavelength_max_sun}")
print(f"Earth: {wavelength_max_earth}")
print(f"Sirius: {wavelength_max_sirius}")
print(f"Bulb: {wavelength_max_bulb}\n")
print("λ_max * T (m·K):")
print(f"Sun: {product_sun}")
print(f"Earth: {product_earth}")
print(f"Sirius: {product_sirius}")
print(f"Bulb: {product_bulb}")
# Plot the graph
[Link](figsize=(10, 6))
[Link](wavelength * 1e9, sirius, label="Sirius (10000 K)")
[Link](wavelength * 1e9, sun, label="Sun (5800 K)")
[Link](wavelength * 1e9, earth, label="Earth (300 K)")
[Link](wavelength * 1e9, bulb, label="Bulb (3000 K)")
# Add vertical dotted lines at λ_max for each temperature
[Link](wavelength_max_sirius * 1e9, color='blue', linestyle='dotted', label="λ_max
Sirius")
[Link](wavelength_max_sun * 1e9, color='orange', linestyle='dotted', label="λ_max
Sun")
[Link](wavelength_max_earth * 1e9, color='green', linestyle='dotted', label="λ_max
Earth")
[Link](wavelength_max_bulb * 1e9, color='red', linestyle='dotted', label="λ_max Bulb")
[Link]("Wavelength (nm)")
[Link]("Intensity")
[Link]("Blackbody Radiation Curves with λ_max")
[Link]()
[Link]()
[Link]()
import pandas as pd
import [Link] as plt
# Load the CSV file
file_name = '[Link]'
data = pd.read_csv(file_name)
# Extract Wavelength and Radiance (handle potential column name variations)
wavelength_col = 'Wavelength' # Default column name
radiance_col = 'Radiance' # Default column name
if wavelength_col not in [Link]:
wavelength_col = [col for col in [Link] if 'wavelength' in [Link]()][0]
if radiance_col not in [Link]:
radiance_col = [col for col in [Link] if 'radiance' in [Link]()][0]
wavelength = data[wavelength_col]
radiance = data[radiance_col]
# Find the wavelength of maximum intensity
max_intensity_index = [Link]()
wavelength_max = wavelength[max_intensity_index]
# Define Wein's constant (modify if using a different unit)
weins_constant = 2.8977e-3 # meters * kelvin
# Calculate surface temperature of the sun
surface_temp = weins_constant / wavelength_max * 1e9 # Convert nm to meters
# Plot the data
[Link](figsize=(10, 6))
[Link](wavelength, radiance, label='Radiance', color='blue')
# Draw vertical line at the wavelength of maximum intensity
[Link](x=wavelength_max, color='red', linestyle='--', label='Max Intensity')
[Link]('Wavelength (nm)')
[Link]('Radiance')
[Link]('Wavelength vs Radiance')
[Link]()
[Link](True)
[Link]()
# Print the results
print(f"Wavelength of maximum intensity: {wavelength_max:.2f} nm")
print(f"Surface temperature of the sun: {surface_temp:.2f} K")
Results
The experiment verified Wien's Displacement Law by analyzing the blackbody radiation
curves of various objects and determining their respective wavelengths of maximum
intensity. Additionally, by applying the law to the solar spectrum, the surface temperature of
the Sun was calculated, yielding a value consistent with the known temperature of
approximately 5901 K.