2016-09-19 16 views
4

나는 누구의 '발자국'모양 매우 불규칙 지역에서 일련의 점을 가지고R에 불규칙한 모양의 데이터 외곽에 놓이는 점을 결정 하시겠습니까?

LE82

내가 풋 프린트의 정점에서 좌표를 모두 결정하고 싶습니다. 최종 목표는이 풋 프린트 외부에 놓여있는 데이터 포인트를 결정하는 것입니다.

아무에게도 이렇게하는 데 효율적인 방법이 있습니까 ??


이 접근 내 최고의 아이디어는 아직 그렇게하는 방법을 모르겠어요,하지만 ('사용 다각형의 좌표는'국외자 '점을 확인했다 후 녹색 영역의 정점에 따라 다각형을 그리하는 것입니다 -- 한 번에 한 단계 씩!).

그러나 convex hull을 만들 때 내 녹색 공간의 불규칙한 모양 때문에 분명히 문제가 발생합니다. [누구나 CONCAVE 선체를 만드는 방법을 알고 계신가요?]

또는 '그래프 클릭'방식을 사용하여 수동으로 다각형을 그리는 방법이 있습니까?


... 폴리곤을 사용하는 것보다 내 문제에 대한 더 나은 해결책이 있다면 다시 한번 해결책을 제안하십시오. 또한

+0

질문에 대한 나의 해석 : 녹색 점 영역의 "안쪽"에있는 모든 검은 점을 찾습니다. 이에 대한 잠재적 인 해결책은 녹색 점 영역을 3 개의 별도 볼록 영역 (다소 차이가있는 직사각형)으로 나누는 것입니다. ~ 650 및 ~ 1150에서 x 축에서 자릅니다. 첫 번째 컷은 끝까지 갈 수 있지만 두 번째 컷은 y = 200에서 멈출 수 있습니다. 이제 세 영역 각각에'chull' 또는 관련 함수를 사용하십시오. – lmo

+0

@lmo 예 처음에 내 목표는 녹색 점 영역 내에서 좌표를 결정하는 것이지만, 검은 색 점이 외부 영역 *에 해당하는 경우에만 확인할 수 있습니다. – theforestecologist

+0

@lmo : 영역을 여러 개의 볼록 영역으로 나누는 것을 고려했지만 영역에 축과 평행하지 않은 선이 있기 때문에 각 영역을 손으로 '그리는'각 꼭지점을 결정해야합니다. 나는 이것이 시간이 많이 걸릴 것이라고 생각했다. 그렇게 빨리 할 수있는 방법을 알고 있습니까? – theforestecologist

답변

2

, 수동으로 입력 방법 ' 그래프를 클릭합니다'를 사용하여 다각형을 그릴 수있는 방법은 무엇입니까?

하나의 아이디어가 있습니다. 첫째, 어떤 임의의 포인트 : 이제

library(manipulate) 
library(sp) 
set.seed(1) 
par(pch = 19, cex=.5) 
x <- runif(1000) 
y <- runif(1000) 

, 그릴 및 다각형 캡처 :

coords <- data.frame() 
manipulate({ 
    plot(y~x) 
    res <- manipulatorMouseClick() 
    coords <<- rbind(coords, data.frame(x=res$userX, y=res$userY)) 
    if (length(coords)) lines(coords) 
}) 

enter image description here

을 그리고 점은 내부에 결정은/그것의 외부는 (?point.in.polygon 참조)

res <- point.in.polygon(x, y, coords$x, coords$y)!=0 

plot(y~x, col = res + 1L) 
lines(coords) 

+1

흥미로운 "조작 패키지는 RStudio에서 실행되어야합니다." RStudio를 다운로드 할 시간 : p. – theforestecologist

+0

조작 세션을 어떻게 종료합니까? – theforestecologist

+0

uhm .. 좋은 질문 :-D 그냥 백그라운드에서 사용하도록했습니다 (콘솔 또는 소스 창에서 작업을 계속할 수 있음). 모든 것이 실패하면 RStudio의 _Plots_ 메뉴에서 _Remove Plot ... _을 선택할 수 있습니다. – lukeA