155GIS2 / 9. cvičení: Porovnání verzí
m (→Úlohy) |
m (→1) |
||
Řádek 28: | Řádek 28: | ||
=== 1 === | === 1 === | ||
; Výpis typu geoprvků | |||
<source lang=python> | <source lang=python> | ||
Řádek 37: | Řádek 39: | ||
shapeType = arcpy.Describe(inputFC).shapeType | shapeType = arcpy.Describe(inputFC).shapeType | ||
arcpy.AddMessage("Shape Type: " + str(shapeType)) | arcpy.AddMessage("Shape Type: " + str(shapeType)) | ||
</source> | |||
=== 2 === | |||
; Výpis názvů atributů | |||
<source lang="python"> | |||
import arcpy #import modulu | |||
arcpy.env.overwiteOutput = True | |||
arcpy.env.workspace = "d:/gis/model/" #nastaveni workspace - pracovni adresar nebo geodatabaze | |||
try: | |||
data = arcpy.Describe("obce.shp") | |||
i = 0 | |||
while (data.fields[i].name): | |||
print data.fields[i].name | |||
i += 1 | |||
except: | |||
print arcpy.GetMessages() | |||
</source> | |||
=== 3 === | |||
; Výpis obcí, které mají počet obyvatel vyšší než Liberec | |||
<source lang="python"> | |||
import arcpy #import modulu | |||
arcpy.env.overwiteOutput = True | |||
arcpy.env.workspace = "d:/jirka/skola/vyuka/gis/model/" #nastaveni workspace - pracovni adresar nebo geodatabaze | |||
try: | |||
rows = arcpy.SearchCursor("obce.shp", '"NAZEV" = \'Liberec\'') #vytvori cursor | |||
for row in rows: | |||
pocet = row.OB01 #pocet obyvatel zadane obce | |||
radky = arcpy.SearchCursor("obce.shp") | |||
for radek in radky: | |||
if (radek.OB01 > pocet): | |||
print "%s - %i" %(radek.NAZEV, radek.OB01) | |||
except: | |||
print arcpy.GetMessages() | |||
</source> | |||
=== 4 === | |||
; Vytvoření souborů Shapefile pro jednotlivé kraje | |||
<source lang="python"> | |||
import arcpy #import modulu | |||
arcpy.env.overwiteOutput = True | |||
arcpy.env.workspace = "d:/jirka/skola/vyuka/gis/model/" #nastaveni workspace - pracovni adresar nebo geodatabaze | |||
kraje = "kraje.shp" | |||
rows = arcpy.SearchCursor(kraje) #vytvori cursor | |||
for row in rows: | |||
nazev = row.NUTS3 | |||
kraje_Select_shp = arcpy.env.workspace + nazev + ".shp" | |||
arcpy.Select_analysis(kraje, kraje_Select_shp, "\"NUTS3\" = '"+nazev+"'") | |||
</source> | |||
=== 5 === | |||
; Výpis souřadnic lomových bodů uzemí obce 'Lhota' | |||
<source lang="python"> | |||
import arcpy #import modulu | |||
arcpy.env.overwiteOutput = True | |||
arcpy.env.workspace = "d:/gis1/obce" #nastaveni workspace - pracovni adresar nebo geodatabaze | |||
try: | |||
data = arcpy.Describe("obce.shp") | |||
shapename = data.ShapeFieldName | |||
rows = arcpy.SearchCursor("obce.shp", '"NAZEV" = \'Lhota\'') | |||
for row in rows: | |||
prvek = row.getValue(shapename) | |||
print "Prvek %s: " % row.NAZEV | |||
partnum = 0 | |||
for part in prvek: | |||
print "Part %i: " % partnum | |||
for bod in prvek.getPart(partnum): | |||
print bod.X, bod.Y | |||
partnum += 1 | |||
except: | |||
print arcpy.GetMessages() | |||
</source> | </source> | ||
Verze z 5. 12. 2014, 13:01
Úvod do skriptování v Python
Náplň
Poznámky k systému ArcGIS
Odkazy
- What is Python?
- What is Python Window?
- Quick tour of Python
- Writing Python scripts
- Getting started with Python in ArcGIS 10
- What is ArcPy?
Poznámky k systému GRASS
Úvod do skriptování v jazyce Python v systému GRASS.
Odkazy
Ú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 typu geoprvků
import arcpy
inputFC = arcpy.GetParameterAsText(0)
arcpy.env.workspace = r"E:\data\ArcCR500\AdministrativniCleneni_v11.gdb"
shapeType = arcpy.Describe(inputFC).shapeType
arcpy.AddMessage("Shape Type: " + str(shapeType))
2
- Výpis názvů atributů
import arcpy #import modulu
arcpy.env.overwiteOutput = True
arcpy.env.workspace = "d:/gis/model/" #nastaveni workspace - pracovni adresar nebo geodatabaze
try:
data = arcpy.Describe("obce.shp")
i = 0
while (data.fields[i].name):
print data.fields[i].name
i += 1
except:
print arcpy.GetMessages()
3
- Výpis obcí, které mají počet obyvatel vyšší než Liberec
import arcpy #import modulu
arcpy.env.overwiteOutput = True
arcpy.env.workspace = "d:/jirka/skola/vyuka/gis/model/" #nastaveni workspace - pracovni adresar nebo geodatabaze
try:
rows = arcpy.SearchCursor("obce.shp", '"NAZEV" = \'Liberec\'') #vytvori cursor
for row in rows:
pocet = row.OB01 #pocet obyvatel zadane obce
radky = arcpy.SearchCursor("obce.shp")
for radek in radky:
if (radek.OB01 > pocet):
print "%s - %i" %(radek.NAZEV, radek.OB01)
except:
print arcpy.GetMessages()
4
- Vytvoření souborů Shapefile pro jednotlivé kraje
import arcpy #import modulu
arcpy.env.overwiteOutput = True
arcpy.env.workspace = "d:/jirka/skola/vyuka/gis/model/" #nastaveni workspace - pracovni adresar nebo geodatabaze
kraje = "kraje.shp"
rows = arcpy.SearchCursor(kraje) #vytvori cursor
for row in rows:
nazev = row.NUTS3
kraje_Select_shp = arcpy.env.workspace + nazev + ".shp"
arcpy.Select_analysis(kraje, kraje_Select_shp, "\"NUTS3\" = '"+nazev+"'")
5
- Výpis souřadnic lomových bodů uzemí obce 'Lhota'
import arcpy #import modulu
arcpy.env.overwiteOutput = True
arcpy.env.workspace = "d:/gis1/obce" #nastaveni workspace - pracovni adresar nebo geodatabaze
try:
data = arcpy.Describe("obce.shp")
shapename = data.ShapeFieldName
rows = arcpy.SearchCursor("obce.shp", '"NAZEV" = \'Lhota\'')
for row in rows:
prvek = row.getValue(shapename)
print "Prvek %s: " % row.NAZEV
partnum = 0
for part in prvek:
print "Part %i: " % partnum
for bod in prvek.getPart(partnum):
print bod.X, bod.Y
partnum += 1
except:
print arcpy.GetMessages()
Další úlohy najdete v cvičení k předmětu 153GIS2.