Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. # Interpolate
  2. mem_layer = QgsVectorLayer("Point?crs="+vlayer.sourceCrs().authid(), 'point', 'memory')
  3. mem_layer.startEditing()
  4. fields = [field for field in csvlayer.fields()]
  5. prov = mem_layer.dataProvider()
  6. prov.addAttributes(fields)
  7. mem_layer.updateFields()
  8.  
  9. chainageIdx = csvlayer.fields().indexFromName(chainage_field)
  10.  
  11. for line in vlayer.getFeatures():
  12. for feat in csvlayer.getFeatures():
  13. new_feat = QgsFeature()
  14. attrs = feat.attributes()
  15. new_feat.setGeometry(line.geometry().interpolate(float(attrs[chainageIdx])))
  16. new_feat.setAttributes(attrs)
  17. mem_layer.addFeatures([new_feat])
  18. mem_layer.commitChanges()
  19.  
  20. # Calc 1
  21. mem_layer.startEditing()
  22. datetimeField = QgsField('DateTime', QVariant.Double)
  23. prov = mem_layer.dataProvider()
  24. prov.addAttributes([datetimeField])
  25. mem_layer.updateFields()
  26. fields.append(datetimeField)
  27.  
  28. newdatetimeIdx = mem_layer.fields().indexFromName('DateTime')
  29.  
  30. for feat in mem_layer.getFeatures():
  31. #mem_layer.changeAttributeValue(feat.id(),newdatetimeIdx, 1)
  32. feat.setAttribute(newdatetimeIdx, 1.0)
  33. mem_layer.updateFeature(feat)
  34. mem_layer.commitChanges()
  35.  
  36. # Output
  37. (sink_points, dest_id_points) = self.parameterAsSink(
  38. parameters,
  39. self.OUTPOINTS,
  40. context,
  41. fields,
  42. QgsWkbTypes.Point,
  43. vlayer.sourceCrs()
  44. )
  45. features = mem_layer.getFeatures()
  46. for current, feature in enumerate(features):
  47. # Stop the algorithm if cancel button has been clicked
  48. if feedback.isCanceled():
  49. break
  50. # Add a feature in the sink
  51. sink_points.addFeature(feature, QgsFeatureSink.FastInsert)
  52. # Update the progress bar
  53. feedback.setProgress(int(current * total))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement