Ero sivun ”Maidenhead-lokaattorijärjestelmä” versioiden välillä

Radioamatööriwikistä
Siirry navigaatioon Siirry hakuun
>Oh2mqk
p (typoja, pilkunviilausta)
p (kielentarkistus, putsaus ja luokittelu)
Rivi 1: Rivi 1:
[[Category:Koordinaatit]]
'''Maidenhead-ruudukko''' on määritelty [[WGS84]]:n kuvaamalle globaalille koordinaatistolle ja se vuorottelee pituusastetta ja leveysastetta koodaavia merkkejä pareittain. ("PiLePiLePiLe...")


'''Maidenhead ruudukko''' on määritelty [[WGS84]]:n kuvaamalle globaalille koordinaatistolle ja se vuorottelee pituusastetta ja leveysastetta koodaavia merkkejä pareittain.  ("PiLePiLePiLe...")
Esitystapa tuo kompaktissa muodossa radioamatöörikäytössä riittävää tarkkuutta radioasemien sijaintitietoihin ja käyttötarpeesta riippuen sitä esitetään vaihtelevalla merkkimäärällä antaen paikan vähemmän tai enemmän tarkasti. Kompaktiudesta on hyötyä erityisesti sähkötyksellä tapahtuvassa viestinnässä.
Esitystapa tuo kompaktissa muodossa radioamatöörikäytössä riittävää tarkkuutta radioasemien sijaintitietoihin ja käyttötarpeesta riippuen sitä esitetään vaihtelevalla merkkimäärällä antaen paikan vähemmän tai enemmän tarkasti.
Kompaktiudesta on hyötyä erityisesti sähkötyksellä tapahtuvassa viestinnässä.


== Esitystavasta ==
== Esitystavasta ==
Rivi 20: Rivi 18:
     12        0.063"        1.9 m        0.125"
     12        0.063"        1.9 m        0.125"
   
   
Pituusasteen (itä-länsi) lineaarinen pituus suhtautuu
Pituusasteen (itä-länsi) lineaarinen pituus suhtautuu leveysasteen annettuun pituuteen kertoimella: <math>\cos(leveysaste)</math>
leveysasteen annettuun pituuteen kertoimella: <math>\cos(leveysaste)</math>
 
Pituusaste koodataan etelänavalta (-90&deg;) alkavana kaarena pohjoisnavalle asti (+90&deg;).
Leveysaste koodataan alkaen 180&deg; läntistä pituutta kulkien nollameridiaanin kautta ja päätyen 180&deg; itäiseen pituuteen. Geodeettien tapaan tämä laskee ''positiivisena suuntana itään'', eikä kuten USA:laiset usein: länteen.
 
Radioamatöörit käyttävät tätä ruudukkoa kilpailutoiminnassaan kertoen kuinka kaukana toisistaan he ovat.
HF taajuuksilla käytetään 4 merkin tarkkuutta (KP30), VHF:llä yleensä 6:tta merkkiä (KP30CR), mutta on joitain erityistarpeita joilla tarvitaan tarkempaa tietoa (jos ollenkaan käytetään Maidenheadia).
IARU Region 1 on määritellyt Brittien RSGB:n esityksestä 8 merkkisen "extended locator":n (KP30CR56), mutta siitä eteenpäin ei ole mitään määrityksiä ja käytetty menetelmä on vain omaa fantasiaani (joskin myös maanmittauslaitos näyttää käyttävän samaa koodausta)


Pituusaste koodataan etelänavalta (-90&deg;) alkavana kaarena pohjoisnavalle asti (+90&deg;). Leveysaste koodataan alkaen 180&deg; läntistä pituutta kulkien nollameridiaanin kautta ja päätyen 180&deg; itäiseen pituuteen. Geodeettien tapaan tämä laskee ''positiivisena suuntana itään'', eikä kuten USA:laiset usein: länteen.


Radioamatöörit käyttävät tätä ruudukkoa kilpailutoiminnassaan kertoen kuinka kaukana toisistaan he ovat. HF taajuuksilla käytetään 4 merkin tarkkuutta (KP30), VHF:llä yleensä 6:tta merkkiä (KP30CR), mutta on joitain erityistarpeita joilla tarvitaan tarkempaa tietoa (jos ollenkaan käytetään Maidenheadia). IARU Region 1 on määritellyt Brittien RSGB:n esityksestä 8 merkkisen "extended locator":n (KP30CR56), mutta siitä eteenpäin ei ole mitään määrityksiä ja käytetty menetelmä on vain omaa fantasiaani (joskin myös maanmittauslaitos näyttää käyttävän samaa koodausta).
== Koordinaattien koodaaminen ==
== Koordinaattien koodaaminen ==


Rivi 43: Rivi 35:




Koordinaatin muuntaminen Maidenhead-merkeiksi tapahtuu seuraavin askelin:<br>
 
Koordinaatin muuntaminen Maidenhead-merkeiksi tapahtuu seuraavin askelin:
 
1. Skaalataan koordinaatti välille 0..1  (oletetaan lähtökoordinaattien muoto koodatun aluksi asteiksi ja desimaaleiksi)
1. Skaalataan koordinaatti välille 0..1  (oletetaan lähtökoordinaattien muoto koodatun aluksi asteiksi ja desimaaleiksi)
* pituus = (pituus + 90)/180
* pituus = (pituus + 90)/180
Rivi 75: Rivi 69:
* leveys = leveys - TRUNCATE(leveys)
* leveys = leveys - TRUNCATE(leveys)
5. Mahdollisesti toistetaan kohtia 3 ja 4 kunnes riittävä esityspituus on saatu
5. Mahdollisesti toistetaan kohtia 3 ja 4 kunnes riittävä esityspituus on saatu
6. Palautetaan tuloksena MH-muuttujaan kertynyt merkkijono
6. Palautetaan tuloksena MH-muuttujaan kertynyt merkkijono


Yllä ".=" on PERL-ohjelmointikielen tapa kertoa, että kohdemerkkijonomuuttujan perään lisätään lausekkeen oikealla puolella muodostettu merkki tai merkkijono.
Yllä ".=" on PERL-ohjelmointikielen tapa kertoa, että kohdemerkkijonomuuttujan perään lisätään lausekkeen oikealla puolella muodostettu merkki tai merkkijono. Kaiken muun pitäisi olla kaikille ohjelmoijille tuttua.
Kaiken muun pitäisi olla kaikille ohjelmoijille tuttua.
 
 
== Koordinaattien parsinta ==
== Koordinaattien parsinta ==


Yllä esitetylle koodaamiselle käänteinen toimenpide, joka on helppo tehdä vaikkapa näin:
Yllä esitetylle koodaamiselle käänteinen toimenpide, joka on helppo tehdä vaikkapa näin:


1. Syöte tulee merkkijonomuuttujassa MH, kaikki kirjaimet isoja (KP30CR, ei kp30cr).<br>
1. Syöte tulee merkkijonomuuttujassa MH, kaikki kirjaimet isoja (KP30CR, ei kp30cr).<br>2. Asetetaan keruumuuttujat:
2. Asetetaan keruumuuttujat:
* pituus = 0
* pituus = 0
* leveys = 0
* leveys = 0
Rivi 117: Rivi 108:
* pituus = pituus + (ord(pituusmerkki)-ord("A")) * kerroin
* pituus = pituus + (ord(pituusmerkki)-ord("A")) * kerroin
* leveys = leveys + (ord(leveysmerkki)-ord("A")) * kerroin
* leveys = leveys + (ord(leveysmerkki)-ord("A")) * kerroin
7. Palataan kohtaan 5.<br>
7. Palataan kohtaan 5.<br>8. MH merkkijono on käsitelty<br>8.1. Siirretään koordinaatit ruudun keskikohtaan
8. MH merkkijono on käsitelty<br>
8.1. Siirretään koordinaatit ruudun keskikohtaan
* pituus = pituus + kerroin / 2
* pituus = pituus + kerroin / 2
* leveys = leveys + kerroin / 2
* leveys = leveys + kerroin / 2
Rivi 127: Rivi 116:
9. Palautetaan tuloksena: pituus, leveys  (asteina)
9. Palautetaan tuloksena: pituus, leveys  (asteina)


Toisenlaisilla skaalauskertoimilla tuloksena on Radiaaneja (trigonometrisiin laskuihin)
Toisenlaisilla skaalauskertoimilla tuloksena on Radiaaneja (trigonometrisiin laskuihin) (Vihje: &pi;/2, &pi; ja 2&pi;)
(Vihje: &pi;/2, &pi; ja 2&pi;)


----
----
Rivi 136: Rivi 124:


Viestikallion [http://www.viestikallio.fi/tools/tools.php koodinaattityökaluja].
Viestikallion [http://www.viestikallio.fi/tools/tools.php koodinaattityökaluja].
[[Luokka:Koordinaatit]]

Versio 3. kesäkuuta 2021 kello 02.07

Maidenhead-ruudukko on määritelty WGS84:n kuvaamalle globaalille koordinaatistolle ja se vuorottelee pituusastetta ja leveysastetta koodaavia merkkejä pareittain. ("PiLePiLePiLe...")

Esitystapa tuo kompaktissa muodossa radioamatöörikäytössä riittävää tarkkuutta radioasemien sijaintitietoihin ja käyttötarpeesta riippuen sitä esitetään vaihtelevalla merkkimäärällä antaen paikan vähemmän tai enemmän tarkasti. Kompaktiudesta on hyötyä erityisesti sähkötyksellä tapahtuvassa viestinnässä.

Esitystavasta

Näille merkkipareille on seuraavat nimitykset:

  • Field ("kenttä")
  • Square ("ruutu")
  • Sub-Square, tai VHF touhuissa "locator"
  • Extended-locator
 Merkkejä   leveysasteen koko       Pituusasteen koko
    4           1°        111  km          2°
    6       2.5' / 2'30"  4.6  km     5.0' / 5'00"
    8      0.25' / 0'15"  462   m     0.5' / 0'30"
   10        0.625"        19.3 m         1.25"
   12        0.063"         1.9 m         0.125"

Pituusasteen (itä-länsi) lineaarinen pituus suhtautuu leveysasteen annettuun pituuteen kertoimella:

Pituusaste koodataan etelänavalta (-90°) alkavana kaarena pohjoisnavalle asti (+90°). Leveysaste koodataan alkaen 180° läntistä pituutta kulkien nollameridiaanin kautta ja päätyen 180° itäiseen pituuteen. Geodeettien tapaan tämä laskee positiivisena suuntana itään, eikä kuten USA:laiset usein: länteen.

Radioamatöörit käyttävät tätä ruudukkoa kilpailutoiminnassaan kertoen kuinka kaukana toisistaan he ovat. HF taajuuksilla käytetään 4 merkin tarkkuutta (KP30), VHF:llä yleensä 6:tta merkkiä (KP30CR), mutta on joitain erityistarpeita joilla tarvitaan tarkempaa tietoa (jos ollenkaan käytetään Maidenheadia). IARU Region 1 on määritellyt Brittien RSGB:n esityksestä 8 merkkisen "extended locator":n (KP30CR56), mutta siitä eteenpäin ei ole mitään määrityksiä ja käytetty menetelmä on vain omaa fantasiaani (joskin myös maanmittauslaitos näyttää käyttävän samaa koodausta).

Koordinaattien koodaaminen

Koodausta voi ajatella matemaattisessa mielessä lukuarvona nollan ja ykkösen (jälkimmäistä koskaan saavuttamatta) välillä siten että tekstiesityksestä on jätetty alusta "0." pois ja ollaan koodaamassa luvun "desimaaleja", joskin niin että koodauksen kantaluku vaihtelee:

  • Ensimmäinen pari koodaa kantaluvulla 18 ja merkkeinä kirjaimet 'A'..'R'.
  • Toinen koodaa kantaluvulla 10 ja numeroilla ('0'..'9').
  • Kolmas koodaa kantaluvulla 24 kirjaimilla 'A'..'X'.
  • Neljäs pari koodaa numeroita ja on siis 10
  • Viidettä paria ei ole määritelty missään ja niinpä siitä on ainakin kaksi erilaista versiota: kantaluvut 24 ja 20.
  • Kuudettakaan paria ei ole määritelty missään, mutta siinä vuorossa olisi numerot kantaluvulla 10.
  • jne... (Viestikallion työkalussa esityksen "lisätarkkuutta" luodaan vuorottelemalla toista ja kolmatta paria)


Koordinaatin muuntaminen Maidenhead-merkeiksi tapahtuu seuraavin askelin:

1. Skaalataan koordinaatti välille 0..1 (oletetaan lähtökoordinaattien muoto koodatun aluksi asteiksi ja desimaaleiksi)

  • pituus = (pituus + 90)/180
  • leveys = (leveys + 180)/360

2. Koodataan ensimmäinen kantaluku

  • # Kerrotaan koordinaatit esitysaskeleen kantaluvuilla saaden askeleen kokonaisosa
  • pituus = pituus * 18.0
  • leveys = leveys * 18.0
  • MH = chr(ord("A")+TRUNCATE(pituus))
  • MH = chr(ord("A")+TRUNCATE(leveys))
  • # Poistetaan kokonaisosa koordinaateista..
  • pituus = pituus - TRUNCATE(pituus)
  • leveys = leveys - TRUNCATE(leveys)

3. Koodataan toinen kantaluku

  • # Kerrotaan koordinaatit esitysaskeleen kantaluvuilla saaden askeleen kokonaisosa
  • pituus = pituus * 10.0
  • leveys = leveys * 10.0
  • MH .= chr(ord("0")+TRUNCATE(pituus))
  • MH .= chr(ord("0")+TRUNCATE(leveys))
  • # Poistetaan kokonaisosa koordinaateista..
  • pituus = pituus - TRUNCATE(pituus)
  • leveys = leveys - TRUNCATE(leveys)

4. Koodataan kolmas kantaluku

  • # Kerrotaan koordinaatit esitysaskeleen kantaluvuilla saaden askeleen kokonaisosa
  • pituus = pituus * 24.0
  • leveys = leveys * 24.0
  • MH .= chr(ord("A")+TRUNCATE(pituus))
  • MH .= chr(ord("A")+TRUNCATE(leveys))
  • # Poistetaan kokonaisosa koordinaateista..
  • pituus = pituus - TRUNCATE(pituus)
  • leveys = leveys - TRUNCATE(leveys)

5. Mahdollisesti toistetaan kohtia 3 ja 4 kunnes riittävä esityspituus on saatu

6. Palautetaan tuloksena MH-muuttujaan kertynyt merkkijono

Yllä ".=" on PERL-ohjelmointikielen tapa kertoa, että kohdemerkkijonomuuttujan perään lisätään lausekkeen oikealla puolella muodostettu merkki tai merkkijono. Kaiken muun pitäisi olla kaikille ohjelmoijille tuttua.

Koordinaattien parsinta

Yllä esitetylle koodaamiselle käänteinen toimenpide, joka on helppo tehdä vaikkapa näin:

1. Syöte tulee merkkijonomuuttujassa MH, kaikki kirjaimet isoja (KP30CR, ei kp30cr).
2. Asetetaan keruumuuttujat:

  • pituus = 0
  • leveys = 0

3. Asetetaan kertoimet:

  • kerroin = 1.0

4. Parsitaan ensimmäinen merkkipari:

  • kantaluku = 18.0
  • kerroin = kerroin / kantaluku
  • pituusmerkki = substr(MH, 1, 1) # Ensimmäinen merkki
  • leveysmerkki = substr(MH, 2, 1) # Toinen merkki
  • MH = substr(MH, 3) # Kolmannesta merkistä alkaen kaikki loput
  • pituus = pituus + (ord(pituusmerkki)-ord("A")) * kerroin
  • leveys = leveys + (ord(leveysmerkki)-ord("A")) * kerroin

5. Parsitaan toinen merkkipari:

  • Jos MH on tyhjä, mene kohtaan 8.
  • kantaluku = 10.0
  • kerroin = kerroin / kantaluku
  • pituusmerkki = substr(MH, 1, 1) # Ensimmäinen merkki
  • leveysmerkki = substr(MH, 2, 1) # Toinen merkki
  • MH = substr(MH, 3) # Kolmannesta merkistä alkaen kaikki loput
  • pituus = pituus + (ord(pituusmerkki)-ord("0")) * kerroin
  • leveys = leveys + (ord(leveysmerkki)-ord("0")) * kerroin

6. Parsitaan kolmas merkkipari:

  • Jos MH on tyhjä, mene kohtaan 8.
  • kantaluku = 24.0
  • kerroin = kerroin / kantaluku
  • pituusmerkki = substr(MH, 1, 1) # Ensimmäinen merkki
  • leveysmerkki = substr(MH, 2, 1) # Toinen merkki
  • MH = substr(MH, 3) # Kolmannesta merkistä alkaen kaikki loput
  • pituus = pituus + (ord(pituusmerkki)-ord("A")) * kerroin
  • leveys = leveys + (ord(leveysmerkki)-ord("A")) * kerroin

7. Palataan kohtaan 5.
8. MH merkkijono on käsitelty
8.1. Siirretään koordinaatit ruudun keskikohtaan

  • pituus = pituus + kerroin / 2
  • leveys = leveys + kerroin / 2

8.2. Skaalataan tulokset:

  • pituus = 180.0 * pituus - 90.0
  • leveys = 360.0 * leveys - 180.0

9. Palautetaan tuloksena: pituus, leveys (asteina)

Toisenlaisilla skaalauskertoimilla tuloksena on Radiaaneja (trigonometrisiin laskuihin) (Vihje: π/2, π ja 2π)


Tämä teksti on muokattu Viestikallion koordinaattityökalujen yhden lähdemodulin kommenteista.

Katso myös:

Viestikallion koodinaattityökaluja.