跳转至

29 - 雷达后向散射

RadarScatterometer 计算三维场景的雷达后向散射系数 σ⁰。树冠是充满叶片、针叶或枝条的体积,树干是显式的圆柱,地面可以有坡度。结果按 MIMICS 模型(Ulaby 等,1990)的散射机制分解,可以看出树冠、地面和树干各自的贡献。参数的含义和模型选择见第 28 章。

场景

import less
from less.distributions import Beta, SinePower

scene = less.Scene()
scene.size = 50.0
scene.terrain = less.Terrain(property=less.MicrowaveSoil(
    sand_fraction=0.3, clay_fraction=0.2, soil_moisture=0.2,
    dielectric_model="hallikainen",
    rms_height_cm=0.8, correlation_length_cm=6.0,
    surface_model="oh"))

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.02, thickness=0.0002, density=2500.0,
                       moisture=0.5, dry_density=0.3, orientation=Beta(1.101, 1.930)),
    less.MicrowaveBranch(radius=0.02, length=1.5, density=1.2,
                         moisture=0.4, dry_density=0.4, orientation=SinePower(exponent=2.0)),
]))
tree.set_property("trunk", less.MicrowaveTrunk(moisture=0.45, dry_density=0.45))
trees = scene.add(tree, positions=[(10.0, 12.0, 0.0), (30.0, 35.0, 0.0)])
  • 树冠:MicrowaveLeaf、MicrowaveNeedle 和 MicrowaveBranch 描述树冠中的散射体,包括数密度、尺寸、含水量和取向(less.distributions 中的各种分布)。scattering_model="auto" 按散射体尺寸和波长自动选择散射模型,也可以指定 "rayleigh"、"physical_optics"、"generalized_rayleigh_gans" 或 "infinite_cylinder";
  • 树干:每根树干用拟合其网格的圆柱计算,旋转、缩放和倾斜的树干都可以。树干网格必须封闭;
  • 地面:surface_model 可选 "oh"、"small_perturbation"、"physical_optics"、"geometric_optics" 或 "specular";
  • 逐株属性:trees.set_property("trunk", [...]) 可以为每棵树分别设置属性,例如不同的树干含水量。

模拟

sensor = less.RadarScatterometer(
    geometry=less.Orthographic(image_size=128, view_zenith=35.0),
    frequency=1.25e9,
    quality=64,
    scattering_samples=8192,
)
product = scene.simulate(sensor)

sigma0_hh = product.sigma0_HH                         # 逐像元的线性值
crown_hh = product.mechanisms["direct_crown"].hh
dihedral_hh = product.mechanisms["trunk_ground"].hh

scattering_samples 是散射体角度积分的采样数(默认 200 000),这里减小以缩短准备时间;quality 是每个像元的采样数。定量分析时应分别增大两者,确认结果稳定。

雷达使用正射投影,发射和接收方向相同;坡地上的局地入射角随坡面变化。结果是后向散射系数,不是合成孔径雷达影像。

product.mechanisms 中每个机制给出逐像元的 σ⁰,用 .hh、.vv、.hv、.vh 读取,完整的极化矩阵在 .mueller 中:

机制 路径
direct_crown 树冠散射后直接返回
direct_ground 粗糙地面的后向散射
cg 树冠散射后经地面反射返回
gc 地面反射后经树冠散射返回
gcg 地面反射、树冠散射、再经地面反射
trunk_ground、ground_trunk 树干与地面之间的二面角反射
direct_trunk 树干的后向散射(只有倾斜树干才有)

各机制之和等于总的后向散射系数。

多次散射

默认只计算一次散射,与 MIMICS 相同。要包含叶片、枝条之间的多次散射,以及经地面反射后再进入树冠的波,设置 scattering_order=None:

scene.terrain.set_property(less.MicrowaveSoil(
    surface_model="small_perturbation", soil_moisture=0.2,
    rms_height_cm=0.8, correlation_length_cm=6.0))
multiple = scene.simulate(less.RadarScatterometer(
    geometry=less.Orthographic(image_size=128, view_zenith=35.0),
    frequency=1.25e9, quality=64, scattering_samples=8192,
    scattering_order=None, max_scatter_depth=4))
second_hh = multiple.mechanisms["second_order"].hh

结果中多出三个机制:

机制 路径
second_order 两次散射
higher_order 三次及以上,最多到 max_scatter_depth
other_first_order MIMICS 中没有的一次散射路径,例如地面—树干—地面

地面的镜面反射不算一次散射,所以 gcg 仍属于一次散射。多次散射需要能描述各方向散射的地面模型("small_perturbation"、"physical_optics"、"geometric_optics" 或 "specular"),"oh" 只描述后向散射,不能使用。多次散射用蒙特卡洛方法计算,耗时通常是一次散射的数倍。

说明

  • 树冠可以相互重叠,重叠处的作用相加;
  • 取向分布以竖直方向为基准,在各方位上相同;
  • 坡地上的地面反射按当地坡面计算;
  • 树干会投下阴影,而 MIMICS 把树干当作一层衰减介质,因此在稀疏林中,涉及地面的机制 LESS 会比 MIMICS 高约 0.2–0.7 dB;
  • 在周期场景中,跨越边界的树冠在相邻图块中连续。

与其他模型比较时,散射体模型、取向分布、土壤粗糙度和边界条件都要一致。

下一步