You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction

The PingER Monitoring Node Count Intensity Maps present a heat map of the number of PingER monitoring nodes spread over the world. These charts were generated using the information maintained by the PingER database. The same information may be viewed in the form of an overlay over Google Maps.

The charts were generated using the Google Visualization API for Intensity Maps.

An example of the charts is shown below:

PingER Monitoring Node Count
(World Map)

Interpretation

The numerical values labeling each chart (shown at the bottom) define the minimum (left) and the maximum (right) number of nodes that a country may host. For example USA hosts 9 monitoring nodes. Details of these monitoring sites may also be obtained from here. The magnified versions of the map presents the same information by zooming-in over regions (as defined by the Google Visualization API).

Implementation Details

HTML output

To create the intensity maps, the data must be loaded in a data structure (as explained by the Google Visualization API and) shown below:

 <html>
  <head>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["intensitymap"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', '', 'Country');
        data.addColumn('number', 'Node Count', 'a')
    
        data.addRows(3);

        data.setValue(0, 0, "UY");
        data.setValue(0, 1, 0);

        data.setValue(1, 0, "US");
        data.setValue(1, 1, 9);

        data.setValue(2, 0, "GB");
        data.setValue(2, 1, 2);


        var chart = new google.visualization.IntensityMap(document.getElementById('chart_div'));
        chart.draw(data, {});
      }
    </script>
  </head>

  <body>
    <div id="chart_div"></div>
  </body>
</html>

The data must comply with the formatting requirements (as stated by Google Visualization API and copied below):

  • The first column should be a string, and contain country ISO 3166-1-alpha-2 codes.
  • Any number of columns can follow, all must be numeric. 

Relevant files

Following are the files involved in the process of generating the HTML page:

Application:

File path: /afs/slac/package/pinger/intesity-map/create-pinger-node-count-intensity-map.pl

The ISO 3166-1-alpha-2 codes are stored locally at:

File path: /afs/slac/package/pinger/intensity-map/country-codes.csv
 
File format:
#Country,code
Pakistan, PK
Korea  Rep, KR
United States,US

The PingER database file listing the up-to-date statistics for the monitoring nodes is located at:

File path: /afs/slac/package/pinger/nodes.cf
 
Example entry:
...
"ns.bnl.gov" => [
    "130.199.128.14",
    "bnl.gov",
    "GOV.BNL.N2",
    "Brookhaven National Laboratory",
    "Upton, NY",
    "United States",
    "North America",
    "40.76 -72.90",
    "D",
    "NOT-SET",
    "NOT-SET",
    "NOT-SET",
    "",
    "",
    "IUPAP PPDG ",
    "ccjsun.riken.go.jp "
  ],
...

Implementation

  • No labels