aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2014-11-07 15:29:25 +0000
committerMatthew Somerville <matthew@mysociety.org>2014-11-19 14:19:06 +0000
commit55dbf51f98b523f41c83959875295853e1457dcf (patch)
treebd87d80aea045e3ff0ddea7414cb13ceec19b8c9 /bin
parenta8f45b97bd0b91f714ff77fa9d3fbdf0e6981a15 (diff)
[FiksGataMi] Add two testing scripts for roads.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/fiksgatami/showroadinfo35
-rwxr-xr-xbin/fiksgatami/showroadstats54
2 files changed, 89 insertions, 0 deletions
diff --git a/bin/fiksgatami/showroadinfo b/bin/fiksgatami/showroadinfo
new file mode 100755
index 000000000..658fca01c
--- /dev/null
+++ b/bin/fiksgatami/showroadinfo
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use FixMyStreet::App;
+use FixMyStreet::Geocode::OSM;
+use Data::Dumper;
+
+FixMyStreet::App->model('DB::Problem')->send_reports();
+
+my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker('fiksgatami')->new();
+
+sub isRoadOperator {
+ my ($latitude, $longitude, $operatorname) = @_;
+ my $osmtags = FixMyStreet::Geocode::OSM::get_nearest_road_tags(
+ $cobrand, $latitude, $longitude);
+ print STDERR Dumper($osmtags);
+ my $operator = $osmtags->{operator} || $osmtags->{operatorguess};
+ if ($operator) {
+ my ($name, $ref) = ('','');
+ $name = " named $osmtags->{name}" if exists $osmtags->{name};
+ $ref = " ($osmtags->{ref})" if exists $osmtags->{ref};
+ print STDERR "Claiming operator $operator for way$name$ref\n";
+ return ($operator eq $operatorname);
+ }
+ return undef;
+}
+
+my $latitude = $ARGV[0] || 63.37638;
+my $longitude = $ARGV[1] || 10.37595;
+
+unless (isRoadOperator($latitude, $longitude, "Statens vegvesen")) {
+ print STDERR "Operator is not Statens vegvesen\n";
+}
diff --git a/bin/fiksgatami/showroadstats b/bin/fiksgatami/showroadstats
new file mode 100755
index 000000000..83c3c4310
--- /dev/null
+++ b/bin/fiksgatami/showroadstats
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use FixMyStreet::App;
+use FixMyStreet::Geocode::OSM;
+
+my @reports = FixMyStreet::App->model('DB::Problem')->search({
+ state => [ FixMyStreet::DB::Result::Problem->visible_states() ],
+}, {
+ rows => 40,
+})->all;
+
+my (%namecount, %refcount, %operatorcount);
+my $cobrand;
+my $cobrand_data;
+my $total = 0;
+$| = 1;
+foreach my $row (@reports) {
+ print ".";
+ $total++;
+ my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker($row->cobrand)->new();
+ my $osmtags = FixMyStreet::Geocode::OSM::get_nearest_road_tags($cobrand, $row->latitude, $row->longitude);
+ if (exists $osmtags->{name}) {
+ $namecount{$osmtags->{name}}++;
+ }
+ if (exists $osmtags->{ref}) {
+ $refcount{$osmtags->{ref}}++;
+ }
+ my $operator = $osmtags->{operator} || $osmtags->{operatorguess};
+ if ($operator) {
+ $operatorcount{$operator}++;
+ }
+ sleep 5;
+}
+print "\n";
+print_stats();
+
+sub print_stats {
+ print "Names:\n";
+ for my $name (sort keys %namecount) {
+ printf("%3d %s\n", $namecount{$name}, $name) if $namecount{$name} > 1;
+ }
+ print "Refs:\n";
+ for my $ref (sort keys %refcount) {
+ printf("%3d %s\n", $refcount{$ref}, $ref) if $refcount{$ref} > 1;
+ }
+ print "Operators:\n";
+ for my $operator (sort keys %operatorcount) {
+ printf("%3d %s\n", $operatorcount{$operator}, $operator);
+ }
+ print "Total $total\n";
+}