2011-09-09 20 views
5

Mam zestaw współrzędnych jako obiekt SpatialPointsDataFrame w R i przycinam te punkty za pomocą wielokąta, aby uzyskać tylko te punkty, które znajdują się w tym wielokącie. Robię to za pomocą funkcji gIntersection z pakietu rgeos. Mój problem polega na tym, że funkcja zwraca tylko współrzędne tych punktów, a nie związane z nimi metadane. Czy jest jakiś sposób, aby GIntersection przekazał wszystkie dane do wyniku, a nie tylko współrzędne?Przechowywanie metadanych przy użyciu gIntersection z pakietu rgeos w R

Oto przykład:

W SpatialPointsDataFrame stanowiących gatunki punkty występowania:

> 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 

Obcinanie te punkty wielokąt

> 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 

Odpowiedz

6

Zastosowanie gIntersects (nie gIntersection) z byid = TRUE, aby uzyskać wektor TRUE/FALSE, którego punkty znajdują się w buforze. Następnie podziel bazę danych punktów. Zadanie wykonane.

+0

Dzięki za napiwek! To świetna praca. – Pascal

Powiązane problemy