Determina el coste acumulado de trasladarse por una superficie
de coste (el mapa de entrada) desde una posición especificada
por el usuario. from other user-specified cell(s) whose locations
are specified by their geographic coordinate(s). Each cell in the original
cost surface map will contain a category value which represents the cost
of traversing that cell. r.cost will produce an output raster map
layer in which each cell contains the lowest total cost of traversing the
space between each cell and the user-specified points. (Diagonal costs
are multiplied by a factor that depends on the dimensions of the cell.)
This program uses the current geographic region settings. The output map
will be of the same data format than the input map, integer or floating
point.
r.cost [-vkn] input=name output=name [start_sites=name] [stop_sites=name] [coordinate=x,y[,x,y,...]] [stop_coordinate=x,y[,x,y,...]] [max_cost=maxcost] [null_value=value]
where the input name is the name of a raster map layer representing the cost surface map, the output name is the name of a raster map layer of cumulative cost, and each x,y coordinate pair gives the geographic location of a point from which the transportation cost should be figured. These starting points could be read from a sites file through the start_sites=name option. r.cost will stop cumulating costs when either maxcost is reached, or one of the stop points given with the stop_coordinates=x,y is reached. Alternatively, the stop points can be read from a site file through the stop_sites=name option. Both points read from a site file and those given o the command line will be processd. The null cells in the input map can be assigned a (positive floating point) cost with the null_value option.
Alternately, the user can simply type r.cost on the command line, without program arguments. In this case, the user will be prompted for parameter values using the standard GRASS parser interface.
r.cost can be run with two different methods of identifying the starting point(s). One or more points (geographic coordinate pairs) can be provided on the command line or site file. In lieu of these coordinates, the output map (e.g., output) is presumed to contain starting points. All non-zero cells are considered to be starting points. Beware: doing this will overwrite output with the results of the calculations. If output does exist and points are also given on the command line or through a site file, the output file is ignored.
El programa suministra mucha información acerca del grado de desarrollo del proceso ya que este puede durar bastante tiempo.
-k
Se admiten como movimientos válidos los saltos de caballo lo que en general mejora la calidad del resultado. En el diagrama posterior la localización central (O) representa el punto de partida, los vecinos marcados con X se consideraran siempre. Con la opción -k tambien se consideran los marcados con una K.
. . . . . . . . . . . . . . . . . . K . . K . . . . . . . . . . . . . . . . . . . . K . X . X . X . K . . . . . . . . . . . . . . . . . . . . X . O . X . . . . . . . . . . . . . . . . . . . . K . X . X . X . K . . . . . . . . . . . . . . . . . . . . K . . K . . . . . . . . . . . . . . . . . .-n
When input map null cells are given a cost with the null_value option, the corresponding cells in the output map are no longer null cells. With this option, the null cells of the input map are retained as null cells in the output map.
Mapa que contiene la superficie de coste
output=name
Mapa que contendrá el resultado.
start_sites=name
Fichero de sites que contiene los puntos de partida
stop_sites=name
name is the name of a site file that hold the coordinates of stopping points. During execution, once the cumulative cost to all stopping points has been determined, processing stops.
coordinate=x,y[,x,y,...]
Each x,y coordinate pair gives the easting and northing (respectively) geographic coordinates of a starting point from which to figure cumulative transportation costs for each cell. As many points as desired can be entered by the user.
stop_coordinate=x,y[,x,y,...]
Each x,y coordinate pair gives the easting and northing (respectively) geographic coordinates of a stopping point. During execution, once the cumulative cost to all stopping points has been determined, processing stops. As many points as desired can be entered by the user.
max_cost=maxcost
This is the cost limit that forces r.cost to restart the current point to be considered a stop point.
null_value=value
The optional value that will be assigned to the null cells in the input map. This is a positive floating point value.
Input: COST SURFACE . . . . . . . . . . . . . . . . 2 . 2 . 1 . 1 . 5 . 5 . 5 . . . . . . . . . . . . . . . . . 2 . 2 . 8 . 8 . 5 . 2 . 1 . . . . . . . . . . . . . . . . . 7 . 1 . 1 . 8 . 2 . 2 . 2 . . . . . . . . . . . . . . . . . 8 . 7 . 8 . 8 . 8 . 8 . 5 . . . . . . . . . . . _____ . . . 8 . 8 . 1 . 1 . 5 | 3 | 9 . . . . . . . . . . . |___| . . . 8 . 1 . 1 . 2 . 5 . 3 . 9 . . . . . . . . . . . . . . . . Output (using -k): Output (not using -k): COST SURFACE CUMULATIVE COST SURFACE . . . . . . . . . . . . . . . . . . . * * * * * . . . . . . . 21. 21. 20. 19. 17. 15. 14. . 22. 21* 21* 20* 17. 15. 14. . . . . . . . . . . . . . . . . . . . * * * * * . . . . . . . 20. 19. 22. 19. 15. 12. 11. . 20. 19. 22* 20* 15. 12. 11. . . . . . . . . . . . . . . . . . . . . . * * * * * . . . . . 22. 18. 17. 17. 12. 11. 9. . 22. 18. 17* 18* 13* 11. 9. . . . . . . . . . . . . . . . . . . . . . * * * * * . . . . . 21. 14. 13. 12. 8. 6. 6. . 21. 14. 13. 12. 8. 6. 6. . . . . . . . . . . _____ . . . . . . . . . . . . . . . . . . 16. 13. 8. 7. 4| 0| 6. . 16. 13. 8. 7 . 4. 0. 6. . . . . . . . . . . |___| . . . . . . . . . . . . . . . . . . 14. 9. 8. 9. 6. 3. 8. . 14. 9. 8. 9 . 6. 3. 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The user-provided ending location in the above example is the boxed
3 in the left-hand map. The costs in the output map represent the
total cost of moving from each box ("cell") to one or more (here, only
one) starting location(s). Cells surrounded by asterisks are those that
are different between operations using and not using the Knight's move
(-k) option. This output map can be viewed, for example, as an elevation
model in which the starting location(s) is/are the lowest point(s). Outputs
from r.cost can be used as inputs to r.drain,
in order to trace the least-cost path given in this model between any given
cell and the r.cost starting location(s). The two programs, when
used together, generate least-cost paths or corridors between any two map
locations (cells).
If one wants r.cost to transparently cross the null cells, one must use the option null_value=0.0.Then, null cells just propagate adjacent costs. These cells could then be retained as null cells into the output map through the -n flag.
output=start_pt_map
the starting point map will be overwritten by the calculated output. It is wise to copy or rename (e.g., using g.copy or g.rename) the map of starting points to another name before submitting it to r.cost; otherwise, its contents will be overwritten.
Sometimes, when the differences among integer cell category values the r.cost cumulative cost surface output are small, this cumulative cost output cannot accurately be used as input to r.drain (r.drain will output bad results). This problem can be circumvented by making the differences between cell category values in the cumulative cost output bigger. It is recommended that, if the output from r.cost is to be used as input to r.drain, the user multiply the input cost surface map to r.cost by the value of the map's cell resolution, before running r.cost. This can be done using r.mapcalc or other programs. The map resolution can be found using g.region. This problem doesn't arise with floating point maps.
James Westervelt,
U.S.Army Construction Engineering Research Laboratory
Updated for Grass 5
Pierre de Mouveaux (pmx@audiovu.com)