Bash 层名称在gdal_光栅化循环中应该是什么?
我是Linux新手,目前正在尝试在一组shapefile上的BASH中运行以下代码:Bash 层名称在gdal_光栅化循环中应该是什么?,bash,shapefile,raster,gdal,Bash,Shapefile,Raster,Gdal,我是Linux新手,目前正在尝试在一组shapefile上的BASH中运行以下代码: 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后面的语法应该是什么…我认为其余的都
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.
任何帮助都将不胜感激。注意:我从未使用过GDAL,对它一点也不熟悉 由于的底部指示图层名“mask”可以与“mask.shp”一起使用,因此我建议从
$file
中删除扩展名,并将其用作图层名:
gdal_rasterize -l $(basename $file .shp) -burn 1 -tr 0.5 0.5 -t -180 -90 180 90 $file rast2
谢谢你的回复。不幸的是,它现在说找不到layer/mnt/hgfs/Shared/SHAPE1,正在跳过。您需要知道该层的名称。如果层名为SHAPE1,请尝试
$(basename${file%.shp})
我忘记了文件
是完整路径名!更新,同时使用basename
去除后缀。