public static function getPLConvertedValueByChannel($dateDataArr, $channelsArray)
 {
     //ArrStructure {"dated":xxxx,"values":[22,33,44]}
     $mainArray = array();
     $channelNamesArr = array();
     foreach ($channelsArray as $chKey => $chUnit) {
         array_push($channelNamesArr, $chKey);
     }
     foreach ($dateDataArr as $dateData) {
         $arrItem = new ArrayObject();
         $arrItem['dated'] = $dateData['dated'];
         $arrItemValuesOnly = array();
         foreach ($dateData['values'] as $key => $value) {
             $plValue = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $value);
             array_push($arrItemValuesOnly, $plValue);
         }
         $arrItem['values'] = $arrItemValuesOnly;
         array_push($mainArray, $arrItem);
     }
     return $mainArray;
     $arrObj = new ArrayObject($rows);
     $it = $arrObj->getIterator();
     $WQDChannelsInfo = array();
     $dateArr = array();
     $valArr = array();
     $jsonArry = array();
     while ($it->valid()) {
         $key = $it->key();
         $value = $it->current();
         $date = new DateTime($value[0]);
         $dateArr[$key] = "'" . $date->format("d-m H:i") . "'";
         if ($isConvertPL == true) {
             $valArr[$key] = ConvertorUtils::getPrescribedValue($chName, $value[1]);
         } else {
             $valArr[$key] = $value[1];
         }
         $it->next();
     }
     $jsondataDate = json_encode($dateArr);
     $josnDataValue = json_encode($valArr);
     $jsondataDate = str_replace("\"", "", $jsondataDate);
     $josnDataValue = str_replace("\"", "", $josnDataValue);
     $jsonArry[0] = $jsondataDate;
     $jsonArry[1] = $josnDataValue;
     return $jsonArry;
 }
 private static function getFinalDataByValueType($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNamesArray, $valueType, $isAverage, $stationType)
 {
     if ($isAverage == true) {
         $dfinal = self::getAverateDataByTimeInterval($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNamesArray, $valueType);
         return $dfinal;
     }
     if (($stationType = "stack" || ($stationType = "effluent")) && $isAvarage != true) {
         $dfinal = self::getStackFinalData($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNameArray, $valueType, $stationType);
         return $dfinal;
     }
     $dateFormat = "d-m-Y H:i";
     if ($stationType == "stack" || $stationType == "effluent") {
         $dateFormat = "d-m-Y H:i:s";
     }
     $dataFinal = array();
     foreach ($dateSlices as $dateSlice) {
         $dateSliceData = array();
         foreach ($folSeqArray as $folSeq) {
             $dataArray = $folChannelDataArray[$folSeq];
             $dateSliceLong = strtotime($dateSlice);
             $dateSliceDataArray = $dataArray[$dateSliceLong];
             $channelNamesArr = $folChannelsNamesArray[$folSeq];
             if ($dateSliceDataArray != null) {
                 foreach ($dateSliceDataArray['channelValue'] as $key => $eachdata) {
                     $eachDataPU = "";
                     if ($valueType == "zero" && $dateSliceDataArray['channelStatuses'][$key] == 66) {
                         $eachDataPU = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $eachdata);
                     } else {
                         if ($valueType == "span" && $dateSliceDataArray['channelStatuses'][$key] == 67) {
                             $eachDataPU = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $eachdata);
                         } else {
                             if ($valueType == "normal" && ($dateSliceDataArray['channelStatuses'][$key] == 128 || $dateSliceDataArray['channelStatuses'][$key] == 129)) {
                                 $eachDataPU = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $eachdata);
                             }
                         }
                     }
                     array_push($dateSliceData, $eachDataPU);
                 }
             }
         }
         $dateSliceDataClean = array_filter($dateSliceData, function ($value) {
             return $value != "";
         });
         if (count($dateSliceDataClean) > 0) {
             $dat = new DateTime($dateSlice);
             $datStr = $dat->format($dateFormat);
             $dataFinal[$datStr] = $dateSliceData;
         }
     }
     //dateFinal is date as key and array of channel values
     return $dataFinal;
 }
Beispiel #3
0
 public static function exportCSV($rows, $channelNos, $folderName, $isPLimits, $ChannelsInfo)
 {
     $channelNosArr = explode(",", $channelNos);
     $objPHPExcel = new PHPExcel();
     $rowNo = 1;
     $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowNo, 'Date & Time');
     for ($i = 0, $l = count($channelNosArr); $i < $l; ++$i) {
         $alphabet = self::num_to_letter($i + 2);
         $channelName = self::getChannelName($ChannelsInfo, $channelNosArr[$i]);
         $objPHPExcel->getActiveSheet()->setCellValue($alphabet . $rowNo, $channelName);
     }
     $rowNo++;
     foreach ($rows as $item) {
         $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowNo, $item[0]);
         for ($i = 0, $l = count($channelNosArr); $i < $l; ++$i) {
             $alphabet = self::num_to_letter($i + 2);
             $chValue = $item['ch' . $channelNosArr[$i] . 'value'];
             $channelName = self::getChannelName($ChannelsInfo, $channelNosArr[$i]);
             if ($isPLimits == 1) {
                 $chValue = ConvertorUtils::getPrescribedValue($channelName, $chValue);
                 $unit = ConvertorUtils::getPrescribedUnit($channelName);
             }
             $objPHPExcel->getActiveSheet()->setCellValue($alphabet . $rowNo, $chValue);
         }
         $rowNo++;
     }
     $dateTime = new DateTime();
     $fileName = "CSVFiles/" . $folderName . "_" . $dateTime->format("Y-m-d_H-i-s") . ".csv";
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
     $path = $ConstantsArray['dbServerUrl'] . $fileName;
     $objWriter->save($path);
     if (file_exists($path)) {
         header("Content-Type: application/download", false);
         header("Content-Disposition: attachment; filename=" . $fileName, false);
         header("Content-Length: " . filesize($fileName));
         $fp = fopen($path, "r");
         fpassthru($fp);
     }
 }
    
<?php 
if ($dailyAverageArray != null) {
    $arrKeys = array_keys($dailyAverageArray);
    //looping over foldernames
    foreach ($arrKeys as $key) {
        if ($key != null) {
            echo "<div style='float:left;margin-left:15px;border:solid thin grey;padding:12px;background:white'>";
            echo "<b style='padding:6px 12px 6px 12px' class='ui-widget-header'>Average Data for " . $key . "</b>";
            echo "<ul>";
            $avrArray = $dailyAverageArray[$key];
            $totalAverages = 0;
            foreach ($avrArray as $avr) {
                $val = $avr[1];
                if (ConvertorUtils::getPrescribedValue($channelName, $val) != null) {
                    $val = ConvertorUtils::getPrescribedValue($channelName, $val);
                }
                echo "<li>" . $avr[0] . " - " . round($val, 2) . " " . htmlentities($channelUnit) . "</li>";
                $totalAverages = $totalAverages + round($val, 2);
            }
            echo "</ul>";
            echo "</div>";
        }
    }
    //end of loop over various folders
}
//end of condition
?>
   
            
            
Beispiel #5
0
 private function processChannelNumbersToParameters($dataArray, $isConvertUnits)
 {
     //method will set channelnames and units
     $CCDS = ChannelConfigurationDataStore::getInstance();
     $processedData = new ArrayObject();
     foreach ($dataArray as $data) {
         $processedDataItem = new ArrayObject();
         $processedDataItem['folderSeq'] = $data['folderSeq'];
         $processedDataItem['folderName'] = $data['folderName'];
         $processedDataItem['dated'] = $data['dated'];
         $channelNameWiseData = new ArrayObject();
         $channelsInfo = $CCDS->FindByFolder($data['folderSeq']);
         $channelsNumberWiseData = $data['channelsInfo'];
         foreach ($channelsInfo as $channel) {
             $chNo = $channel->getChannelNumber();
             $chName = $channel->getChannelName();
             $chUnit = $channel->getChannelUnit();
             if ($isConvertUnits == 1) {
                 $chNoData = $channelsNumberWiseData['ch' . $chNo . 'value'];
                 $presValue = ConvertorUtils::getPrescribedValue($chName, $chNoData);
                 $chConvertedUnitVal = ConvertorUtils::getPrescribedUnit($chName);
                 if ($chConvertedUnitVal == null) {
                     $chConvertedUnitVal = $chUnit;
                 }
                 $presUnit = ConvertorUtils::getUTF8Encoded($chConvertedUnitVal);
                 if ($presValue == null) {
                     $channelNameWiseData[$chName] = 'no data';
                 } else {
                     $channelNameWiseData[$chName] = $presValue . ' ' . $presUnit;
                 }
             } else {
                 $unitVal = $unitName[$chName];
                 $channelNameWiseData["ch" . $chNo . "unit"] = ConvertorUtils::getUTF8Encoded($unitVal);
             }
         }
         $processedDataItem['data'] = $channelNameWiseData;
         $processedData[] = $processedDataItem;
     }
     return $processedData;
 }
 private static function getPLValue($valueType, $chStatus, $chName, $data)
 {
     $eachDataPU = "";
     if ($valueType == "zero" && $chStatus == 66) {
         $eachDataPU = ConvertorUtils::getPrescribedValue($chName, $data);
     } else {
         if ($valueType == "span" && $chStatus == 67) {
             $eachDataPU = ConvertorUtils::getPrescribedValue($chName, $data);
         } else {
             if ($valueType == "normal") {
                 if ($chStatus == 128 || $chStatus == 129) {
                     $eachDataPU = ConvertorUtils::getPrescribedValue($chName, $data);
                 } else {
                     if ($chStatus == 0 || $data == 0) {
                         $eachDataPU = 0;
                     }
                 }
             }
         }
     }
     if (is_string($data) && $data == StringUtils::$exemptedString) {
         $eachDataPU = StringUtils::$exemptedString;
     }
     return $eachDataPU;
 }
    $chNo = $channel->getChannelNumber();
    $chName = $channel->getChannelName();
    $chUnit = $channel->getChannelUnit();
    $chData = $channelsData['ch' . $chNo . 'value'];
    if ((double) $chData <= 0 && $chName != 'Vertical Wind Speed') {
        $chData = "n.o";
    }
    if ((double) $chData == 985 && ($chName == 'PM10' || $chName == 'PM2.5')) {
        $chData = "n.o";
    }
    $channelsData["ch" . $chNo . "value"] = ConvertorUtils::getPrescribedValue($chName, $chData);
    $chConvertedUnitVal = ConvertorUtils::getPrescribedUnit($chName);
    if ($chConvertedUnitVal != "") {
        $chUnit = $chConvertedUnitVal;
    }
    $chUnit = ConvertorUtils::getUTF8Encoded($chUnit);
    $channelsData["ch" . $chNo . "unit"] = $chUnit;
}
$WQDInfo['channelsInfo'] = $channelsData;
$str = '<table><tr><td valign="top">';
$str .= '<table class="mapDataInfoTable"><tr><td class="ui-state-active">Company Name</td><td>' . $folder->getIndustryName() . '</td></tr>';
$str .= ' <tr><td class="ui-state-active">Location</td><td>' . $folder->getCity() . ", " . $folder->getState() . '</td></tr>';
$str .= ' <tr><td class="ui-state-active">Station</td><td>' . $folder->getStationName() . '</td></tr>';
$str .= ' <tr><td class="ui-state-active">Industry Type</td><td>' . $folder->getCategory() . '</tr>';
$str .= ' <tr><td class="ui-state-active">Longitude</td><td>' . $folderMapInfo['longitude'] . '</td></tr>';
$str .= ' <tr><td class="ui-state-active">Latitude</td><td>' . $folderMapInfo['latitude'] . '</td></tr>';
$dat = new DateTime($WQDInfo['dated']);
$datStr = $dat->format("d-m-Y H:i");
$str .= ' <tr><td class="ui-state-active">Last Update On</td><td>' . $datStr . '</td></tr>';
$str .= ' <tr><td class="ui-state-active">Date of Station Establishment</td><td>' . $folderMapInfo['dateOfEstablishment'] . '</td></tr>';
$str .= ' <tr><td class="ui-state-active">Data from which data is available</td><td>' . $folderMapInfo['dateOfAvailability'] . '</td></tr>';
Beispiel #8
0
$fromDate = new DateTime($fromDate);
$fromDate = $fromDate->format("Y/m/d  H:i:s");
$toDateStr = $toDate->format("Y/m/d  H:i:s");
$WQDS = WQDDataDataStore::getInstance();
$arr = $WQDS->getChannel($fromDate, $toDateStr, $folderSeq, $channelNumber, "1hrs");
$jsonData = $WQDS->getReadingJsonFromArrayWithPrescribedLimits($arr, $channelName, $isPL);
$folder = FolderDataStore::getInstance()->FindBySeq($folderSeq);
$locationSeq = $folder->getLocationSeq();
if ($_SESSION["userlogged"]["locSeq"] != $locationSeq) {
    header("location: index.php?err=true&locSeq=" . $locationSeq);
    die;
}
$location = LocationDataStore::getInstance()->FindBySeq($locationSeq);
if ($isPL == 1) {
    if (ConvertorUtils::getPrescribedUnit($channelName) != null) {
        $channelUnit = ConvertorUtils::getPrescribedUnit($channelName);
    }
}
?>

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Channel Values Chart</title>
        
        
        <!-- 1. Add these JavaScript inclusions in the head of your page -->
        <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
        <script type="text/javascript" src="js/highcharts.js"></script>
        
 $repStr .= "                  mg/m³µg/m³ µg/m³ µg/m³ µg/m³µg/m³ µg/m³ µg/m³ µg/m³ µg/m³\r\n";
 $matRepStr = "                   PM2.5  PM10     AT    RH    WS     WD   VWS    BP     SR\r\n";
 $matRepStr .= "                   µg/m³ µg/m³     °C     %   m/s    deg   m/s  mmHg   W/m²\r\n";
 foreach ($dataRows as $row) {
     $dated = new DateTime($row['wqdfiledatadated']);
     $repStr .= "   " . $dated->format("d/m/y H:i");
     $matRepStr .= "" . $dated->format("d/m/Y H:i");
     foreach ($channelConfigs as $channelConfiguration) {
         $chNo = $channelConfiguration->getChannelNumber();
         $chUnit = $channelConfiguration->getChannelUnit();
         $chName = $channelConfiguration->getChannelName();
         $chStatus = $row['ch' . $chNo . 'status'];
         $chValue = "";
         if ($chStatus == 128 || $chStatus == 129) {
             $chValue = $row['ch' . $chNo . 'value'];
             $chValue = ConvertorUtils::getPrescribedValue($chName, $chValue);
         }
         if (strpos($chValue, '.') !== false) {
             $chValue = number_format($chValue, 1, ".", "");
         }
         if (in_array($chName, $roundingNoDecimalChannels)) {
             $chValue = round($chValue, 0);
         }
         $chValueLength = strlen($chValue);
         $spacesToAdd = 0;
         if (array_key_exists($chName, $repColSize)) {
             $spacesToAdd = $repColSize[$chName] - $chValueLength + 1;
             for ($i = 0; $i < $spacesToAdd; $i++) {
                 $repStr .= " ";
             }
             $repStr .= $chValue;
require_once $ConstantsArray['dbServerUrl'] . "/DataStoreMgr/ChannelConfigurationDataStore.php";
if (empty($_GET['folSeq'])) {
    die;
}
$folderSeq = $_GET['folSeq'];
$isConvertUnits = $_GET['isConvertUnits'];
$WQDDataDS = WQDDataDataStore::getInstance();
$WQDInfo = $WQDDataDS->getChannelsLatestInfo($folderSeq);
$CCDS = ChannelConfigurationDataStore::getInstance();
$channelsDetails = $CCDS->FindByFolder($folderSeq);
$channelsData = $WQDInfo['channelsInfo'];
$unitName = new ArrayObject();
foreach ($channelsDetails as $channel) {
    $unitName[$channel->getChannelName()] = $channel->getChannelUnit();
}
foreach ($channelsDetails as $channel) {
    $chNo = $channel->getChannelNumber();
    $chName = $channel->getChannelName();
    if ($isConvertUnits == 1) {
        $chData = $channelsData['ch' . $chNo . 'value'];
        $channelsData["ch" . $chNo . "value"] = ConvertorUtils::getPrescribedValue($chName, $chData);
        $chConvertedUnitVal = ConvertorUtils::getPrescribedUnit($chName);
        $channelsData["ch" . $chNo . "unit"] = ConvertorUtils::getUTF8Encoded($chConvertedUnitVal);
    } else {
        $unitVal = $unitName[$chName];
        $channelsData["ch" . $chNo . "unit"] = ConvertorUtils::getUTF8Encoded($unitVal);
    }
}
$WQDInfo['channelsInfo'] = $channelsData;
//loop over $channelsData and make conversions as per conversion table;
echo json_encode($WQDInfo);