Skip navigation

OK2RKB | ENG · GER · RUS · FRA · POL · HUN | Main · IE+ · IE- · Prn · Pda · CSSoff

OK2PPK » Texty » Programy » Loc | ---

Loc

offline program

Loc - výpočet vzdálenosti lokátorů

v1.2 (2013/12), konzolová aplikace Win32Api

autor OK2PPK

Program Loc vypočítá vzdálenost a azimut mezi dvěma lokátory. Pracuje ve třech režimech. V prvním se mu zadají dva lokátory (v rozmezí AA00AA až RR99XX, může být použito malé i velké písmo) a program vypíše jejich souřadnice, azimuty mezi oběma lokátory, jejich vzdálenost, vzdálenost zaokrouhlenou dle doporučení (VHF Manager Handbook Edition 6.12, bod 5.3.9) pro vyhodnocování VKV závodů a azimuty zaokoruhlené na celá čísla.

Do druhého režimu se program přepne použitím příkazu silent a opět zadáním dvou lokátoru. Program provádí vnitřně stejný výpočet jako v prvním režimu, ale vypíše pouze vzdálenost zaokrouhlenou dle doporučení pro vyhodnocování VKV závodů. V případě chyby program vypíše pouze nulu.

Ve třetím režimu se programu zadá výchozí lokátor, jméno souboru se vstupními daty a jméno souboru, do kterého se má uložit výsledek. Program čte lokátory ze vstupního souboru, provádí výpočet vzdálenosti a azimutu proti výchozímu lokátoru, a výsledky zapisuje do souboru. Vstupní soubor musí být textový, na každém jeho řádku musí být přesně a pouze jeden lokátor, pro který se má výpočet provést. Celkový počet řádků - tj. najednou zpracovatelných lokátorů - není omezen, ale při větším rozsahu dat může zpracování trvat dlouho - program má sice zabudované vyrovnávací paměti pro zrychlení práce se soubory, ale vlastní výpočty byly optimalizovány na přesnost na úkor rychlosti. Výstupní soubor je opět textový, každý řádek obsahuje výsledky výpočtu pro jeden lokátor načtený ze vstupního souboru, lokátory jsou ve stejném pořadí jako byly ve vstupním souboru, jeden výstupní řádek je ve tvaru výchozí lokátor, středník, lokátor načtený ze souboru, středník, zaokrouhlená vzdálenost, středník, zaokrouhlený azimut z výchozího do načteného lokátoru.

Pro výpočty ortodromy jsou použity běžné funkce ze standardní matematické knihovny pro C a čísla s plovoucí řádovou čárkou s přesností "double". Protože se pracuje s goniometrickými a cyklometrickými funkcemi, může to způsobit odchylky vypočítaných a očekávaných výsledků - v blízkosti limitních hodnot dochází, díky zaokrouhlování způsobenému konečným počtem číslic, ke vzniku chyb - např. azimut lokátorů na stejné rovnoběžce nebo na stejném poledníku by měl být celistvým násobkem 90°, ale výpočtem vychází odchylka od očekávaného údaje běžně i na druhém desetinném místě. Podobně výpočty vzdáleností a azimutů v oblasti zemských pólů, kde je rozměr lokátorů ve směru rovnoběžky velmi malý, mohou být zatíženy značnou chybou. Proto byl pro výpočet použit tzv. Vincentyho algoritmus, který je optimalizovaný pro numerické výpočty na strojích s omezenou přesností čísel. V oblasti střední Evropy, kde má nejmenší čtverec - ve VKV závodech používaném systému lokátorů - rozměr cca 5x6km, toto nemá velký význam, a uvádím to spíše pro ty, koho by zajímal důvod, proč nejsou výpočty zcela přesné.

Vzdálenost je zaokrouhlena dle doporučení pro vyhodnocování VKV závodů, tj. oříznutím na celé číslo a přičtením jedničky, pro výpočet je dle doporučení použita převodní konstanta 111,2km/stupeň (tj. poloměr Země 6371,3km). Pro spojení ve vlastním lokátoru se vzdálenost zaokrouhluje na 1km a azimut ztrácí smysl. Souřadnice lokátorů se počítají v jejich středech.

Syntaxe:
  LOC loc1 loc2 ... výpočítá vzdálenost, azimut a souřadnice
  
  LOC silent loc1 loc2 ... výpočítá zaokrouhlenou vzdálenost

  LOC loc1 soubor1 soubor2 ... vypočítá vzdálenost a azimut loc1 proti
                               loc načteným ze souboru1 a výsledek uloží
                               do souboru2

    silent - je vypsána pouze zaokrouhlená vzdálenost nebo nula při chybě
    loc1 - výchozí lokátor (AA00AA až RR99XX)
    loc2 - protější lokátor (AA00AA až RR99XX)
    v lokátorech mohou být kombinovány znaky velké i malé abecedy
    soubor1 - vstupní soubor
    soubor2 - výstupní soubor

  Příklad použití: loc jn89gf jn88jx

Stažení: loc.exe - program v1.2 (52kB), loc.txt - popis v1.2 (2kB)

Změny:

v1.0 2004/9 - verze pro DOS

v1.1 2013/12 - první verze pro WIN, konzolová aplikace pro Win32 API, oproti původní verzi pro DOS nakonec použit jiný algoritmus výpočtu - tzv. Vincentyho, změněn způsob výpočtu souřadnic z původně optimalizovaného na rychlost na jiný optimalizovaný na co nejmenší ztrátu přesnosti v důsledku zaohrouhlování.

v1.2 2013/12 - ve výpočtech změněny zbylé konstanty typu integer na double a některé výpočty s více konstantami, které byly kvůli testům zatím podrobně rozepsány, byly optimalizovány sloučením konstant dohromady.

Nahoru