import rasterio
from rasterio.warp import calculate_default_transform, reproject, Resampling
from pyproj import CRS
# 输入输出路径
src_path = r"F:\EGM08_gravity_data\EGM08_gravity_data.tif"
dst_path = r"F:\EGM08_gravity_data\EGM08_gravity_data_utm.tif"
# 定义自定义横向墨卡托投影(中央经线-45°,标准纬线70°N)
dst_crs = CRS.from_proj4("""
+proj=tmerc +ellps=WGS84 +lat_0=90 +lon_0=-45 +k=0.994
+x_0=2000000 +y_0=2000000 +units=m +no_defs
""")
with rasterio.open(src_path) as src:
# 计算转换参数(优化极区算法)
transform, width, height = calculate_default_transform(
src.crs, dst_crs,
src.width, src.height,
*src.bounds,
densify_pts=100 # 加密计算点避免北极形变[5](@ref)
)
# 配置输出元数据
kwargs = src.meta.copy()
kwargs.update({
'crs': dst_crs,
'transform': transform,
'width': width,
'height': height,
'compress': 'lzw' # 启用LZW压缩减少文件体积
})
# 执行重投影
with rasterio.open(dst_path, 'w', ** kwargs) as dst:
for i in range(1, src.count + 1):
reproject(
source=rasterio.band(src, i),
destination=rasterio.band(dst, i),
src_transform=src.transform,
src_crs=src.crs,
dst_transform=transform,
dst_crs=dst_crs,
resampling=Resampling.cubic_spline # 三次样条插值保持重力场连续性[9](@ref)
)
坐标系转换 tif_WGS84 to UTM
Python实现tif_WGS84到UTM坐标系转换
最新推荐文章于 2025-11-24 15:28:47 发布
610

被折叠的 条评论
为什么被折叠?



