【问题标题】:Python in SPSS Create new variable run arcpy scriptSPSS中的Python创建新变量运行arcpy脚本
【发布时间】:2014-05-15 16:24:36
【问题描述】:

我刚刚找到了这个模块,需要一些帮助将我的 ArcGIS python 脚本移至 python/SPSS 模块。该脚本使用 Arcpy 模块中的 Updatecursor 功能。到目前为止,这是我的文字。

# BEGIN PROGRAM.
import arcpy

fc = C:\Users\Desktop\file.TXT
fields =('RESIDENTIAL_ADDRESS1', 'RESIDENTIAL_SECONDARY_ADDR', 'RESIDENTIAL_CITY', 'FULL_ADDRESS')
with arcpy.da.UpdateCursor(fc, fields) as cursor:
    for row in cursor:
        row[3] = '{0}{1}{2}'.format(row[0], row[1], row[2])
        cursor.updateRow(row)
    del cursor

# END PROGRAM.

我需要代码在当前打开的文件上运行,创建新变量,进行连接。我知道我可以通过 SPSS 更轻松地做到这一点,但是我需要导入更多额外的 Python 脚本,这些脚本还需要使用 arcpy 更新/搜索游标进行更多涉及的计算。

我的文件大小由 800 万条记录组成,来自 sqlexpress dbf。我的 python 脚本在 ArcGIS 中运行,我在其中进行了一些额外的地理编码。我还运行了另外 5 到 6 个 python 脚本来执行我无法在 spss 中编程的各种其他计算(比如我可以编程连接)。所以我的目标是将这些 python 脚本带入 SPSS,以便在 SPSS 而不是 ArcGIS 中进行计算。这是我的第一个 Arcpy 任务,所以我在这里通过它作为如何使用 Python 插件使其正常工作的示例 -

【问题讨论】:

    标签: python arcgis spss arcpy


    【解决方案1】:

    这更像是一个扩展评论。我很困惑C:\Users\Desktop\file.TXT 的作用所在——这不是你当前打开的文件吗?考虑将spss.Submit 用于连接活动 SPSS 文件中的字段这样简单的任务(例如,无需为该任务遍历数据中的每一行)。所以这里是一个简单的例子:

    DATA LIST FREE / Add1 Add2 (2A20) City (A6) State (A2).
    BEGIN DATA
    "125 Main St" "" Albany NY
    "Main St." "Lake St" Albany NY
    END DATA.
    
    BEGIN PROGRAM.
    import spss
    fields = ['Add1','Add2','City','State']
    conc = ",' ',".join(fields)
    spss.Submit("""
    STRING ConcField (A255).
    COMPUTE ConcField= CONCAT(%s).
    """ % (conc))
    END PROGRAM.
    

    在 unicode 模式下,这将折叠空白区域 - 但否则您需要将所有不同变量的列表调整为类似于 RTRIM(Add1) 的内容。这只是一个简单的例子。

    SPSS 与 arcPy 的名为 spss.Cursor 的游标具有类似的方法,但从您的示例中不清楚这是什么必要的。

    【讨论】:

    • 对不起,我应该补充一下,我的文件大小由 800 万条记录组成,来自 sqlexpress dbf。我的 python 脚本在 ArcGIS 中运行,我在其中进行了一些额外的地理编码。我还运行了另外 5 到 6 个 python 脚本来执行我无法在 spss 中编程的各种其他计算(比如我可以编程连接)。所以我的目标是将这些 python 脚本带入 SPSS,以便在 SPSS 而不是 ArcGIS 中进行计算。这是我的第一个 Arcpy 任务,所以我在这里通过它作为如何使用 Python 插件正常工作的示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多