Dystans wg dni tygodnia
Średni dystans wg dni tygodnia
Dystans wg tygodni w roku
Średnio rocznie wg tygodni
To był rekordowy rok w wielu kategoriach:-)
Zacznijmy od pogody, którą mierzę od 2010 roku przypominam. U mnie średnia wyszła 9,56 C, do tej pory rekord to było 9,44 C w 2015 r. Szczegółowo to tak wygląda:
rok : 2010 2011 2012 2013 2014 2015 2016 2017 2018 -------------------------------------------------------------- średnia : 8.65 8.94 8.17 8.63 9.33 9.44 9.18 8.75 9.56
Rekordowo niska była też suma opadów: 447.9mm (148 dni opadowych); dla porównania w 2017 roku spadło 763,8mm deszczu (194 dni). Rekord do tej pory to 2014 rok: 450,6 (148 dni) czyli w zasadzie tyle samo (z dokładnością do błędu).
Na rowerze przejechałem 19,100 km (302 razy, co nie oznacza dni, bo czasami były dwa razy dziennie). Poprzedni rekord z 2017 r wynosił 17,855 km. Z tej okazji podsumowałem swoje życiowe wyczyny, a mam statystykę szczegółową od 1993 r. Kurcze 26 lat pykło, w których to latach przejechałem prawie 210 tys km. Do tego w latach 1990--1992 przejechałem ponad 20 tys km, ale nie zachowała się niestety dokładna rozpiska. Z okazji tych wszystkich wyczynów podsumowanie zrobiłem wg dni tygodnia i wg. tygodni w roku (wg. miesięcy to liczę na bieżąco). Konkretnie to podsumowanie jest zestawem 7 wykresów słupkowych rysowanych w R. Dane do skryptu i sam skrypt jest z kolei generowany przez prosty program w Perlu:
#!/usr/bin/perl -w use Date::Calc qw(Week_Number Day_of_Week); ##my $RRcmd = 'R CMD BATCH'; ## see below my $color= 'pink'; my $current_yr = 2019; my %Miesiac = (1 => 'styczeń', 2 => 'luty', 3 => 'marzec', 4 => 'kwiecień', 5 => 'maj', 6 => 'czerwiec', 7 => 'lipiec', 8 => 'sierpień', 9 => 'wrzesień', 10 => 'październik', 11 => 'listopad', 12 => 'grudzień',); my %DoWName = ( 1 => 'pon', 2 => 'wto', 3=> 'sro', 4 => 'czw', 5 => 'pia', 6 => 'sob', 7 => 'nie' ); open(O, ">dow.R") || die "Cannot open!\n"; open(P, 'LANG=C grep "dist\|date" c*.xml|' ) || die "Cannot open!\n"; while (<P>) { chomp(); ##print ">>$_;"; if (/date[^'"]+["']([0-9\/]+)["']/) {$date = "$1";} if (/dist[^'"]+["']([0-9\/]+)["']/) {$D{$date} += $1;} } close(P) || die "Cannot close!\n"; for $d (sort keys %D ) { ($dyy, $dmm, $ddd) = split '/', $d; if ($dyy == $current_yr ) { next } ### skip as incomplete my $dow = Day_of_Week($dyy,$dmm,$ddd); $DoWs{$dow} += $D{$d}; $DoWNums{$dow}++; my $woy = Week_Number($dyy,$dmm,$ddd); $WoYs{$woy} += $D{$d}; $WoYNums{$woy}++; $RdT++; $Years{$dyy}=1; } @YNo = sort(keys (%Years)); $YNo = $#YNo +1; print O "##Generated content == do not edit\n"; print O "##By Day of Week\n"; # for $d (sort keys %DoWs) { $mean = sprintf "%.1f", $DoWs{$d} / $DoWNums{$d}; $t += $DoWs{$d}; $days_totals .= "$DoWs{$d}, "; $days_means .= "$mean, "; $days_ns .= "$DoWNums{$d}, "; $days_labels .= "'" . $DoWName{$d} . "', "; ##printf "%-12.12s %7i %.1f (%i)\n", $DoWName{$d}, $DoWs{$d}, $mean, $DoWNums{$d}; ; } $days_totals =~ s/, $//; $days_means =~ s/, $//; ##$days_ymeans =~ s/, $//; $days_ns =~ s/, $//; $days_labels =~ s/, $//; print O "days_totals <- c($days_totals); days_means <- c($days_means); days_ns <- c($days_ns); days_labels <- c($days_labels);\n"; print O "barplot(days_totals, main='Distance (total $YNo[0]--$YNo[$#YNo]): $t kms', horiz=F, names.arg=days_labels, col=c('$color')); barplot(days_means, main='Day means ($YNo[0]--$YNo[$#YNo])', horiz=F, names.arg=days_labels, col=c('$color')); barplot(days_ns, main='RideDays (total): $RdT', horiz=F, names.arg=days_labels, col=c('$color'));\n"; print STDERR "##Razem: $t\n"; ##print "====\n"; print O "\n\n##By Week of Year\n"; for $w (sort {$a <=> $b } keys %WoYs) { $mean = sprintf "%.1f", $WoYs{$w} / $WoYNums{$w}; $vals_totals .= "$WoYs{$w}, "; $vals_ymeans .= sprintf "%.1f, ", $WoYs{$w}/$YNo; $vals_means .= "$mean, "; $vals_ns .= "$WoYNums{$w}, "; $vals_labels .= "$w, "; } $vals_totals =~ s/, $//; $vals_means =~ s/, $//; $vals_ymeans =~ s/, $//; $vals_ns =~ s/, $//; $vals_labels =~ s/, $//; print O "vals_totals <- c($vals_totals); vals_ymeans <- c($vals_ymeans); vals_means <- c($vals_means); vals_ns <- c($vals_ns); vals_labels <- c($vals_labels);\n"; print O "barplot(vals_totals, main='Distance (total $YNo[0]--$YNo[$#YNo]): $t kms', horiz=F, names.arg=vals_labels, col=c('$color')); barplot(vals_ymeans, main='Weak means ($YNo[0]--$YNo[$#YNo])', horiz=F, names.arg=vals_labels, col=c('$color')); barplot(vals_means, main='Day means ($YNo[0]--$YNo[$#YNo])', horiz=F, names.arg=vals_labels, col=c('$color')); barplot(vals_ns, main='RideDays (total): $RdT', horiz=F, names.arg=vals_labels, col=c('$color'));\n"; print O "### ENDE!\n"; close(O); print STDERR "##R dow.R\n"; system ("R", "CMD", "BATCH", "dow.R"); print STDERR "##xpdf Rplots.pdf\n"; print STDERR "##convert -density 300 Rplots.pdf opus_by_dow.jpg\n"; system ("convert", "-density", "300", "Rplots.pdf", "opus_by_dow.jpg");
Na koniec przyznam że mam mieszane uczucia co do zeszłorocznego wyczynu, w sensie że za dużo wyszło. Oprócz roweru też jest życie...
Tak więc w przyszłym roku raczej rekordu nie będzie.
Brak komentarzy:
Prześlij komentarz