首页 GIS基础理论 GDAL格式转换怎么做?命令行参数有哪些?

GDAL格式转换怎么做?命令行参数有哪些?

作者: GIS研习社 更新时间:2025-12-17 04:00:56 分类:GIS基础理论

你是不是也卡在“格式不兼容”这个坑里?

上周一个研究生私信我:“老师,我下载的哨兵2影像是.jp2,ArcGIS死活打不开,QGIS能打开但导出成GeoTIFF后元数据全丢了……怎么办?”——这几乎是每个遥感/GIS新手必踩的第一个大坑。别慌,今天Dr. Gis就手把手带你用GDAL把格式转换玩明白,连那些藏在命令行里的“神秘参数”,我也给你扒得底裤都不剩。

GDAL格式转换怎么做?命令行参数有哪些?

GDAL不是魔法棒,它是“地理数据翻译官”

想象一下:你手上有本德文版《资本论》,想转成中文版给同学看。直接机翻?语序错乱、术语崩坏。你需要的是懂德语又懂中文,还了解政治经济学的专业译者——GDAL就是干这个的。它不光“认得”200+种栅格/矢量格式(从古老的BIL到最新的COG),还能在转换时保留坐标系、波段信息、元数据——这才是专业和业余的分水岭。

我在参与全国第三次国土调查时,曾用GDAL批量转换2000+景Landsat影像。当时团队有人图省事用QGIS“另存为”,结果投影信息丢失导致全县拼接错位——最后返工三天。记住:生产级项目,必须上命令行。

三步走:从“Hello World”到工业级转换

第一步:安装与环境检查(别跳过!)

Windows用户推荐GISInternals编译版,Mac/Linux用conda或brew。装完后终端输入:

gdalinfo --version

看到类似GDAL 3.8.4, released 2024/01/15才算成功。如果报“command not found”,说明环境变量没配好——这是90%初学者的第一道坎。

第二步:基础转换 - gdal_translate

这是最常用的命令,语法骨架如下:

gdal_translate -of 格式 输入文件 输出文件

比如把.jp2转成GeoTIFF:

gdal_translate -of GTiff sentinel2.jp2 output.tif

但这样够吗?远远不够!下面这些参数才是精髓:

参数作用示例
-co COMPRESS=LZW压缩输出文件(节省80%空间)-co COMPRESS=DEFLATE
-b 1 -b 2 -b 3只提取第1,2,3波段(RGB真彩色)-b 4 -b 3 -b 2(近红外-红-绿)
-scale 0 4095 0 255重缩放像素值(16bit转8bit必备)-scale自动计算min/max
-a_nodata 0设置无效值(避免黑色边框)-a_nodata -9999

实战案例:把哨兵2的.jp2转为压缩版GeoTIFF并保留前3波段:

gdal_translate -of GTiff -co COMPRESS=LZW -b 1 -b 2 -b 3 sentinel2.jp2 rgb.tif

第三步:高级需求 - gdalwarp(重投影+裁剪)

当需要同时改投影或裁剪范围时,用gdalwarp。比如把UTM投影转成Web墨卡托:

gdalwarp -t_srs EPSG:3857 input.tif output_3857.tif

常用参数:

  • -te xmin ymin xmax ymax:按坐标裁剪(单位需与目标投影一致)
  • -ts 1024 1024:强制输出分辨率(慎用!会改变像元大小)
  • -r bilinear:重采样方法(near/bilinear/cubic

避坑指南:三个血泪教训

  1. 别用默认参数:GDAL默认不压缩、不设nodata,导致文件巨大且分析出错。
  2. 注意波段顺序:Landsat 8的B4是红波段,B5是近红外——搞反了NDVI就变负数。
  3. 验证输出:转换后务必用gdalinfo output.tif检查坐标系和波段数是否正确。

终极心法:理解“驱动”与“选项”

GDAL的核心是“驱动”(Driver)——每种格式都有专属驱动程序。用gdalinfo --formats可查看支持列表。而-co(Creation Option)就是给特定驱动的“操作说明书”。比如COG(云优化GeoTIFF)需要:

gdal_translate -of COG -co COMPRESS=ZSTD -co OVERVIEWS=IGNORE_EXISTING input.tif cog.tif

这里的ZSTD压缩和OVERVIEWS选项,只有COG驱动才认——就像给奔驰车加98号汽油,给拖拉机加柴油。

现在轮到你了

下次遇到奇葩格式(比如.hdf/.nc),别再求人发转换软件了。打开终端,敲下你的第一条GDAL命令。遇到报错?截图发到评论区——告诉我你卡在哪一步,Dr. Gis亲自给你开药方。顺便考考你:如果要把多光谱影像的第4波段(近红外)单独提取成单波段GeoTIFF,命令怎么写?第一个答对的送《GDAL参数速查表》PDF!

相关文章