I have mentioned my QGIS script below. In that script, I have used "if condition".
When I open QGIS and run the script first time, after selecting the "Coordinate_System_SLD_99", it works accurately.
When I run it a second time, if I select "Coordinate_System_Kadawala" option, output comes according to the "Coordinate_System_SLD_99" option.
Once I close and reopen QGIS, it works accurately.
When I run the program again after selecting another option, same problem arise.
Can anyone help me to solve this?
##Dxf_to_Polygon(With Meta Data)=name
##Meta_Data_File=table
##Coordinate_System_SLD_99=boolean
##Coordinate_System_Kadawala=boolean
##Dxf_file=file
##Shape_File_Name=output vector
outputs_GRASS7V_IN_DXF_1=processing.runalg('grass7:v.in.dxf', Dxf_file,'1',True,False,True,False,False,True,'200000.000000,700000.000000,200000.000000,700000.000000',0,None)
outputs_GRASS7V_CLEAN_1=processing.runalg('grass7:v.clean', outputs_GRASS7V_IN_DXF_1['output'],1,0.1,'200000.000000,700000.000000,200000.000000,700000.000000',-1.0,0.0001,None,None)
outputs_QGISPOLYGONIZE_1=processing.runalg('qgis:polygonize', outputs_GRASS7V_CLEAN_1['output'],True,True,None)
outputs_SAGAPOLYGONDISSOLVEBYATTRIBUTE_1=processing.runalg('saga:polygondissolvebyattribute', outputs_QGISPOLYGONIZE_1['OUTPUT'],'area','layer','perimeter',False,None)
outputs_SAGAPOLYGONDISSOLVEALLPOLYGONS_1=processing.runalg('saga:polygondissolveallpolygons', outputs_SAGAPOLYGONDISSOLVEBYATTRIBUTE_1['DISSOLVED'],False,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_1=processing.runalg('qgis:addfieldtoattributestable', outputs_SAGAPOLYGONDISSOLVEALLPOLYGONS_1['DISSOLVED'],'Req_No',2,30.0,0.0,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_2=processing.runalg('qgis:addfieldtoattributestable', outputs_QGISADDFIELDTOATTRIBUTESTABLE_1['OUTPUT_LAYER'],'Surveyor_Name',2,25.0,0.0,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_3=processing.runalg('qgis:addfieldtoattributestable', outputs_QGISADDFIELDTOATTRIBUTESTABLE_2['OUTPUT_LAYER'],'Survey_Date',2,20.0,0.0,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_4=processing.runalg('qgis:addfieldtoattributestable', outputs_QGISADDFIELDTOATTRIBUTESTABLE_3['OUTPUT_LAYER'],'Plan_Name',2,20.0,0.0,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_5=processing.runalg('qgis:addfieldtoattributestable', outputs_QGISADDFIELDTOATTRIBUTESTABLE_4['OUTPUT_LAYER'],'Method',2,20.0,0.0,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_6=processing.runalg('qgis:addfieldtoattributestable', outputs_QGISADDFIELDTOATTRIBUTESTABLE_5['OUTPUT_LAYER'],'Cordi_Sys',2,20.0,0.0,None)
outputs_QGISADDFIELDTOATTRIBUTESTABLE_7=processing.runalg('qgis:addfieldtoattributestable', outputs_QGISADDFIELDTOATTRIBUTESTABLE_6['OUTPUT_LAYER'],'Purpose',2,20.0,0.0,None)
**if Coordinate_System_SLD_99 == True:
processing.runalg('qgis:reprojectlayer',outputs_QGISADDFIELDTOATTRIBUTESTABLE_7['OUTPUT_LAYER'],'EPSG:5235',Shape_File_Name)
elif Coordinate_System_Kadawala == True:
processing.runalg('qgis:reprojectlayer', outputs_QGISADDFIELDTOATTRIBUTESTABLE_7['OUTPUT_LAYER'],'EPSG:5234',Shape_File_Name)**
# #outputs_QGISREPROJECTLAYER_1=processing.runalg('qgis:reprojectlayer',outputs_QGISADDFIELDTOATTRIBUTESTABLE_7['OUTPUT_LAYER'],'EPSG:5235',Shape_File_Name)
#outputs_QGISREPROJECTLAYER_1=processing.runalg('qgis:reprojectlayer', outputs_QGISADDFIELDTOATTRIBUTESTABLE_7['OUTPUT_LAYER'],'EPSG:5234', Shape_File_Name)
from PyQt4.QtCore import QVariant
from qgis.utils import iface
import qgis
from qgis.core import *
from PyQt4.QtCore import *
#vl = iface.activeLayer()----->this is the corret code
#qgis.utils.iface.setActiveLayer(vl)
#vl = qgis.utils.iface.activeLayer()
vl = processing.getObject(Shape_File_Name)
vl.startEditing()
for field in vl.fields():
print field.name()
vl.startEditing()
metafile= processing.getObject(Meta_Data_File)
metafile.startEditing()
b=[]
features = metafile.getFeatures()
for feat in features:
attrs = feat.attributes()
b.append(attrs[1])
features = vl.getFeatures()
for feat in features:
attrs = feat.attributes()
print attrs[1]
print attrs[2]
print attrs[3]
print attrs[4]
selection=vl.getFeatures(QgsFeatureRequest().setFilterExpression(' "OID"=0'))
for feat in selection:
vl.changeAttributeValue(feat.id(),1, b[1])
vl.changeAttributeValue(feat.id(),2, b[10])
vl.changeAttributeValue(feat.id(),3, b[6])
vl.changeAttributeValue(feat.id(),4, b[3])
vl.changeAttributeValue(feat.id(),5, b[8])
vl.changeAttributeValue(feat.id(),6, b[9])
vl.changeAttributeValue(feat.id(),7, b[2])
vl.commitChanges()
#selection=vl.getFeatures(QgsFeatureRequest().setFilterExpression(' "Req_No"= 5'))
#for feat in selection:
#vl.changeAttributeValue(feat.id(),1, '45')
#vl.commitChanges()