Tôi có một tập tọa độ như đối tượng SpatialPointsDataFrame trong R và tôi cắt các điểm này bằng đa giác để chỉ lấy các điểm được tìm thấy trong đa giác này. Tôi đang làm điều này với chức năng gIntersection từ gói rgeos. Vấn đề của tôi là hàm chỉ trả về tọa độ của các điểm đó và không phải là siêu dữ liệu được liên kết với chúng. Có cách nào để có gIntersection vượt qua tất cả các dữ liệu đến kết quả, chứ không phải là chỉ có tọa độ?Giữ siêu dữ liệu khi sử dụng gIntersection từ gói rgeos trong R
Dưới đây là một ví dụ:
Các SpatialPointsDataFrame đại diện cho loài điểm xảy ra:
> spexample
coordinates SpAbbr InstitutionCode CatalogNumberText
1 (-76.8727, 3.66282) BanRot EBIRD_COL OBS81997559
2 (-76.9749, 3.71683) BanRot AUDCLO OBS89767945
3 (-76.884, 3.61609) BanRot AUDCLO OBS89769896
4 (-77.5167, 5.51667) BanRot AMNH Skin-123476
5 (-76.0334, 4.86669) BanRot LACM 34848
6 (-78.4333, 1.43333) BanRot LSUMZ 38939
7 (-78.55, 0.95) BanRot ANSP 182799
8 (-79.2139, 0.471944) BanRot AUDCLO OBS58485973
9 (-78.5104, 0.895349) BanRot AUDCLO OBS84822747
10 (-78.3781, 1.51028) BanRot AUDCLO OBS67916517
11 (-75.15, 7.07) BanRot 8110002317-09 4743-5160
Clipping những điểm đến một đa giác:
> gIntersection(spexample,bufferclip)
SpatialPoints:
x y
1 -78.55000 0.9500000
1 -78.51036 0.8953493
1 -78.43333 1.4333333
1 -78.37810 1.5102800
1 -76.97495 3.7168289
1 -76.88397 3.6160872
1 -76.87271 3.6628163
1 -76.03337 4.8666900
Coordinate Reference System (CRS) arguments: +proj=longlat +datum=WGS84
+ellps=WGS84 +towgs84=0,0,0
Cảm ơn mẹo! Đó là một công việc tuyệt vời. – Pascal