Tôi đã đưa ra một hình ảnh Geotiff và dữ liệu tương ứng của nó (x, y, z) trong tọa độ UTM. Tôi cần hợp nhất dữ liệu Lidar với các giá trị RGB từ hình ảnh.
Điều đó có nghĩa là, cuối cùng, tôi cần vẽ đồ thị (3D) từng điểm của màu đám mây LiDAR được mã hóa với giá trị RGB tương ứng của nó từ hình ảnh Geotiff.
Tôi đã chuyển đổi dữ liệu của Lidar thành một shapefile bằng cách sử dụng QGIS. Tôi nên làm gì tiếp theo?
Trong R, tôi đã thử plot3D
chức năng này, nhưng, nó không hoạt động. Tôi đang đính kèm tài liệu văn bản , shapefile và hình ảnh tif
Biên tập:
Tôi đã thực hiện chương trình sau như hình dưới đây:
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)
}
}
Nhưng trong khi cố gắng vẽ đồ thị, nó hiển thị lỗi sau:
Lỗi trong
[.data.frame
(x @ data, i, j, ..., drop = FALSE): đối số không được sử dụng (1)
Biên tập:
Tôi đã có mô hình 3D mà không có RGB như dưới đây: