Maidenhead-lokaattorijärjestelmä
Maidenhead-lokaattorijärjestelmä on maailmanlaajuinen ruutukoordinaatisto, joka kuvaa paikkaa halutulla tarkkuusasteella: mitä useammalla merkillä lokaattori ilmoitetaan, sitä tarkemman paikan se ilmaisee. Esimerkiksi lokaattorin 'KP22UF' kuvaama alue muistuttaa muodoltaan neliötä ja kattaa suurimman osan Jyväskylän keskustaa.
Radioamatöörit käyttävät Maidenhead-ruudukkoa etenkin kilpailutoiminnassa kertomaan, kuinka kaukana toisistaan asemat ovat. HF-taajuuksilla käytetään neljän merkin tarkkuutta (esim. 'KP30'), VHF:llä yleensä kuutta merkkiä ('KP30CR'). Suomi on lähes kokonaan kahden merkin tarkkuudella lausuttavassa kentässä 'KP'.
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 merkkinopeudeltaan hitaassa viestinnässä, esimerkiksi sähkötyksessä.
Maidenhead-ruudukon määrittely
Maidenhead-ruudukko on määritelty WGS84:n kuvaamalle globaalille koordinaatistolle ja se vuorottelee pituusastetta ja leveysastetta koodaavia merkkejä pareittain ("PiLePiLePiLe..."), jossa tarkkuutta kasvatettaessa kirjain- ja numeroparit vuorottelevat. Näille merkkipareille on seuraavat nimitykset:
- Kenttä (field, kirjaimin)
- Ruutu (square, numeroin)
- Aliruutu (sub-square, tai VHF-touhuissa vain "locator"; kirjaimin)
- Laajennettu lokaattori (extended locator, numeroin)
Maidenhead-järjestelmän pienimmällä tarkkuustasolla maailma on jaettu 324 (18*18) Maidenhead-kenttään, joita merkitään kirjainparilla, esimerkiksi KP. Merkkiparit koodaavat ensin pituusasteen (esim. K) ja sitten leveysasteen (esim. P). Kentän leveys vaihtelee vajaasta 1000 kilometristä yli 2000 kilometriin leveysasteesta riippuen.
Kukin kirjainparilla merkittävä kenttä jakautuu 100 (10*10) ruutuun, jotka on numeroitu numeroparilla (esimerkiksi KP10). Ruutu puolestaan jakautuu 576 (24*24) aliruutuun, jolloin ruudun merkintään lisätään kirjainpari (esim. KP10RR). Yhden merkkiparin (numeron) lisäyksellä saadaan ns. laajennettu lokaattori, jolloin kuvatun alueen ruudun pituus on enää vajaat 500 metriä (KP10RR31).
Virallisesti määritelty lokaattorin tarkkuus päättyy tähän, mutta jatkamalla edellisten tapaan yhden kirjainparin lisäyksellä saadaan noin 20 metriä pitkä alue (KP10RR31NO).
Merkkejä Leveysasteen koko ("korkeus") Pituusasteen koko 4 1° 111 km 2° ruutu 6 2.5' / 2'30" 4.6 km 5.0' / 5'00" aliruutu, "lokaattori" 8 0.25'/ 0'15" 462 m 0.5' / 0'30" laajennettu 10 0.625" 19.3 m 1.25" 12 0.063" 1.9 m 0.125"
IARU Region 1 on määritellyt brittien RSGB:n esityksestä kahdeksanmerkkisen ns. laajennetun lokaattorin (extended locator, esim. KP30CR56), mutta siitä eteenpäin ei ole virallisia määrityksiä.
Pituusasteen (itä-länsi) lineaarinen pituus suhtautuu leveysasteen annettuun pituuteen kertoimella .
Pituus- ja leveysasteet on myös asetettu alkamaan niin, että kaikki luvut ovat positiivisia. Leveysaste koodataan nollakohtana etelänavalta (-90°) alkavana kaarena pohjoisnavalle asti (+90°). Pituusasteilla nollana on 180 astetta läntistä pituutta ja maksimina (360°) 180 astetta itäistä pituutta, joten nollameridiaani saa arvon 180 astetta ja geodeettien tapaan pituus laskee positiivisena suuntana itään.
Lokaattorin selvittäminen
Karttanäkymät / tasot: Karttaohjelmissa , niin amatöörien kun yleisissäkin, on useita valintoja näkemän muokkaamiseksi. Esimerkiksi: kartta, satelliiti, ilmakuva. Erilaisia tasoja on valittavissa esim: kiinteistörajat, kiinteistötunnukset, jne (suomessa kansalaisen karttapaikka)
Oman lokaattorin voi selvittää helposti asentamalla älypuhelimeen sovelluksen HamGPS, joka löytyy Play kaupasta.
K7FRY:n kattaohjelma ja ohje
Tällä voit hakea lokaattorin kartalta parin kymmenen merkin tarkkuudella
Anna esimerkiksi noin lokaattori 4-6 merkillä oikealla olevan ikkunan ruutuun ja paina Show. Punaisella rajattu ruutu on ko. ruutu Mitä useammalla merkillä ruudun annat, sitä tarkempi on paikka. Napauta hiirellä haluamaasi paikkaan kartalla. Aukeaa K.O. paikan tarkka lokaattoritieto, sekä erilliseen ikkunaan että oikealla olevaan ikkunaan. kun napautat Show tulee punainen neliö ruutuun. Voit suurentaa kuvaa haluaamaasi kokoon. Mallissa satelliitti mode. moden voi muuttaa karttamodeksikin. |
Lokaattoriruutukartta egloff.eu/googlemap
Kun annetaan lokaattori ruutuun:
Näyttöön tulee kartta jossa näkyvät lokaattoriruudut Avautuu k.o. lokaattoriruutu näytölle lokaattorin voi antaa 6 tai 8 merkillä. näytölle tulostuu kartta tai sateliittikuva valinnan mukaan. Kursorin osoittaman kohdan koordinaatit näytetään näytössä. Näyttöä voi zoomata Näyttöön valittavissa Kartta / Satelliitti |
avaa https://kartta.paikkatietoikkuna.fi/?lang=fi valitse haluamasi karttatasot kohdasta ”KARTTATASOT” valitse ”KOORDINAATTIMUUNNOS”
Valitse kohtaan 1 Geodeettinen koordinaattijärjestelmä: ETRS TM35FIN Valitse kohtaan 2 Geodeettinen koordinaattijärjestelmä: EUREF-FIN-GRS80 Valitse kohtaan 3 sijainti kartalta ja osoita kartalla haluaamasi paikkaa, kartalle ilmestyy ”nuppineula” näpäytä valmis, tiedot siirtyvät taulukkoon. Voit valita useita kohteita valitse lisää panikkeen avulla. Kun tiedot ovat muunnettavat koordinaatit taulukossa paina 4: muunna>>. Googlemapsiin, koordinaattikonvertteriin y.m sopivat koordinaatit ilmestyvät oikeanpuoleiseen ikkunaan |
- Erinomainen karttasovellus on paikkatietoikkuna
- Erilaisia karttaohjelmia löydät täältä
- Tutki pikkuapulaisen karttaohjelma linkkejä
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 pari koodaa kantaluvulla 10 ja numeroilla (0-9).
- Kolmas pari koodaa kantaluvulla 24 kirjaimilla A-X.
Tämän pidemmälle Maidenhead-ruudukkoa ei ole määritelty, mutta ilmeisiä tapoja jatkaa on
- 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)
Koordinaattien koodausalgoritmi
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-algoritmi
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π)
- Perl module for converting between geographic coordinates and Maidenhead locator and calculating distance and bearing
- C# class for converting between geographic coordinates and Maidenhead locator and calculating distance and bearing
Lähteet
Osa tekstistä on muokattu Viestikallion koordinaattityökalujen yhden lähdemodulin kommenteista.
- [1] Lähdekoodi Viestikallion koordinaattityökalujen Maidenhead-funktioihin.
Aiheesta muualla
- ARRLWeb: Grid Locators and Grid Squares
- ARRLWeb: Calculate Grid Square
- From the field hunter's web page: An explanation of the system and how it came into being.
- Maidenhead Grid Squares
Työkaluja:
- http://www.kotinet.com/htilus/paasivusto/lokaattorilaskin.htm lokaattoreiden välimatkan laskin
- https://www.earthpoint.us/Convert.aspx koordinaattimuunnin, osaa muuntaa erilaisia paikkatietoja koordinaateiksi ja päin vastoin
- https://www.k7fry.com/grid/ Google Mapsin päälle rakennettu lokaattoripalvelu