একটি সীমানা বাক্সে রাস্টার মান গণনা করুন (স্থানিক পরিমাণ)


11

একটি বাউন্ডিং বাক্স দেওয়া, আমি কীভাবে নির্দিষ্ট মানগুলির সংখ্যা গণনা করতে পারি (বলুন, আমি সংখ্যায় আগ্রহী value == 1) 1 তে একজন রাস্টারে আরকি বা 2) আর-তে রাস্টার প্যাকেজটি?

উত্তর:


10

ইন R, cropমানগুলি বের করতে এবং ( যেমন ) tableএগুলি গণনা করতে ব্যবহার করুন।


উদাহরণস্বরূপ, আসুন 1 ডিগ্রি গ্রিডটি গ্লোবকে কভার করুন:

library(raster)
x.raster <- raster(outer(179:0, 0:359, `+`), xmn=-180, xmx=180, ymn=-90, ymx=90)

সীমাবদ্ধ বাক্সটি extentব্যবহারের জন্য একটি অবজেক্টে রূপান্তরিত হয়েছে crop:

y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)

এটি করার পরে, সারণিটি সোজা:

table(getValues(y.raster))

এই আউটপুটে প্রথম সারিতে মানগুলি তালিকাভুক্ত করে এবং দ্বিতীয়টি তাদের সম্পর্কিত গণনাগুলি তালিকাভুক্ত করে:

165 166 167 ... 257 258
  1   2   3 ...   2   1

একটি চেক হিসাবে আমরা রাস্টার এবং এর পরিমাণ প্লট করতে পারি:

plot(x.raster)
plot(y.extent, add=T)

মানচিত্র


3

একটি সামান্য সংযোজন: আপনি (মেমরি-নিরাপদ) ফাংশন "ফ্রিক" ব্যবহার করতে পারেন:

হুবহু দ্বারা উত্তর অনুসরণ:

library(raster)
x.raster <- raster(outer(179:0, 0:359, '+'), xmn=-180, xmx=180, ymn=-90, ymx=90)
y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)

তবে এখন করুন:

freq(y.raster)

এটি কেবলমাত্র খুব বড় বস্তুর জন্য (ফাইলটিতে রাস্টার) গুরুত্বপূর্ণ। 'ফ্রিক' একটি দ্বি-কলামের ম্যাট্রিক্স (মান / গণনা) প্রদান করে যেখানে 'টেবিল' একটি সারণী দেয়।


ছবিটি কাটানোর পরিবর্তে কি কেবল স্থানিক জিজ্ঞাসা করা যায়? ক্রপিং প্রক্রিয়াজাতকরণের জন্য খুব ধীর হতে পারে।
দেখা হয়েছে

1
ফসল তোলা খুব দ্রুত হওয়া উচিত। পরীক্ষা হিসাবে, আমি cropপৃথিবীতে এক মিনিটের গ্রিডটি coveringেকে রাখার জন্য অপারেশন করেছিলাম : এটির 10800 সারি এবং 21600 কলাম (233,280,000 কোষ) রয়েছে। ফসলটি মোট সময় অতিবাহিত সময়ে 1.36 সেকেন্ডে কার্যকর করা হয়েছিল।
হোবার

আমিও মনে করি এটা ফাস্ট হওয়া উচিত, কিন্তু আপনার এই স্থানিক ক্যোয়ারী দিয়ে উপরে তুলনা পারে: v <- extract(x.raster, y.extent) দ্বারা অনুসরণ table(v)
রবার্ট Hijmans

1
রবার্ট, কোন পাঠাগারটি extractএসেছে? এটি অংশ নয় rasterএবং Rসহায়তা সিস্টেম ( ??) এই নামে কোনও ফাংশন খুঁজে পায় না।
হোবার

এটি রাস্টার প্যাকেজে একটি ফাংশন। ? এক্সট্রাক্টটি দেখায় যে (কমপক্ষে আমার জন্য এটি করে)
রবার্ট হিজম্যানস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.