GRASS GIS (https://grass.osgeo.org/) is a Geographic Information System used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.
Launch this repository in Binder and experiment with GRASS's Python API in Jupyter Notebooks by clicking the button below:
In general: you don't really need write access as you can simply open a pull request to contribute to GRASS GIS. See CONTRIBUTING file for more details.
How to get write access here
Want to become a core developer? See Procedure for gaining Git write access
See the INSTALL.md file.
Yes, you should really read INSTALL.md. In addition, there are detailed compile instructions in the Wiki.
Build a docker image using the downloaded source code (run this in the directory containing the source code):
A. Docker image without graphical user interface - wxGUI.
docker build -t grassgis .
A test run (assuming you have the existing GRASS GIS test location; it can be downloaded from here)
# case 1: launching in the grassdata directory in which the location is stored:
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
# case 2: launching anywhere
docker 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
Note that the first grassgis
is the name of the image while the second
grass
is the name of the executable.
To run the tests (again assuming local location):
docker 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
B. Docker image with graphical user interface - wxGUI.
docker build -t grassgis -f docker/ubuntu_wxgui/Dockerfile .
Note that the first grassgis
is the name of the image while the second
grass
is the name of the executable.
xhost local:$(id -u)
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
Note: If you compiled locally before building the Docker image, you may encounter problems as the local configuration and the locally compiled files are copied to and used in the Docker image. To make sure you don't have this issue, clean all the compiled files from the source code:
make distclean