[GRASSLIST:7191] v.in.e00 error

Dear all,
I'm trying to import an e00 areas file but I have this error message:

GRASS 6.0.0 (Toscana):~ > v.in.e00 file=/home/Documenti/Geoeco/geoeco_13.e00
type=area vect=casentino -v
E00 ASCII found and converted to Arc Coverage in current directory
Importing...
Over-riding projection check.
Proceeding with import...
Layer: LAB
WARNING: Column name changed: 'GEOECO_13#' -> 'GEOECO_13_'
WARNING: Column name changed: 'GEOECO_13-ID' -> 'GEOECO_13_ID'
Layer: ARC
WARNING: Column name changed: 'FNODE#' -> 'FNODE_'
WARNING: Column name changed: 'TNODE#' -> 'TNODE_'
WARNING: Column name changed: 'LPOLY#' -> 'LPOLY_'
WARNING: Column name changed: 'RPOLY#' -> 'RPOLY_'
WARNING: Column name changed: 'GEOECO_13#' -> 'GEOECO_13_'
WARNING: Column name changed: 'GEOECO_13-ID' -> 'GEOECO_13_ID'
DBMI-Postgres driver error:
Cannot execute:
create table casentino_2 (cat integer, UserId integer, FNODE_ integer, TNODE_
integer, LPOLY_ integer, RPOLY_ integer, LENGTH double precision, GEOECO_13_
integer, GEOECO_13_ID integer, FNODE_ double precision, TNODE_ double
precision, LPOLY_ double precision, RPOLY_ double precision, GEOECO_12_double
precision, GEOECO_121 double precision, ID double precision, FROMNODE double
precision, TONODE double precision, LEFTPOLYG double precision, RIGHTPOLY
double precision)
ERROR: column "fnode_" duplicated

ERROR: Cannot create table: create table casentino_2 (cat integer, UserId
       integer, FNODE_ integer, TNODE_ integer, LPOLY_ integer, RPOLY_
       integer, LENGTH double precision, GEOECO_13_ integer, GEOECO_13_ID
       integer, FNODE_ double precision, TNODE_ double precision, LPOLY_
       double precision, RPOLY_ double precision, GEOECO_12_ double
       precision, GEOECO_121 double precision, ID double precision,
       FROMNODE double precision, TONODE double precision, LEFTPOLYG double
       precision, RIGHTPOLY double precision)
An error occurred. Stop.

The vector imported has only the centroids of the area but GRASS cannot to
build polygones.
Grass builds the information table that I can see if I make a query.
I don't know what kind of table is the table that GRASS cannot create.

Someone can help me?
Best regards
Leonardo
--
Leonardo Lami
lami@faunalia.it www.faunalia.it
Via Colombo 3 - 51010 Massa e Cozzile (PT), Italy Tel: (+39)349-1310164
GPG key @: hkp://wwwkeys.pgp.net http://www.pgp.net/wwwkeys.html
https://www.biglumber.com

On Thu, Jun 16, 2005 at 05:54:20PM +0200, we recorded a bogon-computron collision of the <lami@faunalia.it> flavor, containing:

Dear all,
I'm trying to import an e00 areas file but I have this error message:

GRASS 6.0.0 (Toscana):~ > v.in.e00 file=/home/Documenti/Geoeco/geoeco_13.e00
type=area vect=casentino -v
E00 ASCII found and converted to Arc Coverage in current directory
Importing...
Over-riding projection check.
Proceeding with import...
Layer: LAB
WARNING: Column name changed: 'GEOECO_13#' -> 'GEOECO_13_'
WARNING: Column name changed: 'GEOECO_13-ID' -> 'GEOECO_13_ID'
Layer: ARC
WARNING: Column name changed: 'FNODE#' -> 'FNODE_'
WARNING: Column name changed: 'TNODE#' -> 'TNODE_'
WARNING: Column name changed: 'LPOLY#' -> 'LPOLY_'
WARNING: Column name changed: 'RPOLY#' -> 'RPOLY_'
WARNING: Column name changed: 'GEOECO_13#' -> 'GEOECO_13_'
WARNING: Column name changed: 'GEOECO_13-ID' -> 'GEOECO_13_ID'
DBMI-Postgres driver error:
Cannot execute:
create table casentino_2 (cat integer, UserId integer, FNODE_ integer, TNODE_
integer, LPOLY_ integer, RPOLY_ integer, LENGTH double precision, GEOECO_13_
integer, GEOECO_13_ID integer, FNODE_ double precision, TNODE_ double
precision, LPOLY_ double precision, RPOLY_ double precision, GEOECO_12_double
precision, GEOECO_121 double precision, ID double precision, FROMNODE double
precision, TONODE double precision, LEFTPOLYG double precision, RIGHTPOLY
double precision)
ERROR: column "fnode_" duplicated

here's the problem. Arc/View coverages are allowed to have characters in the
field name that GRASS, which converts everything to SQL-compliant names, does
not allow. When GRASS converted FNODE# to FNODE_ it didn't check that there
was already such a field, and tried to create a DBF record with two FNODE_
fields. Boom, illegal. This bites me from time to time, too, as many
e00 files come with attribute names that are illegal for SQL (for example,
fields named "DATE" are illegal in GRASS, but they show up in coverages from
time to time).

You can force this issue a few ways. Unfortunately, both involve doing things
by hand.

1) do what v.in.e00 does by hand:
   a) convert the e00 to an arc/view coverage with avcimport
   b) import to a grass vector layer with v.in.ogr --- but use the
      "cnames=" option to specify what attribute names to use for all the
      columns. Since "cnames=" requires that you give all the attribute names
      up to the ones you want to change, I find this a tedious approach. But
      in your case you would use something like:
       cnames=cat,UserID,FNODE_,TNODE_,LPOLY_,RPOLY_,LENGTH,GEOECO_13_,GEOECO_13_ID,FNODE2,TNODE2
      thus renaming the second occurrances of the two offending attributes.

2) edit the e00 file and change the names there, then import it
   if your e00 file is not compressed, you can just edit it --- it's a straight
   ASCII file. Just change the FNODE# and TNODE# names to FNODE2 and TNODE2,
   then v.in.e00 won't rename them badly. If your e00 file *is* compressed,
   you need to uncompress it, just the way that v.in.e00 does: by running
   e00conv to get a straight ASCII e00 file first.

Hope that helps.

--
Tom Russo KM5VY SAR502 DM64ux http://www.swcp.com/~russo/
Tijeras, NM QRPL#1592 K2#398 SOC#236 AHTB#1
"The only thing you can do easily is be wrong, and that's hardly
  worth the effort." -- Norton Juster