-
Notifications
You must be signed in to change notification settings - Fork 0
/
pmf.R
73 lines (35 loc) · 1.9 KB
/
pmf.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#Single Val Param input = 5, 3
#Multi Val Param input = 3, 12, 3, 0.1, 1.5
#=====================================================================================================
library(lidR)
#Read LAS file
LASfile <- system.file("extdata", "Megaplot.laz", package="lidR")
las <- readLAS(LASfile, select = "xyzrn")
#Single or multiple val param (choose one)
option = readline(prompt = "Enter [1] for single val param or [2] for multiple val param: ")
if (option == 1){
windowSize = readline(prompt = "Enter window size: ")
windowSize = as.integer(windowSize)
thresholdSize = readline(prompt = "Enter threshold size: ")
thresholdSize = as.integer(thresholdSize)
}else if (option == 2){
windowSize_from = readline(prompt = "Starting element - sequence of window sizes: ")
windowSize_from = as.integer(windowSize_from)
windowSize_to = readline(prompt = "Ending element - sequence of window sizes: ")
windowSize_to = as.integer(windowSize_to)
windowSize_by = readline(prompt = "Diff of element - sequence of window sizes: ")
windowSize_by = as.integer(windowSize_by)
thresholdSize_from = readline(prompt = "Starting element - sequence of threshold sizes: ")
thresholdSize_from = as.integer(thresholdSize_from)
thresholdSize_to = readline(prompt = "Ending element - sequence of threshold sizes: ")
thresholdSize_to = as.integer(thresholdSize_to)
windowSize <- seq(windowSize_from, windowSize_to, windowSize_by)
thresholdSize_lengthout = length(windowSize)
thresholdSize <- seq(thresholdSize_from, thresholdSize_to, length.out = thresholdSize_lengthout)
}else{
print("Err")
}
#Implement PMF algorithm
las <- classify_ground(las, algorithm = pmf(ws = windowSize, th = thresholdSize))
#Plot result
plot(las, color = "Classification", size = 2, bg = "white")