Introducción
En ESRI Japón,Foro de la comunidad GISy otras oportunidades,se realizan sesiones para principiantes en ArcPy.En las encuestas de estas sesiones, a veces recibimos comentarios como "Quiero saber cómo consultar la referencia".Cómo consultar la referenciaPara responder a esta solicitud, este artículo presenta consejos para leer la referencia después de la introducción a ArcPy.
Este artículo se centra en la página de referencia deArcPyde la documentación.Si desea aprender los fundamentos generales de ArcPy, consulte
este material didáctico.Si desea aprender desde lo básico hasta lo avanzado con un instructor especializado, considere utilizar elentrenamiento.
¿Por qué es necesario consultar la referencia?
ArcPy es una biblioteca que permite automatizar operaciones de ArcGIS Pro mediante Python. Debido a que se puede acceder directamente a los scripts desde las herramientas de geoprocesamiento, hay muchos ejemplos de código disponibles y existen cursos de entrenamiento, en algunos casos se puede escribir scripts sin consultar la referencia. Sin embargo, cuando se desea combinar varios ejemplos para crear un flujo completo de procesos, personalizar detalladamente el procesamiento o diseño, o cuando no se puede usar el método para generar scripts desdeArcGIS Pro,puede resultar insuficiente. En esos casos, poder leer la referencia ayuda a resolver estos problemas y permite realizar procesos más ajustados a sus necesidades.
Descripción de la estructura de la pantalla
La siguiente imagen muestra la pantalla principal de la referencia Python de ArcGIS Pro, es decir, la referencia deArcPy.
Puede acceder al contenido relacionado con ArcPy desde esta página. Para las herramientas de geoprocesamiento, puede acceder desde la pestaña "Referencia de herramientas" junto a la pestaña Python.
A la izquierda de la página se muestran módulos clasificados por función además de "Funciones ArcPy" y "Clases ArcPy". A continuación presentamos algunos módulos comunes.
Módulo de acceso a datos
Contiene clases y funciones para acceder a datos.La función Describey los cursores son representativos.
Módulo de mapeo
Se utiliza para manipular archivos de proyecto (.aprx), mapas y capas. Es comúnmente usado para automatizar la creación y exportación de mapas. Este módulo es probablemente el más familiar para muchos usuarios.El tutorialexplica el flujo completo desde obtener el archivo del proyecto hasta exportar el mapa creado.
Módulo compartido
Se usa para subir contenido desde ArcGIS Pro a ArcGIS Online o ArcGIS Enterprise usando ArcPy. No solo permite compartir mapas y capas sino también publicar herramientas y servicios.
Además de módulos y herramientas de geoprocesamiento, se ofrecen diversas clases y funciones. Para más detalles consulteClases ArcPyyFunciones ArcPy.En las siguientes secciones veremos cómo leer las páginas de referencia para herramientas, funciones y clases en ArcPy.
Cómo leer la referencia de herramientas, clases y funciones
Cómo leer la referencia de herramientas
Veamos como ejemplo la página delBúsqueda por atributos.
La página de referencia de una herramienta está estructurada con los siguientes encabezados:
- Resumen
- Uso
- Parámetros
- Diálogo
- Python
- Entorno
- Información sobre licencias
- Temas relacionados
La descripción de la herramienta puede consultarse en Resumen y Uso. Al usar ArcPy se debe revisar el apartado Python dentro de Parámetros. Por ejemplo, para exportar entidades como en este caso, se muestra como en la figura siguiente.
Veamos en orden los números en la figura. Primero, el número 1 indica la sintaxis del uso. Para una herramienta generalmente tiene esta forma: "arcpy.alias_del_cuadro_de_herramientas.nombre_de_herramienta(parámetros)".
Luego, el número 2 muestra los nombres y descripciones de cada parámetro. Los parámetros con "{}" están marcados como "(opcional)". Esto significa que si es necesario se agregan; si no es necesario pueden omitirse para simplificar el script y hacerlo más claro.
Finalmente, el número 3 indica el tipo de dato requerido. Para buscar el tipo de dato de una variable durante un script puede usar la funcióntype.
Al ejecutar una herramienta devuelve un objeto Result como valor retornado.Result. Desde este objeto Result puede obtener información sobre la operación realizada por la herramienta. Puede obtener información sobre salidas o mensajes relacionados con la operación o usarla como parámetro en otra función.
Columna -Reducir parámetros innecesarios-
Por ejemplo, suponga que ejecuta la herramienta Búsqueda por atributos del geoprocesamiento y envía el resultado a la ventana Python.
La siguiente imagen muestra lo enviado a la ventana Python tras ejecutar la herramienta.
'Búsqueda por atributos' que estamos usando aquí tiene solo un parámetro obligatorio: in_layer_or_view.'where_clause' es el único parámetro opcional que no está establecido en None o valor predeterminado; todos los demás parámetros opcionales están configurados en None o valores predeterminados. Usar None o valores predeterminados no afecta el funcionamiento aunque no se escriban. Omitir parámetros innecesarios hace que el código sea más limpio como muestra la siguiente figura.
Código ejemplo
Al abrir la pestaña Python aparece un ejemplo del código debajo de los parámetros. Hay scripts para ejecutar principalmente en ventana Python y scripts independientes (standalone). Los primeros tienen parámetros innecesarios eliminados por lo que sirven como guía para crear códigos simples.
Cómo leer referencias para clases y funciones
Para clases las páginas están estructuradas con estos encabezados:
- Resumen
- Descripción
- Propiedades
- Resumen de métodos
- Métodos
- Sintaxis
- Valor retornado
- Código ejemplo
Para funciones es así:
- Resumen
・説明
・構文
・戻り値
・コードのサンプル
前述のツールの場合でも紹介していますが、「{}」がついているものは任意となるのでパラメーターやメソッドを入力する時に自分で調整します。
ここでは最もよく目にするクラスの 1 つである ArcGISProject クラスを見てみましょう。
冒頭からサマリーや説明が書かれていますが、その次にプロパティが現れます。このセクションでは各クラスに含まれるプロパティ、その説明とデータ タイプが書かれています。プロパティが別のクラスになる場合はリンクから辿ることもできます。
その次はクラスに含まれるメソッドの説明が現れます。メソッドについてはまず、「方法の概要」セクションで各メソッドの名前と短い概要が列挙され、その次の「方法」セクションで個別に詳しくメソッドの説明が書かれています。
サンプル コードはクラスや関数により数が異なります。例えば、ArcGISProject クラスでは 8 つのサンプル コードがあります。
リファレンスを見たい場面 -Python に送信機能が使えないとき-
ここまで ArcPy リファレンスの構成についてツールと「クラス・関数」に分けて確認しました。ArcPy でスクリプトを作成する際にはリファレンスを見ながら書いていくと思いますが、ArcGIS Pro を使用する場合はツールの履歴画面から「Python ウィンドウに送信」や「ノートブックに送信」を使用してスクリプトの一部を作る方もいると思います。
この手法はツールのみが対象で、ツールにないシンボル設定やエクスポートなどのコマンドはリファレンスを参照し自作する必要があります。例えば ArcPy を利用して ArcGIS Pro 上のフィーチャ レイヤーを ArcGIS Online にフィーチャ サービスとして公開する流れは一部の過程のみツールが対応しているのでリファレンスを見ながらスクリプトを自作する必要があります。次の章ではコマンドの一例としてシンボル変更のスクリプトを見ていきます。
リファレンスを見ながら短いスクリプトを作成してみよう
今回はレイヤーの見た目を変更したいと思います。色分けをするレンダラーと色を設定するシンボルを使って変更を行います。
# lyrs はレイヤーのリスト、lyr は一つ一つのレイヤーのオブジェクト
for lyr in lyrs:
if lyr.name == "放置車両":
sym = lyr.symbology
sym.updateRenderer("GraduatedColorsRenderer") # 等級色
sym.renderer.classificationField = "total" #分類するフィールド名
sym.renderer.classificationMethod = "Quantile" # Clasificación cuantílica
sym.renderer.breakCount = 5 # Clases
lyr.symbology = sym
Primero, accedemos al renderizador.Clase Layer de propiedad symbology para poder acceder al renderizador.
sym = lyr.symbology
Esta vez, como vamos a cambiar el símbolo,clase symbology ejecutaremos el método updateRenderer, pero veamos la referencia. Esta vez hay un parámetro obligatorio, que debe ser seleccionado de una lista de cadenas predefinidas. Como queremos un color graduado, ingresamos "GraduatedColorsRenderer". Para los cinco parámetros, consulte la lista debajo de la figura.
sym.updateRenderer("GraduatedColorsRenderer")
- GraduatedColorsRenderer→ Color graduado
- GraduatedSymbolsRenderer→ Símbolo graduado
- SimpleRenderer→ Símbolo único
- UnClassedColorRenderer→Estiramiento
- UniqueValueRenderer→ Valor único
Luego, para especificar el contenido del renderizador, accedemos a la propiedad renderer de la clase symbology.
sym.renderer
Aquí, podemos encontrar el objeto updateRenderer que especificamos en GraduatedColorsRenderer . Ahora veamos la referencia de la clase GraduatedColorsRenderer. Hay muchas propiedades configurables, pero aquí queremos especificar el campo para la clasificación por colores, el método de clasificación y el número de clases. Para esto configuramos las propiedades "classificationField", "classificationMethod" y "classBreaks". Como queremos clasificar por cuantiles, especificamos Quantile en "classificationMethod". Para métodos de clasificación, consulte métodos de clasificación de datos.
sym.renderer.classificationField = "total"
sym.renderer.classificationMethod = "Quantile"
sym.renderer.breakCount = 5
Finalmente, asignamos el objeto symbology configurado a la propiedad symbology de la clase Layer.
lyr.symbology = sym
Así hemos creado un script que muestra el flujo para cambiar símbolos configurando métodos y propiedades. Aquí especificamos "GraduatedColorsRenderer" y cambiamos símbolos usando el renderizador, pero también se puede modificar para usar "SimpleRenderer" y configurar un símbolo único usando la propiedad symbol.SimpleRenderer para configurar un símbolo único usando la propiedad symbol.
for lyr in lyrs:
if lyr.name == "<nombre_de_capa>":
sym = lyr.symbology
sym.updateRenderer("SimpleRenderer")
sym.renderer.symbol.applySymbolFromGallery("Terminal de autobuses")
sym.renderer.symbol.color = {"RGB" : [243,32,41,100]}
sym.renderer.symbol.outlineColor = {"RGB" : [0,0,0,100]}
sym.renderer.symbol.size = 21
lyr.symbology = sym
Si desea crear un símbolo como el anterior en un script, es necesario consultar la referencia de symbol.
Finalmente,
en este artículo explicamos cómo consultar la referencia de ArcPy mostrando la estructura y cómo leer las páginas de referencia. Puede ser útil al personalizar código de ejemplo para su entorno o al crear nuevos scripts. Esperamos que este artículo facilite un poco el acceso a ArcPy.
Introducción práctica a ArcPy
Si desea aprender ArcPy en su totalidad, consulte aquí.
Artículos del blog sobre ArcPy