- GIS
- 遥感
- 数据工程
【免费下载链接】gdal
GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats.
本指南面向准备参加 GDAL 新命令行界面(CLI)工作坊的开发者,系统梳理 GDAL 3.13.1 在 Linux、macOS、Windows 三大平台上的安装路径,以及工作坊专用示例数据集的获取方法。读完本文,你将能够独立完成从零搭建 GDAL 命令行工作环境、验证版本与数据完整性,并配置面向 Bash 的gdal命令自动补全,为后续栅格/矢量处理练习(参见 工作坊章节索引)做好全部准备。
版本基线:GDAL 3.13.1 "Iowa City"
本工作坊要求使用GDAL 3.13.1(2026 年 6 月发布),安装完成后可通过以下命令确认版本:
gdal --version预期输出:
GDAL 3.13.1 "Iowa City", released 2026/06/01需要说明的是,本文撰写所依据的工作坊安装文档以 3.13.1 稳定版为基线;而当前仓库主线的 VERSION 文件已标记为 3.14.0,若你使用文末介绍的gdal-master开发渠道,版本号与功能均以实际构建为准,请勿混用稳定版环境变量。
为什么推荐 Conda:面向原生依赖的包管理
工作坊文档给出的推荐安装方式是使用GDAL Conda 构建。Conda 是一套可在主流桌面操作系统(Linux、Windows、macOS)上运行的系统级包管理工具,主要服务于 Python 生态,但其核心优势在于能正确处理 GDAL 这类带原生依赖(native dependencies)的软件——从编译期依赖库到可选的栅格/矢量驱动插件,都由 Conda 统一解决二进制兼容问题,免去手工编译。
工作坊所面向的gdal新 CLI 自 GDAL 3.11 引入,是对传统gdal_translate、ogr2ogr等工具的补充,提供更统一、可预测、更友好的交互体验(详见工作坊简介与仓库 README)。新 CLI 采用 git 风格的分层命令结构(gdal raster info、gdal vector convert、gdal mdim info、gdal pipeline、gdal vsi list等),详见新 CLI 通用原则。因此,一套正确安装的 GDAL 环境是后续所有练习的共同前提。
各平台安装路径概览:
| 平台 | 推荐方式 | 特点 |
|---|---|---|
| Linux | Docker 镜像 或 Conda | Docker 开箱即用;Conda 与宿主机集成更好 |
| macOS | Conda | 直接沿用 Linux 步骤 |
| Windows | Conda + MSYS2 Bash | 额外需要 Bash 环境以启用命令行补全 |
Linux 平台安装
Linux 用户有两种选择:一是直接使用包含二进制与工作坊示例数据的 Docker 镜像;二是在宿主机用 Conda 安装 GDAL 与配套包并自行下载测试数据。前者在已安装 Docker/Podman 的情况下更省事;后者手工步骤更多,但与系统集成更自然。
方式一:Docker 镜像(开箱即用)
前提:已安装 Docker 或 Podman。拉取工作坊专用镜像:
docker pull ghcr.io/gdal/gdal-cli-workshop允许容器内的 X 客户端连接宿主机的 X server(图形界面转发,供 QGIS 使用):
xhost +local:root输出:
non-network local connections being added to access control list启动容器:
mkdir -p $HOME/gdal-cli-workshop docker run -it --name gdal-cli-workshop \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $HOME/gdal-cli-workshop:/data/gdal_cli_workshop_data-master/host \ ghcr.io/gdal/gdal-cli-workshop各参数作用:
| 参数 | 作用 |
|---|---|
-it | 分配交互式终端 |
--name gdal-cli-workshop | 为容器命名,便于后续docker start/exec |
-v /tmp/.X11-unix:/tmp/.X11-unix | 挂载 X11 套接字,让容器内的 QGIS 能把窗口显示到宿主机 |
-v $HOME/gdal-cli-workshop:.../host | 将宿主机工作目录挂载为容器内host目录,用于交换练习产出文件 |
容器内验证 GDAL:
(base) root@XXXXXXXXXXXX:/# gdal --versionGDAL 3.13.1 "Iowa City", released 2026/06/01示例数据已预置在镜像内,位于/data/gdal_cli_workshop_data-master/:
(base) root@XXXXXXXXXXXX:/# cd /data/gdal_cli_workshop_data-master/ (base) root@XXXXXXXXXXXX:/# ls -altotal 91296 drwxr-xr-x 5 root root 4096 May 22 01:37 . drwxr-xr-x 3 root root 4096 May 22 04:12 .. -rw-r--r-- 1 root root 18925846 May 22 01:37 20260519_00_tmp2m.nc -rw-r--r-- 1 root root 18925846 May 22 01:37 20260519_06_tmp2m.nc -rw-r--r-- 1 root root 1756 May 22 01:37 README.md drwxr-xr-x 6 root root 4096 May 22 01:37 S2B_MSIL2A_20260423T094029_N0512_R036_T34TDR_20260423T115714.SAFE drwxr-xr-x 6 root root 4096 May 22 01:37 S2B_MSIL2A_20260423T094029_N0512_R036_T34TER_20260423T115714.SAFE drwxr-xr-x 6 root root 4096 May 22 01:37 S2B_MSIL2A_20260423T094029_N0512_R036_T34TES_20260423T115714.SAFE -rw-r--r-- 1 root root 35131910 May 22 01:37 dem.tif -rw-r--r-- 1 root root 14909524 May 22 01:37 ne_10m_admin_1_states_provinces.zip -rw-r--r-- 1 root root 5493 May 22 01:37 osm_conf_amenity.ini -rw-r--r-- 1 root root 5528366 May 22 01:37 timisoara.osm.pbf drwxrwxr-x 2 1000 1000 4096 May 22 05:06 host最后验证 QGIS 也能正常启动:
(base) root@XXXXXXXXXXXX:/# qgisQGIS 窗口成功出现后,Docker 路线的安装即告完成,可直接跳过本页其余内容。
方式二:Conda 安装(与宿主机深度集成)
1. 安装 Miniforge3
如果还没有任何 Conda 安装,先下载 Miniforge3 安装脚本(Linux x86_64 对应文件名为Miniforge3-Linux-x86_64.sh,可从 conda-forge 官方 Miniforge 发布渠道获取):
curl -LO https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh静默安装:
sh Miniforge3-Linux-x86_64.sh -b输出节选:
PREFIX=/home/even/miniforge3 Unpacking bootstrapper... Unpacking payload... Extracting ca-certificates-2026.4.22-hbd8a1cb_0.conda Extracting libgomp-15.2.0-he0feb66_19.conda Extracting libzlib-1.3.2-h25fd6f3_2.conda [ ... snip ... ] Linking conda-package-handling-2.4.0-pyh7900ff3_2 Linking conda-26.3.2-py313h78bf25f_1 Transaction finished installation finished.为当前 shell 激活 Miniforge3:
~/miniforge3/bin/conda init输出节选(注意最后一行会修改~/.bashrc):
no change /home/even/miniforge3/condabin/conda no change /home/even/miniforge3/bin/conda no change /home/even/miniforge3/bin/activate no change /home/even/miniforge3/bin/deactivate no change /home/even/miniforge3/etc/profile.d/conda.sh no change /home/even/miniforge3/etc/fish/conf.d/conda.fish no change /home/even/miniforge3/shell/condabin/Conda.psm1 no change /home/even/miniforge3/shell/condabin/conda-hook.ps1 no change /home/even/miniforge3/lib/python3.13/site-packages/xontrib/conda.xsh no change /home/even/miniforge3/etc/profile.d/conda.csh modified /home/even/.bashrc ==> For changes to take effect, close and re-open your current shell. <==改动将在重新打开 shell 后生效。
2. 创建并激活专用 Conda 环境
Conda 环境相当于独立的软件工作区,其中的包不会与其他环境互相干扰。为本工作坊创建名为gdal-cli-workshop的环境,并使用conda-forge渠道获取社区最新官方版本(若使用 Miniforge3 安装,该渠道通常已默认配置):
conda create -y --name gdal-cli-workshop -c conda-forge输出节选:
Retrieving notices: done Channels: - conda-forge Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/even/miniforge3/envs/gdal-cli-workshop Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate gdal-cli-workshop # # To deactivate an active environment, use # # $ conda deactivate激活环境:
conda activate gdal-cli-workshop环境激活后,shell 提示符前缀会变为(gdal-cli-workshop),用于提示当前所处的环境。
3. 安装 libgdal 与 gdal
GDAL 的安装被拆分为两个角色互补的包:
libgdal元包:安装libgdal-core及大多数可选驱动插件(如libgdal-jp2openjpeg等),即 C/C++ 库本体;gdal包:提供 Python 绑定与命令行脚本。
(gdal) $ conda install -y -c conda-forge libgdal gdal输出节选:
Channels: - conda-forge Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/even/miniforge3/envs/gdal-cli-workshop added / updated specs: - gdal - libgdal The following packages will be downloaded: [ ... snip ... ] Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done验证版本:
$ gdal --versionGDAL 3.13.1 "Iowa City", released 2026/06/01macOS 平台安装
官方对 macOS 的说明相对简略(原因是缺乏该平台的实际测试环境),核心步骤如下:
- 若尚无 Conda,请访问 conda-forge 官网下载页面,选择与你 CPU 架构匹配的安装器;
- 安装完成后,完全沿用上述 Linux 平台的 Conda 步骤,包括创建
gdal-cli-workshop环境、conda activate、conda install -y -c conda-forge libgdal gdal以及gdal --version验证。
Linux 与 macOS 的命令是通用的,唯一的差异在于安装器的 CPU 架构选择。
Windows 平台安装
Windows 安装(文档在 Windows 10 上验证,预计对 Windows 11 同样有效)分为四个阶段:安装独立 Miniforge3 → 创建专用 Conda 环境 → 安装 MSYS2 Bash 环境 → 配置gdal.bat启动脚本。为保证后续指令无需修改即可执行,请严格按文档推荐路径c:\gdal安装。
阶段一:以管理员身份安装独立的 Miniforge3
如果已有 Conda 安装,可跳过此阶段。不过强烈建议为工作坊安装一个独立的 Miniforge3 实例,理由有二:避免与你现有的 Conda 安装互相干扰;且只有使用默认位置,后续的启动脚本才能无需修改直接使用。
下载Miniforge3-Windows-x86_64.exe安装器(可从 conda-forge 官方 Miniforge 发布渠道获取),然后右键选择"以管理员身份运行"——管理员权限是为了确保你有权写入c:\gdal,以便后续指令按原样执行。随后按安装向导操作:
- 确认 Welcome 对话框;
- 接受许可协议;
- 选择"Just Me"并确认;
- 将安装路径修改为
c:\gdal\miniforge3并确认(见上文第一张图); - 高级选项中只勾选 "Create shortcuts",点击 Install;
- 安装完成后依次点击 Next、Finish。
阶段二:创建专用 Conda 环境(--prefix 方式)
从开始菜单选择 "Anaconda Prompt"(见上文第二张图),打开一个 Conda 可执行文件已加入 PATH 的cmd控制台。
与 Linux 使用--name不同,Windows 示例采用--prefix方式将环境显式创建到c:\gdal\condaenv\gdal:
(base) C:\Users\my_user_name>conda create -y --prefix c:/gdal/condaenv/gdal -c conda-forge输出节选:
Retrieving notices: done Channels: - conda-forge - defaults Platform: win-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: c:\gdal\condaenv\gdal Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate c:\gdal\condaenv\gdal # # To deactivate an active environment, use # # $ conda deactivate激活环境:
(base) C:\Users\my_user_name>conda activate c:\gdal\condaenv\gdal阶段三:安装 GDAL
与 Linux 一致,同时安装库元包与 Python 绑定包:
(c:\gdal\condaenv\gdal) C:\Users\my_user_name>conda install -y -c conda-forge gdal libgdal输出节选(Windows 平台 GDAL 相关组件总下载约 180.9 MB):
Channels: - conda-forge - defaults Platform: win-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: c:\gdal\condaenv\gdal added / updated specs: - gdal - libgdal The following packages will be downloaded: package | build [ ... snip ... ] ------------------------------------------------------------ Total: 180.9 MB The following NEW packages will be INSTALLED: [ ... snip ... ] Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done验证:
(c:\gdal\condaenv\gdal) C:\Users\my_user_name>gdal --versionGDAL 3.13.1 "Iowa City", released 2026/06/01阶段四:安装 Bash shell(MSYS2)
gdal命令行带有强大的自动补全(auto-completion)机制,但这要求从 Bash 兼容 shell 中使用。因此需要安装 MSYS2。
下载 MSYS2 安装器(msys2-x86_64-*.exe,可从 msys2 官方发布渠道获取),右键"以管理员身份运行"。安装向导中:
- 点击 Next;
- 指定
c:\gdal\msys64为安装目录并点击 Next(见上文第三张图); - 指定 "msys2_gdal" 作为开始菜单文件夹名称并点击 Next;
- 点击 Finish。
阶段五:创建 gdal.bat 启动脚本
下载工作坊启动脚本并保存为c:\gdal\gdal.bat。该脚本会启动一个 Bash shell,并加载运行 GDAL 所需的全部环境,包括命令行补全。仓库内即保存了这份脚本的原始版本:doc/source/workshop/gdal.bat,其逐行逻辑如下:
@call C:\gdal\miniforge3\condabin\conda activate c:\gdal\condaenv\gdal @set "OUTFILE=C:\gdal\.bashrc" @echo export PATH=/c/gdal/condaenv/gdal/Library/bin:/c/gdal/miniforge3/Scripts:/c/gdal/msys64/usr/bin:^$PATH> "%OUTFILE%" @echo source /c/gdal/condaenv/gdal/Library/share/bash-completion/completions/gdal>> "%OUTFILE%" @set "PS1=(gdal) \w\$ " @call C:\gdal\msys64\usr\bin\bash.exe --init-file C:\gdal\.bashrc各行含义:
| 行 | 作用 |
|---|---|
conda activate c:\gdal\condaenv\gdal | 激活工作坊 Conda 环境 |
写入C:\gdal\.bashrc的export PATH=... | 将 GDAL 的Library/bin(DLL 与 CLI 所在)、Miniforge3 的Scripts、MSYS2 的usr/bin依次加入 PATH |
写入.bashrc的source .../completions/gdal | 加载 GDAL 的 Bash 补全定义(对应仓库 scripts/gdal-bash-completion.sh 自动生成的文件) |
PS1=(gdal) \w\$ | 自定义提示符为(gdal) 路径$ |
bash.exe --init-file C:\gdal\.bashrc | 以该.bashrc为初始化文件启动 Bash |
注意:该启动脚本仅在 Miniforge3 与 Conda 环境都安装在上述默认位置时才直接可用。若安装位置不同,需要编辑脚本中对应的路径。
从资源管理器或创建的快捷方式启动c:\gdal\gdal.bat,然后验证补全。输入(<TAB>表示按 TAB 键):
gdal --<TAB><TAB>应看到如下候选选项:
--config --drivers --help --json-usage --version补全功能之所以能工作,是因为gdal二进制内置了一个隐藏的completion子命令,Bash 补全脚本通过调用它实时生成候选列表(详见 apps/gdal.cpp 中EmitCompletion()与main()对completion参数的处理)。除顶层选项外,它还支持子命令列表补全、参数值补全(如--of=<TAB>给出json/text)、EPSG CRS 代码补全(如EPSG:432<TAB>列出 4326 WGS 84 等)、乃至云端文件名补全(如/vsis3/...),完整示例见 Bash 补全官方文档。
获取工作坊使用的示例数据集
下载工作坊数据集压缩包master.zip(超过 1 GB),并解压到你选择的目录。数据源为gdal_cli_workshop_data仓库。
Linux/macOS 示例:
mkdir $HOME/gdal_cli_workshop_data cd $HOME/gdal_cli_workshop_data curl -O <master.zip 下载地址> unzip master.zipWindows:下载并解压文件后,需要把工作目录切换到解压出的文件夹再运行练习。例如解压到C:\gdal\gdal_cli_workshop_data-master时,在启动脚本打开的命令行中执行:
(gdal) /c/gdal$ cd gdal_cli_workshop_data-master数据集的构成与一个"降精度"细节
数据集包含 GRIB/NetCDF 气象栅格、Sentinel-2 SAFE 影像目录、DEM、矢量行政区划、OSM 数据与配置文件等(完整清单见上文 Docker 一节的ls -al输出)。
文档特别提示了一个工程细节:为满足 GitHub 单文件 100 MB 上限,Sentinel-2 原始数据中的个别文件被移除,且T34TDR_.../IMG_DATA/R10m/T34TDR_20260423T094029_B08_10m.jp2被降精度重处理以压缩到 100 MB 以内。该重处理使用的正是新 CLI 的栅格转换命令:
gdal raster convert --of JP2OpenJPEG --creation-option QUALITY=45 --co BLOCKXSIZE=1024 --co BLOCKYSIZE=1024这同时也是一个很好的新 CLI 语法示例:--of指定输出格式,--creation-option(可简写--co)传入驱动级创建选项。
配套工具安装
安装 jq(JSON 处理工具)
新 CLI 大量使用 JSON 输出(如gdal raster info --of json),因此工作坊要求安装jq。在 Conda 启用的 shell 中:
conda install -y -c conda-forge jq强烈推荐:安装 QGIS 用于可视化
- Linux 与 Windows:在 Conda 启用的 shell 中安装,QGIS 与 GDAL 同环境可保证版本匹配:
conda install -y -c conda-forge qgis额外下载约 1.3 GB,解压后预计占用约 2 GB 空间。
- macOS 例外:QGIS 的 Conda 构建目前不适用于 macOS,请从 QGIS 官方网站下载 macOS 安装器。
文本编辑器
准备一个顺手的基础文本编辑器,用于准备和粘贴命令行,以及查看 JSON 输出。
进阶:使用 GDAL 开发版构建(gdal-master 渠道)
希望抢先体验 GDAL 主线开发分支(master)最新状态、且能承受一定风险的进阶用户,可以使用gdal-masterConda 渠道获取每日构建,说明见 GDAL 下载页 的 "GDAL master Conda builds" 一节。典型用法:
conda install -c gdal-master -c conda-forge gdal-master::gdal与发布版一致,额外驱动可通过gdal-master::libgdal-{driver_name}形式安装,例如gdal-master::libgdal-arrow-parquet。
环境里已装过 master 构建、需要升级到最新版本时,注意 GDAL 子包可能需要逐个更新——因为 master 的版本号(如3.12.99)不会随每次夜间构建变化:
# 检查当前已安装的 GDAL 组件与版本 conda list gdal gdal --version # 移除当前 master 版本 conda remove gdal libgdal-core --yes # 安装最新的 GDAL master 构建 conda install -c gdal-master -c conda-forge gdal libgdal-core --yes gdal --version需要提醒的是:master 构建基于 conda-forge 依赖,其行为可能领先于本文所述的 3.13.1 稳定版,如与工作坊练习预期不符,请回到稳定版环境。
原理印证:新 CLI 与补全能力的源码实现
为帮助理解"为什么这样装、补全从哪里来",这里从仓库源码层面印证几个关键点:
gdal主程序入口位于 apps/gdal.cpp:main()先处理早期配置项(含--config-options-in-stdin等特殊开关),随后通过GDALGlobalAlgorithmRegistry::GetSingleton().Instantiate(...)实例化根算法、调用GDALAllRegister()注册全部驱动、ParseCommandLineArguments()解析参数,最后执行alg->Run(...)与Finalize()。- 补全的后端机制同样在 apps/gdal.cpp:当第一个参数是
completion时,程序进入EmitCompletion()分支,把候选选项以空格分隔写到 stdout;scripts/gdal-bash-completion.sh(由completionFinder.py自动生成)正是通过调用gdal completion ...拿到候选并完成<TAB>补全的。这也是 Windows 安装 MSYS2 Bash 的根本原因。 - gdal.bat 与补全文件的关联:启动脚本中的
source .../Library/share/bash-completion/completions/gdal对应的就是上面这份自动生成脚本在安装后的落盘位置,三者形成完整闭环:脚本 →gdal completion→ 候选列表 → 交互补全。
安装校验清单
完成以上任一路线后,建议按如下清单逐项自检:
| 检查项 | 命令 | 预期 |
|---|---|---|
| GDAL 版本 | gdal --version | GDAL 3.13.1 "Iowa City", released 2026/06/01 |
| 顶层子命令 | gdal <TAB><TAB>(Bash 环境) | 出现raster vector mdim pipeline ...等候选 |
| 顶层选项补全 | gdal --<TAB><TAB> | 出现--config --drivers --help --json-usage --version |
| 数据集就位 | ls工作坊数据目录 | 出现.nc、.SAFE、dem.tif、.pbf等文件 |
| jq 可用 | jq --version | 输出版本号 |
| QGIS 可启动 | qgis | 图形界面正常打开 |
常见问题快速定位:
- Docker 下 QGIS 无窗口:检查是否执行了
xhost +local:root,以及-v /tmp/.X11-unix:/tmp/.X11-unix挂载; - Windows 下
gdal.bat报路径错误:确认 Miniforge3 与 Conda 环境是否安装在默认位置(c:\gdal与c:\gdal\condaenv\gdal),否则编辑脚本路径; - Windows 下安装器写不进去
c:\gdal:务必以管理员身份运行安装器; - macOS 安装 QGIS:走 QGIS 官方安装器而非 Conda。
完成上述环境准备后,即可进入 工作坊首节内容,从gdal raster info与gdal vector info开始探索新 CLI 的完整能力。
- GIS
- 遥感
- 数据工程
【免费下载链接】gdal
GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats.
相关推荐
DLSS Swapper终极指南:5分钟掌握游戏性能优化神器,免费提升帧率50%
DLSS Swapper终极指南:5分钟掌握游戏性能优化神器,免费提升帧率50% 你是不是厌倦了游戏中卡顿的画面?是否曾因为DLSS版本过旧而错失更好的游戏体验
操作系统云原生容器运行时CopyQ 跨平台安装完全指南:Windows / macOS / Linux 多途径部署与命令行环境配置
CopyQ 跨平台安装完全指南:Windows / macOS / Linux 多途径部署与命令行环境配置 CopyQ 是一款跨平台的高级剪贴板管理器,支持 W
桌面应用GDAL 开发环境搭建完整指南:Vagrant、Docker 与 Windows Conda 多方案实战
GDAL 开发环境搭建完整指南:Vagrant、Docker 与 Windows Conda 多方案实战 本指南基于 GDAL 官方开发文档《Setting u
GIS遥感数据工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考