J'essaie d'automatiser diverses tâches dans ArcGIS Desktop (en utilisant ArcMap en général) avec Python, et j'ai toujours besoin d'un moyen d'ajouter un fichier de formes à la carte actuelle. (Et puis faites-y des trucs, mais c'est une autre histoire).
Le mieux que je puisse faire jusqu'à présent est d'ajouter un fichier de couche à la carte actuelle, en utilisant ce qui suit ("addLayer" est un objet de fichier de couche):
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
Cependant, mes données brutes seront toujours des fichiers de formes, je dois donc pouvoir les ouvrir. (De manière équivalente: convertissez un fichier de formes en fichier de calque sans l'ouvrir, mais je préférerais ne pas le faire).
Make Feature Layer (Data Management) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000006p000000.htm
Je viens de l'essayer dans la fenêtre Python d'ArcMap et il s'ajoute directement à ma carte (je n'ai pas eu à récupérer mon dataframe et appeler AddLayer).
arcpy.MakeFeatureLayer_management('r:/temp/a.shp','test')
la source
arcpy.SaveToLayerFile_management('test', 'r:/temp/evilmonkey.lyr', 'ABSOLUTE')
Si vous ne voulez pas enregistrer la couche et que vous voulez juste allé,arcpy.Delete_management('test')
.