BERATools 0.2.0__py3-none-any.whl → 0.2.2__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 (153) hide show
  1. beratools/__init__.py +1 -7
  2. beratools/core/algo_centerline.py +491 -351
  3. beratools/core/algo_common.py +497 -0
  4. beratools/core/algo_cost.py +192 -0
  5. beratools/core/{dijkstra_algorithm.py → algo_dijkstra.py} +503 -460
  6. beratools/core/algo_footprint_rel.py +577 -0
  7. beratools/core/algo_line_grouping.py +944 -0
  8. beratools/core/algo_merge_lines.py +214 -0
  9. beratools/core/algo_split_with_lines.py +304 -0
  10. beratools/core/algo_tiler.py +428 -0
  11. beratools/core/algo_vertex_optimization.py +469 -0
  12. beratools/core/constants.py +52 -86
  13. beratools/core/logger.py +76 -85
  14. beratools/core/tool_base.py +196 -133
  15. beratools/gui/__init__.py +11 -15
  16. beratools/gui/{beratools.json → assets/beratools.json} +2185 -2300
  17. beratools/gui/batch_processing_dlg.py +513 -463
  18. beratools/gui/bt_data.py +481 -487
  19. beratools/gui/bt_gui_main.py +710 -691
  20. beratools/gui/main.py +26 -0
  21. beratools/gui/map_window.py +162 -146
  22. beratools/gui/tool_widgets.py +725 -493
  23. beratools/tools/Beratools_r_script.r +1120 -1120
  24. beratools/tools/Ht_metrics.py +116 -116
  25. beratools/tools/__init__.py +7 -7
  26. beratools/tools/batch_processing.py +136 -132
  27. beratools/tools/canopy_threshold_relative.py +672 -670
  28. beratools/tools/canopycostraster.py +222 -222
  29. beratools/tools/centerline.py +136 -176
  30. beratools/tools/common.py +857 -885
  31. beratools/tools/fl_regen_csf.py +428 -428
  32. beratools/tools/forest_line_attributes.py +408 -408
  33. beratools/tools/line_footprint_absolute.py +213 -363
  34. beratools/tools/line_footprint_fixed.py +436 -282
  35. beratools/tools/line_footprint_functions.py +733 -720
  36. beratools/tools/line_footprint_relative.py +73 -64
  37. beratools/tools/line_grouping.py +45 -0
  38. beratools/tools/ln_relative_metrics.py +615 -615
  39. beratools/tools/r_cal_lpi_elai.r +24 -24
  40. beratools/tools/r_generate_pd_focalraster.r +100 -100
  41. beratools/tools/r_interface.py +79 -79
  42. beratools/tools/r_point_density.r +8 -8
  43. beratools/tools/rpy_chm2trees.py +86 -86
  44. beratools/tools/rpy_dsm_chm_by.py +81 -81
  45. beratools/tools/rpy_dtm_by.py +63 -63
  46. beratools/tools/rpy_find_cellsize.py +43 -43
  47. beratools/tools/rpy_gnd_csf.py +74 -74
  48. beratools/tools/rpy_hummock_hollow.py +85 -85
  49. beratools/tools/rpy_hummock_hollow_raster.py +71 -71
  50. beratools/tools/rpy_las_info.py +51 -51
  51. beratools/tools/rpy_laz2las.py +40 -40
  52. beratools/tools/rpy_lpi_elai_lascat.py +466 -466
  53. beratools/tools/rpy_normalized_lidar_by.py +56 -56
  54. beratools/tools/rpy_percent_above_dbh.py +80 -80
  55. beratools/tools/rpy_points2trees.py +88 -88
  56. beratools/tools/rpy_vegcoverage.py +94 -94
  57. beratools/tools/tiler.py +48 -206
  58. beratools/tools/tool_template.py +69 -54
  59. beratools/tools/vertex_optimization.py +61 -620
  60. beratools/tools/zonal_threshold.py +144 -144
  61. beratools-0.2.2.dist-info/METADATA +108 -0
  62. beratools-0.2.2.dist-info/RECORD +74 -0
  63. {beratools-0.2.0.dist-info → beratools-0.2.2.dist-info}/WHEEL +1 -1
  64. {beratools-0.2.0.dist-info → beratools-0.2.2.dist-info}/licenses/LICENSE +22 -22
  65. beratools/gui/cli.py +0 -18
  66. beratools/gui/gui.json +0 -8
  67. beratools/gui_tk/ASCII Banners.txt +0 -248
  68. beratools/gui_tk/__init__.py +0 -20
  69. beratools/gui_tk/beratools_main.py +0 -515
  70. beratools/gui_tk/bt_widgets.py +0 -442
  71. beratools/gui_tk/cli.py +0 -18
  72. beratools/gui_tk/img/BERALogo.png +0 -0
  73. beratools/gui_tk/img/closed.gif +0 -0
  74. beratools/gui_tk/img/closed.png +0 -0
  75. beratools/gui_tk/img/open.gif +0 -0
  76. beratools/gui_tk/img/open.png +0 -0
  77. beratools/gui_tk/img/tool.gif +0 -0
  78. beratools/gui_tk/img/tool.png +0 -0
  79. beratools/gui_tk/main.py +0 -14
  80. beratools/gui_tk/map_window.py +0 -144
  81. beratools/gui_tk/runner.py +0 -1481
  82. beratools/gui_tk/tooltip.py +0 -55
  83. beratools/third_party/pyqtlet2/__init__.py +0 -9
  84. beratools/third_party/pyqtlet2/leaflet/__init__.py +0 -26
  85. beratools/third_party/pyqtlet2/leaflet/control/__init__.py +0 -6
  86. beratools/third_party/pyqtlet2/leaflet/control/control.py +0 -59
  87. beratools/third_party/pyqtlet2/leaflet/control/draw.py +0 -52
  88. beratools/third_party/pyqtlet2/leaflet/control/layers.py +0 -20
  89. beratools/third_party/pyqtlet2/leaflet/core/Parser.py +0 -24
  90. beratools/third_party/pyqtlet2/leaflet/core/__init__.py +0 -2
  91. beratools/third_party/pyqtlet2/leaflet/core/evented.py +0 -180
  92. beratools/third_party/pyqtlet2/leaflet/layer/__init__.py +0 -5
  93. beratools/third_party/pyqtlet2/leaflet/layer/featuregroup.py +0 -34
  94. beratools/third_party/pyqtlet2/leaflet/layer/icon/__init__.py +0 -1
  95. beratools/third_party/pyqtlet2/leaflet/layer/icon/icon.py +0 -30
  96. beratools/third_party/pyqtlet2/leaflet/layer/imageoverlay.py +0 -18
  97. beratools/third_party/pyqtlet2/leaflet/layer/layer.py +0 -105
  98. beratools/third_party/pyqtlet2/leaflet/layer/layergroup.py +0 -45
  99. beratools/third_party/pyqtlet2/leaflet/layer/marker/__init__.py +0 -1
  100. beratools/third_party/pyqtlet2/leaflet/layer/marker/marker.py +0 -91
  101. beratools/third_party/pyqtlet2/leaflet/layer/tile/__init__.py +0 -2
  102. beratools/third_party/pyqtlet2/leaflet/layer/tile/gridlayer.py +0 -4
  103. beratools/third_party/pyqtlet2/leaflet/layer/tile/tilelayer.py +0 -16
  104. beratools/third_party/pyqtlet2/leaflet/layer/vector/__init__.py +0 -5
  105. beratools/third_party/pyqtlet2/leaflet/layer/vector/circle.py +0 -15
  106. beratools/third_party/pyqtlet2/leaflet/layer/vector/circlemarker.py +0 -18
  107. beratools/third_party/pyqtlet2/leaflet/layer/vector/path.py +0 -5
  108. beratools/third_party/pyqtlet2/leaflet/layer/vector/polygon.py +0 -14
  109. beratools/third_party/pyqtlet2/leaflet/layer/vector/polyline.py +0 -18
  110. beratools/third_party/pyqtlet2/leaflet/layer/vector/rectangle.py +0 -14
  111. beratools/third_party/pyqtlet2/leaflet/map/__init__.py +0 -1
  112. beratools/third_party/pyqtlet2/leaflet/map/map.py +0 -220
  113. beratools/third_party/pyqtlet2/mapwidget.py +0 -45
  114. beratools/third_party/pyqtlet2/web/custom.js +0 -43
  115. beratools/third_party/pyqtlet2/web/map.html +0 -23
  116. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/layers-2x.png +0 -0
  117. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/layers.png +0 -0
  118. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/marker-icon-2x.png +0 -0
  119. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/marker-icon.png +0 -0
  120. beratools/third_party/pyqtlet2/web/modules/leaflet_193/images/marker-shadow.png +0 -0
  121. beratools/third_party/pyqtlet2/web/modules/leaflet_193/leaflet.css +0 -656
  122. beratools/third_party/pyqtlet2/web/modules/leaflet_193/leaflet.js +0 -6
  123. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.codeclimate.yml +0 -14
  124. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.editorconfig +0 -4
  125. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.gitattributes +0 -22
  126. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/.travis.yml +0 -43
  127. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/LICENSE +0 -20
  128. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/layers-2x.png +0 -0
  129. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/layers.png +0 -0
  130. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/marker-icon-2x.png +0 -0
  131. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/marker-icon.png +0 -0
  132. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/marker-shadow.png +0 -0
  133. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/spritesheet-2x.png +0 -0
  134. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/spritesheet.png +0 -0
  135. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/images/spritesheet.svg +0 -156
  136. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/leaflet.draw.css +0 -10
  137. beratools/third_party/pyqtlet2/web/modules/leaflet_draw_414/leaflet.draw.js +0 -10
  138. beratools/third_party/pyqtlet2/web/modules/leaflet_rotatedMarker_020/LICENSE +0 -22
  139. beratools/third_party/pyqtlet2/web/modules/leaflet_rotatedMarker_020/leaflet.rotatedMarker.js +0 -57
  140. beratools/tools/forest_line_ecosite.py +0 -216
  141. beratools/tools/lapis_all.py +0 -103
  142. beratools/tools/least_cost_path_from_chm.py +0 -152
  143. beratools-0.2.0.dist-info/METADATA +0 -63
  144. beratools-0.2.0.dist-info/RECORD +0 -142
  145. /beratools/gui/{img → assets}/BERALogo.png +0 -0
  146. /beratools/gui/{img → assets}/closed.gif +0 -0
  147. /beratools/gui/{img → assets}/closed.png +0 -0
  148. /beratools/{gui_tk → gui/assets}/gui.json +0 -0
  149. /beratools/gui/{img → assets}/open.gif +0 -0
  150. /beratools/gui/{img → assets}/open.png +0 -0
  151. /beratools/gui/{img → assets}/tool.gif +0 -0
  152. /beratools/gui/{img → assets}/tool.png +0 -0
  153. {beratools-0.2.0.dist-info → beratools-0.2.2.dist-info}/entry_points.txt +0 -0
@@ -1,85 +1,85 @@
1
- import math
2
- import os
3
- import time
4
-
5
-
6
- from beratools.tools.common import *
7
- from beratools.tools.r_interface import *
8
-
9
-
10
- def hh_raster(callback, in_las_folder, Min_ws, lawn_range, cell_size, out_folder, processes, verbose):
11
- rprocesses = r_processes(processes)
12
-
13
- in_las_folder = in_las_folder.replace("\\", "/")
14
- out_folder = out_folder.replace("\\", "/")
15
-
16
- # assign R script file to local variable
17
- Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
18
- # Defining the R script and loading the instance in Python
19
- r['source'](Beratools_R_script)
20
- # Loading the function defined in R script.
21
- r_hh_function = robjects.globalenv['hh_function']
22
-
23
- # Invoking the R function
24
- r_hh_function(in_las_folder, cell_size, Min_ws, lawn_range, out_folder, rprocesses)
25
-
26
-
27
- if __name__ == '__main__':
28
- start_time = time.time()
29
- print('Hummock and Hollow detection from LiDAR process.\n'
30
- '@ {}'.format(time.strftime("%d %b %Y %H:%M:%S", time.localtime())))
31
-
32
-
33
- packages = ['lidR', 'rgrass', 'rlas', 'future',
34
- 'terra'] # ,'comprehenr','na.tools','sf','sp']#,'devtools','gdal']#,'fasterRaster']
35
- check_r_packages_installation(packages)
36
-
37
- print("Checking input parameters ...")
38
- in_args, in_verbose = check_arguments()
39
-
40
- in_las_folder = in_args.input["in_las_folder"]
41
- try:
42
- cell_size = float(in_args.input["cell_size"])
43
- in_args.input["cell_size"] = cell_size
44
- except ValueError:
45
- print("Invalid input of cell_size, default value will be used")
46
- in_args.input["cell_size"] = 1.0
47
-
48
- try:
49
- ws = float(in_args.input["Min_ws"])
50
- in_args.input["Min_ws"] = ws
51
- except ValueError:
52
- print("Invalid input of circular diameter, default value will be used")
53
- in_args.input["Min_ws"] = 3.0
54
- try:
55
- lawn_range = float(in_args.input["lawn_range"])
56
- in_args.input["lawn_range"] = lawn_range
57
- except ValueError:
58
- print("Invalid input of range height of lawns, default value will be used")
59
- in_args.input["lawn_range"] = 0.1
60
-
61
- out_folder = in_args.input["out_folder"]
62
-
63
- if not os.path.exists(in_las_folder):
64
- print("Error! Cannot locate Las folder, please check.")
65
- exit()
66
- else:
67
- found = False
68
- for files in os.listdir(in_las_folder):
69
- if files.endswith(".las") or files.endswith(".laz"):
70
- found = True
71
- break
72
- if not found:
73
- print("Error! Cannot locate input LAS file(s), please check!")
74
- exit()
75
-
76
- if not os.path.exists(out_folder):
77
- print("Warning! Cannot locate output folder, It will be created.")
78
- os.makedirs(out_folder)
79
-
80
- print("Checking input parameters ... Done")
81
-
82
- hh_raster(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
83
-
84
- print('Hummock and Hollow detection from LiDAR process is done in {} seconds)'
85
- .format(round(time.time() - start_time, 5)))
1
+ import math
2
+ import os
3
+ import time
4
+
5
+
6
+ from beratools.tools.common import *
7
+ from beratools.tools.r_interface import *
8
+
9
+
10
+ def hh_raster(callback, in_las_folder, Min_ws, lawn_range, cell_size, out_folder, processes, verbose):
11
+ rprocesses = r_processes(processes)
12
+
13
+ in_las_folder = in_las_folder.replace("\\", "/")
14
+ out_folder = out_folder.replace("\\", "/")
15
+
16
+ # assign R script file to local variable
17
+ Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
18
+ # Defining the R script and loading the instance in Python
19
+ r['source'](Beratools_R_script)
20
+ # Loading the function defined in R script.
21
+ r_hh_function = robjects.globalenv['hh_function']
22
+
23
+ # Invoking the R function
24
+ r_hh_function(in_las_folder, cell_size, Min_ws, lawn_range, out_folder, rprocesses)
25
+
26
+
27
+ if __name__ == '__main__':
28
+ start_time = time.time()
29
+ print('Hummock and Hollow detection from LiDAR process.\n'
30
+ '@ {}'.format(time.strftime("%d %b %Y %H:%M:%S", time.localtime())))
31
+
32
+
33
+ packages = ['lidR', 'rgrass', 'rlas', 'future',
34
+ 'terra'] # ,'comprehenr','na.tools','sf','sp']#,'devtools','gdal']#,'fasterRaster']
35
+ check_r_packages_installation(packages)
36
+
37
+ print("Checking input parameters ...")
38
+ in_args, in_verbose = check_arguments()
39
+
40
+ in_las_folder = in_args.input["in_las_folder"]
41
+ try:
42
+ cell_size = float(in_args.input["cell_size"])
43
+ in_args.input["cell_size"] = cell_size
44
+ except ValueError:
45
+ print("Invalid input of cell_size, default value will be used")
46
+ in_args.input["cell_size"] = 1.0
47
+
48
+ try:
49
+ ws = float(in_args.input["Min_ws"])
50
+ in_args.input["Min_ws"] = ws
51
+ except ValueError:
52
+ print("Invalid input of circular diameter, default value will be used")
53
+ in_args.input["Min_ws"] = 3.0
54
+ try:
55
+ lawn_range = float(in_args.input["lawn_range"])
56
+ in_args.input["lawn_range"] = lawn_range
57
+ except ValueError:
58
+ print("Invalid input of range height of lawns, default value will be used")
59
+ in_args.input["lawn_range"] = 0.1
60
+
61
+ out_folder = in_args.input["out_folder"]
62
+
63
+ if not os.path.exists(in_las_folder):
64
+ print("Error! Cannot locate Las folder, please check.")
65
+ exit()
66
+ else:
67
+ found = False
68
+ for files in os.listdir(in_las_folder):
69
+ if files.endswith(".las") or files.endswith(".laz"):
70
+ found = True
71
+ break
72
+ if not found:
73
+ print("Error! Cannot locate input LAS file(s), please check!")
74
+ exit()
75
+
76
+ if not os.path.exists(out_folder):
77
+ print("Warning! Cannot locate output folder, It will be created.")
78
+ os.makedirs(out_folder)
79
+
80
+ print("Checking input parameters ... Done")
81
+
82
+ hh_raster(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
83
+
84
+ print('Hummock and Hollow detection from LiDAR process is done in {} seconds)'
85
+ .format(round(time.time() - start_time, 5)))
@@ -1,71 +1,71 @@
1
- import math
2
- import os
3
- import time
4
-
5
- from beratools.tools.common import *
6
- from beratools.tools.r_interface import *
7
-
8
- def hh_raster(callback, in_raster, Min_ws, lawn_range, cell_size, out_folder, processes, verbose):
9
- rprocesses = r_processes(processes)
10
-
11
- in_raster = in_raster.replace("\\", "/")
12
- out_folder = out_folder.replace("\\", "/")
13
-
14
- # assign R script file to local variable
15
- Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
16
- # Defining the R script and loading the instance in Python
17
- r['source'](Beratools_R_script)
18
- # Loading the function defined in R script.
19
- r_hh_function = robjects.globalenv['hh_function_byraster']
20
-
21
- # Invoking the R function
22
- r_hh_function(in_raster, cell_size, Min_ws, lawn_range, out_folder, rprocesses)
23
-
24
-
25
- if __name__ == '__main__':
26
- start_time = time.time()
27
- print('Hummock and Hollow detection from DTM raster process.\n'
28
- '@ {}'.format(time.strftime("%d %b %Y %H:%M:%S", time.localtime())))
29
-
30
- packages = ['terra'] # ,'comprehenr','na.tools','sf','sp']#,'devtools','gdal']#,'fasterRaster']
31
- check_r_packages_installation(packages)
32
-
33
- print("Checking input parameters ...")
34
- in_args, in_verbose = check_arguments()
35
- in_raster = in_args.input["in_raster"]
36
- try:
37
- cell_size = float(in_args.input["cell_size"])
38
- in_args.input["cell_size"] = cell_size
39
- except ValueError:
40
- print("Invalid input of cell_size, default value will be used")
41
- in_args.input["cell_size"] = 1.0
42
-
43
- try:
44
- ws = float(in_args.input["Min_ws"])
45
- in_args.input["Min_ws"] = ws
46
- except ValueError:
47
- print("Invalid input of circular diameter, default value will be used")
48
- in_args.input["Min_ws"] = 3.0
49
- try:
50
- lawn_range = float(in_args.input["lawn_range"])
51
- in_args.input["lawn_range"] = lawn_range
52
- except ValueError:
53
- print("Invalid input of range height of lawns, default value will be used")
54
- in_args.input["lawn_range"] = 0.1
55
-
56
- out_folder = in_args.input["out_folder"]
57
-
58
- if not os.path.isfile(in_raster):
59
- print("Error! Cannot locate raster folder, please check.")
60
- exit()
61
-
62
- if not os.path.exists(out_folder):
63
- print("Warning! Cannot locate output folder, It will be created.")
64
- os.makedirs(out_folder)
65
-
66
- print("Checking input parameters ... Done")
67
-
68
- hh_raster(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
69
-
70
- print('Hummock and Hollow detection from DTM raster process is done in {} seconds)'
71
- .format(round(time.time() - start_time, 5)))
1
+ import math
2
+ import os
3
+ import time
4
+
5
+ from beratools.tools.common import *
6
+ from beratools.tools.r_interface import *
7
+
8
+ def hh_raster(callback, in_raster, Min_ws, lawn_range, cell_size, out_folder, processes, verbose):
9
+ rprocesses = r_processes(processes)
10
+
11
+ in_raster = in_raster.replace("\\", "/")
12
+ out_folder = out_folder.replace("\\", "/")
13
+
14
+ # assign R script file to local variable
15
+ Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
16
+ # Defining the R script and loading the instance in Python
17
+ r['source'](Beratools_R_script)
18
+ # Loading the function defined in R script.
19
+ r_hh_function = robjects.globalenv['hh_function_byraster']
20
+
21
+ # Invoking the R function
22
+ r_hh_function(in_raster, cell_size, Min_ws, lawn_range, out_folder, rprocesses)
23
+
24
+
25
+ if __name__ == '__main__':
26
+ start_time = time.time()
27
+ print('Hummock and Hollow detection from DTM raster process.\n'
28
+ '@ {}'.format(time.strftime("%d %b %Y %H:%M:%S", time.localtime())))
29
+
30
+ packages = ['terra'] # ,'comprehenr','na.tools','sf','sp']#,'devtools','gdal']#,'fasterRaster']
31
+ check_r_packages_installation(packages)
32
+
33
+ print("Checking input parameters ...")
34
+ in_args, in_verbose = check_arguments()
35
+ in_raster = in_args.input["in_raster"]
36
+ try:
37
+ cell_size = float(in_args.input["cell_size"])
38
+ in_args.input["cell_size"] = cell_size
39
+ except ValueError:
40
+ print("Invalid input of cell_size, default value will be used")
41
+ in_args.input["cell_size"] = 1.0
42
+
43
+ try:
44
+ ws = float(in_args.input["Min_ws"])
45
+ in_args.input["Min_ws"] = ws
46
+ except ValueError:
47
+ print("Invalid input of circular diameter, default value will be used")
48
+ in_args.input["Min_ws"] = 3.0
49
+ try:
50
+ lawn_range = float(in_args.input["lawn_range"])
51
+ in_args.input["lawn_range"] = lawn_range
52
+ except ValueError:
53
+ print("Invalid input of range height of lawns, default value will be used")
54
+ in_args.input["lawn_range"] = 0.1
55
+
56
+ out_folder = in_args.input["out_folder"]
57
+
58
+ if not os.path.isfile(in_raster):
59
+ print("Error! Cannot locate raster folder, please check.")
60
+ exit()
61
+
62
+ if not os.path.exists(out_folder):
63
+ print("Warning! Cannot locate output folder, It will be created.")
64
+ os.makedirs(out_folder)
65
+
66
+ print("Checking input parameters ... Done")
67
+
68
+ hh_raster(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
69
+
70
+ print('Hummock and Hollow detection from DTM raster process is done in {} seconds)'
71
+ .format(round(time.time() - start_time, 5)))
@@ -1,51 +1,51 @@
1
- import os
2
- import time
3
-
4
- from beratools.tools.common import *
5
- from beratools.tools.r_interface import *
6
-
7
- def las_info(callback, in_las_folder, processes, verbose):
8
- rprocesses = r_processes(processes)
9
- # assign R script file to local variable
10
- Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
11
- # Defining the R script and loading the instance in Python
12
- r['source'](Beratools_R_script)
13
- # Loading the function defined in R script.
14
- r_normalized_lidar = robjects.globalenv['las_info']
15
-
16
- # Invoking the R function
17
- r_normalized_lidar(in_las_folder, rprocesses)
18
-
19
-
20
- if __name__ == '__main__':
21
- start_time = time.time()
22
- print('LiDAR data information..\n @ {}'
23
- .format(time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())))
24
-
25
- packages = ['lidR', 'future']
26
- check_r_packages_installation(packages)
27
-
28
- print("Checking input parameters....")
29
- in_args, in_verbose = check_arguments()
30
-
31
- in_las_folder = in_args.input["in_las_folder"]
32
-
33
- if not os.path.exists(in_las_folder):
34
- print("Error! Cannot locate Las folder, please check.")
35
- exit()
36
- else:
37
- found = False
38
- for files in os.listdir(in_las_folder):
39
- if files.endswith(".las") or files.endswith(".laz"):
40
- found = True
41
- break
42
- if not found:
43
- print("Error! Cannot locate input LAS file(s), please check!")
44
- exit()
45
-
46
- print("Checking input parameters....Done")
47
-
48
- las_info(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
49
-
50
- print('Display LiDAR data information is done in {} seconds)'
51
- .format(round(time.time() - start_time, 5)))
1
+ import os
2
+ import time
3
+
4
+ from beratools.tools.common import *
5
+ from beratools.tools.r_interface import *
6
+
7
+ def las_info(callback, in_las_folder, processes, verbose):
8
+ rprocesses = r_processes(processes)
9
+ # assign R script file to local variable
10
+ Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
11
+ # Defining the R script and loading the instance in Python
12
+ r['source'](Beratools_R_script)
13
+ # Loading the function defined in R script.
14
+ r_normalized_lidar = robjects.globalenv['las_info']
15
+
16
+ # Invoking the R function
17
+ r_normalized_lidar(in_las_folder, rprocesses)
18
+
19
+
20
+ if __name__ == '__main__':
21
+ start_time = time.time()
22
+ print('LiDAR data information..\n @ {}'
23
+ .format(time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())))
24
+
25
+ packages = ['lidR', 'future']
26
+ check_r_packages_installation(packages)
27
+
28
+ print("Checking input parameters....")
29
+ in_args, in_verbose = check_arguments()
30
+
31
+ in_las_folder = in_args.input["in_las_folder"]
32
+
33
+ if not os.path.exists(in_las_folder):
34
+ print("Error! Cannot locate Las folder, please check.")
35
+ exit()
36
+ else:
37
+ found = False
38
+ for files in os.listdir(in_las_folder):
39
+ if files.endswith(".las") or files.endswith(".laz"):
40
+ found = True
41
+ break
42
+ if not found:
43
+ print("Error! Cannot locate input LAS file(s), please check!")
44
+ exit()
45
+
46
+ print("Checking input parameters....Done")
47
+
48
+ las_info(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
49
+
50
+ print('Display LiDAR data information is done in {} seconds)'
51
+ .format(round(time.time() - start_time, 5)))
@@ -1,40 +1,40 @@
1
- import os
2
- import time
3
-
4
- from beratools.tools.common import *
5
- from beratools.tools.r_interface import *
6
-
7
- def laz2las(callback, in_las_folder, out_folder, processes, verbose):
8
- rprocesses = r_processes(processes)
9
-
10
- # assign R script file to local variable
11
- Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
12
- # Defining the R script and loading the instance in Python
13
- r['source'](Beratools_R_script)
14
- # Loading the function defined in R script.
15
- r_laz2las = robjects.globalenv['laz2las']
16
-
17
- # Invoking the R function
18
- r_laz2las(in_las_folder, out_folder, rprocesses)
19
-
20
-
21
- if __name__ == '__main__':
22
- start_time = time.time()
23
- print('Unzip liDAR data processing..\n @ {}'
24
- .format(time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())))
25
-
26
- packages = ['lidR', 'future']
27
- check_r_packages_installation(packages)
28
-
29
- print("Checking input parameters....")
30
- in_args, in_verbose = check_arguments()
31
-
32
- in_las_folder = in_args.input["in_las_folder"]
33
- out_folder = in_args.input["out_folder"]
34
-
35
- check_las_files_existence(in_las_folder)
36
-
37
- print("Checking input parameters....Done")
38
- laz2las(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
39
- print('Unzip liDAR data processing is done in {} seconds)'
40
- .format(round(time.time() - start_time, 5)))
1
+ import os
2
+ import time
3
+
4
+ from beratools.tools.common import *
5
+ from beratools.tools.r_interface import *
6
+
7
+ def laz2las(callback, in_las_folder, out_folder, processes, verbose):
8
+ rprocesses = r_processes(processes)
9
+
10
+ # assign R script file to local variable
11
+ Beratools_R_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Beratools_r_script.r')
12
+ # Defining the R script and loading the instance in Python
13
+ r['source'](Beratools_R_script)
14
+ # Loading the function defined in R script.
15
+ r_laz2las = robjects.globalenv['laz2las']
16
+
17
+ # Invoking the R function
18
+ r_laz2las(in_las_folder, out_folder, rprocesses)
19
+
20
+
21
+ if __name__ == '__main__':
22
+ start_time = time.time()
23
+ print('Unzip liDAR data processing..\n @ {}'
24
+ .format(time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())))
25
+
26
+ packages = ['lidR', 'future']
27
+ check_r_packages_installation(packages)
28
+
29
+ print("Checking input parameters....")
30
+ in_args, in_verbose = check_arguments()
31
+
32
+ in_las_folder = in_args.input["in_las_folder"]
33
+ out_folder = in_args.input["out_folder"]
34
+
35
+ check_las_files_existence(in_las_folder)
36
+
37
+ print("Checking input parameters....Done")
38
+ laz2las(print, **in_args.input, processes=int(in_args.processes), verbose=in_verbose)
39
+ print('Unzip liDAR data processing is done in {} seconds)'
40
+ .format(round(time.time() - start_time, 5)))