Z punktu widzenia gęstości zaludnienia „obszar miejski” powinien zasadniczo spełniać tylko kilka kryteriów aksjomatycznych :
Jego granica nie powinna zawierać żadnych punktów o (względnie) wysokiej gęstości w porównaniu do maksymalnej gęstości w jej wnętrzu.
Powinien być po prostu podłączony (bez „dziur”).
Jego średnia gęstość zaludnienia powinna przekraczać określony z góry próg.
Aksjomat (1) jest najbardziej naturalny: jeśli punkt graniczny miałby mieć wysoką gęstość, po prostu przesunęlibyśmy granicę na zewnątrz, aby uwzględnić ten punkt w obszarze miejskim. Chciałbym zasugerować, że „krewny” oznacza jako część maksimum , na przykład jedną dziesiątą lub setną lub cokolwiek innego. Axiom (2) unika wykluczenia parków i innych regionów o niskiej gęstości, które naturalnie występują w miastach. Aksjomat (3) , który ponieważ zależy od progu, jest nieco arbitralny, eliminuje małe zwarte wioski.
W rzeczywistości istnieje co najmniej jeden inny element arbitralności: każda siatkowa mapa gęstości populacji pośrednio uśrednia populacje w lokalnych dzielnicach (w niektórych przypadkach równa jednej komórce i promieniu jądra dla szacunków gęstości jądra). Zaakceptujmy ten domyślny rozmiar sąsiedztwa (który można zmienić, uruchamiając najpierw środki ogniskowe lub inne wygładzenia jądra na oryginalnej mapie gęstości), ten próg populacji i poczucie „stosunkowo wysokiej” w aksjomacie 1 jako parametry ustawiane przez użytkownika, które kontrolują wynik.
Te aksjomaty prowadzą naturalnie do dość prostego algorytmu : należy zlokalizować lokalne maksima, patrzeć w ich sąsiedztwach, aż znajdzie się granica spełniająca aksjomat (1), wypełnić dowolne otwory, aby spełnić aksjomat (2), a następnie przesiać wszystkie takie obszary kandydujące zgodnie z (3). Odbywa się to w następujący sposób:
Opcjonalnie wygładź mapę gęstości.
Wykonaj algorytm „wypełniania” na mapie związanej z gęstością (patrz poniżej).
Region Pogrupuj wynik.
Usuń otwory z wielokątów zgrupowanych według regionu.
Wykonuj sumy strefowe gęstości zaludnienia na wypełnionych wielokątach.
Wyeliminuj wszelkie wielokąty o sumach (lub średnich gęstościach) poniżej progu populacji (gęstości).
To, co zostało, to twoje rozwiązanie.
Powiem trochę więcej o kroku (1), który jest kluczowy. Algorytm wypełniania identyfikuje „zatapianie” i „wypełnia” je do stałej wysokości powyżej ich wysokości. To jest dokładnie to, co Aksjomat (1) prosi nas zrobić, pod warunkiem (a) możemy dokonać „sink” odgrywać rolę „maksimum lokalne” i (b) make „stała kwota powyżej” odgrywać rolę „stałą frakcję o. „ Sposobem na to jest wypełnienie logarytmu ujemnego gęstościzamiast samej gęstości. (Dodaj najpierw małą gęstość do gęstości - powiedzmy, około 0,1 osoby na kilometr kwadratowy - przed pobraniem dziennika, aby wszelkie komórki zawierające zera nie spowodowały problemów.) „Jeziora” w ujemnej gęstości dziennika identyfikują kandydata obszary miejskie. Nadal masz trzy niezależne parametry do gry (wprowadzanie w krokach 0, 1 i 5); ich ustawienie będzie wymagało przemyślenia tego, co naprawdę rozumiesz przez „obszar miejski”, a także pewnych eksperymentów.