বিতে বিপরীত ক্লিপিং (মুছে ফেলা)?


14

একটি বিপরীতমুখী ক্লিপ আপনার স্থানিক অবজেক্টের কেবলমাত্র সেই অংশটি সংরক্ষণ করে যা অন্য বস্তুর সীমার বাইরে থাকে, নিয়মিত ক্লিপের বিপরীতে যা অন্য বস্তুর অভ্যন্তরের অংশগুলি সংরক্ষণ করে ।

আর্কম্যাপে বিপরীত ক্লিপ সম্পাদন করছেন? এটি অর্কম্যাপে কীভাবে করা যায় তা দেখায়।

আমি আর এ কিভাবে করব?

পুনরুত্পাদনযোগ্য উদাহরণ (লিনাক্স মেশিনে):

system("wget 'https://github.com/Robinlovelace/Creating-maps-in-R/archive/master.zip' -P /tmp/")
unzip("/tmp/master.zip", exdir = "/tmp/master")
uk <- readOGR("/tmp/master/Creating-maps-in-R-master/data/", "ukbord")
lnd <- readOGR("/tmp/master/Creating-maps-in-R-master/data/", "LondonBoroughs")
plot(uk)
plot(lnd, add = T, col = "black")

আমি এখানে যা করতে চাই তা হ'ল লন্ডন ব্যতীত সমস্ত ইউকে সংরক্ষণ করা । দৃশ্যত, আমি চাই ফলক চিত্রের কালো আকৃতিটি একটি গর্ত হবে।

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

উত্তর:


4

সাধারণ বৈশিষ্ট্যের জন্য উত্তর:

এসএফ প্যাকেজ জ্যামিতি ইঞ্জিন ওপেন সোর্সে আঁকা এবং যেমন st_within ইত্যাদি কমান্ডের তালিকা অ্যাক্সেস করতে পারে

এই জাতীয় একটি আদেশ, st_differences কাজ করবে:

require(sf)

# make a square simple feature
s <- rbind(c(1,1), c(1,5), c(5,5), c(5,1), c(1,1))
s.sf <-st_sfc(st_polygon(list(s)))
s.pol = st_sf(ID = "sq", s.sf)

# make a smaller triangle simple feature
s2 <- rbind(c(2,2), c(3,4), c(4,2), c(2,2))
s2.sf <-st_sfc(st_polygon(list(s2)))
s2.pol = st_sf(ID = "tr", s2.sf)

# find the 'difference', i.e. reverse of st_intersection
t <- st_difference(s.pol,s2.pol)

plot(t)

# have a look at the new geometry, a well known text format with exterior followed by hole
st_geometry(t)[[1]]
POLYGON((1 1, 1 5, 5 5, 5 1, 1 1), (2 2, 4 2, 3 4, 2 2))

এই নিবন্ধের নীচে দিকে দেখুন

st_as_sf এর সাথে এসপিতে এসপি চাপিয়েও করা যেতে পারে। সাবধানবাণীগুলি সতর্কতাগুলি মনোযোগ হিসাবে পরিচালনা করা জটিল হতে পারে!


12

প্যাকেজ gDifferenceথেকে একটি সাধারণ প্রয়োগ বলে মনে হচ্ছে rgeos:

> require(rgeos)
> ukhole = gDifference(uk, lnd)
Warning message:
In RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_difference") :
  spgeom1 and spgeom2 have different proj4 strings
> plot(ukhole)

প্রজেকশন সতর্কতা হ'ল কারণ LondonBoroughsশেফফাইলে কোনও ফাইল নেই .prj

এটি নিশ্চিত করার জন্য যে এটি একটি গর্ত এবং কোনও রূপরেখা বা অন্য কোনও বহুভুজ নয়:

> gArea(lnd) + gArea(ukhole) - gArea(uk)
[1] 0

খুব সহজ, দ্রুত প্রতিক্রিয়া জন্য ধন্যবাদ। এই ফাংশনগুলির উত্স কোডটি দেখে হুডের নীচে কী চলছে তা দেখতে আগ্রহী হবে।
রবিনলাওলেস

গভীরভাবে তারা কেবল জিইওএস
সিও

আকর্ষণীয় - এবং এটি অনুমানযোগ্যভাবে দ্রুত কেন অনুমান করে তা ব্যাখ্যা করতে সহায়তা করে। এই পৃষ্ঠার ভিত্তিতে, মনে হচ্ছে এটি সক্রিয়ভাবে বিকশিত হচ্ছে না কেউ কি এটিকে নিশ্চিত / খণ্ডন করতে পারে? svn.osgeo.org/geos/branches/3.4/ChangeLog
রবিনলভলেস

1
নিশ্চিতভাবেই এটি বিকশিত হয়েছে। টাইমলাইন trac.osgeo.org/geos/ টাইমলাইন বা মেইলিং তালিকা সংরক্ষণাগার তালিকা দেখুন .osgeo.org / pipermail
geos-

5

পার্টিতে দেরি করে ফেলুন, তবে 'বিপরীত' যুক্তি ব্যবহার করে মুখোশ দিয়ে এটি করার একটি সহজ উপায় রয়েছে;

ukhole <- mask(uk, lnd, inverse = TRUE)

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