首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我得到了一个不受支持的-操作数类型:'str‘和'str’,但我找不到它。我读了很多问题,但仍然不能得到它

我得到了一个不受支持的-操作数类型:'str‘和'str’,但我找不到它。我读了很多问题,但仍然不能得到它
EN

Stack Overflow用户
提问于 2020-05-10 01:56:44
回答 1查看 169关注 0票数 0

我正在尝试在ArcGIS中构建一个计算Landsat8频带(b8-b4)/(b8+b4)的工具。我在arcmap中构建了模型,然后将其导出为脚本。它运行一个模型,但作为一个工具。我在我计算波段的最后一行得到了一个错误。

代码语言:javascript
复制
# Import arcpy module
import arcpy

# Script arguments
band8_input = arcpy.GetParameterAsText(0)
if band8_input == '#' or not band8_input:
    band8_input = "band8_input" # provide a default value if unspecified

band4_input = arcpy.GetParameterAsText(1)
if band4_input == '#' or not band4_input:
    band4_input = "band4_input" # provide a default value if unspecified

RGB_input = arcpy.GetParameterAsText(2)
if RGB_input == '#' or not RGB_input:
    RGB_input = "RGB_input" # provide a default value if unspecified

clip_polygon = arcpy.GetParameterAsText(3)
if clip_polygon == '#' or not clip_polygon:
    clip_polygon = "clip_polygon" # provide a default value if unspecified

# Local variables:
RGB_clp = "C:\\egm722\\RGB_clp"
RGB_clp_prj = RGB_clp
b8_clp = "C:\\egm722\\b8_clp"
b8_clp_prj = b8_clp
b4_clp = "C:\\egm722\\b4_clp"
b4_clp_prj = b4_clp
NVDI = "C:\\egm722\\NVDI.img"
NVDI_prj = NVDI

# Process: Clip_RGB
arcpy.Clip_management(RGB_input, "321255.095287406 5732480.81845376 327031.683798733 5736711.6778568", RGB_clp, clip_polygon, "256", "NONE", "NO_MAINTAIN_EXTENT")

# Process: Prj_RGB
arcpy.DefineProjection_management(RGB_clp, "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")

# Process: Clip_b8
arcpy.Clip_management(band8_input, "321255.095287406 5732480.81845376 327031.683798733 5736711.6778568", b8_clp, clip_polygon, "-32768", "NONE", "NO_MAINTAIN_EXTENT")

# Process: Prj_b8
arcpy.DefineProjection_management(b8_clp, "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")

# Process: Clip_b4
arcpy.Clip_management(band4_input, "321255.095287406 5732480.81845376 327031.683798733 5736711.6778568", b4_clp, clip_polygon, "-32768", "NONE", "NO_MAINTAIN_EXTENT")

# Process: Prj_b4
arcpy.DefineProjection_management(b4_clp, "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")

# Process: Calc_NVDI
arcpy.gp.RasterCalculator_sa("Float(\"%b8_clp_prj%\" - \"%b4_clp_prj%\") / (\"%b8_clp_prj%\" + \"%b4_clp_prj%\")", NVDI)

# Process: Prj_NVDI
arcpy.DefineProjection_management(NVDI, "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")

我得到了下面的错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\egm722\NVDI_arcpy.py", line 59, in <module>
    arcpy.gp.RasterCalculator_sa("Float(\"%b8_clp_prj%\" - \"%b4_clp_prj%\") / (\"%b8_clp_prj%\" + \"%b4_clp_prj%\")", NVDI)
  File "c:\program files (x86)\arcgis\desktop10.5\arcpy\arcpy\geoprocessing\_base.py", line 510, in <lambda>
    return lambda *args: val(*gp_fixargs(args, True))
ExecuteError: ERROR 000539: Error running expression: rcexec() 
Traceback (most recent call last):
  File "<expression>", line 1, in <module>
  File "<string>", line 5, in rcexec
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Failed to execute (RasterCalculator).


Failed to execute (NVDI)

谢谢你的帮助。据我所知,这似乎是一个语法错误,但我找不出它。非常感谢您的时间和帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-05-10 02:05:22

代码语言:javascript
复制
arcpy.gp.RasterCalculator_sa("Float(\"%b8_clp_prj%\" - \"%b4_clp_prj%\") / (\"%b8_clp_prj%\" + \"%b4_clp_prj%\")", NVDI)

包括表达式

代码语言:javascript
复制
Float(\"%b8_clp_prj%\" - \"%b4_clp_prj%\")

但两个操作数都是字符串

代码语言:javascript
复制
b8_clp = "C:\\egm722\\b8_clp"
b8_clp_prj = b8_clp
b4_clp = "C:\\egm722\\b4_clp"
b4_clp_prj = b4_clp

在Python中,字符串不能相互减去,因此出现错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61701292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档