예제 #1
0
파일: main.py 프로젝트: ajaycharan/vehicles
def print_config(directory, outdir):
    from reprep import Report

    get_vehicles_config().load(directory)

    def write_report(r):
        out = os.path.join(outdir, '%s.html' % r.nid)
        rd = os.path.join(outdir, 'images')
        logger.info('Writing to %r' % out)
        r.to_html(out, resources_dir=rd)

    worlds = get_conftools_worlds()
    r = Report('worlds')
    create_generic_table(r, 'VehiclesConfig', worlds, ['desc', 'code'])
    write_report(r)

    dynamics = get_conftools_dynamics()
    r = Report('dynamics')
    create_generic_table(r, 'VehiclesConfig', dynamics, ['desc', 'code'])
    write_report(r)

    sensors = get_conftools_sensors()
    r = Report('sensors')
    create_generic_table(r, 'VehiclesConfig', sensors, ['desc', 'code'])
    write_report(r)

    vehicles = get_conftools_vehicles()
    r = Report('vehicles')
    create_generic_table(r, 'VehiclesConfig', vehicles,
                         ['desc', 'dynamics', 'id_dynamics', 'sensors'])
    write_report(r)
예제 #2
0
def draw_libdepgraph(res):
    """ Just display the dependencies between libraries """
    r = Report()
    fd = res['fd']
    assert isinstance(fd, FindDependencies)

    G = fd.create_libgraph()
    # create another graph only with libraries

    gg = my_gvgen.GvGen(options="rankdir=TB")

    @memoize_simple
    def get_gg_node(entry):
        label = entry
        return gg.newItem(label)

    for entry in G.nodes():
        get_gg_node(entry)

    for entry1, entry2 in G.edges():
        n1 = get_gg_node(entry1)
        n2 = get_gg_node(entry2)
        gg.newLink(n1, n2)

    gg_figure(r, 'graph', gg, do_dot=False)

    return r
예제 #3
0
def draw_depgraph(res):
    r = Report()
    fd = res['fd']
    assert isinstance(fd, FindDependencies)

    G = fd.create_graph()

    gg = my_gvgen.GvGen(options="rankdir=TB")

    @memoize_simple
    def get_gg_cluster(libname):
        print('creating cluster %s ' % entry)
        return gg.newItem(libname)

    @memoize_simple
    def get_gg_node(entry):
        print('creating node %s ' % entry)
        parent = get_gg_cluster(entry.libname)
        label = '%s/%s' % (entry.libname, entry.name)
        return gg.newItem(label, parent=parent)

    for entry in G.nodes():
        get_gg_node(entry)

    for entry1, entry2 in G.edges():
        n1 = get_gg_node(entry1)
        n2 = get_gg_node(entry2)
        gg.newLink(n1, n2)

    gg_figure(r, 'graph', gg, do_dot=False)

    return r
예제 #4
0
def report_dds(config, id_discdds, discdds, image='lena'):
    set_current_config(config)
    r = Report('dds-%s' % (id_discdds))
    image = config.images.instance(image)
    y0 = UncertainImage(image)
    discdds.display(r, y0)
    return r
예제 #5
0
def go():
    ieee_fonts_zoom3(pylab)

    r = Report()
    algos = [InvMult2.ALGO_UNIFORM, InvMult2.ALGO_VAN_DER_CORPUT]
    for algo in algos:
        InvMult2.ALGO = algo
        InvPlus2.ALGO = algo
        print('Using algorithm %s ' % algo)
        with r.subsection(algo) as r2:
            # first
            F = parse_poset('dimensionless')
            R = F
            dp = InvMult2(F, (R, R))
            ns = [3, 4, 5, 6, 10, 15]

            axis = (0.0, 6.0, 0.0, 6.0)

            with r2.subsection('invmult2') as rr:
                go1(rr, ns, dp, plot_nominal_invmult, axis)

            # second
            axis = (0.0, 1.2, 0.0, 1.2)
            dp = InvPlus2(F, (R, R))
            with r2.subsection('invplus2') as rr:
                go1(rr, ns, dp, plot_nominal_invplus, axis)

    fn = 'out-plot_approximations/report.html'
    print('writing to %s' % fn)
    r.to_html(fn)
예제 #6
0
def create_report_comb_stats(comb_id, tc_ids, alg_ids, deps):
    r = Report('set-%s' % comb_id)

    #    has_ground_truth = 'cheat' in alg_ids or 'echeat' in alg_ids
    #
    #    if 'cheat' in alg_ids: cheater = 'cheat'
    #    if 'echeat' in alg_ids: cheater = 'echeat'
    #
    #    if has_ground_truth:
    #        for tc_id in tc_ids:
    #            max_spearman = deps[(tc_id, cheater)]['spearman']
    #            for alg_id in alg_ids:
    #                res = deps[(tc_id, alg_id)]
    #                res['spearman_score'] = res['spearman'] / max_spearman

    def tablevar(var, format='%.2f', not_found=np.NaN):
        def getter(tc_id, alg_id):
            res = deps[(tc_id, alg_id)]
            if var in res:
                return format % res[var]
            else:
                return not_found

        return getter

    print entries
    for var, format in entries:
        caption = var
        r.table(var,
                caption=caption,
                **generic_table(tc_ids, alg_ids, tablevar(var, format)))

    return r
예제 #7
0
    def test_invalid_id_2(self):
        valid = [
            "cioa",
            "cioa",
            "cioa_",
            "cioa-0.4",
            "cioa-",
        ]
        invalid = [
            "cioa/",
            "cioa:",
            "cioa ",
            "cioa <",
            "$cioa",
            " cioa",
            "",
            '"',
            '""',
            "'",
            "a\\a",
        ]
        for s in invalid:
            print("TRying with %r" % s)
            if not contracts.all_disabled():
                self.assertRaises((ValueError, ContractNotRespected), Report,
                                  s)

        for s in valid:
            Report(s)
예제 #8
0
def create_report(G, constraint_stats=False):
    r = Report(G.graph['name'])
    f = r.figure("Graph plots")

    report_add_coordinates_and_edges(r,
                                     'graph',
                                     G,
                                     f,
                                     plot_edges=True,
                                     plot_vertices=True)
    report_add_coordinates_and_edges(r,
                                     'graph-edges',
                                     G,
                                     f,
                                     plot_edges=True,
                                     plot_vertices=False)
    report_add_coordinates_and_edges(r,
                                     'graph-vertices',
                                     G,
                                     f,
                                     plot_edges=False,
                                     plot_vertices=True)

    r.text('node_statistics', graph_degree_stats(G))

    if constraint_stats:
        f = r.figure("Constraints statistics")
        print('Creating statistics')
        stats = graph_errors(G, G)
        print(' (done)')
        report_add_distances_errors_plot(r, nid='statistics', stats=stats, f=f)

        r.text('constraints_stats', graph_errors_print('constraints', stats))

    return r
예제 #9
0
def report_statistics(id_sub, stats):
    records = stats['records']
    distance = records['distance']
    delta = records['delta']
    order = scale_score(distance)
    order = order / float(order.size)

    r = Report('stats-%s' % id_sub)
    r.data('records', records)
    f = r.figure()

    with f.plot('scatter') as pylab:
        pylab.scatter(delta, distance)
        pylab.xlabel('delta')
        pylab.ylabel('distance')
        pylab.axis((-1, np.max(delta) + 1, -0.05, np.max(distance)))

    with f.plot('with_stats', **dp_predstats_fig) as pylab:
        fancy_error_display(pylab, delta, distance, 'g')

    with f.plot('distance_order', **dp_predstats_fig) as pylab:
        fancy_error_display(pylab, delta, order, color='k')

    f = r.figure(cols=1)
    bins = np.linspace(0, np.max(distance), 100)
    for i, d in enumerate(set(delta)):
        with f.plot('conditional%d' % i) as pylab:
            which = delta == d
            pylab.hist(distance[which], bins)

    return r
예제 #10
0
def show_discdds_geo_main(config, parser):
    """ Displays the intrinsic geometry of a learned DDS """
    parser.add_option("-o",
                      "--output",
                      help="Output directory",
                      default='out/dp-show-discdds-geo/')
    parser.add_option("-t",
                      "--tolerance",
                      help="Normalized tolerance",
                      default=0.3,
                      type='float')
    options, which = parser.parse()

    outdir = options.output

    if not which:
        todo = config.discdds.keys()
    else:
        todo = config.discdds.expand_names(which)

    for id_dds in todo:
        dds = config.discdds.instance(id_dds)
        report = Report(id_dds)

        show_diffeo_structure(dds, report, tolerance=options.tolerance)

        write_report_files(report, basename=os.path.join(outdir, id_dds))
예제 #11
0
def report_vit(mdp, vit_res):
    r = Report()

    f = r.figure()
    with f.plot('value') as pylab:
        mdp.display_state_values(pylab, vit_res)
    return r
예제 #12
0
    def set_goal_observations(self, goal):
        self.goal = self.obs2ui(goal)
        self.a_pred = [a.predict(self.goal) for a in self.actions_i]

        r = Report('set_goal_observations')
        self.report(r)
        r.to_html('set_goal_observations.html')
예제 #13
0
def write_similarity_matrix(A, out, more=False, images=None):
    dtu.safe_pickle_dump(A, out + '.pickle')
    #     rgb = rgb_zoom(scale(A), 8)
    rgb = scale(A)
    rgb = dtu.d8_image_zoom_linear(rgb, 8)
    dtu.write_image_as_jpg(rgb, out + '.jpg')

    if more:
        r = Report()
        n = A.shape[0]
        for i in range(n):
            f = r.figure()

            ignore = 10
            Ai = A[i, :].copy()
            for i2 in range(i - ignore, i + ignore):
                if 0 <= i2 < n:
                    Ai[i2] = np.inf
            jbest = np.argmin(Ai)

            with f.plot('i-%d' % i) as pylab:
                pylab.plot(A[i, :], '-*')

            if images:
                f.data_rgb(str(i), dtu.bgr_from_rgb(images[i]))
                f.data_rgb(str(jbest), dtu.bgr_from_rgb(images[jbest]))

        r.to_html(out + '.html')
예제 #14
0
파일: state_diff.py 프로젝트: afcarl/tmdp
def report_resample(mdp, resample_res):  # @UnusedVariable
    support_points = resample_res['support_points']
    sampled_points = resample_res['sampled_points']
    delaunay_tri = resample_res['delaunay_tri']

    r = Report()
    f = r.figure()

    with f.plot('support') as pylab:

        for p in support_points:
            pylab.plot(p[0], p[1], 'kx')

        for p in sampled_points:
            pylab.plot(p[0], p[1], 'rx')

    with f.plot('triangulation') as pylab:
        plot_triangulation(pylab, delaunay_tri)

    with f.plot('both') as pylab:
        plot_triangulation(pylab, delaunay_tri)

        for p in support_points:
            pylab.plot(p[0], p[1], 'kx')

        for p in sampled_points:
            pylab.plot(p[0], p[1], 'rx')

    return r
예제 #15
0
def report_trajectories(res, name_obs=False):
    r = Report()

    f = r.figure()

    import networkx as nx

    G0 = create_graph_trajectories0(res['trajectories'], label_state=False,
                                    name_obs=name_obs)
    f.data('tree0', nx.to_pydot(G0).create_png(), mime=MIME_PNG)

    G0 = create_graph_trajectories0(res['trajectories'], label_state=True,
                                    name_obs=name_obs)
    f.data('tree1', nx.to_pydot(G0).create_png(), mime=MIME_PNG)

#
#     G1 = create_graph_trajectories(res['decisions'])
#     d1 = nx.to_pydot(G1)  # d is a pydot graph object, dot options can be easily set
#     # r.data('tree1', d.create_pdf(), mime=MIME_PDF)
#     f.data('tree1', d1.create_png(), mime=MIME_PNG)
#
#
#
#     if 'decisions_dis' in res:
#         G2 = create_graph_trajectories(res['decisions_dis'])
#         d2 = nx.to_pydot(G2)  # d is a pydot graph object, dot options can be easily set
#         f.data('tree2', d2.create_png(), mime=MIME_PNG)

    return r
예제 #16
0
def report_dds_fill(id_discdds, **params):
    dds = get_conftools_discdds().instance(id_discdds)

    r = Report('dds_fill-%s' % id_discdds)
    ds = DiffeoSystemBounds(id_discdds, dds, **params)
    ds.display(r)
    return r
예제 #17
0
def report_summary(results):
    # results = tuple (name, res dict)
    r = Report()

    cols = ['scenario', 'number of bits', 'number of states']
    data = []
    for name, res in results:

        agent = res['agent']

        nstates = len(agent.get_all_states())
        nbits = agent.get_num_states_components()
        row = [name, nbits, nstates]
        data.append(row)

    r.table('summary', data=data, cols=cols)

    cols = ['number of bits', 'number of states']
    data = []
    rows = []
    for name, res in results:

        agent = res['agent']

        nstates = len(agent.get_all_states())
        nbits = agent.get_num_states_components()
        rows.append(name)
        data.append([nbits, nstates])

    r.table('summary2', data=data, cols=cols, rows=rows)

    return r
예제 #18
0
def show_symdiffeo(config, parser):  #@UnusedVariable
    """ Creates a report for symbolically-defined DDS. """
    parser.add_option("-o",
                      "--output",
                      help="Output directory",
                      default='out/dp-show-symdiffeo/')
    parser.add_option("-i", "--id_image", help="ID image.", default='lena')
    parser.add_option("-d", "--id_diffeo", help="ID diffeo.")
    parser.add_option("-r",
                      "--resolution",
                      default=64,
                      help="Resolution (pixels)")
    options, which = parser.parse()

    outdir = options.output
    resolution = int(options.resolution)

    if not which:
        todo = config.symdiffeos.keys()
    else:
        todo = config.symdiffeos.expand_names(which)

    id_image = options.id_image
    image = config.images.instance(id_image)

    image = resize(image, resolution, resolution)

    for id_diffeo in todo:
        diffeo = config.symdiffeos.instance(id_diffeo)
        report = Report(id_diffeo)

        symdiffeo_display(report, image, diffeo, resolution)

        write_report_files(report, basename=os.path.join(outdir, id_diffeo))
예제 #19
0
def gg_get_format(gg, data_format):
    from reprep import Report
    r = Report()
    do_dot = data_format == 'dot'
    do_png = data_format == 'png'
    do_pdf = data_format == 'pdf'
    do_svg = data_format == 'svg'

    with timeit_wall('gg_figure %s' % data_format):
        gg_figure(r,
                  'graph',
                  gg,
                  do_dot=do_dot,
                  do_png=do_png,
                  do_pdf=do_pdf,
                  do_svg=do_svg)

    if data_format == 'pdf':
        pdf = r.resolve_url('graph_pdf').get_raw_data()
        return pdf
    elif data_format == 'png':
        png = r.resolve_url('graph/graph').get_raw_data()
        return png
    elif data_format == 'dot':
        dot = r.resolve_url('dot').get_raw_data()
        return dot
    elif data_format == 'svg':
        svg = r.resolve_url('graph_svg').get_raw_data()
        if '<html>' in svg:
            msg = 'I did not expect a tag <html> in the SVG output'
            svg = indent(svg, '> ')
            raise_desc(Exception, msg, svg=svg)
        return svg
    else:
        raise ValueError('No known format %r.' % data_format)
예제 #20
0
def report_results_single(func, objspec_name, results):
    def get_string_result(res):
        if res is None:
            s = 'ok'
        elif isinstance(res, Skipped):
            s = 'skipped'
        elif isinstance(res, PartiallySkipped):
            parts = res.get_skipped_parts()
            s = 'no ' + ','.join(parts)
        else:
            print('how to interpret %s? ' % describe_value(res))
            s = '?'
        return s

    r = Report()
    if not results:
        r.text('warning', 'no test objects defined')
        return r

    rows = []
    data = []
    for id_object, res in results.items():
        rows.append(id_object)

        data.append([get_string_result(res)])

    r.table('summary', rows=rows, data=data)
    return r
예제 #21
0
def show_discdds(config, parser):  # @UnusedVariable
    """ Creates a report for a DDS. """
    parser.add_option("-i", "--id_image", help="ID image.", default='lena')
    parser.add_option("-o",
                      "--output",
                      help="Output directory",
                      default='out/dp-show-discdds/')
    options, which = parser.parse()

    outdir = options.output

    if not which:
        todo = config.discdds.keys()
    else:
        todo = config.discdds.expand_names(which)

    id_image = options.id_image
    image = UncertainImage(config.images.instance(id_image))

    for id_dds in todo:
        print('Writing %s' % id_dds)
        dds = config.discdds.instance(id_dds)
        report = Report(id_dds)

        dds.display(report, image=image)

        write_report_files(report, basename=os.path.join(outdir, id_dds))
예제 #22
0
def create_report_drone1_mass_cost(data):
    matplotlib_settings()
    cs = CommonStats(data)

    r = Report()
    figure_num_implementations2(r, data, cs, 'num_missions', 'endurance')
    figure_discrete_choices2(r, data, cs, 'num_missions', 'endurance')

    f = r.figure()
    with f.plot('total_cost', **fig) as pylab:

        ieee_spines_zoom3(pylab)

        x = cs.get_functionality('num_missions')
        y = cs.get_functionality('endurance')
        z = cs.get_min_resource('total_cost')
        plot_field(pylab, x, y, z, cmap=colormap)
        pylab.title('total_cost', color=color_resources,  y=1.08)


    with f.plot('total_mass', **fig) as pylab:

        ieee_spines_zoom3(pylab)

        x = cs.get_functionality('num_missions')
        y = cs.get_functionality('endurance')
        z = cs.get_min_resource('total_mass')
        plot_field(pylab, x, y, z, cmap=colormap)
        pylab.title('total_mass', color=color_resources,  y=1.08)

    return r
예제 #23
0
def execute_proxy(operations):
    report = Report()
    resources = {}
    resources['report'] = report
    for what, kwargs in operations:
        what(resources=resources, **kwargs)
    print(report.format_tree())
    return report
예제 #24
0
def get_optim_state_report(s, opt):
    r = Report()

    from mcdp_opt_tests.test_basic import plot_ndp
    plot_ndp(r, 'current', s.get_current_ndp(), opt.library)
    r.text('order', 'creation order: %s' % s.creation_order)
    r.text('msg', s.get_info())
    return r
예제 #25
0
def filter_phase_report(stats):
    P = stats['P']

    r = Report('unknown')
    f = r.figure()
    r.data('P', P.T).display('scale').add_to(f)

    return r
예제 #26
0
def create_report_min_joint(data):
    matplotlib_settings()

    cs = CommonStats(data)
    r = Report()
    figure_num_implementations2(r, data, cs, 'missions', 'capacity')
    figure_discrete_choices2(r, data, cs, 'missions', 'capacity')
    return r
예제 #27
0
 def save_graph(self):
     """ Saves a copy of the progress so far """
     r = Report(self.id_dds)
     outdir = 'out/cover-progress/%s/' % self.id_dds
     self.draw_graph(r)
     filename = os.path.join(outdir, 'graphs.html')
     logger.info('Writing to %r' % filename)
     r.to_html(filename, write_pickle=True)
예제 #28
0
파일: tests.py 프로젝트: rusi/mcdp
def check_ex16b_r(dp):
    funsp = dp.get_fun_space()
    bot = funsp.get_bottom()
    res = dp.solve(bot)
    print 'res', res
    r = Report()

    return r
예제 #29
0
def report_example(param2, samples):
    print('report_example(%s, %s)' % (param2, samples))
    if param2 == -1:
        print('generating exception')
        raise Exception('fake exception')
    r = Report()
    r.text('samples', str(samples))
    print('creating report')
    return r
예제 #30
0
파일: show.py 프로젝트: afcarl/tmdp
def report_start_dist(mdp):
    r = Report()
    f = r.figure()

    start = mdp.get_start_dist()
    with f.plot('start_dist', caption='Start distribution') as pylab:
        mdp.display_state_dist(pylab, start)

    return r