I am working on a process and during that process for each project I need to add 16 new fields as text strings to my shapefile. T_1, R_1, S_1, QS_1,... these 4 fields out to "_4" .
My scripting knowledge is not quite up to par but learning.
I am working on a process and during that process for each project I need to add 16 new fields as text strings to my shapefile. T_1, R_1, S_1, QS_1,... these 4 fields out to "_4" .
My scripting knowledge is not quite up to par but learning.
Search for the Add Field (Data Management) tool, right click it, select batch. Input your parameters per field, press the + sign to add all those you need. Can use this within a model or script
After finding some script i changed it up a bit and it worked great
from PyQt4.QtCore import QVariant
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
if layer.wkbType() == QGis.WKBPoint:
with edit(layer):
layer.dataProvider().addAttributes( [ QgsField("T_1", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("R_1", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("S_1", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("QS_1", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("T_2", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("R_2", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("S_2", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("QS_2", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("T_3", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("R_3", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("S_3", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("QS_3", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("T_4", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("R_4", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("S_4", QVariant.String) ] )
layer.dataProvider().addAttributes( [ QgsField("QS_4", QVariant.String) ] )
else:
pass
This post helped me down the road to figure this out: Add multiple fields to a batch of layers in QGIS?``