יותר

התפוצצות של תכונות מרובות חלקים ב- qgis באמצעות פיתון


אני רוצה להתפוצץ שכבה מרובת חלקים לחד-חלקי בפייתון. אני רואה דרך ה- qgis gui יש דרך לעשות את זה תחת וקטור - גיאומטריה - כלים - מרובי חלקים ליחידים ... שעושה את מה שאני צריך, אני פשוט צריך את קוד הפיתון בשביל זה. אני חדש ב- qgis.


שכבה מרובת חלקים היא רשימה פשוטה של ​​שכבות חד-חלקיות:

אתה יכול להשתמש:

1) פיונה ומעצב

מ shapely.geometry צורת ייבוא ​​ייבוא ​​fiona multis = fiona.open ("multipolygons.shp") # תכונה ראשונה של הטופס first = multis.next () הדפס תחילה {'geometry': {'type': 'MultiPolygon', ' קואורדינטות: [[[(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)]]]}, "סוג ':' Feature ',' id ':' 0 ',' properties ': OrderedDict ([(u'id', 1)])} # טרנספורמציה לגיאומטריה חטובה multipol = צורה (תחילה ['גיאומטריה'])

איטרציה דרך הגיאומטריות של מולטיפול

עבור פולי multipol: להדפיס פוליגון פולי ((244,697.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)) פוליגון ((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 במסוף

שכבה = qgis.utils.iface.activeLayer () # התכונה הראשונה של הטופס first = layer.getFeatures (). הבא () # הגיאומטריה מולפול = first.geometry ()

לחזור דרך הגיאומטריות של המולטי-מצולע

עבור פולי multipol.asMultiPolygon (): הדפסה פולי [[(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)] ]

וגם

להדפיס QgsGeometry.fromPolygon (פולי) .exportToWkt () מצולע ((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))

וקל ליצור קובץ צורה חדש (פיונה, PyQGIS) או שכבה (PyQGIS) עם תוצאות אלו.

3) או מודול העיבוד של PyQGIS כמו ב- Run ftools מרובי חלקים לחלקים בודדים מ- PYQGIS '