Desde el punto de vista de la densidad de población, un "área urbana" generalmente debería satisfacer solo unos pocos criterios axiomáticos :
Su límite no debe incluir ningún punto de densidad (relativamente) alta en comparación con la densidad máxima dentro de su interior.
Debe estar simplemente conectado (sin "agujeros").
Su densidad de población promedio debe exceder algún umbral preespecificado.
El axioma (1) es el más natural: si un punto límite tuviera una alta densidad, simplemente moveríamos el límite hacia afuera para incluir ese punto dentro del área urbana. Me gustaría sugerir que "relativo" significa una proporción del máximo , como una décima o centésima o lo que sea. Axiom (2) evita excluir parques y otras regiones de baja densidad que ocurren naturalmente en las ciudades. Axiom (3) , que debido a que depende de un umbral es algo arbitrario, elimina las aldeas pequeñas y compactas.
En realidad, hay al menos otro elemento de arbitrariedad: cualquier mapa cuadriculado de densidad de población promedia implícitamente poblaciones sobre vecindarios locales (igual a una celda en algunos casos e igual a un radio de grano para estimaciones de densidad de grano). Aceptemos este tamaño de vecindario implícito (que se puede cambiar ejecutando primero los medios focales u otros ajustes del núcleo sobre el mapa de densidad original), este umbral de población y la sensación de "relativamente alto" en el axioma 1 como parámetros configurables por el usuario que controlan resultado.
Estos axiomas conducen naturalmente a un algoritmo bastante simple : uno debe ubicar los máximos locales, buscar en sus vecindarios hasta que se encuentre un límite que satisfaga el axioma (1), rellene los agujeros para satisfacer el axioma (2) y luego examine todas las áreas candidatas. de acuerdo con (3). Esto se hace de la siguiente manera:
Opcionalmente, alise el mapa de densidad.
Realice un algoritmo de "relleno" en un mapa relacionado con la densidad (ver más abajo).
Región Agrupe el resultado.
Eliminar agujeros de los polígonos agrupados por región.
Realice sumas zonales de la densidad de población sobre los polígonos rellenos.
Elimine cualquier polígono que tenga sumas (o densidades medias) por debajo del umbral de población (densidad).
Lo que queda es tu solución.
Permítanme decir un poco más sobre el paso (1), que es clave. Un algoritmo de relleno identifica "sumideros" y "los llena" hasta una cantidad constante por encima de sus elevaciones. Esto es exactamente lo que Axiom (1) nos pide que hagamos, siempre que (a) podamos hacer que "hundirse" desempeñe el papel de "máximo local" y (b) hacer que "cantidad constante por encima de" desempeñe el papel de " fracción constante de". " La forma de hacerlo es rellenando el logaritmo negativo de la densidad.en lugar de la densidad en sí. (Agregue una pequeña constante a la densidad, por ejemplo, alrededor de 0.1 personas por kilómetro cuadrado, antes de tomar el registro, para que las celdas que contienen ceros no causen problemas). Los "lagos" en la densidad de registro negativa identifican al candidato Areas urbanas. Todavía tiene tres parámetros independientes para jugar (ingresando en los pasos 0, 1 y 5); configurarlos requerirá un poco de reflexión sobre lo que realmente quiere decir con "área urbana", así como algo de experimentación.