7 votos

¿Cómo redistribuir datos de población utilizando Python en ArcGIS?

Estoy intentando redistribuir los datos de población de los centros censales entre la densidad de viviendas. ¿Podría ayudarme a hacerlo? Tengo centroides (puntos) de áreas censales y los límites pertenecen a cada centroide. Los datos de los puntos tienen un valor de población. También tengo un conjunto raster de densidad de viviendas. Me gustaría redistribuir los datos de población (puntos) en sus propios límites entre la densidad de viviendas. Los datos de salida deben ser un raster de 100×100 metros de píxeles.

Estoy familiarizado con FORTRAN y VB pero no soy programador. Tengo acceso a ArcGIS 10.1, pero nunca he utilizado Python.

3voto

cjstehno Puntos 131

Definamos el flujo de trabajo conceptualmente y luego determinemos cómo hacerlo. Entiendo que los datos de entrada consisten en

  1. Una capa de puntos vectoriales de la población total, un punto por unidad censal;

  2. Un vector (o trama) polígono capa que representa las unidades censales; y

  3. Una capa raster de densidad de viviendas.

El resultado debe ser una capa rasterizada con la densidad de población estimada. Sus propiedades definitorias son:

  1. La densidad de población integrada dentro de cada unidad censal es igual a su población y

  2. Dentro de una unidad censal determinada, la relación entre la densidad de población y la densidad de viviendas es una constante.

Obsérvese que estas descripciones se aplican unidad por unidad, de modo que si podemos averiguar cómo resolver el problema para un solo Censo (un polígono), podemos resolver todo el problema iterando sobre estos polígonos (no solapados). En el software ESRI, cualquier procedimiento que itere sobre polígonos (ráster) no solapados, o "zonas", se denomina funcionamiento zonal . Como ejemplo de operación zonal, por densidad "integrada" entiendo el análogo discreto de la integral de Riemann: sumar todos los valores de densidad dentro de una zona y multiplicar el resultado por el área de un solo celda cuadriculada. Esta suma zonal (multiplicada por el área de la celda) convierte así las cuadrículas de densidad en totales dentro de las zonas.

Estas dos propiedades -o "invariantes" del problema- muestran cómo resolverlo. En primer lugar, obsérvese en (2) que, dentro de cada unidad censal, la proporción del integrado densidad de población al integrado La densidad de viviendas debe ser igual a la relación común de las densidades de toda la unidad. Esto nos indica cómo hallar la ratio: divide la población de cualquier punto de entrada por el total de viviendas de la zona en la que está contenido el punto. Ahora multiplique la cuadrícula de densidad de viviendas por la cuadrícula de ratio para obtener el resultado deseado.

En resumen, el trabajo procederá así:

  • Utilice una suma zonal para integrar la densidad de viviendas en las unidades censales.

  • Unir espacialmente los datos de población puntual a las zonas de unidades censales.

  • Dividir el total de población de la zona por el total de viviendas de la zona, dando un ratio por zona. Conviértelo a formato raster para que cada celda de cada zona tenga un valor constante igual al ratio población:vivienda de la zona.

  • Multiplica la cuadrícula de densidad de viviendas por la cuadrícula de ratio.

Esta construcción garantiza claramente que se preservan ambos invariantes, lo que demuestra que es una solución correcta.

1voto

Andrew Jones Puntos 1134

Parece que esto dependería en cierta medida de la programación. Usted puede aprender algo de Python de ESRI diapositivas que están en línea con sólo buscar en Google. Básicamente yo diría que añadir un módulo de secuencias de comandos de Python a una caja de herramientas personalizada ya través de que crear parámetros que se pueden añadir en función de lo que desea rellenar. Me parece que dependiendo de lo que los campos de los datos de población es de usted puede acceder a que mediante programación utilizando un bucle iterativo para y luego crear un nuevo campo de la densidad de vivienda o simplemente acceder a ella mediante programación y establecer los valores en consecuencia.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X