You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArcGIS10.5.1使用arcpy时自定义workspace变量路径不生效问题

问题:ArcPy ProjectRaster输出未写入指定工作空间

问题复现

使用如下ArcPy脚本执行DEM重投影时,工具可正常运行完成,但输出结果未存储到预先定义的工作空间路径,而是被保存到Windows当前用户目录下的temp临时文件夹:

import arcpy
arcpy.env.overwriteOutput = True

# Script arguments
Input_dem = "E:\\OneDrive\\Academic\\PhD\\Philemon\\phase_3_(model)\\dem_raw\\Mago_raw.tif"
Workspace = "E:\\OneDrive\\Academic\\PhD\\Philemon\\phase_3_(model)\\useful_data"
Output_Coordinate_System = "PROJCS['WGS_1984_UTM_Zone_46N',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',93.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]]" # provide a default value if unspecified

# Local variables:
reprojected = "%Workspace%\\reprojected"

# Process: Project Raster
arcpy.ProjectRaster_management(Input_dem, reprojected, Output_Coordinate_System, "NEAREST", "87.6969856825158 87.6969856825151", "", "", "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")

已知设置arcpy.env.workspace可实现预期存储效果,需要找到不依赖该环境变量、让上述写法代码正常运行的方案。

根因分析

代码中reprojected = "%Workspace%\\reprojected"的%变量名%写法是ArcGIS ModelBuilder专属的占位符语法,该语法仅在ModelBuilder运行环境内会被自动解析替换为对应变量值,独立运行的Python解释器无法识别这类占位符。
实际运行时reprojected变量的值是字面量字符串%Workspace%\reprojected,属于无效相对路径,ArcPy无法解析该路径时,会自动将输出结果写入系统临时目录。

解决方法

无需设置arcpy.env.workspace,只需将占位符替换为Python原生的路径拼接写法即可,推荐两种实现方式:

  • 直接字符串拼接,注意给输出栅格添加文件后缀(无后缀会默认生成ESRI GRID格式栅格):
reprojected = Workspace + "\\reprojected.tif"
  • 使用os.path模块拼接路径,可自动适配不同操作系统的路径分隔符,避免转义错误,兼容性更好:
# 脚本开头先导入os模块
import os
reprojected = os.path.join(Workspace, "reprojected.tif")

修改后重新运行脚本,重投影结果就会正常保存到指定的Workspace目录下。

注意:所有从ModelBuilder导出的ArcPy脚本,其中%变量名%格式的占位符都需要手动替换为Python原生变量引用写法,不能直接在独立Python环境中运行。


内容的提问来源于stack exchange,提问作者Nyigam Bole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:42:53