Я пытаюсь автоматизировать различные задачи в ArcGIS Desktop (в основном используя ArcMap) с помощью Python, и мне все еще нужен способ добавить шейп-файл к текущей карте. (А потом делать что-то с этим, но это другая история).
Лучшее, что я могу сделать, это добавить файл слоя к текущей карте, используя следующее («addLayer» - объект файла слоя):
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
Однако мои необработанные данные всегда будут шейп-файлами, поэтому я должен иметь возможность их открывать. (Эквивалентно: преобразовать шейп-файл в файл слоя, не открывая его, но я бы предпочел этого не делать).
Создать слой элементов (управление данными) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000006p000000.htm
Я только что попробовал это в окне Python в ArcMap, и оно добавилось прямо к моей карте (мне не нужно было получать мой фрейм данных и вызывать AddLayer).
arcpy.MakeFeatureLayer_management('r:/temp/a.shp','test')
источник
arcpy.SaveToLayerFile_management('test', 'r:/temp/evilmonkey.lyr', 'ABSOLUTE')
Если вы не хотите сохранить слой , и вы просто хотите его нет,arcpy.Delete_management('test')
.