155GIS2 / 9. cvičení

Z GeoWikiCZ

Úvod do skriptování v jazyku Python (arcpy)

Náplň

Poznámky k systému ArcGIS

Odkazy

Poznámky k systému GRASS

Úvod do skriptování v jazyce Python v systému GRASS.

Spuštění skriptu z wxGUI, výpis

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).

Další úlohy zde.

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.