From 6b68c4b4182847ae591d92e4c37aed53ecbe7712 Mon Sep 17 00:00:00 2001 From: foo Date: Thu, 11 Feb 2016 17:20:06 +0000 Subject: [PATCH] EA changed the pages --- new.gnuplot | 15 +++++++++++++-- new.pl | 25 ++++++++++++------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/new.gnuplot b/new.gnuplot index 2608c98..2de2382 100644 --- a/new.gnuplot +++ b/new.gnuplot @@ -1,4 +1,4 @@ -set term png medium size 3200,1200 enhanced font "Helvitica" 14 +set term png medium size 6400,1200 enhanced font "Helvitica" 14 set output "out/all.png" set datafile missing "-" @@ -14,6 +14,7 @@ set ylabel "River level (m)" set grid y set key outside bottom center horizontal +set label 11 left at graph 0,char 1 "Data from Environment Agency processed via mafoo.org.uk" font ",12" set title "River Levels in East Kent" plot \ @@ -92,7 +93,7 @@ plot \ "data.tsv" using 1:33 with linespoints title "Medway at Allington Lock" ### Canterbury -set term png medium size 1800,800 enhanced font "Helvitica" 14 +set term png medium size 3600,800 enhanced font "Helvitica" 14 set output "out/canterbury.png" set title "River Levels around Canterbury" @@ -103,3 +104,13 @@ plot \ # "data.tsv" using 1:($5-$3) with linespoints title "Difference" axes x1y2 +### Canterbury recent +set timefmt "%Y-%m-%dT%H:%M" +set term png medium size 3600,800 enhanced font "Helvitica" 14 +set output "out/canterbury-recent.png" + +set title "River Levels around Canterbury in last 3 months" +plot \ + "< ./getlast3mo.sh 1145" using 1:2 with linespoints title "Great Stour at Wye", \ + "< ./getlast3mo.sh 1135" using 1:2 with linespoints title "Great Stour at Horton weir", \ + "< ./getlast3mo.sh 1143" using 1:2 with linespoints title "Great Stour at Vauxhall Bridge" diff --git a/new.pl b/new.pl index 96a0620..0be0158 100755 --- a/new.pl +++ b/new.pl @@ -3,6 +3,7 @@ $|=1 if $ENV{DEBUG}; use strict; use diagnostics; use DBI; +use JSON; use LWP::UserAgent; my $ua = LWP::UserAgent->new; @@ -19,7 +20,7 @@ my @stations = qw( 3129 3130 3131 3132 3134 3135 3136 3138 3140 3145 3146 3149 3150 3151 3153 ); -my $base = "http://apps.environment-agency.gov.uk/river-and-sea-levels/136486.aspx?stationId="; +my $base = "https://flood-warning-information.service.gov.uk/station/"; my $db = DBI->connect("dbi:SQLite:dbname=rivers.db") or die $DBI::errstr; @@ -56,25 +57,23 @@ foreach my $station (@stations) { my $lastupdate; my $watercourse; my $datum; - if ($res->is_success and $res->content =~ m~Current level:~) { - $res->content =~ m~

([^<]+)

~; - $stationname = $1; + if ($res->is_success and $res->content =~ m~root.station~) { + $res->content =~ m~root.station = (.*);~; + my $stationdata = from_json($1); + $res->content =~ m~root.chartData = (.*);~; + my $leveldata = from_json($1); - $res->content =~ m~Current level: (-?[\d\.]+)m~; - $level = $1; - - $res->content =~ m~This measurement was recorded at (\d+:\d+) on (\d+)/(\d+)/(\d+)~; - $lastupdate = "$4-$3-$2T$1"; + $stationname = $stationdata->{'external_name'}; + $level = $leveldata->{values}->[-1]; + $lastupdate = $stationdata->{value_timestamps}->[-1]; print STDERR "[$station] $stationname is $level at $lastupdate\n" if $ENV{R_DEBUG}; if($ENV{R_GPLOT}) { - $res->content =~ m~Watercourse:( |\s)+([^<]+)~; - $watercourse = $2; + $watercourse = $stationdata->{'wiski_river_name'}; $watercourse =~ s~\s*$~~; $watercourse =~ s~^\s*~~; - $res->content =~ m~Site datum:( |\s)+([^<]+) m AOD~; - $datum = $2; + $datum = $stationdata->{'wiski_river_name'}; $datum =~ s~\s*$~~; $datum =~ s~^\s*~~;