如何在Linux机器上安装GRASS GIS并搭配Python使用?求Bash脚本方案
Linux 安装 GRASS GIS 指南
一、通过包管理器快速安装
Debian/Ubuntu 系列
直接用系统包管理器安装稳定版:
sudo apt update sudo apt install grass grass-gui
RHEL/CentOS/Fedora 系列
用dnf(或yum)完成安装:
sudo dnf update sudo dnf install grass grass-gui
二、源码编译安装(适配最新功能需求)
如果包管理器提供的版本过旧,可手动编译源码:
- 安装编译依赖:
# Debian/Ubuntu 系 sudo apt install build-essential libgdal-dev libproj-dev libgeos-dev libsqlite3-dev libfftw3-dev libreadline-dev libncurses5-dev libbz2-dev zlib1g-dev libpng-dev libjpeg-dev libtiff-dev libxmu-dev libwxgtk3.0-gtk3-dev python3-dev python3-pip # RHEL/CentOS/Fedora 系 sudo dnf install gcc gcc-c++ gdal-devel proj-devel geos-devel sqlite-devel fftw-devel readline-devel ncurses-devel bzip2-devel zlib-devel libpng-devel libjpeg-turbo-devel libtiff-devel libXmu-devel wxGTK3-devel python3-devel python3-pip - 克隆最新源码:
git clone https://github.com/OSGeo/grass.git cd grass - 配置编译参数(可指定安装路径,示例为
/opt/grass):./configure --prefix=/opt/grass --with-python --with-wxwidgets - 编译并安装:
make -j$(nproc) sudo make install
GRASS GIS 与 Python 结合使用
GRASS 自带 Python 绑定,常用两种结合方式:
方式一:在 GRASS 会话内运行 Python 脚本
启动 GRASS GIS 图形界面后,打开内置 Python 控制台即可直接调用 GRASS 模块:
import grass.script as gs # 示例:列出当前地图集内的栅格数据 print(gs.parse_command('g.list', type='raster'))
也可在终端启动 GRASS 会话后执行外部脚本:
grass /path/to/your/location/PERMANENT --exec python3 your_script.py
方式二:在外部 Python 环境调用 GRASS
需先配置 GRASS 环境变量,示例脚本:
import os import sys # 指定 GRASS 安装路径 grass_path = '/opt/grass' os.environ['GISBASE'] = grass_path sys.path.append(os.path.join(grass_path, 'etc', 'python')) # 初始化 GRASS 环境 import grass.script as gs gs.init('/path/to/your/location', 'PERMANENT') # 调用 GRASS 地形分析模块 gs.run_command('r.slope.aspect', elevation='dem', slope='dem_slope')
自动化安装的 Bash 脚本
以下脚本支持 Debian/Ubuntu 和 RHEL/CentOS/Fedora 系,会自动识别发行版并完成 GRASS GIS 安装:
#!/bin/bash set -e # 检测发行版类型 if [ -f /etc/debian_version ]; then echo "识别到 Debian/Ubuntu 系统" sudo apt update -y sudo apt install -y grass grass-gui python3-pip elif [ -f /etc/redhat-release ]; then echo "识别到 RHEL/CentOS/Fedora 系统" sudo dnf update -y sudo dnf install -y grass grass-gui python3-pip else echo "不支持当前 Linux 发行版" exit 1 fi # 验证安装结果 grass --version echo "GRASS GIS 安装完成"
使用步骤:
- 将脚本保存为
install_grass.sh - 赋予执行权限:
chmod +x install_grass.sh - 运行脚本:
./install_grass.sh
若需要源码编译的自动化脚本,可基于前文编译步骤扩展,添加版本选择、安装路径自定义等参数。
内容的提问来源于stack exchange,提问作者gcamargo
相关产品推荐
相关产品推荐

