আমি একটি জিওটিফ চিত্র এবং এর সাথে সম্পর্কিত লিডার ডেটা (এক্স, ওয়াই, জেড) ইউটিএম স্থানাঙ্কগুলিতে দিয়েছি। আমাকে ইমেজ থেকে আরজিবি মানগুলির সাথে লিডার ডেটা মার্জ করতে হবে।
তার মানে, শেষে, আমাকে জিওডিফ চিত্র থেকে সম্পর্কিত আরজিবি মান দিয়ে কোডড লিডার মেঘের প্রতিটি পয়েন্ট প্লট করতে হবে (3 ডি)।
আমি কিউজিআইএস ব্যবহার করে লিডার ডেটাটিকে শেফফাইলে রূপান্তর করেছি। এরপর আমার কি করা উচিৎ?
আর-তে, আমি plot3D
ফাংশনটি চেষ্টা করেছিলাম , কিন্তু, এটি কার্যকর হয়নি। আমি পাঠ্য ডক , শেফফিল এবং টিফ চিত্রটি সংযুক্ত করছি
সম্পাদনা:
আমি নীচে প্রদর্শিত হিসাবে নিম্নলিখিত প্রোগ্রামটি সম্পন্ন করেছি:
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)
}
}
গ্রাফটি প্লট করার চেষ্টা করার সময় এটি নিম্নলিখিত ত্রুটিটি দেখায়:
[.data.frame
(X @ ডেটা, আই, জে, ..., ড্রপ = ফলস) এ ত্রুটি : অব্যবহৃত যুক্তি (1)
সম্পাদনা:
আরজিবি ছাড়াই আমি 3D মডেলটি পেয়েছি যেমনটি নীচে দেখানো হয়েছে: