[GRASS5] Problems with vector import, and a suggestion

Aleksey Naumov naumov at acsu.buffalo.edu
Thu Feb 7 00:21:29 EST 2002


Hi GRASS developers,

I just killed 3 days to import a rather simple (86 polygons, 6 holes) shape 
file into GRASS. In the process I lost some hair :-), but hopefully also 
gained some insight which I would like to share with anyone who is willing to 
read this...

I am using GRASS 5.0, the HEAD branch from CVS, compiled on Feb 4 2002.

1. I first tried v.in.shape (and v.in.shape.pg). v.in.shape failed for both a 
line and a polygon shape files. It generated a lot of messages like:
 	WARNING: line 5466 label: 217 matched another label: 455.
	Failed to attach an attribute (category 471) to a line.
but, more importantly, the geometry was completely scrambled for both line 
and polygon shapes.

2. Next I tried v.in.arc (and v.in.arc.pg). I had to do some work in ARC/INFO 
to convert polygon shape file to correct coverage, then UNGENERATE lines and 
polygon labels. Here I got correct geometry, but polygon ids (dig_att file) 
were screwed up:

	2.1 "v.in.arc type=polygon lines_in=st.lin points_in=st.lab vector_out=st" 
worked for geometry, but dig_att was set up incorrectly
	
	2.2 "v.in.arc.pg" did the same thing. In addition, it segfaulted when trying 
to import a dbf file. But the same dbf file was imported in Postgres with 
"pg.in.dbf" with no problem at all.

3. Finally, "m.in.e00" did the job for me. It created correct geometry AND 
built correct dig_att file. Together with "pg.in.dbf" for the associated 
attribute file (ARC's .PAT file saved in TABLES with INFODBASE, then opened 
and re-exported in ArcView) I now got a complete vector file with data. I am 
finally able to map the attributes as described in the GRASS/Postgres 
tutorial 
(http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass/src.garden/grass.postgresql/tutorial/index.html).


Resume and suggestions

It's been quite a hair-pulling experience. Of course, it's possible that I 
did some things wrong, but I tried these and related commands (v.support, 
etc) in many different ways and quite a few times. I am trying to think what 
to do to make this sort of vector import easier...

Here are some suggestions. I apologize in advance if I missed something or  
am completely off on something -- let me know.

1. My experience has been that quality of modules varies greatly. Some work 
fine, some are buggy and some just do not work. What makes the situation 
worse for the user is that modules seem to overlap and duplicate each other, 
and it's not clear which one to use (for example in my case, besides the 5 
modules mentioned above there are also v.import and v.in.arc.poly -- 
confusing to say the least!)

In the long run modules with similar functionality will have to be merged, 
some discarded. In the meantime, it seems a useful clean-up strategy would be 
to:
	(a) Establish sort of a standard (e.g. for GRASS 5.1) -- a set of 
requirements that modules have to comply with (coding standards, interface, 
up-to-date and detailed help page, etc.)
	(b) Select a few most useful modules and pull them up to this standard
	(c) Identify those modules that conform to the standard in the help pages. 
They will be seen as reliable, get more testing, while others may be 
merged/upgraded gradually.


2. Some sort of functional listing of modules in the help pages would be 
nice, maybe even based on classification used for TclTk interface.


3. No specific suggestion here, just complaining :-) about handling of vector 
attributes. Associating vectors with attributes through point markers used in 
dig_att files just seems too difficult and unnatural to me. May be I am 
missing something here... I don't know how it's done in 5.1.


Sorry for the long mail :-)

Aleksey










More information about the grass-dev mailing list