BERATools 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. beratools/__init__.py +9 -0
  2. beratools/core/__init__.py +0 -0
  3. beratools/core/algo_centerline.py +351 -0
  4. beratools/core/constants.py +86 -0
  5. beratools/core/dijkstra_algorithm.py +460 -0
  6. beratools/core/logger.py +85 -0
  7. beratools/core/tool_base.py +133 -0
  8. beratools/gui/__init__.py +15 -0
  9. beratools/gui/batch_processing_dlg.py +463 -0
  10. beratools/gui/beratools.json +2300 -0
  11. beratools/gui/bt_data.py +487 -0
  12. beratools/gui/bt_gui_main.py +691 -0
  13. beratools/gui/cli.py +18 -0
  14. beratools/gui/gui.json +8 -0
  15. beratools/gui/img/BERALogo.png +0 -0
  16. beratools/gui/img/closed.gif +0 -0
  17. beratools/gui/img/closed.png +0 -0
  18. beratools/gui/img/open.gif +0 -0
  19. beratools/gui/img/open.png +0 -0
  20. beratools/gui/img/tool.gif +0 -0
  21. beratools/gui/img/tool.png +0 -0
  22. beratools/gui/map_window.py +146 -0
  23. beratools/gui/tool_widgets.py +493 -0
  24. beratools/gui_tk/ASCII Banners.txt +248 -0
  25. beratools/gui_tk/__init__.py +20 -0
  26. beratools/gui_tk/beratools_main.py +515 -0
  27. beratools/gui_tk/bt_widgets.py +442 -0
  28. beratools/gui_tk/cli.py +18 -0
  29. beratools/gui_tk/gui.json +8 -0
  30. beratools/gui_tk/img/BERALogo.png +0 -0
  31. beratools/gui_tk/img/closed.gif +0 -0
  32. beratools/gui_tk/img/closed.png +0 -0
  33. beratools/gui_tk/img/open.gif +0 -0
  34. beratools/gui_tk/img/open.png +0 -0
  35. beratools/gui_tk/img/tool.gif +0 -0
  36. beratools/gui_tk/img/tool.png +0 -0
  37. beratools/gui_tk/main.py +14 -0
  38. beratools/gui_tk/map_window.py +144 -0
  39. beratools/gui_tk/runner.py +1481 -0
  40. beratools/gui_tk/tooltip.py +55 -0
  41. beratools/third_party/pyqtlet2/__init__.py +9 -0
  42. beratools/third_party/pyqtlet2/leaflet/__init__.py +26 -0
  43. beratools/third_party/pyqtlet2/leaflet/control/__init__.py +6 -0
  44. beratools/third_party/pyqtlet2/leaflet/control/control.py +59 -0
  45. beratools/third_party/pyqtlet2/leaflet/control/draw.py +52 -0
  46. beratools/third_party/pyqtlet2/leaflet/control/layers.py +20 -0
  47. beratools/third_party/pyqtlet2/leaflet/core/Parser.py +24 -0
  48. beratools/third_party/pyqtlet2/leaflet/core/__init__.py +2 -0
  49. beratools/third_party/pyqtlet2/leaflet/core/evented.py +180 -0
  50. beratools/third_party/pyqtlet2/leaflet/layer/__init__.py +5 -0
  51. beratools/third_party/pyqtlet2/leaflet/layer/featuregroup.py +34 -0
  52. beratools/third_party/pyqtlet2/leaflet/layer/icon/__init__.py +1 -0
  53. beratools/third_party/pyqtlet2/leaflet/layer/icon/icon.py +30 -0
  54. beratools/third_party/pyqtlet2/leaflet/layer/imageoverlay.py +18 -0
  55. beratools/third_party/pyqtlet2/leaflet/layer/layer.py +105 -0
  56. beratools/third_party/pyqtlet2/leaflet/layer/layergroup.py +45 -0
  57. beratools/third_party/pyqtlet2/leaflet/layer/marker/__init__.py +1 -0
  58. beratools/third_party/pyqtlet2/leaflet/layer/marker/marker.py +91 -0
  59. beratools/third_party/pyqtlet2/leaflet/layer/tile/__init__.py +2 -0
  60. beratools/third_party/pyqtlet2/leaflet/layer/tile/gridlayer.py +4 -0
  61. beratools/third_party/pyqtlet2/leaflet/layer/tile/tilelayer.py +16 -0
  62. beratools/third_party/pyqtlet2/leaflet/layer/vector/__init__.py +5 -0
  63. beratools/third_party/pyqtlet2/leaflet/layer/vector/circle.py +15 -0
  64. beratools/third_party/pyqtlet2/leaflet/layer/vector/circlemarker.py +18 -0
  65. beratools/third_party/pyqtlet2/leaflet/layer/vector/path.py +5 -0
  66. beratools/third_party/pyqtlet2/leaflet/layer/vector/polygon.py +14 -0
  67. beratools/third_party/pyqtlet2/leaflet/layer/vector/polyline.py +18 -0
  68. beratools/third_party/pyqtlet2/leaflet/layer/vector/rectangle.py +14 -0
  69. beratools/third_party/pyqtlet2/leaflet/map/__init__.py +1 -0
  70. beratools/third_party/pyqtlet2/leaflet/map/map.py +220 -0
  71. beratools/third_party/pyqtlet2/mapwidget.py +45 -0
  72. beratools/third_party/pyqtlet2/web/custom.js +43 -0
  73. beratools/third_party/pyqtlet2/web/map.html +23 -0
  74. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/layers-2x.png +0 -0
  75. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/layers.png +0 -0
  76. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/marker-icon-2x.png +0 -0
  77. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/marker-icon.png +0 -0
  78. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/marker-shadow.png +0 -0
  79. beratools/third_party/pyqtlet2/web/modules/leaflet_193/leaflet.css +656 -0
  80. beratools/third_party/pyqtlet2/web/modules/leaflet_193/leaflet.js +6 -0
  81. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.codeclimate.yml +14 -0
  82. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.editorconfig +4 -0
  83. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.gitattributes +22 -0
  84. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.travis.yml +43 -0
  85. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/LICENSE +20 -0
  86. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/layers-2x.png +0 -0
  87. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/layers.png +0 -0
  88. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/marker-icon-2x.png +0 -0
  89. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/marker-icon.png +0 -0
  90. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/marker-shadow.png +0 -0
  91. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/spritesheet-2x.png +0 -0
  92. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/spritesheet.png +0 -0
  93. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/spritesheet.svg +156 -0
  94. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/leaflet.draw.css +10 -0
  95. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/leaflet.draw.js +10 -0
  96. beratools/third_party/pyqtlet2/web/modules/leaflet_rotatedMarker_020/LICENSE +22 -0
  97. beratools/third_party/pyqtlet2/web/modules/leaflet_rotatedMarker_020/leaflet.rotatedMarker.js +57 -0
  98. beratools/tools/Beratools_r_script.r +1120 -0
  99. beratools/tools/Ht_metrics.py +116 -0
  100. beratools/tools/__init__.py +7 -0
  101. beratools/tools/batch_processing.py +132 -0
  102. beratools/tools/canopy_threshold_relative.py +670 -0
  103. beratools/tools/canopycostraster.py +222 -0
  104. beratools/tools/centerline.py +176 -0
  105. beratools/tools/common.py +885 -0
  106. beratools/tools/fl_regen_csf.py +428 -0
  107. beratools/tools/forest_line_attributes.py +408 -0
  108. beratools/tools/forest_line_ecosite.py +216 -0
  109. beratools/tools/lapis_all.py +103 -0
  110. beratools/tools/least_cost_path_from_chm.py +152 -0
  111. beratools/tools/line_footprint_absolute.py +363 -0
  112. beratools/tools/line_footprint_fixed.py +282 -0
  113. beratools/tools/line_footprint_functions.py +720 -0
  114. beratools/tools/line_footprint_relative.py +64 -0
  115. beratools/tools/ln_relative_metrics.py +615 -0
  116. beratools/tools/r_cal_lpi_elai.r +25 -0
  117. beratools/tools/r_generate_pd_focalraster.r +101 -0
  118. beratools/tools/r_interface.py +80 -0
  119. beratools/tools/r_point_density.r +9 -0
  120. beratools/tools/rpy_chm2trees.py +86 -0
  121. beratools/tools/rpy_dsm_chm_by.py +81 -0
  122. beratools/tools/rpy_dtm_by.py +63 -0
  123. beratools/tools/rpy_find_cellsize.py +43 -0
  124. beratools/tools/rpy_gnd_csf.py +74 -0
  125. beratools/tools/rpy_hummock_hollow.py +85 -0
  126. beratools/tools/rpy_hummock_hollow_raster.py +71 -0
  127. beratools/tools/rpy_las_info.py +51 -0
  128. beratools/tools/rpy_laz2las.py +40 -0
  129. beratools/tools/rpy_lpi_elai_lascat.py +466 -0
  130. beratools/tools/rpy_normalized_lidar_by.py +56 -0
  131. beratools/tools/rpy_percent_above_dbh.py +80 -0
  132. beratools/tools/rpy_points2trees.py +88 -0
  133. beratools/tools/rpy_vegcoverage.py +94 -0
  134. beratools/tools/tiler.py +206 -0
  135. beratools/tools/tool_template.py +54 -0
  136. beratools/tools/vertex_optimization.py +620 -0
  137. beratools/tools/zonal_threshold.py +144 -0
  138. beratools-0.2.0.dist-info/METADATA +63 -0
  139. beratools-0.2.0.dist-info/RECORD +142 -0
  140. beratools-0.2.0.dist-info/WHEEL +4 -0
  141. beratools-0.2.0.dist-info/entry_points.txt +2 -0
  142. beratools-0.2.0.dist-info/licenses/LICENSE +22 -0
@@ -0,0 +1,2300 @@
1
+ {
2
+ "toolbox":
3
+ [
4
+ {
5
+ "category": "Pre-processing",
6
+ "description":"Tools used to pre-tagging and optimizing line vertices to help centerline and other tools to produce better results.",
7
+ "tools": [
8
+ {
9
+ "name": "Normalize LiDAR Data",
10
+ "info": "Normalize LiDAR data using K-nearest neighbourhood Invert distance weighting (Knnidw).",
11
+ "batch_processing": false,
12
+ "tool_type": "python",
13
+ "tool_api": "rpy_normalized_lidar_by",
14
+ "paramFile": "\\Scripts\\rpy_normalized_lidar_by_params.txt",
15
+ "image": "",
16
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
17
+ "parameters": [
18
+ {
19
+ "variable": "in_las_folder",
20
+ "parameter": "Input folder",
21
+ "description": "Input LiDAR point cloud folder.",
22
+ "type": "Directory",
23
+ "typelab": "",
24
+ "default": "",
25
+ "output": false,
26
+ "optional": false
27
+ },
28
+ {
29
+ "variable": "out_folder",
30
+ "parameter": "Output folder",
31
+ "description": "Output folder for the normalised LiDAR data results.",
32
+ "type": "Directory",
33
+ "typelab": "",
34
+ "default": "",
35
+ "output": true,
36
+ "optional": false
37
+ },
38
+ { "variable": "style",
39
+ "parameter": "By what algorithms",
40
+ "description": "Select the algorithm to generate the DSM raster.",
41
+ "type": "list",
42
+ "typelab": "text",
43
+ "data": ["tin","knnidw", "kriging"],
44
+ "default": "tin",
45
+ "output": false,
46
+ "optional": false
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ "name": "Generate DTM from LiDAR Data",
52
+ "info": "Generate DTM LiDAR data using TIN, IDW or Kriging algorithm.",
53
+ "batch_processing": false,
54
+ "tool_type": "python",
55
+ "tool_api": "rpy_dtm_by",
56
+ "paramFile": "\\Scripts\\rpy_dsm_chm_by_params.txt",
57
+ "image": "",
58
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
59
+ "parameters": [
60
+ {
61
+ "variable": "in_las_folder",
62
+ "parameter": "Input folder",
63
+ "description": "Input LiDAR point cloud folder.",
64
+ "type": "Directory",
65
+ "typelab": "",
66
+ "default": "",
67
+ "output": false,
68
+ "optional": false
69
+ },
70
+ {
71
+ "variable": "out_folder",
72
+ "parameter": "Output folder",
73
+ "description": "Output folder for the DSM raster results.",
74
+ "type": "Directory",
75
+ "typelab": "",
76
+ "default": "",
77
+ "output": true,
78
+ "optional": false
79
+ },
80
+ {
81
+ "variable": "cell_size",
82
+ "parameter": "Raster cell size",
83
+ "description": "Output cell size of the raster.",
84
+ "type": "number",
85
+ "typelab": "float",
86
+ "default": 1.0,
87
+ "output": false,
88
+ "optional": false
89
+ },
90
+ { "variable": "style",
91
+ "parameter": "By what algorithms",
92
+ "description": "Select the algorithm to generate the DSM raster.",
93
+ "type": "list",
94
+ "typelab": "text",
95
+ "data": ["tin","idw", "kriging"],
96
+ "default": "tin",
97
+ "output": false,
98
+ "optional": false
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ "name": "Generate DSM or CHM from LiDAR Data",
104
+ "info": "Generate DSM from de-normalized LiDAR data or CHM from normalized LiDAR data using TIN or PitFree algorithm.",
105
+ "batch_processing": false,
106
+ "tool_type": "python",
107
+ "tool_api": "rpy_dsm_chm_by",
108
+ "paramFile": "\\Scripts\\rpy_dsm_chm_by_params.txt",
109
+ "image": "",
110
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
111
+ "parameters": [
112
+ {
113
+ "variable": "in_las_folder",
114
+ "parameter": "Input folder",
115
+ "description": "Input LiDAR point cloud folder.",
116
+ "type": "Directory",
117
+ "typelab": "",
118
+ "default": "",
119
+ "output": false,
120
+ "optional": false
121
+ },
122
+ { "variable": "is_normalized",
123
+ "parameter": "Normalized LiDAR data",
124
+ "description": "Indicate the input Lidar data is already height normalized. Normalized step won't be carried.",
125
+ "type": "list",
126
+ "typelab": "bool",
127
+ "data": [true, false],
128
+ "default": false,
129
+ "output": false,
130
+ "optional": false
131
+ },
132
+ {
133
+ "variable": "out_folder",
134
+ "parameter": "Output folder",
135
+ "description": "Output folder for the DSM raster results.",
136
+ "type": "Directory",
137
+ "typelab": "",
138
+ "default": "",
139
+ "output": true,
140
+ "optional": false
141
+ },
142
+ {
143
+ "variable": "cell_size",
144
+ "parameter": "Raster cell size",
145
+ "description": "Output cell size of the raster.",
146
+ "type": "number",
147
+ "typelab": "float",
148
+ "default": 1.0,
149
+ "output": false,
150
+ "optional": false
151
+ },
152
+ { "variable": "style",
153
+ "parameter": "By what algorithms",
154
+ "description": "Select the algorithm to generate the DSM raster.",
155
+ "type": "list",
156
+ "typelab": "text",
157
+ "data": ["tin", "pitfree"],
158
+ "default": "tin",
159
+ "output": false,
160
+ "optional": false
161
+ }
162
+ ]
163
+ },
164
+ {
165
+ "name": "LiDAR data info",
166
+ "info": "Display the LiDAR data format version, data extent, area, number of points, point density, and number of files input of the input LiDAR data (las/laz).",
167
+ "batch_processing": false,
168
+ "tool_type": "python",
169
+ "tool_api": "rpy_las_info",
170
+ "paramFile": "\\Scripts\\rpy_las_info_params.txt",
171
+ "image": "",
172
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
173
+ "parameters": [
174
+ {
175
+ "variable": "in_las_folder",
176
+ "parameter": "Input folder",
177
+ "description": "Input LiDAR point cloud folder.",
178
+ "type": "Directory",
179
+ "typelab": "",
180
+ "default": "",
181
+ "output": false,
182
+ "optional": false
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "name": "Raster Cell size from LiDAR data",
188
+ "info": "Calculate the recommended output raster cell size (round up to the nearest 5cm) base on the sqaure root of (3 / point density) of LiDAR data (las/laz).",
189
+ "batch_processing": false,
190
+ "tool_type": "python",
191
+ "tool_api": "rpy_find_cellsize",
192
+ "paramFile": "\\Scripts\\rpy_find_cellsize_params.txt",
193
+ "image": "",
194
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
195
+ "parameters": [
196
+ {
197
+ "variable": "in_las_folder",
198
+ "parameter": "Input folder",
199
+ "description": "Input LiDAR point cloud folder.",
200
+ "type": "Directory",
201
+ "typelab": "",
202
+ "default": "",
203
+ "output": false,
204
+ "optional": false
205
+ }
206
+ ]
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "category": "Mapping",
212
+ "description":"Tools used to map center lines and footprint polygons of linear disturbances in forests using a Canopy Height Model (CHM) as reference.",
213
+ "tools": [
214
+ {
215
+ "name": "Canopy Cost Raster",
216
+ "info": "Creates a canopy raster and a cost raster from a CHM input raster. The output rasters are used for subsequent FLM tools.",
217
+ "multiprocessing": false,
218
+ "batch_processing": true,
219
+ "tool_type": "python",
220
+ "tool_api": "canopycostraster",
221
+ "paramFile": "\\Scripts\\FLM_CC_params.txt",
222
+ "image": "../Images/FLM_IO_CanopyCostRaster.gif",
223
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Mapping/CanopyCostRaster.html",
224
+ "parameters":[
225
+ {
226
+ "variable": "in_chm",
227
+ "parameter": "Canopy Height Model (CHM) Raster",
228
+ "description": "Input CHM raster file used as basis for mapping forest lines and their footprint. This layer should be projected in any Universal Transverse Mercator (UTM) coordinate system. The data should be preferably derived from high resolution LiDAR or photogrammetry (>25 pts/m²).",
229
+ "type": "raster",
230
+ "typelab": "TIF",
231
+ "default": "",
232
+ "output": false,
233
+ "optional": false
234
+ },
235
+ {
236
+ "variable": "canopy_ht_threshold",
237
+ "parameter": "Canopy Height Threshold",
238
+ "description": "Height threshold in meters above which CHM pixels are considered canopy.",
239
+ "type": "number",
240
+ "typelab": "float",
241
+ "default": 0.5,
242
+ "output": false,
243
+ "optional": true
244
+ },
245
+ {
246
+ "variable": "tree_radius",
247
+ "parameter": "Tree Search Radius",
248
+ "description": "Radius of canopy influence in the cost raster. This factor smooths the canopy in the cost raster which helps to prevent gaps in sparsely vegetated areas (e.g. wetlands) to be incorrectly identified as footprint. A large search radius (>=5m) may cause excessive smoothing of the cost raster which can lead to least cost paths ignoring forest-line nuances in sparsely vegetated forests. A small radius (<=1m) may cause the least cost path to cut corners through small gaps in sparse vegetation as well as avoid small obstacles that should not affect overall line shape.",
249
+ "type": "number",
250
+ "typelab": "float",
251
+ "default": 1.5,
252
+ "output": false,
253
+ "optional": true
254
+ },
255
+ {
256
+ "variable": "max_line_dist",
257
+ "parameter": "Maximum Line Distance",
258
+ "description": "Maximum euclidean distance from canopy. This is a second smoothing factor which helps to position the forest line shape in the center of the line footprint. An excessively small (<=1m) or large (>20m) value may cause the center line to be positioned close to one of the edges of the footprint.",
259
+ "type": "number",
260
+ "typelab": "float",
261
+ "default": 1.5,
262
+ "output": false,
263
+ "optional": true
264
+ },
265
+ {
266
+ "variable": "canopy_avoidance",
267
+ "parameter": "Canopy Avoidance",
268
+ "description": "Ratio of importance between canopy search radius and euclidean distance. A value close to zero (0) prioritizes search radius whereas a value close to one (1) prioritizes euclidean distance. A small value (<=0.1) may cause the forest lines to miss nuances in sparsely vegetated terrain whereas a big value (>=0.5) may overemphasize turns in complex trails. This factor influences final footprint size in a minor way.",
269
+ "type": "number",
270
+ "typelab": "float",
271
+ "default": 0.0,
272
+ "output": false,
273
+ "optional": true
274
+ },
275
+ {
276
+ "variable": "exponent",
277
+ "parameter": "Cost Raster Exponent",
278
+ "description": "Affects the cost of vegetated areas in an exponential fashion. A low (<=1) exponent may lead to lines cutting through corners, whereas a large (>=3) exponent may lead to least cost paths completely avoiding narrow lines.",
279
+ "type": "number",
280
+ "typelab": "int",
281
+ "default": 1,
282
+ "output": false,
283
+ "optional": true
284
+ },
285
+ {
286
+ "variable": "out_canopy",
287
+ "parameter": "Output Canopy Raster",
288
+ "description": "Output raster classified as canopy (1) and non-canopy (0).",
289
+ "type": "raster",
290
+ "typelab": "TIF",
291
+ "default": "",
292
+ "output": true,
293
+ "optional": false
294
+ },
295
+ {
296
+ "variable": "out_cost",
297
+ "parameter": "Output Cost Raster",
298
+ "description": "Output cost raster used in subsequent FLM tools for least-cost analysis.",
299
+ "type": "raster",
300
+ "typelab": "TIF",
301
+ "default": "",
302
+ "output": true,
303
+ "optional": false
304
+ }
305
+ ]
306
+ },
307
+ {
308
+ "name": "Vertex Optimization",
309
+ "info": "Relocating line intersections to seismic line paths",
310
+ "multiprocessing": true,
311
+ "batch_processing": true,
312
+ "tool_type": "python",
313
+ "tool_api": "vertex_optimization",
314
+ "paramFile": "\\Scripts\\FLM_VO_params.txt",
315
+ "image": "../Images/FLM_IO_VertexOptimization.gif",
316
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Pre-processing/VertexOptimization.html",
317
+ "parameters":[
318
+ {
319
+ "variable": "in_line",
320
+ "parameter": "Forest Lines Feature Class",
321
+ "description": "Input polyline shapefile.",
322
+ "type": "vector",
323
+ "typelab": "SHP",
324
+ "default": "",
325
+ "output": false,
326
+ "optional": false
327
+ },
328
+ {
329
+ "variable": "in_raster",
330
+ "parameter": "CHM/Cost Raster",
331
+ "description": "Input CHM/Cost raster used to calculate the least cost path.",
332
+ "type": "raster",
333
+ "typelab": "TIF",
334
+ "default": "",
335
+ "output": false,
336
+ "optional": false
337
+ },
338
+ {
339
+ "variable": "line_radius",
340
+ "parameter": "Line Processing Radius",
341
+ "description": "Maximum processing distance from input lines. A large search radius may increase processing times whereas a small radius may cause undesired clipping.",
342
+ "type": "number",
343
+ "typelab": "number",
344
+ "default": 35,
345
+ "output": false,
346
+ "optional": true
347
+ },
348
+ {
349
+ "variable": "out_line",
350
+ "parameter": "Output Center-Line",
351
+ "description": "Output optimized center-line shapefile.",
352
+ "type": "vector",
353
+ "typelab": "SHP",
354
+ "default": "",
355
+ "output": true,
356
+ "optional": false
357
+ }
358
+ ]
359
+ },
360
+ {
361
+ "name": "Least Cost Path from CHM",
362
+ "info": "Finding Least Cost path from Corridor between line vertices using CHM.",
363
+ "multiprocessing": true,
364
+ "batch_processing": true,
365
+ "tool_type": "python",
366
+ "tool_api": "least_cost_path_from_chm",
367
+ "paramFile": "\\Scripts\\FLM_CL_params.txt",
368
+ "image": "../Images/FLM_IO_CenterLine.gif",
369
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Mapping/Centerline.html",
370
+ "parameters":[
371
+ {
372
+ "variable": "in_line",
373
+ "parameter": "Forest Lines Feature Class",
374
+ "description": "Input polyline shapefile.",
375
+ "type": "vector",
376
+ "typelab": "SHP",
377
+ "default": "",
378
+ "output": false,
379
+ "optional": false
380
+ },
381
+ {
382
+ "variable": "in_chm",
383
+ "parameter": "CHM Raster",
384
+ "description": "Input raster image used to calculate the least cost path.",
385
+ "type": "raster",
386
+ "typelab": "TIF",
387
+ "default": "",
388
+ "output": false,
389
+ "optional": false
390
+ },
391
+ {
392
+ "variable": "line_radius",
393
+ "parameter": "Line Processing Radius",
394
+ "description": "Maximum processing distance from input lines. A large search radius may increase processing times whereas a small radius may cause undesired clipping.",
395
+ "type": "number",
396
+ "typelab": "float",
397
+ "default": 15.0,
398
+ "output": false,
399
+ "optional": true
400
+ },
401
+ {
402
+ "variable": "proc_segments",
403
+ "parameter": "Process Segments",
404
+ "description": "If set to True, will process each segment between each vertex of the input lines separately. If set to False, will process each line from start to end ignoring midpoints. The default is True, since it is assumed that the input lines for this tool are lines manually digitized at regional-scale with sparse vertices at a fine-scale. If using fine-scale (1:1,000) lines as input this may be set to False.",
405
+ "type": "list",
406
+ "typelab": "bool",
407
+ "data": [true, false],
408
+ "default": true,
409
+ "output": false,
410
+ "optional": false
411
+ },
412
+ {
413
+ "variable": "out_line",
414
+ "parameter": "Output Centerline",
415
+ "description": "Output centerline shapefile.",
416
+ "type": "vector",
417
+ "typelab": "SHP",
418
+ "default": "",
419
+ "output": true,
420
+ "optional": false
421
+ }
422
+ ]
423
+ },
424
+ {
425
+ "name": "Centerline",
426
+ "info": "Determines the least cost path between vertices of the input lines.",
427
+ "multiprocessing": true,
428
+ "batch_processing": true,
429
+ "tool_type": "python",
430
+ "tool_api": "centerline",
431
+ "paramFile": "\\Scripts\\FLM_CL_params.txt",
432
+ "image": "../Images/FLM_IO_CenterLine.gif",
433
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Mapping/Centerline.html",
434
+ "parameters":[
435
+ {
436
+ "variable": "in_line",
437
+ "parameter": "Forest Lines Feature Class",
438
+ "description": "Input polyline shapefile.",
439
+ "type": "vector",
440
+ "typelab": "SHP",
441
+ "default": "",
442
+ "output": false,
443
+ "optional": false
444
+ },
445
+ {
446
+ "variable": "in_raster",
447
+ "parameter": "CHM/Cost Raster",
448
+ "description": "Input raster image used to calculate the least cost path.",
449
+ "type": "raster",
450
+ "typelab": "TIF",
451
+ "default": "",
452
+ "output": false,
453
+ "optional": false
454
+ },
455
+ {
456
+ "variable": "line_radius",
457
+ "parameter": "Line Processing Radius",
458
+ "description": "Maximum processing distance from input lines. A large search radius may increase processing times whereas a small radius may cause undesired clipping.",
459
+ "type": "number",
460
+ "typelab": "float",
461
+ "default": 15.0,
462
+ "output": false,
463
+ "optional": true
464
+ },
465
+ {
466
+ "variable": "proc_segments",
467
+ "parameter": "Process Segments",
468
+ "description": "If set to True, will process each segment between each vertex of the input lines separately. If set to False, will process each line from start to end ignoring midpoints. The default is True, since it is assumed that the input lines for this tool are lines manually digitized at regional-scale with sparse vertices at a fine-scale. If using fine-scale (1:1,000) lines as input this may be set to False.",
469
+ "type": "list",
470
+ "typelab": "bool",
471
+ "data": [true, false],
472
+ "default": true,
473
+ "output": false,
474
+ "optional": false
475
+ },
476
+ {
477
+ "variable": "out_line",
478
+ "parameter": "Output Centerline",
479
+ "description": "Output centerline shapefile.",
480
+ "type": "vector",
481
+ "typelab": "SHP",
482
+ "default": "",
483
+ "output": true,
484
+ "optional": false
485
+ }
486
+ ]
487
+ },
488
+ {
489
+ "name": "Line Footprint by Absolute Threshold",
490
+ "info": "Creates footprint polygons for each input line based on a least cost corridor method and individual line thresholds.",
491
+ "multiprocessing": true,
492
+ "batch_processing": true,
493
+ "tool_type": "python",
494
+ "tool_api": "line_footprint_absolute",
495
+ "paramFile": "\\Scripts\\FLM_LFP_params.txt",
496
+ "image": "../Images/FLM_IO_LineFootprint.gif",
497
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Mapping/LineFootprint.html",
498
+ "parameters":[
499
+ {
500
+ "variable": "in_line",
501
+ "parameter": "Center-lines Feature Class",
502
+ "description": "Input polyline shapefile.",
503
+ "type": "vector",
504
+ "typelab": "SHP",
505
+ "default": "",
506
+ "output": false,
507
+ "optional": false
508
+ },
509
+ {
510
+ "variable": "in_canopy",
511
+ "parameter": "Canopy Raster",
512
+ "description": "Input raster image used to exclude canopy from line footprint.",
513
+ "type": "raster",
514
+ "typelab": "TIF",
515
+ "default": "",
516
+ "output": false,
517
+ "optional": false
518
+ },
519
+ {
520
+ "variable": "in_cost",
521
+ "parameter": "Cost Raster",
522
+ "description": "Input raster image used to calculate the least cost corridor.",
523
+ "type": "raster",
524
+ "typelab": "TIF",
525
+ "default": "",
526
+ "output": false,
527
+ "optional": false
528
+ },
529
+ {
530
+ "variable": "corridor_th_value",
531
+ "parameter": "Corridor Threshold",
532
+ "description": "The least cost corridor thresholds (LCCT).",
533
+ "type": "number",
534
+ "typelab": "float",
535
+ "default": 3.0,
536
+ "output": false,
537
+ "optional": true
538
+ },
539
+ {
540
+ "variable": "max_ln_width",
541
+ "parameter": "Maximum Line Width",
542
+ "description": "Maximum processing width for input lines. A large value may increase processing times whereas a small value may cause undesired clipping.",
543
+ "type": "number",
544
+ "typelab": "float",
545
+ "default": 32.0,
546
+ "output": false,
547
+ "optional": true
548
+ },
549
+ {
550
+ "variable": "exp_shk_cell",
551
+ "parameter": "Expand And Shrink Cell Range",
552
+ "description": "Range used for cell erosion before final polygons are generated. Useful to remove small artifacts. If the cell size is 1m or larger then set this as zero.",
553
+ "type": "number",
554
+ "typelab": "int",
555
+ "default": 0,
556
+ "output": false,
557
+ "optional": true
558
+ },
559
+ {
560
+ "variable": "out_footprint",
561
+ "parameter": "Output Footprint Shapefile",
562
+ "description": "Output footprint polygons.",
563
+ "type": "vector",
564
+ "typelab": "SHP",
565
+ "default": "",
566
+ "output": true,
567
+ "optional": false
568
+ },
569
+ {
570
+ "variable": "out_centerline",
571
+ "parameter": "Output Centerline Shapefile",
572
+ "description": "Output centerline polygons.",
573
+ "type": "vector",
574
+ "typelab": "SHP",
575
+ "default": "",
576
+ "output": true,
577
+ "optional": true
578
+ }
579
+ ]
580
+ },
581
+ {
582
+ "name": "Line Footprint by Relative Threshold",
583
+ "info": "Creates dynamic footprint polygons for each input line based on a least cost corridor method and individual line canopy thresholds and cost raster.",
584
+ "multiprocessing": true,
585
+ "batch_processing": true,
586
+ "tool_type": "python",
587
+ "tool_api": "line_footprint_relative",
588
+ "paramFile": "\\Scripts\\FLM_DLFP_params.txt",
589
+ "image": "../Images/FLM_IO_LineFootprint.gif",
590
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Mapping/DynLineFootprintFS.html",
591
+ "parameters":[
592
+ {
593
+ "variable": "in_line",
594
+ "parameter": "Center-lines Feature Class",
595
+ "description": "Input polyline shapefile.",
596
+ "type": "vector",
597
+ "typelab": "SHP",
598
+ "default": "",
599
+ "output": false,
600
+ "optional": false
601
+ },
602
+ {
603
+ "variable": "in_chm",
604
+ "parameter": "Input CHM Raster",
605
+ "description": "Input raster image used calculate the surrounding forest elevation percentile, create canopy and cost raster.",
606
+ "type": "raster",
607
+ "typelab": "TIF",
608
+ "default": "",
609
+ "output": false,
610
+ "optional": false
611
+ },
612
+ {
613
+ "variable": "max_ln_width",
614
+ "parameter": "Maximum Line Width",
615
+ "description": "Maximum processing width for input lines. A large value may increase processing times whereas a small value may cause undesired clipping.",
616
+ "type": "number",
617
+ "typelab": "float",
618
+ "default": 32.0,
619
+ "output": false,
620
+ "optional": true
621
+ },
622
+ {
623
+ "variable": "exp_shk_cell",
624
+ "parameter": "Expand And Shrink Cell Range",
625
+ "description": "Range used for cell erosion before final polygons are generated. Useful to remove small artifacts. If the cell size is 1m or larger then set this as zero.",
626
+ "type": "number",
627
+ "typelab": "int",
628
+ "default": 0,
629
+ "output": false,
630
+ "optional": true
631
+ },
632
+ {
633
+ "variable": "out_footprint",
634
+ "parameter": "Output Footprint Shapefile",
635
+ "description": "Output footprint polygons.",
636
+ "type": "vector",
637
+ "typelab": "SHP",
638
+ "default": "",
639
+ "output": true,
640
+ "optional": false
641
+ },
642
+ {
643
+ "variable": "out_centerline",
644
+ "parameter": "Output Centerline Shapefile",
645
+ "description": "Output centerline polygons.",
646
+ "type": "vector",
647
+ "typelab": "SHP",
648
+ "default": "",
649
+ "output": true,
650
+ "optional": true
651
+ },
652
+ {
653
+ "variable": "off_ln_dist",
654
+ "parameter": "Offset Line Distance",
655
+ "description": "Offset distance from input lines.",
656
+ "type": "number",
657
+ "typelab": "float",
658
+ "default": 10.0,
659
+ "output": false,
660
+ "optional": true
661
+ },
662
+ {
663
+ "variable": "canopy_percentile",
664
+ "parameter": "Canopy Percentile",
665
+ "description": "The Nth percentile of the surrounding forest.",
666
+ "type": "list",
667
+ "typelab": "int",
668
+ "data": [50,55,60,65,70,75,80,85,90,95],
669
+ "default": 90,
670
+ "output": false,
671
+ "optional": true
672
+ },
673
+ {
674
+ "variable": "canopy_thresh_percentage",
675
+ "parameter": "Canopy Threshold Percentage",
676
+ "description": "Apply % on calculating Canopy Threshold height from Canopy percentile elevation.",
677
+ "type": "number",
678
+ "typelab": "float",
679
+ "default": 50,
680
+ "output": false,
681
+ "optional": true
682
+ },
683
+ {
684
+ "variable": "tree_radius",
685
+ "parameter": "Tree Search Radius",
686
+ "description": "Radius of canopy influence in the cost raster. This factor smooths the canopy in the cost raster which helps to prevent gaps in sparsely vegetated areas (e.g. wetlands) to be incorrectly identified as footprint. A large search radius (>=5m) may cause excessive smoothing of the cost raster which can lead to least cost paths ignoring forest-line nuances in sparsely vegetated forests. A small radius (<=1m) may cause the least cost path to cut corners through small gaps in sparse vegetation as well as avoid small obstacles that should not affect overall line shape.",
687
+ "type": "number",
688
+ "typelab": "float",
689
+ "default": 1.5,
690
+ "output": false,
691
+ "optional": true
692
+ },
693
+ {
694
+ "variable": "max_line_dist",
695
+ "parameter": "Maximum Line Distance",
696
+ "description": "Maximum euclidean distance from canopy. This is a second smoothing factor which helps to position the forest line shape in the center of the line footprint. An excessively small (<=1m) or large (>20m) value may cause the center line to be positioned close to one of the edges of the footprint.",
697
+ "type": "number",
698
+ "typelab": "float",
699
+ "default": 1.5,
700
+ "output": false,
701
+ "optional": true
702
+ },
703
+ {
704
+ "variable": "canopy_avoidance",
705
+ "parameter": "Canopy Avoidance",
706
+ "description": "Ratio of importance between canopy search radius and euclidean distance. A value close to zero (0) prioritizes search radius whereas a value close to one (1) prioritizes euclidean distance. A small value (<=0.1) may cause the forest lines to miss nuances in sparsely vegetated terrain whereas a big value (>=0.5) may overemphasize turns in complex trails. This factor influences final footprint size in a minor way.",
707
+ "type": "number",
708
+ "typelab": "float",
709
+ "default": 0.0,
710
+ "output": false,
711
+ "optional": true
712
+ },
713
+ { "variable": "exponent",
714
+ "parameter": "Cost Raster Exponent",
715
+ "description": "Affects the cost of vegetated areas in an exponential fashion. A low (<=1) exponent may lead to lines cutting through corners, whereas a large (>=3) exponent may lead to least cost paths completely avoiding narrow lines.",
716
+ "type": "number",
717
+ "typelab": "int",
718
+ "default": 1,
719
+ "output": false,
720
+ "optional": true
721
+ }
722
+ ]
723
+ },
724
+ {
725
+ "name": "Line Footprint by Fixed Width",
726
+ "info": "Generating fixed width line footprint",
727
+ "multiprocessing": true,
728
+ "batch_processing": true,
729
+ "tool_type": "python",
730
+ "tool_api": "line_footprint_fixed",
731
+ "paramFile": "\\Scripts\\FLM_FF_params.txt",
732
+ "image": "../Images/FLM_IO_VertexOptimization.gif",
733
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Pre-processing/VertexOptimization.html",
734
+ "parameters":[
735
+ {
736
+ "variable": "in_line",
737
+ "parameter": "Forest Lines Feature Class",
738
+ "description": "Input polyline shapefile.",
739
+ "type": "vector",
740
+ "typelab": "SHP",
741
+ "default": "",
742
+ "output": false,
743
+ "optional": false
744
+ },
745
+ {
746
+ "variable": "in_footprint",
747
+ "parameter": "Footprint",
748
+ "description": "Input footprint.",
749
+ "type": "vector",
750
+ "typelab": "SHP",
751
+ "default": "",
752
+ "output": false,
753
+ "optional": false
754
+ },
755
+ {
756
+ "variable": "n_samples",
757
+ "parameter": "Sampling number",
758
+ "description": "Sampling number for each line.",
759
+ "type": "number",
760
+ "typelab": "int",
761
+ "default": 15,
762
+ "output": false,
763
+ "optional": true
764
+ },
765
+ {
766
+ "variable": "offset",
767
+ "parameter": "Perpendicular line length",
768
+ "description": "The length of the perpendicular line",
769
+ "type": "number",
770
+ "typelab": "float",
771
+ "default": 10.0,
772
+ "output": false,
773
+ "optional": true
774
+ },
775
+ {
776
+ "variable": "max_width",
777
+ "parameter": "Use maximum width",
778
+ "description": "Use maximum width",
779
+ "type": "list",
780
+ "typelab": "bool",
781
+ "data": [true, false],
782
+ "default": true,
783
+ "output": false,
784
+ "optional": true
785
+ },
786
+ {
787
+ "variable": "out_footprint",
788
+ "parameter": "Output Fixed Footprint",
789
+ "description": "Output fixed width footprint shapefile.",
790
+ "type": "vector",
791
+ "typelab": "SHP",
792
+ "default": "",
793
+ "output": true,
794
+ "optional": false
795
+ }
796
+ ]
797
+ }
798
+ ]
799
+ },
800
+ {
801
+ "category": "Attribution",
802
+ "description":"Tools used to generate attributes in the lines created with the Mapping Tools.",
803
+ "tools": [
804
+ {
805
+ "name": "Forest Line Ecosite Type",
806
+ "info": "Assign ecosite type to line segments",
807
+ "multiprocessing": true,
808
+ "batch_processing": true,
809
+ "tool_type": "python",
810
+ "tool_api": "forest_line_ecosite",
811
+ "paramFile": "\\Scripts\\FLM_FLA_params.txt",
812
+ "image": "../Images/FLM_IO_ForestLineEcosite.gif",
813
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Attribution/ForestLineEcosite.html",
814
+ "parameters":[
815
+ {
816
+ "variable": "in_line",
817
+ "parameter": "Input Lines",
818
+ "description": "Input forest line center shapefile which will be segmented and attributed.",
819
+ "type": "vector",
820
+ "typelab": "SHP",
821
+ "default": "",
822
+ "output": false,
823
+ "optional": false
824
+ },
825
+ {
826
+ "variable": "in_ecosite",
827
+ "parameter": "Input Ecosite Polygons",
828
+ "description": "Input ecosite type polygons.",
829
+ "type": "vector",
830
+ "typelab": "SHP",
831
+ "default": "",
832
+ "output": false,
833
+ "optional": false
834
+ },
835
+ {
836
+ "variable": "out_line",
837
+ "parameter": "Output Attributed Segments",
838
+ "description": "Output features that will be created.",
839
+ "type": "vector",
840
+ "typelab": "SHP",
841
+ "default": "",
842
+ "output": true,
843
+ "optional": false
844
+ }
845
+ ]
846
+ },
847
+ {
848
+ "name": "Forest Line Attributes",
849
+ "info": "Calculates a series of attributes related to forest line shape, size and microtopography. Line-derived attributes include: length, bearing, orientation and sinuosity; Polygon-derived attributes include: area, average width, perimeter and perimeter-area ratio; CHM-derived attributes include: average vegetation height, vegetation volume and vegetation roughness.",
850
+ "multiprocessing": true,
851
+ "batch_processing": true,
852
+ "tool_type": "python",
853
+ "tool_api": "forest_line_attributes",
854
+ "paramFile": "\\Scripts\\FLM_FLA_params.txt",
855
+ "image": "../Images/FLM_IO_ForestLineAttributes.gif",
856
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Attribution/ForestLineAttributes.html",
857
+ "parameters":[
858
+ {
859
+ "variable": "in_line",
860
+ "parameter": "Input Lines",
861
+ "description": "Input forest line center shapefile which will be segmented and attributed.",
862
+ "type": "vector",
863
+ "typelab": "SHP",
864
+ "default": "",
865
+ "output": false,
866
+ "optional": false
867
+ },
868
+ {
869
+ "variable": "in_footprint",
870
+ "parameter": "Input Footprint Polygons",
871
+ "description": "Input forest line footprint shapefile used to derive spatial attributes.",
872
+ "type": "vector",
873
+ "typelab": "SHP",
874
+ "default": "",
875
+ "output": false,
876
+ "optional": false
877
+ },
878
+ {
879
+ "variable": "in_chm",
880
+ "parameter": "Input Raster CHM",
881
+ "description": "Input canopy height model raster used to derive microtopography attributes.",
882
+ "type": "raster",
883
+ "typelab": "TIF",
884
+ "default": "",
885
+ "output": false,
886
+ "optional": false
887
+ },
888
+ {
889
+ "variable": "sampling_type",
890
+ "parameter": "Sampling Type",
891
+ "description": "How the input lines are segmented for attribution: IN-FEATURES, the input features are attributed without subdivisions; WHOLE-LINE, the entire extent of each line is attributed without subdivisions; LINE-CROSSINGS, each line is split at line intersections; ARBITRARY, each line is segmented using an arbitrary length.",
892
+ "type": "list",
893
+ "typelab": "text",
894
+ "data": ["IN-FEATURES", "ARBITRARY", "LINE-CROSSINGS"],
895
+ "default": "IN-FEATURES",
896
+ "output": false,
897
+ "optional": false
898
+ },
899
+ {
900
+ "variable": "seg_len",
901
+ "parameter": "Segment Length",
902
+ "description": "Arbitrary segment length (m). If the Sampling Type field is not set as ARBITRARY this field is ignored.",
903
+ "type": "number",
904
+ "typelab": "float",
905
+ "default": 50.0,
906
+ "output": false,
907
+ "optional": true
908
+ },
909
+ {
910
+ "variable": "ln_split_tol",
911
+ "parameter": "Line Split Tolerance",
912
+ "description": "Tolerance radius (m) used to split lines. If the Sampling Type field is set as WHOLE-LINE this field is ignored.",
913
+ "type": "number",
914
+ "typelab": "float",
915
+ "default": 3.0,
916
+ "output": false,
917
+ "optional": true
918
+ },
919
+ {
920
+ "variable": "max_ln_width",
921
+ "parameter": "Maximum Line Width",
922
+ "description": "Maximum line width (m) used to search for surrounding footprint.",
923
+ "type": "number",
924
+ "typelab": "float",
925
+ "default": 25.0,
926
+ "output": false,
927
+ "optional": true
928
+ },
929
+ {
930
+ "variable": "out_line",
931
+ "parameter": "Output Attributed Segments",
932
+ "description": "Output features that will be created.",
933
+ "type": "vector",
934
+ "typelab": "SHP",
935
+ "default": "",
936
+ "output": true,
937
+ "optional": false
938
+ }
939
+ ]
940
+ },
941
+ {
942
+ "name": "Raster Line Attributes",
943
+ "info": "Samples a raster image along lines and assigns cell statistics to each line.",
944
+ "multiprocessing": false,
945
+ "batch_processing": true,
946
+ "tool_type": "python",
947
+ "tool_api": "raster_line_attributes",
948
+ "paramFile": "\\Scripts\\FLM_RLA_params.txt",
949
+ "image": "../Images/FLM_IO_RasterLineAttributes.gif",
950
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Attribution/RasterLineAttributes.html",
951
+ "parameters":[
952
+ {
953
+ "variable": "in_line",
954
+ "parameter": "Input Lines",
955
+ "description": "Input forest line center shapefile which will be segmented and attributed.",
956
+ "type": "vector",
957
+ "typelab": "SHP",
958
+ "default": "",
959
+ "output": false,
960
+ "optional": false
961
+ },
962
+ {
963
+ "variable": "in_chm",
964
+ "parameter": "Input CHM File",
965
+ "description": "Input raster image that will be sampled to attribute the input lines.",
966
+ "type": "raster",
967
+ "typelab": "TIF",
968
+ "default": "",
969
+ "output": false,
970
+ "optional": false
971
+ },
972
+ {
973
+ "variable": "sampling_type",
974
+ "parameter": "Sampling Type",
975
+ "description": "How the input lines are segmented for attribution: IN-FEATURES, the input features are attributed without subdivisions; WHOLE-LINE, the entire extent of each line is attributed without subdivisions; LINE-CROSSINGS, each line is split at line intersections; ARBITRARY, each line is segmented using an arbitrary length.",
976
+ "type": "list",
977
+ "typelab": "text",
978
+ "data": ["IN-FEATURES", "WHOLE-LINE", "LINE-CROSSINGS", "ARBITRARY"],
979
+ "default": "LINE-CROSSINGS",
980
+ "output": false,
981
+ "optional": false
982
+ },
983
+ {
984
+ "variable": "sampling_interval",
985
+ "parameter": "Sampling Interval",
986
+ "description": "Sampling interval along input lines in meters.",
987
+ "type": "number",
988
+ "typelab": "float",
989
+ "default": 5.0,
990
+ "output": false,
991
+ "optional": true
992
+ },
993
+ {
994
+ "variable": "segment_length",
995
+ "parameter": "Segment Length",
996
+ "description": "Arbitrary segment length (m). If the Sampling Type field is not set as ARBITRARY this field is ignored.",
997
+ "type": "number",
998
+ "typelab": "float",
999
+ "default": 50.0,
1000
+ "output": false,
1001
+ "optional": true
1002
+ },
1003
+ {
1004
+ "variable": "line_split_tolerance",
1005
+ "parameter": "Line Split Tolerance",
1006
+ "description": "Tolerance radius (m) used to split lines. If the Sampling Type field is set as WHOLE-LINE this field is ignored.",
1007
+ "type": "number",
1008
+ "typelab": "float",
1009
+ "default": 3.0,
1010
+ "output": false,
1011
+ "optional": true
1012
+ },
1013
+ {
1014
+ "variable": "sampling_method",
1015
+ "parameter": "Sampling Method",
1016
+ "description": "Method used to handle samples when attributing lines: Minimum, Maximum, Mean, Standard Deviation, Median, Mode, or Range.",
1017
+ "type": "list",
1018
+ "typelab": "text",
1019
+ "data": ["Minimum", "Maximum", "Mean", "Standard Deviation", "Median", "Mode", "Range"],
1020
+ "default": "Mean",
1021
+ "output": false,
1022
+ "optional": false
1023
+ },
1024
+ {
1025
+ "variable": "out_line",
1026
+ "parameter": "Output Attributed Segments",
1027
+ "description": "Output features that will be created.",
1028
+ "type": "vector",
1029
+ "typelab": "SHP",
1030
+ "default": "",
1031
+ "output": true,
1032
+ "optional": false
1033
+ }
1034
+ ]
1035
+ },
1036
+ {
1037
+ "name": "Forest Line Regeneration Classify",
1038
+ "info": "Classify line into regeneration classes: Arrested, Regenerating or Advanced.",
1039
+ "multiprocessing": true,
1040
+ "batch_processing": true,
1041
+ "tool_type": "python",
1042
+ "tool_api": "fl_regen_csf",
1043
+ "paramFile": "\\Scripts\\fl_restoration_csf_params.txt",
1044
+ "image": "../Images/FLM_IO_ForestLineAttributes.gif",
1045
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Attribution/ForestLineAttributes.html",
1046
+ "parameters":[
1047
+ {
1048
+ "variable": "in_line",
1049
+ "parameter": "Input Lines",
1050
+ "description": "Input forest line center shapefile which will be segmented and attributed.",
1051
+ "type": "vector",
1052
+ "typelab": "SHP",
1053
+ "default": "",
1054
+ "output": false,
1055
+ "optional": false
1056
+ },
1057
+ {
1058
+ "variable": "in_footprint",
1059
+ "parameter": "Input Footprint Polygons",
1060
+ "description": "Input forest line footprint feature layer (shapefile) used to derive spatial attributes.",
1061
+ "type": "vector",
1062
+ "typelab": "SHP",
1063
+ "default": "",
1064
+ "output": false,
1065
+ "optional": false
1066
+ },
1067
+ {
1068
+ "variable": "in_trees",
1069
+ "parameter": "Input tree features layer",
1070
+ "description": "Input forest point tree features layer (shapefile) used to derive spatial attributes.",
1071
+ "type": "vector",
1072
+ "typelab": "SHP",
1073
+ "default": "",
1074
+ "output": false,
1075
+ "optional": false
1076
+ },
1077
+ {
1078
+ "variable": "in_change",
1079
+ "parameter": "Input change raster",
1080
+ "description": "Input raster shows the changes of surface over time period.",
1081
+ "type": "raster",
1082
+ "typelab": "TIF",
1083
+ "default": "",
1084
+ "output": false,
1085
+ "optional": false
1086
+ },
1087
+ { "variable": "proc_segments",
1088
+ "parameter": "Process Segments @ Every 10m",
1089
+ "description": "If set to False, will process each line from start to end ignoring midpoints. If set to True, will process every 10m segment(s) between first and end of the input lines separately. The default is False, since it is assumed that the input lines for this tool are manually corrected center-lines. If using regional-scale (1:20,000) lines as input this may be set to True.",
1090
+ "type": "list",
1091
+ "typelab": "bool",
1092
+ "data": [true, false],
1093
+ "default": false,
1094
+ "output": false,
1095
+ "optional": false
1096
+ },
1097
+
1098
+ {
1099
+ "variable": "out_line",
1100
+ "parameter": "Output Attributed Segments",
1101
+ "description": "Output features that will be created.",
1102
+ "type": "vector",
1103
+ "typelab": "SHP",
1104
+ "default": "",
1105
+ "output": true,
1106
+ "optional": false
1107
+ }
1108
+ ]
1109
+ }
1110
+ ]
1111
+ },
1112
+ {
1113
+ "category": "Metrics",
1114
+ "description": "Tools used to generate line metrics.",
1115
+ "tools": [
1116
+ {
1117
+ "name": "Lapis",
1118
+ "info": "External Lapis application.",
1119
+ "multiprocessing": false,
1120
+ "batch_processing": false,
1121
+ "tool_type": "executable",
1122
+ "tool_api": "lapis_all",
1123
+ "paramFile": "\\Scripts\\BT_Lapis_All_params.txt",
1124
+ "image": "../Images/BT_Lapis.gif",
1125
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Metrics/Lapis_all.html",
1126
+ "parameters": [
1127
+ {
1128
+ "variable": "in_dtm",
1129
+ "parameter": "DTM file",
1130
+ "description": "Input DTM file.",
1131
+ "type": "raster",
1132
+ "typelab": "TIF",
1133
+ "default": "",
1134
+ "output": false,
1135
+ "optional": false
1136
+ },
1137
+ {
1138
+ "variable": "in_las",
1139
+ "parameter": "LAS File",
1140
+ "description": "Input LAS file.",
1141
+ "type": "lidar",
1142
+ "typelab": "LAS",
1143
+ "default": "",
1144
+ "output": false,
1145
+ "optional": false
1146
+ },
1147
+ {
1148
+ "variable": "out_dir",
1149
+ "parameter": "Output Directory",
1150
+ "description": "Output directory.",
1151
+ "type": "Directory",
1152
+ "typelab": "",
1153
+ "default": "",
1154
+ "output": true,
1155
+ "optional": false
1156
+ }
1157
+ ]
1158
+ },
1159
+ {
1160
+ "name": "Relative Metrics to Line",
1161
+ "info": "Compute Surface Area Ratio (SAR) and elevation from line to its adjacent forest.",
1162
+ "multiprocessing": true,
1163
+ "batch_processing": false,
1164
+ "tool_type": "python",
1165
+ "tool_api": "ln_relative_metrics",
1166
+ "paramFile": "\\Scripts\\FLM_SAR_params.txt",
1167
+ "image": "../Images/SAR.gif",
1168
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/SAR.html",
1169
+ "parameters":[
1170
+ { "variable": "in_line",
1171
+ "parameter": "Center-lines Feature Class",
1172
+ "description": "Input polyline shapefile.",
1173
+ "type": "vector",
1174
+ "typelab": "SHP",
1175
+ "default": "",
1176
+ "output": false,
1177
+ "optional": false
1178
+ },
1179
+ {
1180
+ "variable": "raster_type",
1181
+ "parameter": "Raster Contains",
1182
+ "description": "The information of the raster cells contain.",
1183
+ "type": "list",
1184
+ "typelab": "text",
1185
+ "data": ["DEM"],
1186
+ "default": "DEM",
1187
+ "output": false,
1188
+ "optional": false
1189
+ },
1190
+ { "variable": "in_raster",
1191
+ "parameter": "Input Raster",
1192
+ "description": "Input raster image (e.g CHM or DTM) used calculate the surrounding forest matrix.",
1193
+ "type": "raster",
1194
+ "typelab": "TIF",
1195
+ "default": "",
1196
+ "output": false,
1197
+ "optional": false
1198
+ },
1199
+ { "variable": "proc_segments",
1200
+ "parameter": "Process Segments @ Every 10m",
1201
+ "description": "If set to False, will process each line from start to end ignoring midpoints. If set to True, will process every 10m segment(s) between first and end of the input lines separately. The default is False, since it is assumed that the input lines for this tool are manually corrected center-lines. If using regional-scale (1:20,000) lines as input this may be set to True.",
1202
+ "type": "list",
1203
+ "typelab": "bool",
1204
+ "data": [true, false],
1205
+ "default": false,
1206
+ "output": false,
1207
+ "optional": false
1208
+ },
1209
+ { "variable": "buffer_ln_dist",
1210
+ "parameter": "Buffer Distance",
1211
+ "description": "Buffer distance from Center lines.",
1212
+ "type": "number",
1213
+ "typelab": "float",
1214
+ "default": 5.0,
1215
+ "output": false,
1216
+ "optional": true
1217
+ },
1218
+ { "variable": "cl_metrics_gap",
1219
+ "parameter": "Gap between CL's buffer and matrix",
1220
+ "description": "The gap between CL. buffer edge to its adjacent forest matrix.",
1221
+ "type": "list",
1222
+ "typelab": "int",
1223
+ "data": [1,2,3,5,10,25],
1224
+ "default": 3,
1225
+ "output": false,
1226
+ "optional": true
1227
+ },
1228
+ { "variable": "forest_buffer_dist",
1229
+ "parameter": "Forest Buffer Distance",
1230
+ "description": "Depth of the surrounding forest matrix.",
1231
+ "type": "number",
1232
+ "typelab": "float",
1233
+ "default": 5.0,
1234
+ "output": false,
1235
+ "optional": true
1236
+ },
1237
+ { "variable": "out_line",
1238
+ "parameter": "Output Lines",
1239
+ "description": "Output features that will be created.",
1240
+ "type": "vector",
1241
+ "typelab": "SHP",
1242
+ "default": "",
1243
+ "output": true,
1244
+ "optional": false
1245
+ }
1246
+ ]
1247
+ },
1248
+ {
1249
+ "name": "Individual Tree Detection from LiDAR Data",
1250
+ "info": "Tree detection from Lidar data using dynamic moving windows from Popescu & Wynne (2004) (LidR package).",
1251
+ "multiprocessing": true,
1252
+ "batch_processing": false,
1253
+ "tool_type": "python",
1254
+ "tool_api": "rpy_points2trees",
1255
+ "paramFile": "\\Scripts\\RPY_points2trees_params.txt",
1256
+ "image": "",
1257
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1258
+ "parameters": [
1259
+ {
1260
+ "variable": "in_las_folder",
1261
+ "parameter": "Input LiDAR point cloud folder.",
1262
+ "description": "Input LiDAR point cloud folder.",
1263
+ "type": "Directory",
1264
+ "typelab": "",
1265
+ "default": "",
1266
+ "output": false,
1267
+ "optional": false
1268
+ },
1269
+ { "variable": "is_normalized",
1270
+ "parameter": "Normalized LiDAR data",
1271
+ "description": "Indicate the input Lidar data is already height normalized. Normalized step won't be carried.",
1272
+ "type": "list",
1273
+ "typelab": "bool",
1274
+ "data": [true, false],
1275
+ "default": false,
1276
+ "output": false,
1277
+ "optional": false
1278
+ },
1279
+ {
1280
+ "variable": "hmin",
1281
+ "parameter": "Minimum height of a tree .",
1282
+ "description": "input a minimum height of a tree.",
1283
+ "type": "number",
1284
+ "typelab": "float",
1285
+ "default": 3.0,
1286
+ "output": false,
1287
+ "optional": false
1288
+ },
1289
+ { "variable": "cell_size",
1290
+ "parameter": "Raster cell size",
1291
+ "description": "Raster cell size (base area) for generate tree density map.",
1292
+ "type": "number",
1293
+ "typelab": "float",
1294
+ "default": 5.0,
1295
+ "output": false,
1296
+ "optional": false
1297
+ },
1298
+ { "variable": "do_nCHM",
1299
+ "parameter": "Generate normalized CHM",
1300
+ "description": "Generate normalized CHM from normalized LiDAR data (Option output).",
1301
+ "type": "list",
1302
+ "typelab": "bool",
1303
+ "data": [true, false],
1304
+ "default": false,
1305
+ "output": false,
1306
+ "optional": true
1307
+ },
1308
+ {
1309
+ "variable": "out_folder",
1310
+ "parameter": "Output folder for detected tree shapefile",
1311
+ "description": "Output folder for detected tree shapefile (.shp).",
1312
+ "type": "Directory",
1313
+ "typelab": "",
1314
+ "default": "",
1315
+ "output": true,
1316
+ "optional": false
1317
+ }
1318
+ ]
1319
+ },
1320
+ {
1321
+ "name": "Hummock and Hollow from LiDAR Data",
1322
+ "info": "Hummock and Hollow (Micro-topography) detection from Lidar data using dynamic moving windows and lawns threshold.",
1323
+ "multiprocessing": true,
1324
+ "batch_processing": false,
1325
+ "tool_type": "python",
1326
+ "tool_api": "rpy_hummock_hollow",
1327
+ "paramFile": "\\Scripts\\Hummock_Hollow_params.txt",
1328
+ "image": "",
1329
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1330
+ "parameters": [
1331
+ {
1332
+ "variable": "in_las_folder",
1333
+ "parameter": "Input LiDAR point cloud folder.",
1334
+ "description": "Input LiDAR point cloud folder.",
1335
+ "type": "Directory",
1336
+ "typelab": "",
1337
+ "default": "",
1338
+ "output": false,
1339
+ "optional": false
1340
+ },
1341
+ {
1342
+ "variable": "Smooth_by",
1343
+ "parameter": "Smoothing DEM by mean or median.",
1344
+ "description": "Select parameter : 'mean' or 'median' to smooth the DEM surface.",
1345
+ "type": "list",
1346
+ "typelab": "text",
1347
+ "data": ["mean", "median"],
1348
+ "default": "mean",
1349
+ "output": false,
1350
+ "optional": true
1351
+ },
1352
+ {
1353
+ "variable": "Min_ws",
1354
+ "parameter": "Minimum circular diameter of the dynamic moving window (in meter).",
1355
+ "description": "Minimum circular diameter of the dynamic moving window used to detect the local maxima in the units of the input data (usually meters).",
1356
+ "type": "number",
1357
+ "typelab": "float",
1358
+ "default": 3.0,
1359
+ "output": false,
1360
+ "optional": false
1361
+ },
1362
+ {
1363
+ "variable": "lawn_range",
1364
+ "parameter": "Height consider as lawns.",
1365
+ "description": "Set the height in meter consider as lawns.",
1366
+ "type": "number",
1367
+ "typelab": "float",
1368
+ "default": 0.1,
1369
+ "output": false,
1370
+ "optional": false
1371
+ },
1372
+ { "variable": "cell_size",
1373
+ "parameter": "Output raster cell size in meter.",
1374
+ "description": "Define the output Hummock/Hollow raster' cell size.",
1375
+ "type": "number",
1376
+ "typelab": "float",
1377
+ "default": 1.0,
1378
+ "output": false,
1379
+ "optional": false
1380
+ },
1381
+ { "variable": "out_folder",
1382
+ "parameter": "Output folder for results raster.",
1383
+ "description": "Output folder for hummock and hollow raster (.tif).",
1384
+ "type": "Directory",
1385
+ "typelab": "",
1386
+ "default": "",
1387
+ "output": true,
1388
+ "optional": false
1389
+ }
1390
+ ]
1391
+ },
1392
+ {
1393
+ "name": "Hummock and Hollow from DTM Raster Data",
1394
+ "info": "Hummock and Hollow (Micro-topography) detection from DEM raster using dynamic moving windows and lawns threshold.",
1395
+ "multiprocessing": true,
1396
+ "batch_processing": true,
1397
+ "tool_type": "python",
1398
+ "tool_api": "rpy_hummock_hollow_raster",
1399
+ "paramFile": "\\Scripts\\Hummock_Hollow_params.txt",
1400
+ "image": "",
1401
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1402
+ "parameters": [
1403
+ {
1404
+ "variable": "in_raster",
1405
+ "parameter": "Input DEM raster.",
1406
+ "description": "Input DEM raster.",
1407
+ "type": "raster",
1408
+ "typelab": "TIF",
1409
+ "default": "",
1410
+ "output": false,
1411
+ "optional": false
1412
+ },
1413
+ {
1414
+ "variable": "Min_ws",
1415
+ "parameter": "Minimum circular diameter of the dynamic moving window (in meter).",
1416
+ "description": "Minimum circular diameter of the dynamic moving window used to detect the local maxima in the units of the input data (usually meters).",
1417
+ "type": "number",
1418
+ "typelab": "float",
1419
+ "default": 3.0,
1420
+ "output": false,
1421
+ "optional": false
1422
+ },
1423
+ {
1424
+ "variable": "Smooth_by",
1425
+ "parameter": "Smoothing DEM by mean or median.",
1426
+ "description": "Select parameter : 'mean' or 'median' to smooth the DEM surface.",
1427
+ "type": "list",
1428
+ "typelab": "text",
1429
+ "data": ["mean", "median"],
1430
+ "default": "mean",
1431
+ "output": false,
1432
+ "optional": true
1433
+ },
1434
+ {
1435
+ "variable": "lawn_range",
1436
+ "parameter": "Height consider as lawns.",
1437
+ "description": "Set the height in meter consider as lawns.",
1438
+ "type": "number",
1439
+ "typelab": "float",
1440
+ "default": 0.1,
1441
+ "output": false,
1442
+ "optional": false
1443
+ },
1444
+ { "variable": "cell_size",
1445
+ "parameter": "Output raster cell size in meter.",
1446
+ "description": "Define the output Hummock/Hollow raster' cell size.",
1447
+ "type": "number",
1448
+ "typelab": "float",
1449
+ "default": 1.0,
1450
+ "output": false,
1451
+ "optional": false
1452
+ },
1453
+ {
1454
+ "variable": "out_folder",
1455
+ "parameter": "Output folder for result raster.",
1456
+ "description": "Output folder for hummock and hollow raster (.tif).",
1457
+ "type": "Directory",
1458
+ "typelab": "",
1459
+ "default": "",
1460
+ "output": true,
1461
+ "optional": false
1462
+ }
1463
+ ]
1464
+ },
1465
+ {
1466
+ "name": "Height Metrics from LiDAR Data",
1467
+ "info": "Height Metrics (Zmax, Zmean, Zsd, ZQ30-ZQ90, ZQ99 (percentile) from Lidar data using lidR package.",
1468
+ "multiprocessing": true,
1469
+ "batch_processing": false,
1470
+ "tool_type": "python",
1471
+ "tool_api": "Ht_metrics",
1472
+ "paramFile": "\\Scripts\\Ht_metrics.txt",
1473
+ "image": "",
1474
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1475
+ "parameters": [
1476
+ {
1477
+ "variable": "in_las_folder",
1478
+ "parameter": "Input LiDAR point cloud folder.",
1479
+ "description": "Input LiDAR point cloud folder.",
1480
+ "type": "Directory",
1481
+ "typelab": "",
1482
+ "default": "",
1483
+ "output": false,
1484
+ "optional": false
1485
+ },
1486
+ { "variable": "cell_size",
1487
+ "parameter": "Base area in meter (cell size).",
1488
+ "description": "Define the base area (raster cell size) for Height metrics.",
1489
+ "type": "number",
1490
+ "typelab": "float",
1491
+ "default": 1.0,
1492
+ "output": false,
1493
+ "optional": false
1494
+ },
1495
+ {
1496
+ "variable": "out_folder",
1497
+ "parameter": "Output folder for height metrics raster.",
1498
+ "description": "Output folder for height metrics raster (.tif).",
1499
+ "type": "Directory",
1500
+ "typelab": "",
1501
+ "default": "",
1502
+ "output": true,
1503
+ "optional": false
1504
+ }
1505
+ ]
1506
+ },
1507
+ {
1508
+ "name": "Vegetation Coverage from Lidar Data",
1509
+ "info": "Finding Vegetation Coverage from Lidar data using range of vegetation layer height.",
1510
+ "batch_processing": false,
1511
+ "tool_type": "python",
1512
+ "tool_api": "rpy_vegcoverage",
1513
+ "paramFile": "\\Scripts\\RPY_vegcoverage_params.txt",
1514
+ "image": "",
1515
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1516
+ "parameters": [
1517
+ {
1518
+ "variable": "in_las_folder",
1519
+ "parameter": "Input LiDAR point cloud folder.",
1520
+ "description": "Input LiDAR point cloud folder.",
1521
+ "type": "Directory",
1522
+ "typelab": "",
1523
+ "default": "",
1524
+ "output": false,
1525
+ "optional": false
1526
+ },
1527
+ { "variable": "is_normalized",
1528
+ "parameter": "Normalized LiDAR data",
1529
+ "description": "Indicate the input Lidar data is already height normalized. Normalized step won't be carried.",
1530
+ "type": "list",
1531
+ "typelab": "bool",
1532
+ "data": [true, false],
1533
+ "default": false,
1534
+ "output": false,
1535
+ "optional": false
1536
+ },
1537
+ {
1538
+ "variable": "out_folder",
1539
+ "parameter": "Output folder for the raster results.",
1540
+ "description": "Output folder for the raster results.",
1541
+ "type": "Directory",
1542
+ "typelab": "",
1543
+ "default": "",
1544
+ "output": true,
1545
+ "optional": false
1546
+ },
1547
+ {
1548
+ "variable": "hmin",
1549
+ "parameter": "Minimum height",
1550
+ "description": "Minimum height of vegetation layer.",
1551
+ "type": "number",
1552
+ "typelab": "float",
1553
+ "default": 3.0,
1554
+ "output": false,
1555
+ "optional": false
1556
+ },
1557
+ {
1558
+ "variable": "hmax",
1559
+ "parameter": "Maximum height",
1560
+ "description": "Maximum height of vegetation layer.",
1561
+ "type": "number",
1562
+ "typelab": "float",
1563
+ "default": 10.0,
1564
+ "output": false,
1565
+ "optional": false
1566
+ },
1567
+ {
1568
+ "variable": "cell_size",
1569
+ "parameter": "Raster cell size",
1570
+ "description": "Output area based (cell size) raster of vegetation coverage.",
1571
+ "type": "number",
1572
+ "typelab": "float",
1573
+ "default": 5.0,
1574
+ "output": false,
1575
+ "optional": false
1576
+ }
1577
+ ]
1578
+ },
1579
+ {
1580
+ "name": "Percentage Returns above DBH",
1581
+ "info": "Compute percentage of returns above DBH from Lidar data.",
1582
+ "batch_processing": false,
1583
+ "tool_type": "python",
1584
+ "tool_api": "rpy_percent_above_dbh",
1585
+ "paramFile": "\\Scripts\\RPY_PercentaboveDBH_params.txt",
1586
+ "image": "",
1587
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1588
+ "parameters": [
1589
+ {
1590
+ "variable": "in_las_folder",
1591
+ "parameter": "Input LiDAR point cloud folder.",
1592
+ "description": "Input LiDAR point cloud folder.",
1593
+ "type": "Directory",
1594
+ "typelab": "",
1595
+ "default": "",
1596
+ "output": false,
1597
+ "optional": false
1598
+ },
1599
+ { "variable": "is_normalized",
1600
+ "parameter": "Normalized LiDAR data",
1601
+ "description": "Indicate the input Lidar data is already height normalized. Normalized step won't be carried.",
1602
+ "type": "list",
1603
+ "typelab": "bool",
1604
+ "data": [true, false],
1605
+ "default": false,
1606
+ "output": false,
1607
+ "optional": false
1608
+ },
1609
+ {
1610
+ "variable": "out_folder",
1611
+ "parameter": "Output folder for the raster results.",
1612
+ "description": "Output folder for the raster results.",
1613
+ "type": "Directory",
1614
+ "typelab": "",
1615
+ "default": "",
1616
+ "output": true,
1617
+ "optional": false
1618
+ },
1619
+ {
1620
+ "variable": "DBH",
1621
+ "parameter": "DBH height(m)",
1622
+ "description": "Define the DBH height in meter.",
1623
+ "type": "number",
1624
+ "typelab": "float",
1625
+ "default": 1.30,
1626
+ "output": false,
1627
+ "optional": false
1628
+ },
1629
+ {
1630
+ "variable": "cell_size",
1631
+ "parameter": "Raster cell size",
1632
+ "description": "Output area based (cell size) raster of vegetation coverage.",
1633
+ "type": "number",
1634
+ "typelab": "float",
1635
+ "default": 5.0,
1636
+ "output": false,
1637
+ "optional": false
1638
+ }
1639
+ ]
1640
+ }
1641
+ ]
1642
+ },
1643
+ {
1644
+ "category": "Auxiliary",
1645
+ "description":"Helpful tools to prepare inputs for the Mapping Tools.",
1646
+ "tools": [
1647
+ {
1648
+ "name": "Zonal Threshold",
1649
+ "info": "Assigns corridor thresholds to the input lines based on their surrounding canopy density.",
1650
+ "multiprocessing": true,
1651
+ "batch_processing": false,
1652
+ "tool_type": "python",
1653
+ "tool_api": "zonal_threshold",
1654
+ "paramFile": "\\Scripts\\FLM_ZT_params.txt",
1655
+ "image": "../Images/FLM_IO_ZT.gif",
1656
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/ZonalThreshold.html",
1657
+ "parameters":[
1658
+ { "variable": "in_line",
1659
+ "parameter": "Input Lines",
1660
+ "description": "Input polyline shapefile for which each feature will be assigned an unique corridor threshold.",
1661
+ "type": "vector",
1662
+ "typelab": "SHP",
1663
+ "default": "",
1664
+ "output": false,
1665
+ "optional": false
1666
+ },
1667
+ { "variable": "in_canopy_raster",
1668
+ "parameter": "Canopy Raster",
1669
+ "description": "Input canopy raster used to estimate canopy density.",
1670
+ "type": "raster",
1671
+ "typelab": "TIF",
1672
+ "default": "",
1673
+ "output": false,
1674
+ "optional": false
1675
+ },
1676
+ { "variable": "canopy_search_r",
1677
+ "parameter": "Canopy Search Radius",
1678
+ "description": "Search radius around line features where zonal statistics are calculated, i.e estimate line width",
1679
+ "type": "number",
1680
+ "typelab": "float",
1681
+ "default": 20.0,
1682
+ "output": false,
1683
+ "optional": true
1684
+ },
1685
+ { "variable": "min_canopy_th",
1686
+ "parameter": "Minimum Value",
1687
+ "description": "Minimum value for corridor threshold.",
1688
+ "type": "number",
1689
+ "typelab": "float",
1690
+ "default": 4.0,
1691
+ "output": false,
1692
+ "optional": true
1693
+ },
1694
+ { "variable": "max_canopy_th",
1695
+ "parameter": "Maximum Value",
1696
+ "description": "Maximum value for corridor threshold.",
1697
+ "type": "number",
1698
+ "typelab": "float",
1699
+ "default": 20.0,
1700
+ "output": false,
1701
+ "optional": true
1702
+ },
1703
+ { "variable": "out_line",
1704
+ "parameter": "Output Lines",
1705
+ "description": "Output features that will be created.",
1706
+ "type": "vector",
1707
+ "typelab": "SHP",
1708
+ "default": "",
1709
+ "output": true,
1710
+ "optional": false
1711
+ }
1712
+ ]
1713
+ },
1714
+ {
1715
+ "name": "Dynamic Canopy Threshold",
1716
+ "info": "Compute dynamic canopy threshold for each input line and update attributes.",
1717
+ "multiprocessing": true,
1718
+ "batch_processing": false,
1719
+ "tool_type": "python",
1720
+ "tool_api": "canopy_threshold_relative",
1721
+ "paramFile": "\\Scripts\\FLM_DCANO_params.txt",
1722
+ "image": "../Images/FLM_IO_LineFootprint.gif",
1723
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/DynCanThr.html",
1724
+ "parameters":[
1725
+ { "variable": "in_line",
1726
+ "parameter": "Center-lines Feature Class",
1727
+ "description": "Input polyline shapefile.",
1728
+ "type": "vector",
1729
+ "typelab": "SHP",
1730
+ "default": "",
1731
+ "output": false,
1732
+ "optional": false
1733
+ },
1734
+ { "variable": "in_chm",
1735
+ "parameter": "Canopy Height Model (CHM) Raster",
1736
+ "description": "Input raster image used calculate the surrounding forest elevation percentile, create canopy and cost raster.",
1737
+ "type": "raster",
1738
+ "typelab": "TIF",
1739
+ "default": "",
1740
+ "output": false,
1741
+ "optional": false
1742
+ },
1743
+ { "variable": "proc_segments",
1744
+ "parameter": "Process Segments",
1745
+ "description": ["If set to False, will process each line from start to end ignoring midpoints.",
1746
+ "If set to True, will process each segment between each vertex of the input lines separately.",
1747
+ "The default is False, since it is assumed that the input lines for this tool are manually corrected center-lines.",
1748
+ "If using regional-scale (1:20,000) lines as input this may be set to True."],
1749
+ "type": "list",
1750
+ "typelab": "bool",
1751
+ "data": [true, false],
1752
+ "default": false,
1753
+ "output": false,
1754
+ "optional": false
1755
+ },
1756
+ { "variable": "off_ln_dist",
1757
+ "parameter": "Offset Line Distance",
1758
+ "description": "Offset distance from input lines.",
1759
+ "type": "number",
1760
+ "typelab": "float",
1761
+ "default": 5.0,
1762
+ "output": false,
1763
+ "optional": true
1764
+ },
1765
+ { "variable": "canopy_percentile",
1766
+ "parameter": "Canopy Percentile",
1767
+ "description": "The Nth percentile of the surrounding forest.",
1768
+ "type": "list",
1769
+ "typelab": "int",
1770
+ "data": [50, 55, 60, 65, 70, 75, 80, 85, 90, 95],
1771
+ "default": 90,
1772
+ "output": false,
1773
+ "optional": true
1774
+ },
1775
+ { "variable": "canopy_thresh_percentage",
1776
+ "parameter": "Canopy Threshold Percentage",
1777
+ "description": "Apply % on calculating Canopy Threshold height from Canopy percentile elevation.",
1778
+ "type": "number",
1779
+ "typelab": "float",
1780
+ "default": 50.0,
1781
+ "output": false,
1782
+ "optional": true
1783
+ },
1784
+ { "variable": "tree_radius",
1785
+ "parameter": "Tree Search Radius",
1786
+ "description": "Radius of canopy influence in the cost raster. This factor smooths the canopy in the cost raster which helps to prevent gaps in sparsely vegetated areas (e.g. wetlands) to be incorrectly identified as footprint. A large search radius (>=5m) may cause excessive smoothing of the cost raster which can lead to least cost paths ignoring forest-line nuances in sparsely vegetated forests. A small radius (<=1m) may cause the least cost path to cut corners through small gaps in sparse vegetation as well as avoid small obstacles that should not affect overall line shape.",
1787
+ "type": "number",
1788
+ "typelab": "float",
1789
+ "default": 1.5,
1790
+ "output": false,
1791
+ "optional": true
1792
+ },
1793
+ { "variable": "max_line_dist",
1794
+ "parameter": "Maximum Line Distance",
1795
+ "description": "Maximum euclidean distance from canopy. This is a second smoothing factor which helps to position the forest line shape in the center of the line footprint. An excessively small (<=1m) or large (>20m) value may cause the center line to be positioned close to one of the edges of the footprint.",
1796
+ "type": "number",
1797
+ "typelab": "float",
1798
+ "default": 1.5,
1799
+ "output": false,
1800
+ "optional": true
1801
+ },
1802
+ { "variable": "canopy_avoidance",
1803
+ "parameter": "Canopy Avoidance",
1804
+ "description": "Ratio of importance between canopy search radius and euclidean distance. A value close to zero (0) prioritizes search radius whereas a value close to one (1) prioritizes euclidean distance. A small value (<=0.1) may cause the forest lines to miss nuances in sparsely vegetated terrain whereas a big value (>=0.5) may overemphasize turns in complex trails. This factor influences final footprint size in a minor way.",
1805
+ "type": "number",
1806
+ "typelab": "float",
1807
+ "default": 0.0,
1808
+ "output": false,
1809
+ "optional": true
1810
+ },
1811
+ { "variable": "exponent",
1812
+ "parameter": "Cost Raster Exponent",
1813
+ "description": "Affects the cost of vegetated areas in an exponential fashion. A low (<=1) exponent may lead to lines cutting through corners, whereas a large (>=3) exponent may lead to least cost paths completely avoiding narrow lines.",
1814
+ "type": "number",
1815
+ "typelab": "int",
1816
+ "default": 1,
1817
+ "output": false,
1818
+ "optional": true
1819
+ }
1820
+
1821
+ ]
1822
+ },
1823
+ {
1824
+ "name": "Dynamic Line Footprint",
1825
+ "info": "Creates dynamic footprint polygons for each input line based on a least cost corridor method and individual line canopy thresholds and cost raster.",
1826
+ "multiprocessing": true,
1827
+ "batch_processing": false,
1828
+ "tool_type": "python",
1829
+ "tool_api": "dynamic_line_footprint",
1830
+ "paramFile": "\\Scripts\\FLM_DLFPP_params.txt",
1831
+ "image": "../Images/FLM_IO_LineFootprint.gif",
1832
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/DynLineFootprintP.html",
1833
+ "parameters":[
1834
+ { "variable": "in_line",
1835
+ "parameter": "Center-lines Feature Class",
1836
+ "description": "Input polyline shapefile.",
1837
+ "type": "vector",
1838
+ "typelab": "SHP",
1839
+ "default": "",
1840
+ "output": false,
1841
+ "optional": false
1842
+ },
1843
+ { "variable": "in_chm",
1844
+ "parameter": "Canopy Height Model (CHM) Raster",
1845
+ "description": "Input raster image used calculate the surrounding forest elevation percentile, create canopy and cost raster.",
1846
+ "type": "raster",
1847
+ "typelab": "TIF",
1848
+ "default": "",
1849
+ "output": false,
1850
+ "optional": false
1851
+ },
1852
+ { "variable": "max_ln_width",
1853
+ "parameter": "Maximum Line Width",
1854
+ "description": "Maximum processing width for input lines. A large value may increase processing times whereas a small value may cause undesired clipping.",
1855
+ "type": "number",
1856
+ "typelab": "float",
1857
+ "default": 32.0,
1858
+ "output": false,
1859
+ "optional": true
1860
+ },
1861
+ { "variable": "exp_shk_cell",
1862
+ "parameter": "Expand And Shrink Cell Range",
1863
+ "description": "Range used for cell erosion before final polygons are generated. Useful to remove small artifacts. If the cell size is 1m or larger then set this as zero.",
1864
+ "type": "number",
1865
+ "typelab": "int",
1866
+ "default": 0,
1867
+ "output": false,
1868
+ "optional": true
1869
+ },
1870
+ { "variable": "proc_segments",
1871
+ "parameter": "Process Segments",
1872
+ "description": "If set to False, will process each line from start to end ignoring midpoints. If set to True, will process each segment between each vertex of the input lines separately. The default is False, since it is assumed that the input lines for this tool are manually corrected center-lines. If using regional-scale (1:20,000) lines as input this may be set to True.",
1873
+ "type": "list",
1874
+ "typelab": "bool",
1875
+ "data": [true, false],
1876
+ "default": false,
1877
+ "output": false,
1878
+ "optional": false
1879
+ },
1880
+ { "variable": "out_footprint",
1881
+ "parameter": "Output Shapefile",
1882
+ "description": "Output footprint polygons.",
1883
+ "type": "vector",
1884
+ "typelab": "SHP",
1885
+ "default": "",
1886
+ "output": true,
1887
+ "optional": false
1888
+ },
1889
+ { "variable": "tree_radius",
1890
+ "parameter": "Tree Search Radius",
1891
+ "description": "Radius of canopy influence in the cost raster. This factor smooths the canopy in the cost raster which helps to prevent gaps in sparsely vegetated areas (e.g. wetlands) to be incorrectly identified as footprint. A large search radius (>=5m) may cause excessive smoothing of the cost raster which can lead to least cost paths ignoring forest-line nuances in sparsely vegetated forests. A small radius (<=1m) may cause the least cost path to cut corners through small gaps in sparse vegetation as well as avoid small obstacles that should not affect overall line shape.",
1892
+ "type": "number",
1893
+ "typelab": "float",
1894
+ "default": 1.5,
1895
+ "output": false,
1896
+ "optional": true
1897
+ },
1898
+ { "variable": "max_line_dist",
1899
+ "parameter": "Maximum Line Distance",
1900
+ "description": "Maximum euclidean distance from canopy. This is a second smoothing factor which helps to position the forest line shape in the center of the line footprint. An excessively small (<=1m) or large (>20m) value may cause the center line to be positioned close to one of the edges of the footprint.",
1901
+ "type": "number",
1902
+ "typelab": "float",
1903
+ "default": 1.5,
1904
+ "output": false,
1905
+ "optional": true
1906
+ },
1907
+ { "variable": "canopy_avoidance",
1908
+ "parameter": "Canopy Avoidance",
1909
+ "description": "Ratio of importance between canopy search radius and euclidean distance. A value close to zero (0) prioritizes search radius whereas a value close to one (1) prioritizes euclidean distance. A small value (<=0.1) may cause the forest lines to miss nuances in sparsely vegetated terrain whereas a big value (>=0.5) may overemphasize turns in complex trails. This factor influences final footprint size in a minor way.",
1910
+ "type": "number",
1911
+ "typelab": "float",
1912
+ "default": 0.0,
1913
+ "output": false,
1914
+ "optional": true
1915
+ },
1916
+ { "variable": "exponent",
1917
+ "parameter": "Cost Raster Exponent",
1918
+ "description": "Affects the cost of vegetated areas in an exponential fashion. A low (<=1) exponent may lead to lines cutting through corners, whereas a large (>=3) exponent may lead to least cost paths completely avoiding narrow lines.",
1919
+ "type": "number",
1920
+ "typelab": "int",
1921
+ "default": 1,
1922
+ "output": false,
1923
+ "optional": true
1924
+ }
1925
+
1926
+ ]
1927
+ },
1928
+ {
1929
+ "name": "Unzip LiDAR data",
1930
+ "info": "Unzip LAZ LiDAR data to LAS.",
1931
+ "batch_processing": false,
1932
+ "tool_type": "python",
1933
+ "tool_api": "rpy_laz2las",
1934
+ "paramFile": "\\Scripts\\rpy_laz2las_params.txt",
1935
+ "image": "",
1936
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1937
+ "parameters": [
1938
+ {
1939
+ "variable": "in_las_folder",
1940
+ "parameter": "Input LiDAR point cloud folder.",
1941
+ "description": "Input LiDAR point cloud folder.",
1942
+ "type": "Directory",
1943
+ "typelab": "",
1944
+ "default": "",
1945
+ "output": false,
1946
+ "optional": false
1947
+ },
1948
+ {
1949
+ "variable": "out_folder",
1950
+ "parameter": "Output folder for the point cloud data .",
1951
+ "description": "Output point cloud (LAZ) data in LAS Specification 1.4 - R15.",
1952
+ "type": "Directory",
1953
+ "typelab": "",
1954
+ "default": "",
1955
+ "output": true,
1956
+ "optional": false
1957
+ }
1958
+ ]
1959
+ },
1960
+ {
1961
+ "name": "Point Cloud Ground Classify",
1962
+ "info": "It implements an algorithm for segmentation of ground points base on a Cloth Simulation Filter. This method is a strict implementation of the CSF algorithm made by Zhang et al. (2016) that relies on the authors’ original source code written and exposed to R via the the RCSF package from R lidR package.",
1963
+ "batch_processing": false,
1964
+ "tool_type": "python",
1965
+ "tool_api": "rpy_gnd_csf",
1966
+ "paramFile": "\\Scripts\\rpy_rpy_gnd_csf_params.txt",
1967
+ "image": "",
1968
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
1969
+ "parameters": [
1970
+ {
1971
+ "variable": "in_las_folder",
1972
+ "parameter": "Input LiDAR point cloud folder.",
1973
+ "description": "Input LiDAR point cloud folder.",
1974
+ "type": "Directory",
1975
+ "typelab": "",
1976
+ "default": "",
1977
+ "output": false,
1978
+ "optional": false
1979
+ },
1980
+ {
1981
+ "variable": "out_folder",
1982
+ "parameter": "Output folder for the classified results data.",
1983
+ "description": "Output folder for the ground classified results data.",
1984
+ "type": "Directory",
1985
+ "typelab": "",
1986
+ "default": "",
1987
+ "output": true,
1988
+ "optional": false
1989
+ },
1990
+ {
1991
+ "variable": "slope",
1992
+ "parameter": "Steep slopes exists.",
1993
+ "description": "If steep slopes exist, set this parameter to TRUE to reduce errors during post-processing.",
1994
+ "type": "list",
1995
+ "typelab": "Bool",
1996
+ "data": [true, false],
1997
+ "default": false,
1998
+ "output": false,
1999
+ "optional": true
2000
+ },
2001
+ { "variable": "class_threshold",
2002
+ "parameter": "Ground threshold",
2003
+ "description": "The distance to the simulated cloth to classify a point cloud into ground and non-ground.",
2004
+ "type": "number",
2005
+ "typelab": "float",
2006
+ "default": 0.5,
2007
+ "output": false,
2008
+ "optional": true
2009
+ },
2010
+ { "variable": "cloth_resolution",
2011
+ "parameter": "The distance between particles in the cloth",
2012
+ "description": "This is usually set to the average distance of the points in the point cloud.",
2013
+ "type": "number",
2014
+ "typelab": "float",
2015
+ "default": 0.5,
2016
+ "output": false,
2017
+ "optional": true
2018
+ },
2019
+ {
2020
+ "variable": "rigidness",
2021
+ "parameter": "The rigidness of the cloth",
2022
+ "description": "Set '1' stands for very soft (to fit rugged terrain),'2' stands for medium, and '3' stands for hard cloth (for flat terrain).",
2023
+ "type": "list",
2024
+ "typelab": "int",
2025
+ "data": [1,2,3],
2026
+ "default": 1,
2027
+ "output": false,
2028
+ "optional": true
2029
+ }
2030
+ ]
2031
+ },
2032
+ {
2033
+ "name": "Conductivity Raster",
2034
+ "info": "Generating multiple conductivity raster on: CHM, Slope, Roughness, ground point density, intensity raster. Idea from Correction, update, and enhancement of vectorial forestry road maps using\nALS data, a pathfinder, and seven metrics, Jean-Romain Roussel, etl 2022.",
2035
+ "batch_processing": false,
2036
+ "tool_type": "python",
2037
+ "tool_api": "rpy_conduct_raster",
2038
+ "paramFile": "\\Scripts\\rpy_rpy_gnd_csf_params.txt",
2039
+ "image": "",
2040
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/xxx.html",
2041
+ "parameters": [
2042
+ {
2043
+ "variable": "in_las_folder",
2044
+ "parameter": "Input LiDAR point cloud folder.",
2045
+ "description": "Input LiDAR point cloud folder.",
2046
+ "type": "Directory",
2047
+ "typelab": "",
2048
+ "default": "",
2049
+ "output": false,
2050
+ "optional": false
2051
+ },
2052
+
2053
+ {
2054
+ "variable": "cell_size",
2055
+ "parameter": "Raster cell size",
2056
+ "description": "Output cell size of conductivity raster.",
2057
+ "type": "number",
2058
+ "typelab": "float",
2059
+ "default": 1.0,
2060
+ "output": false,
2061
+ "optional": false
2062
+ },
2063
+ {
2064
+ "variable": "out_folder",
2065
+ "parameter": "Output folder for the classified results data.",
2066
+ "description": "Output folder for the ground classified results data.",
2067
+ "type": "Directory",
2068
+ "typelab": "",
2069
+ "default": "",
2070
+ "output": true,
2071
+ "optional": false
2072
+ }
2073
+ ]
2074
+ },
2075
+ {
2076
+ "name": "Update R-package for BERA toolset",
2077
+ "info": "Tool for updating R-package in BERA Tools ",
2078
+ "multiprocessing": false,
2079
+ "batch_processing": false,
2080
+ "tool_type": "python",
2081
+ "tool_api": "r-update",
2082
+ "paramFile": "",
2083
+ "image": "",
2084
+ "tech_link": "",
2085
+ "parameters": [
2086
+ { "variable": "r_installed",
2087
+ "parameter": "R language installed",
2088
+ "description": "Has R langauge been installed.",
2089
+ "type": "list",
2090
+ "typelab": "bool",
2091
+ "data": [true, false],
2092
+ "default": true,
2093
+ "output": false,
2094
+ "optional": true
2095
+ }
2096
+
2097
+ ]
2098
+ }
2099
+ ]
2100
+ },
2101
+ {
2102
+ "category": "Workflows",
2103
+ "description":"Workflows to automate complex works using BREA Tools.",
2104
+ "tools": [
2105
+ {
2106
+ "name": "Tiler",
2107
+ "info": "Tiler is the tool dealing with large CHM rasters. Tiler makes tiling plan and split input CHM and lines into smaller tiles and make batch project to process all tiles",
2108
+ "multiprocessing": true,
2109
+ "batch_processing": false,
2110
+ "tool_type": "python",
2111
+ "tool_api": "tiler",
2112
+ "paramFile": "\\Scripts\\FLM_CO_params.txt",
2113
+ "image": "../Images/FLM_IO_CO.gif",
2114
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/workflows/tiler.html",
2115
+ "parameters":[
2116
+ {
2117
+ "variable": "in_line",
2118
+ "parameter": "Centerlines Feature Class",
2119
+ "description": "Input polyline shapefile.",
2120
+ "type": "vector",
2121
+ "typelab": "SHP",
2122
+ "default": "",
2123
+ "output": false,
2124
+ "optional": false
2125
+ },
2126
+ {
2127
+ "variable": "in_chm",
2128
+ "parameter": "CHM Raster",
2129
+ "description": "Input CHM raster image.",
2130
+ "type": "raster",
2131
+ "typelab": "TIF",
2132
+ "default": "",
2133
+ "output": false,
2134
+ "optional": false
2135
+ },
2136
+ {
2137
+ "variable": "tile_size",
2138
+ "parameter": "Maximum Tile Size",
2139
+ "description": "Maximum tile Size (width/height).",
2140
+ "type": "number",
2141
+ "typelab": "int",
2142
+ "default": 8000,
2143
+ "output": false,
2144
+ "optional": true
2145
+ },
2146
+ {
2147
+ "variable": "tile_buffer",
2148
+ "parameter": "Tile buffer Size (meter)",
2149
+ "description": "Tile buffer Size.",
2150
+ "type": "number",
2151
+ "typelab": "int",
2152
+ "default": 50,
2153
+ "output": false,
2154
+ "optional": true
2155
+ },
2156
+ {
2157
+ "variable": "out_project",
2158
+ "parameter": "Output Tiling Project File",
2159
+ "description": "Output tiling project file name.",
2160
+ "type": "file",
2161
+ "typelab": "JSON",
2162
+ "default": "",
2163
+ "output": true,
2164
+ "optional": false
2165
+ }
2166
+ ]
2167
+ },
2168
+ {
2169
+ "name": "Batch Processing",
2170
+ "info": "Batch Processing is the tool to do batch processing for BERA Tools",
2171
+ "multiprocessing": true,
2172
+ "batch_processing": false,
2173
+ "tool_type": "python",
2174
+ "tool_api": "batch_processing",
2175
+ "paramFile": "\\Scripts\\FLM_CO_params.txt",
2176
+ "image": "../Images/FLM_IO_CO.gif",
2177
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/workflows/batch_processing.html",
2178
+ "parameters":[
2179
+ {
2180
+ "variable": "batch_tool_name",
2181
+ "parameter": "Tool Name",
2182
+ "description": "Select tool to do batch processing",
2183
+ "type": "list",
2184
+ "typelab": "text",
2185
+ "data": ["tool list"],
2186
+ "default": "",
2187
+ "output": false,
2188
+ "optional": false
2189
+ },
2190
+ {
2191
+ "variable": "in_project",
2192
+ "parameter": "Batch Processing Project File",
2193
+ "description": "Project file for batch processing",
2194
+ "type": "file",
2195
+ "typelab": "JSON",
2196
+ "default": "",
2197
+ "output": false,
2198
+ "optional": false
2199
+ }
2200
+ ]
2201
+ },
2202
+ {
2203
+ "name": "LiDAR to LPI and eLAI rasters",
2204
+ "info": "Generate LiDAR penetration index (LPI) raster and effective leaf area index (eLAI) raster based on Beer's Law from classified point cloud.",
2205
+ "multiprocessing": true,
2206
+ "batch_processing": false,
2207
+ "tool_type": "python",
2208
+ "tool_api": "rpy_lpi_elai_lascat",
2209
+ "paramFile": "\\Scripts\\FLM_ZT_params.txt",
2210
+ "image": "../Images/FLM_IO_ZT.gif",
2211
+ "tech_link": "https://forest-line-mapper.readthedocs.io/en/latest/Tools/Auxiliary/ZonalThreshold.html",
2212
+ "parameters":[
2213
+ { "variable": "in_polygon_file",
2214
+ "parameter": "The effective LiDAR data extend",
2215
+ "description": "Input Pulse density total (Rt) Raster.",
2216
+ "type": "Directory",
2217
+ "typelab": "",
2218
+ "default": "",
2219
+ "output": false,
2220
+ "optional": true
2221
+ },
2222
+ { "variable": "in_las_folder",
2223
+ "parameter": "LiDAR point cloud data input folder.",
2224
+ "description": "Input folder for the LiDAR point cloud data.",
2225
+ "type": "Directory",
2226
+ "typelab": "",
2227
+ "default": "",
2228
+ "output": false,
2229
+ "optional": false
2230
+ },
2231
+ { "variable": "radius_fr_CHM",
2232
+ "parameter": "The Focal weight radius divided from Canopy Height.",
2233
+ "description": "Calculate the focal radius from CHM's mean trees height statistic. The CHM is divided from the point cloud",
2234
+ "type": "list",
2235
+ "typelab": "bool",
2236
+ "data": [true, false],
2237
+ "default": false,
2238
+ "output": false,
2239
+ "optional": false
2240
+ },
2241
+ { "variable": "cut_ht",
2242
+ "parameter": "Height above ground(m)",
2243
+ "description": "Define cutoff height for calculate the point density from ground.",
2244
+ "type": "number",
2245
+ "typelab": "float",
2246
+ "default": 1.0,
2247
+ "output": false,
2248
+ "optional": false
2249
+ },
2250
+ { "variable": "focal_radius",
2251
+ "parameter": "Radius of focal circle in meter.",
2252
+ "description": "Radius of focal circle in meter",
2253
+ "type": "number",
2254
+ "typelab": "float",
2255
+ "default": 10.0,
2256
+ "output": false,
2257
+ "optional": true
2258
+ },
2259
+ { "variable": "pulse_density",
2260
+ "parameter": "Average LiDAR pulse density.",
2261
+ "description": "Average LiDAR pulse density per cube meter.",
2262
+ "type": "number",
2263
+ "typelab": "int",
2264
+ "default": 0,
2265
+ "output": false,
2266
+ "optional": true
2267
+ },
2268
+ { "variable": "cell_size",
2269
+ "parameter": "Output raster cell size in meter.",
2270
+ "description": "Define the output LPI, eLAI rasters' cell size.",
2271
+ "type": "number",
2272
+ "typelab": "float",
2273
+ "default": 0.00,
2274
+ "output": false,
2275
+ "optional": true
2276
+ },
2277
+ { "variable": "mean_scanning_angle",
2278
+ "parameter": "Mean LiDAR scanning angle.",
2279
+ "description": "Mean LiDAR scanning angle of the sensor.",
2280
+ "type": "number",
2281
+ "typelab": "float",
2282
+ "default": 60.0,
2283
+ "output": false,
2284
+ "optional": false
2285
+ },
2286
+ { "variable": "out_folder",
2287
+ "parameter": "Output folder for LPI and eLAI Raster",
2288
+ "description": "Output LPI raster location and filename (.tif).",
2289
+ "type": "Directory",
2290
+ "typelab": "",
2291
+ "default": "",
2292
+ "output": true,
2293
+ "optional": false
2294
+ }
2295
+ ]
2296
+ }
2297
+ ]
2298
+ }
2299
+ ]
2300
+ }