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)