(1) History of model development:
The radiance model RAPID (Radiosity Applicable to Porous IndiviDual objects) for porous targets is developed on the basis of the RGM (Radiosity-Graphics Model) model (Qin and Gerstl, 2000) and the TRGM model (Liu et al., 2007). RAPID is a 3D computer simulation model developed on the basis of RGM (Radiosity-Graphics Model) (Qin and Gerstl, 2000) and TRGM model (Liu et al., 2007), which is constructed by the idea of computer graphics, and based on the 3D scene, it performs the simulation of optical radiative transfer that is close to the real one (Huang et al., 2013).RAPID starts from the rational simplification of the 3D structure of the vegetation, which greatly reduces the size of the 3D scene, and significantly reduces the memory requirement of radiance calculations, so that RAPID can cope with the simulation requirements of large scenes and significantly improve the simulation efficiency of radiation transport in large scenes. Subsequently, after continuous improvement and expansion, RAPID has become the first international all-wavelength multi-sensor free simulation platform supporting optical, thermal infrared, lidar and microwave backscatter in the same scene (Huang et al., 2018). It is also highly scalable in terms of scale, and can be used for both fine and small scenes, as well as sample and landscape scales, all with good simulation efficiency. The latest version is currently RAPID3.
(2) Modelling the main modules:
The kernel of RAPID is a Fortran-based DOS programme mixed with C, but the interface is written in Visual studio MFC for ease of use. The main functions of the software interface are to load input files and to perform user-defined scenario simulations or visualisation effects. Taking the thermal infrared band simulation as an example, the model contains four main parts: a) canopy real structure generation module; b) single scattering module; c) multiple scattering module; and d) directional bright temperature module.
RAPID INPUT FILES The input files are not integrated into one big configuration file.Instead, it is divided into several separate files to define different information.The main input files are POLY.IN, REF.IN, OPTICS.IN, VIEWBIDIR.DAT and TC.IN.
POLY.IN (3D structure file): POLY.IN is one of the important files for RAPID to run.It stores the coordinates and colour information of a large number of triangles and rectangles.Each triangle or rectangle represents vegetation, soil or other objects. Specific information described in the file includes: the length and width of the scene, the number of polygons stored, and the attributes of each polygon face element (number of vertices, red light reflectance-transmittance, green light reflectance-transmittance, blue light reflectance-transmittance, leaf area index, whether or not it is a needle leaf, the polygon radius, the polygon's thickness, the size of the leaf blade, and the (x, y, z) coordinates of each vertex of the polygon).
REF.IN (Sun and Sky Light File): This file records information about the position of the sun and the incident light from different directions in the sky.
OPTICS.IN (Component Spectrum File): records the reflectance and transmittance of all components in the POLY.IN file.
TC.IN (component temperature file): this file stores leaf and soil temperatures for the different strata.These temperatures can be assigned manually and were obtained in this study by coupling with the ENVI-met model. For each component, its light and shaded surface temperatures are also distinguished.
VIEWBIDIR.DAT (sensor file): defines the sensor's field of view (FOV), observation altitude, and soil BRDF options.An observation height of 0 indicates a satellite; otherwise it is a ground or airborne observation.It integrates typical spectral data using common satellite sensors or tower-based lenses as a reference. It includes visible (RGB) and NIR bands from GeoEye/QuickBird/SPOT satellites, 8 bands from Worldview-2 satellites, 18 bands from CHRISW satellites, and visible (RGB), NIR and thermal IR bands from Landsat-8 satellites. In addition, users can also customise the spectrum files.
RAPID OUTPUT FILES The simulation results include several temporary output files and the final file.The temporary files are shared between modules, and we focus on the final files, which include the radiance files (RADFLUX.DAT, SELFFLUX.DAT, etc.), BRF (BRF *.DAT) and DBT (DRT *.DAT) after solving. The RADFLUX.DAT file is used to store the final radiance value after multiple scattering.There are three other radiance values in the same format but with different results, SCATTERFLUX.DAT (multiple scattering contribution), SELFFLUX.DAT (single scattering value) and SPECULARFLUX.DAT (specular scattering value). The BRF_MULTI.DAT file stores the final BRF data for all bands, in all directions. Similarly, BRF_SINGLE.DAT stores the single scattering BRF values for all bands, in all directions. The DRT_MULTI.DAT file stores the brightness temperature values for the thermal infrared bands in each direction.
The main model interface is an interactive way to edit large scenes.Open the software and use the menu tools to create a new scene or open an old one. Scene size, slope and elevation range are customised by the user.On the right side of the modelling interface, select the land cover type, including vegetation (ellipsoidal canopy, cone canopy or crops), roads, bare ground, buildings and water bodies, and customize the attributes of each type of feature, and draw the scene directly on the left side of the interface after selecting the type icon.After the scene has been built and transferred to the model running part, the software generates a 3D structural view of the scene by itself.After that, input the simulation control parameters, such as latitude and longitude of the area where the scene is located, simulation time, sensor type, sensor height, FOV, etc., and then the model automatically generates the relevant files. After setting the parameters, enter the simulation control interface and select the relevant simulation types, such as resolution size, whether molecular scene, thermal radiation simulation, BRF, single scattering, LiDAR and satellite images. After the simulation is completed, the BRF curves of each band can be viewed by the BRF View interface that comes with the model. The generated high-resolution images can be opened by the remote sensing image processing software ENVI.
1. TRGM: Main program (14 MB), help document (4MB), and Sample files(9 MB).
2. RAPID1: msi (5 MB), main program (22 MB), help documents and ppts (11 MB), and Sample files (11 MB).
Videos: 1 (Install and 3D scene, 7 MB), 2 (Setup inputs, 3.5 MB), 3 (Run and view results, 4 MB), and 4 (Other functions, 1.5 MB).
3. RAPID2: msi (151 MB) and Sample files (36 MB).
4. RAPID3: Main programm (1 MB) and Examples (HET03, HET05).
5. RAPID_IGARSS2019: IGARSS 2019 Special Edition (34.8 MB) 和 Training Cases (28MB)
5. RAPID_PATCH: Celebrate the 4th of July with a special patch (8.8 MB)
【1】 点击菜单 DTM->scene size. 设置场景大小为 length 20, width 20, cellsize 1 m, elevation 0, and slope 0. 然后点击确定按钮 OK。
【2】在软件界面右边的树状列表中,展开 All components->Ellipse trees,意思是将要创建椭球树冠。
【3】找到并点击按钮 "New",会在椭球树冠类别下面生成一个叶子节点,名为 "Ellipse tree1" ,树状结构为 All components->Ellipse trees->Ellipse tree1.
【4】点击这个节点 "Ellipse tree1",在下方的属性编辑器中对树冠结构进行修改。具体修改冠幅(crown width),默认2.5米,现在修改为5 米,回车确认,然后点击按钮“Update”完成数据同步。
【5】将鼠标移向左边的制图区,选择一个位置(比如中央区域 x=10 m, y=10 m)单击鼠标左键,即可将一棵树(Ellipse tree1)种植在场景中。该树显示为一个绿色的椭圆。
【6】点击菜单“Save”或者工具栏保存图标,在弹出的对话框中,选择一个输出路径(D:\RAPID\test1\onetree.map),将场景保存为后缀为map的文件。
【7】点击菜单Prepare-> STEP 2 (or 工具栏图标 ②): 将map文件转化为RAPID模型需要的poly.in文件(自动生成在工作目录下:D:\RAPID\test1\poly.in),并配套生成默认的ref.in, optics.cat和optics.in等文件。
【1】点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。
【2】在RGMDisp.exe的界面中, 点击菜单 project->open scene (or 工具栏打开按钮),选择文件 D:\RAPID\test1\poly.in。
【3】用鼠标进行场景的旋转,用上下方向键缩放,用工具栏中的三个图标调整线划图和填充图等显示模式。
【1】点击菜单Prepare-> STEP 3 (or 工具栏图标 3): 弹出对话框Input parameters,主要有两个子窗口Create raw files和Refine files,分别用于提供参数生成主要输入文件和修改这些文件。
【2】点击Create raw files下的Apply按钮,直接生成默认文件。默认模拟RGB+NIR四波段反射率产品。然后,点击Close按钮退出。
【1】点击菜单Run-> Go-64bit (or 工具栏图标 64bit): 弹出64位机器上运行的对话框Run RAPID,其窗口左边为运行选项,右边为运行实时结果输出界面。通过勾选左下方的选项,可以执行需要的模拟任务。默认主要任务是模拟BRF and DBT。通过勾选liar可以模拟大光斑激光雷达波形;勾选TIR可以模拟热红外;勾选radar可以模拟后向散射系数;勾选imaging可以模拟遥感图像;勾选Fisheye可以模拟鱼眼图像。
【2】点击RUN按钮即可运行模型,STOP按钮用于强制停止当前模拟,EXIT退出该窗口。勾选Show Processing可以看到更多的运行动态数据。
【1】模拟结果都保存在工作目录下(D:\RAPID\test1)。主要文件为brf*.dat,其中brf_multi.dat(或者早期版本brf.dat)为场景总的BRF;brf01.dat为土壤组分BRF;brf02.dat为叶片组分BRF;brf03.dat为树干组分BRF;对应的fari*.dat为相应组分的可视比例;对应的refl*.dat为相应组分的等效反射率。radflux.dat为多次散射求解后的每个多边形的辐射度;selfflux.dat为单次散射辐射出射度。
【2】最直接的查看方式,是通过记事本或者写字本,或者EltraEdit等软件直接打开上述dat文件查看结果。然后拷贝到Excel中绘制BRF曲线。
【3】可视化的查看方式,是通过RGMDisp.exe进行渲染。具体点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。 然后open工作目录下的poly.in。点击菜单Display,选择下面的各种Draw功能(比如Draw single scattering显示selfflux.dat效果)进行体验。
2.1 主要步骤:
大气模型耦合需要RAPID和V-lidort模型耦合。其中vlidort模型表现为vlidort.exe。模拟分为三个步骤:
【1】配置VLIDORT模型的四个关键文件:2p7_VLIDORT_ReadInput.cfg, VBRDF_LutInput.cfg, input_atmos.dat和input_temp23.dat。一般使用软件默认值文件即可。
【2】在RAPID模型界面(Input parameters)里面选择大气模型为vlidort,填写气溶胶光学厚度,即可在Apply时调用vlidort,生成地表BRDF所需的若干角度文件(VIEWBIDIR_DBKERNEL_1.dat等)和aerosol.in文件。具体角度文件包五大类:
[2.1] VIEWBIDIR_DBKERNEL_1 到 15:直射光在太阳主平面的角度,-70度到70度,每隔10度。DBOUNCE_BRDFUNC(s, a, b): incident solar angle s, reflected line-of-sight angle a, and relative azimuth b.
[2.2] VIEWBIDIR_USER_BRDFUNC_0_1:用户定义的观测角度,VLIDORT文档中为USER_BRDF_F_0 (s, a): incident solar angle s and reflected view zenith angle a.
[2.3] VIEWBIDIR_BRDFUNC_0_1到0_4:天空半球剖分的200个角度。BRDF_F_0(s, k): incident solar angle s and reflected discrete ordinate k.
[2.4]VIEWBIDIR_BRDFUNC_1到10:200个角度。BRDF_F_0(s, k): incident solar angle s and reflected discrete ordinate k.
[2.5]VIEWBIDIR_USER_BRDFUNC_1到10:USER_BRDF_F_0 (s, a): incident solar angle s and reflected view zenith angle a.
aerosol.in文件只有一行,两个数字:气溶胶类型,气溶胶光学厚度。
如果用命令行方式:调用vlidort.exe pre
【3】按照【2】的数据需求,构建一个批处理文件,不断运行RAPID模型计算2.1到2.5的五大类地表BRDF。以太阳天顶角为20为例,构建hotspot.bat文件如下:
ref64 inf -size 1024
mer64
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_1.dat
ref64 inf -size 1024 spec -sza 15
sol64 -sza 15
ref64 inf -size 1024 bidir -sza 15 -file VIEWBIDIR_USER_BRDFUNC_0_1.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_2.dat
ref64 inf -size 1024 spec -sza 17
sol64 -sza 17
ref64 inf -size 1024 bidir -sza 17 -file VIEWBIDIR_USER_BRDFUNC_0_2.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_3.dat
ref64 inf -size 1024 spec -sza 19
sol64 -sza 19
ref64 inf -size 1024 bidir -sza 19 -file VIEWBIDIR_USER_BRDFUNC_0_3.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_4.dat
ref64 inf -size 1024 spec -sza 20
sol64 -sza 20
ref64 inf -size 1024 bidir -sza 20 -file VIEWBIDIR_USER_BRDFUNC_0_4.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_5.dat
ref64 inf -size 1024 spec -sza 21
sol64 -sza 21
ref64 inf -size 1024 bidir -sza 21 -file VIEWBIDIR_USER_BRDFUNC_0_5.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_6.dat
ref64 inf -size 1024 spec -sza 23
sol64 -sza 23
ref64 inf -size 1024 bidir -sza 23 -file VIEWBIDIR_USER_BRDFUNC_0_6.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_7.dat
ref64 inf -size 1024 spec -sza 25
sol64 -sza 25
ref64 inf -size 1024 bidir -sza 25 -file VIEWBIDIR_USER_BRDFUNC_0_7.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_8.dat
ref64 inf -size 1024 spec -sza 30
sol64 -sza 30
ref64 inf -size 1024 bidir -sza 30 -file VIEWBIDIR_USER_BRDFUNC_0_8.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_9.dat
ref64 inf -size 1024 spec -sza 47
sol64 -sza 47
ref64 inf -size 1024 bidir -sza 47 -file VIEWBIDIR_USER_BRDFUNC_0_9.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_10.dat
ref64 inf -size 1024 spec -sza 49
sol64 -sza 49
ref64 inf -size 1024 bidir -sza 49 -file VIEWBIDIR_USER_BRDFUNC_0_10.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_11.dat
ref64 inf -size 1024 spec -sza 50
sol64 -sza 50
ref64 inf -size 1024 bidir -sza 50 -file VIEWBIDIR_USER_BRDFUNC_0_11.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_12.dat
ref64 inf -size 1024 spec -sza 51
sol64 -sza 51
ref64 inf -size 1024 bidir -sza 51 -file VIEWBIDIR_USER_BRDFUNC_0_12.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_13.dat
ref64 inf -size 1024 spec -sza 53
sol64 -sza 53
ref64 inf -size 1024 bidir -sza 53 -file VIEWBIDIR_USER_BRDFUNC_0_13.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_14.dat
ref64 inf -size 1024 spec -sza 55
sol64 -sza 55
ref64 inf -size 1024 bidir -sza 55 -file VIEWBIDIR_USER_BRDFUNC_0_14.dat
ref64 inf -size 1024 spec -sza 20.00
sol64 -sza 20.00
ref64 inf -size 1024 bidir -sza 20.00 -file VIEWBIDIR_DBKERNEL_15.dat
ref64 inf -size 1024 spec -sza 60
sol64 -sza 60
ref64 inf -size 1024 bidir -sza 60 -file VIEWBIDIR_USER_BRDFUNC_0_15.dat
ref64 inf -size 1024 spec -sza 89.25
sol64 -sza 89.25
ref64 inf -size 1024 bidir -sza 89.25 -file VIEWBIDIR_USER_BRDFUNC_1.dat
ref64 inf -size 1024 spec -sza 86.13
sol64 -sza 86.13
ref64 inf -size 1024 bidir -sza 86.13 -file VIEWBIDIR_USER_BRDFUNC_2.dat
ref64 inf -size 1024 spec -sza 80.78
sol64 -sza 80.78
ref64 inf -size 1024 bidir -sza 80.78 -file VIEWBIDIR_USER_BRDFUNC_3.dat
ref64 inf -size 1024 spec -sza 73.54
sol64 -sza 73.54
ref64 inf -size 1024 bidir -sza 73.54 -file VIEWBIDIR_USER_BRDFUNC_4.dat
ref64 inf -size 1024 spec -sza 64.81
sol64 -sza 64.81
ref64 inf -size 1024 bidir -sza 64.81 -file VIEWBIDIR_USER_BRDFUNC_5.dat
ref64 inf -size 1024 spec -sza 54.94
sol64 -sza 54.94
ref64 inf -size 1024 bidir -sza 54.94 -file VIEWBIDIR_USER_BRDFUNC_6.dat
ref64 inf -size 1024 spec -sza 44.22
sol64 -sza 44.22
ref64 inf -size 1024 bidir -sza 44.22 -file VIEWBIDIR_USER_BRDFUNC_7.dat
ref64 inf -size 1024 spec -sza 32.89
sol64 -sza 32.89
ref64 inf -size 1024 bidir -sza 32.89 -file VIEWBIDIR_USER_BRDFUNC_8.dat
ref64 inf -size 1024 spec -sza 21.17
sol64 -sza 21.17
ref64 inf -size 1024 bidir -sza 21.17 -file VIEWBIDIR_USER_BRDFUNC_9.dat
ref64 inf -size 1024 spec -sza 9.27
sol64 -sza 9.27
ref64 inf -size 1024 bidir -sza 9.27 -file VIEWBIDIR_USER_BRDFUNC_10.dat
【4】执行完毕第三步后,会出现VLIDORT所需的地表BRDF数据集,接着执行VLIDORT模型即可输出考虑的BRDF数值。
以工作目录 Aerosol\HOM_dense\20为例,可以将上述三个步骤写入到一个DOS批处理文件中:
copy /Y 2p7_VLIDORT_ReadInput_20.cfg Aerosol\HOM_dense\20\2p7_VLIDORT_ReadInput.cfg
copy /Y VBRDF_LutInput_20.cfg Aerosol\HOM_dense\20\VBRDF_LutInput.cfg
copy /Y hotspot20_dense.bat Aerosol\HOM_dense\20\hotspot.bat
copy /Y vlidort2.exe Aerosol\HOM_dense\20\vlidort2.exe
copy /Y aerosol11.in Aerosol\HOM_dense\20\aerosol.in
cd Aerosol\HOM_dense\20\
vlidort.exe pre
hotspot.bat
vlidort.exe
【5】查看模拟结果:目前只有两个输出文件,results_brdfplus_out1.txt(红光)和results_brdfplus_out2.txt(近红外),分别是大气层顶(Level 34 km)和层底(Level 0 km)在不同观测角度(Geometry)的上下行辐射。其中第五列数据为大气层顶上行Radiance,可以通过归一化太阳入射(如20度)转换为BRF:
BRFvlidort = RT_VLIDORT(:,5)*pi/cos(20/180*pi);
一个案例如下:
Level/Output, Geometry, TS_stokes (up, down), DBounce_BRDF
0.000000000000000 1 70.0000000000000 0.000000000000000 4.139698377884619E-002 0.000000000000000 3.157000000000000E-002
0.000000000000000 2 60.0000000000000 0.000000000000000 3.236583873811853E-002 0.000000000000000 4.052000000000000E-002
0.000000000000000 3 50.0000000000000 0.000000000000000 2.938779468035125E-002 0.000000000000000 5.605000000000000E-002
0.000000000000000 4 40.0000000000000 0.000000000000000 2.892962945196362E-002 0.000000000000000 6.907000000000001E-002
0.000000000000000 5 30.0000000000000 0.000000000000000 2.970106429368309E-002 0.000000000000000 8.117000000000001E-002
0.000000000000000 6 20.0000000000000 0.000000000000000 3.095597439821184E-002 0.000000000000000 9.178000000000001E-002
0.000000000000000 7 10.0000000000000 0.000000000000000 3.228235312807796E-002 0.000000000000000 0.100200000000000
0.000000000000000 8 1.00000000000000 0.000000000000000 3.250845013352362E-002 0.000000000000000 0.107700000000000
0.000000000000000 9 10.0000000000000 180.000000000000 3.478137157809898E-002 0.000000000000000 0.114800000000000
0.000000000000000 10 20.0000000000000 180.000000000000 3.652355662691645E-002 0.000000000000000 0.128200000000000
0.000000000000000 11 30.0000000000000 180.000000000000 3.433067592882250E-002 0.000000000000000 0.109600000000000
0.000000000000000 12 40.0000000000000 180.000000000000 3.293580155830215E-002 0.000000000000000 9.775000000000000E-002
0.000000000000000 13 50.0000000000000 180.000000000000 3.117189836575358E-002 0.000000000000000 7.987000000000000E-002
0.000000000000000 14 60.0000000000000 180.000000000000 3.019334846316788E-002 0.000000000000000 5.908000000000000E-002
0.000000000000000 15 70.0000000000000 180.000000000000 3.204296566668410E-002 0.000000000000000 3.900000000000000E-002
34.0000000000000 1 70.0000000000000 0.000000000000000 1.042263910995895E-002 8.451212213112594E-002 3.157000000000000E-002
34.0000000000000 2 60.0000000000000 0.000000000000000 1.313291672756625E-002 9.589280961267308E-002 4.052000000000000E-002
34.0000000000000 3 50.0000000000000 0.000000000000000 1.706070083173341E-002 0.133890480711280 5.605000000000000E-002
34.0000000000000 4 40.0000000000000 0.000000000000000 2.027413925704747E-002 0.231665487874904 6.907000000000001E-002
34.0000000000000 5 30.0000000000000 0.000000000000000 2.316170470818002E-002 0.460053153157133 8.117000000000001E-002
34.0000000000000 6 20.0000000000000 0.000000000000000 2.566862950008229E-002 0.664506778242466 9.178000000000001E-002
34.0000000000000 7 10.0000000000000 0.000000000000000 2.771875814965746E-002 0.413590827352392 0.100200000000000
34.0000000000000 8 1.00000000000000 0.000000000000000 2.785321303794205E-002 0.199184930312660 0.107700000000000
34.0000000000000 9 10.0000000000000 180.000000000000 3.104663722930473E-002 9.111591705444461E-002 0.114800000000000
34.0000000000000 10 20.0000000000000 180.000000000000 3.359126995970321E-002 5.349915463210418E-002 0.128200000000000
34.0000000000000 11 30.0000000000000 180.000000000000 2.995665372555962E-002 3.663414339175187E-002 0.109600000000000
34.0000000000000 12 40.0000000000000 180.000000000000 2.739418797213769E-002 2.877187642667495E-002 9.775000000000000E-002
34.0000000000000 13 50.0000000000000 180.000000000000 2.331175291546405E-002 2.573277965339820E-002 7.987000000000000E-002
34.0000000000000 14 60.0000000000000 180.000000000000 1.811863222828699E-002 2.626059084016453E-002 5.908000000000000E-002
34.0000000000000 15 70.0000000000000 180.000000000000 1.266681849226738E-002 3.057390157266330E-002 3.900000000000000E-002
2.2 完全吸收的大气模拟效果:
我们设置一个纯粹吸收性的大气 (transmittance Tabs=0.75, α= 0), 地表反射率 ρground, 太阳入射方向 Ωs 和观测方向 Ωv. 理论上, 可以通过解析模型计算大气层顶单次散射BRF(BRFTOA):
(1)
下图显示了解析BRFTOA 和 VLIDORT模拟比较, 误差小于 0.003.
热红外模拟目前有三个组分温度输入方式:
(1)扩展CUPID模型模拟作物分层分角度分时段温度;目前已经集成到系统中。
(2)ENVI-met三维模型模拟景观温度场;这个需要线下模拟。
(3)基于能量平衡的三维温度场自动估算;这个功能尚待集成。
无论哪种方式,只要将温度输入到tc.in文件中即可实现组分温度输入,比如tc.in中包含内容为:
3 2 1.0 (三个组分,两层,放大系数1.0)
layer 1 2 (两层的编号)
leaf (第一个组分叶片)
28 28 (光照温度,第一层,第二层)
26 26 (阴影温度,第一层,第二层)
stem (第二个组分茎干)
28 28 (光照温度,第一层,第二层)
24 24 (阴影温度,第一层,第二层)
soil(第三个组分土壤)
37 37 (光照温度,第一层,第二层)
31 31 (阴影温度,第一层,第二层)
【1】 点击菜单 DTM->scene size. 设置场景大小为 length 10, width 10, cellsize 1 m, elevation 0, and slope 0. 然后点击确定按钮 OK。
【2】在软件界面右边的树状列表中,展开 All components->Rectangle crowns,意思是将要创建长方体的作物冠层。
【3】找到并点击按钮 "New",会在作物冠层类别下面生成一个叶子节点,名为 "Rectangle crowns1" ,树状结构为 All components->Rectangle crowns->Rectangle crowns1.
【4】点击这个节点 "Rectangle crowns1",在下方的属性编辑器中对冠型结构进行修改。具体修改冠幅(crown width),默认3米,现在修改为2米;高度改为2米,回车确认,然后点击按钮“Update”完成数据同步。
【5】将鼠标移向左边的制图区,选择一个位置(x=2 m, y=1 m)单击鼠标左键,即可将一株/群(Rectangle crowns1)种植在场景中,该植株显示为一个绿色的正方形。然后,向下每隔2米依次种一株,共计5株,形成一条垄行。点击工具栏选择按钮,选中这个垄行,然后点击复制按钮,再点击粘贴按钮,即可复制这个垄行,然后拖拽至另外一个垄行位置。拖拽需要提前点击工具栏上一个三角形箭头图案的按钮。最后,右键取消选择。
【6】点击菜单“Save”或者工具栏保存图标,在弹出的对话框中,选择一个输出路径(D:\RAPID\test3\rowcrop.map),将场景保存为后缀为map的文件。
【7】点击菜单Prepare-> STEP 2 (or 工具栏图标 ②): 将map文件转化为RAPID模型需要的poly.in文件(自动生成在工作目录下:D:\RAPID\test3\poly.in),并配套生成默认的ref.in, optics.cat和optics.in等文件。
【1】点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。
【2】在RGMDisp.exe的界面中, 点击菜单 project->open scene (or 工具栏打开按钮),选择文件 D:\RAPID\test3\poly.in。
【3】用鼠标进行场景的旋转,用上下方向键缩放,用工具栏中的三个图标调整线划图和填充图等显示模式,观察是否是行播场景。
【1】点击菜单Prepare-> STEP 3 (or 工具栏图标 3): 弹出对话框Input parameters,主要有两个子窗口Create raw files和Refine files,分别用于提供参数生成主要输入文件和修改这些文件。在sensor type中选择VNIR+TIR/Landsat-8 (RGB+NIR+TIR)类型才能模拟热红外。
【2】点击Create raw files下的Apply按钮,直接生成默认文件。切换到Refine files子窗口,点击tc.in可以编辑组分温度。然后,点击Close按钮退出。
【1】点击菜单Run-> Go-64bit (or 工具栏图标 64bit): 弹出64位机器上运行的对话框Run RAPID,其窗口左边为运行选项,右边为运行实时结果输出界面。一定要勾选run TIR(tc.in)才可以模拟热红外;勾选Infinite scene用于模拟无限场景。
【2】点击RUN按钮即可运行模型,STOP按钮用于强制停止当前模拟,EXIT退出该窗口。勾选Show Processing可以看到更多的运行动态数据。
【1】模拟结果都保存在工作目录下(D:\RAPID\test3)。热红外的主要文件为drt*.dat,其中drt_multi.dat(或者早期版本drt.dat)为场景总的方向亮度温度和辐射度。
【2】最直接的查看方式,是通过记事本或者写字本,或者EltraEdit等软件直接打开上述dat文件查看结果。然后拷贝到Excel中绘制DBT曲线。
【3】和BRF类似,也可以用可视化的查看方式(RGMDisp.exe)。具体点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。 然后open工作目录下的poly.in。点击菜单Display,选择下面的各种Draw功能(比如Draw single scattering显示selfflux.dat效果)进行体验。
lidar波形模拟,最早用于GLAS大光斑波形模拟,主要程序为lidar64.exe。所需的输入信息包括光斑大小,入射角度,脉冲宽度FWHM。后来经过调整,也可以模拟小光斑离散回波。由于lidar的入射和接收方向重合,为热点方向,所以直接调用ref.in中的太阳位置作为入射角度,并需要光学直射模拟图像s0.raw (还有z0.raw, c0.raw分别记录z缓冲和组分类别)作为基础数据。
模拟的命令行参数为: lidar64.exe -foot 15.0 -space 70.0 -FWHM 4.0 sgl
其中-foot表示光斑半径大小,-space表示光斑之间的采样间隔,-FWHM表示脉冲宽度,sgl表示只模拟单次散射。
如果只是模拟单次散射,速度较快。在Run RAPID对话框中输入:
ref64 spec -size 2000
lidar64.exe -foot 15.0 -space 70.0 -FWHM 4.0 sgl
如果需要模拟多次散射,那么还需要计算形状因子等:
ref64 -size 2000
mer64
ref64 spec -size 2000
sol64
lidar64.exe -foot 15.0 -space 70.0 -FWHM 4.0 sgl
【1】 点击菜单 DTM->scene size. 设置场景大小为 length 20, width 20, cellsize 1 m, elevation 0, and slope 0. 然后点击确定按钮 OK。
【2】在软件界面右边的树状列表中,展开 All components->Cone+Cylinder trees,意思是将要创建圆锥+圆柱的组合单木。
【3】找到并点击按钮 "New",会在针叶冠层类别下面生成一个叶子节点,名为 "Cone+Cylinder tree1" ,树状结构为 All components->Cone+Cylinder trees->Cone+Cylinder tree1.
【4】点击这个节点 "Cone+Cylinder tree1",在下方的属性编辑器中对冠型结构进行修改。具体修改Height30米,Crown Length 20米,Cone Length为2米,LAI 6,回车确认,然后点击按钮“Update”完成数据同步。
【5】将鼠标移向左边的制图区,随机种植5棵(不同位置单击鼠标左键五次),每个植株显示为一个深绿色的椭圆。
【6】点击菜单“Save”或者工具栏保存图标,在弹出的对话框中,选择一个输出路径(D:\RAPID\test4\lidartree.map),将场景保存为后缀为map的文件。
【7】点击菜单Prepare-> STEP 2 (or 工具栏图标 ②): 将map文件转化为RAPID模型需要的poly.in文件(自动生成在工作目录下:D:\RAPID\test4\poly.in),并配套生成默认的ref.in, optics.cat和optics.in等文件。
【1】点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。
【2】在RGMDisp.exe的界面中, 点击菜单 project->open scene (or 工具栏打开按钮),选择文件 D:\RAPID\test4\poly.in。
【3】用鼠标进行场景的旋转,用上下方向键缩放,用工具栏中的三个图标调整线划图和填充图等显示模式,观察是否为圆锥+圆柱形状的林木组成的五棵树。
【1】点击菜单Prepare-> STEP 3 (or 工具栏图标 3): 弹出对话框Input parameters,主要有两个子窗口Create raw files和Refine files,分别用于提供参数生成主要输入文件和修改这些文件。在sensor type中选择 (RGB+NIR)类型即可,因为目前最多支持四个波段模拟。
【2】点击Create raw files下的Apply按钮,直接生成默认文件。切换到Refine files子窗口,点击ref.in编辑第一行两个角度(入射天顶角和方位角)。然后,点击Close按钮退出。
【1】点击菜单Run-> Go-64bit (or 工具栏图标 64bit): 弹出64位机器上运行的对话框Run RAPID,其窗口左边为运行选项,右边为运行实时结果输出界面。一定要勾选run lidar才可以模拟lidar。然后直接修改命令行为:
ref64 spec -size 2000
lidar64.exe -foot 15.0 -FWHM 4.0 sgl
【2】点击RUN按钮即可运行模型,STOP按钮用于强制停止当前模拟,EXIT退出该窗口。勾选Show Processing可以看到更多的运行动态数据。
模拟结果都保存在工作目录下(D:\RAPID\test4)。Lidar的主要文件为waveform_sgl.dat或者waveform_multi.dat,记录了场景的波形。通过记事本或者写字本,或者EltraEdit等软件直接打开上述dat文件查看结果。然后拷贝到Excel中绘制波形曲线。
Lidar点云模拟方式有两种:(1)lidar64.exe选择小光斑参数输出离散点云;(2)img64.exe选择点云输出。这里只介绍第二种。
img64主要用于提供各类图像生成,主要命令行参数包括:
-inf -- 启动场景复制功能,实现无限大场景模拟
-infsize --场景复制宽度或者sqrt(次数),默认100,即x方向左边复制100次,右边复制100次;y方向上下各复制100次。
-fish -- 启动鱼眼180度广角传感器模拟,结果存储在fishview.img(fishview.hdr)中。
-mid --只模拟场景正中间 1/3的区域,主要是为了后面的子场景模拟和拼接
-reso 0.5-- 设置模拟的空间分辨率(默认 0.5 m)
-look zen azim -- 特定观测方向绘制场景
-air -- 启动机载推扫传感器模拟,结果存储在airview.img(airview.hdr)中。
为了明确传感器的位置(x,y,z)和朝向(zen,azim),需要一个Camera.in文件提供信息。文件只有一行: x y z zen azim。当zen在90和180度之间时,表示传感器朝上看,比如地面LAI观测和地基lidar扫描;0到90度时,是常规遥感的对地观测模式。比如,
表示在坐标(4,4,0.01)处垂直向上看的传感器。
如果既不启动fish,也不启动air,则直接模拟平行投影,模拟观测天顶角和方位角与viewbidir.dat一致,会输出不同角度的图像,存储为refl*.img,可以用ENVI直接读取。
为了模拟点云,需要启动fish或者air。模拟点云保存在pointcloud_air.txt(机载单线推扫)或者pointcloud.txt(单点360度扫描,一般是地基lidar)文件中。典型命令行如:
img64.exe -f -reso 0.5 -size 3000 air
模拟点云的同时,多波段的airview.img或者fishview.img也会同时产生。
【1】 点击菜单 DTM->scene size. 设置场景大小为 length 20, width 20, cellsize 1 m, elevation 0, and slope 0. 然后点击确定按钮 OK。
【2】在软件界面右边的树状列表中,展开 All components->Ellipse trees,意思是将要创建椭球体的单木。
【3】找到并点击按钮 "New",会在椭球冠层类别下面生成一个叶子节点,名为 "Ellipse tree1" ,树状结构为 All components->Ellipse trees->Ellipse tree1.
【4】点击这个节点 "Ellipse tree1",在下方的属性编辑器中对冠型结构进行修改。具体修改3D tree model下拉列表从默认值0改为9(T_Betula pendula)调整Height 10米,Crown width 4米,回车确认,然后点击按钮“Update”完成数据同步。
【5】将鼠标移向左边的制图区,种植1棵(单击鼠标左键1次),植株显示为一个浅绿色的椭圆。
【6】点击菜单“Save”或者工具栏保存图标,在弹出的对话框中,选择一个输出路径(D:\RAPID\test5\imagetest.map),将场景保存为后缀为map的文件。
【7】点击菜单Prepare-> STEP 2 (or 工具栏图标 ②): 将map文件转化为RAPID模型需要的poly.in文件(自动生成在工作目录下:D:\RAPID\test5\poly.in),并配套生成默认的ref.in, optics.cat和optics.in等文件。
【1】点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。
【2】在RGMDisp.exe的界面中, 点击菜单 project->open scene (or 工具栏打开按钮),选择文件 D:\RAPID\test5\poly.in。
【3】用鼠标进行场景的旋转,用上下方向键缩放,用工具栏中的三个图标调整线划图和填充图等显示模式,观察是否为真实结构林木。
【1】点击菜单Prepare-> STEP 3 (or 工具栏图标 3): 弹出对话框Input parameters,主要有两个子窗口Create raw files和Refine files,分别用于提供参数生成主要输入文件和修改这些文件。在sensor type中选择 (RGB+NIR)类型即可。
【2】点击Create raw files下的Apply按钮,直接生成默认文件。切换到Refine files子窗口,点击camera.in编辑第一行两个角度(入射天顶角和方位角)。然后,点击Close按钮退出。
【1】点击菜单Run-> Go-64bit (or 工具栏图标 64bit): 弹出64位机器上运行的对话框Run RAPID,其窗口左边为运行选项,右边为运行实时结果输出界面。勾选run fisheye和run imaging。
【2】点击RUN按钮即可运行模型,STOP按钮用于强制停止当前模拟,EXIT退出该窗口。勾选Show Processing可以看到更多的运行动态数据。
成功运行后,可以模拟得到0.5米分辨率的平行投影的遥感图像(refl*.img),鱼眼图像(fishview.img)和地基点云(pointcloud.txt)。
【3】如果模拟机载推扫模式,需要将命令行最后一样改为:
img64 -air -reso 0.2 -size 2000
模拟结果都保存在工作目录下(D:\RAPID\test5)。平行投影的遥感图像(refl*.img)和鱼眼图像(fishview.img)可以用ENVI直接打开浏览。地基点云(pointcloud.txt)和机载点云(pointcloud_air.tx)通过记事本或者写字本,或者EltraEdit等软件直接打开查看结果。用CloudCompare可以可视化查看点云数据。
微波后向散射是RAPID2最具特色的部分,主要集中在radar64.exe中。模拟方式有两种:(1)无图像模式;(2)图像模式(含-img参数)。比如,
radar64.exe -size 3000 -img -reso 0.20
就是典型的图像模拟模式,模拟结果保存为radar_bX_vY.img形式,X表示第几个波段,Y表示viewbidir.dat中第几个观测角度。
无图像模式不加-img命令行选项即可,输出结果为:sigma_multi.dat和sigma_comp_multi.dat,存储了总的后向散射系数和各个组分的散射系数。
典型内容如下:
bandno Angle VV HH VH HV
1 60.0000 -21.5657 -19.8244 -35.8378 -35.3159
2 60.0000 -23.6837 -21.7896 -38.8723 -37.2386
3 60.0000 -27.8889 -25.8136 -43.1764 -41.3003
在微波波段,枝干的作用加强,介电常数也是新的变量。因此,需要额外定义两个文件:branch.in和microwave.in。其中,branch.in里包含和optics.cat中一样的组分,但是每个组分提供6个参数,分别是大枝条的密度(个/m3)、长度和直径;小纸条(twig)的密度、长度和直径。非孔隙目标,直接填写0即可。举例如下:
3 6 1 (三个组分,6个参数,放大系数1.0)
density1 length1 diameter1 density2 length2 diameter2
leaf00
1.000000 1.000000 3.000000 15.000000 0.300000 1.000000
stem00
0 0 0 0 0 0
Soil
0 0 0 0 0 0
为了定义微波的波段信息,需要新文件microwave.in保存波段和介电常数信息。每个组分给出三个波段的介电常数(实部第一行,虚部在第二行)。因为孔隙目标中即包含叶片,也包含枝条,两种的介电常数差异较大,所以前三列是叶片的,后三列是枝条的信息。举例如下:
3 3 1 (三个组分,3个波段,放大系数1.0)
wavelen 3 6.3 18.75 (1.6, 4.75, and 10 GHz)
leaf00
27.00 27.00 27.00 10.19 10.19 10.19
-12.43 -12.43 -12.43 -3.36 -3.36 -3.36
stem00
16.45 16.45 16.45 16.45 16.45 16.45
-7.31 -7.31 -7.31 -7.31 -7.31 -7.31
soil
8.458 8.458 8.458 8.458 8.458 8.458
-1.234 -1.234 -1.234 -1.234 -1.234 -1.234
可以看到,每个组分有两排数据,第一排是实部,第二排是虚部。前三列是叶片的介电常数,后三列是树枝的介电常数。
为了能够运行微波,需要先执行光学部分的一个程序,生成cat.rt和pnorm.dat, pcenter.dat等文件。比如,
ref64.exe -size 1024 spec
下面进行具体练习。
【1】 点击菜单 DTM->scene size. 设置场景大小为 length 60, width 60, cellsize 0.5 m, elevation 0, and slope 0. 然后点击确定按钮 OK。
【2】在软件界面右边的树状列表中,展开 All components->Ellipse trees,意思是将要创建椭球体的单木。
【3】找到并点击按钮 "New",会在椭球冠层类别下面生成一个叶子节点,名为 "Ellipse tree1" ,树状结构为 All components->Ellipse trees->Ellipse tree1.
【4】点击这个节点 "Ellipse tree1",在下方的属性编辑器中对冠型结构进行修改。这里修改很关键。具体修改Height 10米,Crown width 4米,Crown length 5米,DBH 25 cm,Leaf size 10 cm, leaf thickness 0.1 cm, Branch density 4.1, Branch length 0.75, Branch diameter 0.7, 回车确认,然后点击按钮“Update”完成数据同步。
【5】将鼠标移向左边的制图区,种植1棵(单击鼠标左键1次),植株显示为一个绿色的椭圆。
【6】在软件界面右边的树状列表中,展开 All components->Buildings,意思是将要创建建筑。
【7】找到并点击按钮 "New",会在建筑冠层类别下面生成一个叶子节点,名为 "Building 1" ,树状结构为 All components->Buildings->Building 1.
【8】点击这个节点 "Building 1",在下方的属性编辑器中对结构参数进行修改。这里修改很关键。具体修改Top Height 6米,width 6米,Building height 6米,Length 10 m,Azimuth 90 deg, 回车确认,然后点击按钮“Update”完成数据同步。
【9】点击菜单“Save”或者工具栏保存图标,在弹出的对话框中,选择一个输出路径(D:\RAPID\test6\microwave.map),将场景保存为后缀为map的文件。
【10】点击菜单Prepare-> STEP 2 (or 工具栏图标 ②): 将map文件转化为RAPID模型需要的poly.in文件(自动生成在工作目录下:D:\RAPID\test6\poly.in),并配套生成默认的ref.in, optics.cat,optics.in, branch.in和microwave.in等文件。
【1】点击菜单 View->3D Viewer (D) (或者工具栏按钮 ),启动可视化程序 RGMDisp.exe。
【2】在RGMDisp.exe的界面中, 点击菜单 project->open scene (or 工具栏打开按钮),选择文件 D:\RAPID\test6\poly.in。
【3】用鼠标进行场景的旋转,用上下方向键缩放,用工具栏中的三个图标调整线划图和填充图等显示模式,观察是否为一棵树和一个建筑的场景。
【1】点击菜单Prepare-> STEP 3 (or 工具栏图标 3): 弹出对话框Input parameters,主要有两个子窗口Create raw files和Refine files,分别用于提供参数生成主要输入文件和修改这些文件。在sensor type中选择 Full wavelengths (RGB+NIR+TIR+Radar)类型即可。
【2】点击Create raw files下的Apply按钮,直接生成默认文件。切换到Refine files子窗口,点击microwave.in,出现记事本,将其内容编辑修改为:
4 3 1
wavelen 6 25 68 (5.3, 1.25, and 0.44 GHz)
leaf00
31.523 36.273 39.979 9.978 12.468 14.864
-9.498 -11.217 -21.119 -3.197 -4.309 -6.737
stem00
14.129 17.151 20.023 14.129 17.151 20.023
-4.297 -5.796 -9.675 -4.297 -5.796 -9.675
House30
2.433 2.294 2.294 2.433 2.294 2.294
-0.100 -0.126 -0.126 -0.100 -0.126 -0.126
Soil
5.664 4.416 4.416 5.664 4.416 4.416
-0.984 -1.327 -1.327 -0.984 -1.327 -1.327
关闭记事本后,点击viewbidir.dat,修改为
0 0.002 c
3
60 90
45 90
30 90
然后,关闭记事本,点击Close按钮退出。
【1】点击菜单Run-> Go-64bit (or 工具栏图标 64bit): 弹出64位机器上运行的对话框Run RAPID,其窗口左边为运行选项,右边为运行实时结果输出界面。勾选run radar后,删除第一行,第二行和第四行,多行命令行只剩下两行:
ref64 spec -size 2000
radar64 -reso 0.50 -img -size 2000
【2】点击RUN按钮即可运行模型,STOP按钮用于强制停止当前模拟,EXIT退出该窗口。勾选Show Processing可以看到更多的运行动态数据。
成功运行后,可以模拟得到sigma_multi.dat和sigma_comp_multi.dat;以及radar_b*_v*.img的雷达图像。
模拟结果都保存在工作目录下(D:\RAPID\test6)。雷达图像(radar*.img)可以用ENVI直接打开浏览。后向散射系数(sigma*.txt)通过记事本或者写字本,或者EltraEdit等软件直接打开查看结果。
Basic concept of solid soil polygons, stem polyongs and porous crowns.
Library of tree species (broadleaf, needle-leaf, bamboo, grass etc.)
Huailai Site
RAMI pine forest
RAMI pine forest looking up
RAMI rotation forest
Virtual fractal forest
To generate crop scenarios using RGMDisper see
user manualThis is to show a graphical representation of the definition of monoculture crop parameters, usually using a *.PAR file as the definition file.
How do I interface with the main RAPID programme?
[Way 1] After updating the patch, RGMDisper can remind the user not to generate soil, and then add poly.in to the trees directory of the main RAPID program, and you can reuse the
[Way 2] If you need to generate a complete scenario of the crop, but want to run the subsequent radiation transfer, you can first start RAPID to set up a random scenario to run steps 1 and 2, and then copy the poly.in, optics.in and optics.cat of the crop to the RAPID running directory at the same time.
Case study on Huailai site simulation
First, Create the Huailai 3D scene and solve light transfer.
Second, simulate optical image.
Third, simulate thermal image.
Fourth, simulate lidar point cloud and waveform.
Fifth, simulate fisheye image.
Last, simulate microwave backscattering image (not done yet).