[GRASS-dev] pygrass: how to use GridModule with a module that has a 'width' parameter

Moritz Lennert mlennert at club.worldonline.be
Tue Mar 6 05:59:23 PST 2018


Hi,

I'm trying to run the i.zc module in parallel on several tiles. I use 
this syntax

     if options['tile_width']:
         parallel = True
         width = int(options['tile_width'])
         height = int(options['tile_height'])
         overlap = int(options['overlap'])

     processes = int(options['processes'])



kwargs = {'input' : inputraster,
           'output' : temp_edge_map,
           'width' : int(options['zc_width']),
           'threshold' : float(options['zc_threshold']),
           'quiet' : True}

if parallel:
    grd = GridModule('i.zc',
                     width=width,
                     height=height,
                     overlap=overlap,
                     processes=processes,
                     split=False,
                     **kwargs)


However, this fails (understandably) with

TypeError: type object got multiple values for keyword argument 'width'

Is there a way to work around this name conflict ? Do I have to define 
my own class derived from GridModule to change the parameter names ?

Moritz


More information about the grass-dev mailing list