Skip to content

30 - Microwave brightness temperature

MicrowaveRadiometer computes the polarised brightness temperature of a 3-D scene: microwave emission from soil, crowns and trunks that reaches the sensor through the canopy and the atmosphere. Scenes are built in the same way as for radar (chapter 29), and in addition every part needs a temperature. Brightness temperature, water content and rough-surface models are explained in chapter 28.

The scene

import less
from less.distributions import Beta, SinePower

scene = less.Scene()
scene.size = 30.0
scene.repetitive = True
scene.terrain = less.Terrain(property=less.MicrowaveSoil(
    sand_fraction=0.3, clay_fraction=0.2, soil_moisture=0.25,
    dielectric_model="mironov",
    surface_model="hqn", roughness_h=0.6, roughness_nv=-1.0, roughness_nh=0.0,
    temperature_surface=291.0, temperature_deep=288.0))

tree = less.Object("tree")
tree.add_component("crown", less.TurbidBoundary(less.asset_path("tutorial_tree.obj"), group="crown"))
tree.add_component("trunk", less.Mesh(less.asset_path("tutorial_tree.obj"), group="trunk"))
tree.set_property("crown", less.MicrowaveVegetation(components=[
    less.MicrowaveLeaf(radius=0.025, thickness=0.0002, density=1500.0,
                       moisture=0.55, dry_density=0.3, temperature=297.0,
                       orientation=Beta(1.101, 1.930)),
    less.MicrowaveBranch(radius=0.015, length=1.0, density=2.0,
                         moisture=0.45, dry_density=0.4, temperature=297.0,
                         orientation=SinePower(exponent=2.0)),
]))
tree.set_property("trunk", less.MicrowaveTrunk(moisture=0.45, dry_density=0.45, temperature=294.0))
scene.add(tree, positions=[(8.0, 9.0, 0.0), (21.0, 18.0, 0.0)])
  • Soil: surface_model="hqn" is the H-Q-N roughness model used by SMOS and L-MEB, with parameters roughness_h, polarization_mixing, roughness_nv and roughness_nh. The statistical rough-surface models "small_perturbation", "physical_optics" and "geometric_optics" (described by rms_height_cm and correlation_length_cm) or the smooth "specular" can also be used. The soil temperatures temperature_surface and temperature_deep are combined into an effective temperature following Wigneron et al.;
  • Temperatures: each kind of crown scatterer, each trunk and the soil have their own temperature. A thermal property on a component or per-tree trunk properties replace the temperatures given here;
  • Trunks: explicit trunks should have diameters no smaller than the wavelength (21 cm at L band); thinner woody parts are described by MicrowaveBranch in the crown.

Simulation

sensor = less.MicrowaveRadiometer(
    geometry=less.Orthographic(image_size=128, view_zenith=40.0),
    frequency=1.4e9,
    polarization="HV",
    quality=32,
    scattering_samples=8192,
    atmosphere_optical_depth=0.01,
)
product = scene.simulate(sensor)

tb_h, tb_v = product.Tb_H, product.Tb_V      # per pixel, K
soil = product.sources["soil"]                # (rows, columns, 4)

scattering_samples (default 200 000) is the number of samples for angular integrals over scatterers, and quality the number of samples per pixel; they control different errors.

volume_scattering=True includes vegetation volume scattering by default. Set it to False for absorption-only transport: scattering extinction and volume scattering events are removed together, while absorption, thermal emission, soil reflection and trunk reflection are retained. Scattering loss is not reclassified as absorption.

absorbing = less.MicrowaveRadiometer(
    geometry=less.Orthographic(image_size=32, view_zenith=40),
    frequency=1.4e9, volume_scattering=False,
    atmosphere_optical_depth=0, quality=64)
product = scene.simulate(absorbing)

polarization sets the channels in product.data: "H", "V", "HV" or "full" (Stokes parameters I, Q, U, V, where I = T_H + T_V and Q = T_H − T_V). Orthographic and perspective projections can be used, including a sensor placed below the canopy looking up.

Where the brightness temperature comes from

product.sources gives the contribution of each part:

Source Content
soil Soil emission seen through the canopy
crown Emission from crowns
trunk Emission from trunks
sky Atmospheric and cosmic background reflected or scattered into the line of sight
atmosphere Atmosphere between the scene and the sensor

The sources add up to the total brightness temperature. Each source is a (rows, columns, 4) array in K, ordered as modified Stokes parameters (T_V, T_H, T_U, T_V'): channel 0 sums to Tb_V and channel 1 to Tb_H.

total_v = sum(source[:, :, 0] for source in product.sources.values())
print(abs(total_v - product.Tb_V).max())

atmosphere_optical_depth is the zenith optical depth of the atmosphere. The atmospheric temperature is the scene's air temperature, or the soil surface temperature when no microclimate is set. With 0 only the cosmic background (2.725 K) remains.

Checking sampling noise

Run the same scene with the same number of samples and different random seeds (the sensor's seed argument) a few times, and compare the H and V brightness temperatures of each pixel:

runs = [scene.simulate(less.MicrowaveRadiometer(
            geometry=less.Orthographic(image_size=32, view_zenith=40.0),
            frequency=1.4e9, polarization="HV", quality=32,
            scattering_samples=8192, atmosphere_optical_depth=0.01, seed=seed))
        for seed in (17, 31, 47, 73)]

import numpy as np
spread = np.std([run.Tb_H for run in runs], axis=0)
print("per-pixel standard deviation of H brightness temperature (K):", spread.mean())

The same seed repeats the same random sequence, so it does not give independent repeats. The mean over the whole image converges much faster than single pixels; when studying single pixels, look at the per-pixel standard deviation. The error of the angular scattering integrals is checked separately by increasing scattering_samples.

Notes

  • Vegetation multiple scattering is included by default and takes longer at higher frequencies and in denser canopies;
  • crowns may overlap and the ground may be sloped; periodic scenes are handled as for radar;
  • uniform canopies can be compared with 1-D radiative transfer models when the scatterers, soil and atmosphere are set up consistently.

For an independent smooth-soil analytic comparison, see A9 - Microwave brightness and polarization.

Next