r.forcircular
Evaluation of circular bioeconomy level of forest ecosystems
r.forcircular [-r] forest=name boundaries=name dtm=name tracks=name [rivers=name] [lakes=name] [protected_areas=name] slp_min_cc=float slp_max_cc=float dist_max_cc=float [slp_max_fw=float] dist_max_fw=float slp_max_cop=float dist_max_cop=float hf_slope=string c_slope=string hf_noslope=string c_noslope=string [resolution=string] [cost_chainsaw=float] [cost_processor=float] [cost_harvester=float] [cost_cablehf=float] [cost_cablec=float] [cost_forwarder=float] [cost_skidder=float] [cost_tractor=float] [cost_chipping=float] [interest=float] [mc_paper=float] [mc_furniture=float] [mc_building=float] [mc_woodpackaging=float] [mc_other=float] ind1=name ind2=name ind3=name ind4=name ind5=name ind6=name ind7=name [w_1=float] [w_2=float] [w_3=float] [w_4=float] [w_5=float] [w_6=float] [w_7=float] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]
Example:
r.forcircular forest=name boundaries=name dtm=name tracks=name slp_min_cc=30. slp_max_cc=100. dist_max_cc=1000. dist_max_fw=900. slp_max_cop=30. dist_max_cop=800. hf_slope=string c_slope=string hf_noslope=string c_noslope=string ind1=name ind2=name ind3=name ind4=name ind5=name ind6=name ind7=name
grass.script.run_command("r.forcircular", forest, boundaries, dtm, tracks, rivers=None, lakes=None, protected_areas=None, slp_min_cc=30., slp_max_cc=100., dist_max_cc=1000., slp_max_fw=30., dist_max_fw=900., slp_max_cop=30., dist_max_cop=800., hf_slope, c_slope, hf_noslope, c_noslope, resolution="10", cost_chainsaw=13.17, cost_processor=83.52, cost_harvester=96.33, cost_cablehf=111.64, cost_cablec=104.31, cost_forwarder=70.70, cost_skidder=64.36, cost_tractor=45, cost_chipping=160.87, interest=0.03, mc_paper=0.02, mc_furniture=0.4, mc_building=0.5, mc_woodpackaging=0.03, mc_other=0.05, ind1, ind2, ind3, ind4, ind5, ind6, ind7, w_1=0.15, w_2=0.12, w_3=0.12, w_4=0.13, w_5=0.14, w_6=0.17, w_7=0.16, flags=None, overwrite=False, verbose=False, quiet=False, superquiet=False)
Example:
gs.run_command("r.forcircular", forest="name", boundaries="name", dtm="name", tracks="name", slp_min_cc=30., slp_max_cc=100., dist_max_cc=1000., dist_max_fw=900., slp_max_cop=30., dist_max_cop=800., hf_slope="string", c_slope="string", hf_noslope="string", c_noslope="string", ind1="name", ind2="name", ind3="name", ind4="name", ind5="name", ind6="name", ind7="name")
Parameters
forest=name [required]
Name of input parcel parcel map
Name of input parcel parcel map
boundaries=name [required]
Name of input boundaries vector boolean map
Name of input boundaries vector boolean map
dtm=name [required]
Name of input elevation raster map
tracks=name [required]
Name of input forest roads vector map
Name of input forest roads vector map
rivers=name
Name of input rivers vector map
Name of input rivers vector map
lakes=name
Name of input lakes vector map
Name of input lakes vector map
protected_areas=name
Name of input protected areas vector map
Name of input protected areas vector map
slp_min_cc=float [required]
Percent slope lower limit for aerial extraction
Default: 30.
slp_max_cc=float [required]
Percent slope higher limit for aerial extraction
Default: 100.
dist_max_cc=float [required]
Maximum distance for aerial extraction
Default: 1000.
slp_max_fw=float
Percent slope higher limit with Forwarder
Default: 30.
dist_max_fw=float [required]
Maximum distance with Forwarder
Default: 900.
slp_max_cop=float [required]
Percent slope higher limit with other techniques for Coppices
Default: 30.
dist_max_cop=float [required]
Maximum distance with other techniques for Coppices
Default: 800.
hf_slope=string [required]
Machineries for high forest in steep terrain
Allowed values: cable crane - high power, cable crane - medium/low power, skidder
c_slope=string [required]
Machineries for coppice in steep terrain
Allowed values: cable crane - high power, cable crane - medium/low power, tractor
hf_noslope=string [required]
Vehicle for high forest in not steep terrain
Allowed values: forwarder, skidder, tractor
c_noslope=string [required]
Vehicle for coppice in not steep terrain
Allowed values: forwarder, skidder, tractor
resolution=string
Working resolution
Default: 10
cost_chainsaw=float
Felling and/or felling-processing cost with chainsaw EUR/h
Default: 13.17
cost_processor=float
Processing cost with processor EUR/h
Default: 83.52
cost_harvester=float
Felling and processing cost with harvester EUR/h
Default: 96.33
cost_cablehf=float
Extraction cost with high power cable crane EUR/h
Default: 111.64
cost_cablec=float
Extraction cost with medium power cable crane EUR/h
Default: 104.31
cost_forwarder=float
Extraction cost with forwarder EUR/h
Default: 70.70
cost_skidder=float
Extraction cost with skidder EUR/h
Default: 64.36
cost_tractor=float
Extraction cost with tractor EUR/h
Default: 45
cost_chipping=float
Chipping cost EUR/h
Default: 160.87
interest=float
Interest rate EUR/h
Default: 0.03
mc_paper=float
Percentage of roundwood re-use in paper
Default: 0.02
mc_furniture=float
Percentage of roundwood re-use in furniture
Default: 0.4
mc_building=float
Percentage of roundwood re-use in building
Default: 0.5
mc_woodpackaging=float
Percentage of roundwood re-use in packaging
Default: 0.03
mc_other=float
Percentage of roundwood re-use in other use
Default: 0.05
ind1=name [required]
Name for indicator n.1 map
ind2=name [required]
Name for indicator n.2 map
ind3=name [required]
Name for indicator n.3 map
ind4=name [required]
Name for indicator n.4 map
ind5=name [required]
Name for indicator n.5 map
ind6=name [required]
Name for indicator n.6 map
ind7=name [required]
Name for indicator n.7 map
w_1=float
Weight for indicator n.1
Default: 0.15
w_2=float
Weight for indicator n.2
Default: 0.12
w_3=float
Weight for indicator n.3
Default: 0.12
w_4=float
Weight for indicator n.4
Default: 0.13
w_5=float
Weight for indicator n.5
Default: 0.14
w_6=float
Weight for indicator n.6
Default: 0.17
w_7=float
Weight for indicator n.7
Default: 0.16
-r
Remove all operational maps
--overwrite
Allow output files to overwrite existing files
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
forest : str, required
Name of input parcel parcel map
Name of input parcel parcel map
Used as: input, vector, name
boundaries : str, required
Name of input boundaries vector boolean map
Name of input boundaries vector boolean map
Used as: input, vector, name
dtm : str, required
Name of input elevation raster map
Used as: input, raster, name
tracks : str, required
Name of input forest roads vector map
Name of input forest roads vector map
Used as: input, vector, name
rivers : str, optional
Name of input rivers vector map
Name of input rivers vector map
Used as: input, vector, name
lakes : str, optional
Name of input lakes vector map
Name of input lakes vector map
Used as: input, vector, name
protected_areas : str, optional
Name of input protected areas vector map
Name of input protected areas vector map
Used as: input, vector, name
slp_min_cc : float, required
Percent slope lower limit for aerial extraction
Default: 30.
slp_max_cc : float, required
Percent slope higher limit for aerial extraction
Default: 100.
dist_max_cc : float, required
Maximum distance for aerial extraction
Default: 1000.
slp_max_fw : float, optional
Percent slope higher limit with Forwarder
Default: 30.
dist_max_fw : float, required
Maximum distance with Forwarder
Default: 900.
slp_max_cop : float, required
Percent slope higher limit with other techniques for Coppices
Default: 30.
dist_max_cop : float, required
Maximum distance with other techniques for Coppices
Default: 800.
hf_slope : str, required
Machineries for high forest in steep terrain
Allowed values: cable crane - high power, cable crane - medium/low power, skidder
c_slope : str, required
Machineries for coppice in steep terrain
Allowed values: cable crane - high power, cable crane - medium/low power, tractor
hf_noslope : str, required
Vehicle for high forest in not steep terrain
Allowed values: forwarder, skidder, tractor
c_noslope : str, required
Vehicle for coppice in not steep terrain
Allowed values: forwarder, skidder, tractor
resolution : str, optional
Working resolution
Default: 10
cost_chainsaw : float, optional
Felling and/or felling-processing cost with chainsaw EUR/h
Default: 13.17
cost_processor : float, optional
Processing cost with processor EUR/h
Default: 83.52
cost_harvester : float, optional
Felling and processing cost with harvester EUR/h
Default: 96.33
cost_cablehf : float, optional
Extraction cost with high power cable crane EUR/h
Default: 111.64
cost_cablec : float, optional
Extraction cost with medium power cable crane EUR/h
Default: 104.31
cost_forwarder : float, optional
Extraction cost with forwarder EUR/h
Default: 70.70
cost_skidder : float, optional
Extraction cost with skidder EUR/h
Default: 64.36
cost_tractor : float, optional
Extraction cost with tractor EUR/h
Default: 45
cost_chipping : float, optional
Chipping cost EUR/h
Default: 160.87
interest : float, optional
Interest rate EUR/h
Default: 0.03
mc_paper : float, optional
Percentage of roundwood re-use in paper
Default: 0.02
mc_furniture : float, optional
Percentage of roundwood re-use in furniture
Default: 0.4
mc_building : float, optional
Percentage of roundwood re-use in building
Default: 0.5
mc_woodpackaging : float, optional
Percentage of roundwood re-use in packaging
Default: 0.03
mc_other : float, optional
Percentage of roundwood re-use in other use
Default: 0.05
ind1 : str, required
Name for indicator n.1 map
Used as: output, , name
ind2 : str, required
Name for indicator n.2 map
Used as: output, , name
ind3 : str, required
Name for indicator n.3 map
Used as: output, , name
ind4 : str, required
Name for indicator n.4 map
Used as: output, , name
ind5 : str, required
Name for indicator n.5 map
Used as: output, , name
ind6 : str, required
Name for indicator n.6 map
Used as: output, , name
ind7 : str, required
Name for indicator n.7 map
Used as: output, , name
w_1 : float, optional
Weight for indicator n.1
Default: 0.15
w_2 : float, optional
Weight for indicator n.2
Default: 0.12
w_3 : float, optional
Weight for indicator n.3
Default: 0.12
w_4 : float, optional
Weight for indicator n.4
Default: 0.13
w_5 : float, optional
Weight for indicator n.5
Default: 0.14
w_6 : float, optional
Weight for indicator n.6
Default: 0.17
w_7 : float, optional
Weight for indicator n.7
Default: 0.16
flags : str, optional
Allowed values: r
r
Remove all operational maps
overwrite: bool, optional
Allow output files to overwrite existing files
Default: False
verbose: bool, optional
Verbose module output
Default: False
quiet: bool, optional
Quiet module output
Default: False
superquiet: bool, optional
Very quiet module output
Default: False
DESCRIPTION
r.forcircular analyzes and measures the level of sustainability of the forest-wood supply chain in a circular bioeconomy approach.
NOTES
This module permits to identify potentially usable forest areas both from a technical and economic point of view. The required data input is a vector file with a series of mandatory fields described below:
- incr_ha: [float] value of the forest increase [mc * ha * year-1]
- management: [integer] forest management system (form of government), can take on two values, namely (1) for forest management and (2) for coppice management
- treatment: [integer] treatment adopted, it can take on two values, namely (1) for the final use cut and (2) for the thinning. Thinning is not foreseen for coppice woods.
- roughness: [integer] level of terrain accidentality - (0): no accidentality; (1): locally bumpy; (2): partially bumpy; (3): mostly bumpy
- tree_diam: [integer] average diameter of the stems [cm]. If the data is not available, indicate the generic value 99999
- tree_vol: [decimal] average volume per plant [m3]. If the data is not available, indicate the generic value 9.999
- rotation: [integer] cutting cycle (or forest shift) [years]
- soil_prod: [integer] degree of soil productivity (fertility): (1): very low; (2): low; (3): medium; (4); tall; (5): very high
- PCI: [float] Average lower calorific value of the wood species present in the polygon [MWh / t]
- cut: [float]: cut percentage (range from 0 (0%) to 1 (100%)). It represents the percentage of wood mass on the total stock that falls during the cutting operation.
- perc_round: [float] (from 0 to 1) corresponding to the percentage of the wood mass for round wood
- perc_timb: [float] (from 0 to 1) corresponding to the percentage of the wood mass for poles
- perc_fire: [float] (from 0 to 1) corresponding to the percentage of the wood mass for firewood
- perc_res: [float] (from 0 to 1) corresponding to the percentage of wood residues to be used for energy (wood chips)
- perc_roun9: [float] (from 0 to 1) corresponding to the percentage of the wood mass for roundwood in the assortment optimization scenario
- perc_timb9: [float] (from 0 to 1) corresponding to the percentage of the wood mass for poles in the assortment optimization scenario
- perc_fire9: [float] (from 0 to 1) corresponding to the percentage of the wood mass for firewood in the assortment optimization scenario
- perc_res9: [float] (from 0 to 1) corresponding to the percentage of wood residues to be used for energy use (wood chips) in the assortment optimization scenario
- pric_roun: [float] corresponding to the average price for the roundwood assortment [€ / m3]
- pric_timb: [float] corresponding to the average price for the poles assortment [€ / m3]
- pric_fire: [float] corresponding to the average price for the firewood assortment [€ / m3]
- pric_bioe: [float] corresponding to the average price for biomass energy for energy use [€ / MWh]
Other mandatory data:
- vector tracks file
- vector boundaries file
- raster digital elevetion model file
Optional data:
- vector rivers file
- vector lakes file
- vector protected areas file
r.forcircular identifies forest areas potentially exploitable from both technical (according to geomorphological, logistic and mechanization variables) and economic (through the estimation of stumpage value) points of view. Subsequently, the use of indicators belonging to the 4R framework of the circular economy (Reduce, Reuse, Recycle, Recover) allows to evaluate the level of circularity of the forest-wood supply chain. Finally, the application of spatial multicriteria analysis (SMCA) (specifically with compromise programming
- CP - technique) permits to merge in a unique measure the level of circular bioeconomy for production of traditional wood assortments and bioenergy in forest areas. In the SMCA procedure, each indicator is weighted according to on-line questionnaire proposed to decision makers operating in the forest-based sector. The list of indicators used is the following:
4R | INDICATORS | DEFINITION |
---|---|---|
Reduce | i1 - Ratio (on annual basis) between annual value and annual mean volume of harvested mass; i2 - CO2 emissions per unit of wood product | Improving of the process efficiency reducing the utilization of natural resources |
Reuse | i5 - Ratio between the potential economic value of the wood assortment and the real value earned | Valorisation of the valuable wood high quality assortments |
Recover | i6 - Percentage of wood waste for bioenergy production; i7 - Amount of CO2 emissions saved per unit of energy produced by wood wastes | Energy recovery from wood waste products; Emissions saved from energy recovery from wood waste products |
The quantification of circular bioeconomy indicators is developed in the framework of provisioning forest ecosystem services. For this reason, the indicators and results of SMCA process are computed on forest surface with financial efficiency of production process or, in other terms, the area where a positive stumpage value can be reached. The calculation of stumpage value is carried out following the approach of another GRASS GIS add-on: r.green.biomassfor.
The model in r.forcircular starts with importation of geodata and
conversion of vector intp raster. Then, through a multistep approach,
the technical and the economic availability of biomass (both traditional
wood assortments and woodchips for bioenergy production) are quantified.
Technical availability depicts forest surface where the extraction of
wood material is possible. The approach combines type of mechanisation,
limits for slope, distance from roads and roughness.
In forest area where extraction is possible, the stumpage value is
quantified as a combination of differenct factors such as hourly unitary
cost of each production process, worker costs, hourly productivity and
administrative costs.
The user can setthe upper and - if needed - lower limits for slope and
distance from roads to obtain the technical surface:
In forest area where extraction is possible, the stumpage value is quantified as follow:
Subsequently, the 4R indicators are calculated on the forest area with positive revenue.
The importance of each circular bioeconomy index derives from the work of Paletto et al. (see Paletto A, Becagli C, Geri F, et al (2022) Use of Participatory Processes in Wood Residue Management from a Circular Bioeconomy Perspective: An Approach Adopted in Italy. Energies 15:1011) where - starting from a total sample of 56 decision makers operating in forest-based sectorin Italy - 30 decision makers filled out a questionnaire. The decision makers involved in the study have been identified based on their knowledge and experience in the fields of bioeconomy, circular economic, and forest policy. According to the outputs provided by Paletto et al., the values of indices currently applied in r.forcircular (but modifiable by users) are: i1=0.15, i2=0.12, i3=0.12, i4=0.13, i5=0.14, i6=0.17, i7=0.16.
r.forcircular highlights the output in both numerical and geographical format. By means of zonal statistics operations following results can be reported for the forest surface where stumpage value is greater then 0: annual availability of assortments (m3/y) recalibrated in category of harvested material (i.e., roundwood, timber pole, firewood, woodchips converted in bioenergy and expressed in MWh/y), annual stumpage value (€/y), average annual stumpage value (€/ha·y-1), average stumpage value at harvesting (€/ha) and avoided CO2 emissions (tCO2/y).
Quantification of circular bioeconomy is expressed by a SMCA procedure
based on compromise programming (CP) technique. CP depicts the distance
from the so-called “ideal” point, a hypothetical alternative defined as
the most suitable level for each indicator (i) in the considered
scenario. The distance from ideal point (DIP) is measured with the
decision rule:
EXAMPLE
This example is based on the case-study of Municipality Union of the Sieve and Arno valleys (province of Florence, Tuscany, Italy). The territory is mountainous and is located in the central Apennine. The surface of Municipality Union is 49,500 hectares with a forest index of 62%. Woodlands are mainly composed by broadleaved forests (84%), followed by conifers (10%) and mixed forests of broadleaved and conifers (6%). Below you can see the vector parcel file, with a field structure like the manatory field scheme described above.
On the basis of this example the correct syntax to run the module is:
r.forcircular forest=parcel boundaries=study_Area dtm=dem tracks=forest_tracks \
rivers=rivers lakes=lakes protected_areas=reserved slp_min_cc=30. slp_max_cc=100. \
dist_max_cc=1000. dist_max_fw=900. slp_max_cop=30. dist_max_cop=800. \
hf_slope="cable crane - high power" c_slope="cable crane - medium/low power" \
hf_noslope="tractor" c_noslope="tractor" ind1=indicator1 ind2=indicator2 ind3=indicator3 \
ind4=indicator4 ind5=indicator5 ind6=indicator6 ind7=indicator7
The output maps are: technical_surface (forest surface where exploitation is technically possibile), economic_surface (forest surface where the exploitation is economically advantageous), emission (CO2 produced by the exploitation), annual_avoided_emission (emissions avoided compared to the use of fossil fuels), revenues (map of economic revenues), dip (distance from ideal, the assessment of the circular economy level of the forest supply chain). Below there are two examples of the output maps corresponding respectively to the stumpage value and the annual avoided emission:
Examples of output maps: stumpage value and avoided emission
The output text results are the follow:
#############################
End of process
Name of output maps:
rep_roundwood -> roundwood (m3/y): 8507.3917
rep_timber -> timber pole (m3/y): 195.4894
rep_firewood -> firewood (m3/y): 7239.1150
rep_bioenergy -> bioenergy (MWh/y): 6354.3441
rep_sum_a_stumpage_value -> annual stumpage value (EUR/y): 147608.5463
rep_ave_stumpage_value -> average stumpage value (EUR/ha): 3998.2780
rep_ave_a_stumpage_value -> average annual stumpage value (EUR/ha*y-1): 28.2872
rep_annual_avoided_emission -> annual avoided emissions (t): 1963.9961
---------------------------
rep_indicator1 -> annual value of wood on annual yield (euro/m3): 7.2534
rep_indicator2 -> carbon dioxide emission per cubic meter (t/m3): 0.0001
rep_indicator3 -> general index of forest surface utilization (ha/y):157.192
rep_indicator4 -> general index of re-use (m3*y) sum: 292481.3438
rep_indicator5 -> potential value of wood on real value (euro/euro): 1.3093
rep_indicator6 -> percentual of wood residuals used in bioenergy production (%): 0.1277
rep_indicator7 -> avoided CO2 per unit of energy produced (gCO2 /kWh): 308.6331
dist_tot -> AMC map: 3.7276
#############################
REFERENCE
Paletto A, Becagli C, Geri F, Sacchelli S, De Meo I. Use of Participatory Processes in Wood Residue Management from a Circular Bioeconomy Perspective: An Approach Adopted in Italy. Energies. 2022; 15(3):1011. https://doi.org/10.3390/en15031011
SEE ALSO
AUTHORS
Francesco Geri and Sandro Sacchelli
SOURCE CODE
Available at: r.forcircular source code
(history)
Latest change: Thursday Mar 20 21:36:57 2025 in commit 7286ecf