【问题标题】:What should the layername be in gdal_rasterize for loop?图层名称应该在 gdal_rasterize for 循环中是什么?
【发布时间】:2012-07-31 15:18:30
【问题描述】:

我是 Linux 新手,目前正尝试在 BASH 中在一组 shapefile 上运行此代码:

for file in /mnt/hgfs/Shared/*.shp ; do
gdal_rasterize -l ??? -burn 1 -tr 0.5 0.5 -te -180 -90 180 90 $file rast2
gdal_merge.py -o rast1 rast2 rast1
done

rast1 是一个空栅格,用于将以下栅格绑定到。我无法弄清楚这段代码中 -l 之后的语法应该是什么......我认为其余的运行良好。我试过使用 $file 但终端给了我以下错误:

Unable to find layer /mnt/hgfs/Shared/SHAPE1.shp, skipping. 

任何帮助将不胜感激。

【问题讨论】:

    标签: bash shapefile raster gdal


    【解决方案1】:

    注意:我从未使用过 GDAL,而且对它一点也不熟悉。

    由于http://www.gdal.org/gdal_rasterize.html 的底部表明“mask”的层名可以与“mask.shp”一起使用,我建议从$file 中剥离扩展名并将其用作层名:

    gdal_rasterize -l $(basename $file .shp) -burn 1 -tr 0.5 0.5 -t -180 -90 180 90 $file rast2
    

    【讨论】:

    • 感谢您的回复。不幸的是,它现在说无法找到层 /mnt/hgfs/Shared/SHAPE1,正在跳过。
    • 您需要弄清楚图层的名称。如果图层名为 SHAPE1,请尝试 $(basename ${file%.shp})
    • 我忘记了file 是完整的路径名!更新中,使用basename也去掉后缀。
    猜你喜欢
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2014-10-20
    • 1970-01-01
    相关资源
    最近更新 更多