কীভাবে স্পষ্টিয়ালপলিগনগুলিকে রাস্টেরাইজ করা যায়?


10

আমি {এসপি} প্যাকেজটিতে 'রাস্টারাইজ' ফাংশনটি ব্যবহার করে একটি বিশ্ব বাথাইমেট্রি রাস্টার স্তর থেকে আমার আগ্রহের ক্ষেত্রের স্নানের মানচিত্রগুলি বের করার চেষ্টা করছি।

* সম্পাদনা: আমি 'এক্সট্রাক্ট' ফাংশনটি পেয়েছি যা মনে হচ্ছে যা আমি খুঁজছি তার চেয়ে বেশি।

আমি এ পর্যন্ত এটিই করেছি:

> class(subarea0) #This is my area of interest (Eastern Canadian Arctic Sea)
[1] "SpatialPolygons"
attr(,"package")
[1] "sp"

> extent(subarea0)
class       : Extent 
xmin        : -82.21997 
xmax        : -57.21667 
ymin        : 60.2 
ymax        : 78.16666

library(marelac)
data("Bathymetry")#World bathymetric data in library (marelac)
names(Bathymetry);class(Bathymetry);str(Bathymetry)
[1] "x" "y" "z"
[1] "list"
List of 3
 $ x: num [1:359] -180 -179 -178 -177 -176 ...
 $ y: num [1:180] -89.5 -88.5 -87.5 -86.5 -85.5 ...
 $ z: num [1:359, 1:180] 2853 2873 2873 2873 2873 ...

  raster_bath<-raster(Bathymetry)#Transformed into a raster layer
    extent(raster_bath) <- extent(subarea0)#Transform the extend of my raster to the extend of my SpatialPolygons

>ras_sub0<-rasterize(subarea0,raster_bath)#rasterize my SpatialPolygons (*Edits: not the function that I need here, but I am still interested to learn what results mean)
Found 2 region(s) and 10 polygon(s)
> plot(ras_sub0)
> plot(subarea0, add=TRUE)

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

> ras_sub0
class       : RasterLayer 
dimensions  : 180, 359, 64620  (nrow, ncol, ncell)
resolution  : 0.06964709, 0.0998148  (x, y)
extent      : -82.21997, -57.21667, 60.2, 78.16666  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 
values      : in memory
min value   : 1 
max value   : 2 
layer name  : layer 

আমি ফলাফল বুঝতে পারি না। আমি কেন আমার প্রতিটি বহুভুজের জন্য 2 টি রঙ পাচ্ছি? তাঁরা কি বোঝাতে চাইছেন?

আমি কীভাবে অবশেষে স্নানের গভীরতা কনট্যুর পেতে পারি? এটি কি আমার রেজোলিউশন বা মাত্রা পরিবর্তন করার সাথে কিছু করার?

* সম্পাদনা: ঠিক আছে, আমি এখন নিম্নলিখিতগুলি সম্পাদন করেছি:

v <- extract(raster_bath, subarea0)#Extract data from my Raster Layer for the locations of my SpatialPolygons

ভি একটি তালিকা এবং আমি কীভাবে / কী আকারে আমার স্থানীয় বহুভুজের সাথে এই তথ্যটি ফেরত দিতে চাই তা নিশ্চিত নই ...

ধন্যবাদ!


আপনি যখন 'বাথিমেট্রি ডিপথ কনট্যুর পান' বলে থাকেন তখন আপনার অর্থ কি আপনি কনট্যুরগুলিও তৈরি করতে চান?
সিম্বামাঙ্গু

উত্তর:


6

আপনার লাইনটি ras_sub0<-rasterize(subarea0,raster_bath)বহুভুজগুলির সূচী সংখ্যাটি নিচ্ছে এবং রাস্টারটির মানগুলিতে সেট করে।

আপনি যদি আপনার বহুভুজ এবং রাস্টার কেবল ছেদ চান:

subarea0_bathy <- intersect(raster_bath, subarea0)

আপডেট : @ গডিনএ নোট হিসাবে, দেখতে ছেদ করা () এটি পেতে, আপনি আপনার মূলের চেয়ে কিছুটা বড় রাস্টার দিয়ে ছেদ করতে পারেন:

r2 <- raster() # create a generic raster
extent(r2) <- extent(subarea0) + 1 # add 1 degree of extent (0.5 each side)
r3 <- intersect(raster_bath, r2) 

আপনাকে @ সিম্বামাঙ্গু ধন্যবাদ, আমি "ছেদ" কমান্ডটি চেষ্টা করেছিলাম, তবে আমি যখন সাবারিয়া0_বাতি এবং আমার স্প্যাটিপাল্পিলিগন (সুবারিয়া 0) প্লট করি তখন তারা সম্পূর্ণরূপে ওভারল্যাপ হয় না, কেন? আপনার পূর্ববর্তী প্রশ্নের উত্তর দিতে, হ্যাঁ আমি অবশেষে আমার বাথমেট্রি কনট্যুরটিও পেতে চাই। কোন পরামর্শ?
GodinA

হ্যাঁ, বাথাইমেট্রি ডেটা এবং তানজানিয়া বহুভুজ থেকে আউটপুটটি দেখেছি এবং আমি একই প্রভাব দেখতে পাচ্ছি। উপরে আমার আপডেট দেখুন। Contours এবং জন্য, এটি সহজ হিসাবে cont <- contour(r3)তারপর lines(cont)মহান R নয়?
সিম্বামাঙ্গু

দুর্দান্ত, হ্যাঁ আর চমত্কার হতে পারে! ধন্যবাদ @ সিম্বামাঙ্গু, এটি কাজ করে! যাইহোক, আমি কেবলমাত্র আমার গভীরতা কনট্যুরের সাথে আমার স্প্যাটালালপলিগনগুলি প্লট করতে চাই। সম্ভবত একটি স্পষ্টিয়ালপলিজোনস ডেটাফ্রেম তৈরি করতে পারেন? ছেদ ব্যবহার করে, আমি আমার স্প্যাটালপোলিগনগুলিকে ঘিরে পুরো বর্গক্ষেত্রের জন্য তথ্য পাই। আমার স্পিটিপাল্পলিগনগুলিকে আমার গভীরতা কনট্যুরের সাথে একরকম একত্রিত করা দরকার তবে কীভাবে এটি করা যায় তা নিশ্চিত নয়। এ কারণেই আমি ভেবেছিলাম যে ফাংশনটি 'এক্সট্রাক্ট' একটি ভাল শুরু হয়েছিল, তবে আমি গভীরতার একটি তালিকা দিয়ে শেষ করেছি যে আমি নিশ্চিত না যে কীভাবে আমি আমার স্থানিক পলিগনগুলির সাথে পুনরায় প্রত্যাবর্তন করতে পারি ... কোনও ধারণা? আবার ধন্যবাদ!
GodinA

আপনি কি শেষ করতে চান? আপনার subarea0 এর সাথে ওভারল্যাপ করে এমন কন্টোরস (স্পটালালাইনস)? আপনি এখন একটি নতুন প্রশ্ন শুরু করতে চাইতে পারেন কারণ এটি এখন মূলটির বাইরে চলে যাচ্ছে।
সিম্বামাঙ্গু

হ্যাঁ, আমি কেবলমাত্র এই সংজ্ঞায়িত অঞ্চলের গভীরতার কনট্যুরের সাথে আমার subarea0 পেতে চাই: gis.stackexchange.com/questions/25112/…
GodinA

1

একটি বেসিক সাবসেট ফাংশনটি ব্যবহার করে এখানে আরও একটি সমাধান দেওয়া হয়েছে raster

# create a raster with the dimensions that you are interested in.
r <- raster(extent(subarea0)+1) # +1 to increase the area
res(r) <- 0.1 # you can change the resolution here. 0.1 can be about 10x10 km if you are close to the equator.
crs(r) <- projection(subarea0) # transfer the coordinate system to the raster

# Now you can add data to the cells in your raster to mark the ones that fall within your polygon.
r[subarea0,] <- 1 # this an easy way to subset a raster using a SpatialPolygons object

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