[GRASS-dev] the function of v.buffer `minordistance' option

Hi,

Anybody knows what is the v.buffer's `minordistance' option supposed to do?

The manual is not verbose about that, but as I understand it, together with `distance', it should allow to create a buffer with different extent along the minor and major axis, considering the specified `angle' of their rotation.

But none of the options works as that - the buffer size always equals the `distance', and the other 2 options make no difference if used or not an set to what.

BTW, it seems that -s, -c flags also don't have any effect on the output.

Did I get it wrong or maybe there's something broken?

6.4 SVN r60165, geos 3.4.2, Arch Linux 64bit.

Maciek

--
Maciej Sieczka
http://www.sieczka.org

On 03/06/14 19:59, Maciej Sieczka wrote:

Hi,

Anybody knows what is the v.buffer's `minordistance' option supposed to do?

The manual is not verbose about that, but as I understand it, together
with `distance', it should allow to create a buffer with different
extent along the minor and major axis, considering the specified `angle'
of their rotation.

But none of the options works as that - the buffer size always equals
the `distance', and the other 2 options make no difference if used or
not an set to what.

BTW, it seems that -s, -c flags also don't have any effect on the output.

Did I get it wrong or maybe there's something broken?

In NC dataset:

v.buffer schools_wake out=testbuf distance=500 minordistance=250

gives me the attached buffers. Everything seems to work fine here...

Could you be more specific about what exactly is not working for you ?

Moritz

(attachments)

testbuf.png

W dniu 04.06.2014 14:53, Moritz Lennert pisze:

On 03/06/14 19:59, Maciej Sieczka wrote:

Anybody knows what is the v.buffer's `minordistance' option supposed
to do?

The manual is not verbose about that, but as I understand it, together
with `distance', it should allow to create a buffer with different
extent along the minor and major axis, considering the specified `angle'
of their rotation.

But none of the options works as that - the buffer size always equals
the `distance', and the other 2 options make no difference if used or
not an set to what.

BTW, it seems that -s, -c flags also don't have any effect on the output.

Did I get it wrong or maybe there's something broken?

In NC dataset:

v.buffer schools_wake out=testbuf distance=500 minordistance=250

gives me the attached buffers. Everything seems to work fine here...

Could you be more specific about what exactly is not working for you ?

Right, looks fine for points input. Not so for areas input though, e.g:

$ v.buffer testbuf out=testbuf2 distance=500 minordistance=250

v.buffer in the latter case does not honor minordistance and uses distance for both axes, while I would expect it to behave the way it does for points input. Am I expecting something which is not implemented maybe?

Maciek

--
Maciej Sieczka
http://www.sieczka.org

On 04/06/14 20:42, Maciej Sieczka wrote:

W dniu 04.06.2014 14:53, Moritz Lennert pisze:

On 03/06/14 19:59, Maciej Sieczka wrote:

Anybody knows what is the v.buffer's `minordistance' option supposed
to do?

The manual is not verbose about that, but as I understand it, together
with `distance', it should allow to create a buffer with different
extent along the minor and major axis, considering the specified `angle'
of their rotation.

But none of the options works as that - the buffer size always equals
the `distance', and the other 2 options make no difference if used or
not an set to what.

BTW, it seems that -s, -c flags also don't have any effect on the
output.

Did I get it wrong or maybe there's something broken?

In NC dataset:

v.buffer schools_wake out=testbuf distance=500 minordistance=250

gives me the attached buffers. Everything seems to work fine here...

Could you be more specific about what exactly is not working for you ?

Right, looks fine for points input. Not so for areas input though, e.g:

$ v.buffer testbuf out=testbuf2 distance=500 minordistance=250

v.buffer in the latter case does not honor minordistance and uses
distance for both axes, while I would expect it to behave the way it
does for points input. Am I expecting something which is not implemented
maybe?

For me this is more of a conceptual problem: how can you define a major and minor axis for buffers of polygons ?

Moritz

W dniu 04.06.2014 21:24, Moritz Lennert pisze:

On 04/06/14 20:42, Maciej Sieczka wrote:

W dniu 04.06.2014 14:53, Moritz Lennert pisze:

On 03/06/14 19:59, Maciej Sieczka wrote:

Anybody knows what is the v.buffer's `minordistance' option supposed
to do?

The manual is not verbose about that, but as I understand it, together
with `distance', it should allow to create a buffer with different
extent along the minor and major axis, considering the specified
`angle'
of their rotation.

But none of the options works as that - the buffer size always equals
the `distance', and the other 2 options make no difference if used or
not an set to what.

BTW, it seems that -s, -c flags also don't have any effect on the
output.

Did I get it wrong or maybe there's something broken?

In NC dataset:

v.buffer schools_wake out=testbuf distance=500 minordistance=250

gives me the attached buffers. Everything seems to work fine here...

Could you be more specific about what exactly is not working for you ?

Right, looks fine for points input. Not so for areas input though, e.g:

$ v.buffer testbuf out=testbuf2 distance=500 minordistance=250

v.buffer in the latter case does not honor minordistance and uses
distance for both axes, while I would expect it to behave the way it
does for points input. Am I expecting something which is not implemented
maybe?

For me this is more of a conceptual problem: how can you define a major
and minor axis for buffers of polygons ?

Maybe they cross at the centroid, rotation angle applies?

I was trying to make a minordistance=0.0111111111111111 distance=0.00694444444444447 vector area buffer in a latlon location. The northing/easting difference was supposed to copmpensate for the distance distortion, to some extent. But only then it came to me that it's better to reproject the input polygon to a metric location, create the regular fixed-distance buffer there, and reproject the buffer to the latlon location where I need it.

Maciek

--
Maciej Sieczka
http://www.sieczka.org

--
Maciej Sieczka
http://www.sieczka.org