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

    С наступлением летних каникул, для многих жителей крупных городов, жизнь постепенно переезжает за город. Одним из 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.
    Share post

    Comments 45

      +2
      Полезный проект, желаю удачи в развитие.
        +2
        Имхо хорошим развитием будет добавление операторов связи и вышек и куда направлять антенну для мобильного интернета, да база потребуется большая но я думаю будет очень полезным и популярным сервисом, особенно в дачный период)
          +2
          Читаете мои мысли? У меня эта идея возникла сразу же как делать начал )
        0
        Отличный проект, особенно если по карте можно визуально определить, куда по азимуту направлять — если видна точка прицеливания, то все становится немного проще.
        Разивайте его, поделюсь ссылочкой со знакомыми установщиками.
          0
          Спасибо. Да, основная идея в том, чтобы по направлению на карте отметить ориентир и по нему выставлять тарелку, а не бегать с компасом по своему домовладению.
          +2
          OpenStreetMap?
            0
            Спасибо. Я его не рассматривал. Мб ваш комментарий подтолкнет к изучению )
            0
            Всё круто, но я рефлекторно кручу колесиком при попытке зумить карту — в итоге, уезжаю вверх или вниз.
            Можно как-нибудь перехват фокуса на фрейм с картой реализовать?
              0
              Добавить зум на колесо мыши можно, функционал Яндекс.Карт это позволяет. Не знаю… как быть с теми, кто привык скроллить страницу колесом?
                –1
                Может, не сразу раскрывать все вкладки на полную высоту, а по мере заполнения, чтобы всё влезало в один экран 1080 высотой? А то не влезает.
                  0
                  разрешение 1080р не самое популярное, если делать заполнение на весь экран, то надо на высоту 1024 ориентироваться. Давайте посмотрим на плюсы к вашему комментарию — зум добавляется одной строкой кода )
                    +1
                    Ну 1080 или 1024 — это непринципиально, порядок примерно один.

                    Просто если бы эти закладки цветные работали действительно как закладки (ткнул первую, она развернулась; заполнил, ткнул вторую — первая свернулась, вторая развернулась) — было бы очень здорово.

                    Спасибо, конечно, в любом случае, штуку Вы скрафтили полезную — пригодится.
                      0
                      Насчет вкладок — хорошая мысль, действительно.
                      • UFO just landed and posted this here
                  0
                  Скролл тоже работает неправильно из-за одновременного движения зеленого блока с цифрой 2 навстречу колесу. Я три раза мимо карты промахивался.
                    0
                    Спасибо. Я понял, что текущий параллакс-эффект не очень удобен для навигации. Наверно, пока я разрабатывал привык к нему. Как хабронаплыв спадет займусь сим вопросом.
                    0
                    Я бы вообще бы предпочел мастер для настройки:
                    1) на первом шаге выбираем оператора/спутник, нажимаем далее
                    2) на втором — где располагаемся, далее
                    3) получаем результат, печатаем.

                    Мышкой карту скроллишь уже автоматом, а сейчас это приводит к покатушкам на странице в духе ап-энд-даун
                  0
                  Очень вовремя, маман как раз тащит на дачу триколорку подаренную.
                    0
                    Браузерное Geolocation API можно еще прикрутить :)
                      0
                      А там уже есть, правда не браузерное, а через ipgeobase
                        0
                        Так плюс GeoAPI в том, что можно определить реальные координаты и, самое главное, направление!
                        Т.е. если запустить программу на телефоне/планшете с GPS и компасом, то можно сразу и видимые спутники показать, где они находятся.
                        Вот посмотри DishPointer на Андроиде.
                      0
                      Хороший сервис. Попробуйте связаться с НТВ+ или Триколором насчет сотрудничества, вдруг заинтересуются
                        0
                        Интересный сервис. Может у меня одного проблема, но в хроме перемотка колесиком перематывает всю страницу за 1 щелчок.
                          0
                          Я работаю в Орион-Экспрессе, тот который Телекарта, Континент ТВ и Восточный Экспресс.
                          Красиво нарисовано, удобно пользоваться. Обязательно покажу проект нашему менеджменту, правда не знаю о каком «сотрудничестве» может идти речь, технически все карты, азимуты, градусы, все давно посчитано для всех регионов, существуют таблицы и программы для автоматической выдачи параметров (не такие конечно красивые). Но покажу обязательно прямо завтра. Может ссылку поставят, а может и установщикам будут рекомендовать в качестве справочника.
                            0
                            Спасибо. Возможно, если бы я купил Триколор, а не Телекарту, этого сервиса и не было бы. Понятно, что и у установщиков и у ваших операторов кол-центров есть аналогичные десктопные программы — я все же ориентируюсь на тех, кто самостоятельно устанавливает тарелку. Хотя ссылка, наверно, поможет разгрузить немного ваших операторов.
                            +1
                            OSM бы еще прикрутить.
                              0
                              Чуть выше уже предлагали. Я вообще сервис делал как некое быстрое решение: появилась идея — сделал — забыл. Он сам по себе работает и кушать не просит. Я рабочий прототип за вечер сделал.
                              С OSM я раньше не работал, а его изучение, на первый беглый взгляд, должно отнять много времени. Визуально он выглядит очень приятно и функционально. Появятся возможности — обязательно попробую переделать сервис на OSM.
                                0
                                Будете привинчивать OpenStreetMap — используйте Leaflet, это сильно упростит жизнь.
                                  0
                                  Яндекс Карты v2 также отлично живую на любых подложках.
                              +2
                              Всетаки не совсем это удобно — в свое время так и не получилось повесить антенну «по спутнику»
                              В итоге скачал в телефон спутники в augmented realty и видя этого гада над елками смог таки нацелить.
                              А я Яндекс Картах — геодезик конечно же будет, а как их распечатать и сейчас могу рассказать.
                                0
                                А можно подробнее, как вы это сделали?
                                  +1
                                  Дайте пару часиков, подровняю код и выложу на гитхаб.
                                  0
                                  Аналогично — рассчитал нужные углы на аналогичном калькуляторе, забрался на крышу с угломером, компасом — и нифига не ловит.

                                  Пришёл сосед, обычный нетехнический мужик — «Что ты ерундой занимаешься? Посмотрел как у соседа настроено, направил также; а дальше покрути немного во все стороны, глядя в уровень приёма на экране». Так и сделал.

                                  Справедливости ради — по-моему тот калькулятор выдавал другие числа, geonames больше похоже на результаты рабоче-крестьянской настройки.
                                  0
                                  А что положение других спутников задать нельзя?
                                    0
                                    Большое спасибо за такую полезную вещь!
                                    Жаль я ее 2 недели назад не видел иначе бы тарелку сам поставил, а так для настройки на спутник пришлось звать более продвинутого товарища.
                                      0
                                      Не хватает слоя Народной карты Яндекса. Кстати, у Яндекса, в отличии от Гугла, есть отличные снимки небольших городов.

                                      Хотя у нас в городе в основном у всех Триколор и НТВ+, направление можно по соседним тарелкам посмотреть :) Иногда можно по тени соседней тарелки свою настроить, тоже довольно точно получается.
                                        0
                                        Ещё хорошо бы видеть зоны покрытия спутников и получать информацию о необходимом диаметре тарелки в данной точке, для получения уверенного сигнала.
                                          0
                                          Это обычно в инструкции пишут.
                                        0
                                        Возможно, имеет смысл добавить еще и спутник Astra.
                                          0
                                          Лучше бы на выбор была карта. Разные регионы по разному прорисованы на разных проектах.
                                          На яндексе дом приходится искать по спутниковому снимку, а не по карте, т.к. карта отсутствует, а народная яндекс карта не включается. Самым лучшим вариантом для нашего города был бы OpenStreetMap. Да и никто не мешает пройтись вокруг своего дома с навигатором и дорисовать недостающие улицы.
                                          Карта Google вообще не вариант, т.к. по ней просто невозможно ориентироваться. Ну, если только с погрешностью +-10 километров. Опять таки ориентируюсь на свой район и города в округе 200-300 километров (не считая, может быть, Тюмени).
                                            0
                                            Отличный сервис, спасибо. Попробовал оба, в том числе и www.dishpointer.com/
                                            Есть небольшая разница в магнитном азимуте при прочих равных
                                              0
                                              такое нужно для ифонов и андроидов… а так да нормально…
                                                0
                                                Не удобно же скролить туда сюда. Может стоит это все как-то на один экран поместить?
                                                  0
                                                  +1. проскролить в safary до «параметры установки» не удается, тк скролинг карты мешает. думаю стоит карту сделать последней.
                                                  0
                                                  Мне этот сервис определения азимута по карте более удобен: sputnik.home-plan.ru

                                                  Only users with full accounts can post comments. Log in, please.