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
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) ))