Tutorial: Setting Up A Working GRASS Environment in QGIS

GRASS is a popular open source GIS toolkit and has a large number of useful raster, vector and terrain tools for GIS analysis. You can use these toolswithin Quantum GIS with the GRASS plugin. Unfortunately, GRASS is fairly unintuitive for beginner GIS users and it can be daunting to use these tools. In this tutorial I will show you how to setup a simple and generalized working environment that will enable GRASS tools to be used within QGIS.

I will not go in-depth in the concept of a GRASS database, mapset and location. These concepts are useful when setting up a multi-user environment in a project setting, but for most beginners and single-person setups need not worry about learning the nuances of these concepts.
  • First make sure the GRASS plugin is loaded and enabled. If you do not see GRASS under plugins, please follow this tutorial to find and enable the plugin. Once enabled, go to Plugins → GRASS → New mapset
  • In the pop up window, click on Browse and go to a directory where the GRASS data would be stored. This is called a ‘Database’ in GRASS lingo and contain all settings and layers for a particular project. Click Next.
  • In the next window, you will be asked to create a new location. Since we are creating a generalized workspace, you can name it ‘World’. Click Next.

  • Next, you will be asked to define a projection. This is very different from traditional GIS systems where you can work with data in different projections simultaneously. In GRASS, the projection of your project needs to be defined upfront and all data that you import to GRASS would be re-projeccted to this projection. If you have a specific projection for your project, you may choose it here. For most beginners a WGS84 CRS would be sufficient.

  • In the next screen, you will be asked to select a GRASS region. Again this is not how most GIS systems work. In GRASS, you have to pre-define the extent of the geographic area for your project. Any layer with data outside this region cannot be imported to GRASS. Unless you have a specific reason, you should leave the region to the default global extents. Click Next.
  • Now you will have to name a mapset. For single users using GRASS for simple analysis, this should not matter. You can simply name it ‘World’ and click Next.

  • Click Finish in the next screen and you will get a confirmation message that saying your new mapset has been created.
  • Now if you go to Plugins → GRASS , you will see that a lot more options are now enabled. Before we can start using the tools, click on ‘Edit Current GRASS Region’ option.
  • You will remember that we had an option to set the project extents when setting up the new mapset. But you will notice some more option in this screen. There is an option of setting the ‘Resolution’. This is important when working with Rasters. If you create rasters in your GRASS project, the resulting resolution will be determined by this setting. For this project let’s set the X and Y resolution to be 0.1.
  • Now you are all set with yourr GRASS environment. You can explore the GRASS Toolbox under Plugins → GRASS → Open GRASS Tools. These contain rich set of tools that can tackle even the most complexx GIS Analysis. This is akin to the Arc Toolbox you may have used in ArcGIS. I will show you how to use some of these tools in subsequent tutorials.


  1. Dear Mr.Gandhi,
    Thanks a lot for your nice introductory GRASS plugin. Can you suggest me nice books for learning QGIS.


  2. Ok...I'm trying to enter in metes/bounds deeds for Napa County to map in Grass. Is this possible?

  3. Hi Kathleen,

    You can use m.cogo module in GRASS http://grass.fbk.eu/grass62/manuals/html62_user/m.cogo.html

    In QGIS, there is a plugin called "Azimuth and Distance", which can help you in mapping metes/bounds data. You can give it a try.

    1. Azimuth & Distance is soooo close; there's no way, as far as I can tell, to enter curve data. Is that correct? I so want to abandon esri, but I don't know that the QGIS and Grass learning curve is flat enough to warrant it at this point.

    2. Hi Shawn,

      QGIS would be pretty easy to pick up, but GRASS is another story. There is an effort to get more analysis capabilities into QGIS via SEXTANTE and MMQGIS plugins. They are still a bit early in the dvelopment, but they are much easier to use than GRASS.

  4. want to see more on grass plugin of QGIS,,,,, ur posts are very much helpful..... thanks a lot for this effort ,,,,, cheers

  5. Dear mr Gandhi,
    thanks alot for your tutorials for QGIS. I was wondering are there any tutorials (examples, materials...) for radio coverage calculations (such as Hata model path loss calculations)? I would be very thankful if you can help me with that please. :) I have a project in that field that I need to start working on.

    Stjepan from Croatia

  6. Hmmmmm. THis looks GREAT, and many thanks for the documentation. A question, though ... I am not seeing the GRASS plug-in repository via my QGIS plug-in manager. Can you suggest where I can locate the GRASS plug-in? Many thanks, Town Peterson town@ku.edu

  7. Hi Gandhi .. Thanks for your information. I have a question. Can you help me to use mangeR plugin in which i am trying to install rpy2 but could not, iam usig windows and python 2.7, R 2.15.3 version