Estou tentando automatizar várias tarefas no ArcGIS Desktop (geralmente usando o ArcMap) com o Python, e continuo precisando de uma maneira de adicionar um shapefile ao mapa atual. (E depois faça coisas, mas isso é outra história).
O melhor que posso fazer até agora é adicionar um arquivo de camada ao mapa atual, usando o seguinte ("addLayer" é um objeto de arquivo de camada):
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
No entanto, meus dados brutos sempre serão shapefiles, portanto, preciso poder abri-los. (Equivalentemente: converta um shapefile em um arquivo de camada sem abri-lo, mas prefiro não fazer isso).
Criar camada de recurso (gerenciamento de dados) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000006p000000.htm
Eu apenas tentei na janela Python do ArcMap e ela adiciona diretamente ao meu mapa (não precisei pegar meu dataframe e chamar AddLayer).
arcpy.MakeFeatureLayer_management('r:/temp/a.shp','test')
fonte
arcpy.SaveToLayerFile_management('test', 'r:/temp/evilmonkey.lyr', 'ABSOLUTE')
Se você não deseja salvar a camada e deseja que ela seja removidaarcpy.Delete_management('test')
,.