include_once "adodb/adodb-exceptions.inc.php"; include_once "adodb/adodb.inc.php"; $DB =& NewADOConnection("postgres://postgres:@localhost/ip_stat?persist"); function dechex1($dec) { $ret = dechex($dec); return (strlen($dec) < 2 ? "0" : "") . $ret; } function hsb($color) { if ($color > 360) { $color = 360; } $value = hsbToRgb($color, 100, 100); return dechex1($value['red']) . dechex1($value['green']) . dechex1($value['blue']); } #print "#Date\tCountryCode\tCountry\t#allocations\t#ipSpace\tratio\n"; #foreach( $DATES as $date ) $date = $argv[1]; print "function {$argv['2']}() {\n"; $max = $DB->GetOne("SELECT max(count) FROM\n\t\t\t(select sum(size) as count from ipv4_counts_country where on_date='{$date}' group by country) d"); $max = log($max, 2); # print $max; $sql = "\nselect country,name,sum(count) as count ,sum(size) as size, sum(size)/sum(count) as ratio from ipv4_counts_country i\nright join countries c on i.country=c.code2\nwhere on_date='{$date}'\ngroup by country,name\norder by size desc\n"; $res = $DB->Execute($sql); foreach ($res as $row) { #print "$date\t$row[country]\t$row[name]\t$row[count]\t$row[size]\t$row[ratio]\n"; print "encodedPolygon_{$row['country']}.setFillStyle({color:'#" . hsb(240 - 240 * log($row['size'], 2) / $max) . "',opacity:0.7});\n"; } # die; print "}\n";
$minus = $row['minus'] > $max_minus ? $max_minus : $row['minus']; # if( $plus>$max_plus ) $plus=$max_plus; # if( $minus>$max_minus ) $minus=$max_minus; if ($type == "table") { print "{$i}\t{$date1}\t{$date2}\t\"reg-{$row['region']}\"\t\"{$row['ccc']}\"\t{$plus}\t{$minus}\t" . ($plus - $minus) . "\n"; } else { if ($plus == 0) { $plus = 1; } if ($minus == 0) { $minus = 1; } #$ret_p.="$max_minus $minus ".(240-240*log($minus,2)/log($max_minus,2))."\n";//, ".(240-240*log($plus+1,2)/$max_plus)."\n"; $ret_p .= "encodedPolygon_{$row['ccc']}.setFillStyle({color:'#" . hsb(240 - 240 * log($plus, 2) / log($max_plus, 2)) . "',opacity:0.7});\n"; $ret_m .= "encodedPolygon_{$row['ccc']}.setFillStyle({color:'#" . hsb(240 - 240 * log($minus, 2) / log($max_minus, 2)) . "',opacity:0.7});\n"; $ret_t .= "encodedPolygon_{$row['ccc']}.setFillStyle({color:'#" . hsb(240 - 240 * log($plus - $minus <= 1 ? 1 : $plus - $minus, 2) / log($max_sum, 2)) . "',opacity:0.7});\n"; } $i++; // print (240-240*log($count,2)/$max)." = ".$count."\n"; # print "encodedPolygon_$row[country].setFillStyle({color:'#".hsb(240-240*log($count,2)/$max)."',opacity:0.7});\n"; } if ($type == "js") { print "function plus" . str_replace("-", "_", $date1) . "() {\n"; print $ret_p; print "}\n"; print "function minus" . str_replace("-", "_", $date1) . "() {\n"; print $ret_m; print "}\n"; print "function sum" . str_replace("-", "_", $date1) . "() {\n"; print $ret_t; print "}\n";
{ $count+=$eu[$row['sid']]['count']; $size+=$eu[$row['sid']]['size']; } */ if ($type == "table") { print "{$i}\t{$date}\t\"{$row['region']}\"\t\"{$row['country']}\"\t{$row['source']}\t{$count}\t{$size}\t" . $size / $count . "\n"; } else { if ($type == "js") { if ("{$row['country']}" == "") { continue; } #print (240-240*log($size,2)/$max_size)."\n"; #print "$size, $count, $max_size/$max_count\n"; $ret_s .= "encodedPolygon_{$row['country']}.setFillStyle({color:'#" . hsb(240 - 240 * log($size, 2) / $max_size) . "',opacity:0.7});\n"; $ret_c .= "encodedPolygon_{$row['country']}.setFillStyle({color:'#" . hsb(240 - 240 * log($count, 2) / $max_count) . "',opacity:0.7});\n"; } else { if ($type == "latex") { print "{$i}\t&\t{$row['name']}\t&\t{$row['count']}\t&\t" . number_format($row["size"]) . "\t\\tabularnewline \\hline\n"; } } } } if ($type == "js") { print "function size" . str_replace("-", "_", $date) . "() {\n"; print $ret_s; print "}\n\n"; print "function count" . str_replace("-", "_", $date) . "() {\n"; print $ret_c; print "}\n"; }