আর এর সাহায্যে অন্যের থেকে বহুভুজটির ছেদটি সরানো হচ্ছে?


9

আমি পলি 2 থেকে পলি 1 তে ছেদটি সরানোর চেষ্টা করছি। নীচে 2 বহুভুজ এর কর্ড দেওয়া হয়।

> coords1
          [,1]     [,2]
 [1,] 992.0161 7462.531
 [2,] 950.1962 7413.532
 [3,] 902.3632 7421.207
 [4,] 706.1985 7472.378
 [5,] 654.0139 7711.760
 [6,] 657.5960 7726.950
 [7,] 786.2667 7844.380
 [8,] 789.5935 7842.925
 [9,] 981.7046 7498.659
[10,] 983.4246 7493.271
[11,] 990.6680 7469.888
[12,] 992.0161 7462.531
> coords2
         [,1]     [,2]
[1,] 930.3464 7607.313
[2,] 979.3528 7502.470
[3,] 865.8662 7484.337
[4,] 850.5665 7594.947
[5,] 930.3464 7607.313

Poly1<-Polygon(coords1)
Poly2<-Polygon(coords2)

2 বহুভুজের মতো দেখতে এখানে চিত্র বর্ণনা লিখুনআমি যা পেতে চাই তা হল হালকা নীল (পলি 2) অঞ্চল ছাড়াই গা dark় নীল বহুভুজ (পলি 1) অর্থাৎ নতুন পূর্বের স্থানাঙ্ক।

উত্তর:


7

Rgeos প্যাকেজ gDifferenceথেকে ফাংশন চেষ্টা করুন :

coords1 <- as.matrix(read.table(textConnection("
992.0161 7462.531
950.1962 7413.532
902.3632 7421.207
706.1985 7472.378
654.0139 7711.760
657.5960 7726.950
786.2667 7844.380
789.5935 7842.925
981.7046 7498.659
983.4246 7493.271
990.6680 7469.888
992.0161 7462.531
")))

coords2 <- as.matrix(read.table(textConnection("
930.3464 7607.313
979.3528 7502.470
865.8662 7484.337
850.5665 7594.947
930.3464 7607.313
")))

library("sp")
poly1 <- Polygon(coords1)
poly2 <- Polygon(coords2)
# create SpatialPolygons objects
p1 <- SpatialPolygons(list(Polygons(list(poly1), "p1")))
p2 <- SpatialPolygons(list(Polygons(list(poly2), "p2")))

library("rgeos")
res <- gDifference(p1, p2)
plot(res, col="blue")

gDifferences ফলাফল


5

সমাধানটি ব্যবহার rgeos::gDifferenceকরা খুব দ্রুত, তবে এটি একটি সাধারণ SpatialPolygonsঅবজেক্ট ফিরিয়ে দেয় ।

আপনি যদি দু'জনের সাথে কাজ করছেন SpatialPolygonsDataFrameএবং আপনি ডেটাফ্রেমের তথ্য রাখতে চান, আপনি কেবল এটি করতে পারেন, এবং ফলাফলটি হ'ল SpatialPolygonsDataFrame:

library(raster)

res <- p1 - p2

এই সমাধানটি ব্যবহার করে, আমি ত্রুটিটি পেয়েছি: "বাইনারি অপারেটরের কাছে অ-সংখ্যাসূচক যুক্তি"
Ashe

@ আশ, class(my_obj)আপনার উভয় বস্তু কিনা তা যাচাই করতে লিখুনSpatialPolygonsDataFrame
rafa.pereira

আসলে, আমি SpatialPolygonsDataFrameক্লাস হিসাবে পেতে ।
আশে

হুমমম আজব। আমি জানি না কেন এমন হবে। ডেটা তথ্য রাখার সময় আপনার কীভাবে দুটি স্পেশালপলিজোন ডেটা ফ্রেমগুলি ছেদ করতে হবে তার একটি নতুন প্রশ্ন খোলা উচিত
rafa.pereira

1
আমি বিষয়টি ঠিক করেছি। rasterএই সমাধানটির কাজ করার জন্য আমার লাইব্রেরি ইনস্টল করা দরকার । উত্তরের সাথে যুক্তটি সহায়ক হবে। এছাড়াও, এই উত্তরের কৃতিত্ব: gis.stackexchange.com/a/169597/93643
আশে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.