[GRASS5] [bug #3427] (grass) v.buffer makes the buffers TWICE the desired size

this bug's URL: http://intevation.de/rt/webrt?serial_num=3427
-------------------------------------------------------------------------

Subject: v.buffer makes the buffers TWICE the desired size

Platform: GNU/Linux/i386
grass obtained from: CVS
grass binary for platform: Compiled from Sources
GRASS Version: 15.07.2005

v.buffer input=border output=border_half_km type=line layer=1 buffer=500

makes the buffer about 1 km wide, though 500m requested

v.buffer input=border output=border_1_km type=line layer=1 buffer=1000

makes it about 2 km wide

Strange. Bug?

The input "border" you can grab here for testing:
http://www.biol.uni.wroc.pl/sieczka/udostepnione/border.tar.bz2

There is no .prj file cause GDAL/OGR cannot parse the "sterea" projection yet. In case you need this information:

GRASS 6.1.cvs (caves_65):~ > g.proj -p
-PROJ_INFO-------------------------------------------------
name : Stereographic
proj : sterea
a : 6378245
es : 0.0066934216
lat_0 : 51.67083333333333
lon_0 : 16.67222222222222
k : 0.999800
x_0 : 3703000
y_0 : 5627000
towgs84 : 33.4297,-146.5746,-76.2865,-0.35867,-0.05283,0.84354,-0.8407728
no_defs : defined
-PROJ_UNITS------------------------------------------------
unit : metre
units : metres
meters : 1

GRASS 6.1.cvs (caves_65):~ > g.region -p
projection: 99 (Stereographic)
zone: 0
datum: towgs84=33.4297,-146.5746,-76.2865,-0.35867,-0.05283,0.84354,-0.8407728
ellipsoid: a=6378245 es=0.0066934216
north: 5578761.99643985
south: 5576874.65677985
west: 3685399.25248024
east: 3686946.53094024
nsres: 1.00018
ewres: 1.00018
rows: 1887
cols: 1547

-------------------------------------------- Managed by Request Tracker

The buffer distance is the distance the buffer extends outwards from the
object being buffered. For a stream, then, a 500m buffer distance, would
produce a buffer that extends 500m outward from the stream. This would make
a buffer polygon 1000m wide (500+500). The same buffer distance around a
point would create a circle 500m in radius (1000m in diameter). Around a
polygon, it would create a zone 500m wide around the polygon perimeter.

Michael

On 7/16/05 2:55 AM, "Request Tracker" <grass-bugs@intevation.de> wrote:

this bug's URL: http://intevation.de/rt/webrt?serial_num=3427
-------------------------------------------------------------------------

Subject: v.buffer makes the buffers TWICE the desired size

Platform: GNU/Linux/i386
grass obtained from: CVS
grass binary for platform: Compiled from Sources
GRASS Version: 15.07.2005

v.buffer input=border output=border_half_km type=line layer=1 buffer=500

makes the buffer about 1 km wide, though 500m requested

v.buffer input=border output=border_1_km type=line layer=1 buffer=1000

makes it about 2 km wide

Strange. Bug?

The input "border" you can grab here for testing:
http://www.biol.uni.wroc.pl/sieczka/udostepnione/border.tar.bz2

There is no .prj file cause GDAL/OGR cannot parse the "sterea" projection yet.
In case you need this information:

GRASS 6.1.cvs (caves_65):~ > g.proj -p
-PROJ_INFO-------------------------------------------------
name : Stereographic
proj : sterea
a : 6378245
es : 0.0066934216
lat_0 : 51.67083333333333
lon_0 : 16.67222222222222
k : 0.999800
x_0 : 3703000
y_0 : 5627000
towgs84 : 33.4297,-146.5746,-76.2865,-0.35867,-0.05283,0.84354,-0.8407728
no_defs : defined
-PROJ_UNITS------------------------------------------------
unit : metre
units : metres
meters : 1

GRASS 6.1.cvs (caves_65):~ > g.region -p
projection: 99 (Stereographic)
zone: 0
datum:
towgs84=33.4297,-146.5746,-76.2865,-0.35867,-0.05283,0.84354,-0.8407728
ellipsoid: a=6378245 es=0.0066934216
north: 5578761.99643985
south: 5576874.65677985
west: 3685399.25248024
east: 3686946.53094024
nsres: 1.00018
ewres: 1.00018
rows: 1887
cols: 1547

-------------------------------------------- Managed by Request Tracker

____________________
C. Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>

From: "Michael Barton" <michael.barton@asu.edu>

The buffer distance is the distance the buffer extends outwards from the
object being buffered. For a stream, then, a 500m buffer distance, would
produce a buffer that extends 500m outward from the stream. This would
make
a buffer polygon 1000m wide (500+500). The same buffer distance around a
point would create a circle 500m in radius (1000m in diameter).

Michael, You have missunderstood the point.

My input "border" is a *closed* line. When I v.buffer it for 500m, I get a
polygon inside of it (BTW - should it be inside indeed?) at the distance of
1000m from the line. If I have not explained it enough, please grab the file
if you can and try v.buffer input=border output=border_half_km type=line
layer=1 buffer=500.

I know the best workaround is to convert the boundary line to an area
polygon and then v.buffer on that, which works fine - the output is a buffer at 500m from the input, outside of it. The problem is it seems that v.buffer cannot handle closed lines (i.e. area boundaries, closed elevation contours) properly.

Maciek

Around a
polygon, it would create a zone 500m wide around the polygon perimeter.

Michael

Maciek,

This does sound weird. For a closed line, it seems that it SHOULD be just
like an open line--i.e., creating a donut 1000m wide extending on both sides
of the closed line.

Michael

On 7/17/05 10:17 AM, "Maciek Sieczka" <werchowyna@epf.pl> wrote:

From: "Michael Barton" <michael.barton@asu.edu>

The buffer distance is the distance the buffer extends outwards from the
object being buffered. For a stream, then, a 500m buffer distance, would
produce a buffer that extends 500m outward from the stream. This would
make
a buffer polygon 1000m wide (500+500). The same buffer distance around a
point would create a circle 500m in radius (1000m in diameter).

Michael, You have missunderstood the point.

My input "border" is a *closed* line. When I v.buffer it for 500m, I get a
polygon inside of it (BTW - should it be inside indeed?) at the distance of
1000m from the line. If I have not explained it enough, please grab the file
if you can and try v.buffer input=border output=border_half_km type=line
layer=1 buffer=500.

I know the best workaround is to convert the boundary line to an area
polygon and then v.buffer on that, which works fine - the output is a buffer
at 500m from the input, outside of it. The problem is it seems that v.buffer
cannot handle closed lines (i.e. area boundaries, closed elevation contours)
properly.

Maciek

Around a
polygon, it would create a zone 500m wide around the polygon perimeter.

Michael

____________________
C. Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>