Ejemplo n.º 1
0
 function listSensors($opts)
 {
     $req = new DATARequest($opts);
     $reader = $req->CreateReader();
     $groups = $reader->GetGroups();
     $grouplist = $reader->GetGroupList();
     $mask = new MASK($opts);
     $i = 0;
     foreach ($grouplist as $group => $details) {
         $itemlist[$det['gid']] = $reader->GetItemList($groups[$i], $mask);
         $i++;
     }
     foreach ($itemlist as $gid => $items) {
         if (!is_numeric($gid)) {
             foreach ($items as $key => $item) {
                 $details['groups'][$gid][$key] = array("id" => "{$item['id']}", "name" => "{$item['name']}");
             }
         }
     }
     return $details;
 }
Ejemplo n.º 2
0
 function GetDownloadDetails()
 {
     $i = 0;
     $download = $_GET['dl_id'];
     $res = $this->cache->GetDownloads($download);
     $row = mysql_fetch_assoc($res);
     $opts = array('dl_id' => '');
     foreach ($row as $key => $value) {
         $opts[$key] = $value;
     }
     if (!($size = $opts['filesize'])) {
         $size = "n/a";
     } else {
         if ($size < 1) {
             $size = "&#60;1 MB";
         } else {
             $size .= " MB";
         }
     }
     if ($opts['ctype'] == "application/x-zip-compressed") {
         $format = "zip/{$opts['format']}";
     } else {
         $format = $opts['format'];
     }
     if ($row['srctree'] != "") {
         $res = SOURCETree::Parse($row['srctree']);
         foreach ($res as $key => $grp) {
             $req = new DATARequest($grp['props']);
             $reader = $req->CreateReader();
             $itemlist[$key] = $reader->GetItemList();
         }
     } else {
         $req = new DATARequest($opts);
         $reader = $req->CreateReader();
         $grps = $reader->GetGroups();
         $glist = $reader->GetGroupList();
         $mask = new MASK($opts);
         foreach ($glist as $grp => $det) {
             $itemlist[$det['gid']] = $reader->GetItemList($grps[$i], $mask);
             $i = $i + 1;
         }
     }
     $window = $this->ParseReadableWindow($opts['window']);
     if ($opts['status'] == "ERROR") {
         $download_props['error'] = "Something went wrong while preparing data.";
     }
     if ($error = $opts['error']) {
         $download_props['error'] = $error;
     }
     $download_props['window'] = $window;
     $download_props['format'] = $format;
     $download_props['size'] = $size;
     $download_details['props'] = $download_props;
     foreach ($itemlist as $gid => $items) {
         if (!is_numeric($gid)) {
             foreach ($items as $key => $item) {
                 $download_details['groups'][$gid][$key] = array("id" => "{$item['id']}", "name" => "{$item['name']}");
             }
         }
     }
     return $download_details;
 }
Ejemplo n.º 3
0
<?php

require "../../adei.php";
$_POST['props'] = "{\"db_server\": \"autogen\", \"db_name\": \"minutely\", \"db_group\": \"default\", \"db_mask\": \"\", \"experiment\": \"0-0\", \"window\": \"-1\", \"format\": \"csv\"}";
try {
    $req = new DATARequest();
    $rdr = $req->CreateReader();
    $group = $rdr->CreateGroup();
    $group = $rdr->CreateGroup();
    $caches = $rdr->CreateCacheSet($group);
    $ivl = $caches->CreateInterval();
    $cfg = array("type" => CACHE::TYPE_AUTO, "limit" => $limit, "amount" => $limit, "precision" => $precision);
    foreach ($caches as $key => $cachewrap) {
        $cache = $cachewrap->GetCache();
        $size = $cachewrap->GetWidth();
    }
    $data = $cache->reader->GetFilteredData();
    foreach ($data as $time => $vector) {
        echo "{$time}";
        foreach ($vector as $v) {
            echo ", {$v}";
        }
        echo "\n";
    }
} catch (ADEIException $e) {
    echo "ERROR: " . $e->getInfo();
}
Ejemplo n.º 4
0
 function GetView()
 {
     global $ADEI_ID_DELIMITER;
     global $TMP_PATH;
     $req = $this->req->CreateDataRequest();
     $mapping_group = $req->GetProp("view_mapping_group", false);
     if (!$mapping_group) {
         throw new ADEIException(translate("Parameter view_mapping_group is not set"));
     }
     if ($mapping_group != "all") {
         list($server_db, $name_db, $group_db) = explode($ADEI_ID_DELIMITER, $mapping_group);
         $props_to_replace = array("db_server" => $server_db, "db_name" => $name_db, "db_group" => $group_db, "db_mask" => "");
         $req = new DATARequest(array_merge($req->props, $props_to_replace));
     }
     if ($this->object) {
         $width = $req->GetProp($this->object . "_width", $this->min_width + 20) - 20;
         if ($width < $this->min_width) {
             $width = $this->min_width;
         }
         $height = $width - 40;
     } else {
         $width = $req->GetProp("page_width", $this->min_width + 5) - 5;
         $height = $req->GetProp("page_height", $this->min_height);
         if ($width < $this->min_width) {
             $width = $this->min_width;
         }
         if ($height < $this->min_height) {
             $height = $this->min_height;
         }
     }
     $rdr = $req->CreateReader();
     $group = $rdr->CreateGroup();
     $caches = $rdr->CreateCacheSet($group, $mask);
     $myreq = $this->req->CreateDataRequest();
     $iv = $caches->CreateInterval($req, true);
     $window_size = $iv->GetWindowSize();
     $window_start = $iv->GetWindowStart();
     $window_end = $iv->GetWindowEnd();
     $rescfg = array('limit' => 1, 'resolution' => $res);
     $norm_hist_max = $req->GetProp("view_hist_norm_max", false);
     $norm_hist_srf = $req->GetProp("view_hist_norm_srf", false);
     $scale_log = $req->GetProp("view_log_scale", false);
     $mode_of_draw = $req->GetProp("view_draw_mode", false);
     $bin_from = $req->GetProp("view_bin_from", false);
     $bin_to = $req->GetProp("view_bin_to", false);
     $max_of_y = $req->GetProp("view_y_max", false);
     if (!$bin_from || $bin_from <= 0 || $bin_from == "false") {
         $bin_from = 1;
     }
     if (!isset($max_of_y) || $max_of_y < 0) {
         $max_of_y = 0;
     }
     $x_bin = array();
     $x_bin_min = array();
     $x_bin_max = array();
     $x_bin_sum = array();
     $x_axis_tick_labels = array();
     foreach ($caches as $key => $cachewrap) {
         $resolution = $cachewrap->GetResolution();
         if (!$bin_to || $bin_to <= 0 || $bin_to == "false") {
             $bin_to = $cachewrap->GetWidth();
         }
         $bins_n = $bin_to - $bin_from + 1;
         $r = $resolution->Get($iv, $width);
         $size = $resolution->GetWindowSize($r);
         if ($size > 0 && $window_size / $size > $this->max_points) {
             $new_r = $resolution->Larger($r);
             if ($new_r !== false) {
                 $r = $new_r;
             }
             $size = $resolution->GetWindowSize($r);
         }
         $rescfg['resolution'] = $r;
         $points = $cachewrap->GetIntervals($iv, $rescfg, CACHE::TRUNCATE_INTERVALS);
         $operation_info = $points->GetOperationInfo();
         $res_x = $size;
         $sum_of_vars = 0;
         $sum_of_vars_min = 0;
         $sum_of_vars_max = 0;
         $number_of_events = 0;
         $number_of_events_min = 0;
         $number_of_events_max = 0;
         foreach ($points as $t => $v) {
             for ($i = $bin_from - 1; $i < $bin_to; $i++) {
                 $bin_height = $v['mean' . $i];
                 if ($mode_of_draw == "hist_sum") {
                     $bin_height *= $v['items'];
                 }
                 $x_bin[$i - $bin_from + 1] += $bin_height;
                 $sum_of_vars += ($i + 1) * $bin_height;
                 $number_of_events += $bin_height;
                 if ($mode_of_draw == "hist_minmax") {
                     $x_bin_min[$i - $bin_from + 1] += $v['min' . $i];
                     $x_bin_max[$i - $bin_from + 1] += $v['max' . $i];
                 }
                 array_push($x_axis_tick_labels, sprintf("%d", $i + 1));
             }
         }
         if (!$x_bin) {
             throw new ADEIException(translate("No data found"));
         }
         $mean = $sum_of_vars / $number_of_events;
         $var_std = 0;
         $var_sum = 0;
         $var_bin = 0;
         $half_number_of_events = $number_of_events / 2;
         for ($i = $bin_from; $i <= $bin_to; $i++) {
             $var_std += ($i - $mean) * ($i - $mean) * $x_bin[$i - $bin_from];
             if ($var_sum < $half_number_of_events) {
                 $var_sum += $x_bin[$i - $bin_from];
                 $var_bin = $i - $bin_from;
             }
         }
         $stddev = sqrt($var_std / $number_of_events);
         $median = $var_bin + ($half_number_of_events - $var_sum + $x_bin[$var_bin + 1]) / $x_bin[$var_bin + 1];
     }
     $tmp_file = ADEI::GetTmpFile();
     $graph = new Graph($width, $height);
     $graph->SetTickDensity(TICKD_SPARSE, TICKD_SPARSE);
     $graph->img->SetMargin(55, 5, 10, 20);
     if (!$scale_log) {
         $graph->SetScale("textlin", 0, $max_of_y);
     } else {
         if (min($x_bin) >= 0) {
             $graph->SetScale("textlog");
         } else {
             throw new ADEIException(translate("The selected data contains negative values which can't be visualized on the log scale"));
         }
     }
     $graph->xaxis->SetPos("min");
     $graph->yaxis->SetPos("min");
     $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, 8);
     $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 8);
     $graph->xaxis->title->SetFont(FF_ARIAL, FS_BOLD);
     $graph->yaxis->title->SetFont(FF_ARIAL, FS_BOLD);
     if ($bins_n > 16) {
         $graph->xaxis->SetTextLabelInterval(ceil($bins_n / ceil($width / 25)));
     }
     $graph->xaxis->SetTickLabels($x_axis_tick_labels);
     $bplot = new BarPlot($x_bin);
     $bplot->SetWidth(1);
     if ($mode_of_draw == "hist_sum") {
         $bplot->SetLegend("Sum Mode");
     } else {
         $bplot->SetLegend("AVG Mode");
     }
     if ($mode_of_draw == "hist_minmax") {
         $bplot_min = new BarPlot($x_bin_min);
         $bplot_min->SetWidth(1);
         $bplot_min->SetLegend("Minimum");
         $bplot_min->SetFillColor('deepskyblue');
         $bplot_max = new BarPlot($x_bin_max);
         $bplot_max->SetWidth(1);
         $bplot_max->SetLegend("Maximum");
         $bplot_max->SetFillColor('indianred1');
     }
     if ($mode_of_draw == "hist_minmax") {
         $graph->Add($bplot_max);
     }
     $graph->Add($bplot);
     if ($mode_of_draw == "hist_minmax") {
         $graph->Add($bplot_min);
     }
     $graph->yaxis->scale->SetGrace(14);
     $graph->Stroke("{$TMP_PATH}/{$tmp_file}");
     if ($this->object) {
         $res = array(array("img" => array("id" => $tmp_file)), array("info" => array(array("title" => _("Number of Bins"), "value" => round($bins_n, 3)), array("title" => _("Mode"), "value" => array_search(max($x_bin), $x_bin) + $bin_from), array("title" => _("Mean"), "value" => round($mean, 3)), array("title" => _("Median"), "value" => round($median, 3)), array("title" => _("Value of Mode"), "value" => round(max($x_bin), 3)), array("title" => _("Integral of Hist"), "value" => round($number_of_events, 3)), array("title" => _("StdDev"), "value" => round($stddev, 3)), array("title" => _("RE"), "value" => round($stddev / $mean * 100 . "%", 3) . "%"), array("title" => _("From"), "value" => date('c', $iv->GetWindowStart())), array("title" => _("To"), "value" => date('c', $iv->GetWindowEnd())), array("title" => _("Resolution"), "value" => round($res_x, 3)))));
         return $res;
     } else {
         return array("img" => array("id" => $tmp_file));
     }
 }