I resume (first as a repeat to myself) what I’ve learned from the various email on the topic
Vectors can be:
LEVEL 1:
- no topology → very limited use
LEVEL 2: - unclean topology → limited use
- clean topology → full support
I previously thought that LEVEL 2 was only possible for clean topologies, and I was wrong…
At the moment there isn’t a tool to list the the uncorrect geometries from a topological point of view. v.build only checks some constraints, not all. The proposal is to extend it to check against all the rules that are required to consider a geometry topologically correct (an extended flag to v defaul.build maybe).
v.in.ogr builds and cleans (by default). It would be useful to have the “clean” phase available to be launched independently. I mean, something like an “automatic” flag for v.clean, that would operate the same cleaning as during the import of a vector.
Conclusions: the topological correctness isn’t a constraint for the vector topology data structure. GRASS haven’t all the topology rules hard-coded (… or yes?). Most of thems (all?) are defined inside the code of v.build and v.clean, but I suppose that there isn’t an autonomous library/functionality that provide the semantics of a “correct topology”. Am I wrong?
Thanks everyone for the support
giovanni