我有这个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发布于 2014-05-18 20:54:57
除了Andy编写的内容之外,您还可以考虑使用Submit api向SPSS发出命令,通过ODBC读取数据集(假设您有该源的驱动程序),或者您可以在Python代码中直接读取数据源,对其进行操作,然后使用Python插件中为此提供的各种api将其写入SPSS。最佳选择将取决于您希望SPSS在处理这些数据中所扮演的角色。
https://stackoverflow.com/questions/23706566
复制相似问题