15 - 交互式可视化¶
本章介绍 LESS 的交互式三维查看器 scene.show(),它允许您在浏览器中预览场景和模拟结果。
启动查看器¶
scene.show() 会启动一个本地 Web 服务器,并在默认浏览器中打开三维场景预览。
带传感器的查看器¶
您可以在启动查看器时传入传感器列表,这样就可以在查看器中直接触发模拟:
sensors = [
less.OpticalImager(
less.Orthographic(image_size=512),
bands=[650, 550, 450],
quality=128,
name="RGB",
),
less.ThermalImager(
less.Orthographic(image_size=512),
bands=[10600],
quality=128,
name="Thermal",
),
]
scene.show(sensors=sensors)
带 Process 的查看器¶
对于需要 Process 链的高级模拟,也可以传入 processes:
processes = [
less.RadiationFieldProcess(
bands=[450, 550, 650, 850],
photons_per_m2=4000,
name="Radiation Field",
),
less.EnergyBalanceProcess(
microclimate=less.Microclimate(
air_temperature=300.0, humidity=0.6, wind_speed=1.5,
),
name="Energy Balance",
),
]
scene.show(sensors=sensors, processes=processes)
查看器功能¶
场景导航¶
- 旋转:鼠标左键拖动
- 平移:鼠标右键拖动(或 Shift + 左键)
- 缩放:鼠标滚轮
三个标签页¶
查看器包含三个功能区:
| 标签页 | 功能 |
|---|---|
| Scene | 三维场景预览,显示物体、地形、坐标轴 |
| Render | 触发传感器模拟,查看输出图像 |
| Simulate | 运行 Process(辐射场、能量平衡等) |
Scene 标签页¶
- 查看场景的三维结构
- 显示物体的包围盒和位置
- 坐标轴指示方向(红=X/东,绿=Y/南,蓝=Z/上)
- 地面网格显示场景范围
Render 标签页¶
- 选择预定义的传感器
- 调整传感器参数(如果支持)
- 点击 "Simulate" 按钮执行模拟
- 查看模拟结果图像
Simulate 标签页¶
- 运行 Process 链
- 查看 Process 执行状态和结果
内置示例的查看器¶
运行内置示例时,默认会打开查看器:
import less
# 秋季森林 — 包含 6 种传感器
less.examples.run("autumn_forest")
# 玉米田
less.examples.run("maize_field")
这些示例预配置了多种传感器(RGB、热红外、多光谱、LiDAR 等),可以在查看器中逐一模拟。
Headless 模式¶
如果不需要交互式查看器(例如在服务器上批量运行),可以跳过 show(),直接使用 simulate();第一次调用会自动构建场景:
# 不打开查看器
for sensor in sensors:
result = scene.simulate(sensor)
result.save(f"output/{sensor.name}")
内置示例也支持 headless 模式:
下一步¶
相关 API¶
less.Scene.show()、less.Product.show()less.Scene.simulate()less.OpticalImager、less.ThermalImagerless.RadiationFieldProcess、less.EnergyBalanceProcessless.examples.list()、less.examples.run()