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