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;
- 在周期场景中,跨越边界的树冠在相邻图块中连续。
与其他模型比较时,散射体模型、取向分布、土壤粗糙度和边界条件都要一致。