Example #1
0
<?php

// content="text/plain; charset=utf-8"
require_once 'jpgraph/jpgraph.php';
require_once 'jpgraph/jpgraph_line.php';
$ydata = array(12, 17, 22, 19, 5, 15);
$graph = new Graph(250, 170);
$graph->SetScale("textlin", 3, 35);
$graph->SetTickDensity(TICKD_DENSE);
$graph->yscale->SetAutoTicks();
$graph->title->Set('Manual scale, auto ticks');
$graph->title->SetFont(FF_FONT1, FS_BOLD);
$line = new LinePlot($ydata);
$graph->Add($line);
// Output graph
$graph->Stroke();
?>


// Size of the overall graph
$width = 350;
$height = 250;
// Create the graph and set a scale.
// These two calls are always required
$graph = new Graph(800, 600, 'auto');
$graph->SetScale("datlin", 0, $max + 10);
$graph->yaxis->scale->SetGrace(7);
$graph->img->SetMargin(50, 30, 40, 130);
$graph->SetShadow();
$graph->yaxis->title->Set("Close");
$graph->xaxis->title->Set("Date");
$graph->title->Set($var_graph);
$lplot = new LinePlot($closearray);
$graph->xaxis->SetLabelAngle(90);
$graph->SetTickDensity(TICKD_NORMAL, TICKD_SPARSE);
$graph->xaxis->SetTickLabels($datearray);
$lplot->SetFillColor('red@0.5');
$graph->Add($lplot);
$graph->Stroke();
$user = '******';
$pass = '';
$db = 'testdb';
$conn = new mysqli('localhost', $user, $pass, $db) or die("unable to connect");
//echo"great work!";
$sql = "insert into search(userName,searchValue) values('{$uname}','{$var_graph}')";
$data = mysqli_query($conn, $sql) or die;
?>
<a href="index.html" style="color:blue;font-size:30px;position:absolute;right:10px;top:50px;font-weight:bold;">back to home</a>

</body>
Example #3
0
 function GetView()
 {
     global $TMP_PATH;
     $req = $this->req->CreateDataRequest();
     $x = $req->GetProp("view_x", false);
     $y = $req->GetProp("view_y", false);
     if (!$x || !$y) {
         throw new ADEIException(translate("Parameters view_x and view_y are not set"));
     }
     list($x_gid, $x_id) = explode(":", $x);
     list($y_gid, $y_id) = explode(":", $y);
     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;
         //$req->GetProp($this->object . "_height", $this->min_height);
     } 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;
         }
     }
     /*    print_r($this);
         echo "$width $height\n";
         exit;*/
     $rdr = $req->CreateReader();
     $group = $rdr->CreateGroup();
     $caches = $rdr->CreateCacheSet($group, $mask);
     //    $iv = new INTERVAL($req->props);
     $iv = $caches->CreateInterval($req, true);
     $window_size = $iv->GetWindowSize();
     $window_start = $iv->GetWindowStart();
     $window_end = $iv->GetWindowEnd();
     $rescfg = array('limit' => $this->max_points, 'resolution' => $res);
     $gid = 0;
     $res = array();
     foreach ($caches as $key => $cachewrap) {
         if ($gid != $x_gid && $gid != $y_gid) {
             $gid++;
             continue;
         }
         $resolution = $cachewrap->GetResolution();
         $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();
         if ($gid == $x_gid) {
             $res_x = $size;
         }
         if ($gid == $y_gid) {
             $res_y = $size;
         }
         foreach ($points as $t => $v) {
             /*	    if (($t < $window_start)||(($t + $size) > $window_end)) {
             	        continue;
             	    }*/
             if ($gid == $x_gid && is_numeric($v['mean' . $x_id])) {
                 if (!is_array($res[$t])) {
                     $res[$t] = array();
                 }
                 $res[$t]['x'] = $v['mean' . $x_id];
             }
             if ($gid == $y_gid && is_numeric($v['mean' . $y_id])) {
                 if (!is_array($res[$t])) {
                     $res[$t] = array();
                 }
                 $res[$t]['y'] = $v['mean' . $y_id];
             }
         }
         $gid++;
     }
     $x = array();
     $y = array();
     foreach ($res as $val) {
         if (isset($val['x']) && isset($val['y'])) {
             array_push($x, $val['x']);
             array_push($y, $val['y']);
         }
     }
     if (!$x) {
         throw new ADEIException(translate("No data found"));
     }
     $corr = stats_stat_correlation($x, $y);
     $tmp_file = ADEI::GetTmpFile();
     $graph = new Graph($width, $height);
     if ($res_x == $res_y) {
         $title = "Resolution: {$res_x}";
     } else {
         $title = "Resolution: {$res_x}, {$res_y}";
     }
     if (!$this->object) {
         $title = "{$title}, " . date('c', $iv->GetWindowStart()) . " - " . date('c', $iv->GetWindowEnd());
     }
     $graph->title->Set($title);
     $graph->SetTickDensity(TICKD_SPARSE, TICKD_SPARSE);
     $graph->img->SetMargin(55, 5, 10, 20);
     $graph->SetScale("linlin");
     $graph->xaxis->SetPos("min");
     $graph->yaxis->SetPos("min");
     $graph->xaxis->SetLabelFormat('%3.1e');
     $graph->yaxis->SetLabelFormat('%3.1e');
     $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, 8);
     $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 8);
     $graph->yaxis->HideFirstTickLabel();
     $sp = new ScatterPlot($x, $y);
     $graph->Add($sp);
     /*
         $txt = new Text();
         $txt->SetFont(FF_ARIAL,FS_BOLD,11);
         $txt->Set(sprintf("R = %01.2f", $corr));
         $txt->SetPos(0.99,0.1,'right');
         $txt->SetBox('lightyellow');
         $graph->Add($txt); 
     */
     $graph->Stroke("{$TMP_PATH}/{$tmp_file}");
     if ($this->object) {
         return array("img" => array("id" => $tmp_file), "div" => array("xml" => "<b>Correlation</b>: " . $corr . "<br/>" . "<b>From</b>: " . date('c', $iv->GetWindowStart()) . "<br/>" . "<b>To</b>: " . date('c', $iv->GetWindowEnd()) . "<br/>"));
     } else {
         return array("img" => array("id" => $tmp_file));
     }
 }
<?php

include "../jpgraph.php";
include "../jpgraph_bar.php";
$data1y = array(12, 8, 19, 3, 10, 5);
$data2y = array(8, 2, 11, 7, 14, 4);
$data3y = array(4, 1, 9, 15, 12, 6);
$data4y = array(8, 3, 2, 1, 9, 10);
// Create the graph. These two calls are always required
$graph = new Graph(300, 315, "auto");
$graph->img->SetMargin(40, 30, 20, 40);
$graph->SetScale("textlin");
$graph->SetShadow();
$graph->SetBox();
$graph->SetTickDensity(TICKD_VERYSPARSE);
// Create the bar plots
$b1plot = new BarPlot($data1y);
$b1plot->SetFillColor("orange");
$b2plot = new BarPlot($data2y);
$b2plot->SetFillColor("blue");
$b3plot = new BarPlot($data3y);
$b3plot->SetFillColor("green");
$b4plot = new BarPlot($data4y);
$b4plot->SetFillColor("red");
// Create the accumulated bar plots
$ab1plot = new AccBarPlot(array($b1plot, $b2plot));
$ab2plot = new AccBarPlot(array($b3plot, $b4plot));
// Create the grouped bar plot
//$gbplot = new GroupBarPlot(array($ab1plot,$ab2plot));
// ...and add it to the graPH
//$graph->Add($gbplot);
Example #5
0
 function GetView()
 {
     global $TMP_PATH;
     $req = $this->req->CreateDataRequest();
     $x = $req->GetProp("view_x", false);
     if (!$x) {
         throw new ADEIException(translate("Parameter view_x is not set"));
     }
     list($x_gid, $x_id) = explode(":", $x);
     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;
         //$req->GetProp($this->object . "_height", $this->min_height);
     } 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' => $this->max_points, 'resolution' => $res);
     $gid = 0;
     $res = array();
     foreach ($caches as $key => $cachewrap) {
         if ($gid != $x_gid) {
             $gid++;
             continue;
         }
         $resolution = $cachewrap->GetResolution();
         $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();
         if ($gid == $x_gid) {
             $res_x = $size;
         }
         foreach ($points as $t => $v) {
             /*	    if (($t < $window_start)||(($t + $size) > $window_end)) {
               	        continue;
               	    }*/
             if ($gid == $x_gid && is_numeric($v['mean' . $x_id])) {
                 if (!is_array($res[$t])) {
                     $res[$t] = array();
                 }
                 $res[$t]['x'] = $v['mean' . $x_id];
                 $res[$t]['t'] = $t;
             }
         }
         $gid++;
     }
     $x = array();
     $t = array();
     foreach ($res as $val) {
         if (isset($val['x'])) {
             array_push($x, $val['x']);
         }
     }
     if (!$x) {
         throw new ADEIException(translate("No data found"));
     }
     $bins = $req->GetProp("view_bins", 0);
     if (!$bins) {
         $bins = ceil(sqrt(sizeof($x)));
     }
     $norm = $req->GetProp("view_hist_norm", 0);
     $fit = $req->GetProp("view_hist_fit", 0);
     $min = min($x);
     $max = max($x);
     $step = ($max - $min) / $bins;
     $coef = $norm ? 1 / ($step * sizeof($x)) : 1;
     $h = array_fill(0, $bins, 0);
     foreach ($x as $val) {
         $idx = ($val - $min) / $step;
         if ($idx == $bins) {
             $idx--;
         }
         $h[$idx] += $coef;
     }
     for ($i = 0; $i < $bins; $i++) {
         array_push($t, sprintf("%3.1e", $min + $i * $step));
     }
     $tmp_file = ADEI::GetTmpFile();
     $graph = new Graph($width, $height);
     /*        $title = "Resolution: $res_x";
     
             $graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
             $graph->title->Set($title);*/
     $graph->SetTickDensity(TICKD_SPARSE, TICKD_SPARSE);
     $graph->img->SetMargin(55, 5, 10, 20);
     $graph->SetScale("textlin");
     $graph->xaxis->SetPos("min");
     $graph->yaxis->SetPos("min");
     //        $graph->xaxis->SetLabelFormat('%3.1e');
     //        if (abs(max($h))<9999 && (abs(min($h))>0.01)) $graph->yaxis->SetLabelFormat('%01.2f');
     //        else $graph->yaxis->SetLabelFormat('%3.1e');
     $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, 8);
     $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 8);
     //        $graph->yaxis->HideFirstTickLabel();
     $graph->xaxis->title->SetFont(FF_ARIAL, FS_BOLD);
     $graph->yaxis->title->SetFont(FF_ARIAL, FS_BOLD);
     //$graph->xaxis->title->Set($arr[0]['select']['options'][$x_idg]['label']);
     if ($bins > 8) {
         $graph->xaxis->SetTextLabelInterval(ceil($bins / 6));
     }
     $graph->xaxis->SetTickLabels($t);
     $bplot = new BarPlot($h);
     $bplot->SetWidth(1);
     $graph->Add($bplot);
     $graph->yaxis->scale->SetGrace(14);
     $mean = array_sum($x) / sizeof($x);
     $stddev = stats_standard_deviation($x);
     $var = stats_variance($x);
     $sigma = sqrt($var);
     $re = 100 * $sigma / $mean;
     sort($x);
     if (sizeof($x) % 2) {
         $median = $x[(sizeof($x) - 1) / 2];
     } else {
         $median = ($x[sizeof($x) / 2 - 1] + $x[sizeof($x) / 2]) / 2;
     }
     // Gaussian fitting
     if ($fit) {
         $ydata = array();
         $xdata = array();
         if ($norm) {
             $coef = 1 / sqrt(2 * pi() * $var);
         } else {
             $coef = sizeof($x) * $step / sqrt(2 * pi() * $var);
         }
         $xi2 = 0;
         for ($i = 0; $i <= $bins; $i++) {
             $offset = $i * $step;
             $y = $coef * exp(-pow($min + $offset - $mean, 2) / (2 * $var));
             array_push($xdata, $i);
             array_push($ydata, $y);
             $xi2 += pow($y - $h[$i], 2) / $y;
         }
         $xi2 /= $bins;
         $lineplot = new LinePlot($ydata, $xdata);
         $graph->Add($lineplot);
     }
     $char_sigma = SymChar::Get('sigma', false);
     /*
             $txt = new Text();
             $txt->SetFont(FF_ARIAL,FS_BOLD,10);
             if( $req->GetProp("view_GFit", false) == "true")
                 $txt->Set("m=$mean\n$char_sigma=$sigma\nRE=$RE%\nx^2=$xi2");//\ns=$stdDev
             else
                 $txt->Set("m=$mean\n$char_sigma=$sigma\nRE=$RE%");//\ns=$stdDev
             $txt->ParagraphAlign('right');
             $txt->SetPos(0.96,0.1,'right');
             //$txt->SetBox('white');
             $graph->Add($txt);
     */
     $graph->Stroke("{$TMP_PATH}/{$tmp_file}");
     if ($this->object) {
         $res = array(array("img" => array("id" => $tmp_file)), array("info" => array(array("title" => _("From"), "value" => date('c', $iv->GetWindowStart())), array("title" => _("To"), "value" => date('c', $iv->GetWindowEnd())), array("title" => _("Resolution"), "value" => $res_x), array("title" => _("Bins"), "value" => $bins), array("title" => _("First Bin"), "value" => $min), array("title" => _("Last Bin"), "value" => $min + $bins * $step), array("title" => _("Mean"), "value" => $mean), array("title" => _("Median"), "value" => $median), array("title" => _("StdDev"), "value" => $stddev), array("title" => _("Sigma"), "value" => $sigma), array("title" => _("RE"), "value" => $re . "%"))));
         if ($fit) {
             array_push($res[1]["info"], array("title" => _("xi2"), "value" => $xi2));
         }
         return $res;
     } else {
         return array("img" => array("id" => $tmp_file));
     }
 }
Example #6
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));
     }
 }