153GIS2 / 10. cvičení: Porovnání verzí

Z GeoWikiCZ
m (Založena nová stránka: Hlavní stránka předmětu ==Skriptování v Python - úvod== [http://www.scribd.com/doc/6594613/Writing-Geoprocessing-Scripts e-kniha o skriptován...)
 
Řádek 44: Řádek 44:
   print gp.GetMessages()  
   print gp.GetMessages()  


import arcgisscripting, sys    #import modulu
gp = arcgisscripting.create()  #vytvoreni objektu geoprocessingu
gp.Overwriteoutput = 1          #nastaveno prepisovani
gp.workspace = "d:/jirka/skola/vyuka/gis/model/"    #nastaveni workspace - pracovni adresar nebo geodatabaze
try:
  input = sys.argv[1]    #String - nazev obce
  output = sys.argv[2]    #cesta k textovemu souboru
  f = open(output, 'w')  #otevru file
  rows = gp.SearchCursor("obce.shp")  #vytvori cursor
  row = rows.next()      #promena row obsahuje jeden zaznam ze shapefilu
  while row:
      if row.GetValue("NAZEV") == input:
          pocet = row.GetValue("OB01")    #pocet obyvatel zadane obce
      row = rows.next()
          radky = gp.SearchCursor("obce.shp")
  rad = radky.next()
  while rad:
      if rad.GetValue("OB01") > pocet:
          f.write(rad.GetValue("NAZEV")+" "+str(rad.GetValue("OB01"))+"\n")    #do souboru pisu obce ktere maji vic obyvatel nez zadana
      rad = radky.next()
  f.close()
except:
  print gp.GetMessages()
{{GIS}}
{{GIS}}

Verze z 5. 5. 2009, 14:59

Hlavní stránka předmětu

Skriptování v Python - úvod

e-kniha o skriptování v ArcGIS

Ukázka skriptů:

import arcgisscripting, sys     #import modulu
gp = arcgisscripting.create()   #vytvoreni objektu geoprocessingu
gp.Overwriteoutput = 1          #nastaveno prepisovani
gp.workspace = "d:/jirka/skola/vyuka/gis/model/"     #nastaveni workspace - pracovni adresar nebo geodatabaze

try:
   data = gp.Describe("obce.shp")   
   fields = data.Fields
   field = fields.next()
   while field:
      print field.Name
      field = fields.next()
except:
   print gp.GetMessages() 


import arcgisscripting, sys     #import modulu
gp = arcgisscripting.create()   #vytvoreni objektu geoprocessingu
gp.Overwriteoutput = 1          #nastaveno prepisovani
gp.workspace = "d:/jirka/skola/vyuka/gis/model/"     #nastaveni workspace - pracovni adresar nebo geodatabaze

try:
  input = "Liberec"     #String - nazev obce
  rows = gp.SearchCursor("obce.shp")   #vytvori cursor
  row = rows.next()       #promena row obsahuje jeden zaznam ze shapefilu
  while row:
      if row.GetValue("NAZEV") == input:
          pocet = row.GetValue("OB01")     #pocet obyvatel zadane obce
      row = rows.next()
  radky = gp.SearchCursor("obce.shp")
  rad = radky.next()
  while rad:
      if rad.GetValue("OB01") > pocet:
         print rad.GetValue("NAZEV"), rad.GetValue("OB01")
      rad = radky.next()
except:
  print gp.GetMessages() 


import arcgisscripting, sys     #import modulu
gp = arcgisscripting.create()   #vytvoreni objektu geoprocessingu
gp.Overwriteoutput = 1          #nastaveno prepisovani
gp.workspace = "d:/jirka/skola/vyuka/gis/model/"     #nastaveni workspace - pracovni adresar nebo geodatabaze
try:
  input = sys.argv[1]     #String - nazev obce
  output = sys.argv[2]    #cesta k textovemu souboru
  f = open(output, 'w')   #otevru file
  rows = gp.SearchCursor("obce.shp")   #vytvori cursor
  row = rows.next()       #promena row obsahuje jeden zaznam ze shapefilu
  while row:
      if row.GetValue("NAZEV") == input:
          pocet = row.GetValue("OB01")     #pocet obyvatel zadane obce
      row = rows.next()
         radky = gp.SearchCursor("obce.shp")
  rad = radky.next()
  while rad:
      if rad.GetValue("OB01") > pocet:
          f.write(rad.GetValue("NAZEV")+" "+str(rad.GetValue("OB01"))+"\n")    #do souboru pisu obce ktere maji vic obyvatel nez zadana
      rad = radky.next()
  f.close()
except:
  print gp.GetMessages()