示例#1
0
def main(opts, flgs):
    """
ml.super group=rgb hdf=results.hdf \
seg_thresholds=0.02,0.05 \
seg_opts="method=region_growing,minsize=2" \
seg_name=seg__%.2f \
training_conf=mlconf.py \
training_mls=BEST \
training_hdf=training.hdf \
training_ychk=y_chk \
training_kchk1=K_chk \
training_kchk2=K_chk \
training_key=tree \
output=mytree
    ml.super(group=rgb, hdf=results.hdf, seg_thresholds=0.01,0.05,
                seg_opts="method=region_growing,minsize=2",
                seg_name=seg__%.2f, stat_name=stat_%s.csv,
                stat_ratio_cols=photo_r_mean,photo_g_mean,photo_b_mean,
                stat_results=K_all, flags='sr', overwrite=True)
    ml.classify(training_json=training.json,
                training_conf=mlconf.py, training_mls=BEST,
                training_hdf=$PHD/edinburgh/segSVM/segments-ml/data.hdf
                training_ychk=y_chk hdf=results.hdf)
    ml.toraster(segment=seg__0.05, hdf=results.hdf, mlname=tree, output=mltree)

classify(data=opts['datasum'], training_conf=abstconf, training_mls=opts['training_mls'], training_hdf=absthdf, training_kchk=opts['training_kchk2'], training_ychk=opts['training_ychk'], training_key=opts['training_key'], hdf=opts['hdf'])
torast(segment=opts['seg_name'] % opts['thrs'][-1], hdf=opts['hdf'], mlname=opts['training_key'], output=opts['output'])

ml.super group=rgb hdf=results.hdf seg_thresholds=0.02,0.05 seg_opts="method=region_growing,minsize=2" seg_name=seg__%.2f training_conf=mlconf.py training_mls=BEST training_hdf=training.hdf training_ychk=y_chk training_kchk1=K_chk training_kchk2=K_chk2 training_key=tree output=mytree --o


from grass.pygrass.modules.grid import GridModule

sup = GridModule(cmd='ml.super', group='rgb',
    hdf='results.hdf',
    seg_thresholds=[0.02,0.05],
    seg_opts="method=region_growing,minsize=2",
    seg_name='seg__%.2f', training_conf='mlconf.py',
    training_mls='BEST',
    training_hdf='training.hdf',
    training_ychk='y_chk',
    training_kchk1='K_chk',
    training_kchk2='K_chk2',
    training_key='tree',
    output='mytree',
    overwrite=True)

    """
    mps = Mapset()
    if opts['visible']:
        mps.visible.extend(opts['visible'].split(','))
    cwd = os.getcwd()
    abstconf = os.path.abspath(opts['training_conf'])
    absthdf = os.path.abspath(opts['training_hdf'])
    print(cwd, abstconf, absthdf)
    os.chdir(mps.path())
    igrp = Module('i.group')
    igrp(group=opts['group'], input=opts['rast'].split(','))
    segstats = Module('ml.segstats')
    segstats(group=opts['group'], hdf=opts['hdf'],
             seg_thresholds=opts['thrs'], seg_opts=opts['seg_opts'],
             seg_name=opts['seg_name'], stat_results=opts['data'],
             overwrite=True,
             flags='r' if 'r' in flags and flags['r'] else 'sr')

    classify = Module('ml.classify')
    classify(data=opts['data'],
             training_conf=abstconf,
             training_mls=opts['training_mls'],
             training_hdf=absthdf,
             training_kchk=opts['training_kchk1'],
             training_ychk=opts['training_ychk'],
             training_number=int(opts['training_number']),
             transform=opts['transform'],
             hdf=opts['hdf'],
             out_class=opts['out_class'],
             area_size=int(opts['area_size']))


    torast = Module('ml.toraster')
    seg = opts['seg_name'] % opts['thrs'][-1] if "%" in opts['seg_name'] else opts['seg_name']
#    hist = 'ml.nemesis(%s)' % ", ".join(["%s=%r" % (k, v) for k, v in sorted(opts.items())])
#    torast(segment=seg, hdf=opts['hdf'],
#           mlname='tree', output='ftree',
#           hist=hist)
#    torast(segment=seg, hdf=opts['hdf'],
#           mlname='knn', output='fknn',
#           hist=hist)
#    torast(segment=seg, hdf=opts['hdf'],
#           mlname='svm', output='fsvm',
#           hist=hist)

    conf = imp.load_source("conf", abstconf)
    mls = getattr(conf, opts['training_mls'])
    new_tab(opts['hdf'], opts['data'], opts['datasum'], sorted(mls.keys()))
    classify(data=opts['datasum'],
             training_conf=abstconf,
             training_mls=opts['training_mls'],
             training_hdf=absthdf,
             training_kchk=opts['training_kchk2'],
             training_ychk=opts['training_ychk'],
             #training_key=opts['training_key'],
             training_number=0,
             transform=opts['transform'],
             hdf=opts['hdf'],
             out_class="last__%s" % opts['out_class'],
             area_size=int(opts['area_size']))


    hist = 'ml.nemesis(%s)' % ", ".join(["%s=%r" % (k, v) for k, v in sorted(opts.items())])
    torast(segment=seg, hdf=opts['hdf'],
           mlname=opts['training_key'], output=opts['output'],
           hist=hist)
#    torast(segment=seg, hdf=opts['hdf'],
#           mlname='last__tree', output='fuck_tree',
#           hist=hist)
#    torast(segment=seg, hdf=opts['hdf'],
#           mlname='last__svm', output='fuck_svm',
#           hist=hist)
#    torast(segment=seg, hdf=opts['hdf'],
#           mlname='last__knn', output='fuck_knn',
#           hist=hist)
#    rnull = Module('r.null')
#    rnull(map=opts['output'], setnull=0)
#    rfill = Module('r.fillnulls')
#    rfill(input=opts['output'], output=opts['output'] + '__fill')
    os.chdir(cwd)