[GRASS-dev] Parsing output of r.category which includes labels
Moritz Lennert
mlennert at club.worldonline.be
Thu Aug 23 04:02:03 PDT 2018
On 23/08/18 11:52, Nikos Alexandris wrote:
> * Stefan Blumentrath <Stefan.Blumentrath at nina.no> [2018-08-23 07:23:12 +0000]:
>
>> Dear Nikos,
>>
>> Can you give us a bit more context? What is it you want to achieve?
>> How are you using r.stats and what is it you want to do with the
>> output?
>>
>> Personally, I am not too familiar with performance implications of
>> NumPy vs. plain Python, but rather use NumPy for convenience in
>> matrix/table operations (avoiding pandas)...
>
> ```
> for category in categories:
> statistics_filename = prefix + '_' + category
> r.stats(input=(base,reclassified),
> output=statistics_filename,
> flags='ncapl',
> separator=',',
> quiet=True)
> ```
>
> Instead, I want to (modify the above so as to) collect/direct all
> iterations in one output file.
You can check the r.neighborhoodmatrix addon for one solution which I
shamelessly took from a SE answer:
https://trac.osgeo.org/grass/browser/grass-addons/grass7/raster/r.neighborhoodmatrix/r.neighborhoodmatrix.py#L152
The code takes a list of filenames and the merges these files.
I've been confronted with a similar problem using v.db.select these days
and I've been thinking about adding a flag / parameter to relevant
modules allowing to append an existing file, instead of overwriting it.
Should just be a case of using mode "a" instead of "w", so shouldn't be
too complicated.
If you want to, try it with r.stats, by applying this change:
Index: raster/r.stats/main.c
===================================================================
--- raster/r.stats/main.c (révision 72717)
+++ raster/r.stats/main.c (copie de travail)
@@ -223,7 +223,7 @@
name = option.output->answer;
if (name != NULL && strcmp(name, "-") != 0) {
- if (NULL == freopen(name, "w", stdout)) {
+ if (NULL == freopen(name, "a", stdout)) {
G_fatal_error(_("Unable to open file <%s> for writing"), name);
}
}
and report back if it works as expected...
Moritz
More information about the grass-dev
mailing list