ওয়ার্ল্ডক্লিম থেকে ডেটা উত্তোলনের জন্য আর ব্যবহার করছেন? [বন্ধ]


9

আমার কাছে 1000 টি ভিন্ন অক্ষাংশ-দ্রাঘিমাংশ সহ একটি ডেটা সেট রয়েছে। আমি এই প্রতিটি স্থানাঙ্কের জন্য গড় বার্ষিক তাপমাত্রা এবং বার্ষিক বৃষ্টিপাত আহরণ করতে চাই। এই ডেটাগুলি সহজেই ওয়ার্ল্ড ক্লিম থেকে পাওয়া যায় এবং ডিআইভিএ -জিআইএস ব্যবহার করে প্রক্রিয়া করা যায়।

আর-তে এটি করার কি আছে?

আমি চাই যে আমার চূড়ান্ত আউটপুটটি প্রতিটি সমন্বয়ের জন্য বার্ষিক তাপমাত্রা এবং বৃষ্টিপাতের সাথে ডেটাফ্রেম হয়। আমি আর জি-তে জিআইএসে নতুন, তাই আমি এই আউটপুটটির জন্য প্রয়োজনীয় গ্রন্থাগারগুলির সাথে একটি বেসিক কোড বাক্সও চাই।

উত্তর:


17

আপনি rasterওয়ার্ল্ডক্লিম ডেটা ডাউনলোড করতে প্যাকেজ ব্যবহার করতে পারেন , ?getdataরেজোলিউশন, ভেরিয়েবল এবং স্থানাঙ্ক সম্পর্কে জানতে দেখুন ।

উদাহরণ স্বরূপ:

library(raster)
library(sp)

r <- getData("worldclim",var="bio",res=10)

বায়ো 1 এবং বায়ো 12 হ'ল গড় তাপমাত্রা এবং অ্যানুয়াল বৃষ্টিপাত:

r <- r[[c(1,12)]]
names(r) <- c("Temp","Prec")

উদাহরণস্বরূপ আমি এলোমেলো পয়েন্টগুলি তৈরি করি, আপনার ক্ষেত্রে কোনও SpatialPointঅবজেক্ট তৈরি করতে স্থানাঙ্কগুলি ব্যবহার করুন ।

points <- spsample(as(r@extent, 'SpatialPolygons'),n=100, type="random")    

অবশেষে, ব্যবহার করুন extract। সহ cbind.data.frameএবং coordinatesআপনি ইচ্ছা ডেটা পাবেন ra ফ্রেম।

values <- extract(r,points)

df <- cbind.data.frame(coordinates(points),values)

আমি এলোমেলো পয়েন্ট ব্যবহার করেছি, তাই আমি প্রচুর পেয়েছি NA। এটা আশা করা যায়।

head(df)
           x          y Temp Prec
1  112.95985  52.092650  -37  388
2  163.54612  85.281643   NA   NA
3   30.95257   5.932434  270  950
4   64.66979  40.912583  150  150
5 -169.40479 -58.889104   NA   NA
6   51.46045  54.813600   36  549

plot(r[[1]])
plot(points,add=T)

এখানে চিত্র বর্ণনা লিখুন

ভুলে যাবেন না যে ওয়ার্ল্ডক্লিম ডেটা 10 এর স্কেল ফ্যাক্টর, তাই Temp = -37-3.7 º সে।


সমন্বয়কারী উদাহরণ সহ:

library(raster)
library(sp)

r <- getData("worldclim",var="bio",res=10)

r <- r[[c(1,12)]]
names(r) <- c("Temp","Prec")

lats <- c(9.093028 , 9.396111, 9.161417)
lons <- c(-11.7235, -11.72975, -11.709417) 

coords <- data.frame(x=lons,y=lats)

points <- SpatialPoints(coords, proj4string = r@crs)

values <- extract(r,points)

df <- cbind.data.frame(coordinates(points),values)

df
          x        y Temp Prec
1 -11.72350 9.093028  257 2752
2 -11.72975 9.396111  257 2377
3 -11.70942 9.161417  257 2752

এটা সত্যিই সহায়ক ছিল!
অ্যাশ

সুতরাং, আমার কাছে pointsযা আমার ল্যাটের ল্যাটের ডেটাফ্রেম এবং ডেটা সেট long তারপরে আমি ঠিক তেমনিভাবে দৌড়েছি। যাইহোক, যখন আমি রান valuesআমি কোনো ত্রুটির সম্মুখীন হয়েছেন: not compatible with requested type। আমি আরও লক্ষ্য করেছি যে আপনার pointsমাত্র নমুনার সীমা চিহ্নিত করে, তবে দীর্ঘ-স্থানাঙ্কের সাথে কোনও ভেক্টর তৈরি করে না
অ্যাশ

হ্যাঁ, ডিগ্রি দশমিক। কারণ ওয়ার্ল্ডক্রিমের সিআরএস হ'ল ডাব্লুজিএস 84 ল্যাট / লোন (ইপিএসজি 4326)। আপনি আলাদা সিআরএসে স্থানাঙ্কগুলি আমদানি করতে পারেন এবং এর সাথে রূপান্তর করতে পারেন spTransform। আপনার যদি ডিডিএমএমএসে স্থানাঙ্ক থাকে তবে এটিকে ডিডিএমএমএম-তে রূপান্তর করুন। দ্বিতীয়ত, আপনি বিভিন্ন স্থানাঙ্ক সম্পর্কে লিখেছেন, তাই আমি এটি পয়েন্ট হিসাবে ব্যাখ্যা করি, আপনি একই স্কিমার পরিবর্তে বহুভুজ ব্যবহার করতে পারেন। আপনার যদি এই তথ্য সহ একটি স্তর shapefileথাকে তবে এটি লোড করতে ব্যবহার করুন ।
aldo_tapia

আমি আপনার দ্বিতীয় পয়েন্ট পাই না। সম্ভবত, আমি পরিষ্কারভাবে ব্যাখ্যা করিনি। আমি এখানে ত্রুটি চিহ্নিত করেছি: eval.in/733232
অ্যাশ

আহ, ঠিক আছে. spsampleনমুনা সীমানা সেট করতে একটি স্থানিক বস্তুর প্রয়োজন। ইনপুটগুলি গ্রিড, বহুভুজ বা লাইন। আমি যা করেছি তা হল নমুনার পরিমাণ নির্ধারণের জন্য ওয়ার্লক্লিম সীমানা বাক্সটি ব্যবহার করা। আমি আমার উত্তরে প্রজননযোগ্য উদাহরণ তৈরি করার জন্য এটি করেছি। আপনার ক্ষেত্রে, আপনার ব্যবহার করার দরকার নেই spsample, আপনার ইতিমধ্যে নমুনার জন্য স্থানাঙ্ক রয়েছে।
aldo_tapia
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.