I am aware that how to convert a vector layer to a raster layer is a quite frequent problem and that there are many questions and answers dealing with it. However, none was helpful concerning my specific problem, so I hope it's okay to ask again. I have a huge dataset consisting of fish catch data - different species and the location where they were caught. The original data is a csv file, but I'm working with it in QGIS and have created a vector file from the spreadsheet. Now I want to use another program (Zonation) that only accepts raster files to calculate species richness in certain areas - is there a possibility to create a raster from a vector layer with irregular points? I have tried the Rasterize tool, but it only gives me a solid rectangle and all individual data points are lost. I'm working with CRS WGS 84 and I have tried to set the cell size to 0.4, but still it's only one solid square.

  • You need to chose an interpolation algorithm which is suitable for your input data. – underdark Sep 26 '13 at 17:39
  • Where can I do that? – Kristina Sep 26 '13 at 17:40
  • Sorry, I meant check the literature for which data to use to interpolate fish catch data or similar. I assume it's a common step in papers in that field but it's not my research area. Just wanted to give you the pointer that you need to look for "interpolation" – underdark Sep 26 '13 at 17:43
  • Good to know, found the tool but am unsure how to work with it - it's a bit confusing that it asks for an interpolation attribute and I don't know what to put in there. – Kristina Sep 26 '13 at 17:47
  • Kernel density estimation is probably closer to what you need. – underdark Sep 26 '13 at 18:34

It is not clear from your question what format the "other program" expects. 1) A "binary" raster with the value of the catch in cells with recordedcatch, and zeros elsewhere? 2) A raster with interpolated values of fish catch? Or 3) something else?

Case 1:

  • Add the points as a layer in QGIS.
  • Go to Raster->Conversion->Rasterize
  • As input file,select the point layer, as attribute field,select the values you want at the "catch points".
  • Give the output file (raster) a name,and select a fileformat.
  • Select the size/resolution of the output raster and run. The output raster now has the values of the catch in the cells, and zeros where there was no catch recorded.

Case 2:

  • Add the points as a layer in QGIS.
  • Go to Raster->Interpolation->Interpolation
  • Under "Vector layers", select the point layer, under Attribute, select the values you wish to interpolate (e.g. Catch) from the point layer.
  • In the "Output" box, use TIN as a first go, and select an appropriate cellsize for the raster.
  • Name the output file (will be a raster with .asc extension)
  • Help for the tool is here: http://www.qgis.org/en/docs/user_manual/plugins/plugins_interpolation.html

Case 3: You need to provide somemore details, but you might end up with one of the tools described above.

For general vector->raster operations, see How to convert a vector layer to raster?.


I guess your procedure was correct and can be improved with previous answers.

To avoid your previous results, obtain beforehand the distance between your points in degrees (since you are using geographic coordinates) and use less than that length as cell size to avoid that two values falls in one cell and losing data.

Remember that 1 degree is ~111 km in the Equator, then 0.4 degrees of cell size as you choose is around 44.4 km x 44.4 km. If your sampling area is equal or smaller than that you will get 1 single cell.

Try using a smaller cell size (0.009 is around 1 km in the Equator but you should check your data latitude').

Or you can reproject your data to UTM to use meters as input in cell size.

I hope this helps for someone with the same problem.


Your Answer

