{"id":13577093,"url":"https://github.com/OSGeo/grass","last_synced_at":"2025-04-05T09:30:58.891Z","repository":{"id":37484012,"uuid":"187247007","full_name":"OSGeo/grass","owner":"OSGeo","description":"GRASS - free and open-source geospatial processing engine","archived":false,"fork":false,"pushed_at":"2025-04-04T18:27:27.000Z","size":354805,"stargazers_count":902,"open_issues_count":592,"forks_count":350,"subscribers_count":45,"default_branch":"main","last_synced_at":"2025-04-04T19:01:39.684Z","etag":null,"topics":["arrays","data-science","earth-observation","geospatial","geospatial-analysis","gis","grass-gis","hacktoberfest","image-processing","jupyter","machine-learning","open-science","parallel-computing","python","raster","remote-sensing","science","spatial","timeseries-analysis","vector"],"latest_commit_sha":null,"homepage":"https://grass.osgeo.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OSGeo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"grass/contribute"}},"created_at":"2019-05-17T16:13:33.000Z","updated_at":"2025-04-03T21:03:44.000Z","dependencies_parsed_at":"2023-10-04T03:21:37.495Z","dependency_job_id":"3a801819-1a21-4957-a630-72d769904604","html_url":"https://github.com/OSGeo/grass","commit_stats":{"total_commits":23403,"total_committers":132,"mean_commits":"177.29545454545453","dds":0.7105926590608042,"last_synced_commit":"ce44da6b993ee60e92bbbe0999ecf9a71f66bdf8"},"previous_names":[],"tags_count":147,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSGeo%2Fgrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSGeo%2Fgrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSGeo%2Fgrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSGeo%2Fgrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OSGeo","download_url":"https://codeload.github.com/OSGeo/grass/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234919,"owners_count":20905854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arrays","data-science","earth-observation","geospatial","geospatial-analysis","gis","grass-gis","hacktoberfest","image-processing","jupyter","machine-learning","open-science","parallel-computing","python","raster","remote-sensing","science","spatial","timeseries-analysis","vector"],"created_at":"2024-08-01T15:01:17.941Z","updated_at":"2025-04-05T09:30:53.875Z","avatar_url":"https://github.com/OSGeo.png","language":"C","readme":"# GRASS GIS Repository\n\n[![Build Status](https://api.travis-ci.com/OSGeo/grass.svg?branch=main)](https://travis-ci.com/OSGeo/grass)\n[![GCC C/C++ standards check](https://github.com/OSGeo/grass/workflows/GCC%20C/C++%20standards%20check/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3A%22GCC+C%2FC%2B%2B+standards+check%22)\n[![Python code quality check](https://github.com/OSGeo/grass/workflows/Python%20code%20quality%20check/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3A%22Python+code+quality+check%22)\n[![General linting](https://github.com/OSGeo/grass/workflows/General%20linting/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3A%22General+linting%22)\n[![Ubuntu](https://github.com/OSGeo/grass/workflows/Ubuntu/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3AUbuntu)\n[![OSGeo4W](https://github.com/OSGeo/grass/workflows/OSGeo4W/badge.svg)](https://github.com/OSGeo/grass/actions?query=workflow%3AOSGeo4W)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/OSGeo/grass/badge)](https://securityscorecards.dev/viewer/?uri=github.com/OSGeo/grass)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/2470/badge)](https://www.bestpractices.dev/projects/2470)\n[![Coverity](https://scan.coverity.com/projects/1038/badge.svg)](https://scan.coverity.com/projects/grass)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5176030.svg)](https://doi.org/10.5281/zenodo.5176030)\n[![Join the chat at https://gitter.im/grassgis/community](https://badges.gitter.im/grassgis/community.svg)](https://gitter.im/grassgis/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n## Description\n\nGRASS GIS ([https://grass.osgeo.org/](https://grass.osgeo.org/)) is\na Geographic Information System used for geospatial data management and\nanalysis, image processing, graphics/map production, spatial modeling, and\nvisualization.\n\nLaunch this repository in Binder and experiment with GRASS's Python API in\nJupyter Notebooks by clicking the button below:\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/OSGeo/grass/main?labpath=doc%2Fnotebooks%2Fjupyter_example.ipynb)\n\n## Contributing\n\nIn general: you don't really need write access as you can simply open\na [pull request](https://github.com/OSGeo/grass/pulls) to contribute to\nGRASS GIS. See [CONTRIBUTING file](CONTRIBUTING.md) for more details.\n\nHow to get write access here\n\nWant to become a core developer? See\n[Procedure for gaining Git write access](https://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASScorerepository)\n\n## How to compile GRASS\n\n\u003e See the INSTALL.md file.\n\nYes, you should really read [INSTALL.md](INSTALL.md). In addition, there are\ndetailed [compile instructions](https://grasswiki.osgeo.org/wiki/Compile_and_Install)\nin the Wiki.\n\n## Docker\n\nBuild a docker image using the downloaded source code (run this in the directory\ncontaining the source code):\n\nA. Docker image **without graphical user interface - wxGUI**.\n\n```bash\ndocker build -t grassgis .\n```\n\nA test run (assuming you have the existing GRASS GIS test location; it can be\ndownloaded from\n[here](https://grass.osgeo.org/sampledata/north_carolina/nc_basic_spm_grass7.zip))\n\n```bash\n# case 1: launching in the grassdata directory in which the location is stored:\ndocker run -it --rm --user=$(id -u):$(id -g) --volume $(pwd):/data \\\n    --env HOME=/data/ grassgis grass --text nc_basic_spm_grass7/user1 \\\n        --exec g.region -p\n\n# case 2: launching anywhere\ndocker run -it --rm --user=$(id -u):$(id -g) \\\n    --volume /your/test/grassdata/:/data --env HOME=/data/ grassgis \\\n        grass /data/nc_basic_spm_grass7/PERMANENT --exec g.region -p\n```\n\nNote that the first `grassgis` is the name of the image while the second\n`grass` is the name of the executable.\n\nTo run the tests (again assuming local location):\n\n```bash\ndocker run -it --rm --user=$(id -u):$(id -g) \\\n    --volume /your/test/grassdata/:/data --env HOME=/data/ -w /code/grass \\\n        grassgis grass /data/nc_basic_spm_grass7/PERMANENT --exec \\\n            python -m grass.gunittest.main \\\n                --location nc_basic_spm_grass7 --location-type nc\n```\n\nB. Docker image **with graphical user interface - wxGUI**.\n\n```bash\ndocker build -t grassgis -f docker/ubuntu_wxgui/Dockerfile .\n```\n\nNote that the first `grassgis` is the name of the image while the second\n`grass` is the name of the executable.\n\n```bash\nxhost local:$(id -u)\ndocker run -it --privileged --user=$(id -u):$(id -g) --rm \\\n    --volume=\"$(pwd)/:/data\" --volume=\"/tmp/.X11-unix:/tmp/.X11-unix:rw\" \\\n    --env HOME=/data/ --env DISPLAY=$DISPLAY \\\n    --device=\"/dev/dri/card0:/dev/dri/card0\" \\\n    grassgis grass --gui\n```\n\nNote: If you compiled locally before building the Docker image, you may\nencounter problems as the local configuration and the locally compiled files\nare copied to and used in the Docker image. To make sure you don't have\nthis issue, clean all the compiled files from the source code:\n\n```bash\nmake distclean\n```\n\n## Thanks to all contributors ❤\n\n[![GRASS contributors](https://contrib.rocks/image?repo=OSGeo/grass \"GRASS contributors\")](https://github.com/OSGeo/grass/graphs/contributors)\n","funding_links":["https://opencollective.com/grass/contribute"],"categories":["C","Simultaneous Localization and Mapping"],"sub_categories":["Vector Map"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOSGeo%2Fgrass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOSGeo%2Fgrass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOSGeo%2Fgrass/lists"}