Hi Helena,

It looks like the '|' is partly to blame, but not entirely.

If I use the original file with missmatched numbers of fields between records AND use the '|' separator, I have trouble on my Mac.

However, if I fix the file so that all records have the same number of fields (keeping '|' as separator) OR I leave the file with messed up fields but replace '|' with ',' it works fine.

So it seems more a problem of reading the '|' separator in the text file in some circumstances than it does having it in the command string.

I'll have to try this out with Windows and see if switching to commas fixes things.

Michael
____________________
C. Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>



On Feb 4, 2008, at 9:22 PM, Helena Mitasova wrote:

I did few more experiments (with a different file, but still
generated by GRASS - this time using v.out.ascii)
and it indeed looks like the fs=| is responsible
for the truly erratic behavior - I think that without quotes it is represented as
pipe(?) so depending on where you put it you get different response:

at the end of the command:
GRASS 6.3.cvs (nc_spm_sed):~/grassdata/indata/ncdata > v.in.ascii ftest.txt out=test2 fs=|
>
and nothing happens

or in the middle, before output (it never gets to it)

GRASS 6.3.cvs (nc_spm_sed):~/grassdata/indata/ncdata > v.in.ascii ftest.txt fs=| out=test2

ERROR: Required parameter <output> not set:
    (Name for output vector map).

I am wondering whether there are other commands that would need to have this fixed
(at least on man page).
fs=| is default so it is probably rarely used (at least on command line), but apparently
in needs quotes

Helena


On Feb 4, 2008, at 10:46 PM, Michael Barton wrote:

Yet additional information.

The file is messy because not all records have the same number of fields. Here is an example of 2 records.

628658.81149001|226880.93032087|9|-9999|-9999
636555.15570527|224580.64987627|10|125.6878585815||4|Managed Herbaceous Cover

In fact these *should* be

628658.81149001|226880.93032087|9|-9999|-9999|
636555.15570527|224580.64987627|10|125.6878585815|4|Managed Herbaceous Cover

My Mac will import the file in its original form, but crashes the TclTk when I use v.in.ascii from the GUI dialog. Another student's Mac imported the file with no problem.

If I clean it up so that it is formatted like the 2nd pair of records above, it imports on my Mac fine.

That said...

1) v.in.ascii should not crash any system if it encounters a bad file. It should exit with an error message 2) v.in.ascii in WinGRASS also crashed with a clean file on another student's computer today. It was a small one of 5 points. So there is still a problem under Windows.

I tried running it from the command line with the messy original file. It did NOT import the points and output an error message to the terminal...

Scanning input for column types...
Maximum input row length: 89
Maximum number of columns: 1
Minimum number of columns: 1
ERROR: y column number > minimum last column number
       (incorrect field separator?)

So... why does v.in.ascii go ahead with importing the points when run through the TclTk GUI when it does not import the points when run from the command line? The TclTk GUI has pretty robust error trapping now. So why does v.in.ascii bring it down? Could it be the 'formatting' of the error message? Something else going on internally so that it's not getting a message back to itself to NOT continue with importing?

Michael
____________________
C. Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>



On Feb 4, 2008, at 8:23 PM, Helena Mitasova wrote:


On Feb 4, 2008, at 9:45 PM, Michael Barton wrote:



On Feb 4, 2008, at 7:23 PM, Hamish wrote:

Michael Barton wrote:
I've run into a problem running v.in.ascii for WinGRASS importing an ASCII points file. Sometimes it works OK. Other times, it causes a Windows dbf.exe error but still gets the job done. In most cases, it causes a dbf.exe error and only imports the first point--with a coor
error.

Here are a couple of other pieces of information.

can you 1) run it with 'g.gisenv DEBUG=5' and 2) make the input file
and exact command line used available.

how about if you skip DB creation with '-t'?


Hamish


We've used several files to test. But the main one is from the N. Carolina demo data set, external files for import <http:// skagit.meas.ncsu.edu/~helena/grasswork/grassbookdat07/ncexternal/ schools_el_lu.txt>.

that file was actually output from GRASS - this is the command:

r.what -f elevation,landuse96_28m null=-9999 < schools.txt > schools_el_lu.txt

the original file is here (I assume that one works):
http://skagit.meas.ncsu.edu/~helena/grasswork/grassbookdat07/ ncexternal/schools.txt

Apparently I haven't tried to import it. It was probably generated on Mac.
I can try it out and report back,

Helena


This is a messy dataset, which may be part of the cause. But OTOH, it should behave the same way on all platforms and not cause a Windows dbf.exe error.

v.in.ascii input=/Users/cmbarton/schools_el_lu.txt output=schools_lu format=point fs=| skip=0 x=1 y=2 z=0 cat=3

I just tried it and saw it flash a malloc and dbmi error before it crashed the GUI

I'll try the debug on my Mac. I don't think that will work on Windows.

Michael

_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev




_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to