From d6df76d057785cbcf87303a16f8aa292a24a63d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kr=C3=A1sn=C3=BD?= <53856821+DanielKrasny@users.noreply.github.com> Date: Mon, 12 Oct 2020 16:11:06 +0200 Subject: [PATCH] Version 2.0 (#2) Changed to class Added support for Composer Removed stations folder as it is not necessary --- README.md | 40 +---- composer.json | 41 +++++ povodiapi.php | 357 +++++++++++++++++----------------------- stations/pla_nadrze.txt | 16 -- stations/pla_sap.txt | 121 -------------- stations/pla_srazky.txt | 79 --------- stations/pod_nadrze.txt | 7 - stations/pod_sap.txt | 69 -------- stations/pod_srazky.txt | 72 -------- stations/poh_nadrze.txt | 20 --- stations/poh_sap.txt | 46 ------ stations/poh_srazky.txt | 47 ------ stations/pvl_nadrze.txt | 40 ----- stations/pvl_sap.txt | 304 ---------------------------------- stations/pvl_srazky.txt | 281 ------------------------------- 15 files changed, 197 insertions(+), 1343 deletions(-) create mode 100644 composer.json delete mode 100644 stations/pla_nadrze.txt delete mode 100644 stations/pla_sap.txt delete mode 100644 stations/pla_srazky.txt delete mode 100644 stations/pod_nadrze.txt delete mode 100644 stations/pod_sap.txt delete mode 100644 stations/pod_srazky.txt delete mode 100644 stations/poh_nadrze.txt delete mode 100644 stations/poh_sap.txt delete mode 100644 stations/poh_srazky.txt delete mode 100644 stations/pvl_nadrze.txt delete mode 100644 stations/pvl_sap.txt delete mode 100644 stations/pvl_srazky.txt diff --git a/README.md b/README.md index 4db3456..8d3e7e9 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,18 @@ # PovodiAPI ![PovodiAPI](https://repository-images.githubusercontent.com/202905193/358d5c00-c2b0-11e9-9209-86d8a0b79280) -Get water info in a simple API. This PHP class supports [Povodí Labe](http://www.pla.cz), [Povodí Odry](https://www.pod.cz), [Povodí Ohře](https://www.poh.cz) and [Povodí Vltavy](http://www.pvl.cz). +Get water info in a simple class. This PHP class supports [Povodí Moravy](http://www.pmo.cz), [Povodí Labe](http://www.pla.cz), [Povodí Odry](https://www.pod.cz), [Povodí Ohře](https://www.poh.cz) and [Povodí Vltavy](http://www.pvl.cz). -## Usage -### Nádrže +## Initialization +PovodiAPI is available in Composer: ``` -./povodiapi.php?website=pla&channel=nadrze&station=100|1&response=json&values=all +composer require danielkrasny/povodiapi ``` -Required to enter: -- *website*: **pla**, **pod**, **poh**, **pvl** -- *channel*: **nadrze** (used for this example), **sap**, **srazky** -- *station*: ID of station, available in [/stations](/stations) -- *response*: **json**, **rss** -- *values*: **all**, **latest** - -### SaP (Stavy a průtoky) -``` -./povodiapi.php?website=pla&channel=sap&station=9|1&response=json&values=all +Then use it as a class: +```php +$povodi = new DanielKrasny\PovodiAPI(); ``` -Required to enter: -- *website*: **pla**, **pod**, **poh**, **pvl** -- *channel*: **nadrze**, **sap** (used for this example), **srazky** -- *station*: ID of station, available in [/stations](/stations) -- *response*: **json**, **rss** -- *values*: **all**, **latest** -### Srážky -``` -./povodiapi.php?website=pla&channel=srazky&station=215|1&response=json&values=latest -``` -Required to enter: -- *website*: **pla**, **pod**, **poh**, **pvl** -- *channel*: **nadrze**, **sap**, **srazky** (used for this example) -- *station*: ID of station, available in [/stations](/stations) -- *response*: **json**, **rss** -Optional: -- *values*: **all**, **latest** (including total value), **total** -- *temp*: Only for `rss` response, channel `srazky` and set values to `all`. Allow showing temperature in title. Options: **yes**, **no** +More examples available in [wiki](https://github.com/DanielKrasny/PovodiAPI/wiki). ##### License The script is available under the [MIT license](/LICENSE). diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..ddfab6e --- /dev/null +++ b/composer.json @@ -0,0 +1,41 @@ +{ + "name": "danielkrasny/povodiapi", + "description": "Get water info from Povodí Labe/Odry/Ohře/Moravy/Vltavy in a simple class.", + "keywords": [ + "php", + "water", + "czech", + "api", + "php class", + "povodi", + "odra", + "labe", + "ohre", + "vltava", + "morava" + ], + "homepage": "https://github.com/DanielKrasny/PovodiAPI", + "license": "MIT", + "authors": [ + { + "name": "Daniel Krásný", + "role": "Developer", + "homepage": "https://daniel.krasny.me" + } + ], + "support": { + "issues": "https://github.com/DanielKrasny/PovodiAPI/issues", + "source": "https://github.com/DanielKrasny/PovodiAPI/tree/master" + }, + "autoload": { + "classmap": [ + "povodiapi.php" + ] + }, + "require": { + "php": ">=5.2.0", + "ext-curl": "*", + "ext-xml": "*", + "ext-dom": "*" + } +} diff --git a/povodiapi.php b/povodiapi.php index 8207baf..7cc277a 100644 --- a/povodiapi.php +++ b/povodiapi.php @@ -1,223 +1,162 @@ - * @version 1.1 + * @version 2.0 * @author Daniel Krásný * - * Working with: Povodí Labe, Povodí Odry, Povodí Ohře, Povodí Vltavy - * For Povodí Moravy use dedicated pmoAPI - * - * Required values: - * website - domain. Available: pla, pod, poh, pvl - * channel - Available: nadrze, sap, srazky - * station - ID of weather station (available from https://raw.githubusercontent.com/DanielKrasny/PovodiAPI/master/stations/[pla/pod/poh/pvl]_[nadrze/sap/srazky].txt) - * response - method of responding. Available: json, rss - * [for channels 'nadrze', 'sap'] values - do you want the latest value or all values available? Choose from: all, latest - * Optional values: - * [for channel 'srazky'] values - do you want only total value, all values available or the latest and total value? Choose from: total (default), all, latest - * [for channel 'srazky', RSS response and set "values" to all] temp - allow showing temperature in RSS. Available = yes, no (default) - * + * Working with: Povodí Moravy, Povodí Labe, Povodí Odry, Povodí Ohře, Povodí Vltavy */ -ini_set('display_errors', 0); -ini_set('display_startup_errors', 0); -$site = $_GET["website"]; -$sites = array('pla' => 'Labe', 'pod' => 'Odry', 'poh' => 'Ohře', 'pvl' => 'Vltavy'); -$domains = array('pla' => 'http://www.pla.cz', 'pod' => 'https://pod.cz', 'poh' => 'http://sap.poh.cz', 'pvl' => 'http://www.pvl.cz'); -if ($sites[$site]) { -$channel = $_GET["channel"]; -if ($channel != 'nadrze' && $channel != 'sap' && $channel != 'srazky'){ - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Invalid channel. Allowed channels are nadrze, sap, srazky.', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} else { -$station = $_GET["station"]; -if ($station == null || $station == '' || count(explode('|', $station)) == 1) { - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Invalid station number. Please check https://raw.githubusercontent.com/DanielKrasny/PovodiAPI/master/stations/'.$site.'_'.$channel.'.txt', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} else { -$station = explode('|', $station); -$response = $_GET["response"]; -$values = $_GET["values"]; -if ($values != 'all' && $values != 'latest' && $channel != 'srazky'){ - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Invalid value. Available options: all, latest', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} else { -$channelfix = array('nadrze' => 'Nadrze', 'sap' => 'SaP', 'srazky' => 'Srazky'); -$povodi = file_get_contents($domains[$site].'/portal/'.$channelfix[$channel].'/cz/text/Mereni.aspx?oid='.$station[1].'&id='.$station[0].'&z=vse'); -$dom = new DOMDocument; -@$dom->loadHTML($povodi); -if ($dom->getElementById('ContentPlaceHolder1_ChybaLbl')) { - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Invalid station number. Please check https://raw.githubusercontent.com/DanielKrasny/PovodiAPI/master/stations/'.$site.'_'.$channel.'.txt', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} else if ($dom->getElementsByTagName('table')->item(1)->getElementsByTagName('span')[0]->nodeValue == 'Žádná data měření nejsou k dispozici') { - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Invalid station number. Please check https://raw.githubusercontent.com/DanielKrasny/PovodiAPI/master/stations/'.$site.'_'.$channel.'.txt', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} else if ($dom->getElementsByTagName('table')->item(2)->getElementsByTagName('span')[0]->nodeValue == 'Žádná data měření nejsou k dispozici') { - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Station number is not matching the channel. Please check https://raw.githubusercontent.com/DanielKrasny/PovodiAPI/master/stations/'.$site.'_'.$channel.'.txt', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} else { -$tables = $dom->getElementsByTagName('table'); -$data = $tables->item(2)->getElementsByTagName('tr'); -$infos = $tables->item(1)->getElementsByTagName('tr'); -$td[0] = $infos[0]->getElementsByTagName('td'); -$td[1] = $infos[1]->getElementsByTagName('td'); -if ($response == 'json') { - $arr = array(); -} else if ($response == 'rss') { - echo "\n"; - echo "\n"; - echo "\n"; - echo "Povodí ".$sites[$site]."\n"; - echo "".$domains[$site]."/\n"; - echo "Aktuální data z meteorologických stanic. RSS vytvořil skript PovodiAPI od @DanielKrasny.\n"; - echo "cs-cz\n"; - echo "\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue." na toku ".$td[1][1]->nodeValue."\n"; - echo "".$domains[$site]."/\n"; - echo "\n"; - echo "\n"; -} -if ($channel == 'srazky'){ - $minmax = array(); - if($response == 'rss' && $values == 'all'){ - $temp = $_GET["temp"]; +namespace DanielKrasny; +define("POVODI", ["pmo", "pla", "pod", "poh", "pvl"]); +define("SERVERS", ["pmo" => "http://www.pmo.cz/portal/", "pla" => "http://www.pla.cz/portal/", "pod" => "https://www.pod.cz/portal/", "poh" => "https://sap.poh.cz/portal/", "pvl" => "http://www.pvl.cz/portal/"]); +define("SERVICES", ["nadrze" => "Nadrze", "sap" => "SaP", "srazky" => "Srazky"]); +Class PovodiAPI { + public function stations(string $type, string $service) { + if (!in_array($type, POVODI)) + throw new \Error("Invalid server type."); + if (!in_array(strtolower($service), ["nadrze", "sap", "srazky"])) + throw new \Error("Invalid service type. Allowed options: nadrze/sap/srazky"); + if ($type !== "pmo") + $url = SERVERS[$type].SERVICES[strtolower($service)]."/cz/PC/"; + else $url = SERVERS[$type].strtolower($service)."/cz/menu.htm"; + $result = $this->curl_request($url); + $dom = new \DOMDocument(); + @$dom->loadHTML($result); + $xpath = new \DOMXPath($dom); + $element = $xpath->query("//select[@id='MonitorovaciStaniceDDL' or @name='StaniceSelect']"); + if ($element->length === 0) + throw new \Error("Can't get station list."); + $FinalArray = array(); + foreach ($xpath->query("//option[not(@value='nic' or @value='-1')]", $element[0]) as $options) + $FinalArray[] = array("id" => $options->getAttribute("value"), "station" => $options->nodeValue); + return ["info" => ["source" => SERVERS[$type]], "data" => $FinalArray]; } -} -foreach ($data as $i => $string) { - if ($i > 0) { - $cols = $string->getElementsByTagName('td'); - if ($channel == 'srazky'){ - foreach($cols as $nej){ - if($nej->getAttribute('title') == 'Minimální telplota'){ - $minmax["minimum"] = $nej->nodeValue; - } - if($nej->getAttribute('title') == 'Maximální teplota'){ - $minmax["maximum"] = $nej->nodeValue; - } - } - if ($response == 'json') { - if($cols[0]->nodeValue == 'Úhrn srážek za 24h: '){$arr[] = array('totalrain' => $cols[1]->nodeValue, 'minimal-temperature' => $minmax["minimum"], 'maximum-temperature' => $minmax["maximum"]);} else { - if($values == 'all'){ - $arr[] = array( - 'date' => strtotime($cols[0]->nodeValue), - 'rain' => trim($cols[1]->nodeValue).' mm/hod', - 'temperature' => trim($cols[2]->nodeValue).' °C' - ); - } else if ($values == 'latest' && $i == 1) { - $arr[] = array( - 'date' => strtotime($cols[0]->nodeValue), - 'rain' => trim($cols[1]->nodeValue).' mm/hod', - 'temperature' => trim($cols[2]->nodeValue).' °C' - ); - } - } - } else if ($response == 'rss') { - if ($cols[0]->nodeValue == 'Úhrn srážek za 24h: ') { - echo "\n"; - echo "Úhrn srážek za posledních 24 hodin je ".$cols[1]->nodeValue.". Minimální teplota byla ".$minmax["minimum"]."°C a maximální teplota byla ".$minmax["maximum"]."°C.\n"; - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; - } else { - if ($values == 'all') { - echo "\n"; - if ($temp == 'yes') { - echo "Srážky z ".$cols[0]->nodeValue." byly ".$cols[1]->nodeValue." mm/h, teplota ".$cols[2]->nodeValue."°C\n"; - } else { - echo "Srážky z ".$cols[0]->nodeValue." byly ".$cols[1]->nodeValue." mm/h\n"; - } - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; - } else if ($values == 'latest' && $i == 1) { - echo "\n"; - echo "Aktuální informace o srážkách z ".$cols[0]->nodeValue." jsou ".$cols[1]->nodeValue." mm/h, byla naměřena teplota ".$cols[2]->nodeValue."°C.\n"; - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; - } + + public function sap (string $type, string $stationID) { + if (!in_array($type, POVODI)) + throw new \Error("Invalid server type."); + if (strtolower($type) !== "pmo") { + $station = explode("|", $stationID); + if (count($station) !== 2) + throw new \Error("Invalid station input. Supported method is a string id|oid, read more at https://github.com/DanielKrasny/PovodiAPI"); + $url = SERVERS[$type]."SaP/cz/PC/Mereni.aspx?".http_build_query(array("id" => $station[0], "oid" => $station[1])); + } else $url = SERVERS[$type]."sap/cz/mereni_{$stationID}.htm"; + $result = $this->curl_request($url, true); + if ($result["code"] !== 200) + throw new \Error("Station not found."); + $dom = new \DOMDocument(); + @$dom->loadHTML($result["data"]); + $xpath = new \DOMXPath($dom); + $data = $xpath->query("//table[@id='ObsahCPH_DataMereniGV']/tr[not(@class='text1')] | //table[@width='270']/tr[preceding-sibling::*]"); + $station = $xpath->query("(//td[@width='225']/font[@class='text1bold'])[1] | //*[@id='ObsahCPH_UdajeStaniceFW_NazevStaniceLbl']"); + $watercourse = $xpath->query("(//td[@width='225']/font[@class='text1bold'])[last()] | //*[@id='ObsahCPH_UdajeStaniceFW_NazevTokuLbl']"); + $img = $xpath->query("//img[@id='ObsahCPH_GrafImg'] | //img[contains(@src, 'grafy')]"); + if ($data->length === 0 || $station->length === 0 || $watercourse->length === 0 || $img->length === 0) + throw new \Error("Parsing failed."); + $images = array(); + $FinalArray = array(); + foreach ($img as $obrazky) + $images[] = str_replace(((strtolower($type) === "pmo") ? "../" : "../../"), SERVERS[$type].((strtolower($type) === "pmo") ? "sap/" : "SaP/"), $obrazky->getAttribute("src")); + foreach ($data as $string) { + $cols = $xpath->query("td", $string); + if ($cols->length === 4) + $FinalArray[] = array( + 'date' => strtotime(str_replace('.'.date('y').' ', '.'.date('Y').' ', html_entity_decode(str_replace(' ', ' ', htmlentities($cols[0]->nodeValue, null, 'utf-8'))))), + 'water-status' => (float) str_replace(',', '.', trim(html_entity_decode(str_replace(' ', ' ', htmlentities($cols[1]->nodeValue, null, 'utf-8'))))), + 'flow' => (float) str_replace(',', '.', trim(html_entity_decode(str_replace(' ', ' ', htmlentities($cols[2]->nodeValue))))) + ); } + return ["info" => ["source" => SERVERS[$type], "station" => trim(html_entity_decode(str_replace(' ', ' ', htmlentities($station[0]->nodeValue, null, 'utf-8')))), 'watercourse' => trim(html_entity_decode(str_replace(' ', ' ', htmlentities($watercourse[0]->nodeValue, null, 'utf-8')))), "data" => $FinalArray, "images" => $images]]; } -} else if ($channel == 'sap') { - if ($response == 'json') { - if($values == 'all'){ - $arr[] = array( - 'date' => strtotime($cols[0]->nodeValue), - 'water-status' => trim($cols[1]->nodeValue).' cm', - 'flow' => trim($cols[2]->nodeValue).' m³.s¯¹' - ); - } else if ($values == 'latest' && $i == 1) { - $arr[] = array( - 'date' => strtotime($cols[0]->nodeValue), - 'water-status' => trim($cols[1]->nodeValue).' cm', - 'flow' => trim($cols[2]->nodeValue).' m³.s¯¹' - ); + + public function nadrze (string $type, string $stationID) { + if (!in_array($type, POVODI)) + throw new \Error("Invalid server type."); + if (strtolower($type) !== "pmo") { + $station = explode("|", $stationID); + if (count($station) !== 2) + throw new \Error("Invalid station input. Supported method is a string id|oid, read more at https://github.com/DanielKrasny/PovodiAPI"); + $url = SERVERS[$type]."Nadrze/cz/PC/Mereni.aspx?".http_build_query(array("id" => $station[0], "oid" => $station[1])); + } else $url = SERVERS[$type]."nadrze/cz/mereni_{$stationID}.htm"; + $result = $this->curl_request($url, true); + if ($result["code"] !== 200) + throw new \Error("Station not found."); + $dom = new \DOMDocument(); + @$dom->loadHTML($result["data"]); + $xpath = new \DOMXPath($dom); + $data = $xpath->query("//table[@id='dataMereni24hGV']/tr[not(@class='bunkaHlavicky')] | //table[@width='300']/tr[preceding-sibling::*]"); + $station = $xpath->query("//*[@class='text3bold'] | //*[@id='nazevLbl']"); + $watercourse = $xpath->query("(//*[@class='text5'])[1] | //*[@id='povodiLbl']"); + $img = $xpath->query("//img[@id='GrafTydenniImg'] | //img[@id='schemaNadrzeImg'] | //img[contains(@src, 'grafy')]"); + if ($data->length === 0 || $station->length === 0 || $watercourse->length === 0 || $img->length === 0) + throw new \Error("Parsing failed."); + $images = array(); + $FinalArray = array(); + foreach ($img as $obrazky) { + $src = str_replace(((strtolower($type) === "pmo") ? "../" : "../../"), SERVERS[$type].((strtolower($type) === "pmo") ? "nadrze/" : "Nadrze/"), $obrazky->getAttribute("src")); + if (!in_array($src, $images)) + $images[] = $src; } - } else if ($response == 'rss') { - if ($values == 'all') { - echo "\n"; - echo "Hladina vody z ".$cols[0]->nodeValue." byla ".trim($cols[1]->nodeValue)." cm, průtok ".trim($cols[2]->nodeValue)." m³.s¯¹.\n"; - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; - } else if ($values == 'latest' && $i == 1) { - echo "\n"; - echo "Aktuální informace o hladině vody z ".$cols[0]->nodeValue.": ".trim($cols[1]->nodeValue)." cm, průtok ".trim($cols[2]->nodeValue)." m³.s¯¹.\n"; - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; - } -} -} else if ($channel == 'nadrze') { - if ($response == 'json') { - if($values == 'all'){ - $arr[] = array( - 'date' => strtotime($cols[0]->nodeValue), - 'surface' => trim($cols[1]->nodeValue).' m n. m.', - 'outflow-rate' => trim($cols[2]->nodeValue).' m³.s¯¹' - ); - } else if ($values == 'latest' && $i == 1) { - $arr[] = array( - 'date' => strtotime($cols[0]->nodeValue), - 'surface' => trim($cols[1]->nodeValue).' m n. m.', - 'outflow-rate' => trim($cols[2]->nodeValue).' m³.s¯¹' - ); + foreach ($data as $string) { + $cols = $xpath->query("td", $string); + if ($cols->length === 4 || $cols->length === 3) + $FinalArray[] = array( + 'date' => strtotime(str_replace('.'.date('y').' ', '.'.date('Y').' ', html_entity_decode(str_replace(' ', ' ', htmlentities($cols[0]->nodeValue, null, 'utf-8'))))), + 'surface' => (float) str_replace(',', '.', trim(html_entity_decode(str_replace(' ', ' ', htmlentities($cols[1]->nodeValue, null, 'utf-8'))))), + 'outflow-rate' => (float) str_replace(',', '.', trim(html_entity_decode(str_replace(' ', ' ', htmlentities($cols[2]->nodeValue))))) + ); + } + return ["info" => ["source" => SERVERS[$type], "station" => trim(html_entity_decode(str_replace(' ', ' ', htmlentities($station[0]->nodeValue, null, 'utf-8')))), 'watercourse' => trim(html_entity_decode(str_replace(' ', ' ', htmlentities($watercourse[0]->nodeValue, null, 'utf-8')))), "data" => $FinalArray, "images" => $images]]; } -} else if ($response == 'rss') { - if ($values == 'all') { - echo "\n"; - echo "Hladina vody z ".$cols[0]->nodeValue." byla ".trim($cols[1]->nodeValue)." m n. m., odtok ".trim($cols[2]->nodeValue)." m³.s¯¹.\n"; - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; - } else if ($values == 'latest' && $i == 1) { - echo "\n"; - echo "Aktuální informace o hladině vody z ".$cols[0]->nodeValue.": ".trim($cols[1]->nodeValue)." m n. m., odtok ".trim($cols[2]->nodeValue)." m³.s¯¹.\n"; - echo "".$domains[$site]."/\n"; - echo "Data z meteorologické stanice ".$td[0][1]->nodeValue."\n"; - echo "\n"; + + public function srazky (string $type, string $stationID) { + if (!in_array($type, POVODI)) + throw new \Error("Invalid server type."); + if (strtolower($type) !== "pmo") { + $station = explode("|", $stationID); + if (count($station) !== 2) + throw new \Error("Invalid station input. Supported method is a string id|oid, read more at https://github.com/DanielKrasny/PovodiAPI"); + $url = SERVERS[$type]."Srazky/cz/PC/Mereni.aspx?".http_build_query(array("id" => $station[0], "oid" => $station[1])); + } else $url = SERVERS[$type]."srazky/cz/mereni_{$stationID}.htm"; + $result = $this->curl_request($url, true); + if ($result["code"] !== 200) + throw new \Error("Station not found."); + $dom = new \DOMDocument(); + @$dom->loadHTML($result["data"]); + $xpath = new \DOMXPath($dom); + $data = $xpath->query("//table[@id='ObsahCPH_dataMereni24hGV']/tr[not(@class='text1') and not(@class='bunkaGridu')] | //table[@width='300']/tr[preceding-sibling::*]"); + $station = $xpath->query("(//*[@class='text3bold'])[1] | //*[@id='ObsahCPH_hlavickaFormView_nazevLbl']"); + $watercourse = $xpath->query("(//*[@class='text5'])[1] | //*[@id='ObsahCPH_hlavickaFormView_povodiLbl']"); + $img = $xpath->query("//img[@id='ObsahCPH_GrafImg'] | //img[contains(@src, 'grafy')]"); + if ($data->length === 0 || $station->length === 0 || $watercourse->length === 0 || $img->length === 0) + throw new \Error("Parsing failed."); + $images = array(); + $FinalArray = array(); + foreach ($img as $obrazky) + $images[] = str_replace(((strtolower($type) === "pmo") ? "../" : "../../"), SERVERS[$type].((strtolower($type) === "pmo") ? "srazky/" : "Srazky/"), $obrazky->getAttribute("src")); + foreach ($data as $string) { + $cols = $xpath->query("td", $string); + if ($cols->length === 3) + $FinalArray[] = array( + 'date' => strtotime(str_replace('.'.date('y').' ', '.'.date('Y').' ', html_entity_decode(str_replace(' ', ' ', htmlentities($cols[0]->nodeValue, null, 'utf-8'))))), + 'rain' => (float) str_replace(',', '.', trim(html_entity_decode(str_replace(' ', ' ', htmlentities($cols[1]->nodeValue, null, 'utf-8'))))), + 'temperature' => (float) str_replace(',', '.', trim(html_entity_decode(str_replace(' ', ' ', htmlentities($cols[2]->nodeValue))))) + ); } + return ["info" => ["source" => SERVERS[$type], "station" => trim(html_entity_decode(str_replace(' ', ' ', htmlentities($station[0]->nodeValue, null, 'utf-8')))), 'watercourse' => trim(html_entity_decode(str_replace(' ', ' ', htmlentities($watercourse[0]->nodeValue, null, 'utf-8')))), "data" => $FinalArray, "images" => $images]]; + } + + private function curl_request (string $url, bool $returnCode = false) { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); + $output = curl_exec($ch); + $code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); + curl_close($ch); + if ($code !== 200 && $returnCode === false) + throw new \Error("Invalid response code: {$code}"); + return ($returnCode) ? ["code" => $code, "data" => $output] : $output; + } } -} -} -} -if ($response == 'rss') { - ?> - - - true, 'info' => array('source' => 'Povodí '.$sites[$site], 'station' => $td[0][1]->nodeValue, 'watercourse' => $td[1][1]->nodeValue, 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI'), 'data' => $arr))); } -if ($response != 'json' && $response != 'rss') { - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Response method is not valid. Allowed methods are json, rss.', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} -} -} -} -} -} else { - http_response_code(500); - echo json_encode(array('success' => false, 'error' => 'Invalid website. Allowed domains: pla, pod, poh, pvl', 'thanks-to' => 'PovodiAPI by DanielKrasny', 'script-link' => 'https://github.com/DanielKrasny/PovodiAPI')); -} -?> \ No newline at end of file diff --git a/stations/pla_nadrze.txt b/stations/pla_nadrze.txt deleted file mode 100644 index 4abe1df..0000000 --- a/stations/pla_nadrze.txt +++ /dev/null @@ -1,16 +0,0 @@ -Mlýnice - Albrechtický potok: 108|1 -Hamry - Chrudimka: 102|2 -Křižanovice - Chrudimka: 105|2 -Seč - Chrudimka: 113|2 -Souš - Černá Desná: 114|1 -Bedřichov - Černá Nisa: 100|1 -Pastviny - Divoká Orlice: 110|2 -Pařížov - Doubrava: 111|2 -Fojtka - Fojtka: 101|1 -Harcov - Harcovský potok: 103|1 -Josefův Důl - Kamenice: 104|1 -Labská - Labe: 106|1 -Les Království - Labe: 107|1 -Mšeno - Mšenský potok: 109|1 -Rozkoš - Rozkošský potok: 112|1 -Vrchlice - Vrchlice: 115|2 diff --git a/stations/pla_sap.txt b/stations/pla_sap.txt deleted file mode 100644 index b87ce5d..0000000 --- a/stations/pla_sap.txt +++ /dev/null @@ -1,121 +0,0 @@ -Albrechtický potok - Mlýnice: 188|1 -Bělá - Častolovice: 2|2 -Bělá - Jedlová v Orlických horách: 3|2 -Bělá - Skuhrov: 234|2 -Bystřice - Rohoznice: 7|1 -Chrudimka - Hamry: 11|2 -Chrudimka - Lány: 173|2 -Chrudimka - Mezisvětí: 12|2 -Chrudimka - Nemošice: 13|2 -Chrudimka - Padrty: 159|2 -Chrudimka - Přemilov: 174|2 -Chrudimka - Svídnice: 14|2 -Cidlina - Chlumec nad Cidlinou: 281|1 -Cidlina - Jičín: 177|1 -Cidlina - Nový Bydžov: 9|1 -Cidlina - Sány: 10|1 -Cidlina - Žehuňský náhon - přítok: 321|1 -Cidlina - Žehuňský rybník - přítok: 320|1 -Černá Desná - Jezdecká: 181|1 -Černá Desná - Souš: 162|1 -Černá Nisa - Rudolfov: 186|1 -Černá Nisa - Uhlířská: 185|1 -Čistá - Hostinné: 201|1 -Dědina - Chábory: 15|2 -Dědina - Mitrov: 16|2 -Dědina - Žákovec: 17|2 -Divoká Orlice - Klášterec nad Orlicí: 18|2 -Divoká Orlice - Kostelec nad Orlicí: 19|2 -Divoká Orlice - Litice: 20|2 -Divoká Orlice - Nekoř: 21|2 -Divoká Orlice - Orlické Záhoří: 267|2 -Doubrava - Bílek: 268|2 -Doubrava - Pařížov: 23|2 -Doubrava - Spačice: 175|2 -Doubrava - Žleby: 24|2 -Dřevíč - Velký Dřevíč: 25|1 -Fojtka - Fojtka: 187|1 -Harcovský potok - Harcov: 184|1 -Javorka - Lázně Bělohrad: 160|1 -Jeřice - Mníšek: 167|1 -Jizera - Bakov nad Jizerou: 1026|1 -Jizera - Dolní Sytová: 28|1 -Jizera - Jablonec nad Jizerou: 29|1 -Jizera - Předměřice: 31|1 -Jizera - Turnov: 182|1 -Jizera - Železný Brod: 32|1 -Jizerka - Dolní Štěpanice: 161|1 -Kalenský potok - Dolní Olešnice: 171|1 -Kamenice - Josefův Důl: 33|1 -Kamenice - Kristiánov: 34|1 -Kamenice - Plavy: 35|1 -Kněžná - Rychnov nad Kněžnou: 36|2 -Krounka - Otradov: 270|2 -Labe - Brandýs nad Labem: 37|3 -Labe - Brod: 226|1 -Labe - Děčín: 1042|3 -Labe - Hostinné: 47|1 -Labe - Jaroměř: 50|1 -Labe - Kostelec nad Labem: 233|3 -Labe - Labská: 55|1 -Labe - Les Království: 56|1 -Labe - Litoměřice: 223|3 -Labe - Mělník: 60|3 -Labe - Němčice: 61|3 -Labe - Nymburk: 63|3 -Labe - Opatovice nad Labem: 65|3 -Labe - Přelouč: 71|3 -Labe - Střekov: 74|3 -Labe - Špindlerův Mlýn: 75|1 -Labe - Ústí nad Labem: 1079|3 -Labe - Vestřev: 227|1 -Ležák - Zaječice: 224|2 -Loučná - Cerekvice nad Loučnou: 85|2 -Loučná - Dašice: 86|2 -Loučná - Litomyšl: 163|2 -Lužická Nisa - Hrádek nad Nisou: 83|1 -Lužická Nisa - Liberec: 84|1 -Lužická Nisa - Proseč nad Nisou: 168|1 -Malé Labe - Horní Lánov: 228|1 -Malé Labe - Prosečné: 169|1 -Metuje - Hronov: 87|1 -Metuje - Jaroměř: 88|1 -Metuje - Krčín: 89|1 -Metuje - Maršov nad Metují: 90|1 -Mohelka - Chocnějovice: 91|1 -Mrlina - Vestec: 92|1 -Mšenský potok - Mšeno: 183|1 -Mumlava - Janov-Harrachov: 179|1 -Novohradka - Luže: 273|2 -Novohradka - Úhřetice: 164|2 -Ohře - Louny: 93|3 -Olešenka - Peklo: 269|1 -Oleška - Slaná: 180|1 -Orlice - Hradec Králové: 97|1 -Orlice - Týniště nad Orlicí: 98|2 -Pilníkovský potok - Chotěvice: 170|1 -Rokytenka - Žamberk: 116|2 -Rozkošský potok - Rozkoš: 117|1 -Řasnice - Frýdlant - Řasnice: 189|1 -Smědá - Bílý Potok: 119|1 -Smědá - Frýdlant: 120|1 -Smědá - Předlánce: 121|1 -Stěnava - Meziměstí: 141|1 -Stěnava - Otovice: 142|1 -Šembera - Český Brod: 280|2 -Štítarský potok - Svídnice: 221|1 -Tichá Orlice - Čermná nad Orlicí: 143|2 -Tichá Orlice - Dolní Libchavy: 222|2 -Tichá Orlice - Lichkov: 144|2 -Tichá Orlice - Sobkovice: 145|2 -Třebovka - Třebovice: 147|2 -Třebovka - Ústí nad Orlicí: 146|2 -Úpa - Horní Maršov: 149|1 -Úpa - Horní Staré Město: 172|1 -Úpa - Slatina nad Úpou: 150|1 -Úpa - Zlíč: 151|1 -Vltava - Vraňany: 154|3 -Vrchlice - Malešov: 176|2 -Vrchlice - Vrchlice: 166|2 -Výrovka - Plaňany: 157|2 -Zdobnice - Slatina nad Zdobnicí: 158|2 diff --git a/stations/pla_srazky.txt b/stations/pla_srazky.txt deleted file mode 100644 index 464b38d..0000000 --- a/stations/pla_srazky.txt +++ /dev/null @@ -1,79 +0,0 @@ -Albrechtický potok - Mlýnice: 108|1 -Bělá - Častolovice: 2|2 -Bystřice - Rohoznice: 7|1 -Chrudimka - Hamry: 102|2 -Chrudimka - Křižanovice: 105|2 -Chrudimka - Seč: 113|2 -Chrudimka - Vortová: 196|2 -Cidlina - Lučice: 8|1 -Cidlina - Nová Paka: 215|1 -Cidlina - Žlunice: 217|1 -Černá Desná - Souš: 114|1 -Černá Nisa - Bedřichov: 100|1 -Černá Nisa - Rudolfov: 200|1 -Dědina - Dobřany: 123|2 -Dědina - Osečnice: 131|2 -Dědina - Sedloňov: 136|1 -Divoká Orlice - Hanička: 124|2 -Divoká Orlice - Orlické Záhoří: 22|2 -Divoká Orlice - Pastviny: 110|2 -Divoká Orlice - Zakletý Vrch: 140|2 -Doubrava - Bílek PLA: 165|2 -Doubrava - Golčův Jeníkov: 198|2 -Doubrava - Pařížov: 111|2 -Dřevíč - Velký Dřevíč: 25|1 -Fojtka - Fojtka: 101|1 -Harcovský potok - Harcov: 103|1 -Jizera - Dolní Sytová: 28|1 -Jizera - Turnov: 199|1 -Jizerka - Dolní Štěpanice: 161|1 -Kamenice - Černá hora/J.Důl: 230|1 -Kamenice - Hřebínek: 231|1 -Kamenice - Josefův Důl: 104|1 -Kamenice - Nová Louka: 214|1 -Kněžná - Rampuše: 134|2 -Labe - Brandýs nad Labem: 38|3 -Labe - Hradec Králové: 49|1 -Labe - Hradišťko: 48|3 -Labe - Kolín: 53|3 -Labe - Labská: 106|1 -Labe - Labská bouda: 128|1 -Labe - Les Království: 107|1 -Labe - Luční bouda: 129|1 -Labe - Medvědín: 130|1 -Labe - Obříství: 64|3 -Labe - Pardubice: 67|3 -Labe - Pláně: 133|1 -Labe - Předměřice: 69|1 -Labe - Přelouč: 68|3 -Labe - Roudnice nad Labem: 72|3 -Labe - Smiřice: 73|1 -Labe - Srnojedy: 76|3 -Labe - Střekov: 74|3 -Labe - Špindlerovka: 138|1 -Labe - Vlčice: 191|1 -Ležák - Zaječice: 224|2 -Loučná - Sebranice: 194|2 -Loučná - Trstěnice: 193|2 -Loučná - Vysoké Mýto: 195|2 -Malé Labe - Prosečné: 169|1 -Metuje - Náchod-Bražec: 122|1 -Metuje - Radvanice: 135|1 -Mohelka - Chocnějovice: 91|1 -Mrlina - Libáň-Zliv: 216|1 -Mšenský potok - Mšeno: 109|1 -Novohradka - Nová Ves: 225|2 -Novohradka - Štěpánov: 197|2 -Pilníkovský potok - Chotěvice: 170|1 -Rokytenka - Žamberk: 116|2 -Rozkošský potok - Rozkoš: 112|1 -Smědá - Krásný Les: 274|1 -Štítarský potok - Svídnice: 221|1 -Tichá Orlice - Horní Čermná: 125|2 -Tichá Orlice - Lichkov: 144|2 -Tichá Orlice - Suchý vrch: 192|2 -Třebovka - Třebovice: 147|2 -Třebovka - Vysoké Pole: 139|2 -Úpa - Černá hora: 190|1 -Vrchlice - Vrchlice: 115|2 -Vrchlice - Žandov: 218|2 diff --git a/stations/pod_nadrze.txt b/stations/pod_nadrze.txt deleted file mode 100644 index 5385c43..0000000 --- a/stations/pod_nadrze.txt +++ /dev/null @@ -1,7 +0,0 @@ -VD Žermanice - Lučina: 300021282|2 -VD Kružberk - Moravice: 300044836|1 -VD Slezská Harta - Moravice: 300021251|1 -VD Morávka - Morávka: 300021298|2 -VD Olešná - Olešná: 300021290|2 -VD Šance - Ostravice: 300021326|2 -VD Těrlicko - Stonávka: 300020244|2 diff --git a/stations/pod_sap.txt b/stations/pod_sap.txt deleted file mode 100644 index 3bf9471..0000000 --- a/stations/pod_sap.txt +++ /dev/null @@ -1,69 +0,0 @@ -Baštice - KS Baška: 300021280|2 -Bělá - KS Mikulovice: 300021250|1 -Bělá - LG Jeseník: 300021380|1 -Bílovka - LG Bílovec: 300058631|1 -Bílá Opava - LG Ludvíkov: 300283037|1 -Husí potok - KS Fulnek: 300021340|1 -Hvozdnice - LG Otice: 300044841|1 -Jičínka - LG Nový Jičín: 300049867|1 -Krasovka - LG Radim: 300283040|1 -Lomná - LG Jablunkov - Lomná: 300021330|2 -Lubina - KS Petřvald: 300021342|1 -Lubina - KS Vlčovice: 300021338|1 -Luha - KS Jeseník nad Odrou: 300256550|1 -Lučina - KS Žermanice: 300021282|2 -Lučina - LG Bludovice: 300021312|2 -Lučina - LG Radvanice: 300021372|2 -Mohelnice - LG Raškovice: 300021308|2 -Moravice - KS Branka: 300021396|1 -Moravice - KS Kružberk: 300044836|1 -Moravice - KS Slezská Harta: 300021251|1 -Moravice - KS Valšov: 300044837|1 -Moravice - LG Podhradí: 300021388|1 -Morávka - KS Morávka: 300021298|2 -Morávka - KS Vyšní Lhoty: 300021314|2 -Morávka - LG Morávka: 300021384|2 -Odra - KS Bartošovice: 300021344|1 -Odra - KS Bohumín: 300056549|2 -Odra - KS Odry: 300021348|1 -Odra - KS Svinov: 300021374|2 -Olešná - KS Olešná: 300021290|2 -Olešná - LG Palkovice: 300021294|2 -Olše - KS Dětmarovice: 300021390|2 -Olše - KS Jablunkov na Olši: 300044843|2 -Olše - KS Věřňovice: 300021392|2 -Olše - KS Český Těšín - Baliny: 300045555|2 -Ondřejnice - KS Kozlovice: 300021336|1 -Ondřejnice - LG Brušperk: 300044842|1 -Opava - KS Děhylov: 300020254|1 -Opava - KS Opava: 300021398|1 -Opava - LG Držkovice: 300283039|1 -Opava - LG Karlovice: 300021258|1 -Opava - LG Krnov na Opavě: 300020252|1 -Opavice - KS Město Albrechtice: 300283038|1 -Opavice - LG Krnov na Opavici: 300044839|1 -Osoblaha - KS Osoblaha: 300045558|1 -Ostravice - KS Šance: 300021326|2 -Ostravice - LG Frýdek Místek: 300021316|2 -Ostravice - LG Slezská Ostrava: 300044840|2 -Ostravice - LG Staré Hamry: 300021334|2 -Petrůvka - LG Zebrzydowice: 300050151|2 -Podolský potok - KS Rýmařov: 300050026|1 -Polančice - LG Polanka: 300212457|2 -Porubka - LG Vřesina: 300045536|2 -Ropičanka - KS Smilovice: 300021364|2 -Sedlnice - LG Sedlnice: 300058632|1 -Sezina - KS Bravantice: 300256551|1 -Starobělský potok - LG Stará Bělá: 300212459|2 -Staříč - LG Lipová Lázně: 300021300|1 -Stonávka - KS Hradiště: 300021272|2 -Stonávka - KS Těrlicko: 300020244|2 -Střední Opava - LG Vrbno p. Pradědem: 300283036|1 -Tichava (Tichávka) - KS Tichá: 300256549|1 -Vidnávka - KS Vidnava: 300021268|1 -Zlatý potok - LG Zlaté Hory: 300056298|1 -Zátoráček - LG Zátor: 300283041|1 -Čeladenka - KS Čeladná: 300049864|2 -Černá Opava - LG Mnichov: 300021382|1 -Černý potok - KS Mezina: 300020266|1 -Čižina - LG VN Pocheň: 300050201|1 diff --git a/stations/pod_srazky.txt b/stations/pod_srazky.txt deleted file mode 100644 index caeeeac..0000000 --- a/stations/pod_srazky.txt +++ /dev/null @@ -1,72 +0,0 @@ -Bělá - LG Bělá Mikulovice: 300021250|1 -Bělá - SS Jeseník: 300280074|1 -Bělá - SS Rejvíz: 300280073|1 -Bílovka - SS Nový Dvůr: 300280095|1 -Bílovka - SS Slatina: 300280096|1 -Bílá Ostravice - SS Bumbálka: 300280061|2 -Husí potok - KS Fulnek: 300021340|1 -Jičínka - SS Kojetín: 300280099|1 -Jičínka - SS Velký Javorník: 300280087|1 -Lomná - SS Slavíč chata: 300280059|2 -Lubina - KS Petřvald: 300021342|1 -Lubina - KS Vlčovice: 300021338|1 -Luha - KS Jeseník nad Odrou: 300256550|1 -Luha - SS Jindřichov: 300280097|1 -Lučina - KS Žermanice: 300021282|2 -Moravice - KS Branka: 300021396|1 -Moravice - KS Kružberk: 300044836|1 -Moravice - KS Slezská Harta: 300021251|1 -Moravice - KS Valšov: 300044837|1 -Moravice - SS Jelenice: 300280066|1 -Moravice - SS Novoveský vrch: 300280070|1 -Morávka - KS Morávka: 300021298|2 -Morávka - KS Vyšní Lhoty: 300021314|2 -Morávka - SS Kotař: 300280058|2 -Odra - KS Bartošovice: 300021344|1 -Odra - KS Bohumín: 300056549|2 -Odra - KS Odry: 300021348|1 -Odra - KS Svinov: 300021374|2 -Odra - SS Františkův Dvůr: 300280067|1 -Odra - SS Hostašovice: 300280064|1 -Odra - SS Kletné: 300280090|1 -Olešná - KS Olešná: 300021290|2 -Olše - KS Dětmarovice: 300021390|2 -Olše - KS Jablunkov na Olši: 300044843|2 -Olše - KS Věřňovice: 300021392|2 -Olše - KS Český Těšín - Baliny: 300045555|2 -Olše - SS Istebná (Polsko): 300280091|2 -Olše - SS Konczyce (Polsko): 300280089|2 -Olše - SS Nýdek: 300280053|2 -Olše - SS Třinec: 300021366|2 -Ondřejnice - KSKozlovice: 300021336|1 -Opava - KS Děhylov: 300020254|1 -Opava - KS Opava: 300021398|1 -Opava - SS Borová: 300280081|1 -Opava - SS Branice (Polsko): 300280094|1 -Opava - SS Cvilín: 300280079|1 -Opava - SS Ovčárna: 300280071|1 -Opava - SS Vrbno pod Pradědem: 300280072|1 -Opavice - KS Město Albrechtice: 300283038|1 -Opavice - SS Křížová: 300283055|1 -Opavice - SS Radynia (Polsko): 300280092|1 -Osoblaha - KS Osoblaha: 300045558|1 -Osoblaha - SS Biskupská kupa: 300280077|1 -Ostravice - KS Slezská Ostrava: 300044840|2 -Ostravice - KS Šance: 300021326|2 -Ostravice - SS Ondřejník: 300280062|2 -Petrůvka - SS Sowiniec: 300280088|2 -Podolský potok - KS Rýmařov: 300050026|1 -Porubka - SS Pustá Polom: 300280065|1 -Sedlnice - SS Štramberk: 300280098|1 -Sezina - KS Bravantice: 300256551|1 -Staříč - SS Ramzová: 300280076|1 -Stonávka - KS Těrlicko: 300020244|2 -Stonávka - SS Babí Hora: 300280057|2 -Tichava (Tichávka) - KS Tichá: 300256549|1 -Tyra - SS Javorový: 300280056|2 -Vidnávka - KS Vidnava: 300021268|1 -Čeladenka - KS Čeladná: 300049864|2 -Černá Ostravice - SS Bílý Kříž: 300280060|2 -Černý potok - KS Mezina: 300020266|1 -Černý potok - SS Anenský vrch: 300280069|1 -Čižina - SS Brumovice: 300280080|1 diff --git a/stations/poh_nadrze.txt b/stations/poh_nadrze.txt deleted file mode 100644 index 11fe45b..0000000 --- a/stations/poh_nadrze.txt +++ /dev/null @@ -1,20 +0,0 @@ -VD Všechlapy - Bouřlivec: 2091|2 -VD Jirkov - Bílina: 2034|2 -VD Újezd - Bílina: 2043|2 -VD Chřibská - Chřibská Kamenice: 3092|3 -VD Fláje - Flájský potok: 2037|2 -VD Kamenička - Kamenička: 2033|2 -VD Křímov - Křímovský potok: 2032|2 -VD Horka - Libocký potok: 1091|1 -VD Stanovice - Lomnický potok: 1012|1 -VD Janov - Loupnice: 2036|2 -VD Jesenice - Odrava: 1002|1 -VD Kadaň - Ohře: 2001|2 -VD Nechranice - Ohře: 2002|2 -VD Skalka - Ohře: 1001|1 -VD Stráž pod Ralskem - Ploučnice: 3091|3 -VD Přísečnice - Přísečnice: 2031|2 -VD Březová - Teplá: 1011|1 -VD Podhora - Teplá: 1021|1 -VD Myslivny F-M - Černá: 1092|1 -VD Mariánské Lázně - Úšovický potok: 1022|1 diff --git a/stations/poh_sap.txt b/stations/poh_sap.txt deleted file mode 100644 index 7c2b205..0000000 --- a/stations/poh_sap.txt +++ /dev/null @@ -1,46 +0,0 @@ -Blšanka - LG Kryry: 3432|3 -Bouřlivec - LG Všechlapy - odtok: 2423|2 -Bystřice - LG Ostrov nad Ohří: 1430|1 -Bílina - LG Bílina (ČD): 2473|2 -Bílina - LG Jirkov - odtok: 2443|2 -Bílina - LG Trmice: 2424|2 -Bílina - LG Újezd: 2414|2 -Bílý potok - LG Bílý Potok - Záluží: 2449|2 -Chomutovka - LG Chomutov (MÚ): 2475|2 -Chomutovka - LG III. Mlýn: 2439|2 -Chřibská Kamenice - LG Chřibská - odtok: 3412|3 -Flájský potok-HVT č. 152, 153, 163 - LG Český Jiřetín: 2448|2 -Hačka - LG Hačka - pod odlehčením: 2407|2 -Kamenice - LG Srbská Kamenice: 3422|3 -Liboc - LG Vilémov: 3431|3 -Libocký potok - LG Horka: 1409|1 -Lomnický potok - LG Stanovice: 1426|1 -Loupnice - LG Janov - odtok: 2446|2 -Mandava - HVT č.14 - LG Varnsdorf: 3424|3 -Odrava-HVT č. 37 - LG Jesenice: 1994|1 -Ohře - Jez Terezín dolní hladina: 3477|3 -Ohře - Jez Terezín horní hladina: 3104|3 -Ohře - LG Brozany: 3403|3 -Ohře - LG Cheb: 1404|1 -Ohře - LG Citice: 1410|1 -Ohře - LG Drahovice: 1429|1 -Ohře - LG Klášterec nad Ohří: 2401|2 -Ohře - LG Louny: 3402|3 -Ohře - LG Stranná: 2404|2 -Ohře - LG Žatec: 3401|3 -Panenský potok - LG Pertoltice: 3426|3 -Ploučnice - LG Benešov nad Ploučnicí: 3410|3 -Ploučnice - LG Mimoň: 3408|3 -Ploučnice - LG Stráž pod Ralskem - město: 3407|3 -Ploučnice - LG Česká Lípa: 3409|3 -Přísečnický potok - LG Přísečnice: 2433|2 -Robečský p. (Mlýnský) - LG Zahrádky: 3428|3 -Rolava - LG Stará Role: 1417|1 -Svatava-HVT č. 220 - LG Kraslice: 1411|1 -Svatava-HVT č. 220 - LG Svatava: 1414|1 -Svitávka - LG Zákupy: 3421|3 -Teplá - LG Březová: 1423|1 -Teplá - LG Jánský most: 1427|1 -Teplá - LG Podhora: 1419|1 -Teplá - LG Teplička: 1422|1 -Úštěcký potok - LG Vědlice: 3425|3 diff --git a/stations/poh_srazky.txt b/stations/poh_srazky.txt deleted file mode 100644 index f074603..0000000 --- a/stations/poh_srazky.txt +++ /dev/null @@ -1,47 +0,0 @@ -Blšanka - KS Kryry: 3432|3 -Bouřlivec - KS Všechlapy: 2091|2 -Bystřice - KS Abertamy: 1488|1 -Bílina - KS Jirkov: 2034|2 -Bílina - KS Jiřetín: 2141|2 -Bílina - KS Újezd: 2043|2 -Chomutovka - KS Hora Sv.Šebestiána: 2481|2 -Chřibská Kamenice - KS Chřibská: 3092|3 -Debrný potok - KS Prachomety: 1487|1 -Flájský potok - KS Fláje: 2037|2 -Jílovský potok - KS Libouchec: 3480|3 -Kamenička - KS Kamenička: 2033|2 -Křímovský potok - KS Křímov: 2032|2 -Libava - KS Rovná: 1485|1 -Liboc - KS Vilémov: 3431|3 -Libocký potok - KS Horka: 1091|1 -Lipoltovský potok - KS Dolní Žandov: 1484|1 -Lomnický potok - KS Dlouhá Lomnice: 1489|1 -Lomnický potok - KS Stanovice: 1012|1 -Loupnice - KS Horní Jiřetín: 2418|2 -Loupnice - KS Janov: 2036|2 -Lubinka - KS Luby: 1480|1 -Lužický potok - KS Žichov: 2482|2 -Odrava - KS Jesenice: 1002|1 -Odrava-HVT č. 37 - KS Slapany: 1405|1 -Ohře - KS Terezín: 3104|3 -Ohře - KS Citice: 1410|1 -Ohře - KS Kadaň: 2001|2 -Ohře - KS Nechranice: 2002|2 -Ohře - KS Skalka: 1001|1 -Ohře - KS Stráž nad Ohří: 1490|1 -Ohře - KS Žatec: 3401|3 -PPV (přivaděč Ohře Bílina-POB) - KS Hačka: 2408|2 -Ploučnice - KS Stráž pod Ralskem: 3091|3 -Ploučnice - KS Česká Lípa: 3481|3 -Pramenský potok - KS Mnichov: 1222|1 -Prunéřovský potok - KS Celná: 2231|2 -Přísečnice - KS Přísečnice: 2031|2 -Rotava - KS Přebuz: 1481|1 -Stinný potok - KS Hazlov: 1483|1 -Syčivka - KS Lukov: 2483|2 -Teplá - KS Bečov: 1421|1 -Teplá - KS Březová: 1011|1 -Teplá - KS Podhora: 1021|1 -Teplá - KS Teplička: 1211|1 -Ušovický potok - KS Mariánské Lázně: 1022|1 -Veseřice - KS Klínovec: 1482|1 diff --git a/stations/pvl_nadrze.txt b/stations/pvl_nadrze.txt deleted file mode 100644 index ae8a09d..0000000 --- a/stations/pvl_nadrze.txt +++ /dev/null @@ -1,40 +0,0 @@ -VD Bílsko - Bílský potok: BIBI|1 -VD Husinec - Blanice (PI): BLHU|1 -VD Soběnov - Černá: CRSO|1 -VD Dráteník - Červený potok (BE): CPDR|3 -VD Záskalská - Červený potok (BE): CPZA|3 -VD Dolejší Padrťský rybník - Klabava: KLDP|3 -VD Hořejší Padrťský rybník - Klabava: KLHP|3 -VD Klabava - Klabava: KLKL|3 -VD Klíčava - Klíčava: KCKC|3 -VD Láz - Litavka: LILA|3 -VD Římov - Malše: MARI|1 -VD Hracholusky - Mže: MZHR|3 -VD Lučina - Mže: MZLU|3 -VD Plzeň-Štruncovy sady - Mže: MZSS|3 -VD Obecnice - Obecnický potok: OPOB|3 -VD Pilská (u Příbramě) - Pilský potok: PPPI|3 -VD České Údolí - Radbuza: RACU|3 -VD Pilská u Žďáru - Sázava: SAPI|2 -VD Němčice - Sedlický potok: SPNE|2 -VD Staviště - Staviště: SVSV|2 -VD Humenice - Stropnice: SCHU|1 -VD Strž - Stržský potok: STST|2 -VD Žlutice - Střela: STZL|3 -VD Karhof - Studenský potok: SPKA|1 -VD Zhejral - Studenský potok: SPZH|1 -VD Suchomasty - Suchomastský potok: SMSM|3 -VD Trnávka - Trnava: TRTR|2 -VD Nýrsko - Úhlava: UHNY|3 -VD Hněvkovice - Vltava: VLHN|1 -VD Kamýk - Vltava: VLKA|2 -VD Kořensko - Vltava: VLKO|1 -VD Lipno 1 - Vltava: VLL1|1 -VD Lipno 2 - Vltava: VLL2|1 -VD Orlík - Vltava: VLOR|2 -VD Slapy - Vltava: VLSL|2 -VD Štěchovice - Vltava: VLST|2 -VD Vrané - Vltava: VLVE|2 -VD Sedlice - Želivka: HESE|2 -VD Švihov (Želivka) - Želivka: ZESV|2 -VD Vřesník - Želivka: HEVR|2 diff --git a/stations/pvl_sap.txt b/stations/pvl_sap.txt deleted file mode 100644 index e687b3e..0000000 --- a/stations/pvl_sap.txt +++ /dev/null @@ -1,304 +0,0 @@ -Bakovský potok - LG Velvary: BPVE|2 -Bělá (PE) - LG Pelhřimov: BAPE|2 -Bělá (PE) - LG Radětín: BARA|2 -Bělá (PS) - LG Dolní Bělá: BBDB|3 -Benešovský potok - LG Mrač: BPMR|2 -Berounka - LG Beroun B: BEBE|3 -Berounka - LG Lety most: BELM|3 -Berounka - LG Liblín: BELI|3 -Berounka - LG Plzeň-Bílá Hora: BEPL|3 -Berounka - LG Praha - Radotín - lávka: BERA|2 -Berounka - LG Srbsko: BESR|3 -Berounka - LG Zbečno: BEZB|3 -Bezdrevský potok - LG Lékařova Lhota: BPLL|1 -Bezdrevský potok - LG Netolice: BPNE|1 -Bílinský potok - LG Koloměřice: BPKO|1 -Blanice (BN) - LG Běleč-Šelmberk: BLBS|2 -Blanice (BN) - LG Louňovice: BLLO|2 -Blanice (BN) - LG Radonice-Zdebudeves: BLRA|2 -Blanice (PI) - LG Bavorov: BLBA|1 -Blanice (PI) - LG Blanický mlýn: BLBM|1 -Blanice (PI) - LG Heřmaň: BLHE|1 -Blanice (PI) - LG Koráz: BLKO|1 -Blanice (PI) - LG odtok VD Husinec: BLHS|1 -Blanice (PI) - LG Podedvorský mlýn: BLPO|1 -Blanice (PI) - LG Protivín: BLPR|1 -Blažejovický potok - LG Blažejovice: BPBL|2 -Borovský potok - LG Stříbrné Hory: BPSH|2 -Botič - LG Kocanda: BOKO|2 -Botič - LG odtok VD Hostivař: BOHS|2 -Botič - LG Praha-Nusle: BOPN|2 -Botič - LG Praha-Petrovice: BOPE|2 -Botič - LG Průhonice B: BOPR|2 -Bradava - LG Borovno: BRBO|3 -Bradava - LG Žákava: BRZA|3 -Brzina - LG Hrachov: BRHR|2 -Břevnický potok - LG Břevnice: BVBV|2 -Březový potok - LG Babín: BPBA|1 -Bystrá (Konopišťský potok) - LG Poříčí nad Sázavou: KPPO|2 -Cerekvický potok - LG Vlásenice: CPVL|2 -Chodská Úhlava - LG Hadrava: CUHA|3 -Chotovínský potok - LG Zárybničná Lhota: COZL|1 -Chotýšanka - LG Slověnice: CHSL|2 -Chotýšanka - LG Smikovský rybník: CHSR|2 -Chumava - LG Libomyšl: CMLI|3 -Chvalšinský potok - LG Chvalšiny: CPCV|1 -Cikánský potok - LG Řepešín: CIRE|1 -Čerchovka (Černý potok) - LG Klenčí: CEKL|3 -Čerchovka (Černý potok) - LG Meclov: CEME|3 -Černá - LG Líčov: CRLC|1 -Černičský potok - LG Miřenice: CPMI|1 -Černovický potok - LG Tučapy: CPTU|1 -Červený potok (BE) - LG Hořovice: CPHO|3 -Dobřejovický potok - LG Průhonice D: DPPR|2 -Dračice (Reißbach) - LG Gopprechts: DRGO|1 -Dračice (Reißbach) - LG Klikov: DRKL|1 -Dračice (Reißbach) - LG Nová Bystřice: DRNB|1 -Drnový potok - LG Běšiny: DPBE|3 -Drnový potok - LG Klatovy: DPKL|3 -Drnový potok - LG Vrhaveč: DPNE|3 -Dubský potok - LG Dubská Lhota: DUDL|1 -Hadovka - LG Kokašice: HDKO|3 -Hamerský potok (JH) - LG Oldříš-Blažejov: HPOL|1 -Hamerský potok (KT) - LG Antýgl: HAAN|1 -Hamerský potok (TC) - LG Planá (u Mariánských Lázní): HPPL|3 -Hejlovka - LG Čakovice: HECA|2 -Hejlovka - LG Kojčice: HEKO|2 -Hejlovka - LG Vlásenice H: HEVL|2 -Holoubkovský potok - LG Rokycany-Dvořákova: HPRO|3 -Jankovský potok - LG Milotice-Kletečná: JPMI|2 -Janovický potok - LG Krusičany J: JNKR|2 -Janovický potok - LG Václavice: JNVA|2 -Javornice - LG Javornice: JRMI|3 -Jelenka - LG Janovice nad Úhlavou J: JEJA|3 -Jelenka - LG Krotějov: JEKR|3 -Jevanský potok - LG Stříbrná Skalice: JVSK|2 -Kamenice - LG Kamenice nad Lipou: KAKA|1 -Kejtovský potok - LG Pacov: KPPA|2 -Klabava - LG Hrádek u Rokycan: KLHA|3 -Klabava - LG Nová Huť: KLNH|3 -Klabava - LG odtok VD Klabava: KLKB|3 -Klabava - LG Padrť: KLPA|3 -Klabava - LG Rokycany-Na Pátku: KLRO|3 -Klabava - LG Strašice: KLST|3 -Klíčava - LG Lány-Městečko: KCLM|3 -Klíčava - LG odtok VD Klíčava: KCKL|3 -Kocába - LG Daleké Dušníky: KODD|2 -Kocába - LG Štěchovice: KOST|2 -Kornatický potok - LG Příkosice: KNPR|3 -Kosový potok - LG Chotěnov: KPCO|3 -Kosový potok - LG Svahy-Třebel: KPST|3 -Kostěnický potok - LG Kosky-Hamr: KPKH|1 -Křemelná - LG Prášily: KRPR|1 -Křemelná - LG Stodůlky: KRST|1 -Křemžský potok - LG Brloh: KPBR|1 -Lánský potok - LG Lány-Běleč: LPLB|3 -Libotyňský potok - LG Vlachovo Březí: LBVO|1 -Litavka - LG Beroun L: LIBE|3 -Litavka - LG Čenkov: LICE|3 -Litavka - LG odtok VD Láz: LILZ|3 -Loděnice (Kačák) - LG Čelechovice: LDCE|3 -Loděnice (Kačák) - LG Loděnice: LDLD|3 -Loděnice (Kačák) - LG Malé Kyšice- Poteplí: LDMK|3 -Lomnice - LG Blatná: LOBL|1 -Lomnice - LG Dolní Ostrovec: LODO|1 -Lomnice - LG Předmíř: LOPR|1 -Lučický potok - LG Olesnice u Okrouhlice: LPOL|2 -Lužní potok - LG Mýto: LPMY|3 -Lužnice (Lainsitz) - LG Bechyně: LUBE|1 -Lužnice (Lainsitz) - LG Ehrendorf: LUEH|1 -Lužnice (Lainsitz) - LG Frahelž: LUFR|1 -Lužnice (Lainsitz) - LG Kazdovna: LUKA|1 -Lužnice (Lainsitz) - LG Klenovice: LUKL|1 -Lužnice (Lainsitz) - LG Nová Ves nad Lužnicí: LUNV|1 -Lužnice (Lainsitz) - LG Pilař-Majdalena: LUPI|1 -Lužnice (Lainsitz) - LG Rožmberk: LURZ|1 -Malše - LG Kaplice: MAKA|1 -Malše - LG Leopoldschlag: MALE|1 -Malše - LG Plav-Rechle: MARE|1 -Malše - LG Pořešín: MAPO|1 -Malše - LG Roudné: MARO|1 -Malše - LG Římov: MARM|1 -Manětínský potok - LG Manětín: MPMA|3 -Martinický potok - LG Senožaty: MPSE|2 -Mastník - LG Podolí: MSPO|2 -Mastník - LG Radíč: MSRA|2 -Merklínka - LG Merklín: MEME|3 -Merklínka - LG Újezdec: MEUJ|3 -Milevský potok - LG Milevsko: MPMI|1 -Mítovský potok - LG Mítov: MIMI|3 -Mlýnský potok (KT) - LG Horažďovice-Zářečí: MNHZ|1 -Mlýnský potok (KT) - LG Smrkovec: MNSM|1 -Mnichovka - LG Senohraby-Hrušov: MCSH|2 -Mochtínský potok - LG Sobětice: MPSO|3 -Myslívský potok - LG Záhoří: MYZA|3 -Mže - LG Kočov: MZKO|3 -Mže - LG Obora M: MZOB|3 -Mže - LG odtok VD Hracholusky: MZHY|3 -Mže - LG odtok VD Lučina: MZLC|3 -Mže - LG Stříbro M: MZST|3 -Nezdický potok - LG Rozsedly: NZRO|1 -Nežárka - LG Hamr nad Nežárkou: NEHA|1 -Nežárka - LG Lásenice: NELA|1 -Nežárka - LG Rodvínov: NERO|1 -Nová řeka - LG Mláka-Novosedly: NRML|1 -Nová řeka - LG Novořecké splavy - Jambor: NRNS|1 -Nučický (Vlkančický) potok - LG Vlkančice: NUVL|2 -Obecnický potok - LG Obecnice: OPOC|3 -Obecnický potok - LG odtok VD Obecnice: OPOO|3 -Ochozský potok - LG Polná: OCPO|2 -Ostružná - LG Jesení: OSJE|1 -Ostružná - LG Kolínec: OSKO|1 -Otava - LG Horažďovice: OTHO|1 -Otava - LG Katovice: OTKA|1 -Otava - LG Písek: OTPI|1 -Otava - LG Rejštejn: OTRE|1 -Otava - LG Strakonice: OTST|1 -Otava - LG Sušice: OTSU|1 -Otava - LG Topělec: OTTO|1 -Peklov - LG Nihošovice: PENI|1 -Pitkovický potok - LG Kuří: PPKU|2 -Pivoňka - LG Šitboř: PIZA|3 -Polečnice (Kájovský potok) - LG Český Krumlov: POCK|1 -Polečnice (Kájovský potok) - LG Novosedly: PONO|1 -Poleňka - LG Dolany P: PODO|3 -Poleňka - LG Poleň: POPO|3 -Poleňka - LG Slavíkovice: POSL|3 -Radbuza - LG Bělá nad Radbuzou: RABE|3 -Radbuza - LG Hradec u Stoda: RAHR|3 -Radbuza - LG Lhota: RALH|3 -Radbuza - LG odtok VD České Údolí: RAUD|3 -Radbuza - LG Staňkov: RAST|3 -Radbuza - LG Tasnovice: RATA|3 -Radotínský potok - LG Praha - Radotín: RPPR|2 -Rakovnický potok - LG Rakovník: RPRK|3 -Ratibořský potok - LG Ratiboř: RPRA|3 -Rokytka - LG odtok VD Kyjský rybník: ROKY|2 -Rokytka - LG Praha - Libeň: ROLI|2 -Rokytka - LG Praha-Vysočany: ROVY|2 -Romavský potok (Romaubach) - LG Heidenreichstein: RBHR|1 -Řečička - LG Otín: RCOT|1 -Řezná - LG Alžbětín: REAL|3 -Sázava - LG Chlístov: SACH|2 -Sázava - LG Český Šternberk: SACS|2 -Sázava - LG Kácov: SAKA|2 -Sázava - LG Kamenný Přívoz: SAKP|2 -Sázava - LG Nespeky: SANE|2 -Sázava - LG Pikovice: SAPK|2 -Sázava - LG Pohledští Dvořáci - Havlíčkův Brod: SAHB|2 -Sázava - LG Polnička: SAPL|2 -Sázava - LG Sázava u Žďáru: SASZ|2 -Sázava - LG Sázava-Černé Budy: SACB|2 -Sázava - LG Světlá nad Sázavou: SASV|2 -Sázava - LG Zruč nad Sázavou: SAZR|2 -Sázava - LG Žďár nad Sázavou: SAZD|2 -Sázavka - LG Josefodol: SZJD|2 -Sedlecký potok - LG Jesenice u Sedlčan: SPJE|2 -Sedlický potok - LG Leský mlýn: SPLM|2 -Sedlišťský potok - LG Kočov II: SEKO|3 -Sedlišťský potok - LG Staré Sedliště: SESS|3 -Skalice - LG Varvažov: SKVA|1 -Skalice - LG Zadní Poříčí: SKZP|1 -Sklářský potok - LG Obora S: SPOB|3 -Skořický potok - LG Mirošov: SPMI|3 -Skřemelice (Braunaubach) - LG Altmanns: SKAL|1 -Skřemelice (Braunaubach) - LG Hoheneich: SKHO|1 -Smutná - LG Božetice: SMBO|1 -Smutná - LG Rataje: SMRA|1 -Spůlka - LG Bohumilice: SPBO|1 -Stašský potok - LG Bláhov-Nový Dvůr: STND|1 -Staviště - LG Mělkovice-Plíčky: SVST|2 -Staviště - LG odtok VD Staviště: SVSE|2 -Strážovský potok - LG Strážov: SRST|3 -Stropnice - LG Borovany: SCBO|1 -Stropnice - LG Horní Stropnice: SCHS|1 -Stropnice - LG odtok VD Humenice: SCHM|1 -Stropnice - LG Pašínovice-Komářice: SCPA|1 -Stroupinský potok - LG Hředle: SPHV|3 -Stržský potok - LG odtok VD Strž: STSR|2 -Stržský potok - LG Světnov: STSV|2 -Střela - LG Čichořice: STCI|3 -Střela - LG odtok VD Žlutice: STZC|3 -Střela - LG Plasy: STPL|3 -Střela - LG Sovolusky: STSO|3 -Studená Vltava - LG Černý Kříž: SVCK|1 -Studenský potok - LG Horní Pole: SPHP|1 -Suchomastský potok - LG Suchomasty pod VD: SMSC|3 -Suchomastský potok - LG Suchomasty-přítok: SMSU|3 -Svinenský potok - LG Trhové Sviny: SPTS|1 -Svinský potok - LG Hamry S: SPHA|3 -Ševcovský potok - LG Obora V: SPOO|3 -Šlapanka - LG Mírovka: SLMI|2 -Teplá Vltava - LG Chlum: TVCH|1 -Teplá Vltava - LG Lenora: TVLE|1 -Teplá Vltava - LG Soumarský most: TVSM|1 -Tloskovský potok - LG Krusičany T: TLKR|2 -Točnický potok - LG Vícenice: TPVI|3 -Trnava - LG Červená Řečice: TRCR|2 -Trnava - LG Hořepník: TRHO|2 -Trnava - LG Těchobuz-Jetřichovec: TRTJ|2 -Trnava - LG Želiv - Kocanda: TRKO|2 -Třebýcinka - LG Nedaničky: TCNE|3 -Třemošná - LG Česká Bříza: TRCB|3 -Třemošná - LG Kaceřov: TRKA|3 -Třemošná - LG Nevřeň: TRNE|3 -Třítrubecký potok - LG Tři trubky: TTTT|3 -Úhlava - LG Hamry U: UHHA|3 -Úhlava - LG Janovice nad Úhlavou U: UHJA|3 -Úhlava - LG Jino: UHJI|3 -Úhlava - LG Klatovy-Tajanov: UHKL|3 -Úhlava - LG odtok VD Nýrsko: UHSL|3 -Úhlava - LG Přeštice: UHPR|3 -Úhlava - LG Štěnovice: UHST|3 -Úhlavka - LG Bonětice: UKBO|3 -Úhlavka - LG Stříbro U: UKST|3 -Únětický potok - LG Tuchoměrice: UPTU|2 -Úslava - LG Plánice: USPL|3 -Úslava - LG Plzeň-Koterov: USKO|3 -Úslava - LG Prádlo: USPR|3 -Úslava - LG Šťáhlavy: USST|3 -Úslava - LG Ždírec: USZD|3 -Úterský potok - LG Trpísty: UPTR|3 -Úterský potok - LG Úterý: UPUT|3 -Vejprnický potok - LG Nýřany: VPNY|3 -Vejprnický potok - LG Skvrňany: VPPS|3 -Větší Vltavice - LG Herbertov: VVHE|1 -Vltava - LG Březí: VLBR|1 -Vltava - LG České Budějovice: VLCB|1 -Vltava - LG Dolánky: VLDS|2 -Vltava - LG Husinec-Řež: VLHR|2 -Vltava - LG Miřejovice: VLMR|2 -Vltava - LG odtok VD Hněvkovice: VLHC|1 -Vltava - LG odtok VD Kamýk: VLKM|2 -Vltava - LG odtok VD Kořensko: VLKR|1 -Vltava - LG odtok VD Orlík: VLOL|2 -Vltava - LG odtok VD Slapy: VLSY|2 -Vltava - LG odtok VD Štěchovice: VLSE|2 -Vltava - LG odtok VD Vrané (PB pod VE): VLVN|2 -Vltava - LG Praha - Malá Chuchle: VLCH|2 -Vltava - LG Praha-Výtoň: VLPV|2 -Vltava - LG Spolí: VLKS|1 -Vltava - LG Vraňany: VLVX|2 -Vltava - LG Vyšší Brod: VLVB|1 -Vltava - LG Zátoň: VLZA|1 -Vltava - LG Zbraslav: VLZB|2 -Volšovka - LG Petrovice u Sušice: VSPE|1 -Volyňka - LG Nemětice: VONE|1 -Volyňka - LG Sudslavice: VOSU|1 -Vydra - LG Modrava: VYMO|1 -Výrovský potok - LG Skviřín: VRSK|3 -Závišínský potok - LG Závišín: ZVZA|1 -Zbirožský potok - LG Kařez: ZBKA|3 -Zelenský potok - LG Zelená Lhota: ZPZL|3 -Zlatá stoka - LG Pilař-Zlatá stoka: ZSPI|1 -Zlatý potok (PT) - LG Hracholusky: ZPHR|1 -Zubřina - LG Domažlice: ZUDO|3 -Zubřina - LG Havlovice: ZUHA|3 -Zubřina - LG Osvračín: ZUOS|3 -Želivka - LG Nesměřice: ZENE|2 -Želivka - LG Poříčí: ZEPO|2 -Želivka - LG Soutice: ZESO|2 -Želivka - LG Tukleky: ZETU|2 -Želivka - LG Želiv-Vřesník: ZEVR|2 -Žirovnice - LG Žirovnice: ZIZI|1 -Živný potok - LG Prachatice: ZPPR|1 diff --git a/stations/pvl_srazky.txt b/stations/pvl_srazky.txt deleted file mode 100644 index 21a2d47..0000000 --- a/stations/pvl_srazky.txt +++ /dev/null @@ -1,281 +0,0 @@ -Andělice - ASS Pocinovice: BEPO|3 -Bělá (PS) - ASS Horní Bělá: BEHB|3 -Berounka - AKS2 Dobřichovice: BEDS|3 -Berounka - AMS1 Plzeň-Mikulka: BEMI|3 -Berounka - ASS Beroun: BES6|3 -Berounka - ASS Liblín: BELS|3 -Berounka - KS Čichořice: STCI|3 -Berounka - KS Domažlice: ZUDO|3 -Berounka - KS Jíno: UHJI|3 -Berounka - KS Nýrsko: UHNY|3 -Berounka - KS Plasy: STPL|3 -Berounka - KS Trpisty: UPTR|3 -Berounka - KS Žlutice: STZC|3 -Berounka - LG Liblín: BELI|3 -Berounka - SS České Údolí: RACD|3 -Bezděkovský potok - AMS1 Přimda: BEPR|3 -Bezděkovský potok - ASS Bělá nad Radbuzou: BEBA|3 -Bílinský potok - ASS Bernartice: HVBE|1 -Blanice (BN) - LG Radonice-Zdebudeves: BLRA|2 -Blanice (PI) - AKS1 Husinec: HVHU|1 -Blanice (PI) - ASS Arnoštov: BLAR|1 -Blanice (PI) - ASS Spálenec: BLSP|1 -Blanice (PI) - LG Blanický mlýn: BLBM|1 -Blanice (PI) - LG Heřmaň: BLHE|1 -Blanice (PI) - VD Husinec: BLHU|1 -Blanička - ASS Paseky: HVPA|1 -Blatská stoka - AKS2 Borkovice: HVBO|1 -Blažejovický potok - LG Blažejovice: BPBL|2 -Bohunický potok - AMS1 Temelín: HVTE|1 -Bolevecký potok - AKS1 Plzeň-Bolevec: BEBO|3 -Botič - AKS4 Průhonice: DVPH|2 -Botič - AMS1 Praha-Karlov: DVKA|2 -Bradava - ASS Míšov, Borovno: BEBR|3 -Bradava - ASS Spálené Poříčí: BESI|3 -Brejlovský potok - AKS4 Netvořice: DVNE|2 -Brusnice - ASS Praha-Břevnov: DVBR|2 -Břetislavický potok - AKS1 Konstantinovy Lázně: BEKL|3 -Bystřický potok - ASS Nová Bystřice: HVNB|1 -Chudenický potok - ASS Chudenice: BECH|3 -Chudenínský potok - ASS Chudenín: BECU|3 -Chumava - AKS1 Neumětely: BENU|3 -Chýlava - ASS Těškov: BETS|3 -Cihlářský potok - AKS1 Havlíčkův Brod: DVHB|2 -Cikánský potok - ASS Šumavské Hoštice: HVSH|1 -Čerchovka (Černý potok) - ASS Otov: BEOT|3 -Černá - LG Líčov: CRLC|1 -Černá - VD Soběnov: CRSO|1 -Černičský potok - AKS1 Vlkonice: HVVL|1 -Černičský potok - ASS Ústaleč: HVUS|1 -Černovický potok - AKS2 Černovice, Dobešov: HVCE|1 -Černovický potok - LG Tučapy: CPTU|1 -Černý potok (CK) - AKS1 Černá v Pošumaví: HVCP|1 -Červený potok (BE) - ASS Hvozdec, Mrtník: BEHV|3 -Červený potok (BE) - VD Záskalská: CPZA|3 -Červený potok (ME) - ASS Slaný: DVSL|2 -Darmyšlský potok - ASS Darmyšl, Staré Sedlo: BEDA|3 -Dlouhý potok - ASS Netřebice: HVNE|1 -Dnešický potok - ASS Dnešice: BEDN|3 -Dobrovodský potok - ASS České Švýcarsko: DPCS|1 -Dolní Vltava - KS Němčice: SPNE|2 -Dolní Vltava - KS Radětín: BARA|2 -Dolní Vltava - KS VD Staviště: SVSV|2 -Dolní Vltava - KS VD Trnávka: TRTR|2 -Dolní Vltava - KS Zruč nad Sázavou: SAZR|2 -Dolský potok - ASS Krsy: BEKX|3 -Dračice (Reißbach) - SS Haugschlag: DRHA|1 -Drnový potok - AKS1 Klatovy: BEKT|3 -Drnový potok - ASS Běšiny: BEBN|3 -Dubovka - ASS Mezholezy: BEMZ|3 -Dyje (Thaya) - SS Limbach: DYLI|1 -Felberbach - SS Windhaag: FBWH|1 -Hajanský potok - AMS1 Kocelovice: HVKO|1 -Hamerský potok (JH) - ASS Strmilov: HVSM|1 -Hejlovka - ASS Božejov: HEBO|2 -Hejnický potok - ASS Ústí: HPUS|2 -Hlubočka - ASS Heřmanova Huť: BEHH|3 -Holoubkovský potok - ASS Mýto: BEMT|3 -Horní Vltava - KS Černý Kříž: SVCK|1 -Horní Vltava - KS Horní Pole: SPHP|1 -Horní Vltava - KS Horní Stropnice: SCHS|1 -Horní Vltava - KS Lenora: TVLE|1 -Horní Vltava - KS Modrava: VYMO|1 -Horní Vltava - KS Němětice: VONE|1 -Horní Vltava - KS Pilař-Majdaléna: ZSPI|1 -Horní Vltava - KS Varvažov: SKVA|1 -Horní Vltava - KS VD Humenice: SCHU|1 -Horní Vltava - KS Zátoň: VLZA|1 -Hořina - ASS Velký Malahov: BEVM|3 -Houženský potok - AKS2 Lenora-Houžná: HVLE|1 -Hradišťský potok - ASS Lštění: BELN|3 -Jesenický potok (PI) - AKS1 Vráž u Písku: HVVR|1 -Jezerní potok - ASS Jelení, Nová Pec: HVJE|1 -Kašperský potok - AKS Kašperské Hory: HVKH|1 -Kejtovský potok - ASS Pacov: DVPA|2 -Kejtovský potok - ASS Samšín: KPSA|2 -Kepelský potok - ASS Petrovice u Sušice: HVPE|1 -Kepelský potok - ASS Zámyšl: HVZA|1 -Klabava - ASS Hořejší Padrťský rybník: KLHP|3 -Klabava - ASS Praha: BEPH|3 -Klabava - ASS Rokycany: BERO|3 -Klabava - ASS Strašice: BESC|3 -Klabava - LG odtok VD Klabava: KLKB|3 -Klabava - LG Strašice: KLST|3 -Kladinský potok - ASS Korce: DVKR|2 -Klenečský potok - ASS Klenčí pod Čerchovem: BEKC|3 -Klíčava - LG odtok VD Klíčava: KCKL|3 -Klučná - ASS Karlova Ves: BEKV|3 -Knovízský potok - AKS2 Kralupy nad Vltavou: DVKV|2 -Kolešovický potok - AKS2 Heřmanov: BEHE|3 -Kolovečský potok - ASS Koloveč: BEKE|3 -Kornatický potok - ASS Kornatice: BEKN|3 -Kornatický potok - ASS Příkosice: BEPK|3 -Kosový potok - AKS2 Dyleň: BEDY|3 -Kosový potok - LG Svahy-Třebel: KPST|3 -Kostěnický potok - ASS Chlum u Třeboně: HVCT|1 -Košínský potok - AKS1 Tábor-Náchod: HVTA|1 -Kovčínský potok - ASS Myslív: BEMY|3 -Kralovický potok - KS Kralovice: BEKR|3 -Křakovský potok - ASS Miřkov: BEMV|3 -Křemelná - LG Stodůlky: KRST|1 -Křemžský potok - ASS Křemže: HVKR|1 -Křemžský potok - LG Brloh: KPBR|1 -Křivsoudovský potok - ASS Křivsoudov: KPKS|2 -Libějovický potok - ASS Chelčice: HVCL|1 -Libíňský potok - AKS1 Nedrahovice-Rudolec: DVSE|2 -Libušský potok - AMS1 Praha-Libuš: DVLI|2 -Lišanský potok - ASS Kounov: BEKO|3 -Litavka - VD Láz: LILA|3 -Lomnice - ASS Radošice: HVRA|1 -Luční potok (KT) - ASS Hartmanice: HVHA|1 -Lužní potok - ASS Lesná: LPLE|3 -Lužnice (Lainsitz) - AKS2 Třeboň-Lužnice nad Lužnicí: HVTR|1 -Lužnice (Lainsitz) - ASS Bechyně: HVBC|1 -Lužnice (Lainsitz) - LG Klenovice: LUKL|1 -Lužnice (Lainsitz) - LG Nová Ves nad Lužnicí: LUNV|1 -Lužný potok - ASS Staré Hutě: HVSU|1 -Malše - AMS2 České Budějovice, Rožnov: HVCB|1 -Malše - ASS Dolní Dvořiště: HVDD|1 -Malše - LG Pořešín: MAPO|1 -Malše - VD Římov: MARI|1 -Manětínský potok - ASS Bezvěrov: BEBZ|3 -Manětínský potok - ASS Manětín: BEMA|3 -Martinický potok - AMS1 Košetice: DVKO|2 -Martinický potok - ASS Lukavec: LPLU|2 -Melhutka - VD Třebanice: METR|1 -Merklínka - ASS Křenice: BEKI|3 -Merklínka - ASS Merklín: BEME|3 -Merklínka - ASS Všepadly: BEVS|3 -Mihovka - AKS1 Nepomuk: BENE|3 -Mindlovka - AKS2 Hlasivo: MIHL|1 -Misníček - AKS3 Sedlice: HVSE|1 -Mítovský potok - ASS Nové Mitrovice: BENM|3 -Mlýnský potok (HB) - ASS Štoky: ZPST|2 -Mlýnský potok (KT) - ASS Malý Bor: HVMB|1 -Mochtínský potok - ASS Chlístov: BECL|3 -Mochtínský potok - ASS Mochtín: BEMO|3 -Motolský potok - CVD Praha: GRPV|2 -Munický potok - ASS Hluboká nad Vltavou: HVHL|1 -Mže - AKS2 Stříbro: BESB|3 -Mže - ASS Tachov: BETA|3 -Mže - LG odtok VD Lučina: MZLC|3 -Mže - LG Stříbro M: MZST|3 -Mže - VD Hracholusky: MZHR|3 -Nadějkovský potok - AKS1 Nadějkov, Větrov: HVNA|1 -Nebušický potok - AMS Praha-Ruzyně: DVRU|2 -Nekmířský potok - ASS Nekmíř: BENK|3 -Nezbavětický potok - ASS Chválenice: BECV|3 -Nežárka - LG Rodvínov: NERO|1 -Novoveský potok - ASS Mladá Vožice: DVMV|2 -Obecnický potok - VD Obecnice: OPOB|3 -Odolenovický potok - AKS1 Krásné Údolí: BEKU|3 -Orlina - AKS4 Vlašim: DVVL|2 -Osojenský potok - ASS Hvozd: BEHD|3 -Ostružná - ASS Javorná: HVJA|1 -Ostružná - ASS Velhartice: HVVE|1 -Ostružná - LG Kolínec: OSKO|1 -Otava - AKS1 Strakonice: HVSK|1 -Otava - ASS Horažďovice: HVHO|1 -Otava - ASS Kestřany: HVKE|1 -Otava - ASS Sušice: HVSC|1 -Otava - LG Katovice: OTKA|1 -Otava - LG Písek: OTPI|1 -Peklov - ASS Volyně: HVVO|1 -Petrovický potok - ASS Předslav: BEPD|3 -Pilský potok - VD Pilská (u Příbramě): PPPI|3 -Pivoňka - ASS Pivoň: BEPV|3 -Planský potok - ASS Chodová Planá: BECP|3 -Planský potok - ASS Planá: BEPN|3 -Počátecký potok - AKS2 Počátky: HVPO|1 -Podhájský potok - ASS Lestkov: BELE|3 -Podhrázský potok - ASS Letiny: BELT|3 -Pohořský potok - ASS Pohorská Ves: HVPV|1 -Polečnice (Kájovský potok) - LG Novosedly: PONO|1 -Poleňka - ASS Doubrava: BEDB|3 -Prášilský potok - ASS Prášily: HVPR|1 -Příbramský potok - AKS1 Příbram-hvězdárna: BEPI|3 -Pstružný potok - ASS Humpolec: DVHU|2 -Puclický potok - AKS1 Staňkov: BEST|3 -Radbuza - ASS Horšovský Týn: BEHT|3 -Radbuza - ASS Rybník: BERY|3 -Radbuza - ASS Stod: BESO|3 -Radbuza - LG Lhota: RALH|3 -Radbuza - LG Tasnovice: RATA|3 -Radnický potok - ASS Přívětice: BEPE|3 -Rašelinný potok - ASS Kynžvart: BEKY|3 -Ratmírovský potok - AKS1 Jindřichův Hradec-Děbolín: HVJH|1 -Řezná - ASS Železná Ruda: REZR|3 -Sázava - AMS1 Přibyslav, Hřiště: DVPR|2 -Sázava - ASS PD Sázava: DVUS|2 -Sázavka - ASS Habry: DVHA|2 -Schwarze Aist - SS Karlstift: LUKS|1 -Sedlišťský potok - ASS Staré Sedliště: BESS|3 -Seradovský potok - AKS1 Ondřejov: DVON|2 -Skalice - AKS1 Rožmitál pod Třemšínem: HVRO|1 -Skalice - ASS Březnice: HVBR|1 -Smolovský potok - ASS Mrákov: BEMR|3 -Spůlka - AMS1 Churáňov: HVCH|1 -Starý potok - ASS Nečtiny: BENC|3 -Strašínský potok - ASS Strašín: HVST|1 -Strážovský potok - ASS Čachrov: BECA|3 -Strážovský potok - ASS Strážov: BESV|3 -Stropnice - AKS1 Nové Hrady-Byňov: HVBY|1 -Stržský potok - ASS Stržanov: DVST|2 -Střela - ASS Rabštejn: STRA|3 -Střela - ASS Žlutice: BEZL|3 -Svéradický potok - ASS Chanovice: HVCA|1 -Svinenský potok - ASS Trhové Sviny: HVTS|1 -Teplá Bystřice - ASS Česká Kubice: TBCK|3 -Teplá Vltava - AKS3 Borová Lada: HVBL|1 -Terešovský potok - ASS Terešov: BETE|3 -Touškovský potok - ASS Kostelec: BEKS|3 -Trnava - ASS Vodice: TRVO|2 -Třebýcinka - ASS Měčín: BEMC|3 -Třemošná - ASS Třemošná: BETR|3 -Tůně - ASS Lovčice, Kvasetice: BELO|3 -Tůně - ASS Neurazy: BENR|3 -Úhlava - ASS Nýrsko: BENY|3 -Úhlava - ASS Panciř: BEPA|3 -Úhlava - ASS Špičák: BESP|3 -Úhlavka - ASS Prostiboř: BEPB|3 -Úhlavka - ASS Stráž: BESZ|3 -Úlický potok - ASS Úlice: BEUL|3 -Úslava - ASS Nezvěstice: BENZ|3 -Úslava - ASS Plánice: BEPC|3 -Úslava - LG Plzeň-Koterov: USKO|3 -Úslava - LG Ždírec: USZD|3 -Úšovický potok - AKS1 Marianské Lázně, vodárna: BEML|3 -Vejprnický potok - ASS Nýřany: BENN|3 -Vinořský potok - AMS Praha-Kbely: DVKB|2 -Vintířovský potok - ASS Vintířov: VPVI|2 -Víska - ASS Kladrubce: BEKB|3 -Víska - ASS Oselce: BEOS|3 -Vltava - AKS1 Vyšší Brod: HVVB|1 -Vltava - AKS2 Český Krumlov-Přísečná: HVCK|1 -Vltava - AKS2 Praha-Klementinum: DVKL|2 -Vltava - ASS Kamýk nad Vltavou: DVKM|2 -Vltava - ASS Orlík nad Vltavou: DVOR|2 -Vltava - ASS Vraňany: DVVY|2 -Vltava - VD Orlík: VLOR|2 -Vltava - VD Slapy: VLSL|2 -Vodenský potok - ASS Kamenice nad Lipou-Vodná: HVKL|1 -Volyňka - AKS3 Vimperk: HVVI|1 -Voznický potok - ASS Voznice: DVVO|2 -Vydra - ASS Filipova Huť: HVFH|1 -Výrovský potok - ASS Bor u Tachova: BEBT|3 -Zahořanský potok - ASS Kdyně: BEKD|3 -Zámecký potok - AKS1 Lány: BELY|3 -Zbirožský potok - AKS2 Zbiroh, Švabín: BEZS|3 -Zbirožský potok - ASS Kařez: BEKA|3 -Zelenský potok - AKS1 Železná Ruda, Hojsova Stráž: ZPHS|3 -Zlatý potok (PJ) - ASS Horšice: BEHO|3 -Zlatý potok (PT) - AKS2 Ktiš, Tisovka: HVTI|1 -Zlonický potok - ASS Zlonice: DVZL|2 -Zubřina - AKS1 Domažlice: BEDZ|3 -Zubřina - ASS Pasečnice: BEPS|3 -Žebrácký potok - ASS Úněšov: BEUN|3 -Želivka - AKS4 Hulice: DVHC|2 -Želivka - ASS PD Budeč: DVUB|2 -Želivka - VD Sedlice: HESE|2 -Žihelský potok - ASS Žihle: BEZI|3 -Žirovnice - SS Žirovnice: ZIZI|1