Download Implementación de la variable visual tamaño en ArcGIS

Document related concepts
no text concepts found
Transcript
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: Implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
Programación de herramientas de
geoprocesamiento en Python:
Implementación de la variable visual
tamaño en ArcGIS
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
Departamento de Geografía y Ordenación del Territorio. Universidad de Zaragoza
[email protected]
RESUMEN
En el lenguaje cartográfico la variable visual tamaño, combinada con el color o el valor, refuerza las
propiedades de asociación y selección, posibilitando una mayor precisión en la representación de la
información. La mayoría de los módulos de simbología en los sistemas de información geográfica
comerciales no permiten utilizar de manera conjunta las variables visuales anteriormente citadas a
través del escalado proporcional. Este trabajo presenta una herramienta para realizar este tipo de
mapas en ArcGIS. Mediante secuencias de comandos (script) en lenguaje Python se implementan
modelos de escalado de la variable tamaño que se describen en la cartografía temática.
PALABRAS CLAVE
Cartografía temática, variable visual tamaño, script ArcGIS.
ABSTRACT
In the cartography language the size variable, combined with the color or value, enhances the
association and selection properties, enabling a more accurate representation of information. Most of
simbology modules in comercial geographic information systems do not allow use jointly the above
mentioned variables through proportional scaling. This paper presents a tool for this kind of maps in
ArcGIS. Through scripting in Python are implemented proportional scaling models described in
thematic mapping
KEY WORDS
Thematic cartography, size variable, scripts ArcGIS.
la información y sobre la percepción y respuesta
del lector de mapas (Calvo et al., 2002; Zúñiga,
Las nuevas tecnologías permiten automatizar 2008).
un gran número de procesos geográficos y
Los mapas de símbolos proporcionales están
cartográficos como el cálculo de símbolos
basados en una idea fundamental: el cartógrafo
proporcionales para representar una variable
selecciona un símbolo y varía su tamaño en cada
(Dent, 1999). Aun así, es necesario comprender
punto en proporción a la cantidad de la variable
estos procesos para hacer buen uso de ellos y
que desea representar sobre ese punto (Bertin,
adecuar
el
dimensionamiento
y
sus
1967; Robinson et al., 1995; Steinberg, 2000).
características para la correcta transmisividad de
1
MARCO TEÓRICO
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: Implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
Aunque, a priori, puede parecer sencillo, hay
= valor del dato para el símbolo que será
múltiples factores a tener en cuenta para que la creado.
cartografía sea legible como un escalado
inadecuado o una mala elección de la forma del
= valor predeterminado asociado al radio
símbolo (Dent, 1999; Slocum et al., 2010 ).
establecido.
La gran ventaja de este tipo de representación
es que transmite de manera precisa la
información cuantitativa y que, a pesar de las
limitaciones técnicas de las herramientas
informáticas, es uno de las variables más
utilizadas por geógrafos y cartógrafos desde la
primera aparición de este método en cartografía
(Robinson, 1955; Robinson, 1967; Béguin y
Pumain, 2003).
Fundamentalmente existen dos tipos de
símbolos
proporcionales,
los
símbolos
geométricos, como círculos, cuadrados, esferas o
cubos, y los símbolos pictográficos, como los
diagramas de barras o dibujos esquemáticos de,
por ejemplo, personas (Bertin, 1967; Dent, 1999;
Cauvin et al., 2008; Slocum et al., 2010).
Pero es el círculo la forma más popular,
probablemente debido a su tamaño compacto y a
su facilidad de construcción. Además, Slocum et
al. (2010) y Dent (1999) coinciden en que es la
variable más estable visualmente.
= dimensión del símbolo.
= radio
predeterminado.
establecido
para
el
valor
Así pues, en la figura 1 todos los símbolos se
han dimensionado a partir de la variable menor
(25), lo que significa que, en todos los tipos de
escalado, los símbolos que representan ese valor
tendrán el mismo tamaño, es decir, el mismo
radio (mitad del lado en el caso de los
cuadrados), escalándose el resto de valores
desde este tamaño al mayor en función del
método utilizado. Se aprecia, claramente, cómo
los símbolos de escalado aparente crecen más
que los del resto de escalados, así como que los
escalados por doble constricción crecen menos.
Actualmente, cartógrafos y geógrafos han
experimentado con símbolos tridimensionales, ya
que resulta agradable, plástico y atractivo (Dent,
1999, Fremlin y Robinson, 2005). Pero con estas
nuevas formas de representación es importante
que se transmitan adecuadamente la información
de los valores correctos a través de estos
símbolos tridimensionales (Calvo et al., 2002).
Existen tres tipos de escalado (Flannery,
1972; Dent, 1999; Slocum et al., 2010) para
símbolos
proporcionales
tanto
para
representaciones de figuras superficiales como
volumétricas (figura 1):
•
El escalado matemático.
•
El escalado perceptual o de magnitudaparente.
•
El escalado por doble constricción.
El cálculo de estos tres tipos puede
simplificarse a la siguiente expresión con la única
variación del factor de dimensión (D), que es el
que define el tipo de escalado utilizado:
= radio del símbolo creado.
Figura 1. Comparación de tipos de escalado.
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
Por otra parte, también resulta muy evidente
que el escalado volumétrico, sea cual sea el
método utilizado, crece menos que los escalados
superficiales, lo que hace del escalado
volumétrico muy útil en casos en los que el
espacio en el mapa sea limitado y el rango de
valores a representar sea muy alto.
Por otra parte, es imposible representar la
variable tamaño de forma volumétrica con otra
variable. Para ello, es necesario realizar un postproceso de la cartografía mediante programas de
diseño vectorial para lograr la apariencia
volumétrica de los símbolos y mejorar la
comprensión de éstos por parte del lector.
Es por esto que esta comunicación presenta
las últimas propuestas técnicas que se han
desarrollado por parte del Grupo en Ordenación
del Territorio (GEOT) de la Universidad de
Zaragoza (Pueyo, 1994; Calvo et al., 2002;
Zúñiga, 2009) basadas en secuencias de
comandos en lenguaje Python (Van Rossum,
2000; Lutz y Ascher, 2001; Butler, 2005;
González, 2008) y en el post-procesado con
Adobe Illustrator para poder crear cartografía con
Autores como Dent o Slocum, discuten sobre símbolos proporcionales a través de ArcGIS.
cuál es el mejor diseño de símbolo para reducir
los efectos de la superposición (transparente, 2.1 Desarrollo de la secuencia de
opaco, con halo, etc.). En todo caso, coinciden en comandos
mediante Python en
que el orden de los símbolos debe de ser siempre
ArcGIS
de mayor a menor (los mayores al fondo) para
que sean los símbolos pequeños los que se
Python es un lenguaje de tipado dinámico, lo
superpongan sobre los grandes. Añadir al que quiere decir que no es necesario declarar el
símbolo un halo de un color que contraste con el tipo de dato que contendrá una variable ya que lo
de las esferas puede ser suficiente para que el adopta dependiendo del valor que se le asigne,
lector de mapas sea capaz de distinguir y que está orientado a objetos (González, 2008).
reconstruir correctamente cada símbolo (Dent, Así pues, la ejecución del programa consiste en
1999; Slocum et al., 2010).
una serie de interacciones entre los objetos.
Muchos de los estudios psicofísicos sugieren
el abandono del escalado aparente en favor del
escalado matemático, pero con mayor atención
en el diseño de la leyenda. También algunos
autores recomiendan el uso de círculos o esferas
debido a que las figuras poligonales o símbolos
pictográficos pueden influir o ser confundidas con
otros elementos del mapa (Pueyo, 1994; Calvo et
al., 2002; Zúñiga, 2009).
2
DESARROLLO TÉCNICO
Para ello se han creado dos herramientas que
solo difieren entre sí en la forma de creación de la
clase de entidad de salida; una de ellas crea
polígonos circulares y la otra crea polígonos
cuadrados. La razón es que así se responde a las
necesidades del usuario final de la forma más
directa posible. Si el usuario va a realizar, por
ejemplo, un dimensionamiento superficial de la
variable, puede realizar el proceso completo
sobre ArcMap a través de la herramienta que crea
círculos proporcionales. Si, por el contrario, el
usuario pretende realizar un dimensionamiento
volumétrico o una infografía más compleja deberá
de utilizar el programa que crea cuadrados
proporcionales para luego sustituir la forma del
símbolo por la deseada en un programa de
diseño vectorial (Solanas, 2011).
Uno de los objetivos de esta comunicación es
poder aplicar las diferentes posibilidades de
escalado de la variable tamaño, sin las
limitaciones de las herramientas de los sistemas
de información geográfica. Así, para la utilización
de los símbolos proporcionales en ArcGIS
Desktop 10, esta posibilidad está muy limitada, ya
que la única forma posible de representar dos
variables sobre elementos puntuales es mediante
el graduado de rangos para la variable tamaño.
Además, en el caso de representación por
símbolos proporcionales el programa solamente
permite dos tipos de escalado, el matemático
superficial y el aparente, con el factor de
corrección de Flannery, por lo que resulta
imposible realizar un escalado volumétrico o de
Los aspectos comunes de estos programas
doble constricción. Por otra parte, el programa no
ofrece información clara y precisa para el cálculo son:
de la variable tamaño a través del escalado
•
Importación de módulos.
aparente, con resultados distintos dependiendo si
se aplica a cuadrados, círculos o símbolos
•
Definición de parámetros.
pictográficos.
ƒ
Clase de entidad de puntos de
Cuando ArcGIS representa la variable tamaño
entrada; ésta contendrá la variable que
de manera precisa, se realiza a través de un
queremos representar.
campo que contenga su superficie o su radio en
ƒ
Archivo de salida intermedio igual
unidades mapa, pero no permite la visualización
que el de entrada pero con el campo que
de una segunda variable sobre los símbolos.
determina el tamaño del símbolo
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: Implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
calculado y con las entidades ordenadas
en función de este campo.
un área de influencia individual para cada
entidad sin tener en cuenta la
superposición. El resultado es una clase
de entidad de círculos dimensionados
según la expresión definida por el usuario
que contienen los mismos campos que la
clase de entidad de entrada. El proceso
de creación de círculos proporcionales es
relativamente sencillo, por lo que se
puede construir a través de ModelBuilder
de ArcGIS sin necesidad de tener
conocimientos de programación. Sin
embargo, se ha desarrollado a través de
una secuencia de comandos debido a
que así, resultará posible insertar las
mejoras del proceso en las que ya se
están trabajando.
ƒ
Clase de entidad de polígonos de
salida de todo el proceso, el resultado
final.
ƒ
Expresión en formato Visual Basic
para el cálculo del tamaño de los
símbolos.
•
Definición de variables locales.
ƒ
En este campo es en el que se
calcularán, a continuación, los tamaños
de los símbolos. Se invoca a ésta a
través del módulo ArcPy para, a
continuación, poner en el orden correcto
los parámetros requeridos por ArcGIS
para llevar a cabo el proceso, ordenando
al programa que añada un campo nuevo
en la clase de entidad, definida por el
parámetro “Input”, que ese nuevo campo
se llame “size”.
•
Calcular el tamaño del símbolo en el
nuevo campo.
ƒ
Calculará el valor del nuevo campo
(radio de los símbolos) a través de la
expresión definida como parámetro
•
Ordenar la clase de entidad.
ƒ
Se trata de un paso muy importante
para el programa, ya que ordena todos
los símbolos creados en el paso anterior,
de forma que los objetos calculados con
un tamaño más grande sean los primeros
de la base de datos. Esto supone
reasignar las ID de las entidades para
que este orden sea consolidado. Aunque
ArcGIS permite variar la visualización de
una clase de entidad de polígonos para
mejorar su visualización, son variaciones
muy limitadas, ya que se tiene que
representar sobre los polígonos una
variable, a través de la que se ordenará
la visualización. Para ello, se utiliza la
función “Sort” u “Ordenar” del paquete de
geoprocesamiento de administración de
datos de ArcGIS.
•
Creación de círculos.
ƒ
Para generar círculos proporcionales
se ha utilizado la herramienta de
geoprocesamiento de ArcGIS “Buffer
analysis”, creando polígonos circulares
con centro en los puntos de la clase de
entidad procedente del proceso anterior y
la distancia queda definida por el campo
“size” calculado anteriormente. Del resto
de parámetros solamente es importante
el “NONE”, gracias al cual se mantiene
•
Creación de cuadrados.
ƒ
La programación para la creación de
polígonos cuadrados es mucho más
compleja (figura 2), ya que no existe una
herramienta para este fin disponible en
ArcGIS, por lo que hay que escribirla
desde el principio. Inicialmente se partió
de la creada por David Wynne en 2009
para la versión 9.3 de ArcGIS que crea
polígonos regulares no escalados a
través de puntos, por lo que todos los
polígonos tienen el mismo tamaño.
Previamente, se lee la lista de campos de
la clase de entidad creada en el proceso
anterior y su referencia espacial. Luego
se definen dos parámetros internos para
el proceso, el número de lados, que será
4 para que cree cuadrados, y la rotación
del polígono, que será 45.0 para que el
primer punto no lo cree justo encima del
punto original, sino a 45 grados a la
izquierda. Para cada vértice del polígono,
definiendo así la forma de éste, se
calculan las coordenadas espaciales, que
son definidas por las siguientes
ecuaciones:
donde (figura 3):
= Valor de la coordenada en el eje X
para el vértice
del cuadrado.
= Valor de la coordenada en el eje Y
para el vértice
del cuadrado.
= Valor de la coordenada en el eje X
para cada punto de la clase de entidad
original.
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
formato AI. Las capas y el orden de éstas se
importan perfectamente a Adobe Illustrator. De
esta forma, basta con exportar la cartografía
maquetada en ArcMap a formato AI para poder
= Radio del círculo inscrito en el trabajar con ella en Illustrator.
cuadrado. Este valor ha sido calculado,
Para intercambiar la forma de los cuadrados
anteriormente, a través de la fórmula de
por
otra basta con seleccionarlos y seleccionar el
escalado.
nuevo tipo de símbolo, que debe de estar en la
2.2 Post-proceso
en
Adobe misma capa y organizado al frente, y hacer correr
el script desde el menú “Archivo” en “Secuencias
Illustrator
de
Comandos”
y
Debido a que ArcGIS no permite la “FindAndReplaceGraphic_centered” (nombre del
representación de símbolos proporcionales script). En la figura 4, se muestra la provincia de
Madrid, donde se puede observar cómo ya se
tridimensionales y una segunda variable, es
han reemplazado las esferas anaranjadas y
necesario realizar un post-procesado del mapa en azules oscuras y está preparado para reemplazar
un programa de diseño vectorial.
los cuadrados grisáceos por las esferas azules
claras.
Para ello se utiliza Adobe Illustrator, ya que
desde ArcGIS se exporta la cartografía en
= Valor de la coordenada en el eje Y
para cada punto de la clase de entidad
original.
Figura 2. Resultado del proceso.
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: Implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
capacidad de automatizar cualquier tarea.
Aunque la doble representación de dos variables
a través del tamaño no se encuentre o no se
haya previsto por los desarrolladores de ArcGIS,
el uso tan común del tipo de mapas sobre los que
trata el trabajo debería ser tenido en cuenta en
futuras versiones de ArcGIS e implementar esta
funcionalidad en las opciones de simbología
(Zúñiga, 2009), sobre todo porque se abren
nuevos horizontes para la cartografía temática
que se habían perdido con el uso intensivo de los
sistemas de información geográfica.
Figura 3. Orden de creación de los vértices del
cuadrado
La selección de los objetos que comparten
forma y color la realiza el programa
automáticamente con la función “Seleccionar
objetos similares”, por lo que no existen
problemas de diferenciación entre símbolos.
También se observa como los nuevos símbolos
mantienen el escalado de los cuadrados,
introduciendo las esferas dentro de estos, por lo
que el radio de estas es el que se ha establecido
al realizar el cálculo del escalado en ArcGIS.
El resultado, tras la sustitución de todos los
símbolos, se aprecia en la figura 5.
Uno de los problemas de esta exportación
directa a Adobe Illustrator es que se pierden los
enlaces con las bases de información. Este
contratiempo se podría solucionar mediante
programas intermedios o híbridos como
Mapublisher, o soportándose en aplicaciones
online como ArcGIS Online o Google Data
Explorer.
3
CONCLUSIONES
La combinación de la programación en
Python con ArcGIS dota al usuario de la
Esta
comunicación
propone
nuevas
posibilidades en el campo de las variables
visuales con el fin de mejorar la usabilidad y
minimizar, al máximo, los posibles errores
introducidos por el usuario en ArcGis. Tal vez lo
más interesante sería abrir una discusión abierta
sobre la efectividad a la hora de transmitir los
estímulos por parte de los distintos métodos de
escalado. El hecho de que se haya demostrado
que la subestimación puede corregirse con un
cuidadoso diseño de la leyenda hace que no
tenga mucho sentido aplicar el escalado
aparente que, si el espacio del mapa es limitado,
puede aumentar el efecto de la superposición,
sobre todo si el rango de datos representado es
muy alto (Zúñiga et al., 2010).
El uso de los programas de diseño vectorial
para el post-proceso de la cartografía ofrece
muchas posibilidades para el diseño de ésta,
sobre todo cuando las nuevas formas de
presentación de la cartografía en formatos
digitales, con posibilidades de interacción por
parte del lector de mapas y con acceso a los
datos exactos representados, exige una puesta al
día de los profesionales para ser capaces de
atender la demanda de este tipo de productos.
Para ello, los programas puente entre SIG y
programas de diseño o de desarrollo web son
una excelente herramienta que ha de ser
explotada.
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: Implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
Figura 4. Emulación de la función "Buscar y Reemplazar" en Adobe Illustrator.
Figura 5. Ejemplo de resultado tras el post-proceso en Adobe Illustrator.
XV Congreso Nacional de Tecnologías de la Información Geográfica, Madrid, AGE-CSIC, 19-21 de Septiembre de 2012
Programación de herramientas de geoprocesamiento en Python: Implementación de la variable visual tamaño en ArcGis
J. Solanas, A. Pueyo, R. Postigo y M. Zúñiga
AGRADECIMIENTOS
Los autores de esta comunicación quieren
agradecer a la Asociación para el Desarrollo
Estratégico de Zaragoza y su entorno,
EBROPOLIS por la realización de este trabajo
dentro de los proyectos de investigación
CSO2010-16389 del Programa Nacional de
I+D+I y del convenio entre EBROPOLIS y la
Universidad de Zaragoza para la realización
de actividades de investigación.
BIBLIOGRAFÍA
Béguin, M. y Pumain, D. 2003. La
représentation
des
données
géographiques.
Statistique
et
cartographie, Paris, Armand Colin.
Pueyo Campos A. 1994. Utilización de
cartografía para el análisis y diagnóstico
de la localización de equipamientos, Tesis
doctoral, Zaragoza, Ed. Publicaciones de
la Universidad de Zaragoza, 800 pp.
Robinson, A.H. 1955. The 1837 Maps of Henry
Drury
Harness,
The
Geographical
Journal, 121, 440-450.
Robinson, A.H. 1967. The Thematic Maps of
Charles Joseph Minard, Imago Mundi 21,
95-108.
Robinson, A.H., Morrison, J.L., Muehrcke,
P.C., Kimerling, A.J. y Guptill, S.C. 1995.
Elements of Cartography, USA, John
Wiley & Sons.
Bertin, J. 1967. Sémiologie graphique. Les
diagrammes - Les réseaux - Les cartes,
Paris, Ed. Gauthiers-Villars.
Slocum, T.A., McMaster, R.B., Kessler, F.C. Y
Howard,
H.H.
2010.
Thematic
Cartography and Geovisualization, New
Jersey, Pearson Education International.
Butler, H. 2005. A Guide to the Python
Universe for ESRI Users. ArcUser AprilJune. 34-37.
Steinberg,
J.
2000.
Cartographie.
Télédétection. Systèmes d’information
géographique, Paris, SEDES.
Calvo, J.L., Pueyo, A. y Tricas, F. 2002.
Instrumentos de gestión territorial para la
toma de decisiones en el medio local.
Sevilla, Consejería de Gobernación. Junta
de Andalucía.
Solanas, J. 2011. Implementación de la
variable visual tamaño en ArcGIS:
programación
de
herramientas
de
geoprocesamiento en Python. Memoria
del Máster Universitario en Tecnologías
de la información geográfica para la
ordenación del territorio: sistemas de
información geográfica y teledetección.
Zaragoza, Universidad de Zaragoza.
Cauvin, C., Escobar, F. y Serradj, A. 2008.
Cartographie
thématique
2
des
transformations incorturnables, Paris,
Hermes-Lavoisier.
Dent, B.D. 1999: Cartography. Thematic Map
Design, New York, WCB McGraw-Hill.
Flannery, J.J. 1971. The relative effectiveness
of some common graduated point
symbols in the presentation of quantitative
data, Canadian Cartographer, 8, 96-109.
Fremlin, G y Robinson, A.H. 2005. Maps as
mediated seeing. Fundamentals of
cartography, Trafford, Victoria.
González, R. 2008. Python para todos.
Autoeditado.
Disponible
en:
mundogeek.net/tutorial-python
Lutz, M. y Ascher, D. 2001. Learning Python.
O’Reilly.
Van Rossum, G. 2000. Guía de aprendizaje de
Python. BeOpen PythonLabs.
Zúñiga, M. 2009. Propuesta cartográfica para
la representación y análisis de la variable
población
mediante
Sistemas
de
Información Geográfica: el caso español,
Zaragoza, Universidad de Zaragoza.
Zúñiga, M., Pueyo, A., Sebastián, M. y Calvo,
J.L. 2009. Estudio de la población en el
atlas nacional de España. Variables
relevantes para la ordenación territorial,
Revista Electrónica Proyección, 9.