网上下载了一个北京公交线路数据,但是线路没有可分的属性,每个站点按照1,2,。。。n;1,2.。。。n;1,2,。。。n这样的规律存储,所以想自己再建个可数的线路标志属性。
原始数据的属性表如下图所示
>>> #-------处理公交数据,每个公交站点按照1,2,。。。n编号,但是没有公交线路信息
...
... import arcpy
... arcpy.env.workspace = 'D:\Teaching\2019ESRI开发大赛\结果\结果' #原来是r""
... workspace = arcpy.env.workspace
... editor = arcpy.da.Editor(workspace)
... shppath = "bjBus.shp"
... cursor = arcpy.UpdateCursor(shppath)
... busLineid = 1
... #赋值两个临时变量,记录station——N,如果差值为1,
... #说明还是同一条公交线路,如果差值较大,说明已经是下一条公交线路
... tempstationid = 0
... tempstationid2 = 1
... try:
... editor.startEditing(False)
... editor.startOperation()
... for my_row in cursor:
... tempstationid2 = (int)(my_row.getValue('station_N'))
... temp = tempstationid2 - tempstationid
... tempstationid = (int)(my_row.getValue('station_N'))
... if(temp ==1):
... my_row.setValue("busID",busLineid)
... else:
... busLineid +=1
... my_row.setValue("busID",busLineid)
...
... except Exception as e:
... print(e.message)
... finally:
... print("bus line operation is done")
... editor.stopOperation()
... editor.stopEditing(True)
...
Runtime error
Traceback (most recent call last):
File "<string>", line 8, in <module>
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\__init__.py", line 1199, in UpdateCursor
return gp.updateCursor(dataset, where_clause, spatial_reference, fields, sort_fields)
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 364, in updateCursor
self._gp.UpdateCursor(*gp_fixargs(args, True)))
IOError: "bjBus.shp" does not exist
>>>
处理完之后,busID还是为0.。。。。。。。。烦躁了。。。。。。
加一个错误捕捉语句
#-------处理公交数据,每个公交站点按照1,2,。。。n编号,但是没有公交线路信息
...
... import arcpy
... arcpy.env.workspace = r"D:/Teaching/2019ESRI开发大赛/结果/结果" #原来是r""
... workspace = arcpy.env.workspace
... editor = arcpy.da.Editor(workspace)
... shppath = "bjBus.shp"
... cursor = arcpy.UpdateCursor("bjBus",("FID","station_N")
... busLineid = 1
... #赋值两个临时变量,记录station——N,如果差值为1,
... #说明还是同一条公交线路,如果差值较大,说明已经是下一条公交线路
... tempstationid = 0
... tempstationid2 = 1
... try:
... # editor.startEditing(False)
... # editor.startOperation()
... for my_row in cursor:
... tempstationid2 = (int)(my_row.getValue('station_N'))
... temp = tempstationid2 - tempstationid
... tempstationid = (int)(my_row.getValue('station_N'))
... if(temp ==1):
... my_row.setValue("busID",busLineid)
... else:
... busLineid +=1
... my_row.setValue("busID",busLineid)
...
... except: #Exception as e:
... print arcpy.GetMessages() #(e.message)
... finally:
... print("bus line operation is done")
... # editor.stopOperation()
... # editor.stopEditing(True)
...
Parsing error SyntaxError: invalid syntax (line 9)
但是出来是说这个语句问题?