[GRASS5] line types

On Monday 08 April 2002 18:15, Eric replied:

> In both cases it is sufficient to change the code to perform the
> operation regardless of whether the line is typed as an area edge or as
> a line.

I'm not sure if this is acceptable behavior for most people. How do you
distinguish the case where people only want the labelled LINE types as
line, and not area boundaries? The handling in GRASS hasn't been too
good for mixing types in one map (even though it is allowed).

An alternative would be to fix all the modules so that they actually work on
either line type. In the case of the two modules I was talking about that
means modifying v.llabel to label lines that are typed as either lines or
area edges and modifying v.extract so that it can extract "area edge" lines
based on the category of the line, not on the category number of the enclosed
area.

At this time GRASS offers no control of line types that are practical on
realistically-sized vector maps. Besides, the limitation in v.out.shape
required that everything form closed areas, so being able to alter a line
type in v.digit was of no value anyway.

As a result of the lack of practical control there are probably few users who
care about the distinction.

I can blather on and on about the practical problems caused by the
distinction between lines and area edges. What i've talked about so far only
scratches the surface. As it is I see no value in making the distinction and
a lot of problems caused by it. The simplest solution would probably be to
treat every line as a (potential) area edge.

Your right that it shouldn't matter to users. All that should matter
is, does an edge participate as an area boundary? Does the edge
participate in a line feature? Unfortunately, it doesn't change any
of the architechtural shortcomings of < 5.1 vectors.

How can we expect to fix the modules in the more complex setting of 5.1 if we
don't first get a handle on the problems caused by the relatively simple
setup in 5.0?

Roger Miller

-------------------------------------------------------

On Tuesday 09 April 2002 02:27 am, Roger Miller wrote:

An alternative would be to fix all the modules so that they actually work
on either line type. In the case of the two modules I was talking about
that means modifying v.llabel to label lines that are typed as either lines
or area edges and modifying v.extract so that it can extract "area edge"
lines based on the category of the line, not on the category number of the
enclosed area.

At this time GRASS offers no control of line types that are practical on
realistically-sized vector maps. Besides, the limitation in v.out.shape
required that everything form closed areas, so being able to alter a line
type in v.digit was of no value anyway.

As a result of the lack of practical control there are probably few users
who care about the distinction.

I can blather on and on about the practical problems caused by the
distinction between lines and area edges. What i've talked about so far
only scratches the surface. As it is I see no value in making the
distinction and a lot of problems caused by it. The simplest solution
would probably be to treat every line as a (potential) area edge.

I cannot agree. You are still talking about your one special case.
You are missing some functionality for some modules. I think that what you
need is 'type=edge,line' instead of only 'type=line', you can add 'edge'
type to that modules.

Instead, you propose as a solution, to limit grass funcionality to only area
edges. I don't think that it is good idea, to resolve problems of missing
funcionality by another reduction of existing functionality. Better is to
extend existing options.

I can give you some examples where to distinguish edges and lines is usefull:

1) map with mixed area and line features:
- line feature in area, obviously it may not be area edge, otherwise build
   fails
- report size for lines (length) and areas (area), of course here we don't
   want lengt of areas' perimeters (BTW, I used this many times)

2) map with one feature type
- imagine road network, if you use only area edges, build process will
   try to build ares (lost time), it will report problems with topology
   because some areas are not closed (free ends of roads), and if user query
   the map with d.what.vect, he will get report on area sizes - is not that
   confusing for road network?

Radim