답변:
개인적으로 ArcGIS의 난수 알고리즘을 좋아하지 않습니다. 또는 지리 공간 모델링 환경 (GME) genrandompnts
기능을 사용하십시오. 임의의 점이 제외 될 특정 다각형을 식별 할 수 있습니다 (첨부 된 .jpg에서 강조 표시된 영역 참조). 이 소프트웨어 중 최고는 무료입니다.
GME는 정교한 워크 플로우를 구성하는 데 사용할 수있는 작은 '빌딩 블록'부터 완전히 자체 포함 된 분석 프로그램에 이르는 일련의 분석 및 모델링 도구를 제공합니다. 또한 분석 도구 중 일부를 구동하기 위해 매우 강력한 오픈 소스 소프트웨어 R을 통계 엔진으로 사용합니다. R의 많은 장점 중 하나는 공개 소스이며 완전히 투명하고 잘 문서화되어 있다는 것입니다. 모든 과학적 분석 소프트웨어의 중요한 특성입니다.
내부 비점 공간을 나타내는 도넛 구멍과 다각형 영역의 경계 영역을 나타내는 일부 공간 범위로 도넛 다각형을 만들어야합니다.
죄송 합니다만 저항 할 수는 없습니다. GME와 같은 것을 사용하여 어떤 일이 벌어지고 있는지 아는 것이 항상 좋기 때문에 실제 R 코드의 해결책이 있습니다.
require(sp)
require(rgeos)
# Create example polygon data
x <- readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
y <- readWKT("POLYGON ((3 3, 7 3, 7 7, 3 7, 3 3))")
# Calculate difference in polygon geometries to create null polygon
d <- gDifference(x,y)
# Create random sample in non-null polygon
rs <- spsample(d, 20, type="random")
# Plot results
plot(d, col="red")
plot(rs,pch=19,col="black",add=TRUE)
이 접근 방식은 GME가 수행하는 방식과는 매우 다르지만 네이티브 R sp 공간 클래스와 상당히 새로운 토폴로지 라이브러리를 사용하여 코드를 매우 효율적으로 만듭니다. 또한 for 루프에 쉽게 감쌀 수있는 예제도 제공합니다.