def gui_rungeo():
    ''' Actually run geospatial analysis!!! '''
    global globalportfolio, globalobjectives, objectiveinputs
    starttime = time()
    if globalobjectives is None:
        globalobjectives = defaultobjectives()
        globalobjectives['budget'] = 0.0 # Reset
    for key in objectiveinputs.keys():
        globalobjectives[key] = eval(str(objectiveinputs[key].text())) # Get user-entered values
    globalobjectives['budget'] *= budgetfactor # Convert back to internal representation
    BOCobjectives = dcp(globalobjectives)
    try:
        globalportfolio.genBOCs(objectives=BOCobjectives, maxtime=30, mc=0)
        globalportfolio.runGA(objectives=globalobjectives, maxtime=30, reoptimize=True, mc=0, batch=True, verbose=2, die=False, strict=True)
    except Exception as E:
        warning('Geospatial analysis failed: %s' % repr(E))
    warning('Geospatial analysis finished running; total time: %0.0f s' % (time() - starttime))
    return None