Está en la página 1de 68

ArcPy

Curso:
INTRODUCCION PYTHON
PARA ARCGIS
Ing. Richard Flores
¿Qué aprenderemos?
¿Qué necesito saber antes de empezar?
¿Qué no aprenderemos?
Configuración de Python en Windows
Instalación y configuración de Pythonwin
Configuración del ArcGIS Desktop con Pythonwin
Pensar como un programador GIS
Pseudocódigo
Uso de módulos: arcpy, os, sys
Buenas prácticas usando comentarios
Variables: de entorno y locales
Uso de sangría (Indentation)
Funciones usando: if // if… else // if ... elif ... else
Iteradores: while // for
Construcción de caja de herramienta con parámetros.
¿Qué necesito saber antes
de empezar este curso?
No es necesario tener experiencia programando, pero si es importante tener
claro la secuencia para realizar un análisis espacial.

herramienta
entrada de salida
geoproceso

Aunque el nivel de conocimiento y experiencia sea


relativamente bajo, esto no va a ser impedimento al
aprendizaje en la creación de scripts con Python.
¿Qué no aprenderemos?
La programación, porque un lenguaje de programación nos
permite crear programas y softwares, construyendo los
componentes desde cero, los más conocidos: Delphi, Visual Basic,
Java, PHP, .NET.

En general, un lenguaje de scripting se refiere a la


automatización de ciertas funcionalidades dentro de otro
programa, mientras que un lenguaje de programación implica
el desarrollo de aplicaciones multifuncionales más sofisticadas.
Configurando variable
de entorno en Windows
Clic en el botón inicio y buscar Panel de control,
seleccionar Sistema o pulsar Tecla Windows + Pausa

1
seleccionar Configuración avanzada del 3
sistema 2
Seleccionar Path y clic en el botón
Clic en el Botón:
Editar
Variables de entorno
Agregar en Valor de la variable la ruta donde se ha instalado Python

Agregar al final colocando punto y coma


;C:\Python27\ArcGIS10.2\;C:\Python27\ArcGIS10.2\Scripts\

Clic en Aceptar, abrir la consola del DOS, escribir python y dar enter
Descarga, instalación y
configuración de PythonWin
Dirección para descargar PythonWin:

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/

1 Abrir un navegador y en la barra de direcciones


escribir lo siguiente:

2 Seleccionar versión 2.7

3 Descargar
Instalación de PythonWin
Doble clic en el archivo descargado:

Clic en siguiente:

Clic en ejecutar:

Clic en siguiente:
Configuración en PythonWin: IDE PythonWin

Abrir el PythonWin de la siguiente ruta:


C:\Python27\ArcGIS10.2\Lib\site-packages\pythonwin

Anclar PythonWin a la barra de tareas.


Configuración en PythonWin:
En la Barra de Menús, clic en View y seleccionar Options:

Configurar lo siguiente: Seleccionar Pestaña

Activar el Check Escribir 4 Escribir 30


Configurando las opciones de
geoprocesamiento en el ArcMap
En la Barra de Menús, clic en Geoprocessing y seleccionar
Geoprocessing Options:

Activar sobrescribir las salidas y en Editor y Debugger escribir la ruta del


PythonWin:
C:\Python27\ArcGIS10.2\Lib\site-packages\pythonwin\Pythonwin.exe
Visualización de la ventana de Python en ArcGIS for Desktop
La ventana de Python se abre haciendo clic en el botón de la ventana de Python en la barra de herramientas
estándar de ArcGIS for Desktop. Esta es una ventana flotante, por lo que puede cambiar el tamaño según sea
necesario y también acoplarlo en varios lugares de la interfaz de ArcMap.
Práctica
Con el shapefile SuperMercado.shp y utilizando el ArcToolbox crear un buffer a 2 km.

ArcToolbox ->
Analysis Tools ->
Proximity ->
Buffer

Ubicar la ruta donde se


Escribir: encuentra el shapefile.
SuperMercado_Buffer2.shp
al shapefile resultante Escribir 2 y seleccionar
Kilometers.
Abrir la ventana de
Python del ArcMap y
pegar; cambiar el 2 por 4,
dar enter y visualizar el
resultado.

Seleccionar de la ventana
de resultados, dar clic
derecho y seleccionar
Copy As Python Snippet
Pensar como un
programador GIS

“La programación automatiza los flujos de trabajo diarios”


Pseudocódigo
El pseudocódigo nos permite aislarnos del lenguaje sobre el que
finalmente deseamos programar y nos centra en la base lógica más pura
de la programación, lo que nos permite adentrarnos en el problema en sí
y en su resolución sin tener que preocuparnos de particularidades de
cada lenguaje y su entorno de ejecución.
En Pseudocódigo: Equiparación en Python:
1 # Esto es un comentario 1 #Esto es un comentario
2 nombreUsuario = "Pepe" 2 nombreUsuario = "Pepe"
3 nombreOtroUsuario = "Roberta“ 3 nombreOtroUsuario = "Roberta"

La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los


programas elaborados en Python parecen pseudocódigo. Por este motivo
se trata además de uno de los mejores lenguajes para comenzar a
programar.
ArcPy
¿Qué es Arcpy?
Representa un conjunto de elementos propios de ArcGIS que
complementa la biblioteca de Python, dando con ello acceso desde la
programación al manejo y explotación de información espacial.

Permite optimizar nuestros trabajos en cuanto a:

Administración de Manejo y conversión a


Análisis espaciales.
información geográfica. diferentes formatos.

Generación Acceso de lectura y


automatizada de mapas escritura a datos
y series cartográficas. alfanuméricos.
Importación de módulos
El módulo arcpy, es el paquete que se
import arcpy utiliza para acceder a las herramientas y
funciones SIG proporcionadas por ArcGIS.
Los módulos se
importan mediante el
uso de la instrucción
Import os El módulo os proporciona una forma de
interacción con el sistema operativo.
import
import sys El módulo sys provee acceso a funciones y
objetos mantenidos por el intérprete.
Buenas prácticas usando
comentarios
Es una buena práctica que al inicio de cada secuencia de
comandos debe tener una documentación, detallando:
1 autor 2 titulo del script 3 descripción general del 4 fecha de creación
procesamiento
1 proporcionado por el script
2
3
4

5
incluir comentarios en todo el script
5
para la descripción de secciones

Estas líneas de código comienzan con el signo numeral o almohadilla (#).


Variables
Una variable es una localidad de memoria que la computadora reserva
para almacenar datos ingresados por el usuario.
Las variables tienen un tipo de dato, un Los nombres de variable NO pueden comenzar
nombre y un valor. con números ni contener espacios.

nombre valor 5taEstacion = “estacion.shp”


lotes = “lotes.shp”
nuevas rutas = “rutasalternas.shp”
redVial = “vias.shp”
capaLotes = “lotes.shp”
operador de asignación
signo igual (=) capa_vias = “vias.shp”

Para comprobar un tipo de dato, se utiliza: type(variable)


Práctica
Variable de valor

Variable Variable
de datos proyectada
Variables
de
entorno

Variables
locales
Indentation
El intérprete de Python utiliza sangría para detectar bloques de código
de las sentencias: if, for, while, try, with, def. El principio de un
enunciado compuesto se define mediante el uso de dos puntos (:)

Indentation = 4 espacios ó 1 tab


Estructuras de control
ESTRUCTURAS DE
CONTROL

Condicionales Iterativas
Operadores de comparación Operadores lógicos
Símbolo Significado Operador Ejemplo Explicación Resultado

== Igual que and 5 == 7 and 7 < 12 False and True False


!= Distinto que and 9 < 12 and 12 > 7 True and True True
< Menor que
and 9 < 12 and 12 > 15 True and False False
> Mayor que
or 12 == 12 or 15 < 7 True or False True
<= Menor o igual que
or 7 > 5 or 9 < 12 True or True True
>= Mayor o igual que
xor 4 == 4 xor 9 > 3 True o True False

xor 4 == 4 xor 9 < 3 True o False True


Estructura de control: Condicional

La instrucción if / elif / else es la declaración de toma de decisión


primaria en Python y prueba una condición si es: Verdadera / Falsa.
if if else if elif else
if condicion: if condicion: if condicion 1:
bloque bloque 1 bloque 1
else: elif condicion 2:
bloque 2 bloque 2
else:
bloque 3
Estructura de control: Iterativa
Las iterativas (también llamadas cíclicas o bucles), nos permiten ejecutar
un mismo código, de manera repetida, mientras se cumpla una condición.
En Python se dispone de dos estructuras cíclicas: for y while
Bucle for Bucle while
En el caso de un bucle for, éste recorre uno a Su propósito es repetir un bloque
uno los elementos de una secuencia, tomando de código mientras una condición
sus valores y asignándolos a una variable. se mantenga verdadera.
miLista = [1,2,3,4,5] a,b = 0,5
for a in miLista: while a < b:
print a
print a
a += 1
Funciones
Funciones
Las funciones personalizadas en Python admiten argumentos en
su llamada y permiten devolver valores. Estas posibilidades
permiten crear funciones más útiles y fácilmente reutilizables.

def nombre_de_la_función(argumentos):
bloque_de_codigo
Práctica
Abrir el ArcMap y en el shapefile Supermercado.shp:
1. Rellenar el registro del campo “CertDC”, que tiene como UBIGEO “150103” con el texto “SI”
y colocar “NO” a los otros registros con una función escrita en Python.
Práctica
Seleccionar herramienta Llenar los campos solicitados
Práctica
Práctica
En el shapefile Supermercado.shp, por medio de un script de Python:
1. Adicionar el campo “Periodo”, tipo “double”
2. Rellenar el registro del campo “Periodo”, que tiene como UBIGEO diferente a “150103”
con el numero “2016” y colocar “2017” a los otros registros con una función escrita en
Python.
Práctica

import arcpy
arcpy.env.overwriteOutput=True
arcpy.env.workspace=r"D:\Curso Python\Capa"
Capa="SuperMercado.shp"
Campo="Periodo"
arcpy.AddField_management(Capa,Campo,"DOUBLE")

expresion = "rellenacampo(!UBIGEO!)"
bloquecodigo = """def rellenacampo(dato):
if dato=='150103':
return 2016
#print "script finalizado"
else:
return 2015"""
arcpy.CalculateField_management(Capa, Campo, expresion, "PYTHON_9.3", bloquecodigo)

Guardar con el nombre: Practica4.py

Correr el script.
Parámetros
import arcpy

arcpy.env.workspace = arcpy.GetParameterAsText(0)
in_featureclass = arcpy.GetParameterAsText(1)
out_workspace = arcpy.GetParameterAsText(2)

import arcpy, sys

#sys.argv[0] devuelve el nombre del archivo

arcpy.env.workspace = sys.argv[1]
in_featureclass = sys.argv[2]
out_workspace = sys.argv[3]
Práctica
Con el script generado
anteriormente, establecer
parámetros de entrada y salida y
que estos se ejecuten desde el
ArcMap.

CapaEntrada=arcpy.GetParameterAsText(0)
CapaSalida=arcpy.GetParameterAsText(1)
distancia=arcpy.GetParameterAsText(2)

arcpy.AddMessage("script finalizado“)

Guardar con el nombre: Practica5.py


Integrando un script de Python en ArcMap

Conectar a la carpeta Curso Python Crear una nueva carpeta Nombrar: Herramienta
Integrando un script de Python en ArcMap

Crear nueva caja de herramienta Adicionar Script Rellenar campos


Integrando un script de Python en ArcMap

Buscar la ruta del script Adicionar parámetros y finalizar Visualizar el resultado


ADD-INS DE PYTHON
Dirección para descargar Python Add-In Wizard:

https://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b

En la barra de direcciones escribir:

Seleccionar:
1 Desempaquetar 2 Doble click en addin_assistant.exe: 3 Ejecutar:
:
4 Crear carpeta donde se va a generar el instalador: 5 Rellenar campos y guardar:
6 Pestaña Add-In Contens, seleccionar TOOLBARS y
dar click derecho: 7 Dar un título a la barra de herramienta:
8 Click derecho en la barra de herramienta creada y 9 Rellenar campos del botón, guardar y abrir la
seleccionar New Button: carpeta:
10 Doble click en makeaddin.py: 13 Instalación satisfactoria:
12 Instalar Add-In:

14 Verificar en el ArcMap:
11 Doble click en Herramienta.esriaddin
Práctica final:

Generar una barra de herramientas, que contenga cinco botones y realice lo siguiente:

Botón 1: Mostrar un mensaje.

Botón 2: Llamar a la herramienta del buffer personalizado.

Botón 3: Que active las capas de un mapa.

Botón 4: Que desactive las capas de un mapa.

Botón 5: Llamar a la herramienta que genera id masivo.

También podría gustarte