Ejemplo n.º 1
0
def create(
        settings: dict,
        trials: typing.List[dict]
) -> dict:
    """
    Creates a group report dictionary and writes it to the group report
    directory as well as returning it.

    :param settings:
        Configuration for the group
    :param trials:
        List of trial simulation results
    """

    group_id = settings['id']
    report = reporting.Report('group', group_id)

    add_header_section(report, settings, trials)
    add_coupling_plots(report, trials)

    report.add_whitespace(10)
    report.write()

    reporting.write_json_results(
        path=os.path.join(report.directory, '{}.json'.format(group_id)),
        data=dict(
            trials=trials,
            settings=settings
        )
    )

    return report.url
Ejemplo n.º 2
0
def write_data(
        path: str,
        settings: dict,
        trackway_definition: trackway.TrackwayDefinition,
        foot_positions: limb.Property,
        times: dict,
        coupling_data: dict,
        advancement_data: dict,
        tangent_data: dict
):
    """
    Writes a JSON serialized data file containing the results of the trial for
    later analysis

    :param path:
    :param settings:
    :param trackway_definition:
    :param foot_positions:
    :param times:
    :param coupling_data:
    :param advancement_data:
    :param tangent_data:
    :return:
    """

    position_data = dict()
    for limb_id, positions in foot_positions.items():
        position_data[limb_id] = [x.to_dict() for x in positions]

    track_data = dict()
    for limb_id, positions in trackway_definition.limb_positions.items():
        track_data[limb_id] = [x.to_dict() for x in positions]

    reporting.write_json_results(path, dict(
        settings=settings,
        times=times,
        foot_positions=position_data,
        track_positions=track_data,
        couplings=coupling.serialize(coupling_data),
        advancement=advancement.serialize(advancement_data),
        tangent=tangent.serialize(tangent_data)
    ))