名称:name' select_pour_point'未定义

发布于 2025-01-28 05:37:45 字数 1179 浏览 2 评论 0原文

尝试为每个倒数设置变量时,我会收到此错误。这是一个

cur_point = select_pour_point(pour_points,name_field,name)

nameRorr:name'select_pour_point'未定义

帮助!

import shedtools as st

# Directories
SCRATCH = "C:\\SCRATCH"
OUT_FOLDER = "C:\\WATERSHEDS" 

# inputs
POUR_POINTS = "C:\\Hawaii_DEM\\Hawaii.shp"
FLOW_DIRECTION = "C:\\Hawaii_DEM\\hawaii_flwdir" 
STATS_RASTER = "C:\\HawaiiRFGrids_mm\\RF_MM_BI_Ann"                    
RASTER_NAME = "stats"
NAME_FIELD = "Id" 
STATISTICS = "MEAN"

with arcpy.da.SearchCursor(POUR_POINTS, NAME_FIELD) as cursor:
    for point in cursor:
        name = str(point[0])
        print "Working on pour point %s" % (name)
        cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name) 
        shed_raster = make_watershed_raster(FLOW_DIRECTION, cur_point, name, SCRATCH)

我收到的错误是:

Traceback (most recent call last):
  File "C:\\exercise_5.py", line 30, in <module>
    cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name)
NameError: name 'select_pour_point' is not defined

第30行是:

cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name) 

I am receiving this error when trying to setup variables for each pour point. It is a

cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name)

NameError: name 'select_pour_point' is not defined

HELP!

import shedtools as st

# Directories
SCRATCH = "C:\\SCRATCH"
OUT_FOLDER = "C:\\WATERSHEDS" 

# inputs
POUR_POINTS = "C:\\Hawaii_DEM\\Hawaii.shp"
FLOW_DIRECTION = "C:\\Hawaii_DEM\\hawaii_flwdir" 
STATS_RASTER = "C:\\HawaiiRFGrids_mm\\RF_MM_BI_Ann"                    
RASTER_NAME = "stats"
NAME_FIELD = "Id" 
STATISTICS = "MEAN"

with arcpy.da.SearchCursor(POUR_POINTS, NAME_FIELD) as cursor:
    for point in cursor:
        name = str(point[0])
        print "Working on pour point %s" % (name)
        cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name) 
        shed_raster = make_watershed_raster(FLOW_DIRECTION, cur_point, name, SCRATCH)

Error I am receiving is:

Traceback (most recent call last):
  File "C:\\exercise_5.py", line 30, in <module>
    cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name)
NameError: name 'select_pour_point' is not defined

Line 30 is:

cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name) 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酷到爆炸 2025-02-04 05:37:45

您使用导入SHEDTOOLS作为ST导入您的shedtools.py脚本。因此,您需要前缀select_pour_pointmake_watershed_polygon带有st

与您的错误无关,而是打开您的arcpy.da.searchcursor使用with,以确保使用后再次关闭。

import shedtools as st

# ...

with arcpy.da.SearchCursor(POUR_POINTS, NAME_FIELD) as cursor:
    for point in cursor:
        name = str(point[0])
        print "Working on pour point %s" % (name)
        cur_point = st.select_pour_point(POUR_POINTS, NAME_FIELD, name) 
        shed_raster = st.make_watershed_raster( \
                  FLOW_DIRECTION, cur_point, name, SCRATCH)

另外,您也可以使用以下方式使用以下方式使用以下方面的功能以:

  • 从shedtools导入您的函数,而不是将功能从shedtools导入您的功能,请select_pour_point,make_watershed_raster

如果这样做,则无需前缀:

from shedtools import select_pour_point, make_watershed_raster

# ...

with arcpy.da.SearchCursor(POUR_POINTS, NAME_FIELD) as cursor:
    for point in cursor:
        name = str(point[0])
        print "Working on pour point %s" % (name)
        cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name) 
        shed_raster = make_watershed_raster(FLOW_DIRECTION, cur_point, name, SCRATCH)

You import your shedtools.py script using import shedtools as st. Therefore, you need to prefix select_pour_point and make_watershed_polygon with st.:

  • e.g. st.select_pour_point(...)

Not related to your error BUT open your arcpy.da.SearchCursor using with to make sure it is closed again after using.

import shedtools as st

# ...

with arcpy.da.SearchCursor(POUR_POINTS, NAME_FIELD) as cursor:
    for point in cursor:
        name = str(point[0])
        print "Working on pour point %s" % (name)
        cur_point = st.select_pour_point(POUR_POINTS, NAME_FIELD, name) 
        shed_raster = st.make_watershed_raster( \
                  FLOW_DIRECTION, cur_point, name, SCRATCH)

Alternatively, instead of prefixing your functions with st., you could also import your functions using:

  • from shedtools import select_pour_point, make_watershed_raster

If you do so, no prefixing is necessary:

from shedtools import select_pour_point, make_watershed_raster

# ...

with arcpy.da.SearchCursor(POUR_POINTS, NAME_FIELD) as cursor:
    for point in cursor:
        name = str(point[0])
        print "Working on pour point %s" % (name)
        cur_point = select_pour_point(POUR_POINTS, NAME_FIELD, name) 
        shed_raster = make_watershed_raster(FLOW_DIRECTION, cur_point, name, SCRATCH)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文