1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
/****************************************************************************
*
* MODULE: r.buffer
*
* AUTHOR(S): Michael Shapiro - CERL
*
* PURPOSE: This program creates distance zones from non-zero
* cells in a grid layer. Distances are specified in
* meters (on the command-line). Window does not have to
* have square cells. Works both for planimetric
* (UTM, State Plane) and lat-long.
*
* COPYRIGHT: (C) 2005 by the GRASS Development Team
*
* This program is free software under the GNU General Public
* License (>=v2). Read the file COPYING that comes with GRASS
* for details.
*
****************************************************************************/
#include "distance.h"
#include "local_proto.h"
#include <grass/glocale.h>
int execute_distance(void)
{
int row, col, nrows;
MAPTYPE *ptr;
/* find the first 1 in each row, and process that row */
G_message(_("Finding buffer zones..."));
nrows = 0;
for (row = minrow; row <= maxrow; row++) {
ptr = map + MAPINDEX(row, mincol);
for (col = mincol; col <= maxcol; col++) {
if (*ptr++ == 1) {
G_percent(nrows++, count_rows_with_data, 2);
process_row(row, col);
break;
}
}
}
G_percent(nrows, count_rows_with_data, 2);
return 0;
}
|