GRASS GIS(地理资源分析支持系统)是一款开源地理信息系统(GIS),用于地理空间数据管理与分析、图像处理、地图制作、空间建模及可视化。本Docker镜像基于Alpine、Debian或Ubuntu系统构建,集成Python 3、GDAL和PDAL等工具,提供便捷的地理空间数据处理环境,适用于开发、研究和生产场景。
A. 无图形界面(wxGUI)镜像
在源代码目录执行以下命令构建基础镜像:
bashdocker build -t grassgis .
B. 带图形界面(wxGUI)镜像
使用专用Dockerfile构建带GUI支持的镜像:
bashdocker build -t grassgis -f docker/ubuntu_wxgui/Dockerfile .
1. 无GUI镜像运行示例
前提:需准备GRASS GIS测试数据,可从官方样本数据下载。
场景1:在grassdata目录中启动
bash# 在grassdata目录中执行 docker 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
场景2:在任意位置启动
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
说明:命令中第一个
grassgis为镜像名称,第二个grass为GRASS GIS可执行程序。
2. 运行测试用例
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
3. 带GUI镜像运行示例
bash# 允许容器访问本地X11显示 xhost local:$(id -u) # 启动带wxGUI的容器 docker run -it --privileged --user=$(id -u):$(id -g) --rm \ --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
若本地已编译过GRASS GIS源代码,构建Docker镜像前需清理编译文件,避免冲突:
bashmake distclean
可通过Binder在线实验GRASS GIS Python API:
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务