[Qgis-user] Clipping a QgsVectorLayer object of type LineString with a QgsVectorLayer object of type Polygon

Lukas Winiwarter lukas.winiwarter at geo.tuwien.ac.at
Mon May 22 00:37:54 PDT 2017


Hi Marian,

I suppose the QGIS Clip algorithm does not work on "memory"-Layers, i.e. 
Layers that are not written to disk. You can either try to save your 
layer as a shapefile and then run the clipping algorithm, or iterate 
over the geometries and use the QgsGeometry.Intersection(QgsGeometry) 
function 
(https://qgis.org/api/classQgsGeometry.html#a6ca0f918c7c67aff8ac9e0094707c99e).

This could be something like this (not tested, just off the top of my head):
clipPoly = clipLayer.getFeatures()[0].geometry() # get the first feature 
(assumes only one polygon)

for input_feat in inputLayer.getFeatures():
     input_geom = input_feat.geometry()
     output_geom = input_geom.Intersection(clipPoly)
     # do something with output_geom, e.g. write to a layer

Best regards,
Lukas

On 19.05.2017 16:02, Tudorache, Marian wrote:
>
> *Hi,*
>
> I have tried to run clipping processing algorithm and it fails.
>
> First version:
>
> srs = qgis.core.QgsCoordinateReferenceSystem(4019, qgis.core. 
> QgsCoordinateReferenceSystem.EpsgCrsId)
>
> #Input Layer
>
> inputLayer = qgis.core.QgsVectorLayer(shapeFileLocation + 
> “/inputLineString.shp”, “inputLineString”, “ogr”)
>
> inputLayer.setCrs(srs)
>
> Clipping Layer:
>
> clipLayer = 
> qgis.core.QgsVectorLayer(“Polygon?crs={0}”.format(srs.authid())
>
> #algorithm to add a clipping polygon feature
>
> #the algorithm works because I tested with clipLayer.getFeatures() and 
> I was able to extract the geometry and points
>
> …..
>
> ….
>
> #calling processing algorithm.
>
> processing.runalg(‘qgis.clip’, inputLayer, clipLayer, “output.shp”)
>
> The error:
>
> Unable to execute algorithm
>
> Wrong parameter value: Polygon?crs=ESPG:4019
>
> Any idea why is not working?
>
> Thank you,
>
> Marian
>
>
> ------------------------------------------------------------------------
>
> This electronic message, as well as any transmitted files included in 
> the electronic message, may contain privileged or confidential 
> information and is intended solely for the use of the individual(s) or 
> entity to which it is addressed. If you have received this electronic 
> message in error please notify the sender immediately and delete the 
> electronic message. Any unauthorized copying, disclosure or 
> distribution of the electronic message is strictly forbidden. NAV 
> CANADA accepts no liability for any damage caused by any virus and/or 
> other malicious code transmitted by this electronic communication.
>
> Le présent message électronique et tout fichier qui peut y être joint 
> peuvent contenir des renseignements privilégiés ou confidentiels 
> destinés à l’usage exclusif des personnes ou des organismes à qui ils 
> s’adressent. Si vous avez reçu ce message électronique par erreur, 
> veuillez en informer l’expéditeur immédiatement et supprimez le. Toute 
> reproduction, divulgation ou distribution du présent message 
> électronique est strictement interdite. NAV CANADA n’assume aucune 
> responsabilité en cas de dommage causé par tout virus ou autre 
> programme malveillant transmis par ce message électronique.
>
>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

-- 
Lukas Winiwarter                        TU Wien,
Stud. Ass.                              Department of Geodesy and
Tel: +43-(0)1-58801-12246               Geoinformation (E120),
Fax: +43-(0)1-58801-912246              Research Group Photogrammetry
Email: lukas.winiwarter at tuwien.ac.at    Gußhausstraße 27-29
http://photo.geo.tuwien.ac.at/          1040 Vienna, Austria

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20170522/5dbfb0ea/attachment.html>


More information about the Qgis-user mailing list