#!/usr/bin/perl -w ########################################### # elerrd - Graph track elevation over time # Mike Schilli, 2006 (m@perlmeister.com) ########################################### use strict; use YAML qw(LoadFile); use RRDTool::OO; use File::Temp qw(tempfile); my $trkpts = LoadFile("tracks.yml"); my $rrd = RRDTool::OO->new( file => (tempfile())[1]); $rrd->create( start => $trkpts->[0]->{time} - 1, step => 60, data_source => { name => "elevation", type => "GAUGE" }, archive => { rows => 10000 }); for my $trkpt (@$trkpts) { eval { # Deal with dupes $rrd->update(time => $trkpt->{time}, value => $trkpt->{ele}); }; } $rrd->graph( start => $trkpts->[0]->{time}, end => $trkpts->[-1]->{time}, image => "elevation.png", vertical_label => 'Elevation', width => 300, height => 75, lower_limit => 0, );