def pred_sensitivity(krigobj, init_samp, nvar, second=False):
    lb = (np.min(init_samp, axis=0))
    ub = (np.max(init_samp, axis=0))
    lb = np.hstack((lb, lb))
    ub = np.hstack((ub, ub))
    testSA = SobolI(nvar, krigobj, None, ub, lb, nMC=2e5)
    result = testSA.analyze(True, True, second)
    print("PREDICTED SA")
    for key in result.keys():
        print(key + ':')
        if type(result[key]) is not dict:
            print(result[key])
        else:
            for subkey in result[key].keys():
                print(subkey + ':', result[key][subkey])

    return result
def real_sensi(krigobj, init_samp, nvar, second=False, prob='hidimenra'):
    lb = (np.min(init_samp, axis=0))
    ub = (np.max(init_samp, axis=0))
    lb = np.hstack((lb, lb))
    ub = np.hstack((ub, ub))
    testSA = SobolI(nvar, krigobj, prob, ub, lb, nMC=2e5)
    result = testSA.analyze(True, True, second)
    print("REAL SA")
    for key in result.keys():
        print(key + ':')
        if type(result[key]) is not dict:
            print(result[key])
        else:
            for subkey in result[key].keys():
                print(subkey + ':', result[key][subkey])

    return result