Descarga la aplicación para disfrutar aún más
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
Compartir