<div dir="ltr">I solved both cases of the previous email.<br>If you want to buffer starting from a specified distance stored in a field, please have a look on this post [0] (written by me):<br><br>[0] <a href="https://howtoinqgis.wordpress.com/2016/11/28/how-to-buffer-vectors-from-fields-in-qgis-using-python/" target="_blank">https://howtoinqgis.wordpress.<wbr>com/2016/11/28/how-to-buffer-v<wbr>ectors-from-fields-in-qgis-usi<wbr>ng-python/</a><br><br>If you want to directly buffer (for your specific case) without any preliminary edit on the layer, copy&paste the code at the end of this email: it was adapted from the link above (please refer to it for a clear comprehension)<div><br></div><div>For both cases, you may decide to buffer all the features or only the selected ones.</div><div>I hope it would be useful.</div><div>Best regards,</div><div>Marco</div><div><br></div><div>******** code below ********</div><div><br><div><div>##Input_Layer=vector</div><div>##Segments=number 30</div><div>##Buffer_only_selected_feature<wbr>s=Boolean False</div><div><br></div><div>from qgis.core import *</div><div>from qgis.PyQt.QtCore import QVariant</div><div>import math</div><div><br></div><div>layer = processing.getObject(Input_Lay<wbr>er)</div><div>crs = layer.crs().toWkt()</div><div><br></div><div># Create a dictionary with the preferred distances</div><div>distances = {'normal fault': 30, 'inverse fault': 20, 'Overthrust': 50, 'Syncline': 20} </div><div><br></div><div># Create the output layer</div><div>outLayer = QgsVectorLayer('Polygon?crs='+ crs, 'outLayer' , 'memory')</div><div>prov = outLayer.dataProvider()</div><div>fields = layer.pendingFields() # Fields from the input layer</div><div>#fields.append(QgsField('drawn<wbr>_area', QVariant.Double, '', 10, 3))</div><div>prov.addAttributes(fields) # Add input layer fields to the outLayer</div><div>outLayer.updateFields()</div><div><br></div><div># Check for selected features</div><div>if layer.selectedFeatures() and Buffer_only_selected_features is True:</div><div>    features = layer.selectedFeatures()</div><div>else:</div><div>    features = layer.getFeatures()</div><div><br></div><div># Generate buffers</div><div>for feat in features:</div><div>    inAttr = feat.attributes() # Input attributes</div><div>    inGeom = feat.geometry() # Input geometry</div><div>    bf_inGeom = inGeom.buffer(distances[feat['<wbr>type']], Segments)</div><div>    poly=bf_inGeom.asPolygon()</div><div>    drawn_area = bf_inGeom.area()</div><div>    inAttr.append(drawn_area)</div><div>    outGeom = QgsFeature()</div><div>    outGeom.setGeometry(QgsGeometr<wbr>y.fromPolygon(poly))</div><div>    outGeom.setAttributes(inAttr) # Output attributes</div><div>    prov.addFeatures([outGeom]) # Output geometry</div><div><br></div><div># Add the layer to the Layers panel</div><div>QgsMapLayerRegistry.instance()<wbr>.addMapLayer(outLayer)</div></div><div><br></div><div>******** end of the code ********<br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-11-27 20:11 GMT+01:00 Marco Grisolia <span dir="ltr"><<a href="mailto:marco.grisolia5@gmail.com" target="_blank">marco.grisolia5@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Don't worry for the delay...<br>
Your goal is to generate the buffer a priori (i.e. by assigning a<br>
specific value of radius for each feature, without any preliminary<br>
edit on the layer) or by searching for it in a field of the layer<br>
(i.e. as Randal Hale suggested)?<br>
<span class="HOEnZb"><font color="#888888">Marco<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
2016-11-27 18:54 GMT+01:00 Azzurra Lentini <<a href="mailto:azzurralentini@gmail.com">azzurralentini@gmail.com</a>>:<br>
> Dear Marco, apologies to write you only now.<br>
> Yes with variable distance buffer is fine. Thanks a lot.<br>
><br>
> If you can, could you please write me the PyQgis script for the other<br>
> option?<br>
><br>
> all regards, Azzurra<br>
><br>
> 2016-11-16 9:22 GMT+01:00 Marco Grisolia <<a href="mailto:marco.grisolia5@gmail.com">marco.grisolia5@gmail.com</a>>:<br>
>><br>
>> If you want to assign a specified buffer for each kind of feature, you<br>
>> may use a simple PyQGIS script using a call of buffer() from<br>
>> QgsGeometry(). Are you able to do it? Otherwise I may try to write it<br>
>> for you if my understanding of the problem was right.<br>
>> Therefore, if your buffer distances are inside a field, you may use<br>
>> the "Variable Distance Buffer" algorithm from Processing.<br>
>> Best regards,<br>
>> Marco<br>
>><br>
>> 2016-11-16 1:26 GMT+01:00 Azzurra Lentini <<a href="mailto:azzurralentini@gmail.com">azzurralentini@gmail.com</a>>:<br>
>> > Dear all,<br>
>> ><br>
>> > I have a shape file with a field called “type”.  In the “type”  field I<br>
>> > have<br>
>> > 4 kinds of samples ( 19 records).<br>
>> ><br>
>> > See in the attachment.<br>
>> ><br>
>> > The 4 samples are: normal fault, inverse fault, overthrust, syncline.<br>
>> ><br>
>> > I would like to create a buffer with different distance for each sample<br>
>> > (the<br>
>> > best it would be to obtain a shape with 5 different buffer distances).<br>
>> ><br>
>> > For example  the buffer distance for the sample “ normal fault” is 30 m,<br>
>> > for<br>
>> > the “inverse fault “ is 20 m, for the “overthrust” is 50 m and for the<br>
>> > “syncline” is 20 m.<br>
>> ><br>
>> ><br>
>> ><br>
>> > How I can do this kind of buffer??<br>
>> ><br>
>> ><br>
>> ><br>
>> > Thanks A.L.<br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > Dr. Hydrogeologist<br>
>> > AZZURRA LENTINI<br>
>> > Expert of evaluation environmental hazards<br>
>> > GIS application<br>
>> > Haity Mobile Tel: 0050946057393<br>
>> > ++++++++++++++++++++++++++<br>
>> > Italy Mobile Tel.: **(39) 338 24 40 676<br>
>> > ++++++++++++++++++++++++++<br>
>> > SKYPE azzurrahydro<br>
>> > ++++++++++++++++++++++++++<br>
>> > <a href="mailto:azzurralentini@gmail.com">azzurralentini@gmail.com</a><br>
>> > ++++++++++++++++++++++++++<br>
>> > *Par respect pour l'environnement,*<br>
>> ><br>
>> > *n'imprimez ce mail qu'en cas d'absolue nécessité*<br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > ______________________________<wbr>_________________<br>
>> > Qgis-user mailing list<br>
>> > <a href="mailto:Qgis-user@lists.osgeo.org">Qgis-user@lists.osgeo.org</a><br>
>> > List info: <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user" rel="noreferrer" target="_blank">http://lists.osgeo.org/<wbr>mailman/listinfo/qgis-user</a><br>
>> > Unsubscribe: <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user" rel="noreferrer" target="_blank">http://lists.osgeo.org/<wbr>mailman/listinfo/qgis-user</a><br>
><br>
><br>
><br>
><br>
> --<br>
> Dr. Hydrogeologist<br>
> AZZURRA LENTINI<br>
> Expert of evaluation environmental hazards<br>
> GIS application<br>
> Haity Mobile Tel: 0050946057393<br>
> ++++++++++++++++++++++++++<br>
> Italy Mobile Tel.: **(39) 338 24 40 676<br>
> ++++++++++++++++++++++++++<br>
> SKYPE azzurrahydro<br>
> ++++++++++++++++++++++++++<br>
> <a href="mailto:azzurralentini@gmail.com">azzurralentini@gmail.com</a><br>
> ++++++++++++++++++++++++++<br>
> *Par respect pour l'environnement,*<br>
><br>
> *n'imprimez ce mail qu'en cas d'absolue nécessité*<br>
><br>
><br>
><br>
><br>
><br>
><br>
</div></div></blockquote></div><br></div>