我有这个ArcGIS python代码(使用arcpy模块),我需要在SPSS中导入和运行。
python代码在ArcGIS中工作,我已经能够成功地将python库设置为ArcGIS x64 python目录。
我的问题是:如何调用/定义我想要运行计算的打开(或可以关闭)数据集? (我当前的代码在第2行表中定义了这个" CURRENT_DATABASE_MEMORY")
这是我在ArcGIS / Python中运行的代码。我无法成功找到解决此问题的方法。
import arcpy
table = "CURRENT_DATABASE_MEMORY"
valueList = [r[0] for r in arcpy.da.SearchCursor(table, ["FULL_ADDRESS"])]
valueDict = collections.Counter(valueList)
uniqueList = valueDict.keys()
uniqueList.sort()
updateRows = arcpy.da.UpdateCursor(table, ["FULL_ADDRESS","ALL_LIVE"])
for updateRow in updateRows:
updateRow[1] = valueDict[updateRow[0]]
updateRows.updateRow(updateRow)
del updateRow, updateRows
valueList = [r[0] for r in arcpy.da.SearchCursor(table, ["FULL_ADDRESS_NAME"])]
valueDict = collections.Counter(valueList)
uniqueList = valueDict.keys()
uniqueList.sort()
updateRows = arcpy.da.UpdateCursor(table, ["FULL_ADDRESS_NAME","ALL_LIVE"])
for updateRow in updateRows:
updateRow[1] = valueDict[updateRow[0]]
updateRows.updateRow(updateRow)
del updateRow, updateRows
uniqueValues = {}
values = []
newID = 0
with arcpy.da.UpdateCursor(table, ["FULL_ADDRESS_NAME","FEAT_SEQ"]) as updateRows:
for row in updateRows:
nameValue = row[0]
if nameValue in uniqueValues:
row[1] = uniqueValues[nameValue]
else:
newID += 1
uniqueValues[nameValue] = newID
row[1] = newID
updateRows.updateRow(row)
del row, updateRows
答案 0 :(得分:0)
除了Andy写的内容之外,您可能还想考虑使用Submit api向SPSS发出命令以通过ODBC读取数据集(假设您有该源的驱动程序),或者您可以直接读取数据源Python代码,操作它,然后使用Python插件中提供的各种api将其写入SPSS。最佳选择取决于您希望SPSS在处理此数据时所扮演的角色。