Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
10,7
10,6
10,5
10,4
10,3
Complejidad
Principiante
Requisito de datos:
Utilizar datos propios
Este tutorial lo guía a través de algunos flujos de trabajo arcpy.mapping muy comunes e introduce algunos conceptos
importantes en el camino. Su objetivo es ayudar a los usuarios que son completamente nuevos en Python scripting y
arcpy.mapping. Los pasos son lo suficientemente genéricos como para funcionar con cualquier dato y todos los niveles
de licencia.
No un:
El único requisito es que tenga un archivo de capa de características ( .lyr ) antes de comenzar el tutorial.
Los pasos a continuación presentan una descripción general de muy alto nivel de arcpy.mapping. A lo largo del
tutorial, hay enlaces a temas de ayuda detallados que proporcionan mucha más información sobre los conceptos
involucrados, y en casi todos los casos, los temas incluyen fragmentos de código de muestra adicionales.
Ventana de Python
El lugar más fácil para comenzar a aprender arcpy.mapping es en la ventana de Python . La ventana de Python es parte
del marco de ArcMap y proporciona autocompletado para que pueda leer fácilmente los nombres y el orden de los
parámetros de la función. Los pasos a continuación le muestran cómo configurar la ventana de Python para una
experiencia satisfactoria para el usuario final y también para hacer coincidir las capturas de pantalla a lo largo de este
documento.
Si es la primera vez que abre la ventana de Python , aparece flotando sobre la aplicación. Los siguientes pasos
son acoplar la ventana de Python y modificar la ubicación de la ayuda.
3. Haga clic en la barra de título de la ventana de Python y mantenga presionado el botón izquierdo del mouse.
4. Arrastre la ventana de Python al ancla de acoplamiento ubicada en la parte inferior de la aplicación ArcMap y
suelte el botón.
5. Haga clic en el panel de código (con los >>> caracteres) del pitón ventana. Debería ver que aparece texto de
ayuda en el panel de ayuda a la derecha.
6. Haga clic con el botón derecho en el panel de código y elija Colocación de ayuda> Inferior . Ahora la ayuda
debería aparecer debajo del panel de código. Es posible que deba ajustar el divisor entre los dos paneles para
que haya suficiente espacio para escribir código y ver la ayuda.
7. Ahora escriba la siguiente declaración (tenga cuidado, Python distingue entre mayúsculas y minúsculas):
>>> arcpy.mapping.ExportToPDF(
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 1/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
La ventana de Python debería ser similar al gráfico a continuación. Se resalta el primer parámetro requerido,
llamado map_document . Si ingresa una coma, el segundo parámetro queda resaltado. Solo hay dos parámetros
obligatorios: map_document y out_pdf . Los parámetros opcionales están entre corchetes: {} .
8. Haga clic derecho en el panel de código y haga clic en Borrar todo para borrar el panel de código.
Hay dos formas de hacer referencia a un documento de mapa. El primero es hacer referencia a él en el disco
proporcionando una ruta al archivo .mxd. Si está creando un script que se ejecutará fuera del entorno de ArcGIS, debe
hacer referencia a un documento de mapa utilizando su ruta. La segunda forma es hacer referencia al documento de
mapa que está cargado actualmente en la aplicación ArcMap (en este caso, su untitled.mxd). Al trabajar en la ventana
de Python dentro de ArcMap, es conveniente hacer referencia al documento de mapa cargado actualmente porque los
cambios realizados en él se pueden ver directamente en la aplicación. Los siguientes pasos harán referencia al
documento de mapa actualmente cargado en ArcMap.
La función MapDocument devuelve una referencia de objeto MapDocument a una variable llamada mxd . La
cadena CURRENT es una palabra clave utilizada para hacer referencia al documento de mapa cargado
actualmente. En lugar de ACTUAL , aquí es donde también podría proporcionar una ruta al documento de mapa.
2. En la ventana de Python , escriba lo siguiente:
>>> mxd.
Después de escribir el punto, debería ver una larga lista de métodos y propiedades disponibles para el objeto
MapDocument .
3. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado:
El objeto MapDocument tiene una propiedad llamada autor . Simplemente establece su valor en una cadena.
4. En ArcMap, haga clic en Archivo> Propiedades del documento de mapa .
Debería ver que la propiedad del autor está establecida en su cadena. Acaba de interactuar directamente con el
objeto MapDocument a través de la variable llamada mxd. Hay muchos otros métodos y propiedades en el
objeto MapDocument . Ahora guardará sus cambios.
5. Haga clic en Cancelar cuando haya terminado con el cuadro de diálogo Propiedades del documento de mapa .
6. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado:
>>> mxd.save()
Debido a que es un documento de mapa no guardado, aparece un cuadro de diálogo que le solicita que
proporcione una ruta y un nombre de archivo. El método save () no tiene ningún parámetro, pero debido a que
es un método, aún debe incluir los paréntesis de apertura / cierre. De manera realista, trabajaría con un
documento de mapa ya existente y no necesitaría lidiar con un cuadro de diálogo emergente para guardar. Para
verificar la ubicación del lugar donde se guardó el documento de mapa, intente lo siguiente:
7. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado:
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 2/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
>>> arcpy.mapping.AddLayer(
El autocompletado muestra que hay dos parámetros necesarios. El primero es una referencia a un marco de
datos en un documento de mapa. El segundo es una referencia a la capa que desea agregar. Esto puede ser una
capa en un documento de mapa o un archivo de capa. El tercer parámetro es opcional y controla la colocación
de la capa en la tabla de contenido. Debido a que es la primera y única capa, ignorará el tercer parámetro e irá
con su valor predeterminado.
Antes de poder agregar la capa, debe hacer referencia a los objetos apropiados. Primero, hará referencia al
marco de datos.
2. En la ventana de Python , retroceda para eliminar la función AddLayer , escriba lo siguiente y presione ENTRAR
cuando haya terminado:
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 3/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
No un:
Para los siguientes pasos, debe ubicar un archivo de capa existente. Si no tiene uno, deberá crear uno.
3. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado. La ruta que
proporcione probablemente será diferente al ejemplo a continuación.
En el paso anterior, se creó una referencia a un archivo de capa existente, y esa referencia se almacena en una
variable llamada lyrFile .
Observe cómo la ruta tiene una pequeña r colocada frente a la cadena. Este es un personaje especial en Python
que significa raw . Significa interpretar la cadena como es e ignorar cualquier otro carácter especial dentro de la
cadena. Se usó la pequeña r porque la ruta tiene barras invertidas dentro de la cadena. Las barras invertidas en
Python también son caracteres especiales. Por ejemplo, \ t dentro de una cadena se convierte en una pestaña y \
n se convierte en una nueva línea. En el ejemplo anterior, no desea que se usen caracteres especiales; quieres la
cadena literal sin procesar. Hay otras dos formas equivalentes de escribir la misma ruta en Python. Primero, use
barras diagonales (por ejemplo, "C: /Project/States.lyr") Python no intenta interpretar barras diagonales, y son un
estándar multiplataforma. En segundo lugar, utilice barras invertidas dobles (por ejemplo, "C: \\ Project \\
Lakes.lyr" ). La primera barra invertida cancela la segunda. Es importante recordar la pequeña técnica r porque
cuando copia las rutas del sistema en una plataforma Windows, se incluyen barras invertidas.
Se han creado todas las referencias variables necesarias. A continuación, la función AddLayer se usará para
agregar su archivo de capa al documento de mapa actual.
4. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado:
Su capa debería haberse agregado a la tabla de contenido y vista de datos y su ventana de Python debería ser
similar al gráfico a continuación:
1. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado. La ruta que
proporcione probablemente será diferente al ejemplo a continuación.
Hay muchos parámetros que coinciden con la misma configuración disponible en ArcMap. Solo se requieren
dos parámetros: map_document y out_pdf .
Se debería haber creado un documento PDF en la ubicación que especificó, y la ventana de Python debería ser
similar al gráfico a continuación:
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 4/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
>>> lyrFile.
Después de ingresar el punto, observe todas las diferentes propiedades y métodos en el objeto Layer . Con la
variable lyrFile , podría cambiar estas propiedades en el documento de mapa y, cuando llame al método save () ,
guardaría los cambios en el archivo de capa ( .lyr ) en el disco.
No todas las propiedades de capa posibles están disponibles en el objeto Capa , solo aquellas que son más
comunes para escenarios de automatización de mapas. Se pueden modificar muchas más propiedades creando
esas propiedades en un archivo de capa y utilizando la función arcpy.mapping UpdateLayer .
No siempre va a agregar archivos de capa. La mayoría de las veces, su documento de mapa ya tendrá capas
existentes. En estos próximos pasos, volverá a hacer referencia a la capa como si ya estuviera en el documento
de mapa. Hacer referencia a una capa en un documento de mapa es muy similar a hacer referencia a un marco
de datos.
2. En la ventana de Python , retroceda sobre el texto actual, escriba lo siguiente y presione ENTRAR :
La función ListLayers requiere que proporcione una referencia de documento de mapa. Tiene dos parámetros
adicionales: uno para realizar una búsqueda con comodines y el segundo para especificar un marco de datos.
Debido a que solo tiene una capa y un marco de datos, no es necesario proporcionar los otros parámetros.
Nuevamente, el valor del índice [0] se requiere al final de la instrucción para que se devuelva un objeto de capa
en lugar de un objeto de lista de Python.
Con la nueva variable lyr , actualizará algunas propiedades de capa.
3. En la ventana de Python , escriba las dos líneas siguientes y presione ENTRAR después de cada una:
No verá un cambio de inmediato. No todos los cambios de propiedad o métodos actualizan automáticamente la
aplicación. Esto es así por diseño, por lo que la aplicación no tiene que actualizarse constantemente. Al usar
CURRENT para hacer referencia al documento de mapa actualmente cargado dentro de ArcMap, a veces
necesita actualizar la tabla de contenido o la vista activa (vista de datos o vista de diseño).
4. En la ventana de Python , escriba las dos líneas siguientes y presione ENTRAR después de cada una:
>>> arcpy.RefreshTOC()
>>> arcpy.RefreshActiveView()
No un:
Si ejecuta scripts independientes fuera de ArcMap, estas funciones adicionales no son necesarias.
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 5/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
1. En la ventana de Python , escriba las siguientes tres líneas, presione ENTRAR después de cada una:
1. En la ventana de Python , escriba lo siguiente y presione ENTRAR cuando haya terminado. La ruta que
proporcione probablemente será diferente al ejemplo a continuación.
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 6/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
Esta parte del tutorial simulará la creación de un informe de varias páginas. Primero creará un nuevo documento PDF y
luego agregará los PDF que creó en los pasos anteriores. Imagine que esos documentos PDF son simplemente los
documentos individuales que forman un libro de mapas. Quizás Doc1.pdf podría ser un PDF de varias páginas que
represente una página de título, una tabla de contenido, etc. El segundo documento PDF podría ser el resultado de
exportar todas sus páginas de mapas de páginas controladas por datos a un solo PDF de varias páginas.
Una variable llamada PDFdoc hace referencia a un objeto PDFDocument en la memoria. No existirá en el disco
hasta que guarde y cierre el documento.
Los siguientes pasos son agregar las páginas apropiadas.
2. En la ventana de Python , escriba las siguientes tres líneas, presione ENTRAR después de cada una:
>>> PDFdoc.appendPages(r"C:\Project\Doc1.pdf")
>>> PDFdoc.appendPages(r"C:\Project\Doc2.pdf")
>>> PDFdoc.saveAndClose()
Las dos primeras líneas agregan cada PDF al documento PDF recién creado. La última línea es la que confirma
los cambios y crea el PDF final en el disco.
Se debería haber creado un documento PDF en la ubicación que especificó, y la ventana de Python debería ser
similar al gráfico a continuación:
Temas relacionados
Introducción a arcpy.mapping
Ha completado un flujo de trabajo muy simple pero común utilizando arcpy.mapping. Los siguientes pasos son aplicar
estos flujos de trabajo contra sus propios documentos de mapa y capas. También tómese un tiempo y profundice en
los temas de ayuda de arcpy.mapping. Hay cientos de pequeñas muestras de código al final de cada tema que se
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 7/8
29/11/2019 Introducción al tutorial de arcpy.mapping — Ayuda | ArcGIS for Desktop
pueden copiar y pegar fácilmente en la ventana de Python . También realice una búsqueda dentro del Centro de
recursos en arcpy.mapping para encontrar aplicaciones más avanzadas de arcpy.mapping.
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm 8/8
29/11/2019 Pautas para arcpy.mapping — Ayuda | ArcGIS for Desktop
10,7
10,6
10,5
10,4
10,3
Esta sección destaca algunas pautas importantes para trabajar con el módulo arcpy.mapping. También proporciona
información sobre el diseño de la API arcpy.mapping y sugiere algunas estrategias para diferentes escenarios.
Los siguientes son solo algunos ejemplos simples de cómo se puede usar arcpy.mapping:
No un:
Es posible realizar cambios en documentos de mapas o archivos de capa existentes y luego guardar los
cambios en un nuevo archivo utilizando el método saveACopy en los objetos MapDocument o Layer .
La segunda técnica es usar la palabra clave CURRENT como parámetro de entrada para la función MapDocument. Esta
técnica solo funciona desde una aplicación ArcMap porque el objeto MapDocument hace referencia al documento de
mapa que está cargado actualmente en la aplicación ArcMap. Usar CURRENT es muy útil cuando se prueban y
aprenden rápidamente las capacidades de scripting y la sintaxis de comandos dentro de la ventana de Python . Puede
comenzar aprendiendo la sintaxis en la ventana de Python , luego comenzar a pegar esas líneas de código en un script
más permanente guardado en el disco.
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/guidelinesforarcpymapping.htm 1/3
29/11/2019 Pautas para arcpy.mapping — Ayuda | ArcGIS for Desktop
Las herramientas de script que usan la palabra clave ACTUAL deben ejecutarse desde ArcMap (ya sea desde un menú
personalizado o desde la ventana Catálogo ). Las herramientas de script que usan CURRENT no se ejecutarán
correctamente si se ejecutan desde la aplicación ArcCatalog. Por este mismo motivo, si una herramienta de secuencia
de comandos tiene una secuencia de comandos de validación que incluye una referencia a ACTUAL, puede producirse
un error si intenta editar la secuencia de comandos de validación desde ArcCatalog. Asegúrese de editar el código de
validación de la herramienta de secuencia de comandos desde la ventana Catálogo de ArcMap.
Para utilizar la palabra clave ACTUAL dentro de una herramienta de secuencia de comandos, el procesamiento en
segundo plano debe estar deshabilitado. El procesamiento en segundo plano ejecuta todos los scripts como si se
estuvieran ejecutando como scripts independientes fuera de una aplicación ArcGIS, y por esta razón, CURRENT no
funcionará con el procesamiento en segundo plano habilitado. Hay una nueva opción de herramienta de secuencia de
comandos llamada Ejecutar siempre en primer plano que garantiza que una herramienta de secuencia de comandos se
ejecutará en primer plano, incluso si el procesamiento en segundo plano está habilitado.
Un escenario común es crear un documento de mapa de plantilla sin capas, luego usar las funciones arcpy.mapping
AddLayer , AddLayerToGroup o InsertLayer para agregar capas al documento de mapa. Si un elemento de leyenda se
crea previamente para agregar automáticamente nuevos elementos a la leyenda, los elementos de leyenda aparecerán
automáticamente.
Otro escenario común involucra libros de mapas con páginas enfrentadas. Las páginas izquierda y derecha incluyen
diferentes desplazamientos para hacer espacio para el enlace. Este escenario incluye tener dos documentos de mapa:
uno para las páginas de la izquierda y otro para las páginas de la derecha. La lógica de scripts Arcpy.mapping se utiliza
para reunir todas las páginas individuales en un PDF de varias páginas de salida final. Consulte Crear un libro de mapas
con páginas enfrentadas que cubra este escenario en detalle e incluya un código de muestra arcpy.mapping.
mxd = arcpy.mapping.MapDocument("CURRENT")
riverLyr = arcpy.mapping.ListLayers(mxd, "Rivers")[0]
titleTxt = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", "title")[0]
Los elementos de diseño de página tienen una propiedad separada llamada Nombre del elemento . Esto se puede
configurar en la pestaña Tamaño y Posición dentro del cuadro de diálogo Propiedades del elemento .
Los marcos de datos, las capas y las tablas no tienen una propiedad de nombre separada como con los elementos de
diseño de página. Su nombre se basa en la etiqueta que se ve en la tabla de contenido. Idealmente, todos los marcos
de datos, capas y tablas dentro de un solo documento de mapa recibirían un nombre único. Si hay casos en los que
necesita tener nombres duplicados pero necesita poder aislar un elemento de otro, deberá crear el documento de
mapa para que pueda distinguirse utilizando otras propiedades.
El siguiente código muestra un ejemplo de cómo las capas con el mismo nombre ' Calles ' en el mismo marco de datos
' Mapas del condado ' pueden aislarse aún más utilizando la propiedad de descripción del objeto Capa .
mxd = arcpy.mapping.MapDocument("C:/Project/Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "County Maps")[0]
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/guidelinesforarcpymapping.htm 2/3
29/11/2019 Pautas para arcpy.mapping — Ayuda | ArcGIS for Desktop
En el siguiente ejemplo, el diseño resultante mostrará una barra de escala de estilo diferente según la escala del marco
de datos actual. Si la escala es mayor que 1: 25,000, las unidades de la barra de escala estarán en metros. Si la escala es
menor o igual a 1: 25,000, las unidades de la barra de escala estarán en kilómetros.
mxd = arcpy.mapping.MapDocument("C:/Project/Project.mxd")
m_scale = arcpy.mapping.ListLayoutElements(mxd, "MAPSURROUND_ELEMENT", "m scale bar")[0]
km_scale = arcpy.mapping.ListLayoutElements(mxd, "MAPSURROUND_ELEMENT", "km scale bar")[0]
df = arcpy.mapping.ListDataFrames(mxd, "Main DF")[0]
if df.scale < 25000:
m_scale.elementPositionX = 5 #on the page
km_scale.elementPostitionX = 15 #off the page
else:
m_scale.elementPositionX = 15 #off the page
km_scale.elementPostitionX = 5 #on the page
Temas relacionados
Introducción a arcpy.mapping
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/guidelinesforarcpymapping.htm 3/3
29/11/2019 Lista alfabética de clases arcpy.mapping — Ayuda | ArcGIS for Desktop
10,7
10,6
10,5
10,4
10,3
Las clases arcpy.mapping proporcionan acceso a varios métodos y propiedades para los diferentes tipos de objetos
encontrados en un documento de mapa ( .mxd ) o un archivo de capa ( .lyr ). Este documento está destinado a servir
como referencia rápida. Para obtener información más específica, use los enlaces para saltar a las páginas de ayuda
individuales.
clases arcpy.mapping
DataDrivenPages
Métodos
exportToPDF (out_pdf, {page_range_type}, {page_range_string}, {multiple_files}, {resolution},
{image_quality}, {image_quality}, {compress_vectors}, {image_compression}, {picture_symbol},
{convert_markers}, {embed_fonts}, {layers_attributes }, {georef_info}, {jpeg_compression_quality},
{show_selection_symbology})
getPageIDFromName (page_name)
printPages ({printer_name}, {page_range_type}, {page_range_string}, {out_print_file},
{show_selection_symbology})
refrescar()
Propiedades
currentPageID —Read / Write; Largo
dataFrame : solo lectura ; Objeto DataFrame
indexLayer : solo lectura ; Objeto de capa
pageCount : solo lectura ; Largo
pageNameField : solo lectura ; Objeto de campo GP
pageRow : solo lectura ; Objeto GP Row
páginas seleccionadas : solo lectura; Lista de Python de números de índice
Marco de datos
Métodos
panToExtent (extensión)
zoomToSelectedFeatures ()
Propiedades
créditos —Leer / Escribir; Cuerda
descripción —Leer / Escribir; Cuerda
displayUnits —Read / Write; Cuerda
elementHeight: lectura / escritura; Doble
elementPositionX —Leer / escribir; Doble
elementPositionY —Leer / Escribir; Doble
elementWidth —Leer / escribir; Cuerda
extensión —Leer / Escribir; Objeto GP Extent
Transformaciones geográficas: lectura / escritura; Lista de cadenas de Python
mapUnits : solo lectura ; Cuerda
nombre —Leer / Escribir; Cuerda
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistofclasses.htm 1/6
29/11/2019 Lista alfabética de clases arcpy.mapping — Ayuda | ArcGIS for Desktop
DataFrameTime
Métodos
resetTimeExtent ()
Propiedades
currentTime: lectura / escritura; Objeto de fecha y hora de Python
endTime —Leer / Escribir; Objeto de fecha y hora de Python
startTime —Leer / Escribir; Objeto de fecha y hora de Python
timeStepInterval : solo lectura ; Objeto timedelta de Python
timeWindow —Leer / Escribir; Doble
timeWindowUnits —Read / Write; Cuerda
GraduadoColoresSimbología
Métodos
reclasificar()
Propiedades
classBreakDescriptions —Read / Write; Lista de cadenas de Python
classBreakLabels —Leer / Escribir; Lista de cadenas de Python
classBreakValues —Read / Write; Lista de cadenas de Python
normalización —Leer / Escribir; Cuerda
numClasses —Leer / Escribir; Largo
valueField: lectura / escritura; Cuerda
Métodos
reclasificar()
Propiedades
classBreakDescriptions —Read / Write; Lista de cadenas de Python
classBreakLabels —Leer / Escribir; Lista de cadenas de Python
classBreakValues —Read / Write; Lista de cadenas de Python
normalización —Leer / Escribir; Cuerda
numClasses —Leer / Escribir; Largo
valueField: lectura / escritura; Cuerda
GraphicElement
Métodos
clon ({sufijo})
borrar()
Propiedades
elementHeight: lectura / escritura; Doble
elementPositionX —Leer / escribir; Doble
elementPositionY —Leer / Escribir; Doble
elementWidth —Leer / escribir; Cuerda
isGroup : solo lectura; Booleano
nombre —Leer / Escribir; Cuerda
tipo : solo lectura; Cuerda
LabelClass
Propiedades
className —Leer / Escribir; Cuerda
expresión —Leer / Escribir; Cuerda
showClassLabels —Leer / Escribir; Booleano
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistofclasses.htm 2/6
29/11/2019 Lista alfabética de clases arcpy.mapping — Ayuda | ArcGIS for Desktop
Capa
Métodos
findAndReplaceWorkspacePath (find_workspace_path, replace_workspace_path, {validar})
getExtent ({symbolized_extent})
getSelectedExtent ({symbolized_extent})
getSelectionSet ()
replaceDataSource (workspace_path, workspace_type, dataset_name, {validate})
salvar()
saveACopy (nombre_archivo, {versión})
setSelectionSet (método, oidList)
apoyos (propiedad de capa)
updateLayerFromJSON (json_layer_definition)
Propiedades
brillo —Leer / Escribir; Largo
contraste —Leer / Escribir; Largo
créditos —Leer / Escribir; Cuerda
datasetName : solo lectura ; Cuerda
dataSource : solo lectura ; Cuerda
definitionQuery —Leer / escribir; Cuerda
descripción —Leer / Escribir; Cuerda
isBroken : solo lectura ; Booleano
isFeatureLayer : solo lectura ; Booleano
isGroupLayer : solo lectura ; Booleano
isNetworkAnalystLayer : solo lectura ; Booleano
isRasterizingLayer : solo lectura ; Booleano
isRasterLayer : solo lectura ; Booleano
isServiceLayer —Lee -only; Booleano
labelClasses —Leer / Escribir; Lista de objetos LabelClass
longName : solo lectura ; Cuerda
maxScale: lectura / escritura; Doble
minScale —Leer / Escribir; Doble
nombre —Leer / Escribir; Cuerda
serviceProperties : solo lectura ; Diccionario de conjuntos de propiedades
showLabels —Leer / Escribir; Booleano
simbología : solo lectura; Objeto de simbología de capa
symbologyType : solo lectura; Cuerda
tiempo : solo lectura; Objeto de tiempo de capa
transparencia: lectura / escritura; Largo
visible —Leer / Escribir; Booleano
workspacePath : solo lectura; Cuerda
LayerTime
Propiedades
ahorro de luz diurna : solo lectura; Booleano
displayDataCumulatively : solo lectura ; Booleano
endTime : solo lectura; Objeto de fecha y hora de Python
endTimeField : solo lectura ; Cuerda
isTimeEnabled : solo lectura ; Booleano
startTime : solo lectura; Objeto de fecha y hora de Python
startTimeField : solo lectura; Cuerda
timeFormat : solo lectura ; Cuerda
timeOffset : solo lectura ; Objeto timedelta de Python
timeStepInterval : solo lectura ; Objeto timedelta de Python
timeZone : solo lectura ; Cuerda
LegendElement
Métodos
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistofclasses.htm 3/6
29/11/2019 Lista alfabética de clases arcpy.mapping — Ayuda | ArcGIS for Desktop
ajustarColumnCount (column_count)
listLegendItemLayers ()
removeItem (legend_item_layer, {index})
updateItem (legend_item_layer, {legend_item_style_item}, {preserve_item_sizes}, {use_visible_extent},
{show_feature_count}, {use_ddp_extent}, {index})
Propiedades
autoAdd —Leer / Escribir; Booleano
elementHeight: lectura / escritura; Doble
elementPositionX —Leer / escribir; Doble
elementPositionY —Leer / Escribir; Doble
elementWidth —Leer / escribir; Cuerda
isOverflowing : solo lectura ; Booleano
artículos : solo lectura; Lista de cadenas de Python
nombre —Leer / Escribir; Cuerda
parentDataFrameName : solo lectura ; Cuerda
título —Leer / Escribir; Cuerda
tipo : solo lectura; Cuerda
MapDocument
Métodos
deleteThumbnail ()
findAndReplaceWorkspacePaths (find_workspace_path, replace_workspace_path, {validar})
makeThumbnail ()
replaceWorkspaces (old_workspace_path, old_workspace_type, new_workspace_path,
new_workspace_type, {validar})
salvar()
saveACopy (nombre_archivo, {versión})
Propiedades
activeDataFrame : solo lectura ; Objeto DataFrame
activeView: lectura / escritura; Cuerda
autor —Leer / Escribir; Cuerda
créditos : solo lectura; Cuerda
dataDrivenPages : solo lectura ; Objeto DataDrivenPages
dateExported : solo lectura ; Objeto de fecha y hora de Python
datePrinted : solo lectura ; Objeto de fecha y hora de Python
dateSaved : solo lectura ; Objeto de fecha y hora de Python
descripción —Leer / Escribir; Cuerda
filePath : solo lectura; Cuerda
hyperlinkBase —Leer / Escribir; Cuerda
isDDPEnabled : solo lectura ; Booleano
pageSize : solo lectura; Python llamado tupla
relativePaths —Leer / escribir; Booleano
resumen —Leer / Escribir; Cuerda
etiquetas —Leer / Escribir; Cuerda
título —Leer / Escribir; Cuerda
MapsurroundElement
Propiedades
elementHeight: lectura / escritura; Doble
elementPositionX —Leer / escribir; Doble
elementPositionY —Leer / Escribir; Doble
elementWidth —Leer / escribir; Cuerda
nombre —Leer / Escribir; Cuerda
parentDataFrameName : solo lectura ; Cuerda
tipo : solo lectura; Cuerda
PDFDocument
Métodos
appendPages (pdf_path, {input_pdf_password})
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistofclasses.htm 4/6
29/11/2019 Lista alfabética de clases arcpy.mapping — Ayuda | ArcGIS for Desktop
PictureElement
Propiedades
elementHeight: lectura / escritura; Doble
elementPositionX —Leer / escribir; Doble
elementPositionY —Leer / Escribir; Doble
elementWidth —Leer / escribir; Cuerda
nombre —Leer / Escribir; Cuerda
sourceImage —Leer / Escribir; Cuerda
tipo : solo lectura; Cuerda
RasterClassifiedSymbology
Métodos
reclasificar()
Propiedades
classBreakDescriptions —Read / Write; Lista de cadenas de Python
classBreakLabels —Leer / Escribir; Lista de cadenas de Python
classBreakValues —Read / Write; Lista de cadenas de Python
excludedValues —Leer / escribir; Cuerda
normalización —Leer / Escribir; Cuerda
numClasses —Leer / Escribir; Largo
valueField: lectura / escritura; Cuerda
StyleItem
Propiedades
itemName : solo lectura ; Cuerda
itemCategory : solo lectura ; Cuerda
styleFolderName —Leer solo; Cuerda
TableView
Métodos
findAndReplaceWorkspacePath (find_workspace_path, replace_workspace_path, {validar})
getSelectionSet ()
replaceDataSource (workspace_path, workspace_type, dataset_name, {validate})
setSelectionSet (método, oidList)
Propiedades
datasetName : solo lectura ; Cuerda
dataSource : solo lectura ; Cuerda
definitionQuery —Leer / escribir; Cuerda
isBroken : solo lectura ; Booleano
nombre —Leer / Escribir; Cuerda
workspacePath : solo lectura; Cuerda
TextElement
Métodos
clon ({sufijo})
borrar()
Propiedades
elementHeight: lectura / escritura; Doble
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistofclasses.htm 5/6
29/11/2019 Lista alfabética de clases arcpy.mapping — Ayuda | ArcGIS for Desktop
UniqueValuesSymbology
Métodos
addAllValues ()
Propiedades
classDescriptions —Leer / Escribir; Lista de cadenas de Python
classLabels —Leer / Escribir; Lista de cadenas de Python
classValues —Leer / Escribir; Lista de cadenas de Python
showOtherValues —Leer / Escribir; Booleano
valueField: lectura / escritura; Cuerda
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistofclasses.htm 6/6
29/11/2019 Lista alfabética de funciones arcpy.mapping — Ayuda | ArcGIS for Desktop
10.7
10.6
10.5
10.4
10.3
La siguiente es una lista de cada una de las funciones arcpy.mapping junto con sus parámetros de entrada requeridos y
opcionales. Este documento está destinado a servir como referencia rápida. Para obtener información más específica
sobre cada parámetro (tipo de datos, valor predeterminado, etc.), haga clic en el enlace correspondiente.
funciones arcpy.mapping
AddLayer (data_frame, add_layer, {add_position})
AnalyzeForMSD (map_document)
AnalyzeForSD (sddraft)
Capa (lyr_file_path)
ListBrokenDataSources (map_document_or_layer)
ListPrinterNames ()
MapDocument (mxd_path)
PDFDocumentCreate (pdf_path)
TableView (table_view_data_source)
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/alphabeticallistoffunctions.htm 2/2
29/11/2019 Lista alfabética de constantes arcpy.mapping — Ayuda | ArcGIS for Desktop
10.7
10.6
10.5
10.4
10.3
A continuación se muestra una lista de constantes de parámetros arcpy.mapping. Muchos de estos parámetros se usan
con múltiples funciones y / o métodos de arcpy.mapping. La mayoría de estos parámetros son opcionales (los que
están entre corchetes ({})) y, cuando corresponde, los valores predeterminados se indican junto al valor. Este
documento está destinado a servir como referencia rápida. Para obtener información más específica sobre el
significado de los valores de los parámetros, consulte la documentación de la función o el método utilizando los
enlaces que se encuentran junto al nombre del parámetro.
constantes arcpy.mapping
{add_position}: utilizado por AddLayer y AddLayerToGroup .
"AUTO_ARRANGE" -Default
"FONDO"
"PARTE SUPERIOR"
"CMYK"
"RGB": predeterminado
"1-BIT_MONOCHROME_MASK"
"1-BIT_MONOCHROME_THRESHOLD"
"24-BIT_TRUE_COLOR": predeterminado para todas las funciones excepto ExportToGIF
"8-BIT_GRAYSCALE": predeterminado para ExportToGIF
"8-BIT_PALETTE"
"ADMINISTER_GIS_SERVICES"
"PUBLISH_GIS_SERVICES"
"USE_GIS_SERVICES"
"TODOS"
"DEFINITION_QUERY"
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/constantslist.htm 1/6
29/11/2019 Lista alfabética de constantes arcpy.mapping — Ayuda | ArcGIS for Desktop
"GRADO"
"SELECCIONADO"
"USE_RLF" -Default
"Centímetros"
"Grados decimales"
"Decimales GradosMinutos"
"DecimalDegreesSeconds"
"Decímetros"
"Pies"
"Pulgadas"
"Kilómetros"
"Metros"
"MGRS"
"Miles"
"Milímetros"
"Millas náuticas"
"Puntos"
"Desconocido"
"USNationalGrid"
"UTM"
"Yardas"
"DATAFRAME_ELEMENT"
"GRAPHIC_ELEMENT"
"LEGEND_ELEMENT"
"MAPSURROUND_ELEMENT"
"PICTURE_ELEMENT"
"TEXT_ELEMENT"
"AES_V1"
"AES_V2"
"RC4": predeterminado
"LZW"
"NINGUNO": predeterminado
"RLE"
"ADAPTATIVO": predeterminado
"DESINFLAR"
"JPEG"
"LZW"
"NINGUNA"
"RLE"
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/constantslist.htm 2/6
29/11/2019 Lista alfabética de constantes arcpy.mapping — Ayuda | ArcGIS for Desktop
"MEJOR": predeterminado
"MEJOR"
"MÁS RÁPIDO"
"LO MÁS RÁPIDO"
"NORMAL"
"DESPUÉS"
"ANTES": predeterminado
"LAYERS_AND_ATTRIBUTES"
"LAYERS_ONLY" -Default
"NINGUNA"
"BRILLO"
"CONTRASTE"
"CRÉDITOS"
"DATASETNAME"
"FUENTE DE DATOS"
"DEFINITIONQUERY"
"DESCRIPCIÓN"
"CLASES DE ETIQUETAS"
"NOMBRE LARGO"
"MAXSCALE"
"MINSCALE"
"NOMBRE"
"PROPIEDADES DEL SERVICIO"
"SHOWLABELS"
"SIMBOLOGÍA"
"TIPO DE SIMBOLOGÍA"
"HORA"
"TRANSPARENCIA"
"VISIBLE"
"TRABAJO ESPACIO DE TRABAJO"
"MEJOR"
"RÁPIDO"
"LO MÁS RÁPIDO"
"NINGUNO": predeterminado
"NORMAL"
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/constantslist.htm 3/6
29/11/2019 Lista alfabética de constantes arcpy.mapping — Ayuda | ArcGIS for Desktop
"FUERZA": predeterminado
"NINGUNA"
"NORMAL"
"PDF_MULTIPLE_FILES_PAGE_INDEX"
"PDF_MULTIPLE_FILES_PAGE_NAME"
"PDF_SINGLE_PAGE" -Default
"TODOS": predeterminado
"CORRIENTE"
"DISTANCIA"
"SELECCIONADO"
"DONT_CARE"
"UNA COLUMNA"
"SINGLE_PAGE" -Default
"TWO_COLUMN_LEFT"
"TWO_COLUMN_RIGHT"
"TWO_PAGE_LEFT"
"TWO_PAGE_RIGHT"
"ADJUNTO ARCHIVO"
"PANTALLA COMPLETA"
"CAPAS"
"USE_BOOKMARKS"
"USE_NONE"
"USE_THUMBS" -default
"VIEWER_DEFAULT"
"TODOS": predeterminado
"ALL_MASTER"
"DUPDO"
"DOC_ASSEMBLY"
"EDITAR"
"EDITAR_NOTAS"
"FILL_AND_SIGN"
"HIGH_PRINT"
"ABIERTO"
"IMPRESIÓN"
"SEGURO"
"RASTERIZE_BITMAP" -Default
"RASTERIZAR_ IMAGEN"
"VECTORIZE_BITMAP"
2
3: predeterminado
"TODOS"
"SELECCIONADO"
"USE_RLF" -Default
"NINGUNO": predeterminado
"RLE"
"DO_NOT_SAVE_USERNAME" -Default
"SAVE_USERNAME" -Default
"MAPEO": predeterminado
"KML"
"WCS"
"WFS"
"WMS"
"ARCGIS_SERVER" -Default
"SPATIAL_DATA_SERVER"
"ARCGIS_SERVER" -Default
"FROM_CONNECTION_FILE"
"MY_HOSTED_SERVICES"
"SPATIAL_DATA_SERVER"
"COLORES GRADUADOS"
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/constantslist.htm 5/6
29/11/2019 Lista alfabética de constantes arcpy.mapping — Ayuda | ArcGIS for Desktop
"GRADUATED_SYMBOLS"
"OTRO"
"RASTER_CLASIFICADO"
"VALORES ÚNICOS"
"DESINFLAR"
"JPEG"
"LZW"
"NINGUNO": predeterminado
"PACK_BITS"
"siglos"
"décadas"
"dias"
"horas"
"milisegundos"
"minutos"
"meses"
"segundos"
"desconocido"
"semanas"
"años"
"10.1": predeterminado
"10.0"
"8.3"
"9.0 / 9.1"
"9.2"
"9.3"
"ACCESS_WORKSPACE"
"ARCINFO_WORKSPACE"
"CAD_WORKSPACE"
"EXCEL_WORKSPACE"
"FILEGDB_WORKSPACE"
"NINGUNA"
"OLEDB_WORKSPACE"
"PCCOVERAGE_WORKSPACE"
"RASTER_WORKSPACE"
"SDE_WORKSPACE"
"SHAPEFILE_WORKSPACE"
"TEXT_WORKSPACE"
"TIN_WORKSPACE"
"VPF_WORKSPACE"
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/constantslist.htm 6/6
29/11/2019 Actualización y reparación de orígenes de datos con arcpy.mapping — Ayuda | ArcGIS for Desktop
10.7
10.6
10.5
10.4
10.3
Existen numerosas razones por las cuales las fuentes de datos deben repararse o redirigirse a diferentes ubicaciones. La idea de hacer estos cambios manualmente en cada
documento de mapa afectado puede ser abrumadora. Los métodos están disponibles con el entorno de secuencias de comandos arcpy.mapping que permiten automatizar estos
cambios sin siquiera tener que abrir un documento de mapa. Usted tiene el control de actualizar las fuentes de datos para capas individuales, o puede actualizar todas las capas a
la vez que tienen un espacio de trabajo común. Hay breves debates disponibles con el tema de ayuda de cada método, pero este documento tiene la intención de resumirlos y
compararlos a todos.
Básicamente, existen dos tipos diferentes de métodos que funcionan en las clases MapDocument , Layer y TableView . Los nombres de los métodos cambian ligeramente según la
clase y los parámetros disponibles.
findAndReplaceWorkspacePath o findAndReplaceWorkspacePaths le permite sustituir una cadena completa o parcial por una ruta de espacio de trabajo de capa o
tabla. No se puede usar si el tipo de espacio de trabajo o el nombre del conjunto de datos ha cambiado. Es ideal para escenarios donde las letras de unidad cambian,
cambian a rutas UNC, actualizan la información del archivo de conexión SDE, etc. Consulte la sección Escenarios comunes a continuación.
replaceWorkspaces o replaceDataSource le permite cambiar la ruta del espacio de trabajo, el tipo de espacio de trabajo y / o cambiar el nombre del conjunto de datos.
Las capacidades de estos métodos se superponen; por lo tanto, hay varias formas de actualizar el espacio de trabajo o el conjunto de datos de una capa o tabla. El propósito de
este documento es discutir todos los métodos y sugerir las mejores prácticas para muchos escenarios comunes.
Se proporcionan varias definiciones para resumir los términos que se utilizan en este documento:
Un espacio de trabajo es un contenedor de datos. Un espacio de trabajo puede ser una carpeta que contiene elementos como archivos de forma, archivos CAD o rásteres,
o puede ser una cobertura de ArcInfo Workstation, geodatabase personal, geodatabase de archivos, conexión a SDE, etc.
Una ruta de espacio de trabajo es la ruta del sistema al espacio de trabajo. En el caso de los datos basados en archivos (por ejemplo, CAD, archivos de forma, rásteres),
incluye el nombre de la carpeta que contiene los datos. Con las geodatabases basadas en archivos, incluye el nombre de la geodatabase. Las rutas del espacio de trabajo
SDE están definidas por la ruta del sistema al archivo de conexión SDE.
Un tipo de espacio de trabajo es un formato de modelo de datos compatible con ArcGIS. Por ejemplo, shapefile, geodatabase personal, geodatabase de archivos, CAD,
SDE, etc.
Un conjunto de datos es la clase de entidad o tabla que se encuentra en un espacio de trabajo. Cuando se requiere un nombre de conjunto de datos, es el nombre del
objeto en el espacio de trabajo, no la forma en que aparece en la tabla de contenido de un documento de mapa.
Una fuente de datos para una capa o tabla es la combinación del espacio de trabajo y el conjunto de datos.
La función ListBrokenDataSources () es útil para determinar qué capas o tablas están rotas en un documento de mapa o archivo de capa.
Estos métodos funcionan recursivamente a través de todas las capas y tablas. Esto significa que las tablas unidas y relacionadas también se buscan y actualizan (consulte la
sección "Limitaciones conocidas" a continuación).
Puede buscar y reemplazar todo o parte de una ruta de espacio de trabajo. Si reemplaza solo una parte de la ruta, asegúrese de que sea una cadena única. Por ejemplo,
encontrar solo una letra C y reemplazarla con una letra D para una unidad da un resultado menos predecible que encontrar r "C: \" y reemplazarla con r "D: \" .
Usar un nombre de capa para aislar una fuente de datos no es infalible porque es posible tener múltiples fuentes de datos con el mismo nombre de capa. Puede ser
necesario usar otras propiedades de capa para aislar de manera única una capa.
No incluya los nombres de conjuntos de datos de entidades de geodatabase en la ruta del espacio de trabajo. Los conjuntos de datos de entidades son parte del espacio de
trabajo. Si una clase de entidad, por ejemplo, pasa de ser una clase de entidad independiente a un conjunto de datos de entidad de geodatabase, se abrirá un documento
de mapa sin romper la capa.
Los parámetros de ruta del espacio de trabajo no deben incluir el nombre del conjunto de datos de la capa o la tabla; por lo tanto, muchos de los métodos anteriores no
funcionarán si el nombre del conjunto de datos de una capa o tabla ha cambiado. El método replaceDataSource en los objetos Layer y TableView se adapta a este escenario.
Al cambiar espacios de trabajo mediante el método replaceWorkspaces , los nombres de los conjuntos de datos deben ser idénticos. Por ejemplo, un archivo de forma
llamado Highways.shp puede redirigirse a un espacio de trabajo de geodatabase de archivos solo si el nombre del conjunto de datos en la geodatabase de archivos
también se llama Highways . Utilice el método replaceDataSource en los objetos Layer o TableView si el nombre del conjunto de datos es diferente.
Si se usa una cadena vacía ( "" ) para el parámetro old_workspace_path y "NONE" se usa para el parámetro old_workspace_type , todas las fuentes de datos se
corresponden con el nuevo espacio de trabajo. Esto le permite redirigir múltiples espacios de trabajo a un solo espacio de trabajo utilizando un único método. Solo
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/updatingandfixingdatasources.htm 1/4
29/11/2019 Actualización y reparación de orígenes de datos con arcpy.mapping — Ayuda | ArcGIS for Desktop
se puede usar una cadena vacía con la palabra clave NONE .
Este parámetro le permite probar primero para ver si el nuevo origen de datos existe antes de cambiar o reemplazar el origen de datos de una capa o tabla.
Si validar es Verdadero y la nueva fuente de datos existe y es válida, la fuente de datos original se actualizará a la nueva fuente de datos; de lo contrario, seguirá apuntando
a la fuente de datos original y no se actualizará nada.
Si validar es falso , el nuevo origen de datos no tiene que ser válido, es decir, es posible que aún no exista. Esto puede ser útil para escenarios que requieren que las fuentes
de datos se actualicen antes de que se creen los datos. Tenga en cuenta que, en estos casos, los datos aparecerían rotos en los documentos de mapa o archivos de capa
asociados.
Al usar los métodos findAndReplaceWorkspacePath o findAndReplaceWorkspacePaths , el parámetro validar se aplica al parámetro replace_workspace_path .
Cuando se utiliza el método replaceWorkspacePaths , el parámetro de validación se aplica a los parámetros new_workspace_path y new_workspace_type .
Cuando se utiliza el método replaceDataSource , el parámetro validar se aplica al parámetro dataset_name .
La ruta del espacio de trabajo para las conexiones SDE es la ruta al archivo de conexión SDE (.sde) . Puede proporcionar la ruta completa al archivo, o en el caso de que el
archivo de conexión aparezca en la carpeta Conexiones de base de datos , también puede usar esa cadena en la ruta, por ejemplo, find_workspace_path = r "Conexiones de
base de datos \ myConnectionFile.sde"
La información del archivo de conexión SDE utilizada en el script debe ser idéntica a la conexión SDE que se utilizó para agregar datos a un documento de mapa o archivo
de capa. Por ejemplo, puede tener dos archivos de conexión SDE idénticos en dos ubicaciones separadas. Si los datos se agregaron a un mapa usando la primera ruta del
archivo de conexión, pero usa la segunda ruta del archivo de conexión en el script, las fuentes de datos no se actualizarán como se esperaba.
La propiedad dataSource en los objetos Layer y TableView proporciona una forma de determinar la ruta que se está utilizando en el documento de mapa o archivo de
capa. Use este valor para ayudar a determinar qué ruta de archivo de conexión SDE debe usarse. Aquí hay un ejemplo:
lyr.findAndReplaceWorkspacePath(find_workspace_path=lyr.workspacePath, replace_workspace_path=r"C:\Newpath\To\SDE_ConnectionFile.sde")
Al eliminar la información de contraseña de las conexiones SDE para que ya no se conserve en un documento de mapa o archivo de capa, es necesario configurar validate =
False . Esto debe hacerse porque si intenta utilizar un archivo de conexión SDE que no conserve toda la información de conexión adecuada, la conexión obviamente fallará.
Establecer validate = False forzará el uso del nuevo archivo de conexión, y se le solicitará al usuario la información de inicio de sesión cuando abra un documento de mapa
que contenga los datos SDE.
Limitaciones conocidas
Los conjuntos de datos esquemáticos no se pueden actualizar debido a las tablas ocultas que forman parte de su diseño.
Los conjuntos de datos de NetCDF solo se pueden actualizar parcialmente. Los métodos findAndReplaceWorkspacePath y findAndReplaceWorkspacePaths funcionan pero
los métodos replaceWorkspaces o replaceDataSource no proporcionan un tipo de espacio de trabajo NetCDF .
Las conexiones del servidor de bases de datos que se conectan directamente a las bases de datos SQL Server Express actualmente no son compatibles. Como solución
alternativa, cree una conexión de base de datos espacial a la base de datos SQL Server Express y úsela en su lugar.
Las uniones y relaciones asociadas con capas ráster no se actualizarán.
Las consultas SQL no se actualizan automáticamente. Diferentes espacios de trabajo (por ejemplo, frente a geodatabase de archivos personales) utilizan diferentes sintaxis
SQL para las consultas de definición de capa, y esta sintaxis no se actualiza automáticamente. La sintaxis se puede corregir actualizando la propiedad definitionQuery del
objeto Layer . Las funciones simples de cadena Python están disponibles para realizar operaciones básicas de búsqueda y reemplazo. Algunos ejemplos son los siguientes:
Para geodatabases personales, nombres de campo aparecen entre corchetes ( [] ), mientras que las geodatabases de archivos están encerrados entre comillas ( "" ).
Los caracteres comodín para las geodatabases personales son asterisco ( * ) y signo de interrogación ( ? ), Mientras que los comodines para las geodatabases de
archivos son símbolo de porcentaje ( % ) y guión bajo ( _ ).
Las búsquedas de cadenas no distinguen entre mayúsculas y minúsculas para las geodatabases personales, pero distinguen entre mayúsculas y minúsculas para las
geodatabases de archivos.
Las geodatabases personales usan UCASE y LCASE para convertir mayúsculas y minúsculas. Las geodatabases de archivos usan SUPERIOR e INFERIOR .
Las fechas y horas en las geodatabases personales se delimitan mediante el signo de número ( # ), mientras que las geodatabases de archivos son precedidos por la
palabra fecha .
Las expresiones de etiqueta de capa tampoco se actualizan automáticamente. Estos también deberán cambiarse para admitir la sintaxis SQL adecuada. La sintaxis se puede
corregir actualizando las propiedades LabelClass SQLQuery o expresión de la capa .
Las selecciones guardadas dentro de un documento de mapa se borran cuando se actualiza el origen de datos de una capa (este también es el caso cuando se usa
Establecer origen de datos a través del cuadro de diálogo Propiedades de capa en ArcMap). Actualmente no existe una solución alternativa para esto, aparte de volver a
crear manualmente las selecciones de características del documento de mapa.
Escenarios comunes
Los datos basados en archivos se mueven a una carpeta diferente o se ubican en una unidad de red diferente
O bien, la letra de la unidad de red asignada cambia, la estructura de la carpeta para la ubicación de los datos cambia u ocurre algo más que rompe el enlace a los datos existentes
que deben actualizarse. En este escenario, se trata simplemente de redirigir las mismas fuentes de datos a la nueva ubicación de carpeta o nombre de unidad. Este escenario se
aplica a casi todas las estructuras de datos basadas en archivos, incluidos los archivos de conexión de bases de datos espaciales (por ejemplo, archivos de forma, datos CAD,
geodatabases personales y de archivos, rásteres basados en archivos).
En este escenario, los datos se ubicaron directamente debajo de la carpeta C: \ Project \ Data pero se movieron a una subcarpeta llamada Data2 . Este script actualiza un solo
documento de mapa.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
mxd.findAndReplaceWorkspacePaths(r"C:\Project\Data", r"C:\Project\Data2")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
En este escenario, un usuario quiere compartir documentos de mapa con otro personal que tenga acceso a la unidad del usuario y no quiere que el personal tenga que copiar los
datos en sus unidades locales para que puedan abrir el documento de mapa con éxito.
Este escenario implica cambiar una ruta del sistema local a una ruta UNC. Este script actualiza todos los documentos de mapa en una carpeta.
import arcpy, os
folderPath = r"C:\Project"
for filename in os.listdir(folderPath):
fullpath = os.path.join(folderPath, filename)
if os.path.isfile(fullpath):
basename, extension = os.path.splitext(fullpath)
if extension.lower() == ".mxd":
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/updatingandfixingdatasources.htm 2/4
29/11/2019 Actualización y reparación de orígenes de datos con arcpy.mapping — Ayuda | ArcGIS for Desktop
mxd = arcpy.mapping.MapDocument(fullpath)
mxd.findAndReplaceWorkspacePaths(r"C:\Project\Data", r"\\ComputerName\Project\Data")
mxd.save()
del mxd
Existen numerosas razones por las cuales esto puede suceder, tal vez se cambie el nombre del servidor y / o el número de puerto; una conexión incluye credenciales de inicio de
sesión y, por razones de seguridad, deben eliminarse; se cambia la contraseña; las conexiones cambian de una conexión de tres niveles a una conexión de dirección de dos niveles;
o desea apuntar capas a una versión diferente. Independientemente del escenario específico, al modificar las propiedades de conexión de la base de datos espacial, todo lo que
necesita hacer es pasar la ruta al archivo de conexión.
En este escenario, un usuario quiere cambiar la versión de la geodatabase para todas las capas del mapa. El usuario crea un nuevo archivo de conexión SDE y reemplaza el archivo
de conexión original con el nuevo archivo de conexión.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project_default.mxd")
mxd.findAndReplaceWorkspacePaths(r"C:\Project\Connection to Default.sde",
r"C:\Project\Connection to Version1.sde")
mxd.saveACopy(r"C:\Project\Project_V1.mxd")
del mxd
En este escenario, un usuario desea eliminar la información de contraseña guardada en un documento de mapa. Las fuentes de datos en el documento de mapa provienen de un
archivo de conexión SDE donde la información de contraseña se guardó con la información de conexión. Luego, el usuario creó un nuevo archivo de conexión SDE a la misma base
de datos, pero esta vez no guardó la información de la contraseña. En el siguiente script, el parámetro de validación debe establecerse en False para que la información de
contraseña se elimine correctamente. Después de ejecutar el script, un usuario deberá iniciar sesión para abrir el documento de mapa resultante.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project_default.mxd")
mxd.findAndReplaceWorkspacePaths(r"C:\Project\Connection with password info saved.sde",
r"C:\Project\Connection with no password info saved.sde", False)
mxd.saveACopy(r"C:\Project\Project_NP.mxd")
del mxd
Los datos se migran de un tipo de espacio de trabajo a otro tipo de espacio de trabajo
Algunos escenarios comunes implican la migración de datos, como archivos de forma y geodatabases personales, a una geodatabase de archivos o desde una geodatabase de
archivos a una conexión SDE empresarial. Debido a que los espacios de trabajo de geodatabase tienen diferencias sutiles, es importante revisar la sección "Limitaciones conocidas"
anterior para comprender mejor los elementos adicionales que pueden necesitar ser abordados.
Este escenario implica la actualización de dos espacios de trabajo diferentes en un documento de mapa. Primero, los archivos de forma se redirigen a una geodatabase de archivos
llamada Parcels.gdb . En segundo lugar, las capas de una geodatabase personal se redirigen a otra geodatabase de archivos llamada Transportation.gdb .
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
mxd.replaceWorkspaces(r"C:\Project\Data", "SHAPEFILE_WORKSPACE", r"C:\Project\Data\Parcels.gdb", "FILEGDB_WORKSPACE")
mxd.replaceWorkspaces(r"C:\Project\Data\Transportation.mdb", "ACCESS_WORKSPACE", r"C:\Project\Data\Transportation.gdb", "FILEGDB_WORKSPACE")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
Este ejemplo es idéntico al ejemplo anterior, excepto que todas las fuentes de datos se dirigen a una única geodatabase de archivos. Se pueden redirigir varios tipos de espacio de
trabajo a un solo tipo de espacio de trabajo si se usa un valor de NINGUNO en lugar del parámetro old_workspace_type .
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
mxd.replaceWorkspaces("", "NONE", r"C:\Project\Data\BackgroundData.gdb","FILEGDB_WORKSPACE")
mxd.saveACopy(r"C:\Project\Project2.mxd")
El siguiente escenario redirige todas las capas desde una geodatabase personal a una geodatabase de archivos. También corrige las expresiones SQL para la propiedad
definitionQuery de una capa y la propiedad SQLQuery de una clase de etiqueta . Por ejemplo, las geodatabases personales tienen corchetes ( [] ) alrededor de los nombres de
campo, mientras que las geodatabases de archivos usan comillas dobles ( "" ). Los caracteres comodín también se reemplazan.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
mxd.replaceWorkspaces(r"C:\Project\Data\Parcels.mdb", "ACCESS_WORKSPACE",
r"C:\Project\Data\Parcels.gdb", "FILEGDB_WORKSPACE")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.supports("DEFINITIONQUERY"):
lyr.definitionQuery = lyr.definitionQuery.replace("[", "\"")
lyr.definitionQuery = lyr.definitionQuery.replace("]", "\"")
lyr.definitionQuery = lyr.definitionQuery.replace("*", "%")
if lyr.supports("LABELCLASSES"):
for lblClass in lyr.labelClasses:
lblClass.SQLQuery = lblClass.SQLQuery.replace("[", "\"")
lblClass.SQLQuery = lblClass.SQLQuery.replace("]", "\"")
lblClass.SQLQuery = lblClass.SQLQuery.replace("*", "%")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
Hay escenarios en los que solo se mueven conjuntos de datos individuales y no espacios de trabajo completos. En lugar de intentar actualizar todas las capas en un documento de
mapa, a veces tiene sentido centrarse solo en los elementos individuales que se han movido.
En este escenario, una clase de entidad individual llamada MapIndex se movió de una geodatabase de archivos en una carpeta llamada Datos a una copia de la geodatabase de
archivos en una carpeta diferente llamada Datos2 .
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.supports("DATASOURCE"):
if lyr.dataSource == r"C:\Project\Data\Parcels.gdb\MapIndex":
lyr.findAndReplaceWorkspacePath(r"Data", r"Data2")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
Los conjuntos de datos individuales se mueven dentro y fuera de un conjunto de datos de características de geodatabase
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/updatingandfixingdatasources.htm 3/4
29/11/2019 Actualización y reparación de orígenes de datos con arcpy.mapping — Ayuda | ArcGIS for Desktop
Los conjuntos de datos de características de geodatabase son parte de un espacio de trabajo y sus nombres no deben incluirse en la ruta del espacio de trabajo. Si una clase de
entidad se mueve dentro o fuera de un conjunto de datos de entidad de geodatabase dentro del mismo espacio de trabajo, no se debe hacer nada en términos de actualización
de documentos de mapas o fuentes de datos de archivos de capa. Si un conjunto de datos se mueve a un espacio de trabajo diferente, pero del mismo tipo de espacio de trabajo,
proporcione una ruta al nuevo espacio de trabajo, sin el nombre del conjunto de datos de características de la geodatabase. Si el tipo de espacio de trabajo es diferente, usar
findAndReplaceWorkspacePath en una capa no funcionará y deberá usar replaceDataSource en su lugar.
En este escenario, una clase de entidad se movió de ser independiente en una geodatabase de archivos a un conjunto de datos de entidades en otra geodatabase de archivos.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.supports("DATASOURCE"):
if lyr.dataSource == r"C:\Project\Data\Parcels.gdb\MapIndex":
lyr.findAndReplaceWorkspacePath(r"Parcels.gdb", r"Transportation.gdb")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
Los cambios de esquema son comunes y, a veces, se cambia el nombre de una clase de entidad. En este escenario, todas las capas que apuntan a ese conjunto de datos se
romperán necesariamente.
En este escenario, se cambió el nombre de una clase de entidad de MajorRoads a Highways , por lo tanto, rompió capas individuales en un documento de mapa o archivo de capa.
El script evaluará solo las fuentes de datos rotas utilizando la función ListBrokenDataSources () y realizará la corrección adecuada.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for lyr in arcpy.mapping.ListBrokenDataSources(mxd):
if lyr.supports("DATASOURCE"):
if lyr.dataSource == r"C:\Project\Data\Transportation.gdb\MajorRoads":
lyr.replaceDataSource(r"C:\Project\Data\Transportation.gdb", "FILEGDB_WORKSPACE", "Highways")
lyr.name = "Highways"
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
https://desktop.arcgis.com/es/arcmap/10.3/analyze/arcpy-mapping/updatingandfixingdatasources.htm 4/4