Forwarded to the list upon request from T Laronde.
On Fri, Dec 4, 2009 at 3:27 PM, <tlaronde@polynum.com> wrote:
Hello,
I stumbled upon the "new ideas" for vector of GRASS 7 and wanted to give
hints. I'm not subscribed to grass-dev (and don't want to) so I'm not
sure if the message will be accepted or not by the program managing the
list.FWIW, here are my comments. You can do whatever you feel with them.
Since it is clear that the ones commenting---and they say it...---don't
understand the vectorial stuff and are even not developers, it will be
IMO a very bad idea to let people adding at haphazard mess in this
area...Cheers,
--
Thierry Laronde (Alceste) <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C---------- Forwarded message ----------
From: tlaronde
To: grass-dev@lists.osgeo.org
Date: Fri, 4 Dec 2009 15:15:27 +0100
Subject: ticket #542: vector for GRASS 7
[Please CC me on replies, since I'm not subscribed.]FWIW, having given a look at GPL GRASS plans for 7.0, I stumbled upon
ticket #542 about "new ideas" for vector.May I suggest: don't do that! It seems that, since Radim Blazek
leaved, no one has really grasped the vector "philosophy"---at least if
you want GRASS to continue to be topological.IMO, the first thing you should do is to create a lexicon, that is a
list of normalised words for GRASS and their meaning; this will avoid
the confusion between "lines" and "arcs" for example. Particularly,
when, for GRASS, two things are clearly distinct, even if in current
speaking there are fuzzy, you must impose two distinct words. Example:
arcs are the primitives of the vector definition (level 0). "Lines" are
geometrical objects deduced from primitives, as are "points", "faces"
and, perhaps, "volumes". Nodes are not geometrical objects : they are
topological creations. Centroïds are not geometrical objects neither, but
just a topological mean to _store_ attribute information : this is
attributed to a _geometrical_ object (hence: a "point", a "line", a
"face" or a "volume") if the point is equal to a point, along a line, on
a face or inside a volume. Note: I use special words, distinct words for
the topological relations so that in the _code_ saying "equal" means
point; saying "along" means line; saying "on" means face and so on.
Always distinct words for distinct meanings, and when possible, the
first letter, or the two first letters are sufficient to tell the
complete word.The level 0 is just the storage of the _arcs_. Even geometrical elements
"points" are stored as _arcs_ (two vertices identical).The level 0 is needed for the definition of the primitives and for the
construction of the topology. It is not needed for a huge part of the
applications when you do not need _metrics_. Topology gives _order_ ;
coordinate system, definitions, arcs give you _metrics_. So improving
the reading of the _arcs_ is only needed from time to time.The topology gives you direct access (offsets) to the metrics if needed.
So there is already information to speed things.May I say that the main problems are not to "improve" your current (new)
vector handling, but to clean the problems introduced. Specifically,
merging the Sites as Points in the vector was, IMO, an error. There is a
need for the grid (also called: raster but this is a bad name),
singularities (Sites) and topological vector (arcs).Secondly, the introduction of 3D in vector is not perhaps a great idea
if you remember what a GIS is mainly for. For the coordinates systems,
there is a surface of reference: a geoïde, simplified as an ellipsoïde.
The grid is a mean, along with a connexion of Sites to described a more
complexe surface relative to the geoïde (via the ellipsoïde).
Generally, in cartography, the vector lines are drawn on the surface.
So the 3D is given by the grid or the triangulation of Sites
underneath. Imagine a corrugated iron as a surface. You can draw
two "straight lines" (view from above) ; view from the side, they
are not straight at all. But since they are linked to the surface,
you can describe them by a starting and an ending vertice; you do
not need, at every moment, to drag a whole Bezier description. Only
when you need the 3D, you combine the surface with the straight
lines. And if you change the description of the surface, you do
not need to change the description of the vector: it is "just"
drawn on the surface linked, whatever it is. You need 3D only for
metrics; and if the vectors objects are not on the same surface,
you describe them in distinct layers.Just to give you the incentive to think twice about the vectorial stuff.
It is really an interesting part, and the CERL GRASS strength is the
topological stuff. Take the time to understand this deeply first, before
making "something" just because "new" is an advertising word.HTH
--
Thierry Laronde (Alceste) <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C