인구 밀도의 관점에서 볼 때 "도시 지역"은 일반적으로 몇 가지 공리적 기준 을 충족해야 합니다 .
그 경계는 내부의 최대 밀도와 비교하여 (상대적으로) 높은 밀도의 점을 포함해서는 안됩니다.
간단히 연결해야합니다 ( "구멍"없음).
평균 인구 밀도는 사전 지정된 임계 값을 초과해야합니다.
공리 (1) 가 가장 자연 스럽다. 만약 경계 지점이 고밀도라면, 경계를 바깥쪽으로 옮겨 도시 지역 내에 그 지점을 포함시킬 것이다. "상대적"은 10 분의 1 또는 100 분의 1과 같은 최대 값의 비율을 의미한다고 제안하고 싶습니다 . 공리 (2) 는 도시에서 자연적으로 발생하는 공원 및 기타 저밀도 지역을 배제하는 것을 피합니다. Axiom (3) 은 임계 값에 의존하기 때문에 다소 임의적이므로 작은 컴팩트 한 마을을 제거합니다.
실제로, 하나 이상의 다른 자의성 요소가 있습니다. 인구 밀도의 그리드 맵은 암시 적으로 주변 지역의 인구를 평균화합니다 (일부 경우 하나의 셀과 같고 커널 밀도 추정의 경우 커널 반경과 동일). 이 암시 적 이웃 크기 (원래 밀도 맵에서 먼저 초점 수단 또는 다른 커널 스무딩으로 변경 될 수 있음),이 모집단 임계 값 및 공리 1의 "상대적으로 높은"감각을 사용자가 설정 가능한 매개 변수로 받아들입니다. 결과.
이러한 공리는 자연스럽게 매우 간단한 알고리즘으로 이어집니다 . 국가 최대 점을 찾고 경계가 공리를 충족시킬 때까지 주변을 살펴보고 (1), 공리를 충족시키기 위해 구멍을 채우고 (2) 모든 후보 영역을 스크리닝해야합니다 (3)에 따라. 이것은 다음과 같이 수행됩니다.
선택적으로 밀도 맵을 부드럽게합니다.
밀도 관련 맵에서 "채우기"알고리즘을 수행하십시오 (아래 참조).
Region 결과를 그룹화합니다.
RegionGrouped 다각형에서 구멍을 제거하십시오.
채워진 다각형에 대해 인구 밀도의 구역 합계를 수행합니다.
모집단 (밀도) 임계 값 아래에 합계 (또는 평균 밀도)가있는 다각형을 제거합니다.
남은 것은 솔루션입니다.
단계 (1)에 대해 조금 더 이야기하겠습니다. 이것이 핵심입니다. 채우기 알고리즘은 "싱크"를 식별하고 높이보다 일정한 양까지 "채 웁니다". 이것은 정확히 공리 (1) 제공 할 우리에게 요구하시는의 (a) 우리는 할 수있다 "싱크" "로컬 최대"그리고 (b) 메이크업의 역할을 "위의 일정 금액"은 "일정한 역할 놀이 분수 의를. " 이를 수행하는 방법 은 밀도 의 음의 로그를 채우는 것 입니다밀도 자체보다는. (0을 포함하는 모든 셀이 문제를 일으키지 않도록 로그를 기록하기 전에 밀도에 먼저 작은 상수 (예 : 제곱 킬로미터 당 약 0.1 명)를 추가하십시오. 음의 로그 밀도의 "레이크"는 후보를 식별합니다. 도시 지역. 당신은 여전히 재생할 세 개의 독립적 인 매개 변수를 가지고 있습니다 (0, 1 및 5 단계에서 입력). 이를 설정하려면 실험뿐만 아니라 "도시 지역"이 실제로 무엇을 의미하는지에 대한 생각이 필요합니다.