Nüfus yoğunluğu açısından, bir "kentsel alan" genellikle sadece birkaç aksiyomatik kriteri karşılamalıdır :
Sınırı, içindeki maksimum yoğunluğa kıyasla (nispeten) yüksek yoğunluklu noktaları içermemelidir.
Basit bir şekilde bağlanmalıdır ("delik" yok).
Ortalama nüfus yoğunluğu, önceden belirlenmiş bir eşiği aşmalıdır.
Aksiyom (1) en doğal olanıdır: eğer bir sınır noktası yüksek bir yoğunluğa sahip olsaydı, sınırı o bölgeyi kentsel alana dahil etmek için dışarı doğru hareket ettirirdik. "Göreceli" nin, onda biri veya yüzde biri ya da her neyse , maksimumun bir oranı anlamına geldiğini belirtmek isterim . Axiom (2) , şehirlerde doğal olarak meydana gelen parkları ve diğer düşük yoğunluklu bölgeleri hariç tutar. Bir eşik değerine bağlı olduğu için biraz keyfi olduğu aksiyom (3) , küçük kompakt köyleri ortadan kaldırır.
Aslında, en az bir başka keyfilik unsuru vardır: nüfus yoğunluğunun herhangi bir ızgaralı haritası, yerel mahalleler üzerindeki nüfusu dolaylı olarak ortalar (bazı durumlarda bir hücreye eşit ve çekirdek yoğunluğu tahminleri için bir çekirdek yarıçapına eşit). Bu örtük mahalle boyutunu (ilk yoğunluk araçlarını veya orijinal yoğunluk haritası üzerinde diğer çekirdek düzeltmelerini kullanarak değiştirilebilen), bu popülasyon eşiğini ve aksiyom 1'deki "nispeten yüksek" hissini kontrol eden kullanıcı tarafından ayarlanabilir parametreler olarak kabul edelim . sonuç.
Bu aksiyomlar doğal olarak oldukça basit bir algoritmaya yol açar : biri yerel maksimumu bulmalı, aksiyomu (1) karşılayan bir sınır bulunana kadar mahallelerine bakmalı (1), aksiyomu (2) tatmin etmek için herhangi bir delik doldurmalı ve sonra tüm bu aday alanları taramalıdır. (3) 'e göre. Bu aşağıdaki gibi yapılır:
İsteğe bağlı olarak yoğunluk haritasını düzeltin.
Yoğunluk ile ilgili bir haritada "dolgu" algoritması gerçekleştirin (aşağıya bakınız).
Bölge Sonucu gruplandırın.
RegionGrouped çokgenlerindeki delikleri kaldırın.
Doldurulmuş çokgenler üzerinde nüfus yoğunluğunun bölgesel toplamlarını gerçekleştirin.
Popülasyon (yoğunluk) eşiğinin altında toplamları (veya ortalama yoğunlukları) olan çokgenleri ortadan kaldırın.
Geriye kalan çözüm.
Adım (1) hakkında biraz daha söyleyeyim ki bu anahtar. Bir doldurma algoritması "lavaboları" tanımlar ve yüksekliklerinin üzerinde sabit bir miktarda "doldurur". Bu tam olarak Axiom (1) sağlanan yapmamızı istediği şeyleri (a) yapabiliriz "lavabo" "Yerel maksimum" ve (b) make rol oynayabilir "Yukarıdaki sabit miktar" "sabit rolü fraksiyonu arasında. " Bunu yapmanın yolu , yoğunluğun negatif logaritmasını doldurmaktıryoğunluğun kendisinden ziyade. (Günlükleri almadan önce yoğunluğa - örneğin kilometrekare başına yaklaşık 0.1 kişi - küçük bir sabit ekleyin, böylece sıfır içeren hücreler sorun yaratmaz.) Negatif kütle yoğunluğundaki "göller" adayı tanımlar kentsel alanlar. Hala oynayabileceğiniz üç bağımsız parametreniz var (0, 1 ve 5. adımlara girerek); Bunları ayarlamak, "kentsel alan" ile gerçekten ne demek istediğiniz hakkında biraz düşünmeyi ve bazı deneyleri gerektirecektir.