GDAL安装,转化坐标系,裁剪tif

安装GDAL

首先需要成功安装conda,最好新建一个虚拟环境以防和其他包产生冲突

conda install -c conda-forge gdal

输入命令行后如果成功安装可以通过以下代码成功导入gdal

from osgeo import gdal

使用GDAL命令行转化坐标系

假设原始SHP文件名为input.shp,目标文件为output.shp,可通过以下命令进行转换:

ogr2ogr -t_srs "EPSG:4326" output.shp input.shp

如果出现报错
Warning 1: One or several characters couldn’t be converted correctly from UTF-8 to ISO-8859-1. This warning will not be emitted anymore.

这个警告通常是因为SHP文件的属性表中包含无法直接转换为ISO-8859-1字符集的字符。GDAL默认使用ISO-8859-1编码处理SHP文件的属性表,这会导致含有UTF-8字符(如中文、特殊符号等)无法正确显示或转换。为了解决这个问题,可以在转换时明确指定输入和输出文件的字符集编码,在ogr2ogr命令中添加-lco ENCODING=UTF-8参数以指定输出文件的编码为UTF-8:

ogr2ogr -t_srs "EPSG:4326" -lco ENCODING=UTF-8 output.shp input.shp

这样可以确保字符集的正确转换,避免ISO-8859-1的字符集限制引发的警告。

使用GDAL命令行裁剪tif

可以使用GDAL的gdalwarp工具通过SHP文件来裁剪TIF文件。假设你的TIF文件名为input.tif,SHP文件名为clip.shp,裁剪后的输出TIF文件为output.tif,可以使用以下命令:

gdalwarp -cutline clip.shp -crop_to_cutline -dstalpha input.tif output.tif

如果裁剪后需要调整像素大小或重采样,可以在命令中添加-tr(设置分辨率)-r(指定重采样方法)参数,例如:

gdalwarp -cutline clip.shp -crop_to_cutline -dstalpha -tr 30 30 -r bilinear input.tif output.tif

如果出现报错
Warning 1: Self-intersection at or near point 113.9725053093111 22.379899682280694
ERROR 1: Cutline polygon is invalid.

这个错误是由于用于裁剪的SHP文件(output.shp)中存在无效的多边形,比如自相交、多重环或拓扑错误。要解决这个问题,需要在使用gdalwarp进行裁剪之前修复SHP文件。以下是具体使用ogr2ogr修复SHP文件的步骤:

ogr2ogr -f "ESRI Shapefile" fixed_output.shp output.shp -makevalid

如果出现报错
Warning 1: One or several characters couldn’t be converted correctly from UTF-8 to ISO-8859-1. This warning will not be emitted anymore.

这个警告是由于SHP文件属性表中的字符编码问题,默认的SHP文件格式使用ISO-8859-1字符集,而文件中可能包含UTF-8编码的字符。要解决这个问题,可以通过指定编码来确保正确处理字符集。以下是在ogr2ogr命令中使用-lco ENCODING=UTF-8参数,确保输出文件使用UTF-8编码的详细步骤:

ogr2ogr -f "ESRI Shapefile" -lco ENCODING=UTF-8 fixed_output.shp output.shp -makevalid

猜你喜欢

转载自blog.csdn.net/weixin_44853840/article/details/143439050
今日推荐