155GIS2 / 9. cvičení: Porovnání verzí
m (→4) |
m (→Náplň) |
||
(Není zobrazeno 12 mezilehlých verzí od stejného uživatele.) | |||
Řádek 4: | Řádek 4: | ||
== Náplň == | == Náplň == | ||
* Přednášky [[ | * Přednášky [[155UVIN]] | ||
== Poznámky k systému ArcGIS == | == Poznámky k systému ArcGIS == | ||
Řádek 16: | Řádek 13: | ||
{{fig|arcpy|Ukázka interaktivní Python konzole v ArcGIS Pro}} | {{fig|arcpy|Ukázka interaktivní Python konzole v ArcGIS Pro}} | ||
* [https://pro.arcgis.com/en/pro-app/arcpy/data-access/describe.htm Describe] | |||
** [https://pro.arcgis.com/en/pro-app/arcpy/functions/featureclass-properties.htm FeatureClass properties] | |||
** [https://pro.arcgis.com/en/pro-app/arcpy/functions/table-properties.htm Table properties] | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Řádek 51: | Řádek 52: | ||
; Výpis názvů atributů | ; Výpis názvů atributů | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb" | arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb" | ||
data = arcpy.Describe("ObcePolygony") | |||
for field in data.fields: | for field in data.fields: | ||
print(field.name) | print(field.name) | ||
Řádek 91: | Řádek 78: | ||
arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb" | arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb" | ||
rows = arcpy.SearchCursor("ObcePolygony", "NAZ_OBEC = 'Liberec'") #vytvori cursor | |||
for row in rows: | |||
pocet = row.POCET_OBYV # pocet obce Liberec | |||
break | |||
rows = arcpy.SearchCursor("ObcePolygony") | |||
for row in rows: | |||
if row.POCET_OBYV is not None and row.POCET_OBYV > pocet: | |||
print("{} - {}".format(row.NAZ_OBEC, row.POCET_OBYV)) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Řádek 116: | Řádek 100: | ||
kraje = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb\KrajePolygony" | kraje = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb\KrajePolygony" | ||
rows = arcpy.SearchCursor(kraje) #vytvori cursor | rows = arcpy.SearchCursor(kraje) #vytvori cursor | ||
for row in rows: | for row in rows: | ||
nazev = row.KOD_CZNUTS3 | nazev = row.KOD_CZNUTS3 | ||
print("{ | print("{}...".format(nazev)) | ||
kraje_Select_shp = | kraje_Select_shp = r"{}\{}".formar(arcpy.env.workspace, nazev) | ||
arcpy. | arcpy.analysis.Select(kraje, kraje_Select_shp, "KOD_CZNUTS3 = '{}'".format(nazev)) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Řádek 134: | Řádek 117: | ||
obce = "ObcePolygony" | obce = "ObcePolygony" | ||
rows = arcpy.SearchCursor(obce, "NAZ_OBEC = 'Lhota'") | |||
for row in rows: | |||
print("Prvek {}: ".format(row.NAZ_OBEC)) | |||
for cast in prvek.SHAPE: | |||
for bod in cast: | |||
print("{} {}".format(bod.X, bod.Y)) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuální verze z 23. 11. 2023, 08:12
Úvod do skriptování v jazyku Python (arcpy)
Náplň
- Přednášky 155UVIN
Poznámky k systému ArcGIS
Python Window
View • Python Window
arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb"
obce = arcpy.Describe("ObcePolygony")
len(obce.fields)
pocet = arcpy.GetCount_management("ObcePolygony")
pocet.getOutput(0)
Notebook
Založeno na open source projektu Jupyter.
Insert • New Notebook
Užitečné odkazy
- Python in ArcGIS Pro
- A quick tour of creating tools with Python
- What is ArcPy?
- ArcGIS API for Python
- Overview of the ArcGIS API for Python
- ArcGIS Pro Python reference
- Use ArcPy in a notebook
- ArcGIS API for Python: ArcGIS in a Notebook (video)
Úlohy
V následujících úlohách budeme, pokud nebude uvedeno jinak, používat data z datové sady ArcCR500. Tato datová sada je poskytovaná firmou ArcData zdarma.
V učebně B-870 jdou data nainstalována v adresáři
S:\K155\Public\data\ArcGIS\ArcCR500 3.3
Přístupová práva k tomu adresáři jsou omezena pouze na čtení! Nelze tedy datové vrstvy z ArcCR500 upravovat (včetně např. vytváření pyramid).
1
- Výpis názvů atributů
arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb"
data = arcpy.Describe("ObcePolygony")
for field in data.fields:
print(field.name)
2
- Výpis typu geoprvků
inputFC = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb\ObcePolygony"
shapeType = arcpy.Describe(inputFC).shapeType
print("Shape Type: {}".format(shapeType))
3
- Výpis obcí, které mají počet obyvatel vyšší než Liberec
arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb"
rows = arcpy.SearchCursor("ObcePolygony", "NAZ_OBEC = 'Liberec'") #vytvori cursor
for row in rows:
pocet = row.POCET_OBYV # pocet obce Liberec
break
rows = arcpy.SearchCursor("ObcePolygony")
for row in rows:
if row.POCET_OBYV is not None and row.POCET_OBYV > pocet:
print("{} - {}".format(row.NAZ_OBEC, row.POCET_OBYV))
4
- Vytvoření souborů Shapefile pro jednotlivé kraje
import os
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\Users\landamar\Documents\u04"
if not os.path.exists(arcpy.env.workspace):
os.makedirs(arcpy.env.workspace)
kraje = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb\KrajePolygony"
rows = arcpy.SearchCursor(kraje) #vytvori cursor
for row in rows:
nazev = row.KOD_CZNUTS3
print("{}...".format(nazev))
kraje_Select_shp = r"{}\{}".formar(arcpy.env.workspace, nazev)
arcpy.analysis.Select(kraje, kraje_Select_shp, "KOD_CZNUTS3 = '{}'".format(nazev))
5
- Výpis souřadnic lomových bodů uzemí obce 'Lhota'
arcpy.env.workspace = r"S:\K155\Public\data\ArcGIS\ArcCR500 3.3\AdministrativniCleneni_v13.gdb"
obce = "ObcePolygony"
rows = arcpy.SearchCursor(obce, "NAZ_OBEC = 'Lhota'")
for row in rows:
print("Prvek {}: ".format(row.NAZ_OBEC))
for cast in prvek.SHAPE:
for bod in cast:
print("{} {}".format(bod.X, bod.Y))
Další úlohy najdete v cvičení k předmětu 153GIS2.