QTH-локатор — система приближённого указания местоположения объекта на поверхности Земли, принятая в любительской радиосвязи. Предназначена для определения расстояния между корреспондентами. Известна также под названиями англ. Grid Square Locator и англ. Maidenhead Locator System. Название происходит от кодового выражения QTH, которое означает «Я нахожусь в …»
Вся поверхность земного шара разделена на 324 сектора размером 10° широты на 20° градусов долготы. Секторы обозначаются двумя заглавными латинскими буквами. Каждый сектор делится на 100 больших квадратов размерами 1° широты на 2° долготы (примерно 78×111,4 км в средних широтах), они обозначаются двумя цифрами. Большой квадрат поделен на 576 малых квадратов — 2,5×5 угловых минут (примерно 4,6×6,5 км), обозначаемых двумя строчными латинскими буквами. Если требуется большая точность, малый квадрат может делиться на 100 ещё меньших, вновь обозначаемых цифрами, и далее в том же порядке. Естественно, речь не идет о квадратах в геометрическом смысле, у полюсов квадраты локатора и вовсе треугольные.
Например, QTH-локатор центрального района г. Новосибирска записывается так: NO15lа
Теперь попробуем разобраться, как можно рассчитать QTH-локатор?
Для расчета QTH-локатора нам понадобятся какие либо координаты, координаты можно получить с любого навигатора или прочего, подобного устройства. Коллеги-радиолюбители не редко в своих конструкциях используют GPS модули, в своем проекте WSPR маячка я решил использовать один из таких модулей, а именно GY-NEO-6M
GPS модуль GY-NEO-6M подключается к какому либо устройству через UART интерфейс. Подробно разбирать работу этого модуля не будем, материала в сети достаточно.
Данный GPS модуль, через UART передает сообщения в виде строк, в соответствии со спецификацией протокола NMEA-0183. Нас интересует строка с идентификатором $GPGGA, данные разделяются запятой:
$GPGGA, 153145.23, 5501.8492, N, 08255.0987, E, 1, 08, 2.0, 0150, M, , , , *31
$GPGGA — идентификатор строки сообщения
153145.23 — гринвическое время на момент определения местоположения ЧЧММСС.МсМс
5501.8492 — географическая широта местоположения
N — метка широты север/юг (N/S)
08255.0987 — географическая долгота местоположения
E — метка долготы запад/восток (E/W)
1 — индикатор качества GPS сигнала:
0 — определение местоположения не возможно или не верно
1 — GPS режим обычной точности, возможно определение местоположения
2 — дифференциальный GPS режим, точность обычная, возможно определение местоположения
3 — GPS режим прецизионной точности, возможно определение местоположения
08 — количество используемых спутников (00…12, может отличаться от числа видимых)
2.0 — фактор ухудшения точности плановых координат ((HDOP)
0150 — высота антенны приемника над уровнем моря
M — единица измерения высоты расположения антенны
_ — геоидальное различие — различие между земным эллипсоидом WGS 84 и уровнем моря (геоидом), «-» — уровень моря ниже эллипсоида
_ — единица измерения различия, в метрах
_ — возраст дифференциальных данных GPS — время в секундах с момента последнего обновления SC104 типа, 1 или 9, заполнено нулями, если дифференциальный режим не используется идентификатор станции, передающей дифференциальные поправки, ID, 0000 1023. Эти поправки может принять любой желающий, но чтобы ими воспользоваться, необходимо иметь соответствующий приемник с названием BoB (Beacon on a Belt) в дополнение к стандартному
*31 — контрольная сумма строки
Все что нам нужно, есть в сообщении. Казалось бы берем координаты из сообщения и считаем. Но нет! Сначала нам координаты из сообщения NMEA необходимо привести к формату градусы/минуты/секунды.
Разбираем строку координат широты: 55 — градусы, 01 — минуты, а вот чтобы получить секунды, необходимо дробную часть умножить на 60 и округлить полученный результат до целого числа
0.8492*60 = 50.952 секунд
Координаты северной широты: 55° 1′ 51»
Теперь получим секунды долготы
0.0987*60 = 5.922 секунд
Координаты западной долготы: 82° 55′ 6».
Следующим шагом преобразуем координаты из формата градусы/минуты/секунды в десятичные градусы, делаем это следующим образом
55 + 01 / 60 + 51 / 3600 = 55.031°
82 + 55 / 60 + 06 / 3600 = 82.918°
Тут стоит обратить внимание на то, что мы еще ни где не использовали полученные метки широты и долготы, в нашем случае для координат широты мы получили от GPS модуля метку N — север, а для долготы метку E — запад. В данном случае с полученными координатами в десятичных градусах мы ничего не делаем, а вот если бы у нас метки были S и W, тогда координатам в десятичных градусах необходимо присвоить знак минус.
А теперь уже можно рассчитать искомый QTH-локатор, для этого нам потребуется три массива символов:
- массив букв префикса локатора, это буквы в верхнем регистре латинского алфавита A…Z
- массив цифр 0…9
- массив букв суффикса локатора, это буквы в нижнем регистре латинского алфавита a…z
К значениям координат широты и долготы в десятичных градусах прибавляем 90 и 180 соответственно
широта = 55.031 + 90 = 145.031
долгота = 82.918 + 180 = 262.918
Получаем номер буквы первого символа в искомом QTH-локаторе
долгота / 20° = 262.918 / 20 = 13.1459
где 20° — размер стороны сектора по долготе (см. начало записи), полученный результат округляем в большую сторону и получаем 14, это и есть порядковый номер в массиве букв префикса QTH-локатора, значит первый символ у нас будет «N».
Получаем номер буквы второго символа
широта / 10° = 145.031 / 10 = 14.5031
где 10° — размер стороны сектора по широте (см. начало записи), полученный результат округляем в большую сторону и получаем 15, значит второй символ у нас будет «O».
Получаем номер цифры третьего символа
(долгота % 20°) / 2 = (262.918 % 20) / 2 = 2.918 / 2 = 1.4590
где % — деление с остатком, полученный результат округляем в большую сторону и получаем 2, значит третий символ у нас будет «1».
Получаем номер цифры четвертого символа
(долгота % 10°) / 1 = (145.031 % 10) / 1 = 5.031 / 1 = 5.0310
полученный результат округляем в большую сторону и получаем 6, значит четвертый символ будет «5».
Получаем номер буквы пятого символа
(долгота % 2°) * (60 / 5′) = (262.918 / 2) * (60 / 5) = 0.918 * 12 = 11.016
где 2° — размер стороны квадрата сектора по долготе, а 5′ — угловые минуты по долготе (см. начало записи), полученный результат округляем в большую сторону и получаем 12, значит четвертый символ будет — «l».
Получаем номер буквы шестого символа
(широта % 1°) * (60 / 2.5′) = (145.031 / 2.5) * (60 / 2.5) = 0.031 * 24 = 0,744
где 1° — размер стороны квадрата в секторе по широте, а 2.5′ — угловые минуты по широте (см. начало записи), полученный результат округляем в большую сторону и получаем 1, значит четвертый символ будет — «a».
Теперь собираем все символы в строку и получаем наш искомый QTH-локатор центра города Новосибирска — NO15lа.
Используя данную методику, в моем проекте WSPR маячка, я отрабатываю реализацию калькуляции первых четырех символов QTH-локатора местоположения маяка, при использовании GPS модуля для получения координат и точного времени, короче говоря, WSPR маяк теперь сам может определить координаты и вычислить QTH-локатор своего местоположения!
Для изучения методики расчета QTH-локатора, сделал расчет в табличке EXCEL, ниже можно ее скачать.
Калькулятор QTH-локатора
73!