155GIT1 / 6. cvičení / Příklady

Z GeoWikiCZ

Výpočet směrníku

K dispozici je textový soubor seznamu souřadnic body.txt ve formátu:

cislo_bodu Y X

Vypočítejte směrníky všech bodů ze stanoviska o souřadnicích (730288.89, 1054582.63). Směrníky udejte v grádové míře. Postup výpočtu zapište do souboru smernik.m.

  • Směrníky převeďte do intervalu <0; 400> gon.
  • Do výstupního souboru body_vystup.txt zapište na každý řádek:
cislo_bodu Y X smernik


Hvězdy 1

K dispozici je textový soubor stars1.txt ve formátu:

cislo_jevu  zenitova_vzdalenost[gon]  cas_jevu[hod min]

Soubor obsahuje v řádcích zenitové vzdálenosti poloh hvězd a časy, kdy tyto pozice hvězd v daný den nastanou (např. se může jednat o polohu, kdy je hvězda v daný den nejvýše nad obzorem apod.). Data ze souboru načtěte a určete:

  • které z jevů nastanou v noci;
  • které z jevů nastanou ve dne;
  • které z jevů budou pozorovatelné (pozorovatelné jevy hvězd jsou takové, které jsou nad obzorem a nastanou v noci).

Uvažujte, že den začíná v 6 hodin a končí v 18 hodin.

Jevy, které vyhovují zadané podmínce, vždy vypište na standardní výstup (Command Window).


Hvězdy 2

K dispozici je textový soubor stars2.txt ve formátu:

cislo_jevu  zenitova_vzdalenost[gon]  cas_jevu[hod min]  zacatek_dne[hod min]  konec_dne[hod min]

Soubor obsahuje v řádcích zenitové vzdálenosti poloh hvězd, časy, kdy tyto pozice hvězd v daný den nastanou (např. se může jednat o polohu, kdy je hvězda v daný den nejvýše nad obzorem apod.) a časy začátku dne [hod min] a konce dne [hod min] pro datum příslušného jevu. Data ze souboru načtěte a určete:

  • které z jevů nastanou v noci;
  • které z jevů nastanou ve dne;
  • které z jevů budou pozorovatelné (pozorovatelné jevy hvězd jsou takové, které jsou nad obzorem a nastanou v noci).

Jevy, které vyhovují zadané podmínce, vždy vypište na standardní výstup (Command Window). Ukázka formátu výstupu:

jevy v noci:        2 4 (atd.)
jevy ve dne:        1 3 (atd.)
pozorovatelne jevy: 4 5 (atd.)

Pozn.: Každý jev je uvažován pro jiné datum, proto jsou v datech ke každému jevu uvedeny jiné začátky a konce dne pro příslušné datum.


Úhly 1

Zadán je textový soubor uhly1.txt obsahující hodnoty úhlů v následujícím formátu:

cislo_uhlu  hodnota_uhlu[°]

Data ze souboru načtěte a proveďte následující úpravy:

  • Převeďte všechny hodnoty úhlů do základního intervalu <0°,360°). Uvažte, že tento proces je někdy nutno opakovat i vícekrát.
  • Zjistěte, o kolik period se původní hodnota daného úhlu lišila od základního intervalu (tj. kolikrát bylo potřeba úhel periodicky do základního intervalu převést). Počet period určete v následujícím smyslu:
    • byl-li původní úhel již v základním intervalu, počet period je roven 0;
    • byl-li původní úhel větší, než je rozsah základního intervalu, počet period bude kladné číslo;
    • byl-li původní úhel menší, než je rozsah základního intervalu, počet period bude záporné číslo.
  • Do výstupního souboru zakladniperioda1.txt zapište výsledky ve formátu:
cislo_uhlu  prevedena_hodnota_uhlu[°]  pocet_period

Vypsané hodnoty budou zarovnány do sloupců, úhly budou uvedeny ve stupních na 4 desetinná místa.


Úhly 2

Zadán je textový soubor uhly2.txt obsahující hodnoty úhlů ve formátu:

cislo_uhlu  hodnota_uhlu[° nebo gon]  kod_jednotek

kde kód jednotek má následující význam:

  • kod_jednotek = 1 pro úhel ve stupních;
  • kod_jednotek = 2 pro úhel v grádech.

Data ze souboru načtěte a proveďte následující úpravy:

  • Převeďte všechny hodnoty úhlů do základního intervalu <0°,360°) nebo <0,400) gon podle toho, ve které úhlové míře je daný úhel vyjádřen. Uvažte, že tento proces je někdy nutno opakovat i vícekrát.
  • Ke každému úhlu zjistěte, ve kterém je kvadrantu (1, 2, 3 nebo 4).
  • Do výstupního souboru zakladniperioda2.txt vypište setříděně nejprve všechny úhly, které byly zadány ve stupňové míře, následně zbylé úhly, které byly zadány v grádech; výsledky uveďte ve formátu:
cislo_uhlu  prevedena_hodnota_uhlu[° nebo gon]  kod_jednotek  kvadrant

Vypsané hodnoty budou zarovnány do sloupců, úhly budou uvedeny v příslušných jednotkách na 3 desetinná místa.


Souřadnice

Ze základny Kozákov - Tábor byly zaměřeny horizontální úhly na určovaný cíl. Souřadnice bodů základny v S-JTSK jsou:

bod Y [m] X [m]
Kozákov 675984.89 995016.16
Tábor 669799.49 1005277.08

Měřené horizontální úhly mezi základnou a určovaným bodem, který leží jihozápadně od základny, jsou:

stanovisko Hz-úhel [gon]
Kozákov 59.7247
Tábor 52.4671

Souřadnice zaměřeného cíle určete v S-JTSK protínáním z úhlů. Při výpočtu uvažujte, že měřený úhel na Kozákově je potřeba během výpočtu iterativně opravovat (např. z důvodu nutnosti zavedení směrových korekcí v Křovákově zobrazení, o nichž se dozvíte ve vyšších ročnících studia). Přibližné (tzv. apriorní) souřadnice určovaného bodu vypočtete z přímo měřených úhlů. Dále předpokládejte, že v prvním kroku iterace (tj. při prvním opakování protínání) je potřeba měřený úhel na Kozákově zvětšít o 1 (grádovou minutu). V každém dalším kroku iterace se aktuální hodnota úhlu na Kozákově zvětší o následující nižší řád, tj. nejprve o 10 (10 grádových vteřin), následně o 1, o 0.1 atd. (pozn.: Tento iterační proces je pro zjednodušení čistě modelový; např. zavedení směrových korekcí je mnohem komplikovanější.) Iterační proces provádějte tak dlouho, dokud:

  • souřadnice X určovaného bodu nebude přesná na mm,
  • souřadnice Y určovaného bodu nebude přesná na mm,
  • obě souřadnice X a Y určovaného bodu nebudou přesné na mm.

Přesnost dané souřadnice určovaného bodu stanovíte tak, že absolutní hodnota rozdílu dvou hodnot dané souřadnice ze dvou po sobě jdoucích iterací již bude menší než je požadovaná přesnost souřadnice. Pro každou variantu výpočtu zjistěte i proběhlý počet iterací.

Řešení: Určovaným bodem je věž jedné velmi známé zříceniny hradu. Pro X jsou potřeba 4 iterace, pro Y je třeba 5 iterací.

Výpočet výměr

K dispozici je textový soubor seznamu souřadnic body.txt ve formátu:

cislo_bodu y x

Vypočítejte výměru parcely ohraničené body seznamu. Postup výpočtu zapište do souboru vymera.m.

Pozn.: Pro výpočet lze použít L´Huillierovy vzorce, viz Výpočet plochy pomocí L´Huillierových vzorců

nebo:

kde je počet vrcholů plochy (pro je a pro je ; analogicky pro ).

Pozn.: Pro výpočet výměry musejí být lomové body parcely seřazeny za sebou po obvodu parcely (jinak vyjde výměra špatně), a to správným směrem (jinak vyjde výměra záporně). V podkladových souborech body.txt a body2.txt jsou body seřazeny správně.

Dále proveďte:

  1. Vypočtenou výměru ve skriptu zaokrouhlete na celé metry čtvereční a vypište na obrazovku.
  2. Ověřte správnost postupu výpočtu výměr - vytvořte nový datový soubor s několika málo body, které budou ohraničovat oblast, jejíž výměra je evidentní (např. čtverec: 0 0, 0 1, 1 1, 1 0).
  3. Doplňte do skriptu test na nedostatečný počet vstupních bodů (pokud počet bodů bude menší než 3, skript vypíše příslušné upozornění a skončí).

Jako rozšíření úlohy lze volitelně provést další výpočet (postup uložte do souboru vymery.m).

K dispozici je textový soubor body2.txt, který obsahuje parcelní čísla a souřadnice lomových bodů několika parcel.

Formát souboru je následující:

čp1       % parcelní číslo
čb1 y1 x1 % číslo bodu, souřadnice y, x 1.bodu
čb2 y2 x2
...
čbN yN xN
prázdný řádek
další parcela, nebo konec souboru

Pro představu je k dispozici náčrt (ve formátu pdf, orientace os S-JTSK).

Vypočítejte výměry všech parcel a zapište je do textového souboru vymery.txt ve formátu:

čp1 výměra1
čp2 výměra2
...
celková výměra

Pozn.: Výměry zapište do souboru zaokrouhlené na celé metry čtvereční.

Pro kontrolu výpočtu je k dispozici protokol o hromadném výpočtu výměr vytvořený v programu Kokeš: vymeryKokes.txt.