On 11/06/15 19:02, Nikos Alexandris wrote:
* Moritz Lennert <[email protected]> [2015-06-11 18:37:36 +0200]:

Hello,

In a python script I have the following call:

grass.run_command('r.series',
                     input = rate_maps,
                     output = sum_rates,
                     method = 'sum',
                     overwrite = True,
                     quiet=True)

rate_maps is a list which in one instance contains 8559 map names,
leading to an "OSError: [Errno 7] Argument list too long".

I know that in the shell I could use xargs to work around such a
problem. But how to do this in python ?

What it the OS limit for it?

I suppose this is ARG_MAX ?

getconf ARG_MAX
2097152

A text file with all file names only uses 144551 bytes.

Or is there another limit I should look at ?



I could obviously loop through all maps and thus sum them individually,
but this just seems horribly inefficient.

Does anyone have a better solution ?

- Maybe split in two or three sessions (instead of looping over all)?

Yes, thanks, I can do that. I'll also try the file option mentioned by Anna (r.series actually has one). Didn't think of that.

Thanks to both of you !

Moritz


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

Reply via email to