R ব্যবহার করে রাস্টার এলোমেলো নমুনা?


13

প্রক্রিয়াটির আউটপুট একটি রাস্টার হিসাবে যাতে এলোমেলোভাবে কোনও রাস্টার নমুনা করার সহজ উপায় আছে?

আমি একটি উদাহরণ ব্যবহার করছি যা আমি r-sig-geo তালিকায় পেয়েছি এবং আমি প্যাকেজে sampleRandomফাংশনটি চেষ্টা করেছি raster। এই উভয় পদ্ধতিরই একটি আউটপুট তৈরি করে যা আমি জানি না কীভাবে একজন রাস্টারে রূপান্তর করা যায়। "স্পেশালপয়েন্টসডাটা ফ্রেম রাস্টার" এর বেশ কয়েকটি সংমিশ্রণের সন্ধান করার পরেও আমি কোনও পন্থা খুঁজে পাইনি।

library(raster)

# read in raster
rasterSource <- 'landsat.TIF'
r <- raster(rasterSource)

# convert to spatial points data frame
r.spgrd<-as(r,"SpatialPointsDataFrame") 

# elminate NA values
r.spgrd = r.spgrd[!is.na(r.spgrd[[1]]),] 

# sample points
selectedPoints = sample(1:length(r.spgrd[[1]]), 1000)
r.sampled = r.spgrd[selectedPoints,]

# try to make spgrd into a raster
r.test <- raster(r.sampled)

আমি যখন চালান r.testআমি আউটপুট পেতে:

class       : RasterLayer 
dimensions  : 10, 10, 100  (nrow, ncol, ncell)
resolution  : 28617, 14766  (x, y)
extent      : 1838505, 2124675, 2328685, 2476345  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
values      : none

যাতে নিম্নলিখিত রেখাটি যা রাস্টার লেখার চেষ্টা করে তা বার্তাটি উত্পন্ন করে:

# write out as ascii file
writeRaster(r.test, filename="test1.ASC", datatype="ascii", overwrite=TRUE)

Error: hasValues(x) is not TRUE

আমার মূল উদ্দেশ্যটি নমুনা প্রক্রিয়া শেষে কিছু ধরণের রাস্টার উত্পাদন করা। আমি আমার রাস্টারের মধ্যে মানগুলি পরিবর্তনের সাথেও ঠিক আছি (আমি কীভাবে এটি করব তা নির্দিষ্ট নয়)।

উত্তর:


21

আপনি Rasterপ্যাকেজ ভিগনেট , বিভাগ 5.2 থেকে উদাহরণগুলি মানিয়ে নিতে পারেন । এখানে একটি উপায়:

r <- raster(ncol=30,nrow=20)
r[] <- 1:(30*20)              # Raster for testing
#plot(r)                      # (If you want to see it)
r[runif(30*20) >= 0.30] <- NA # Randomly *unselect* 70% of the data
plot(r)

রাস্টার নির্বাচন


10
এই উত্তরটি আমাকে আর শিখতে চায় ...
সল্টডন

2
এটি অত্যন্ত সুস্পষ্ট হতে পারে, তবে যে কোনও ঘরের মূল্য উল্লেখ করা যেতে পারে তা বুঝতে আমার কিছুটা সময় লেগেছিল r[r "condition"]। সুতরাং আপনি রাস্টার যে সব মান সেট করতে চান তাহলে 100হতে 1আপনি লিখতে পারেন r[r == 100] <- 1। ধন্যবাদ @ শুভ - অত্যন্ত দরকারী উদাহরণ!
djq

@ যে কোনও ত্রুটি কেন ত্রুটি: হ্যাসভ্যালুগুলি (এক্স) সত্য পপ আপ নয়?
চতুর্থ

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