34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import logging
|
|
import argparse
|
|
from osgeo import gdal
|
|
|
|
|
|
class TransOrthophoto:
|
|
def __init__(self):
|
|
self.logger = logging.getLogger('UAV_Preprocess.TransOrthophoto')
|
|
logging.basicConfig(level=logging.INFO,
|
|
format='%(asctime)s %(levelname)s %(message)s')
|
|
|
|
def trans_to_epsg4326(self, input_img, output_img):
|
|
# 目标坐标系
|
|
dst_srs = 'EPSG:4326'
|
|
# 使用 gdal.Warp 进行重投影
|
|
gdal.Warp(
|
|
destNameOrDestDS=output_img,
|
|
srcDSOrSrcDSTab=input_img,
|
|
dstSRS=dst_srs,
|
|
format='GTiff',
|
|
resampleAlg='near' # 最近邻插值
|
|
)
|
|
self.logger.info(f"文件已成功重投影: {output_img}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description="正射影像投影转换为EPSG:4326 (GDAL实现)")
|
|
parser.add_argument('--input_img', required=True, help='输入影像路径')
|
|
parser.add_argument('--output_img', required=True, help='输出影像路径')
|
|
args = parser.parse_args()
|
|
|
|
trans = TransOrthophoto()
|
|
trans.trans_to_epsg4326(args.input_img, args.output_img)
|