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

Python调用elevation.clip提取SRTM1/SRTM3高程失败,报CalledProcessError

解决python-elevation调用make命令失败的问题

问题重现

运行以下代码提取国家高程数据时触发错误:

dem_path = 'data/image_original.tif'
output = os.getcwd() + dem_path

bounds_combined = combined_polygon.bounds
west_c, south_c, east_c, north_c = bounds_combined
elevation.clip(bounds=bounds_combined, output=output, product='SRTM1')
dem = rio.open(output)
show(dem)


raster = riox.open_rasterio(output)
geom = combined_polygon

clipped_raster = raster.rio.clip([geom])

dem_path1 = 'data/image_clipped.tif'
output1 = os.getcwd() + dem_path1

clipped_raster.rio.to_raster(output1)

dem = rio.open(output1)
show(dem)

错误信息:

CalledProcessError: Command 'make -C /root/.cache/elevation/SRTM1 all ' returned non-zero exit status 2.

切换product='SRTM3'后问题依旧。

解决方案

1. 补全系统依赖

python-elevation依赖gdal、make、wget等工具,先确认这些工具已安装:

  • Debian/Ubuntu系统:
    sudo apt-get install build-essential gdal-bin wget
    
  • RHEL/CentOS系统:
    sudo yum install gcc make gdal wget
    
  • macOS(Homebrew):
    brew install make gdal wget
    

2. 清理损坏缓存

缓存目录内的文件可能下载不全或损坏,删除缓存后重新运行代码:

rm -rf /root/.cache/elevation

也可以在代码里手动指定有读写权限的缓存路径,避免权限冲突:

import elevation
elevation.CACHE_DIR = '/path/to/your/writable/folder'  # 替换为你有权限的目录

3. 修复权限问题

/root/.cache/目录需要当前用户有读写权限,若你以普通用户运行代码,可修改缓存目录权限:

chown -R your_username:your_username /root/.cache/elevation

或直接使用步骤2的自定义缓存路径。

4. 手动处理数据构建

如果自动下载失败,手动操作:

  1. 根据你的目标范围找到对应SRTM1/SRTM3分块数据
  2. 将下载的文件放到/root/.cache/elevation/SRTM1(或SRTM3)目录下
  3. 手动执行make命令查看具体错误:
    make -C /root/.cache/elevation/SRTM1 all
    

根据输出的错误信息针对性修复(比如文件缺失、解压失败等)。

5. 替换数据源

若python-elevation的SRTM数据源持续出问题,可改用rasterio直接调用公开DEM数据源,示例:

import rasterio as rio

# 替换为对应范围的SRTM分块文件URL
tile_url = "https://example.com/path/to/your/srtm/tile.hgt.zip"
# 下载解压后,用rasterio打开并裁剪
with rio.open('解压后的文件路径') as src:
    clipped = src.rio.clip([combined_polygon])
    clipped.rio.to_raster('data/image_clipped.tif')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:25:22