Mapping module ArcPy

Programování v GIS 3

Jan Caha

2026-11-02

Mapping module

  • arcpy.mp module
  • práce s projektem, mapou, vrstvami, layoutem
  • automatizace práce nad těmito prvky
  • dokumentace
  • řada objektů, s kterými lze pracovat, ukázka jen základů a nastínění postupů a možností

Načtení projektu

  • buď práce s aktuálním projektem nebo s konkrétním projektem uloženým na disku
aprx = arcpy.mp.ArcGISProject("CURRENT")
## nebo
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")

Hlavní třídy arcpy.mp

  • ArcGISProject — vstupní bod do projektu (.aprx), seznam map, layoutů, stylů a datových zdrojů

  • Map — mapové okno v projektu, obsahuje vrstvy a zobrazení dat

  • Layer — jedna vrstva v mapě, z ní se získávají vlastnosti, filtry a symbologie

  • Layout — stránka s mapovými rámy, legendami, textem a exportem do PDF/PNG

  • MapFrame — rámec mapy na layoutu, zobrazuje konkrétní Map

  • Table — tabulky připojené k projektu či vrstvě

  • další: Bookmark, Report, Camera, GraphicElement, TextElement

  • dokumentace: Alphabetical list of arcpy.mp classes

ArcGISProject

  • hlavní třída pro práci - rozcestník k dalším položkám
  • řada funkcí pro získání a tvorbu prvků
  • dokumentace
  • funkce např. listLayouts(), listMaps(), listReports(), nebo listBrokenDataSources()
  • funkce pro tvorbu nových prvků - createLayout(), createMap(), createTextElement() a další
  • funkce deleteItem() pro smazání prvku
  • při modifikaci buď nutné volat save() nebo saveACopy()

ArcGISProject - příklad

aprx = arcpy.mp.ArcGISProject("CURRENT")
print(aprx.filePath)
print(aprx.listMaps())
print(aprx.listLayouts())

Map

  • individuální mapové okno v projektu
  • lze z něj získat vrstvy listLayers()
  • lze přidávat vrstvy addLayer(), addLayerToGroup(), addTable(), insertLayer()
  • pracuje se zobrazením, filtry, výběry a symbologií vrstvy
project = arcpy.mp.ArcGISProject("CURRENT")
map = project.listMaps("*")[0]
for lyr in map.listLayers():
    print(f"{lyr.name} - vektorová vrstva: {lyr.isFeatureLayer}, rasterová vrstva: {lyr.isRasterLayer}")

Layer

  • buď vrstva v Map, nebo uložený soubor lyr / lyrx
  • přístup k vlastnostem vrstvy, definici dotazu, časovým údajům a vizualizaci
  • často se mění symbology, renderer, definitionQuery, visibility
  • v dokumentaci je rozebráno mnoho typů rendererů
lyr = map.listLayers("Obce")[0]
print(lyr.name)
print(lyr.symbology)
print(lyr.isFeatureLayer)

Layout a MapFrame

  • Layout představuje stránku mapy pro export a publikaci
  • obsahuje elementy: MapFrame, Legend, TextElement, PictureElement, GraphicElement
  • MapFrame zobrazuje konkrétní Map na layoutu a umožňuje export do PDF/PNG
lyt = aprx.listLayouts("Výstup")[0]
map_frame = lyt.listElements("MAPFRAME_ELEMENT", "Mapa 1")[0]
print(map_frame.map.name)
lyt.exportToPDF(r"C:\Temp\vystup.pdf")

Table

  • tabulková data v projektu nebo v vrstvě
  • slouží pro práci s atributy, připojenými daty a datovými zdroji
  • možné propojení s mapami a layouty v procesu automatizace
for tbl in mapa.listTables():
    print(tbl.name)

Renderery

  • různé objekty dle typu
  • příklad zde
  • v praxi se mění u vrstvy lyr.symbology.renderer nebo přes sym.updateRenderer()

Export do souboru

  • exporty layoutu do grafického souboru (typicky PDF)
p = arcpy.mp.ArcGISProject("current")
lyt = p.listLayouts()[0]

pdf = arcpy.mp.CreateExportFormat("PDF", r"C:\Temp\PDF_output1.pdf")
lyt.export(pdf)

pdf.resolution = 300
pdf.filePath = r"C:\Temp\PDF_output2.pdf"

lyt.export(pdf)

Dotazy?