22 votos

Añadir shapefile o feature class como capa en ArcMap usando ArcPy

Estoy tratando de automatizar varias tareas en ArcGIS Desktop (utilizando ArcMap en general) con Python, y sigo necesitando una manera de añadir un shapefile al mapa actual. (Y luego hacer cosas a él, pero eso es otra historia).

Lo mejor que puedo hacer hasta ahora es añadir un capa al mapa actual, utilizando lo siguiente ("addLayer" es un objeto de archivo de capa):

def AddLayerFromLayerFile(addLayer):
 import arcpy
 mxd = arcpy.mapping.MapDocument("CURRENT")
 df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
 arcpy.mapping.AddLayer(df, addLayer, "AUTO_ARRANGE")
 arcpy.RefreshActiveView()
 arcpy.RefreshTOC()
 del mxd, df, addLayer

Sin embargo, mis datos brutos siempre van a ser shapefiles, por lo que necesito poder abrirlos. (Equivalentemente: convertir un shapefile en un archivo de capas sin abrirlo, pero preferiría no hacerlo).

33voto

dave Puntos 34

Esto es lo que descubrí que funcionaba:

import arcpy
from arcpy import env

# get the map document
mxd = arcpy.mapping.MapDocument("CURRENT")

# get the data frame
df = arcpy.mapping.ListDataFrames(mxd,"*")[0]

# create a new layer
newlayer = arcpy.mapping.Layer(path_to_shapefile_or_feature_class)

# add the layer to the map at the bottom of the TOC in data frame 0
arcpy.mapping.AddLayer(df, newlayer,"BOTTOM")

El marco de datos (variable df) en el que este código colocará la nueva capa es el primer marco de datos del documento del mapa. Observe también que este código añade los datos como una nueva capa en la parte inferior de la TOC. También puede utilizar las otras opciones de disposición, que son "AUTO_ARRANGE" y "TOP".

10voto

jonesdavide Puntos 176

Crear capa de características (gestión de datos) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000006p000000.htm

Acabo de probarlo en la ventana de Python de ArcMap y se añade directamente a mi mapa ( no tuve que obtener mi dataframe y llamar AddLayer).

arcpy.MakeFeatureLayer_management('r:/temp/a.shp','test') alt text

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X