ARC/INFO to GRASS conversion

Dear GRASS-users

I will import ARC/INFO vector-files to GRASS. These files contain either area
coverage data or contour lines and have far more than 2000 lines/polygons each.

At this point we try to import a relatively large map containing polygon
features (like a soil map for example). The data were exported using the
UNGENERATE and DISPLAY functions of ARC/INFO resulting in a lines file (.ply),
a label point-file (.pnt) and a label-text file (.txt), according to the
v.in.arc man pages of the users reference manual.

Importing the file using v.in.arc worked without any problems. But when
running v.support, only about half of the polygons were not recognized as
areas and could not be recognized. I got an error message like

PNT_TO_AREA failed: (3500166.000000 6056598.500000) (Category 4)

Using v.digit, I could see that the problematic polygons seem to be
characterized by a connection to another area both at the start and the end
point of the polygon, that means, the polygons are not closed by itself.

I would like to ask if there is a chance to import these ARC/INFO files, either
by choosing another export/import format like DXF or by changing export options
of ARC/INFO resulting in completely closed polygons. The important point to me
is to have a completely labelled vector area map after importing, because this
map has to transformed into raster format.

Thanks in advance
Ralf Kunkel

                                                                                Phone: +49-2461-3262
Program Group Systems Analysis and Fax: +49-2461-2540
Technological Development (STE) E-mail: r.kunkel@kfa-juelich.de
Research Center (KFA) Juelich
D-52425 Juelich, Germany

There is a bug in the v.in.arc program. I didn't manage to locate the
bug since the program is a bit spagghetti wise. Since I had the same
problem, I made a small program that converts the .lin files to
dig_ascii (without header). After putting a header before the
dig_ascii file, and running v.in.asc, you can use awk to make an
attribute file fom your .pnt file and put it in the proper directory
(dig_att). Then run v.support.

/* Begin program in_arc.c */
/* usage: in_arc < file.lin > $LOCATION/dig_ascii/file.asc */

#include <stdio.h>

main()
{
    double xarr[10000], yarr[10000], x, y, dummy;
    char buffer[256];
    int teller,i;
    char mend[3];
    teller = 1;
    x = 0.; y= 0.; dummy = 0;
    while (NULL != gets(buffer))
    {
        if (sscanf(buffer,"%lf %lf %lf", &x, &y, &dummy) == 2)
        {
            xarr[teller]=x;
            yarr[teller]=y;
            teller++;
        }
        else if (strncmp("END",buffer,3)==0 && teller > 1)
        {
            printf("A %d\n",teller-1);
            for (i = 1; i < teller; i++)
                printf("%14.6lf %14.6lf\n",yarr[i],xarr[i]);
            teller = 1;
        }
    }
}

/* end in_arc.c */