আর তে প্রদত্ত রাস্টারটির সীমা এবং সীমানার বহুভুজ তৈরি করুন


13

আমি দুটি বহুভুজ তৈরি করতে চাই

  1. একটি আমার রাস্টার এর আয়তক্ষেত্রাকার প্রসারিত এক। আমি জানি আমি ব্যবহারকারীর ব্যবহারের পরিমাণটি r <- raster("band5.tif") e <- extent(r) plot(e)আমাকে পেতে পারি: এখানে চিত্র বর্ণনা লিখুন

  2. নীচে দেখানো হয়েছে আমি কীভাবে রাস্টার সীমানার এক বহুভুজ তৈরি করতে পারি?

এটি আমার রাস্টার দেখতে দেখতে:রাস্টার ( "band5.tif")

উত্তর:


23

এখানে একটি উদাহরণ।

library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))

আয়তক্ষেত্রাকার সীমা পেতে

e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')  

এমন বহুভুজ পেতে যা কোষগুলিকে ঘিরে থাকে যা এনএ নয় surround

# make all values the same. Either do
r <- x > -Inf
# or alternatively
# r <- reclassify(x, cbind(-Inf, Inf, 1))

# convert to polygons (you need to have package 'rgeos' installed for this to work)
pp <- rasterToPolygons(r, dissolve=TRUE)

# look at the results
plot(x)
plot(p, lwd=5, border='red', add=TRUE)
plot(pp, lwd=3, border='blue', add=TRUE)

আমি r <- r > -Infঅংশটি নথিভুক্ত খুঁজে পেতে পারে না । এটা ঠিক কি করছে? এবং এটির থেকে কতটা আলাদা (এটি values(r)[!is.na(values(r))] <- 1সমস্ত অবস্থান নির্ধারণ করে যা এন থেকে 1 এ নয়)।
চতুর্থ

3
r > -Infমৌলিক R। কি c(1,NA,3,NA) > -Infদেখতে কিভাবে এটি কাজ করে। আমি একটি বিকল্প যুক্ত করেছি ( reclassify)। আপনার বিকল্পগুলি কাজ করে তবে বড় বস্তুর পক্ষে এটি ভাল নয়।
রবার্ট হিজম্যানস 19

আমি কেবল আমার কম্পিউটারটির rasterToPolygons()অংশটি প্রক্রিয়া করার জন্য অপেক্ষা করছি এবং তারপরে আমি আপনার উত্তরটি মূল্যায়ন করব। -Infবিট এটি খুব কার্যকর হতে চলেছে জন্য ধন্যবাদ !
চতুর্থ

খুব বড় রাস্টারটির জন্য এটি কিছুটা সময় নিতে পারে, এমনকি ব্যর্থও হতে পারে। aggregateসেক্ষেত্রে আপনি প্রথমে ব্যবহার বিবেচনা করতে পারেন কারণ আপনি যেভাবে কোনও পার্থক্য দেখতে পাবেন না।
রবার্ট হিজম্যানস

এমনকি aggregate()অন ​​টি চালানোর পরে কেবল 100 টি কক্ষ থাকলেও এটি প্রক্রিয়াজাত হয়নি (16 গিগাবাইট র‌্যামযুক্ত কম্পিউটার সজ্জিত)। সমস্যাটি হ'ল আমি যতটা পারি পারি ততটুকু সীমানা রাখা দরকার, যেহেতু ফলস্বরূপ বহুভুজ থেকে কোনও ডিইএম বের করা দরকার। আমি যদি আমার রাস্টারটিকে আরও নিচে-নমুনা করি তবে আমি সেই সীমাটি looseিলা করব। আশেপাশে কোন কাজ?
চতুর্থ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.