다각형 외부에서 임의의 점을 만드는 방법은 무엇입니까?


11

랜덤 포인트 생성 도구 는 다각형 내에서 특정 개수의 포인트를 생성 할 수 있습니다. 경계 상자가 주어지면 해당 다각형 외부에서 임의의 점을 생성 할 수있는 방법이 있습니까?

답변:


13

개인적으로 ArcGIS의 난수 알고리즘을 좋아하지 않습니다. 또는 지리 공간 모델링 환경 (GME) genrandompnts기능을 사용하십시오. 임의의 점이 제외 될 특정 다각형을 식별 할 수 있습니다 (첨부 된 .jpg에서 강조 표시된 영역 참조). 이 소프트웨어 중 최고는 무료입니다.

GME는 정교한 워크 플로우를 구성하는 데 사용할 수있는 작은 '빌딩 블록'부터 완전히 자체 포함 된 분석 프로그램에 이르는 일련의 분석 및 모델링 도구를 제공합니다. 또한 분석 도구 중 일부를 구동하기 위해 매우 강력한 오픈 소스 소프트웨어 R을 통계 엔진으로 사용합니다. R의 많은 장점 중 하나는 공개 소스이며 완전히 투명하고 잘 문서화되어 있다는 것입니다. 모든 과학적 분석 소프트웨어의 중요한 특성입니다.

여기에 이미지 설명을 입력하십시오


1
기본 랜덤 포인트 알고리즘이 마음에 들지 않는 이유와 GME가 더 최적 인 이유에 대한 추가 정보를 제공 할 수 있습니까?
Stephen Lead

@Aaron 좋은 하나! Hawth의 모델링 도구이기 때문에 이것을 시도하지 않았습니다-그것을 다운로드하고 균열을 주어야합니다!
om_henners

3
@Stephen 지난 달에 4 개의 클래스에서 임의의 포인트를 생성했습니다. 몇 가지 문제가 발생했습니다. 1) ArcGIS가 입력 다각형 외부에서 여러 점을 생성했습니다. 2) 아크가 입력 매개 변수 (예 : 최소 허용 거리 = 50m & 포인트 = 50)에 비해 너무 작은 영역을 처리하는 데 어려움을 겪었지만 GME는이를 처리했습니다. 규칙을 위반할 때까지 임의의 포인트를 생성하여 경고 메시지를 표시하는 문제 3) Arc의 RPG가 R의 로컬 메모리 사용으로 인해 GME보다 느릴 수 있습니다.
Aaron

좋은 것! @Aaron 일괄 처리를 수행 할 수 있도록 파이썬 경계가 있습니까?

2
지원 문서의 자동 및 배치 처리 섹션 (p10)을 확인하십시오 : spaceecology.com/gme/images/SpatialEcologyGME.pdf
Aaron

4

내부 비점 공간을 나타내는 도넛 구멍과 다각형 영역의 경계 영역을 나타내는 일부 공간 범위로 도넛 다각형을 만들어야합니다.


부록 : ArcInfo 라이센스를 사용하면 지우기 도구를 사용 하여이 작업을 수행 할 수 있습니다
om_henners

3

죄송 합니다만 저항 할 수는 없습니다. 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 루프에 쉽게 감쌀 수있는 예제도 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.