osgeo/grass-gisGRASS GIS(地理资源分析支持系统,[***] GIS的容器化部署方案,便于快速搭建和使用GRASS GIS环境,支持命令行操作及可选的图形用户界面(wxGUI)。
通过Jupyter Notebook可实验GRASS的Python API,点击以下按钮在Binder中启动:
,解压后得到grassdata目录。
grassdata目录下启动当终端当前路径为grassdata目录(包含测试位置nc_basic_spm_grass7)时:
bashdocker run -it --rm \ --user=$(id -u):$(id -g) \ --volume $(pwd):/data \ --env HOME=/data/ \ grassgis grass --text nc_basic_spm_grass7/user1 --exec g.region -p
指定grassdata目录的绝对路径:
bashdocker run -it --rm \ --user=$(id -u):$(id -g) \ --volume /your/test/grassdata/:/data \ --env HOME=/data/ \ grassgis grass /data/nc_basic_spm_grass7/PERMANENT --exec g.region -p
参数说明:
--user=$(id -u):$(id -g):使用当前用户ID和组ID运行容器,避免文件权限问题--volume:挂载本地目录到容器内/data,实现数据持久化--env HOME=/data/:设置容器内HOME目录为/data,确保配置文件存储在挂载目录--text:以纯文本模式运行GRASS(无GUI)--exec:执行指定GRASS命令(示例中为g.region -p,打印当前区域信息)
bash# 允许容器访问本地X11显示(仅Linux系统) xhost local:$(id -u) # 启动带GUI的容器 docker run -it --privileged --rm \ --user=$(id -u):$(id -g) \ --volume="$(pwd)/:/data" \ --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ --env HOME=/data/ \ --env DISPLAY=$DISPLAY \ --device="/dev/dri/card0:/dev/dri/card0" \ grassgis grass --gui
注意:
--privileged和--device参数用于支持图形渲染,/tmp/.X11-unix挂载实现GUI显示转发。
验证镜像功能是否正常,执行GRASS单元测试:
bashdocker run -it --rm \ --user=$(id -u):$(id -g) \ --volume /your/test/grassdata/:/data \ --env HOME=/data/ \ -w /code/grass \ grassgis grass /data/nc_basic_spm_grass7/PERMANENT --exec \ python -m grass.gunittest.main --location nc_basic_spm_grass7 --location-type nc
| 环境变量 | 说明 | 示例值 |
|---|---|---|
HOME | 设置容器内用户主目录,建议指向挂载的数据目录 | /data/ |
DISPLAY | 图形界面显示地址(仅GUI版本需要) | 本地DISPLAY值(如:0) |

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务