Objective
To find the best suitable land for
agriculture based on land use, soil type and slope. (Refer to the Video Tutorial here)
Introduction
Suppose Landuse, soil and slope are used
to determine whether the land is suitable for agriculture. Using them we have
to find the best suitable land with weightage given 40%, 20%, 40% respectively.
That portion of the land which satisfies these multiple criteria, will be
decided to be suitable for agriculture.
Steps
a. Convert and obtain
raster of Landuse, soil and slope.
b.
Calculate in
raster calculator using the weightage.
c.
Reclassify and
find the best suitable.
Let’s see these steps in detail.
Input
Vector: Landuse,
soil
(shape files)
Raster: DEM of the area.
If it is not available, you need DEM of the location like country, district,
region, etc. where your interested area lies so that you can extract the DEM of
your interested area.
QGIS STEPS
1. LandUse1
Ø Create Field LandVal and
Put values like for cultivation 10, for water body 2, etc. These values should
be known and is assigned based on importance. For example: Here cultivation
area has more importance then it will be given maximum value (for example 10)
and water body has very less importance then less value (for example 2). I will
be assigning all others except cultivation as 2 and cultivation as 10. You need
to use your own criteria.
Suppose we
need to assign cultivation = 10 and all other as 2 then use select by
expression and select all values with “cultivation” of
a column in attribute table and assign 10 by creating a
new field “LandVal” then select all others and update that
field “LandVal”with value 2. Use invert the selection to select all others except
cultivation. This will remove selection from cultivation and select remaining.
Ø Go to menu Raster | Conversion | Rasterize
Ø Select Landuse1 and under Field select the field “LandVal”
Ø Put horizontal and vertical resolution as required
e.g. 30,30
Ø Select Output Extent same as LandUse1 Layer
Ø Name it: LanduseRaster
2. Soil
Ø Create Field S_value_re
and Put values like for Alluvial 10, etc. The values are assigned based on the
importance as explained earlier in LandUse1. Create
field S_value_re as done in LandUse1. I have already created it so I will use
this field.
Ø Go to menu Raster | Conversion | Rasterize
Ø Select Landuse1 and under Field select S_value_re
Ø Put horizontal and vertical resolution as required
e.g. 30,30
Ø Select Output Extent same as Soil Layer
Ø Name it: SoilRaster
3. Slope
Ø If you don’t have DEM of you interested location, then
extract DEM (Clip DEM) by mask layer (Soil or Landuse; both is of same area)
Ø Find Slope from DEM by searching slope in toolbox. You
can get Toolbox from menu Processing | Toolbox
Ø Note: There should not be any space in
filename path like: F:/Q Gis/Soil is wrong; Right way to do is: F:/Q_Gis/Soil
or F:/QGis/Soil
Ø Reclassify the slope by searching Reclassify and
double clicking on Reclassify values (Simple)
Ø Select the Slope raster
Ø Condition: Low value <= Gird value < high value (It
means include low value and exclude high value while classifying. For example,
Minimum = 3 and Maximum = 9 and value to be assigned is 8
then all the raster cells with value >= 3
will be replaced by 8 and all the raster cells
with value <9 (excluding 9) will be replaced
by 8 i.e. Raster cell with value 9 will not be
replaced.
Ø If Reclassify values (Simple) doesn’t work then use
r.reclass (You need to have grass installed. Grass will be installed with QGIS)
0 thru 3 = 10
3 thru 9 = 8
9 thru 12 = 6
12 thru 90 = 1
I have already created soil
raster so, I will not run. But you can try this as well.
Reclassify table:
Low value
|
High value
|
Replace with
|
0
|
3
|
10
|
3
|
9
|
8
|
9
|
12
|
6
|
12
|
90
|
1
|
You can
see the maximum value of raster. If maximum value is 55 then instead of 90, you
can use any value greater than 55 like 56,60, etc. But slope varies from 0 to
90 degree with horizontal so, you can put 90.
Name it:
SlopeRaster
4. Raster
Calculator
Ø Raster |Raster Calculator
Ø Use condition: LanduseRaster * 0.4 + SoilRaster * 0.2 + SlopeRaster
* 0.4 where, 0.4, 0.2, 0.4 (Sum = 1) are
weightage. You can give other values as per requirement.
Ø Name the output raster: CriteriaRaster
Ø Now reclassify this raster based on some conditions,
which is given in step 5.
5. Suitable
Raster
Reclassify
raster CriteriaRaster based on following condition:
Low value
|
High value
|
Replace with
|
Remark
|
0
|
6
|
3
|
Not suitable
|
6
|
8
|
2
|
Good suitable Site
|
8
|
10
|
1
|
Best suitable Site
|
(Low
value <= Gird value < high value (It means include low value and exclude
high)
Ø Name it: SuitableRaster
This is our final raster.
Check the value by clicking the identifier (the icon
with “I”) and the clicking on the raster. This will show the value contained in
the raster.
No comments:
Post a Comment