On 11/06/15 20:05, Anna Petrášová wrote:


On Thu, Jun 11, 2015 at 1:46 PM, Moritz Lennert
<[email protected] <mailto:[email protected]>> wrote:

    On 11/06/15 19:02, Nikos Alexandris wrote:

        * Moritz Lennert <[email protected]
        <mailto:[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.


Oh, I didn't know that it already has it. Good to know!

And, just for info, it solves my problem beautifully.

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

Reply via email to