155GIS2 / 9. cvičení: Porovnání verzí

Z GeoWikiCZ
Řádek 82: Řádek 82:
import arcpy
import arcpy
arcpy.env.overwiteOutput = True
arcpy.env.overwiteOutput = True
arcpy.env.workspace = "C:/users/landa/smetiste/u04/"
arcpy.env.workspace = "C:/users/landa/smetiste/u04"


kraje = "C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb\KrajePolygony"
kraje = "C:\data\ArcGIS\ArcCR500\AdministrativniCleneni_v12.gdb\KrajePolygony"
Řádek 90: Řádek 90:
       nazev = row.KOD_CZNUTS3
       nazev = row.KOD_CZNUTS3
       print("{0}...".format(nazev))
       print("{0}...".format(nazev))
       kraje_Select_shp = arcpy.env.workspace + nazev + ".shp"
       kraje_Select_shp = arcpy.env.workspace + "/" + nazev + ".shp"
       arcpy.Select_analysis(kraje, kraje_Select_shp, "\"KOD_CZNUTS3\" = '" + nazev + "'")
       arcpy.Select_analysis(kraje, kraje_Select_shp, "\"KOD_CZNUTS3\" = '" + nazev + "'")
</source>
</source>

Verze z 14. 4. 2016, 11:05

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

Náplň

Poznámky k systému ArcGIS

Ukázka interaktivní Python konzole

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ší 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: {0}".format(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", '"NAZ_OBEC" = \'Liberec\'')   #vytvori cursor
  for row in rows:
      pocet = row.POCET_OBYV # pocet obce Liberec
  rows = arcpy.SearchCursor("ObcePolygony")
  for row in rows:
      if (row.POCET_OBYV > pocet):
         print("{0} - {1}".format(row.NAZ_OBEC, row.POCET_OBYV))
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.KOD_CZNUTS3
      print("{0}...".format(nazev))
      kraje_Select_shp = arcpy.env.workspace + "/" + nazev + ".shp"
      arcpy.Select_analysis(kraje, kraje_Select_shp, "\"KOD_CZNUTS3\" = '" + 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 {0}: ".format(row.NAZOB))
       partnum = 0
       for part in prvek:
           print("Part {0}: ".format(partnum))
           for bod in prvek.getPart(partnum):
               print("{0} {1}".format(bod.X, bod.Y))
           partnum += 1  
except:
   print arcpy.GetMessages()

Další úlohy najdete v cvičení k předmětu 153GIS2.