source: subversion/sites/other/trapi/tagproc.pl @ 13933

Revision 13933, 1.5 KB checked in by blarson, 5 years ago (diff)

Fix tagproc to use THRESH

  • Property svn:executable set to *
Line 
1#!/usr/bin/perl
2
3use strict;
4use warnings;
5use constant VERBOSE => 0;
6use trapi;
7
8my (%nnodetags, %nnodevals, %nwaytags, %nwayvals, %nreltags, %nrelvals, %nroles);
9
10open TF, "<", "tags.z14x16384y0" or die "Could not open tags.z14x16384y0: $!";
11my ($v, $t, $vv);
12my $u = 1;
13my $ignoretags = IGNORETAGS;
14while ($_ = <TF>) {
15    chomp;
16    if (/^\t\t([^\t]*)\t(\d+)$/) {
17        my $val = $1;
18        my $c = $2;
19        $vv->{$val} = $c if ($u && $c >= THRESH);
20    } elsif (/^\t([^\t]*)\t(\d+)$/) {
21        my $tag = $1;
22        my $c = $2;
23        $u = ($tag !~ /$ignoretags/o);
24        if ($u && $c >= THRESH) {
25            $t->{$tag} = $c;
26            $vv = {};
27            $v->{$tag} = $vv;
28        }
29    } elsif (/^nodes$/) {
30        $t = \%nnodetags;
31        $v = \%nnodevals;
32    } elsif (/^ways$/) {
33        $t = \%nwaytags;
34        $v = \%nwayvals;
35    } elsif (/^relations$/) {
36        $t = \%nreltags;
37        $v = \%nrelvals;
38    } elsif (/^roles$/) {
39        $t = \%nroles;
40        $v = undef;
41    } else {
42        print STDERR "Malformed line in tags: $_";
43    }
44}
45close TF;
46
47foreach my $x (['node', \%nnodetags, \%nnodevals],
48               ['way', \%nwaytags, \%nwayvals],
49               ['relation', \%nreltags, \%nrelvals],
50               ['role', \%nroles, undef()]) {
51    my $n;
52    ($n, $t, $v) = @$x;
53    print "${n}s\n";
54    foreach my $tag (sort {$t->{$b} <=> $t->{$a} || $a cmp $b} keys %$t) {
55        print "\t$tag\t".$t->{$tag}."\n";
56        if ($v && $v->{$tag}) {
57            $vv = $v->{$tag};
58            foreach my $val (sort {$vv->{$b} <=> $vv->{$a} || $a cmp $b}
59                             keys %$vv) {
60                print "\t\t$val\t".$vv->{$val}."\n";
61            }
62        }
63    }
64}
65
66
Note: See TracBrowser for help on using the repository browser.