Logo Studenta

ARCPY JERRY DAVIS ESPAÑOL

¡Este material tiene más páginas!

Vista previa del material en texto

Traducido del inglés al español - www.onlinedoctranslator.com
https://www.onlinedoctranslator.com/es/?utm_source=onlinedoctranslator&utm_medium=pdf&utm_campaign=attribution
ArcPy y ArcGIS
Segunda edicion
Automatización de ArcGIS for Desktop y ArcGIS Online con 
Python
silas toms
Dara O'Beirne
BIRMINGHAM - BOMBAY
ArcPy y ArcGIS
Segunda edicion
Copyright © 2017 Packt Publishing
Reservados todos los derechos. Ninguna parte de este libro puede reproducirse, almacenarse en un 
sistema de recuperación o transmitirse de ninguna forma ni por ningún medio sin el permiso previo por 
escrito del editor, excepto en el caso de citas breves incrustadas en artículos críticos o reseñas.
Se ha hecho todo lo posible en la preparación de este libro para garantizar la exactitud de la 
información presentada. Sin embargo, la información contenida en este libro se vende sin garantía, 
ya sea expresa o implícita. Ni los autores, ni Packt Publishing, ni sus comerciantes y distribuidores 
serán responsables de los daños causados o presuntamente causados directa o indirectamente 
por este libro.
Packt Publishing se ha esforzado por proporcionar información de marcas registradas sobre 
todas las empresas y productos mencionados en este libro mediante el uso apropiado de 
capitales. Sin embargo, Packt Publishing no puede garantizar la exactitud de esta información.
Primera publicación: febrero de 2015
Segunda edición: junio de 2017
Referencia de producción: 1270617
Publicado por Packt Publishing Ltd. 
Livery Place
Calle librea 35
Birmingham
B3 2PB, Reino Unido.
ISBN 978-1-78728-251-3
www.packtpub.com
http://www.packtpub.com
Créditos
Autores
silas toms
Dara O'Beirne
Editor de copia
Edición Safis
revisores
ken doman
Adeyemo Ayodele Oba
Coordinador del proyecto
Sawant de Vaidehi
Editor de puesta en marcha
aarón lazar
Corrector de pruebas
Edición Safis
Redactor de adquisiciones
karan sadawana
indexador
francy puthiry
Editor de desarrollo de 
contenido Kinnari Sanghvi
Gráficos
Abhinash Sahu
Redactor técnico
Kunal Malí
Coordinador de produccion
Aparna Bhagat
Prefacio
Durante mucho tiempo he predicado la importancia de la programación GIS, y los estudiantes que han 
escuchado lo han hecho bien y no han pasado todo su tiempo haciendo clic en su trabajo. También han 
conseguido buenos trabajos y carreras interesantes. Sin embargo, el aprendizaje de la programación GIS 
necesita recursos, y aunque hay muchas pistas en los sitios web y ciertamente puede aprender lenguajes 
de programación como Python en lugares como CodeAcademy, hay unlotemás a la programación GIS, y la 
comprensión de algunas de las complejidades de acceder a los datos espaciales y el procesamiento 
requiere un enfoque sistemático. Esta nueva edición deArcPy y ArcGIS: análisis geoespacial con PythonPor 
Silas Toms y Dara O'Beirne es uno de esos enfoques y proporciona una contribución significativa, que se 
extiende desde los métodos de escritorio hasta SIG en línea.
Toms y O'Beirne adoptan el enfoque de saltar directamente a lo profundo y explorar el agua, o como 
prefiero y sugiere la ilustración de la portada original, saltar y explorar un río de montaña. Este 
enfoque es particularmente útil para aquellos de nosotros que ya tenemos algo de experiencia con 
la programación y solo necesitamos algunas pistas sobre cómo trabajar en este grupo en particular 
y encontrar sus remolinos y caídas. Puede pasar un libro entero aprendiendo sobre el lenguaje 
Python y, si bien eso puede ser valioso, ¿quién tiene tiempo?
Hay mucho en la parte de ArcPy de las secuencias de comandos de Python; mucho más que el lenguaje en sí. Las 
secuencias de comandos de ArcPy son en gran medida un enfoque de secuencias de comandos de alto nivel, pero las 
cosas con las que interactúa tienen una profundidad considerable. Debe comprender cómo usar las herramientas de 
geoprocesamiento, los métodos y propiedades Arcpy, las relaciones de datos espaciales y muchas otras estructuras. De 
manera razonable, este libro se enfoca en la parte de ArcPy y lleva al usuario hasta la automatización GIS en línea, que 
depende más de saber cómo encontrar y estructurar cosas que de saber codificar.
Aprender acerca de los cursores enCapítulo 3,Cursores de ArcPy - Buscar, insertar y actualizar,y geometrías enCapítulo 4,
Cursores y objetos de geometría de ArcPy,llega directamente al corazón del valor de las secuencias de comandos de 
Python en ArcGIS. Los scripts de ArcPy más útiles que he usado o escrito han usado cursores, principalmente para 
acceder y crear geometrías. Aquí es donde realmente ve el beneficio de un modelo de secuencias de comandos, y puede 
escribir herramientas que pueden hacer cosas que son imposibles (o al menos poco prácticas; supongo que puede editar 
cada función una a la vez) sin una secuencia de comandos.
Continuando en el modo de piscina de río profundo (hace que su corazón se acelere), comenzamos a crear herramientas de secuencias de 
comandos enCapítulo 5,Creación de una herramienta de secuencia de comandos! Ahora, cuando escribo scripts, tiendo a tener que abrirme 
camino a través de errores (soy un poco programador empírico), por lo que tiendo a hacer que mi código funcione primero con datos 
codificados en el IDE en la etapa de herramienta de script. En la etapa de la herramienta de script,
arcpy.AddMessagese convierte en mi típica herramienta de depuración, sirviendo como la declaración de impresión venerable, 
algo así comoarcpy.AddMessage ("Acabo de terminar el ciclo de conversión de datos"). Sin embargo, aunque muchos lectores 
pueden querer seguir mi enfoque, crear una herramienta de secuencia de comandos funcional enCapítulo 5,Creación de una 
herramienta de secuencia de comandos, le permite ver dónde puede llegar bastante rápido.
Muchos usuarios de SIG trabajan en agencias que se ocupan de la gestión de tierras o infraestructuras, y con este tipo de 
responsabilidad, la creación de mapas es una de las principales preocupaciones. El capítulo sobre el
Arcpy.mappingmódulo es especialmente bienvenido, porque no solo necesitamos automatizar nuestro análisis, 
también necesitamos automatizar nuestros mapas para una mayor eficiencia y consistencia en el diseño.
La dirección de GIS en estos días es ciertamente en línea, por lo que la cobertura significativa de métodos en línea en 
esta edición, que va desde ArcGIS Online y servicios REST hasta la nueva API de ArcGIS para Python, es bienvenida. Si 
bien tradicionalmente me he centrado en los métodos analíticos de escritorio, planeo usar esta introducción para mover 
algunos de nuestros conjuntos de herramientas en línea. Finalmente, incluso los usuarios de escritorio acérrimos hemos 
aprendido que necesitamos movernos en línea al menos lo suficiente para hacer un buen uso de ArcGIS Pro, por lo que 
esta cobertura es una adición bienvenida.
Con todo, Toms y O'Beirne sin duda han creado un texto muy útil que sin duda pertenece 
al estante (o Kindle) de cualquier programador potencial de ArcGIS que quiera saltar y 
comenzar a explorar el río. Sin duda lo usaré yo mismo y lo recomendaré a mis estudiantes 
y colegas.
jerry davis
Profesor de Geografía y Director del Departamento de la Universidad Estatal de San Francisco
Sobre los autores
silas tomses un GIS Professional certificado y el autor de la primera edición deArcPy y ArcGIS. 
Presidente y fundador de Loki Intelligent Corporation, una firma de información de ubicación 
ubicada en San Francisco, California, es un experto en sistemas de información geográfica en tiempo 
real y automatización de análisis. Junto con Dara O'Beirne y Arini Geographics, desarrolló la imagen 
operativa común en tiempo real utilizada en el Super Bowl 50 y todos los demás eventos en el Levi's 
Stadium en Santa Clara, California. Este sistema dinámico fue reconocido por la Casa Blanca y el 
presidente de ESRI, Jack Dangermond, como una aplicación única y poderosa de GIS, que permite al 
gobierno federal, estatal y local coordinarse y comunicarseen tiempo real, por primera vez.
Como presidente de Loki Intelligent, Silas se enfoca en aplicaciones únicas de GIS que impulsarán el 
futuro de la información de ubicación. La gran cantidad de datos recopilados a través de sensores e 
informes móviles exige mejoras en la automatización y el procesamiento de datos para convertir la 
entrada sin procesar en inteligencia de ubicación. Él cree que la aplicación correcta del análisis 
geoespacial, el mapeo web y la recopilación de datos móviles mejorará los procesos de toma de 
decisiones dentro del gobierno y las empresas. Loki es información de ubicación, y la información es 
poder.
Me gustaría agradecer a mi novia Maureen por su apoyo. Quisiera agradecer a mi padre Bruce, mi madre 
Susan, mi padrastro Bob y mi hermana Ashley y su familia por brindarme excelentes consejos y apoyo. Me 
gustaría agradecer a mis profesores en la Universidad Estatal de Humboldt, la Universidad Estatal de San 
Francisco y la UA. Finalmente, me gustaría agradecer a mis amigos, tanto profesionales como personales, 
que me ayudaron a convertirme en una buena persona y un gran geógrafo.
Dara O'Beirnees un GIS Professional certificado (GISP) con más de 10 años de experiencia en GIS y Python. 
Obtuvo su licenciatura y maestría en geografía en la Universidad Estatal de San Francisco. Actualmente es 
analista GIS y trabaja en el Departamento de Servicios Públicos de la Ciudad de Sacramento. Antes de 
unirse a la ciudad de Sacramento, fue analista de GIS para Arini Geographics en la ciudad de Santa Clara en 
California. Mientras estuvo en Santa Clara, trabajó en la conversión de los datos de AutoCAD de la red de 
servicios públicos al modelo de información del gobierno local GIS de ESRI. También fue una parte integral 
del equipo GIS, que incluía a Silas Toms, Cyrus Hiatt, Sherie Tan y Gabriel Paun, quienes trabajaron en el 
desarrollo de una aplicación de mapas web utilizada durante cada evento en el nuevo Levi's Stadium, 
incluido el Super Bowl 50.
La experiencia profesional de Dara también incluye trabajar con Towill Inc., una empresa de GIS y 
agrimensura en el norte de California. En Towill, desempeñó un papel central en el desarrollo e 
implementación de procedimientos relacionados con la recopilación y el análisis de datos LiDAR para 
aplicaciones ambientales y de ingeniería. Antes de Towill, el Sr. O'Beirne obtuvo su experiencia profesional 
en SIG trabajando para el Área Recreativa Nacional Golden Gate administrada por el Servicio de Parques 
Nacionales, uno de los sistemas de parques urbanos más grandes del mundo, que incluye tesoros 
nacionales como Alcatraz, Muir Woods , y los promontorios de Marin.
Me gustaría agradecer a mi esposa Kate ya mis hijas Anya y Brynn, y decirles que las amo. Me 
gustaría agradecer a mi familia que siempre me ha guiado y apoyado, desde Irlanda hasta 
Estados Unidos y más allá. Quisiera agradecer a mis profesores de la Universidad Estatal de San 
Francisco ya todos mis colegas y amigos que me han ayudado a lo largo del camino.
Acerca de los revisores
Ayodele Adeyemoes un geogeek que trabaja con eHealth Africa como especialista en GIS. Tiene 
más de 4 años de experiencia trabajando en varios paquetes de software propietario y de código 
abierto para ofrecer una gestión de datos y soluciones eficientes en todas las industrias. Le 
apasiona aprovechar los datos y la tecnología para ofrecer soluciones a soluciones humanas, 
sociales y ambientales.
Ayodele dirigió el equipo que construyó Nigeria Open Data Access y también ganó el concurso GIS Cloud GIS 
Day en 2015, donde trabajó con un equipo para construir un sistema predictivo de vulnerabilidad a la malaria 
basado en factores ambientales y climáticos. Actualmente está trabajando en un sistema de direccionamiento 
alternativo para potenciar y entregar tecnologías de ciudades inteligentes en comunidades de todo el mundo.
No dude en ponerse en contacto con él enyo@ayodeleadeyemo.com.
ken domanes ingeniero frontend sénior en GEO Jobe, una empresa consultora de sistemas de información 
geográfica y socio comercial de ESRI que ayuda a las organizaciones del sector público y las empresas del sector 
privado a aprovechar al máximo las soluciones geoespaciales. Ha trabajado tanto para el gobierno municipal 
como para el sector privado. Ha experimentado muchas facetas de la tecnología GIS, que van desde la 
recopilación de datos de campo, mapeo y análisis de datos, hasta la creación e implementación de aplicaciones 
y soluciones de mapeo web.
Ken es el autor deDominar el desarrollo de ArcGIS Server con JavaScript. También ha revisado 
varios libros para Packt, incluyendoCreación de aplicaciones web y móviles de ArcGIS Server con 
JavaScriptyAnálisis espacial con ArcGISpor Eric Pimpler, yLibro de recetas de ArcGIS for Desktoppor 
Daniela Christiana Docan.
En primer lugar, me gustaría agradecer a mi esposa, Luann, que aguanta mis noches revisando libros como 
este. Me gustaría agradecer a mi empleador actual, GEO Jobe GIS Consulting, así como a empleadores 
anteriores como Bruce Harris and Associates, City of Plantation, FL y City of Jacksonville, TX por creer en mí 
y permitirme aprender tanto en el trabajo. . Finalmente, me gustaría agradecer a mi creador por ponerme 
donde necesito estar.
www.PacktPub.com
Para archivos de soporte y descargas relacionadas con su libro, visitewww.PacktPub.com.
¿Sabía que Packt ofrece versiones de libros electrónicos de cada libro publicado, con archivos PDF y ePub 
disponibles? Puede actualizar a la versión de libro electrónico enwww.PacktPub.comy como cliente de un libro 
impreso, tiene derecho a un descuento en la copia del libro electrónico. Póngase en contacto con nosotros
aservicio@packtpub.com para más detalles.
Awww.PacktPub.com,también puede leer una colección de artículos técnicos gratuitos, suscribirse a una variedad 
de boletines gratuitos y recibir descuentos y ofertas exclusivos en libros y libros electrónicos de Packt.
https://www.packtpub.com/mapt
Obtenga las habilidades de software más demandadas con Mapt. Mapt le brinda acceso completo a todos los 
libros y cursos en video de Packt, así como a herramientas líderes en la industria para ayudarlo a planificar su 
desarrollo personal y avanzar en su carrera.
¿Por qué suscribirse?
Se pueden realizar búsquedas en todos los libros publicados por 
Packt Copie y pegue, imprima y marque el contenido
Bajo demanda y accesible a través de un navegador web
http://www.PacktPub.com
http://www.PacktPub.com
http://www.PacktPub.com
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
https://www.packtpub.com/mapt
Comentarios de losclientes
Gracias por comprar este libro de Packt. En Packt, la calidad está en el corazón de nuestro proceso editorial. Para 
ayudarnos a mejorar, déjenos una reseña honesta en la página de Amazon de este libro.
ahttps://www.amazon.com/dp/1787282511.
Si desea unirse a nuestro equipo de revisores regulares, puede enviarnos un correo electrónico a
opinionesdeclientes@packtpub.com. Premiamos a nuestros revisores regulares con libros electrónicos y videos 
gratuitos a cambio de sus valiosos comentarios. ¡Ayúdenos a ser implacables en la mejora de nuestros productos!
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://www.amazon.com/dp/1787282511
https://cdp.packtpub.com/arcpy_and_arcgis__second_edition/_wp_link_placeholder
Tabla de contenido
Prefacio
Capítulo 1: Introducción a Python para ArcGIS
1
6
Python como lenguaje de programación
Idioma interpretado
Biblioteca estándar (incorporada) 
Lenguaje adhesivo
Módulos de envoltura
Los fundamentos de la programación en Python
Importar extractos
Variables
Para bucles
Sentencias If/Elif/Else 
Sentencias while
Comentarios
Tipos de datos
Instrumentos de cuerda
enteros
flotadores
Contenedores de datos
Indexación basada en cero
Liza
tuplas
Diccionarios
Otros conceptos importantes
Sangría
Funciones
Palabras clave
Espacios de nombres
Módulos importantes de Python
El módulo OS (sistema operativo) El 
módulo sys (sistema Python) Los 
módulos CSV, XLRD y XLWT Funciones 
integradas de uso común Módulos de 
biblioteca estándar
7
7
7
8
8
8
9
10
11
11
12
12
13
13
13
14
14
14
15
dieciséis
dieciséis
17
18
18
18
19
19
19
19
20
20
20
Cómo Python ejecuta un script
¿Qué es un script de Python? 
Intérprete de Python
¿Dónde se encuentra el intérprete de Python? 
¿Qué intérprete de Python se debe usar?
¿Cómo sabe la máquina dónde está el intérprete? Hacer 
que los scripts de Python sean ejecutables al hacer clic 
Entornos de desarrollo integrado (IDE)
INACTIVO
PythonWin
Resumen de Atom, Notepad++ y 
Sublime Text IDE
Estructura de carpetas de Python
Donde residen los módulos
Instalación de un módulo de terceros
Uso del módulo sys de Python para agregar un 
módulo El método sys.path.append
Resumen
21
21
21
22
22
23
25
26
26
26
27
27
27
27
28
29
29
30
Capítulo 2: Creación del primer script de Python 31
requisitos previos
ModelBuilder
Creación de un modelo y exportación a Python
31
32
32
33
34
35
Modelado de las herramientas Seleccionar y Zona de 
influencia Adición de la herramienta Intersección
Contar los resultados del análisis
Exportando el modelo y ajustando el script
Las rutas de archivos de secuencias de comandos 
generadas automáticamente en Python
manipulación de cadenas
Método de manipulación de cadenas 1: Método de manipulación de 
cadena de cadena Método 2: Formato de cadena #1 Método de 
manipulación de cadenas 3: Formato de cadena #2 Las 
herramientas ArcPy
La herramienta Intersección
36
36
38
39
39
40
41
42
43
43
43
Ajustando el guion
Agregar el módulo CSV al script
Acceder a los datos: usando un cursor 44
46
46
Excepciones y rastreos 
Sobrescritura de archivos
el guion final 47
[ii]
Resumen 48
49Capítulo 3: Cursores de ArcPy - Buscar, insertar y actualizar
Funciones de Python: evite repetir el código
Definición técnica de funciones La 
primera función
Funciones con parámetros
Uso de funciones para reemplazar código repetitivo
50
50
51
52
53
54
54
La función crearCSV
Creando un XLS usando XLWT
El módulo de acceso a datos
Cursores de búsqueda
Interacciones de campo de atributo 
Actualizar cursores
Actualizar el campo de forma Ajustar la ubicación 
de un punto Eliminar una fila usando un cursor 
Actualizar Usando un cursor Insertar
Insertar una geometría de polilínea 
Insertar una geometría de polígono 
Resumen
55
56
58
59
60
60
61
61
63
64
sesenta y cinco
Capítulo 4: Cursores y objetos de geometría de ArcPy 66
Clases de objetos de geometría de ArcPy
Objetos de punto de ArcPy
Objetos de matriz de ArcPy
Objetos de polilínea de ArcPy
Objetos poligonales de ArcPy
67
68
69
70
72
72
74
75
76
Zonas de influencia de objetos de polígono
Otros métodos de objeto 
Polygon El método AsShape
Objeto de geometría genérico
Objetos ArcPy PointGeometry Reescribiendo 
el análisis de la parada de autobús
76
77
79Agregando al análisis
Resumen 80
81Capítulo 5: Creación de una herramienta de script
Agregar parámetros dinámicos a un script
Acceso a los parámetros pasados
Visualización de mensajes de secuencia de comandos mediante arcpy.AddMessage 
Adición de componentes dinámicos a la secuencia de comandos
81
82
84
84
[iii]
Creación de una herramienta de secuencia de comandos
Etiquetado y definición de parámetros 
Adición de tipos de datos
Adición de la clase de entidad Parada de autobús 
Adición de la clase de entidad Bloque censal 
Adición del campo Bloque censal
Agregar la hoja de cálculo de salida
86
88
90
90
91
92
93
93
94
94
Agregar los nombres de los campos de la hoja de 
cálculo Agregar la instrucción SQL
Agregar los campos de parada de autobús
Inspeccionando el guión final
Ejecución de la herramienta de 
script Resumen
95
97
98
Capítulo 6: El módulo arcpy.mapping 99
Usar ArcPy con documentos de mapa
Interactuar con elementos de documento de mapa
100
100
100
101
102
102
103
103
103
103
marcos de datos
Métodos de panorámica y zoom
Uso del módulo arcpy.mapping para controlar objetos de capa
Métodos y propiedades de objetos de capa 
Fuente de datos
Nombre o descripción
Visibilidad
Consultas de definición
Inspeccionar y reemplazar fuentes de capa 104
104
104
105
106
El método ListBrokenDataSources
Arreglando los enlaces rotos
Arreglando los enlaces de capas individuales 
Exportando a PDF desde un MXD
Producción automatizada de documentos cartográficos 106
109
109
110
110
110
111
111
112
114
114
115
las variables
Conexión al documento de mapa 
Marcos de datos
Accede a las capas
Los elementos de diseño
Generación de una zona de influencia a partir de la clase de entidad de las paradas de 
autobús Intersección de la zona de influencia de la parada de autobús y los bloques 
censales Dar formato a una consulta de definición dinámica
Actualización de los elementos del diseño 
Exportación del mapa ajustado a PDF Los 
resultados - Mapas dinámicos
Resumen 116
117Capítulo 7: Temas de análisis avanzado
[iv]
Usando el analista de red
Creación de un conjunto de datos de red
117
118
119
120
Importación de conjuntos de datos
Crear el conjunto de datos de red
Acceder al dataset de red usando ArcPy 121
121Desglosando elguión
El módulo Network Analyst Acceso a la 
extensión Spatial Analyst
Agregar elevación a las paradas de autobús
123
124
124
125
126
Usar álgebra de mapas para generar elevación en pies Agregar 
las paradas de autobús y obtener valores de elevación
El resultado final
Resumen
126
127
Capítulo 8: Introducción a ArcGIS Online 128
ArcGIS en línea
Registrarse para obtener una 
cuenta Explorar la interfaz
128
129
131
132
132
133
134
134
135
136
137
La pestaña Mi organización La 
pestaña Mi contenido
La opción Agregar elemento 
Características de los servicios
Características de los archivos
La pestaña Crear
La pestaña de grupos
Las pestañas Mapa y Escena
Publicación desde un MXD 137
138
139
141
143
144
145
146
Estilizando las capas
Publicando las capas
Editor de servicios del menú 
Compartir como
La opción Descripción del elemento 
Analizar
Actualizaciones
Cuenta de desarrollador
Resumen
147
148
Capítulo 9: ArcPy y ArcGIS Online 149
Servicios REST de ArcGIS Online
Explorando los servicios REST de ArcGIS 
parámetros de URL
Conjuntos de características
Métodos de conjunto de funciones
Fichas de ArcGIS Online
149
150
153
156
157
162
[ v ]
Poniendo todo junto 
Resumen
166
172
Capítulo 10: Paquete ArcREST Python 173
Presentamos el módulo ArcREST
Instalación de ArcREST
Introducción a la estructura del paquete ArcREST 
Manejador de seguridad ArcREST
Administración de ArcGIS Online Consulta 
de servicios de entidades alojadas
Consultar todas las entidades y guardarlas como una clase de entidad 
Agregar un campo a un servicio de entidades
Adición de dominios a campos en un servicio de entidades alojado 
Adición de una clase de entidad a un servicio de entidades Actualización 
de registros en un servicio de entidades
Resumen
174
174
175
177
178
179
179
182
185
188
190
193
Capítulo 11: ArcPy y ArcGIS Pro 194
Presentación de ArcGIS Pro
Instalar y configurar ArcGIS Pro La 
ventana Python de ArcGIS Pro Python 
2.7 y Python 3.5 con ArcPro Conda y 
ArcGIS Pro
Ejecución de scripts independientes con Conda Revisión 
de los conceptos básicos de Conda
Resumen
195
195
198
203
205
206
213
217
Capítulo 12: API de ArcGIS para Python 218
Introducción a la API de ArcGIS para Python
Instalación y configuración de Anaconda con Jupyter
218
219
223Instalar la API Python de ArcGIS
Crear un cuaderno Jupyter Notebook 
Iniciar la API de ArcGIS para Python 
Agregar un elemento a un mapa web 
Importar un CSV con pandas Resumen
224
231
234
235
239
Índice 240
[VI]
Prefacio
ArcPy y ArcGIS actualizados ahora cubren tres módulos principales de Python para la automatización del análisis 
geoespacial y la administración de datos. ArcPy, ArcREST y ArcGIS API for Python son potentes bibliotecas de 
Python que permiten a los analistas GIS y científicos de datos crear secuencias de comandos para el 
procesamiento y la publicación de datos de ubicación. Usar el poder de la programación con ArcGIS for Desktop, 
ArcGIS for Server y ArcGIS Online nunca ha sido más fácil o más importante. Con todos los capítulos y códigos 
nuevos, este libro muestra cómo usar cada módulo correctamente para mejorar cualquier flujo de trabajo 
geoespacial.
Lo que cubre este libro
Capítulo 1,Introducción a Python para ArcGIS, cubre la sintaxis y las herramientas básicas de Python, e 
introduce la biblioteca de códigos Arcpy junto con otros módulos útiles.
Capitulo 2,Crear el primer script de Python, lleva al usuario desde el entorno de ArcGIS 
ModelBuilder, donde modela un análisis geoespacial y lo exporta como un script de ArcPy.
Capítulo 3,Cursores de ArcPy: buscar, insertar y actualizar, explora el uso de cursores o herramientas 
de código utilizadas para crear, actualizar y acceder a los datos de ubicación.
Capítulo 4,Cursores y objetos de geometría de ArcPy, explica el uso de cursores y objetos geométricos, que son clases 
de ArcPy que se utilizan para realizar análisis geoespaciales en secuencias de comandos personalizadas.
Capítulo 5,Creación de una herramienta de secuencia de comandos, demuestra cómo crear una herramienta de secuencia de comandos de 
ArcToolbox personalizada con una interfaz gráfica de usuario que se puede utilizar como cualquier otra herramienta de Esri.
Capítulo 6,El módulo arcpy.mapping, describe el uso del módulo arcpy.mapping y su función en la 
producción automatizada de mapas.
Capítulo 7,Temas de análisis avanzado, analiza el uso de ArcPy para el análisis espacial y de 
redes avanzado.
Capítulo 8,Introducción a ArcGIS en línea, lo lleva a registrarse en ArcGIS Online, publicar 
datos desde un MXD y crear una cuenta de desarrollador de Esri.
Capítulo 9,ArcPy y ArcGIS en línea, analiza el uso de ArcPy con ArcGIS Online y ArcGIS REST API 
para el acceso programático a datos de ubicación basados en la nube.
Prefacio
Capítulo 10,Paquete Python de ArcREST, explora el uso del paquete ArcREST Python, que 
permite un control avanzado de la API REST de ArcGIS.
Capítulo 11,ArcPy y ArcGIS Pro, enumera las nuevas bibliotecas de Python 3.5 y la configuración del 
software utilizado para programar el análisis en ArcGIS Pro.
capitulo 12,API de ArcGIS para Python, se sumerge en el uso de la nueva API de ArcGIS para Python, que 
permite el acceso a los datos de ArcGIS Online dentro de los cuadernos de Jupyter.
capitulo 13,Python y Arcgis Enterprise, nos enseña cómo usar cada uno de estos tres módulos de Python 
dentro de un flujo de trabajo GIS profesional.
Lo que necesitas para este libro.
Este libro utiliza el paquete de software ArcGIS de Esri, que incluye ArcGIS for Desktop, ArcGIS 
for Server y ArcGIS Online, junto con el lenguaje de programación Python. Python y ArcPy se 
instalan con el software ArcGIS for Desktop, que está disponible enhttp://www. arcgis.com.ArcREST 
está disponible para descargar desde GitHub y la API de ArcGIS para
Python está disponible enhttps://developers.arcgis.com/python/.
para quien es este libro
Este libro es para cualquiera que trabaje con información de ubicación. Los analistas GIS, los científicos de datos, los 
planificadores, los biólogos, los programadores web y los estudiantes, así como muchos otros, pueden beneficiarse de 
la aplicación correcta de las herramientas de programación geoespacial de Python.
Convenciones
En este libro, encontrará una serie de estilos de texto que distinguen entre diferentes tipos de 
información. Aquí hay algunos ejemplos de estos estilos y una explicación de su significado.
Las palabras de código en el texto, los nombres de las tablas de la base de datos, los nombres de las carpetas, los nombres de los archivos, las 
extensiones de los archivos, las rutas, las direcciones URL ficticias, la entrada del usuario y los identificadores de Twitter se muestran a continuación:
"LoscrearCSVLa función acepta el diccionario y el nombre del archivo CSV de salida como 
cadenas.
[ 2 ]
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
http://www.arcgis.com
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
https://developers.arcgis.com/python/
Prefacio
Un bloque de código se establece de la siguiente manera:
def primeraFunción():
'una función simple que devuelve una cadena' 
stringvariable = "Mi primera función" return 
stringvariable
> > > primeraFuncion()
Cuando deseamos llamar su atención sobre una parte particular de un bloque de código, las líneas o elementos 
relevantes se muestran en negrita:
def primeraFunción():
'una función simple que devuelve una cadena' 
stringvariable = "Mi primera función" devuelve 
variable de cadena
> > > primeraFuncion()
Cualquier entrada o salida de la línea de comandos se escribe de la siguiente manera:
conda install –c esri arcgis
Nuevos términosyPalabras importantesse muestran en negrita. Las palabras que ve en la pantalla, por ejemplo, en 
menús o cuadros de diálogo, aparecen en el texto de la siguiente manera: "Una vez completada, debería ver la capa de 
entidades alojada debajoMi contenido, como se muestra aquí".
Las advertencias o notas importantes aparecen en un cuadro como este.
Los consejos y trucos aparecen así.
Comentarios del lector
Los comentarios de nuestros lectores es siempre bienvenido. Háganos saber lo que piensa acerca de este libro, lo que le gustó o no le 
gustó. Los comentarios de los lectores son importantes para nosotros, ya que nos ayudan a desarrollar títulos de los que realmente sacará 
el máximo provecho. Para enviarnos comentarios generales, simplemente envíe un correo electrónico
feedback@packtpub.com ,y menciona el título del libro en el asunto de tu mensaje. Si hay 
un tema en el que tiene experiencia y está interesado en escribir o contribuir a un libro, 
consulte nuestra guía del autor enwww.packtpub.com/authors.
[ 3 ]
http://www.packtpub.com/authors
Prefacio
Atención al cliente
Ahora que es el orgulloso propietario de un libro de Packt, tenemos una serie de cosas para ayudarlo a 
aprovechar al máximo su compra.
Descargando el código de ejemplo
Puede descargar los archivos de código de ejemplo para este libro desde su cuenta enhttp://
www.packtpub.com.Si compró este libro en otro lugar, puede visitarhttp://www.packtpub.com/supporty 
regístrese para recibir los archivos directamente por correo electrónico. Puede descargar los 
archivos de código siguiendo estos pasos:
1. Inicie sesión o regístrese en nuestro sitio web utilizando su dirección de correo electrónico y contraseña.
2. Pase el puntero del mouse sobre elAPOYOpestaña en la parte superior.
3. Haga clic enDescargas de códigos y erratas.
4. Introduzca el nombre del libro en elBúsquedacaja.
5. Seleccione el libro que está buscando para descargar los archivos de código.
6. Elija del menú desplegable donde compró este libro.
7. Haga clic enDescarga de código.
Una vez descargado el archivo, asegúrese de descomprimir o extraer la carpeta con la última 
versión de:
WinRAR / 7-Zip para Windows 
Zipeg / iZip / UnRarX para Mac 7-
Zip / PeaZip para Linux
El paquete de código para el libro también está alojado en GitHub enhttps://github.com/packtpubl
ishing/ArcPy-and-ArcGIS-Second-Edition.También tenemos otros paquetes de códigos de nuestro
rico catálogo de libros y videos disponibles enhttps://github.com/PacktPublishing/. ¡Échales 
un vistazo!
Descargando las imágenes a color de este libro
También le proporcionamos un archivo PDF que tiene imágenes en color de las capturas de pantalla/diagramas 
utilizados en este libro. Las imágenes en color lo ayudarán a comprender mejor los cambios en la salida. Puede 
descargar este archivo desde
https://www.packtpub.com/sites/default/files/downloads/ArcPyandArcGISSecondEdition_ColorImages.pdf.
[ 4 ]
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/supporthttp://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
http://www.packtpub.com/support
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Editionhttps://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/ArcPy-and-ArcGIS-Second-Edition
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://github.com/PacktPublishing/
https://www.packtpub.com/sites/default/files/downloads/ArcPyandArcGISSecondEdition_ColorImages.pdf
https://www.packtpub.com/sites/default/files/downloads/ArcPyandArcGISSecondEdition_ColorImages.pdf
https://www.packtpub.com/sites/default/files/downloads/ArcPyandArcGISSecondEdition_ColorImages.pdf
https://www.packtpub.com/sites/default/files/downloads/ArcPyandArcGISSecondEdition_ColorImages.pdf
Prefacio
Fe de erratas
Aunque hemos tomado todas las precauciones para garantizar la precisión de nuestro contenido, los 
errores ocurren. Si encuentra un error en uno de nuestros libros, tal vez un error en el texto o en el 
código, le agradeceríamos que nos lo informara. Al hacerlo, puede salvar a otros lectores de la 
frustración y ayudarnos a mejorar las versiones posteriores de este libro. Si encuentra alguna errata, 
infórmela visitandohttp://www.packtpub.com/submit-errata,seleccionando su libro, haciendo clic en el
Formulario de envío de erratasenlace e ingresando los detalles de su fe de erratas. Una vez que se 
verifique su errata, se aceptará su envío y la errata se cargará en nuestro sitio web o se agregará a 
cualquier lista de errata existente en la sección Errata de ese título. Para ver la errata enviada 
anteriormente, vaya ahttps://www.packtpub.com/books/content/supporte ingrese el nombre del libro en el 
campo de búsqueda. La información requerida aparecerá debajo de laFe de erratassección.
Piratería
La piratería de material protegido por derechos de autor en Internet es un problema constante en todos los 
medios. En Packt, nos tomamos muy en serio la protección de nuestros derechos de autor y licencias. Si 
encuentra copias ilegales de nuestros trabajos en cualquier forma en Internet, indíquenos la dirección de la 
ubicación o el nombre del sitio web de inmediato para que podamos buscar una solución. Por favor contáctenos 
encopyright@packtpub.com con un enlace al material supuestamente pirateado. Agradecemos su ayuda para 
proteger a nuestros autores y nuestra capacidad para brindarle contenido valioso.
Preguntas
Si tiene algún problema con algún aspecto de este libro, puede contactarnos en
preguntas@packtpub.com ,y haremos todo lo posible para solucionar el problema.
[ 5 ]
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
http://www.packtpub.com/submit-errata
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/supporthttps://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
https://www.packtpub.com/books/content/support
1
Introducción a Python para
ArcGIS
En este capítulo, analizaremos el desarrollo de Python como lenguaje de programación desde su 
introducción a fines de la década de 1980 hasta su estado actual. Hablaremos del creador del 
lenguaje y la filosofía de diseño que impulsó su desarrollo. También tocaremos módulos 
importantes que se utilizarán en el resto del libro, y especialmente centrarnos en los módulos 
integrados en la biblioteca estándar de Python. Configuraremos Python y la computadora para 
ejecutar scripts de Python. Se discutirá la estructura de la carpeta de Python, así como la ubicación 
del módulo ArcPy dentro de la estructura de carpetas de ArcGIS. también discutiremosEntornos de 
desarrollo integrados(IDE)--programas diseñados para ayudar en la creación y ejecución de 
código--comparando y contrastando los IDE existentes para determinar qué beneficios puede 
ofrecer cada IDE al programar código Python.
Este capítulo cubrirá los siguientes temas:
Resumen rápido de Python: qué es y qué hace, quién lo creó, dónde está ahora
Módulos importantes de Python, tanto integrados como de terceros
Los conceptos básicos de Python, incluidos los tipos de datos, los contenedores de datos y los 
bucles. La ubicación del intérprete de Python y cómo se llama para ejecutar un script. El ajuste de las 
variables de entorno de la computadora para garantizar la ejecución correcta del código. Entornos 
de desarrollo integrado (IDE)
La estructura de carpetas de Python y dónde se almacenan los módulos
Introducción a Python para ArcGIS
Python como lenguaje de programación
Durante los últimos 40 años de informática, los lenguajes de programación se han desarrollado desde el 
código ensamblador y de máquina hacia lenguajes abstractos de alto nivel, que están mucho más cerca del 
inglés. El lenguaje de programación Python, iniciado por Guido van Rossum en 1989, fue diseñado para 
superar los problemas que enfrentaban los programadores en la década de 1980: tiempo de desarrollo 
lento, sintaxis demasiado complicada y legibilidad horrible. Desarrolló Python como un lenguaje que 
permitiría desarrollar y probar código rápidamente, tener una sintaxis hermosa (o al menos legible) y 
producir resultados con menos líneas de código, en menos tiempo. La primera versión de Python (0.9.0) se 
lanzó en 1991 y siempre ha sido gratis para descargar y usar.
Irhttps://www.python.org/Para explorar la documentación de Python, pruebe tutoriales, 
obtenga ayuda, busque bibliotecas útiles de código de Python y descargue Python. Python 
tiene múltiples versiones principales y secundarias. Durante gran parte del libro, estamos 
utilizando Python 2.7, que se instala automáticamente junto con ArcGIS para escritorio. Para 
los capítulos sobre ArcGIS Pro, usaremos Python 3.5.
Idioma interpretado
Python es un lenguaje interpretado. Está escrito en C, un lenguaje compilado, y el código está 
"interpretado" desde Python en C antes de ejecutarse. En la práctica, esto significa que el código se 
ejecuta tan pronto como se convierte y compila. Si bien la interpretación del código puede tener 
implicaciones de velocidad para la ejecución de programas basados en Python, esto tiene muy pocas 
implicaciones en el mundo real para su uso con ArcGIS. La prueba de fragmentos de código es mucho 
más rápido en un entorno interpretativo, y es perfecto para crear scripts para automatizar tareas 
informáticas básicas y repetibles.
Biblioteca estándar (integrada)
Python, cuando está instalado, tiene un conjunto básico de funciones que se denominan biblioteca integrada. 
Estas herramientas integradas permiten a Python realizar manipulaciones de cadenas, cálculos matemáticos, 
llamadas HTTP y análisis de URL junto con muchas otras funciones. Algunas de las bibliotecas de herramientas, o 
módulos, están disponibles tan pronto como se inicia Python, mientras que otras deben llamarse explícitamente 
utilizando la palabra clave "Importar" para que sus funciones y clases estén disponibles. Otros módulos han sido 
desarrollados por terceros y se pueden descargar e instalar en la instalación de Python según sea necesario.
[ 7 ]
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
https://www.python.org/
Introducción a Python para ArcGIS
lenguaje de pegamento
Python a menudo se llama lenguaje de "pegamento". Este término describe el usodel código Python para 
controlar otros programas de software mediante el envío de entradas a susInterfaz de programación de 
aplicaciones(API) y recopilando resultados, que luego se envían a otro programa para repetir el proceso. 
Un ejemplo de GIS sería usar Python'surllib2para descargar archivos de formas comprimidos desde un sitio 
web, descomprimir los archivos, procesarlos con ArcToolbox y compilar los resultados en una hoja de 
cálculo de Excel. Todo esto se logra utilizando módulos disponibles gratuitamente que se incluyen en la 
biblioteca incorporada de Python o se agrega cuando se instala ArcGIS.
Módulos de envoltura
El módulo ArcPy es un módulo "envoltorio". "Envuelve" una interfaz de código Python sobre las herramientas 
ArcGIS y el código fuente existentes, lo que nos permite acceder a estas herramientas dentro de nuestros scripts. 
Los módulos de envoltura son comunes en Python, y se llaman así porque "envuelven" a Python en las 
herramientas que necesitaremos. Nos permiten usar Python para interactuar con programas escritos en C u 
otros lenguajes de programación usando la API de esos programas. El módulo contenedorsistema operativo
permite las operaciones del sistema operativo.
Por ejemplo, los módulos de envoltura permiten extraer datos de una hoja de cálculo de Excel, 
transformar los datos a otro formato, como un archivo de forma, y cargarlos en un MXD como una capa. 
No todos los módulos son contenedores; algunos módulos están escritos en "Python puro" y realizan sus 
análisis y cálculos utilizando la sintaxis de Python. De cualquier manera, el resultado final es que una 
computadora y sus programas están disponibles para ser manipulados y controlados usando Python.
Los fundamentos de la programación en Python
Python tiene una serie de requisitos y convenciones de lenguaje que permiten el control de los 
módulos y la estructuración del código. A continuación, se incluye una serie de conceptos básicos 
importantes que se utilizarán a lo largo de este libro y al elaborar scripts para su uso con el análisis 
geoespacial.
[ 8 ]
Introducción a Python para ArcGIS
Para probar estos ejemplos, abra elINACTIVO (GUI de Python)programa de laMenú Inicio/ArcGIS/Python2.7carpeta 
después de instalar ArcGIS for Desktop. Tiene un "intérprete" incorporado o interfaz de entrada de código, 
indicado por el triple cheurón >>> y un cursor parpadeante. Para crear un script en IDLE para guardar su código, 
haga clic en elExpedientemenú y luego haga clic en Archivo nuevo. Guarde cualquier script con un archivo .py
extensión. De lo contrario, simplemente ingrese los comandos en el intérprete y presioneIngresarpara ejecutar o 
agregar la siguiente línea.
Importar extractos
Las declaraciones de importación se usan para aumentar el poder de Python llamando a otros módulos para usar en el 
script. Estos módulos pueden ser parte de la biblioteca de módulos estándar de Python, como elMatemáticasmódulo 
(utilizado para hacer cálculos matemáticos superiores), o, lo que es más importante, puede ser como ArcPy, que nos 
permitirá interactuar con ArcGIS. Las declaraciones de importación se pueden ubicar en cualquier lugar antes de que se 
use el módulo, pero, por convención, se ubican en la parte superior de un script.
Hay tres formas de crear una declaración de importación. El primero, y el más estándar, es importar todo 
el módulo de la siguiente manera:
importar arcpy
Usando este método, incluso podemos importar más de un módulo en la misma línea. A continuación, 
importaremos tres módulos:arcoíris, os (el módulo del sistema operativo), ysistema (el módulo del sistema 
Python):
importar arcpy, os, sys
El siguiente método para importar un script es importar una parte específica de un módulo en lugar 
de importar el módulo completo usando eldesde <módulo> importar <submódulo>sintaxis:
desde el mapeo de importación arcpy
Este método se usa cuando solo se necesita una parte del código de ArcPy; tiene el efecto práctico 
de limitar la cantidad de memoria utilizada por el módulo cuando se llama. También podemos 
importar varias partes del módulo de la misma manera.
del mapeo de importación arcpy, da
La tercera forma de importar un módulo es escribir elDesde <Module> Import <EmloDule>
sintaxis, pero use un asterisco * para importar todas las partes del módulo de la siguiente manera:
de importación arcpy *
[ 9 ]
Introducción a Python para ArcGIS
Este método todavía se usa, pero se desaconseja ya que puede tener efectos desconocidos; el principal es 
que los nombres de las variables en el módulo pueden entrar en conflicto con otra variable en otro 
módulo. Por esta razón, es mejor evitar este tercer método. Sin embargo, muchos scripts existentes 
incluyen declaraciones de importación en este formato, por lo que es bueno saber que existe.
Variables
Las variables son parte de todos los lenguajes de programación. Se utilizan para hacer referencia a objetos de datos 
almacenados en la memoria para su uso posterior en un script. Hay muchos argumentos sobre cuál es el mejor método 
para nombrar variables. No se ha desarrollado ningún estándar variable para las secuencias de comandos de Python 
para ArcGIS, por lo que describiré algunas prácticas comunes para usar al nombrar variables aquí:
1. Hágalos descriptivos: no se limite a nombrar una variable,X; Esa variable será inútil 
más adelante cuando se revise el script, y no hay forma de saber para qué se usa o 
por qué. Deben ser más largos en lugar de más cortos y deben explicar lo que 
hacen, o incluso qué tipo de datos contienen. Por ejemplo:
shapefilePath = "C:/Datos/shapefile.shp"
2. UsandoEl caso de CarmelPara que la variable sea legible: el caso de camello es un término utilizado para 
variables que comienzan con una letra minúscula pero tienen letras mayúsculas en el medio, que se 
asemeja a la joroba de un camello. Por ejemplo:
CamelCase = 'Camel Case está atascado como este'
3. Usar un guión bajo para separar partes del nombre: esto hace que el nombre sea más largo, 
pero agrega algo de claridad al leer el nombre de la variable, así:
dirección_ubicación = 'Calle principal 100'
4. Incluir el tipo de datos en el nombre de la variable: si la variable contiene una cadena, 
llámelavariableCadenaocadena_variable.Esto no es estándar y no se usará en este libro, 
pero puede ayudar a organizar el guión y es útil para otras personas que leerán estos 
guiones. Python se tipifica dinámicamente en lugar de estáticamente, una distinción del 
lenguaje de programación, lo que significa que no es necesario declarar una variable 
antes de poder usarla, a diferencia de Visual Basic u otros lenguajes de tipificación 
estática. Por ejemplo:
variableString = 'esto es una cadena'
[ 10 ]
Introducción a Python para ArcGIS
Para bucles
Integrado en todos los lenguajes de programación está la capacidad de iterar sobre un conjunto de datos 
para realizar una operación en los datos, transformando así los datos o extrayendo datos que cumplan con 
criterios específicos. El conjunto de datos debe ser iterable para ser utilizado en unporcírculo. Usaremos la 
iteración en forma deporbucles a lo largo de este libro. Aquí hay un ejemplo simple de unporloop, que toma 
valores de cadena y los imprime en mayúsculas usando la cadenasuperiormétodo. Abra IDLE (Python GUI) 
desde elMenú Inicio/ArcGIS/Python2.7carpeta para probarporcírculo. Ingrese los comandos en el triple 
cheurón del intérprete de Python >>> :
> > > nuevalista = ['a','b','c','d']
> > > para valor en nueva lista:
imprimir valor.superior()
A
B
C
D
Declaraciones If/Elif/Else
Declaraciones condicionales, llamadassi... másdeclaraciones en Python, son otro lenguaje de 
programación estándar. Se utilizan al evaluar datos; cuando se cumplan ciertas condiciones, se 
tomará una acción (la inicialsideclaración); si se cumple otra condición, se toma otra acción (esto es 
unelifdeclaración), y si los datos no cumplen la condición, se asigna una acción final para tratar esos 
casos (lamásdeclaración). Son similaresa un condicional en una instrucción SQL utilizada con la 
herramienta Seleccionar enArcoolbox. Aquí hay un ejemplo usando unsi... másDeclaración para 
evaluar los datos en una lista. En el ejemplo, dentro del
porloop, el operador de módulo % produce el resto de una operación de división. lossi
cheques de condición para ningún resto cuando se divide por la mitad, unelifcondición busca el resto de 
dos cuando se divide por tres, y lamáscondition captura cualquier otro resultado, como se muestra:
> > > datos = [1,2,3,4,5,6,7]
> > > para val en datos: si val % 2 == 
0:
print val,"sin resto" elif val % 3 
== 2:
print val, "resto de dos"
más:
imprimir "caso final"
último caso
[ 11 ]
Introducción a Python para ArcGIS
2 sin resto
4 sin resto
5 resto de dos 6 sin 
resto
último caso
Mientras que las declaraciones
Otra herramienta de evaluación importante es latiempodeclaración. Se utiliza para realizar una acción mientras 
una condición es verdadera; cuando la condición es falsa, la evaluación se detendrá. Tenga en cuenta que la 
condición debe volverse falsa, o la acción se realizará para siempre, creando un "bucle infinito" que no se 
detendrá hasta que el intérprete de Python se apague externamente. Aquí hay un ejemplo del uso de untiempo
bucle para realizar una acción hasta que una condición verdadera se vuelva falsa:
> > > x = 0
>>> Mientras X <5: 
Imprimir x
x+=1
0
1
2
3
4
Comentarios
Los comentarios en Python se usan para agregar notas dentro de un script. Están marcados con un signo de 
almohadilla y el intérprete de Python los ignora cuando se ejecuta el script. Los comentarios son útiles para 
explicar qué hace un bloque de código cuando se ejecuta, o para cualquier otra nota útil que el autor de un script 
desee hacer para futuros usuarios de scripts:
# Esto es un comentario
[ 12 ]
Introducción a Python para ArcGIS
Tipos de datos
GIS usa puntos, líneas, polígonos, coberturas y rásteres para almacenar datos. Cada uno de estos tipos de 
datos GIS se puede usar de diferentes maneras al realizar análisis y tiene diferentes atributos y 
características. Python, como GIS, tiene tipos de datos que utiliza para organizar datos. Los principales 
tipos de datos utilizados en este libro son cadenas, enteros, flotantes, listas, tuplas y diccionarios. Cada uno 
tiene sus propios atributos y características, y se utilizan para partes específicas de la automatización del 
código. También hay funciones integradas que permiten convertir tipos de datos de un tipo a otro; por 
ejemplo, el entero1se puede convertir a la cadena '1'usando la funcióncadena():
> > > variables = 1
>>> strvar = str (variable)
> > > strvar
'1'
Instrumentos de cuerda
Las cadenas se utilizan para contener cualquier tipo de carácter y comienzan y terminan con comillas. Se 
pueden utilizar comillas simples o dobles; la cadena debe comenzar y terminar con el mismo tipo de 
comillas. El texto citado puede aparecer dentro de una cadena; debe usar las comillas opuestas para 
evitar conflictos con la cadena, como se muestra aquí:
> > > cita = 'Esta cadena contiene una cita: "Aquí está la cita" '
También se emplea un tercer tipo de cadena: una cadena de varias líneas, que comienza y termina con 
tres comillas simples como esta:
> > > multiString = '''Esta cadena tiene múltiples 
líneas y puede durar todo el tiempo que yo 
quiera'''
enteros
Los números enteros son números enteros que no tienen lugares decimales. Hay una consecuencia especial 
del uso de números enteros en operaciones matemáticas: si se usan números enteros para la división, se 
devolverá un resultado entero. Consulte el siguiente fragmento de código para ver un ejemplo de esto:
> > > 5/2
2
[ 13 ]
Introducción a Python para ArcGIS
En lugar de un resultado preciso de 2,5, Python devolverá el "piso", o el entero entero más bajo para 
cualquier cálculo de división de enteros. Obviamente, esto puede ser problemático y puede causar 
pequeños errores en los scripts, lo que puede tener consecuencias importantes. Tenga en cuenta este 
problema al escribir guiones.
flotadores
Python utiliza valores de coma flotante, o flotantes, para representar valores decimales. Debido a que las 
computadoras almacenan valores en un sistema binario de base 2, puede haber problemas al representar un 
valor flotante que normalmente se representaría en una base 10. Leerhttps://docs.python.org
/2/tutorial/floatingpoint.htmlpara obtener más información sobre las ramificaciones de esta limitación; 
para las aplicaciones discutidas en este libro, no será un problema.
Contenedores de datos
Los datos a menudo deben agruparse, ordenarse, contarse y clasificarse. Python tiene una serie de 
"contenedores" de datos incorporados, que se pueden usar para todas y cada una de estas necesidades. Las 
listas, tuplas, conjuntos y diccionarios son los principales contenedores de datos y se pueden crear y manipular 
sin necesidad de importar bibliotecas.
Para tipos de matrices como listas y tuplas, el orden de los datos es muy importante para la recuperación. Los contenedores de 
datos, como los diccionarios, "asignan" datos mediante un sistema de recuperación de "clave-valor", donde la "clave" se asigna o 
conecta con el "valor". En los diccionarios, el orden de los datos no es importante. Para todos los contenedores de datos 
mutables, los conjuntos se pueden usar para recuperar todos los valores únicos dentro de un contenedor de datos, como una 
lista.
Indexación basada en cero
Los datos almacenados en matrices ordenadas, como listas y tuplas, a menudo necesitan acceso individual. Para 
acceder directamente a un elemento en particular dentro de una lista o tupla, debe pasar su número de índice a 
la matriz entre corchetes. Esto hace que sea importante recordar que la indexación y el conteo de Python 
comienzan en0en vez de1.Esto significa que el primer miembro de un grupo de datos está en el0posición de 
índice, y el segundo miembro está en el1posición del índice, y así sucesivamente:
> > > nuevalista = ['correr','perseguir','perro','ladrar']
> > > nueva lista[0] 
'ejecutar'
> > > nueva lista[2] 
'perro'
[ 14 ]
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html
https://docs.python.org/2/tutorial/floatingpoint.html

Otros materiales

Materiales relacionados

12 pag.
Python para principiantes

SIN SIGLA

User badge image

Yong Goh

88 pag.
Introduccion-a-Python

User badge image

pilarsimonwilliam

516 pag.
Python

User badge image

Alejandra Leon