Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #biblioteka OGR
  2. from osgeo import ogr
  3. import os
  4.  
  5. #nie dziala jak w gdalu
  6. ogr.UseExceptions()
  7.  
  8. # wtej bibliotece najpierw trzeba otqorzyc zrodlo danych
  9. #dane wektorowe maja bardziej zlozona strukture
  10.  
  11. # jest zrodlo danych
  12.  
  13. #do otwarcia trzeba podac nazwe pliku shp
  14.  
  15. ds = ogr.Open('waterways.shp')
  16.  
  17. if ds is None:
  18. os.exit('Nie moge otworzyc pliku')
  19.  
  20. l_warstw = ds.GetLayerCount()
  21. print("liczba warstw : {} ".format(l_warstw))
  22.  
  23. for i in range(l_warstw):
  24. warstwa = ds.GetLayer(i)
  25. nazwa = warstwa.GetName()
  26. print("nazwaz warstwy nr {}: {}".format(i,nazwa))
  27.  
  28.  
  29. # jezeli mamy katalog i w nim warstwy shp to mozna podac nazwe katalogu i kazdy shp bedzie odczytany
  30. #ds.GetLayerByName mozna pobrac warstwe po nazwie, a mozna czyms innym
  31. #odczytac po indeksie
  32.  
  33. ww = ds.GetLayerByName('waterways')
  34. l_obiektow = ww.GetFeatureCount()
  35. print("licbza obiektow : {} ".format(l_obiektow))
  36.  
  37. #iterowanie po obiektach jezeli nie porzebujemy liczby obiektow albo indeksow
  38.  
  39. #for i in range(l_obiektow):
  40. # ft = ww.GetFeature(i)
  41. # print(ft)
  42.  
  43. for ft in ww:
  44. # print(ft.GetField(0),ft.getField(1))
  45. #mamy tu dostep do atrybutow z tabeli atrybutow z warstw shp
  46. print(ft.GetField('osm_id'),ft.GetField('name'),ft.GetField('width'))
  47.  
  48. #odzcytanie geometrii
  49. w = ww.GetFeature(0)
  50. geom = w.getGeometryRef()
  51. # w konsoli str(geom) wtedy sie ladnie wystwiela dane
  52.  
  53. #points = geom.GetPoints() zwroci liste wspolrzednych
  54.  
  55.  
  56.  
  57.  
  58. #lista = [1,2,3,4]
  59. #for i in range(len(lista)):
  60. # el=lista[i]
  61. # print(el)
  62.  
  63. #for el in lista:
  64. # print(el)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement