[GRASS-user] Reading file with with space separators
Ralf Schäfer
senator at ecotoxicology.de
Wed Apr 17 07:26:10 PDT 2013
Thanks for your help!!!
Am 17.04.2013 um 13:25 schrieb Hamish <hamish_b at yahoo.com>:
> Ralf wrote:
>>> I have xyz files with the format
>>> ..x..y...value
>>> where <.> stands for white space. The spacing is
>>> two spaces between x and y and three spaces to data column.
>
> Markus Metz wrote:
>> [ rather difficult to produce a file with different kinds of
>> spacing between columns ]
yeah, some governmental institutions are really funny
>
>> You could try
>>
>> cat dgm10_32292_5548_2_rp.xyz | tr -s ' '
>>> dgm10_32292_5548_2_rp_one_space.xyz
>> r.in.xyz fs='space', in=dgm10_32292_5548_2_rp_one_space.xyz
>> out=test
>
> Yes, I think using 'tr -s' is the best way.
>
> (you can pipe the result directly into r.in.xyz too if you like)
The idea is very well and I should have thought about this myself.
However, I still get an error, although I now have 1-space delimited file.
r.in.xyz fs='space', input=dgm10_32292_5548_2_rp_one_space.xyz out=test
I already achieved the task with the help in R now, but from academic point would really be interested why is not working. I obtain the error message:
ERROR: Not enough data columns. Incorrect delimiter or column number? Found
the following character(s) in row 1:
[293220.000 5550000.000 311.432]
> if it really is _always_ two,three spaces between columns,
> you could set x=3 y=5 z=8. But maybe a .0 is left off somewhere
> and the number of spaces between columns changes?
Although it looks strictly regular, this did also not work...
I uploaded sample files here:
http://www.sendspace.com/file/8q3vrx
Perhaps this makes reproduction of the problem easier...
Best regards
Ralf
>
>>> In R it is no problem - the simple read.table with
>>> sep="" for any whitespace works. And with rasterFromXYZ
>>> (raster package) I can create a raster without problems.
>
> r.in.xyz (and most GRASS modules) split by each literal sep= char,
> not until it finds another number the way glibc funtions or awk
> might. An offshoot of this (mostly for importing .csv tables
> from spreadsheets with v.in.ascii) is that empty data columns
> are supported as containing NULL, and not messing up the placement
> of columns to the right.
>
>
> Hamish
More information about the grass-user
mailing list