Сервис определения направления ТВ-тарелки на спутник или Dishpointer по-русски

в 17:20, , рубрики: iptv, Веб-разработка, спутниковое телевидение, Телекомы, метки:

С наступлением летних каникул, для многих жителей крупных городов, жизнь постепенно переезжает за город. Одним из IT-атрибутов загородной жизни является наличие спутникового телевидения. Кто-то пытается самостоятельно установить и настроить антенну по аналогии с соседскими, кто-то прибегает к услугам установщиков, кто-то рассчитывает параметры установки линейкой на гуглокартах.

Для тех, кто пытается самостоятельно установить и настроить спутниковое ТВ я хочу представить сервис Geonames.ru, помогающий определить, в какую сторону направлять спутниковую тарелку.

Логика работы такая — пользователь выбирает спутникового оператора или конкретный спутник, затем на карте определяет точку установки антенны, на основе этих данных сервис рассчитывает направление и другие параметры установки.

image

В процессе разработки выяснилось, что аналогичные сервисы уже существуют за рубежом, самым популярным из которых является Dishpointer.com, которым пользуются, в том числе, и установщики. Я постарался сделать свой сервис ориентированным на русскоязычных и менее технически подготовленных пользователей, фактически — для домохозяек.

Далее я расскажу каким образом в сервисе рассчитываются необходимые параметры и с какими трудностями пришлось столкнуться в процессе разработки.

Для того, чтобы самостоятельно установить тарелку необходимо определить несколько параметров:

  • Направление в горизонтальной плоскости (азимут)
  • Направление в вертикальной плоскости (угол места)
  • Угол поворота конвертера

Истинный и магнитный азимуты

Истинный азимут служит для откладывания направления на карте, в котором ось X проходит параллельно экватору (параллель), а ось Y — меридиан, проходящий от южного полюса к северному.

Истинный азимут рассчитывается по формуле

k = PI/180;
a = широта места * k;
b = долгота места * k;
c = долгота спутника * k;
Азимут = (PI+arctan(tan(b-c)/sin(a)))/k;

Магнитный азимут же ориентируется на магнитные полюса Земли, которые не совпадают с географическими и необходим для определения направления по магнитному компасу. Кроме того, магнитные полюса со временем меняются, а также на стрелки компаса могут влиять, так называемые, магнитные аномалии.

В связи с этим геодезистами на каждый год рассчитываются таблицы магнитных склонений (отклонений магнитного азимута от истинного) для каждой «целоградусной» географической координаты (180*360=6480 возможных значений). Таким образом, для получения магнитного азимута надо к истинному азимуту прибавить или вычесть значение магнитного склонения для заданных координат.

В качестве источника таблицы магнитных склонений в сервисе Geonames.ru используется файл magdec.bgl на 2012 год — это таблица склонений в бинарном виде для авиа-симулятора Microsoft Flight Simulator 2004.

Для того, чтобы визуально отобразить направление на спутник на карте необходимо иметь ввиду, что карта плоская, а Земля — круглая. Поэтому линия направления будет представлять собой дугу. Сервис Geonames.ru использует Яндекс.Карты, в которых можно задать параметр geodesic=true для отображения линии в виде геодезической кривой.

Угол места и угол наклона тарелки

Угол места — это угол возвышения спутника над линией горизонта. Если угол места меньше нуля, то спутника над горизонтом не видно и прием сигнала с него невозможен.

Угол места рассчитывается по формуле

k = PI/180;
a = широта места * k;
b = долгота места * k;
c = долгота спутника * k;
Угол места = arctan((cos(b-c)*cos(a)-0.15126)/sqrt(1-cos(b-c)*cos(b-c)*cos(a)*cos(a)))/k;

Казалось бы, достаточно наклонить плоскость антенны в соответствии с углом места и мы поймаем ТВ-сигнал со спутника. Но не все так просто. Это утверждение будет верным, если используется прямофокусная антенна, у которой угол отражения сигнала перпендикулярен плоскости антенны. В частном секторе распространены офсетные антенны, угол отражения сигнала которых, в зависимости от конструкции, составляет 110-116 градусов. У нас чаще попадаются антенны с углом отражения 116 градусов.

Схематически разницу в конструкциях антенн и направлениях отражаемого сигнала можно посмотреть в комментарии к соседнему топику.

Таким образом, угол наклона антенны будет примерно равен углу места минус 26 градусов. Для таких операторов как Телекарта, Континент ТВ, спутников Ямал, при установке в Московском регионе, антенну придется наклонять к земле.

Угол поворота конвертера

Счастливые абоненты Триколора и НТВ+ могут вздохнуть с облегчением — с их спутника вещание ведется в круговой поляризации и поворачивать конвертер для приема такого сигнала не надо. В остальных случаях требуется поворот конвертера.

Угол поворота рассчитывается по формуле

k = PI/180;
a = широта места * k;
b = долгота места * k;
c = долгота спутника * k;
Угол поворота конвертера = arctan(sin(b-c)/tan(a))/k;

Если посмотреть на конвертер так, как смотрит на него тарелка, то поворачивать его надо при положительном значении — по часовой стрелке, при отрицательном — против.

Google.Maps vs Яндекс.Карты vs Яндекс.Карты 2.0

Поиск места установки антенны и визуализация направления на спутник является основным функционалом сервиса, поэтому выбор картографического сервиса не стал тривиальной задачей.

Субъективные оценки с учетом ориентации сервиса на Россию:

Google.Maps

Плюсы

  • Высокая скорость работы
  • Очень хорошая детализация спутниковых снимков

Минусы

  • Не очень хорошая работа геокодера по России
  • Низкая детализация в режиме схемы многих крупных российских городов

Яндекс.Карты 1.х

Плюсы

  • Очень хорошая детализация в режиме схемы
  • Отличный геокодер

Минусы

  • Низкая детализация спутниковых снимков вне крупных городов
  • Работает медленнее Google.Maps

Яндекс.Карты 2.х

Плюсы

  • Очень быстрая работа, плавный рендеринг
  • Маленький размер библиотеки
  • Все плюсы первой версии

Минусы

  • Невозможность отобразить линии в виде геодезической кривой.
  • Получаемые карты не принтабельны. Статический API не позволяет отобразить линии в виде геодезической кривой.

В итоге выбор пал на Яндекс.Карты первой версии. Возможно, во второй версии со временем будут решены проблемы с печатью карт и тогда сервис можно будет перевести на нее. В крайнем случае есть Google.

Автор: vkachalov

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js