Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. ##geo=group
  2. ##Warstwa1=vector polygon
  3. ##Warstwa2=vector point
  4. ##Pole_wyb=field Warstwa2
  5. ##Wyjscie=output vector
  6.  
  7. from qgis.core import *
  8. from PyQt4.QtCore import QVariant
  9.  
  10. warstwa1 = processing.getObject(Warstwa1)
  11. warstwa2 = processing.getObject(Warstwa2)
  12.  
  13. pola = QgsFields (warstwa1.fields())
  14.  
  15. pole = QgsField('ILOSC', QVariant.Int)
  16. pola.append(pole)
  17. pole = QgsField('SUMA', QVariant.Double)
  18. pola.append(pole)
  19. pole = QgsField('SREDNIA', QVariant.Double)
  20. pola.append(pole)
  21.  
  22. writer = processing.VectorWriter(
  23. Wyjscie,
  24. warstwa1.dataProvider().encoding(),
  25. pola,
  26. warstwa1.wkbType(),
  27. warstwa1.crs())
  28.  
  29. feats = processing.features(warstwa1)
  30. n = len(feats)
  31. for i, feat in enumerate(feats):
  32. progress.setPercentage(int(100 * i / n))
  33. #do something with 'feat'
  34.  
  35. obiekt = QgsFeature(pola)
  36. geometria = feat.geometry()
  37. obiekt.setGeometry(geometria)
  38.  
  39. for kolumna in warstwa1.fields():
  40. nazwa = kolumna.name()
  41. obiekt[nazwa] = feat[nazwa]
  42.  
  43. geom = QgsGeometry(geometria)
  44. request = QgsFeatureRequest(geom.boundingBox())
  45. count = 0
  46. sum = 0.0
  47. for feat2 in processing.features(warstwa2, request):
  48. if geom.intersects(feat2.geometry()):
  49. count += 1
  50. sum+=float(feat2[Pole_wyb])
  51.  
  52. obiekt["ILOSC"] = count
  53. obiekt["SUMA"] = sum
  54. obiekt["SREDNIA"] = obiekt["SUMA"]/obiekt["ILOSC"]
  55. writer.addFeature(obiekt)
  56.  
  57.  
  58. del writer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement