private function getLatestInfo($locSeq) { $folders = FolderDataStore::getInstance()->FindByLocation($locSeq); $WQD = WQDDataDataStore::getInstance(); $channelInfo = new ArrayObject(); foreach ($folders as $folder) { $cifo = $WQD->getChannelsLatestInfo($folder->getSeq()); $cifo['folderSeq'] = $folder->getSeq(); $cifo['folderName'] = $folder->getFolderName(); $channelInfo[$folder->getSeq()] = $cifo; } return $channelInfo; }
public function Save(HighValueRule $highValueRule) { try { $SQL = self::$INSERT; if ($highValueRule->getSeq() != null && $highValueRule->getSeq() != "" && $highValueRule->getSeq() > 0) { $SQL = self::$UPDATE; } $conn = self::$db->getConnection(); $stmt = $conn->prepare($SQL); $stmt->bindValue(':folderseq', $highValueRule->getFolderSeq()); $stmt->bindValue(':email', $highValueRule->getEmail()); $stmt->bindValue(':mobile', $highValueRule->getMobile()); $stmt->bindValue(':parameterchannelno', $highValueRule->getParameter()); $stmt->bindValue(':highvalue', $highValueRule->getHighValue()); $stmt->bindValue(':frequency', $highValueRule->getFrequency()); $isActive = 0; if ($highValueRule->getIsActive() == "true" || $highValueRule->getIsActive() == 1) { $isActive = 1; } $stmt->bindValue(':isactive', $isActive); $stmt->bindValue(':rulehits', $highValueRule->getRuleHits()); $type = $highValueRule->getStationType(); $maxSeq = $highValueRule->getLastRuleHitFileDataSeq(); $seq = $highValueRule->getSeq(); if (empty($seq)) { if ($type == "stack" || $type == "effluent") { $wqdsds = WQDStackDataStore::getInstance(); $maxSeq = $wqdsds->getMaxSeq(); } else { $WQDDS = WQDDataDataStore::getInstance(); $maxSeq = $WQDDS->getMaxSeq(); } } $highValueRule->setLastRuleHitFileDataSeq($maxSeq); //$stmt->bindValue(':lastrulehitwqdfiledataseq',$maxSeq); $stmt->bindValue(':lastrulehitwqdfiledataseq', $highValueRule->getLastRuleHitFileDataSeq()); if ($SQL == self::$UPDATE) { $stmt->bindValue(':seq', $highValueRule->getSeq()); } else { $stmt->bindValue(':rulestartwqdfiledataseq', $maxSeq); } $stmt->execute(); $error = $stmt->errorInfo(); if ($error[2] != "") { throw new Exception($error[2]); } } catch (Exception $e) { $logger = Logger::getLogger($ConstantsArray["logger"]); $logger->error("Error During Save High Value Rule : - " . $e->getMessage()); } }
private function getDataJSON($fromDate, $toDate, $folSeq, $timeInterval, $channelNoArr, $periodType) { $CCDS = ChannelConfigurationDataStore::getInstance(); $ChannelsInfo = $CCDS->FindByFolderAndChannelNos($folSeq, $channelNoArr); $chArr = new ArrayObject(); $chNumbersArr = array(); foreach ($ChannelsInfo as $channel) { $channelUnit = $channel->getChannelUnit(); $channelName = $channel->getChannelName(); if (ConvertorUtils::getPrescribedUnit($channelName) != null) { $channelUnit = ConvertorUtils::getPrescribedUnit($channelName); } $channelUnit = mb_check_encoding($channelUnit, 'UTF-8') ? $channelUnit : utf8_encode($channelUnit); $chArr[$channelName] = $channelUnit; array_push($chNumbersArr, $channel->getChannelNumber()); } $jsonData['channels'] = $chArr; $WQDS = WQDDataDataStore::getInstance(); $allDatesData = array(); if ($periodType == "recent") { $latestInfo = $WQDS->getChannelsLatestInfo($folSeq); $channelData = array(); $channelData['dated'] = $latestInfo['formatedDated']; $chValues = array(); foreach ($chNumbersArr as $chNumber) { array_push($chValues, (double) $latestInfo['channelsInfo']['ch' . $chNumber . 'value']); } $channelData['values'] = $chValues; array_push($allDatesData, $channelData); } else { $channelsArray = $WQDS->getChannels($fromDate, $toDate, $folSeq, $channelNoArr, $timeInterval); foreach ($channelsArray as $channels) { $channelData = array(); $channelData['dated'] = $channels['wqdfiledatadated']; $chValues = array(); $cnt = count($channels) / 2; // divided by 2 becos array produces both channelname and int values for ($i = 1; $i < $cnt; $i++) { array_push($chValues, (double) $channels[$i]); } $channelData['values'] = $chValues; array_push($allDatesData, $channelData); } } $allDatesData = self::getPLConvertedValueByChannel($allDatesData, $chArr); $jsonData['data'] = $allDatesData; return $jsonData; }
public function Save(WQDFile $wqdFile, $filePath) { $SQL = self::$INSERT; $WDD = WQDDataDataStore::getInstance(); $wqdataArr = array(); $conn = self::$db->getConnection(); $stmt = $conn->prepare($SQL); $stmt->bindValue(':date', $wqdFile->getFiledate()); $stmt->bindValue(':name', $wqdFile->getName()); $stmt->bindValue(':folderseq', $wqdFile->getFolderSeq()); $stmt->bindValue(':locationseq', $wqdFile->getLocationSeq()); try { $stmt->execute(); $err = $stmt->errorInfo(); $wqdataArr = $wqdFile->getData(); $seq = self::$db->getLastInsertedId(); $WDD->SaveFileData($wqdataArr, $seq); } catch (Exception $e) { return $e->getMessage(); } $error = $stmt->errorInfo(); }
private static function getAverateDataByTimeInterval($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNamesArray, $valueType) { $dataFinal = array(); $WQDDataDS = WQDDataDataStore::getInstance(); foreach ($folSeqArray as $folSeq) { $dataArray = $folChannelDataArray[$folSeq]; $dataFinal = $WQDDataDS::getAverageDataByDataArrayDataSlices($timeBase, $dataArray, $dateSlices, $folChannelsNamesArray[$folSeq], $valueType, $dataFinal); } return $dataFinal; }
require_once $ConstantsArray['dbServerUrl'] . "Utils/ConvertorUtils.php"; require_once $ConstantsArray['dbServerUrl'] . "Utils/StringUtils.php"; $folSeqs = $_GET["folSeq"]; $folSeqArray = explode(",", $folSeqs); $fromDate = new DateTime($_GET["fromDate"]); $toDate = new DateTime($_GET["toDate"]); $toDate->setTime(23, 59, 59); $chSeq = $_GET["chSeq"]; $CCDS = ChannelConfigurationDataStore::getInstance(); $channel = $CCDS->FindBySeq($chSeq); $channelNumber = $channel->getChannelNumber(); $channelName = $channel->getChannelName(); $channelUnit = $channel->getChannelUnit(); $fromDate = $fromDate->format("Y/m/d H:i:s"); $toDate = $toDate->format("Y/m/d H:i:s"); $WQDS = WQDDataDataStore::getInstance(); $dailyAverageArray = null; foreach ($folSeqArray as $folSeq) { $arr = $WQDS->getDailyAverageValues($fromDate, $toDate, $folSeq, $channelNumber); $folder = FolderDataStore::getInstance()->FindBySeq($folSeq); $dailyAverageArray[$folder->getFolderName()] = $arr; } //get values for the whole day average //$channelConfig = ChannelConfigurationDataStore::getInstance()->FindByFolderAndChannelNo($folSeqArray[0],$channelNumber); $limit = PrescribedLimitsUtils::getPrescribedLimit($channelName); if (ConvertorUtils::getPrescribedUnit($channelName) != null) { $channelUnit = ConvertorUtils::getPrescribedUnit($channelName); } ?> <!DOCTYPE HTML>
public function generateFile() { echo "MANIKGARH Generator starts...\n"; $CCDS = ChannelConfigurationDataStore::getInstance(); $FDS = FolderDataStore::getInstance(); $WQDS = WQDDataDataStore::getInstance(); $folders = $FDS->FindByLocationSeqs("11"); echo "<br>--------TotalFolders:" . count($folders); foreach ($folders as $folder) { $folSeq = $folder->getSeq(); //$latestDataRows = $WQDS->getChannelsLatestInfo($folSeq); echo "FolderSeq:" . $folSeq . " FolderName:" . $folder->getFolderName() . "<br>\n"; echo "<br>\n ToDateFromLatestData " . $latestDataRows['dated']; $channelConfigs = $CCDS->FindByFolder($folSeq); $toDateStr = date('Y/m/d H:00:00'); $fromDateStr = date('Y/m/d H:00:00', strtotime('-1 hour')); //$toDateStr = "2014/02/15 18:00:00"; // $fromDateStr = "2014/02/15 17:00:00"; $toDate = new DateTime($toDateStr); $fromDate = new DateTime($fromDateStr); echo "<br>From:" . $fromDateStr . "<br>\n"; echo "To:" . $toDateStr . "<br>\n"; $dataArray = $WQDS->getAllDataByFol($fromDateStr, $toDateStr, $folSeq); $channelNoArr = self::getChannelNumberNameArray(self::$channelsList, $channelConfigs); $addDatesData = array(); foreach ($dataArray as $data) { $channelData = array(); $dated = $data['wqdfiledatadated']; $chValues = array(); $chStatuses = array(); foreach ($channelNoArr as $key => $value) { $vl = (double) $data["ch" . $key . "value"]; if ($vl < 0) { $vl = "n.o"; } array_push($chValues, $vl); array_push($chStatuses, (double) $data["ch" . $key . "status"]); } $allDatesData[strtotime($dated)]['channelValue'] = $chValues; $allDatesData[strtotime($dated)]['channelStatuses'] = $chStatuses; } $channelArr = array(); foreach ($channelNoArr as $chName) { array_push($channelArr, $chName); } $dataSlices = DateUtils::getDateSlicesByInterval($fromDate, $toDate, "15min"); $dataRows = $WQDS->getAverageDataByDataArrayDataSlices("15min", $allDatesData, $dataSlices, $channelArr, "normal", array()); $repStr = ""; if (count($dataRows) > 1) { $repStr = ""; foreach ($dataRows as $dateStr => $row) { $chNameValueArr = array(); foreach ($row as $rowId => $rowVal) { $chNameValueArr[$channelArr[$rowId]] = $rowVal; } $dated = new DateTime($dateStr); $repStr .= $dated->format("Y-m-d H:i:s"); $channelsList = self::$channelsList; foreach ($channelsList as $chName) { if ($chNameValueArr[$chName] != null) { $repStr .= "," . $chNameValueArr[$chName]; } else { $repStr .= ",NA"; } } $repStr .= "\r\n"; } echo $repStr; $currDate = new DateTime(); $fileName = "MHCHDMANIKGARHC011_" . $dated->format("YmdHis") . ".csv"; $repFileName = "/home/envirote/public_html/Generated/Manikgarh/" . $folSeq . "/" . $fileName; //$repFileName = $fileName; if (!file_exists(dirname($repFileName))) { mkdir(dirname($repFileName), 0777, true); } $fh = fopen($repFileName, 'w') or die("can't open file"); fwrite($fh, $repStr); fclose($fh); } unset($channelArr); unset($latestDataRows); unset($channelConfigs); unset($channelNoArr); unset($dataSlices); unset($dataRows); unset($chNameValueArr); unset($allDatesData); unset($channelsList); } //for loop ends }
} elseif (strtoupper($fileType) == "LSI") { //this case of AMBUJA lsi files for stack folders $WQDDataArray = ParserStackLsi::parse($value, $folder->getSeq()); } elseif (strtoupper($fileType) == "TXT" && ($folder->getSeq() == 48 || $folder->getSeq() == 49)) { //this case of Bhoomi instruments first parser $WQDDataArray = ParserBhoomiFiles::parse($value, $folder->getSeq()); } else { $WQDDataArray = ParserWQD::parseWQD($value, $folder->getSeq()); } if ($WQDDataArray != null) { if ($folder->getStationType() == "stack" || $folder->getStationType() == "effluent") { $WDSD = WQDStackDataStore::getInstance(); $WDSD->saveSyncedData($WQDDataArray); echo "\n" . date("Y-m-d H:i:s") . " Stack File Saved Successfully"; } else { $WDD = WQDDataDataStore::getInstance(); $WDD->SaveList($WQDDataArray); echo "\n" . date("Y-m-d H:i:s") . " AQMS File Saved Successfully"; if ($status != null) { echo "\n Status from save call" . $status; } } unlink($value); unset($WQDDataArray); unset($wqdFile); } } catch (Exception $e) { echo 'Exception caught while Parsing: ' . $e . "\n"; $to = "*****@*****.**"; $subject = "Exception in Elive Parsers"; $txt = 'Exception caught while Parsing: ' . $e->getMessage() . "\n";
public function getWindRoseReport($GET) { $infoType = $GET['infoTypeRadio']; $periodType = $GET['periodTypeRadio']; $fromDateStr = $GET['fromDate']; $toDateStr = $GET['toDate']; $timeBase = $GET['timeBase']; $timeBaseQuick = $GET['timeBaseQuick']; $quickReportType = $GET['quickReportType']; if ($quickReportType != "null") { $timeBase = $timeBaseQuick; } $timeBaseFromGet = $timeBase; $folSeqArray = array(); //holds all folderseqs foreach ($GET as $key => $value) { if (strpos($key, "channelNos_") !== false) { $folSeq = (double) substr($key, 11); array_push($folSeqArray, $folSeq); } } if (count($folSeqArray) == 0) { return null; } $folSeq = $folSeqArray[0]; //calculating from to dates from provided $_GET $fromToDates = DateUtils::getDatesArrayForStationReports($quickReportType, $fromDateStr, $toDateStr); // $dateSlices = DateUtils::getDateSlicesByInterval($fromDate,$toDate,$timeBase); $WSChannelNo = 0; $WDChannelNo = 0; $CCDS = ChannelConfigurationDataStore::getInstance(); $ChannelsInfo = $CCDS->FindByFolder($folSeq); foreach ($ChannelsInfo as $channel) { if ($channel->getChannelName() == "Wind Speed") { $WSChannelNo = $channel->getChannelNumber(); } else { if ($channel->getChannelName() == "Wind Direction") { $WDChannelNo = $channel->getChannelNumber(); } } } $fromDate = new DateTime($fromToDates['fromDate']); $toDate = new DateTime($fromToDates['toDate']); $toDate->setTime(23, 59, 59); $fromDate = $fromDate->format("Y/m/d H:i:s"); $toDate = $toDate->format("Y/m/d H:i:s"); $WQDS = WQDDataDataStore::getInstance(); if (strpos($timeBase, 'hours') !== false) { $timeBase = "1hour"; } $WSArrayDB = $WQDS->getChannel($fromDate, $toDate, $folSeq, $WSChannelNo, $timeBase); $WDArrayDB = $WQDS->getChannel($fromDate, $toDate, $folSeq, $WDChannelNo, $timeBase); if ($WSArrayDB == null || $WDArrayDB == null) { return null; } $WS = array(); $WD = array(); $i = 0; $WSDateInterval = $WSArrayDB[0][0]; foreach ($WSArrayDB as $ws) { if (strtotime($ws[0]) == strtotime($WSDateInterval)) { $WS[$i++] = floatval($ws[1]); $WSDateInterval = DateUtils::getIncrementedDateStr($WSDateInterval, $timeBaseFromGet); } } $i = 0; $WDDateInterval = $WDArrayDB[0][0]; foreach ($WDArrayDB as $wd) { if (strtotime($wd[0]) == strtotime($WDDateInterval)) { $WD[$i++] = floatval($wd[1]); $WDDateInterval = DateUtils::getIncrementedDateStr($WDDateInterval, $timeBaseFromGet); } } $direction_array["N"][] = null; $direction_array["NNE"][] = null; $direction_array["NE"][] = null; $direction_array["ENE"][] = null; $direction_array["E"][] = null; $direction_array["ESE"][] = null; $direction_array["SE"][] = null; $direction_array["SSE"][] = null; $direction_array["S"][] = null; $direction_array["SSW"][] = null; $direction_array["SW"][] = null; $direction_array["WSW"][] = null; $direction_array["W"][] = null; $direction_array["WNW"][] = null; $direction_array["NW"][] = null; $direction_array["NNW"][] = null; for ($ii = 0; $ii < count($WD); $ii++) { switch ($WD[$ii]) { case $WD[$ii] >= 348.75 or $WD[$ii] < 11.25: $direction_array["N"][] = $WS[$ii]; break; case $WD[$ii] >= 11.25 and $WD[$ii] < 33.75: $direction_array["NNE"][] = $WS[$ii]; break; case $WD[$ii] >= 33.75 and $WD[$ii] < 56.25: $direction_array["NE"][] = $WS[$ii]; break; case $WD[$ii] >= 56.25 and $WD[$ii] < 78.75: $direction_array["ENE"][] = $WS[$ii]; break; case $WD[$ii] >= 78.75 and $WD[$ii] < 101.25: $direction_array["E"][] = $WS[$ii]; break; case $WD[$ii] >= 101.25 and $WD[$ii] < 123.75: $direction_array["ESE"][] = $WS[$ii]; break; case $WD[$ii] >= 123.75 and $WD[$ii] < 146.25: $direction_array["SE"][] = $WS[$ii]; break; case $WD[$ii] >= 146.25 and $WD[$ii] < 168.75: $direction_array["SSE"][] = $WS[$ii]; break; case $WD[$ii] >= 168.75 and $WD[$ii] < 191.25: $direction_array["S"][] = $WS[$ii]; break; case $WD[$ii] >= 191.25 and $WD[$ii] < 213.75: $direction_array["SSW"][] = $WS[$ii]; break; case $WD[$ii] >= 213.75 and $WD[$ii] < 236.25: $direction_array["SW"][] = $WS[$ii]; break; case $WD[$ii] >= 236.25 and $WD[$ii] < 258.75: $direction_array["WSW"][] = $WS[$ii]; break; case $WD[$ii] >= 258.75 and $WD[$ii] < 281.25: $direction_array["W"][] = $WS[$ii]; break; case $WD[$ii] >= 281.25 and $WD[$ii] < 303.75: $direction_array["WNW"][] = $WS[$ii]; break; case $WD[$ii] >= 303.75 and $WD[$ii] < 326.25: $direction_array["NW"][] = $WS[$ii]; break; case $WD[$ii] >= 326.25 and $WD[$ii] < 348.75: $direction_array["NNW"][] = $WS[$ii]; break; } } $direction_keys = array_keys($direction_array); $max_wind = round(max($WS), 0); $num_data = count($WS); $wind_range_max = $max_wind < 20 ? 25 : $max_wind; $data_range_array = array(1, 5, 10, 15, 20, $wind_range_max); foreach ($direction_keys as $direction) { for ($ii = 0; $ii <= 5; $ii++) { $count_data[$ii] = 0; } $raw_data = $direction_array[$direction]; foreach ($raw_data as $temp_speed) { if ($temp_speed >= 0 and $temp_speed < $data_range_array[0]) { $count_data[0]++; } elseif ($temp_speed >= $data_range_array[0] and $temp_speed < $data_range_array[1]) { $count_data[1]++; } elseif ($temp_speed >= $data_range_array[1] and $temp_speed < $data_range_array[2]) { $count_data[2]++; } elseif ($temp_speed >= $data_range_array[2] and $temp_speed < $data_range_array[3]) { $count_data[3]++; } elseif ($temp_speed >= $data_range_array[3] and $temp_speed < $data_range_array[4]) { $count_data[4]++; } elseif ($temp_speed >= $data_range_array[4]) { $count_data[5]++; } } for ($ii = 0; $ii <= 5; $ii++) { $plot_data[$direction][$ii] = 0; } for ($ii = 0; $ii <= 5; $ii++) { $plot_data[$direction][$ii] = round($count_data[$ii] / $num_data * 100, 2); } } return $plot_data; }
public function generateFile() { echo "APPCB Generator starts...\n"; $CCDS = ChannelConfigurationDataStore::getInstance(); $FDS = FolderDataStore::getInstance(); $WQDS = WQDDataDataStore::getInstance(); $folders = $FDS->FindByLocationSeqs("7,10"); echo "<br>--------TotalFolders:" . count($folders); foreach ($folders as $folder) { $stationName = $folder->getFolderName(); $stationNumber = substr($stationName, 7); $districtCode = "kham"; $industryCode = "ITCPBCM"; //if($folder->getSeq() == 20){ if ($folder->getLocationSeq() == 10) { $stationNumber = 1; if ($folder->getSeq() == 26) { $stationNumber = 2; } else { if ($folder->getSeq() == 27) { $stationNumber = 3; } else { if ($folder->getSeq() == 28) { $stationNumber = 4; } else { if ($folder->getSeq() == 29) { $stationNumber = 5; } } } } $districtCode = "hyde"; $industryCode = "APPCB"; } $folSeq = $folder->getSeq(); $latestDataRows = $WQDS->getChannelsLatestInfo($folSeq); echo "FolderSeq:" . $folSeq . " FolderName:" . $folder->getFolderName() . "<br>\n"; //echo ("<br>\nTotal Rows found:". count($latestDataRows)); echo "<br>\n ToDateFromLatestData " . $latestDataRows['dated']; if (count($latestDataRows) > 0) { $channelConfigs = $CCDS->FindByFolder($folSeq); $toDateStr = $latestDataRows['dated']; $toDate = new DateTime($toDateStr); $fromDate = new DateTime($toDateStr); $fromDate->setTime(0, 0, 0); $fromDateStr = DateUtils::getSQLDateFromDateObj($fromDate); echo "<br>From:" . $fromDateStr . "<br>\n"; echo "To:" . $toDateStr . "<br>\n"; $dataArray = $WQDS->getAllDataByFol($fromDateStr, $toDateStr, $folSeq); $channelNoArr = self::getChannelNumberNameArray(self::$channelsList, $channelConfigs); $addDatesData = array(); foreach ($dataArray as $data) { $channelData = array(); $dated = $data['wqdfiledatadated']; $chValues = array(); $chStatuses = array(); foreach ($channelNoArr as $key => $value) { $vl = (double) $data["ch" . $key . "value"]; if ($vl < 0) { $vl = "n.o"; } array_push($chValues, $vl); array_push($chStatuses, (double) $data["ch" . $key . "status"]); } $allDatesData[strtotime($dated)]['channelValue'] = $chValues; $allDatesData[strtotime($dated)]['channelStatuses'] = $chStatuses; } $channelArr = array(); foreach ($channelNoArr as $chName) { array_push($channelArr, $chName); } $dataSlices = DateUtils::getDateSlicesByInterval($fromDate, $toDate, "1hour"); $dataRows = $WQDS->getAverageDataByDataArrayDataSlices("1hour", $allDatesData, $dataSlices, $channelArr, "normal", array()); } else { echo " \n<br>Null FromDate"; } if (count($dataRows) > 1) { $repStr = ""; foreach ($dataRows as $dateStr => $row) { $chNameValueArr = array(); foreach ($row as $rowId => $rowVal) { $chNameValueArr[$channelArr[$rowId]] = $rowVal; } $repStr .= $districtCode; $repStr .= "," . $industryCode; $repStr .= "," . $stationNumber . ","; $dated = new DateTime($dateStr); $repStr .= $dated->format("m/d/Y h:i:s A"); $channelsList = self::$channelsList; foreach ($channelsList as $chName) { if ($chNameValueArr[$chName] != null) { $repStr .= "," . $chNameValueArr[$chName]; } else { $repStr .= ",NA"; } } $repStr .= "\r\n"; } echo $repStr; //$fileName = "khmmitcl".$folder->getFolderName(). date("Ymd") .".txt"; //$fileName = "air". date("Ymd") .".txt"; $fileName = "air" . $fromDate->format("Ymd") . ".txt"; $repFileName = "/home/envirote/public_html/Generated/APPCB/" . $folSeq . "/" . $fileName; //$repFileName ="d:". $folSeq ."/" . $fileName; if (!file_exists(dirname($repFileName))) { mkdir(dirname($repFileName), 0777, true); } $fh = fopen($repFileName, 'w') or die("can't open file"); fwrite($fh, $repStr); fclose($fh); } unset($channelArr); unset($latestDataRows); unset($channelConfigs); unset($channelNoArr); unset($dataSlices); unset($dataRows); unset($chNameValueArr); unset($allDatesData); unset($channelsList); } //for loop ends }