Szukam kilku przykładów wykonywania prostych skryptów Python w QGIS. Jak miałbym przeprowadzić analizę bufora w zbiorze danych?
Nie mogę znaleźć dużo w podręczniku i pythonie QGIS, który całkiem pasuje do dokumentacji Esri.
źródło
Szukam kilku przykładów wykonywania prostych skryptów Python w QGIS. Jak miałbym przeprowadzić analizę bufora w zbiorze danych?
Nie mogę znaleźć dużo w podręczniku i pythonie QGIS, który całkiem pasuje do dokumentacji Esri.
Spójrz na książki kucharskiej PyQGIS .
Postępuj zgodnie z przykładem, jak iterować po warstwie wektorowej. Uzyskując dostęp do geometrii, możesz zastosować metodę buffer (). Zobacz także interfejs API QGIS: http://www.qgis.org/api/classQgsGeometry.html#a98208752e1beb1a5d3a7eedffbfdb2e4
Masz różne sposoby na uzyskanie tego, co chcesz za pomocą konsoli PyQGIS:
from qgis.utils import iface
from qgis.analysis import QgsGeometryAnalyzer
mc = iface.mapCanvas()
layer = mc.currentLayer()
QgsGeometryAnalyzer().buffer(layer, "path_to/output.shp", 500, False, False, -1)
from sextante.core.Sextante import Sextante
Sextante.runalg("ftools:fixeddistancebuffer","input_path.shp", False, 500, 5, True, "output_path_buffer.shp")
Aby uzyskać parametry sextante, wpisz Sextante.alghelp("ftools:fixeddistancebuffer")
w konsoli PyQGIS.
Mam nadzieję że to pomoże !
jeśli chcesz podstawowy kod, możesz spróbować:
#Don't forget to Toggle Editing
lyr = qgis.utils.iface.activeLayer()
provider = lyr.dataProvider()
feat= QgsFeature()
alls = provider.attributeIndexes()
provider.select(alls)
while provider.nextFeature(feat):
buff = feat.geometry().buffer(5,2)
lyr.dataProvider().changeGeometryValues({feat.id(): buff})
Tylko drobiazg do dodania do ostatniej odpowiedzi.
Aby wyszukać algorytm SEXTANTE na dany temat, użyj Sextante.alglist (). Na przykład, w przypadku wyszukiwania czegoś zawierającego „bufor”, zrobiłbyś to
I dostaniesz:
W ten sposób możesz znaleźć nazwę algorytmu do wywołania (ftools: fixeddistancebuffer, w przykładzie zaproponowanym w odpowiedzi powyżej)
Możesz zmienić swój skrypt w nowy algorytm w SEXTANTE. Dokumentacja SEXTANTE zawiera szczegółowe informacje na ten temat.
źródło