Viac

Explodujúce viacdielne funkcie v qgis pomocou pythonu

Explodujúce viacdielne funkcie v qgis pomocou pythonu


Chcem explodovať viacdielnu vrstvu na samostatnú časť v pythone. Vidím cez qgis gui, že existuje spôsob, ako to urobiť pod vektorom - geometriou - nástrojmi - Multipart to Singleparts ... čo robí to, čo potrebujem, potrebujem na to iba pythonovský kód. Som v qgis nováčikom.


Viacdielna vrstva je jednoduchý zoznam jednotlivých častí:

Môžeš použiť:

1) Fiona a Shapely

from shapely.geometry import shape import fiona multis = fiona.open ("multipolygons.shp") # prvá vlastnosť shapefile first = multis.next () vytlačiť najskôr {'geometry': {'type': 'MultiPolygon', ' poloha: [[[(244.697,45179524383, 1.000.369,2307574936), (244.827,15493968062, 1.000.373,0455558595), (244.933,96929392271, 1.000.353,9715640305), (244.933,96929392271, 1.000.353,9715640305), (244.930,15449555693, 1.000.147,9724522779), (244.697,45179524383, 1.000.159,4168473752), (244.697,45179524383, 1.000.369,2307574936)]], [[(246.082,22360202507, 1.000.453,1563215409), (246.139,44557751188, 1.000.460,7859182726), (246.189,03795626713, 1.000.403,5639427857), (246.189,03795626713, 1.000.403,5639427857), (246.086,03840039085, 1.000.132,7132588148), (245.990,66844124615, 1.000.205,1944277647), (246.082,22360202507, 1.000.453,1563215409)]]]},, typ ':' Feature ',' id ':' 0 ',' properties ': OrderedDict ([(u'id', 1)])} # transform to shapely geometry multipol = shape (prvý ['geometry'])

iterovať cez geometrie multipol

poly v multipol: tlač poly POLYGON ((244697.4517952438 1.000.369,230757494, 244.827,1549396806 1.000.373,045555859, 244.933,9692939227 1.000.353,971564031, 244.933,9692939227 1.000.353,971564031, 244.930,1544955569 1.000.147,972452278, 244.697,4517952438 1.000.159,416847375, 244.697,4517952438 1.000.369,230757494)) POLYGON ((246.082,2236020251 1.000.453,156321541, 246.139,4455775119 1.000.460,785918273, 246.189,0379562671 1.000.403,563942786, 246.189,0379562671 1.000.403,563942786, 246.086,0384003909 1.000.132,713258815, 245990,6684412461 1000205.194427765, 246082.2236020251 1000453.156321541))

2) PyQGIS v konzole

layer = qgis.utils.iface.activeLayer () # prvá vlastnosť shapefile first = layer.getFeatures (). next () # geometria multipol = first.geometry ()

iterovať cez geometrie Multipolygónu

poly v multipol.asMultiPolygon (): tlač poly [[(244.697,45179524383, 1.000.369,2307574936), (244827.15493968062, 1000373.0455558595), (244933.96929392271, 1000353.9715640305), (244933.96929392271, 1000353.9715640305), (244930.15449555693, 1000147.9724522779), (244697.45179524383, 1000159.4168473752), ( 244.697,45179524383, 1.000.369,2307574936)]] [[(246.082,22360202507, 1.000.453,1563215409), (246.139,44557751188, 1.000.460,7859182726), (246.189,03795626713, 1.000.403,5639427857), (246.189,03795626713, 1.000.403,5639427857), (246.086,03840039085, 1.000.132,7132588148), (245.990,66844124615, 1.000.205,1944277647), (246.082,22360202507, 1.000.453,1563215409)] ]

A

tlačiť QgsGeometry.fromPolygon (poly) .exportToWkt () POLYGON ((246082,22360202507115901 1000453.15632154094055295,246139.44557751188403927 1000460.78591827256605029,246189.03795626712962985 1000403.5639427857240662,246189.03795626712962985 1000403.5639427857240662,246086.03840039085480385 1000132.71325881476514041,245990.66844124614726752 1000205.19442776474170387,246082.22360202507115901 1000453,15632154094055295))

A je ľahké vytvoriť nový tvarový súbor (Fiona, PyQGIS) alebo vrstvu (PyQGIS) s týmito výsledkami

3) alebo modul spracovania PyQGIS ako v časti Run ftools multipart to singleparts from PYQGIS '


Pozri si video: Python u0026 QGIS070902-Layer style