python批量根据矢量文件裁剪为tif代码
时间: 2023-03-25 18:03:45 浏览: 197
可以使用GDAL库中的gdalwarp命令进行批量裁剪,具体代码如下:
```
import os
# 矢量文件路径
vector_path = "path/to/vector_file.shp"
# 裁剪后的tif文件保存路径
output_dir = "path/to/output_dir"
# 获取矢量文件中所有要素的名称
os.system("ogrinfo -al -geom=no {} | grep 'Layer name' | awk -F ': ' '{{print $2}}' > feature_names.txt".format(vector_path))
with open("feature_names.txt", "r") as f:
feature_names = f.read().splitlines()
# 批量裁剪
for feature_name in feature_names:
input_path = "{}|layername={}".format(vector_path, feature_name)
output_path = os.path.join(output_dir, "{}.tif".format(feature_name))
os.system("gdalwarp -cutline {} -crop_to_cutline -dstalpha -of GTiff input.tif {}".format(input_path, output_path))
```
其中,`vector_path`为矢量文件路径,`output_dir`为裁剪后的tif文件保存路径。首先使用`ogrinfo`命令获取矢量文件中所有要素的名称,然后使用`gdalwarp`命令进行批量裁剪。裁剪时,使用`-cutline`参数指定裁剪范围为当前要素,`-crop_to_cutline`参数指定按照要素边界进行裁剪,`-dstalpha`参数指定输出tif文件带有透明通道。
阅读全文