Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #biblioteka OGR
- from osgeo import ogr
- import os
- #nie dziala jak w gdalu
- ogr.UseExceptions()
- # wtej bibliotece najpierw trzeba otqorzyc zrodlo danych
- #dane wektorowe maja bardziej zlozona strukture
- # jest zrodlo danych
- #do otwarcia trzeba podac nazwe pliku shp
- ds = ogr.Open('waterways.shp')
- if ds is None:
- os.exit('Nie moge otworzyc pliku')
- l_warstw = ds.GetLayerCount()
- print("liczba warstw : {} ".format(l_warstw))
- for i in range(l_warstw):
- warstwa = ds.GetLayer(i)
- nazwa = warstwa.GetName()
- print("nazwaz warstwy nr {}: {}".format(i,nazwa))
- # jezeli mamy katalog i w nim warstwy shp to mozna podac nazwe katalogu i kazdy shp bedzie odczytany
- #ds.GetLayerByName mozna pobrac warstwe po nazwie, a mozna czyms innym
- #odczytac po indeksie
- ww = ds.GetLayerByName('waterways')
- l_obiektow = ww.GetFeatureCount()
- print("licbza obiektow : {} ".format(l_obiektow))
- #iterowanie po obiektach jezeli nie porzebujemy liczby obiektow albo indeksow
- #for i in range(l_obiektow):
- # ft = ww.GetFeature(i)
- # print(ft)
- for ft in ww:
- # print(ft.GetField(0),ft.getField(1))
- #mamy tu dostep do atrybutow z tabeli atrybutow z warstw shp
- print(ft.GetField('osm_id'),ft.GetField('name'),ft.GetField('width'))
- #odzcytanie geometrii
- w = ww.GetFeature(0)
- geom = w.getGeometryRef()
- # w konsoli str(geom) wtedy sie ladnie wystwiela dane
- #points = geom.GetPoints() zwroci liste wspolrzednych
- #lista = [1,2,3,4]
- #for i in range(len(lista)):
- # el=lista[i]
- # print(el)
- #for el in lista:
- # print(el)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement