R ব্যবহার করে হিস্টগ্রাম বিশ্লেষণের জন্য পয়েন্ট ডেটা গ্রিডড ডেটাফ্রেমে রূপান্তর করা?


14

আমি জিআইএস ডেটা ব্যবহারে খুব নতুন এবং কেবলমাত্র বিনয়ের সাথে আর এর সাথে অভিজ্ঞ হয়েছি। আমি স্থানিক-alyaly.net পিডিএফ বইটি ব্যবহার করে কীভাবে স্থানিক তথ্য বিশ্লেষণ করতে পারি সে সম্পর্কে পড়ছি, তাই আমি পুরোপুরি হারিয়ে যাইনি, তবে আমি ভেবেছিলাম যে আমি বর্ণনা করতে পারি আমার সমস্যা এবং লোকেরা ধারনাগুলির পরামর্শ দিতে পারে।

বিভিন্ন ল্যাট / লম্বা স্থানাঙ্কে আমার প্রায় 2000 পরিমাপের একটি ডেটাসেট রয়েছে, যদিও আমি সম্ভবত এই ডেটাসেটটি উপ-বিভক্ত করব কারণ 3 বছরের বেশি সময় ধরে ডেটা সংগ্রহ করা হয়েছিল এবং সময়ের সাথে সাথে পরিস্থিতি পরিবর্তিত হয়েছিল। আসুন ভেরিয়েবলকে "আইপি" হিসাবে চিহ্নিত করা যাক।

আমি নমুনা ডেটাতে ক্রিগিং বা অন্য কোনও ইন্টারপোলেশন পদ্ধতি ব্যবহার করে প্রশ্নের অধীনে পুরো অঞ্চলে আইপির মানচিত্র তৈরি করতে চাই। তারপরে আমি বিভিন্ন আইপি বালতিতে জমির পরিমাণ পরিমাপ করে একটি হিস্টোগ্রাম তৈরি করতে চাই। আমার একটি হিস্টোগ্রামও তৈরি করতে হবে যা প্রতিটি বালতিতে নমুনার সংখ্যা দেখায় (দ্রষ্টব্য যে কোনও নমুনায় তার জমির জন্য ক্রিগিংয়ের পূর্বাভাসের তুলনায় উচ্চতর বা নিম্ন প্রকৃত আইপি থাকতে পারে) নোট করুন।

আমি স্পাটিয়ালপয়েন্টস ডেটা ফ্রেমে ডেটা লোড করার জন্য এবং একটি ক্রিগিং বিশ্লেষণ চালানোর পদ্ধতি অনুসরণ করি, যেখানে আমার সমস্যা হচ্ছে কীভাবে সেই ডেটাটিকে গ্রিডড ডেটাফ্রেমে রূপান্তর করা যায় যাতে আমি হিস্টোগ্রাম বিশ্লেষণ করতে পারি।

পয়েন্টগুলি গ্রিডে রূপান্তর করার জন্য কোনও পরামর্শ?

উত্তর:


12

আপনি ঠিক বলেছেন ... এটা বেশ সহজ! "রাস্টার" প্যাকেজটিতে রাস্টারগুলি তৈরি এবং পরিচালনা করার সাথে সম্পর্কিত কিছু সহজ সরল উপায় রয়েছে।

library(maptools)
library(raster)

# Load your point shapefile (with IP values in an IP field):
pts <- readShapePoints("pts.shp")

# Create a raster, give it the same extent as the points
# and define rows and columns:

rast <- raster()
extent(rast) <- extent(pts) # this might be unnecessary
ncol(rast) <- 20 # this is one way of assigning cell size / resolution
nrow(rast) <- 20

# And then ... rasterize it! This creates a grid version 
# of your points using the cells of rast, values from the IP field:
rast2 <- rasterize(pts, rast, pts$IP, fun=mean) 

আপনি বিভিন্ন উপায়ে গ্রিডের আকার এবং রেজোলিউশন বরাদ্দ করতে পারেন - রাস্টার প্যাকেজ ডকুমেন্টেশনগুলিতে ভাল নজর রাখুন।

উপরের উদাহরণে রাস্টারাইজ থেকে রাস্টার কোষের মানগুলি একটি ফাংশন - 'গড়' দিয়ে গণনা করা যেতে পারে। আপনি এটি রেখেছেন তা নিশ্চিত করুন: অন্যথায় এটি শেষ পয়েন্ট থেকে আইপির মানটি ব্যবহার করে !


একটি সিএসভি থেকে:

pts <- read.csv("IP.csv")
coordinates(pts) <- ~lon+lat
rast <- raster(ncol = 10, nrow = 10)
extent(rast) <- extent(pts)
rasterize(pts, rast, pts$IP, fun = mean)

আরে এটি খুব দরকারী, তবে কোডটি যদি আমি শেফফাইলের চেয়ে ল্যাট / ল্যাংস দিয়ে একটি সাধারণ সিএসভিতে পয়েন্টগুলি দিয়ে শুরু করি তবে কোডটি কেমন দেখাচ্ছে? সিএসভিতে কলামগুলি আইপি, ল্যাট, লং, ইত্যাদি ইত্যাদি হবে
ব্যবহারকারী 1080253

আপনি ইঙ্গিত দিয়েছিলেন যে আপনি ইতিমধ্যে একটি স্পেশালপয়েন্টস ডেটা ফ্রেমে ডেটা লোড করেছেন ... যা ptsআমার উপরের উদাহরণে ঠিক তাই । আপনার স্পেশালপয়েন্টস ডেটা ফ্রেম অবজেক্টটিতে কেবল কোডটি চালান!
সিম্বামাঙ্গু

4
এই উত্তরটি যদিও দুর্দান্ত, তবে এটি প্রয়োজনীয় কি তা বিবেচনা করে না বলে মনে হয়। (এটা একটি সমাধান প্রস্তাব মনে হচ্ছে gis.stackexchange.com/questions/20018 পরিবর্তে।) চ্যালেঞ্জ হয় ঢুকান 2000 বা পয়েন্ট তাই শুধু রাস্টার কোষ তাদের মান নির্ধারণ না। প্রদত্ত ইতিমধ্যেই আছে যে ওপি দাবি "একটি kriging বিশ্লেষণ চালানো," এই প্রশ্নের নিচে আসে আহরণের একটি রাস্টার মান (বলুন, rএকটি ব্যবহার করার জন্য) hist-একটি পদ্ধতি, যা কেবল মত একটি অভিব্যক্তি একটি ব্যাপার hist(getValues(r))
whuber

@ হুবার - দেখে মনে হচ্ছে যে ওপি "আমার যেখানে সমস্যা হচ্ছে তা হ'ল সেই ডেটাটিকে গ্রিডড ডেটাফ্রেমে কীভাবে রূপান্তর করা যায় যাতে আমি হিস্টগ্রাম বিশ্লেষণ করতে পারি ... পয়েন্টগুলিকে গ্রিডে রূপান্তর করার জন্য কোনও পরামর্শ" আসল প্রশ্ন হিসাবে, এবং জানে কীভাবে একটি স্পেশালপয়েন্টস ডেটা ফ্রেম তৈরি করতে এবং ক্রিগিং চালাতে। তবে আপনি ঠিক বলেছেন, এটি 20018 এর নকল বলে মনে হচ্ছে (গ্রিডড ইনপুট ব্যতীত)।
সিম্বামাঙ্গু

দুঃখিত, @ ব্যবহারকারী 1080253 ... আমি 'গ্রিড'টিকে' রাস্টার 'হিসাবে পড়েছি যা সঠিক নয়, এবং ক্রিগিংয়ের জন্য সহায়ক নয়; নিয়মিত গ্রিড তৈরি করতে এবং সেই গ্রিডে আপনার ডেটা ইন্টারপোলটিং করার জন্য আরও ভাল ধারণা পেতে এখানে দেখুন ।
সিম্বামাঙ্গু

3

প্লটকেএমএল প্যাকেজটির একটি ফাংশন রয়েছে vect2rast। এই ফাংশনটি মূলত rasterizeরাস্টার প্যাকেজে উপলব্ধ ফাংশনটি প্রসারিত করে । এর সুবিধা vect2rast; যাইহোক, এটির ব্যবহারকারীর পক্ষ থেকে কোনও ইনপুট প্রয়োজন নেই এটি স্বয়ংক্রিয়ভাবে গ্রিড সেলের আকার এবং ইনপুট ডেটা সেটের বৈশিষ্ট্যের ভিত্তিতে বাউন্ডিং বক্স নির্ধারণ করে। গ্রিড ঘরের আকার মানচিত্রের বৈশিষ্ট্যগুলির ঘনত্ব / আকারের উপর ভিত্তি করে অনুমান করা হয় ( nndistস্প্যাটস্যাট প্যাকেজের কার্যকরী)।

library(plotKML)
Rast2 <- vect2rast(pts)

# for large data sets use SAGA GIS:
Rast2 <- vect2rast(pts, method = "SAGA")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.