Ho fornito un'immagine Geotiff e i corrispondenti dati Lidar (x, y, z) in coordinate UTM. Ho bisogno di unire i dati Lidar con i valori RGB dall'immagine.
Ciò significa che alla fine ho bisogno di tracciare (3D) ogni punto del colore della nuvola LiDAR codificato con il suo corrispondente valore RGB dall'immagine Geotiff.
Ho convertito i dati Lidar in un file di forma usando QGIS. Cosa dovrei fare dopo?
In R, ho provato la plot3D
funzione, ma non ha funzionato. Allego il documento di testo , lo shapefile e l' immagine tif
Modificare:
Ho fatto il seguente programma come mostrato di seguito:
require(raster)
require(maptools) # to take shape files
#require(car) # for scatter3D
require(plot3Drgl)
##setwd("C:\\Users\\Bibin Wilson\\Documents\\R")
##source('Lidar.r')
data = read.csv("C:\\Users\\Bibin Wilson\\Desktop\\Lidar\\lidardata.csv")
#nr = nrow(data)
nc = ncol(data)
nr = 500
require(rgdal)
X = readGDAL("C:\\Users\\Bibin Wilson\\Desktop\\Lidar\\image.tif")
topx = 4.968622208855732e+05;
topy = 5.419739403811632e+06;
final = matrix(nrow = nr, ncol = nc+2)
for(i in 1:nr) {
x = data[i,1]
y = data[i,2]
rr = round((topy-y)/0.0833)
cc = abs(round((x-topx)/0.0833))
if(rr == 0) {
rr = 1
}
if(cc == 0) {
cc = 1
}
final[i,1] = x
final[i,2] = y
final[i,3] = data[i,3]
final[i,4] = rr
final[i,5] = cc
}
for(i in 1:nr) {
x = final[i,1]
y = final[i,2]
z = final[i,3]
rr = final[i,4]
cc = final[i,5]
if(rr <= 5086 && cc<=3265) {
r = X[rr,cc,1]/255
g = X[rr,cc,2]/255
b = X[rr,cc,3]/255
c = cbind(r,g,b)
scatter3D(x,y,z,2,c)
}
}
Ma durante il tentativo di tracciare il grafico, mostra il seguente errore:
Errore in
[.data.frame
(x @ data, i, j, ..., drop = FALSE): argomento non utilizzato (1)
Modificare:
Ho ottenuto il modello 3D senza RGB come mostrato di seguito: