Example #1
0
def main(filename):
    #Set A4 figure size
    plt.rc('figure', figsize=(11.69, 8.27), dpi=100)

    basename = filename[:-4]
    df = parse_tcx.get_activity_data(filename)
    with PdfPages(basename + '-ActivitySummary.pdf') as pdf:
        print('Maps')
        mapfig = activitymap.activity_map_figure(df)
        plt.tight_layout()
        pdf.savefig(mapfig)
        plt.close(mapfig)

        print('Minimal report')
        mr_fig = minimalreport.minimal_report_figure(df)
        plt.tight_layout()
        pdf.savefig(mr_fig)
        plt.close(mr_fig)

        info = pdf.infodict()
        info['CreationDate'] = datetime.datetime.today()
Example #2
0
    for i, (unit, col) in enumerate(zip(units, columns)):
        ax = fig.add_subplot(1, 2, i+1, projection=tiler.crs)
        ax.set_extent((lon.min()-dlon, lon.max()+dlon,
                       lat.min()-dlat, lat.max()+dlat))
        ax.add_image(tiler, 15)

        #Plot activity positions on map, color by speed
        im = ax.scatter(df['Longitude'], df['Latitude'], c=df[col],
                transform=ccrs.Geodetic(), s=40, edgecolor='none',
                cmap=plt.cm.hot_r, alpha=0.5)
        ax.set_title('Mean = {0:.1f} [{1}]'.format(df[col].mean(), unit))
        cbar = plt.colorbar(im, shrink=.5, drawedges=False)
        cbar.set_label('{0} [{1}]'.format(col, unit))
        cbar.solids.set_rasterized(True)
        cbar.solids.set_edgecolor('face')
    #plt.suptitle('{0:.2f} km, {1:.1f} min'.format(
    #    df['DistanceMeters'].max()/1000,
    #    df['SecondsElapsed'].max()/60))
    return fig

if __name__ == '__main__':
    pd.options.display.mpl_style = 'default'
    filename = sys.argv[1]
    basename = filename[:-4]
    df = parse_tcx.get_activity_data(filename)
    print('Plotting maps')
    fig = activity_map_figure(df)
    plt.tight_layout()
    fig.savefig(basename + '-mapspeed.png', dpi=200)
    plt.close(fig)
Example #3
0
        'Warmup': hrmin + 0.6 * hrr,
        'Recover': hrmin + 0.7 * hrr,
        'Aerobic': hrmin + 0.8 * hrr,
        'Anaerobic': hrmin + 0.9 * hrr,
        'Redline': hrmin + hrr
    }
    zones = pd.Series(zones_dict)
    zones.sort(inplace=True)
    return zones


if __name__ == '__main__':
    hrmin = float(sys.argv[2])
    hrmax = float(sys.argv[3])
    lt = float(sys.argv[4])
    df = parse_tcx.get_activity_data(sys.argv[1])
    times = df.SecondsElapsed
    hrseries = pd.Series(index=times, data=df['HeartRateBpm'].values)
    zones = get_zones_lactate_thresh(lt, hrmin, hrmax)
    zones_kavonen = get_zones_kavonen_five(hrmin, hrmax)
    tiz = get_time_in_zones(hrseries, zones)
    tizkav = get_time_in_zones(hrseries, zones_kavonen)
    fig, ax = plt.subplots(1, 3, figsize=(15, 5))
    tiz['TimeInZone'].plot(ax=ax[0], kind='barh')
    tizkav['TimeInZone'].plot(ax=ax[1], kind='barh')
    df['HeartRateBpm'].plot(ax=ax[2], kind='kde')
    df['HeartRateBpm'].plot(ax=ax[2],
                            kind='hist',
                            normed=True,
                            bins=np.linspace(hrmin, hrmax,
                                             (hrmax - hrmin) // 2),
Example #4
0
    hrr = hrmax - hrmin
    zones_dict = {'Warmup': hrmin + 0.6*hrr,
                  'Recover': hrmin + 0.7*hrr,
                  'Aerobic': hrmin + 0.8*hrr,
                  'Anaerobic': hrmin + 0.9*hrr,
                  'Redline': hrmin + hrr}
    zones = pd.Series(zones_dict)
    zones.sort(inplace=True)
    return zones


if __name__ == '__main__':
    hrmin = float(sys.argv[2])
    hrmax = float(sys.argv[3])
    lt = float(sys.argv[4])
    df = parse_tcx.get_activity_data(sys.argv[1])
    times = df.SecondsElapsed
    hrseries = pd.Series(index=times, data=df['HeartRateBpm'].values)
    zones = get_zones_lactate_thresh(lt, hrmin, hrmax)
    zones_kavonen = get_zones_kavonen_five(hrmin, hrmax)
    tiz = get_time_in_zones(hrseries, zones)
    tizkav = get_time_in_zones(hrseries, zones_kavonen)
    fig, ax = plt.subplots(1, 3, figsize=(15,5))
    tiz['TimeInZone'].plot(ax=ax[0], kind='barh')
    tizkav['TimeInZone'].plot(ax=ax[1], kind='barh')
    df['HeartRateBpm'].plot(ax=ax[2], kind='kde')
    df['HeartRateBpm'].plot(ax=ax[2], kind='hist', normed=True,
        bins=np.linspace(hrmin, hrmax, (hrmax-hrmin)//2), alpha=0.3)
    print(tiz)
    print(tizkav)
    plt.tight_layout()