155GIS2 / 9. cvičení: Porovnání verzí
mBez shrnutí editace |
m (→Úlohy) |
||
Řádek 31: | Řádek 31: | ||
<source lang="python"> | <source lang="python"> | ||
import arcpy | import arcpy | ||
arcpy.env.workspace = r" | arcpy.env.workspace = r"C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb" | ||
try: | try: | ||
Řádek 50: | Řádek 50: | ||
inputFC = arcpy.GetParameterAsText(0) | inputFC = arcpy.GetParameterAsText(0) | ||
arcpy.env.workspace = r" | arcpy.env.workspace = r"C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb" | ||
shapeType = arcpy.Describe(inputFC).shapeType | shapeType = arcpy.Describe(inputFC).shapeType | ||
arcpy.AddMessage("Shape Type: " + str(shapeType)) | arcpy.AddMessage("Shape Type: " + str(shapeType)) | ||
Řádek 61: | Řádek 61: | ||
<source lang="python"> | <source lang="python"> | ||
import arcpy | import arcpy | ||
arcpy.env.workspace = r" | arcpy.env.workspace = r"C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb" | ||
try: | try: | ||
Řádek 84: | Řádek 84: | ||
arcpy.env.workspace = "C:/users/landa/smetiste/u04/" | arcpy.env.workspace = "C:/users/landa/smetiste/u04/" | ||
kraje = " | kraje = "C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb\KrajePolygony" | ||
rows = arcpy.SearchCursor(kraje) #vytvori cursor | rows = arcpy.SearchCursor(kraje) #vytvori cursor | ||
Řádek 101: | Řádek 101: | ||
import arcpy | import arcpy | ||
arcpy.env.workspace = " | arcpy.env.workspace = "C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb" | ||
obce = "ObcePolygony" | obce = "ObcePolygony" |
Verze z 11. 4. 2016, 17:17
Úvod do skriptování v jazyku Python (arcpy)
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?
Ú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).
Další ukázky skriptů zde (zip).
1
- Výpis názvů atributů
import arcpy
arcpy.env.workspace = r"C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb"
try:
data = arcpy.Describe("ObcePolygony")
for i in range(len(data.fields)):
print data.fields[i].name
except:
print arcpy.GetMessages()
2
- Výpis typu geoprvků
import arcpy
inputFC = arcpy.GetParameterAsText(0)
arcpy.env.workspace = r"C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb"
shapeType = arcpy.Describe(inputFC).shapeType
arcpy.AddMessage("Shape Type: " + str(shapeType))
3
- Výpis obcí, které mají počet obyvatel vyšší než Liberec
import arcpy
arcpy.env.workspace = r"C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb"
try:
rows = arcpy.SearchCursor("ObcePolygony", '"NAZOB" = \'Liberec\'') #vytvori cursor
for row in rows:
pocet = row.POCET_OBYVATEL # pocet obce Liberec
rows = arcpy.SearchCursor("ObcePolygony")
for row in rows:
if (row.OB01 > pocet):
print "%s - %i" %(row.NAZOB, row.OB01)
except:
print arcpy.GetMessages()
4
- Vytvoření souborů Shapefile pro jednotlivé kraje
import arcpy
arcpy.env.overwiteOutput = True
arcpy.env.workspace = "C:/users/landa/smetiste/u04/"
kraje = "C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb\KrajePolygony"
rows = arcpy.SearchCursor(kraje) #vytvori cursor
for row in rows:
nazev = row.KODNUTS
print "%s..." % nazev
kraje_Select_shp = arcpy.env.workspace + nazev + ".shp"
arcpy.Select_analysis(kraje, kraje_Select_shp, "\"KODNUTS\" = '"+nazev+"'")
5
- Výpis souřadnic lomových bodů uzemí obce 'Lhota'
import arcpy
arcpy.env.workspace = "C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb"
obce = "ObcePolygony"
try:
data = arcpy.Describe(obce)
shapename = data.ShapeFieldName
rows = arcpy.SearchCursor(obce, '"NAZOB" = \'Lhota\'')
for row in rows:
prvek = row.getValue(shapename)
print "Prvek %s: " % row.NAZOB
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.