1

I developed a complex python application for road generation from GPS Devices that uses a few Arcpy Tools.

I want to try and replicate this Applications functionality using a freeware like PyQGIS instead of Arcpy, but in order to do this I need to find tools & plugins from QGIS that mimic the following tools:

  • arcpy.da.SearchCursor

  • arcpy.TableToTable_conversion

  • arcpy.JoinField_management

    • arcpy.MakeQueryTable_management

    • arcpy.Delete_management

    • arcpy.AddField_management

    • arcpy.CalculateField_management

    • arcpy.MakeXYEventLayer_management

    • arcpy.CopyFeatures_management

    • arcpy.PointsToLine_management, QGIS Points to Path: http://spatialgalaxy.net/2011/12/30/qgis-plugin-of-the-week-points-to-paths/

    • arcpy.Intersect_analysis

    • arcpy.SpatialJoin_analysis

    • arcpy.MakeFeatureLayer_management

    • arcpy.SelectLayerByAttribute_management

    • arcpy.LayerToKML_conversion

    • arcpy.ApplySymbologyFromLayer_management

    I am also researching this and will post the matching tools in the question as I find them to help anyone who is having similar issues, once all Arcpy tools have a matching PyQGIS tool or plugin I will accept an answer with them all in it, If an answer has at least 1 matching tool I will upvote, but no answer will be accepted until each arcpy tool has a matching PyQGIS

closed as too broad by PolyGeo Feb 16 '17 at 4:50

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • As per the Tour there should be only one question asked per question and here you are effectively asking at least 16 (one per tool). – PolyGeo Feb 16 '17 at 4:51
1

I think some of the tools you are looking for can be found in a single plugin - the Processing plugin. Importing this plugin from PyQGIS would allow you to call various tools (I am not an ArcGIS user so I am judging the tools you mentioned by their name and a quick search):

ArcGIS                            QGIS

arcpy.AddField_management         processing.runalg("qgis:fieldcalculator",...) or processing.runalg("qgis:addfieldtoattributestable",...)
arcpy.CalculateField_management   processing.runalg("qgis:fieldcalculator",...)
arcpy.Intersect_analysis          processing.runalg("qgis:intersection",...)
arcpy.SpatialJoin_analysis        processing.runalg("qgis:joinattributesbylocation",...)

The arcpy.MakeFeatureLayer_management mentions that it creates a temporary layer which could be used as an input to another geoprocessing tool. When you use a processing tool in PyQGIS, you can use the term None as an output as this automatically creates the temporary file for that geoprocessing tool.

E.g.

outputs_1=processing.runalg("qgis:fieldcalculator", input_Layer, ............, None)
outputs_2=processing.runalg("qgis:fieldcalculator", outputs_1, ..........., Result)