[GRASS-user] convert r.report output to spreadsheet format

Dylan Beaudette dylan.beaudette at gmail.com
Wed Feb 25 11:25:39 EST 2009


On Wed, Feb 25, 2009 at 1:39 AM, Giovanni Pasini <jynxtor at gmail.com> wrote:
> maning sambale wrote:
>>
>> Thanks!
>> An example of the r.report output:
>>
>> |-----------------------------------------------------------------------------|
>> |              Category Information               |          |     cell|
>> %  |
>> | #|description                                   |  hectares|    count|
>> cover|
>>
>> |-----------------------------------------------------------------------------|
>> | 1|Siquijor                                      |    31,313|   385511|
>>  0.05|
>> |
>>  |----------------------------------------------|----------|---------|------|
>> |  |112|Broadleaf - open canopy. . . . . . . . . .|      8265|   101755|
>> 26.39|
>> |  |140|Mangrove . . . . . . . . . . . . . . . . .|       173|     2125|
>>  0.55|
>> |  |210|Agriculture-annual . . . . . . . . . . . .|      7370|    90737|
>> 23.54|
>> |  |310|Scrub. . . . . . . . . . . . . . . . . . .|      1063|    13081|
>>  3.39|
>> |  |320|Grassland. . . . . . . . . . . . . . . . .|      7185|    88460|
>> 22.95|
>> |  |400|Built-up . . . . . . . . . . . . . . . . .|       103|     1270|
>>  0.33|
>> |  |510|Inland water . . . . . . . . . . . . . . .|        44|      539|
>>  0.14|
>> |  |  *|no data. . . . . . . . . . . . . . . . . .|      7111|    87544|
>> 22.71|
>>
>> I want converted to:
>> Province,land_cover_code,description,hectares,cell_count,percent_cover
>>
>> I will try the cryptic awk lines.
>>
>>
>> On Wed, Feb 25, 2009 at 12:12 AM, Giovanni Pasini <jynxtor at gmail.com>
>> wrote:
>>>
>>> maning sambale ha scritto:
>>>>
>>>> Hi,
>>>>
>>>> Looking for tips in "transforming" r.report output into a
>>>> "spreadsheet" like format.
>>>>
>>> Hi,
>>> I use awk (change NF and the other fields $*):
>>>
>>> r.report -n map=gri_1000_in,dem2_idw_100_slope_rec units=h,p,c | awk
>>> 'BEGIN
>>> {FS="|";OFS="|"} !/---/ && NF==7 {intest=$2} NF==8 {sub(/[ .]*$/,"",$4);
>>> print intest, $4, $6}' > report_slope.txt
>>>
>>> This from a non awk expert!
>>>
>>> cheers,
>>> giovanni
>>> _______________________________________________
>>> grass-user mailing list
>>> grass-user at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>>
>>
>>
>>
>
> try this:
>
> cat report.txt |awk 'BEGIN {FS="|";OFS="|"} !/---/ && NF==7 {intest=$3}
> NF==8 {sub(/[ .]*$/,"",$4); print intest, $4,$5,$6,$7}'
>
> or better:
>
> cat report.txt | awk 'BEGIN {FS="|";OFS="|"} !/---/ && NF==7 {intest=$3}
> NF==8 {sub(/[ .]*$/,"",$4); sub(/[ ]*$/,"",intest); printf
> "%s|%s|%d|%d|%.2f\n",intest,$4,$5,$6,$7}'
>
>
> giovanni
>

Just opened a new feature request ticket:
http://trac.osgeo.org/grass/ticket/507

I may be able to get around to working on this mid april... :( Unless
someone else wants to tackle it!

Cheers,
Dylan


More information about the grass-user mailing list