A A A A Автор Тема: Наиболее точная библиотека для астрометрии и т.п.  (Прочитано 820 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Скорей всего, помощи здесь не дождусь, т.к. вряд ли любителям понадобится точная библиотека, но выскажусь.
Еще в самом начале нулевых, когда В.С. Шергин писал систему управления БТА, особо библиотек для координат/времени и т.п. не было, поэтому ему пришлось при помощи f2c из фортрановской SLA сделать сишную библиотеку. Оно до сих пор так и работает, но жутко неточно. Вот я сравнил результаты с SOFA/ERFA, и если по видимому месту без атмосферы оно как-то более-менее пойдет, то рефракцию (особенно на больших Z) считает очень криво. В принципе, сравнение SLA/SOFA я делал еще несколько лет назад. И на рисечгейте наткнулся на человека, который то же самое делал в свое время, еще и с NOVA/NOVAS (исходники на гитхабе). И у него тоже вышло, что SOFA/ERFA (это — одна и та же библиотека, просто ERFA идет с опозданием, т.к. копирует SOFA, но зато не имеет ограничений использования) наиболее точные результаты дает.
Управление монтировками 10micron я сделал на ERFA, собственно, и софт при работе с БТА/Z1000 у меня ERFA для преобразования координат использует. Однако, хочется ведь еще и в шапку писать расстояние до Луны и Солнца, фазу Луны, а то и даже параметры простенького калькулятора экспозиций…
Начали с коллегой писать управление оставшимися нашими тремя 50-см телескопами (увы, там не крутая 10micron, а убогая sidereal servo, для которой в природе не существует готовой системы управления). Сегодня наткнулись еще на одну библиотеку: SuperNOVAS (основанную на NOVAS, а та, в свою очередь, основана на NOVA, но, в отличие от NOVA, которую 7 лет назад авторы забросили, эти библиотеки развиваются).  И здесь даже пишут о " full support for the IAU 2000/2006 standards for sub-microarcsecond position calculations".
Я-то потестирую эту библиотеку, но вот таки интересно было бы у людей, которые занимаются разработкой систем управления телескопами, спросить. Вдруг есть что-то более точное, надежное и развивающееся? Не хочется, чтобы оно померло, как SLA в свое время.

// кстати, как ни странно, astropy пользуется именно ERFA. Как они там с Луной, Солнцем и т.п. — непонятно... Но змеюкой я даже под угрозой расстрела пользоваться не буду, тем более, там даже компилятора до сих пор нет.

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
И у него тоже вышло, что SOFA/ERFA (это — одна и та же библиотека, просто ERFA идет с опозданием, т.к. копирует SOFA, но зато не имеет ограничений использования) наиболее точные результаты дает.
Да, SOFA сейчас по-видимому самая точная библиотека для астрометрии, хотя с ней не очень удобно работать и не всем такая точность нужна. Она есть и у меня в российском опенсорс проекте астроплатформы AstrobloQ https://gitverse.ru/glscene/AstrobloQ или https://gitflic.ru/project/glscene/astrobloq моделирования космических коммуникаций. Там же посмотрите более современный и компактный астрономический движок Astronomу https://gitverse.ru/glscene/AstrobloQ/content/master/source/astronomy, форк с гитхаба. Если найдёте что-то лучшее после сравнения сообщите, пожалуйста, о результатах или дайте ссылку. 
« Последнее редактирование: 23 Янв 2025 [21:55:35] от Павел Васильев »

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
более современный и компактный
О точности ничего не сказано. Глянул readme по-диагонали, что-то совсем уж низкоуровневый движок. Та же SOFA/ERFA тоже позволяет координаты Солнца и Луны определять (а, если постараться, то и фазы), но для этого такую портянку надо нарисовать… У всяких разновидностей NOVA это делается одной функцией, но точность неизвестна.
Самую высокую точность (ну, понятно, по БТА не проверить особо, т.к. он сам ±10'' наводится, но, однако) показал, как ни странно, stellarium. Я копался в исходниках — там вообще не используются сторонние библиотеки, "всē своē". И запускается стеллариум каждый первый раз в сутки очень долго: качает что-то  там (видимо, свежие эфемериды и таблицы возмущений Земли, Луны и т.п.).
Вот хорошо было бы иметь такую же полноценную библиотеку, которая бы периодически все нужное подкачивала простыми вызовами вроде "refresh_ephem()". И имела однозначные элементарные функции для преобразований координат (у той же ERFA их очень много, и нужно долго читать документацию, чтобы понять, что тебе 99% нафиг не нужно, т.к. надо лишь преобразовывать между нонешней эпохой и J2000). Ну и считала видимые места достаточно точно (в принципе, 0.1'' хватит, таки у нас не космический телескоп).
Да, насчет космических телескопов (та же Gaia, например): там нужны вообще микросекунды точности. Я уверен, что у них все нужные библиотеки есть. Только не хотят эти засранцы делиться!!!

P.S. А что за "гитверс" такой? Очень подозрительная штука: при регистрации какую-то дичь несет…

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Я уверен, что у них все нужные библиотеки есть. Только не хотят эти засранцы делиться!!!

P.S. А что за "гитверс" такой? Очень подозрительная штука: при регистрации какую-то дичь несет…

И не будут делиться. Вы конечно знаете, что github принадлежит компании Майкрософт и соответственно догадываетесь, что там не только к публичным, но и к приватным проектам имеют доступ спецслужбы той страны, которая контролирует эту компанию. Задачи решаемые в астрометрии тесно связаны с задачами телескопии, навигации, точного наведения и полёта не только космических кораблей, но и ракет в места  не столь отдалённые, на нашей планете. Поэтому для российских пользователей, в том числе для приватных общегосударственных проектов, альтернативой github являются наши площадки gitflic (от AstraLinux) и gitverse (веб-сервис от СберТех). Последний сервис более ограничен даже для доступа иностранным пользователям, так как для регистрации необходимо быть клиентом Сбербанка. И это правильно. В частном репозитории может быть до 4Гбайт кода, в личном аккаунте ограничений на число репозиториев по всей видимости нет. По скорости клонирования 1 Тбайта трех зеркальных репозиториев себе на компьютер в 2024 году у меня при трафике 280мбит на первом месте оказался наш астролинусовский gitflic (100сек), на втором майкрософтовский github(240сек) и на третьем месте gitverse (450сек).  Работать вполне можно со всеми площадками, но предпочтение надо отдать gitverse, так как здесь помимо указанных выше отличий развиваются также интегрированная среда программирования GigaIDE и отечественный искусственный интеллект AI-ассистент разработчика GigaCode.

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
gitflic (от AstraLinux) и gitverse (веб-сервис от СберТех)
О как! А есть там сервис автоматического клонирования реп, как на гитлабе, битбакете и сосфорже? У меня "яйца" хранятся в следующих корзинах (помимо трех моих компьютеров): гитхаб, сосфорж, гитлаб, битбакет, git.sao.ru, ну и локально — на нашем сервере "роботелескопов" (там вообще никакого интерфейса нет и для добавления репы надо под рутом заходить). Можно и еще в эти пару мест (все-таки, доверия мелкомягкому гитхабу нет вообще: они в любой момент могут забанить россиян).
Что до закрытых реп, я — сторонник 100% GPL кода. Еще ни одной строчки за свою жизнь не написал под закрытой лицензией. И почти все мое "творчество" доступно любому желающему. Разве что подробную документацию некогда писать.

И вообще, в душе надеюсь, что пройдет немного времени, и за использование проприетарщины в любых отраслях, кроме требующих секретности (в частности — вояки, спецслужбы и т.п.), минимум будут сажать лет на пять. Ну, а за написание проприетарщины вне соответствующих областей — вообще расстреливать…

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
О как! А есть там сервис автоматического клонирования реп, как на гитлабе, битбакете и сосфорже?
Насколько я помню гитфлик развивается командой Астра на основе гитлаб, так что эта опция должна быть, насчёт гитверса не уверен. Не знаю зачем правда вам понадобилось автоматическое клонирование - так можно при сбое соединения много чего недоклонировать и потом искать ошибки. С сосфоржа я графический движок GLScene, как админ, давно перетащил на гитхаб, но недавно объединил с ним ещё несколько библиотек графики и сделал репы GLXEngine на гитфлик и гитверсе, а приложения для астрономии плюс либы по астрометрии у меня только на наших площадках в AstrobloQ, по крайней мере удобно все опции на русском языке, в том числе делаю readme.md на русском языке, удобно.

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Что до закрытых реп, я — сторонник 100% GPL кода. Еще ни одной строчки за свою жизнь не написал под закрытой лицензией. И почти все мое "творчество" доступно любому желающему. Разве что подробную документацию некогда писать.
К сожалению большинство программ для астрономии или закрытые не российские или открытые, но коммерческие, пусть даже shareware. Есть ещё полуоткрытые, когда вроде исходники опенсорс, а там подключается куча либ dll закрытого типа. Если третья сторона не поддержала обновлений и ушла в туман, скажем, для  Windows 11 или Linux, то всё, проект может зависнуть на какой-то старой версии.

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
все опции на русском языке, в том числе делаю readme.md на русском языке, удобно.
Бессмысленно: международным языком является английский, поэтому русифицировать софт — вообще не стоит выеденного яйца!
Пусть англосаксы и пиндосы — те еще нацисты и твари. Но факт есть факт: если ты не публикуешься на английском, о тебе никто никогда не узнает.

большинство программ для астрономии или закрытые не российские или открытые, но коммерческие
Вообще не так! Почти весь софт, которым пользуются астрофизики всего мира распространяется по свободным лицензиям (GPL, BSD, MIT и т.п.). На тех, кто пользуется проприетарщиной сраной, смотрят, как на извращенца вроде бабы с МПХ.
dll
За использование маздая предлагаю расстреливать!!!111
Если третья сторона не поддержала обновлений и ушла в туман
При чем тут третья сторона? За своим софтом следит исключительно тот, кто его написал. А если он (как Кубанек с NOVA) "ушел в туман", а желающих проект продолжить не нашлшось, то и проект катится в /dev/null.
Кстати, вчера активно с новой (для меня) библиотекой "SuperNOVAS" поработал. Да. Для эфемерид вообще суперпрелесть, даже через сторонние библиотеки можно свеженькие подкачивать и с микросекундной точностью положение тел солнечной системы определять. А вот насчет видимого места не сазал бы: скажем, базовая функция расчета рефракции вообще отстойная, там точность ниже плинтуса. Но, таки плюсом то, что разработчики во многих своих функциях одним из параметров берут указатель на функцию рассчета каких-то параметров. Ту же рефракцию можно по-нормальному  считать, только обработчик напиши.
Буду мотать на ус.
А пока, на нулевом шаге (управление монтировкой), мне нужна лишь библиотека расчета координат и видимых мест. И кроме ERFA никаких нет, увы. Вот ею и буду дальше пользоваться. Начал писать на днях обертку (чтобы, если что, можно было другую библиотеку запихать, а вызовы не изменились — очень важно, если хочешь что-то написать, что не помрет хотя бы лет 10). Но вот пока никаких мыслей нет о том, как объединить системы: уж больно все разное. Азимутал и экваториал совершенно по-разному управляются. А хочется сделать общий верхний уровень, чтобы не париться…

К сожалению, нацики не выкладывают исхдодников систем управления своими телескопами. Так что, если доживу, Россия будет первой ☺

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Пусть англосаксы и пиндосы — те еще нацисты и твари. Но факт есть факт: если ты не публикуешься на английском, о тебе никто никогда не узнает.
Согласен, но я не о софте говорил, а о наших площадках. У меня конечно все либы и программы, а их сотни, пишутся с интерфейсом и хэлпом на английском, а параллельно локализуются на русский язык и некоторые другие. Справка по астрономии в контексте меню подключается по F1 автоматически к соответствующей статье ruwiki.ru, а английская версии к Wikipedia. Другие языки решил больше не поддерживать - пусть учат английский и русский.

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Почти весь софт, которым пользуются астрофизики всего мира распространяется по свободным лицензиям (GPL, BSD, MIT и т.п.). На тех, кто пользуется проприетарщиной сраной, смотрят, как на извращенца вроде бабы с МПХ
Опенсорс не запрещает программе быть коммерческой - сделать сборку экзешника из громадной репы, к тому же активно обновляемый,  не каждый астроном сможет, он лучше купит готовую рабочую версию за небольшие деньги. Ещё такой момент есть, что софт по лицензии GNU принуждает к обязательной открытости в дочерних продуктах, что отпугивает многих разработчиков, поскольку у них могут быть планы закрыть исходники в новой версии. Такое бывало. А например лицензия MPL разрешает при использовании либы закрывать код, правда надо сохранять комменты и давать ссылку на неё, если она использовалась.
Да, планетарии сейчас в основном опенсорс, хотя вот бывший российский, а теперь американский софт SpaceEngine так и не стал опенсорсом. Автор когда-то писал в каком-то форуме, что ему в чём-то помогла при разработке Celestia, но это опенсорс программа. Не знаю какая там точность астрометрии.

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
у них могут быть планы закрыть исходники в новой версии
10 лет расстрела!

Оффлайн Павел Васильев

  • *****
  • Сообщений: 720
  • Благодарностей: 22
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
10 лет расстрела!
Да, согласен, если компания просто закрыла опенсорс и поставила на этот софт конскую цену, то их вообще четвертовать мало. Но бывают исключения, когда в либах появляются вдруг модули со стратегически важными и даже секретными с точки зрения госбезопасности исходниками, или на основе них создаются в новой версии приложения для МО. Тогда это закрытие опенсорс кода вполне оправдано. Некоторые лицензии не разрешают этого делать.

Оффлайн Serj

  • *****
  • Сообщений: 4 691
  • Благодарностей: 98
    • Сообщения от Serj
    • Тверской астроклуб
А зачем библиотекой считать observed place? Максимум что нужно сравнивать это topocentric. Остальное должна делать система управления. Более чем уверен что различия как раз в моделях атмосферы, ну может быть timescale по-разному считают.
We have met the enemy and he is us.

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
А зачем библиотекой считать observed place?
А как я иначе буду телескопом управлять? За меня это никто не посчитает. Монтировка только умеет двигать осями с нужной скоростью и отсчеты энкодеров осей передавать…
различия как раз в моделях атмосферы
Различий полно. Например, в SLA вообще знать не знают о координатах северного полюса и значении DUT1. А также никак не обращают внимания на високосные секунды.
В SOFA/ERFA високосные секунды "прибиты гвоздями" (т.е. с выходом новых секунд после последнего релиза будут проблемы), хотя, конечно, в ERFA есть интерфейс, чтобы самому вводить.
В SuperNOVA високосные секунды предлагается вручную вводить. Что дает неудобство при расчете timediff.
А ведь и в BSD, и в линуксе есть tzdata, откуда все необходимое легко извлекается системными средствами. Странно, что такой простой интерфейс не добавлен в астрометрическую библиотеку. Ну и IERS bulletin везде предлагают скачивать вручную и получать оттуда px, py и DUT1 (хотя, не сомневаюсь, уже у каждого есть свой велосипед, который сам его скачивает где-нибудь эдак раз в месяц, и нужные данные в конфиг-файлик подставляет).

Оффлайн Serj

  • *****
  • Сообщений: 4 691
  • Благодарностей: 98
    • Сообщения от Serj
    • Тверской астроклуб
В SOFA/ERFA високосные секунды "прибиты гвоздями" (т.е. с выходом новых секунд после последнего релиза будут проблемы)
Никто же не мешает тебе подредактировать dat.c
We have met the enemy and he is us.

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Никто же не мешает
Память мешает ☺
В будущем это все надо будет автоматизировать. Хотя, конечно, когда у тебя поле зрения градус-полтора, промазать на 15-30'' не страшно. А вот для БТА или даже Ц-1000 подобное не годится.
Ну, да ладно: пока что с коллегой "тренируемся на кошках". Если получится вменяемая СУ телескопами, будем масштабировать на Ц-1000 и БТА. В идеале должна отличаться лишь библиотека нижнего уровня. Ее задача - точно исполнять команды, а уж верхний уровень будет контролировать точность целеуказания, запретные зоны и т.д., и т.п.

Очень бы хотелось найти исходники более-менее свежей СУ телескопом, но, увы, народ это почему-то в сеть не выкладывает. В качестве опорной точки есть лишь достаточно старый код Шергина.

Оффлайн Volod

  • Новичок
  • *
  • Сообщений: 21
  • Благодарностей: 6
    • Сообщения от Volod
Очень бы хотелось найти исходники более-менее свежей СУ телескопом, но, увы, народ это почему-то в сеть не выкладывает.
Система управления это логика взаимодействия железа и входных сигналов типа "лево-10, верх-5, старт-стоп" и эта часть у всех индивидуальна, смысла ее выкладывать особо нет т.к. электрические сигналы у всех индивидуальны. Эта низкоуровневая система управления управления монтировкой может содержать блок реализующий интерфейс ASCOM - окно в мир внешних команд управления (в интернете есть описание). С другой стороны- самостоятельная программа управления (как раз в которую зашита астрометрия) у которой ответная часть ASCOM (например Maxim-DL и др) и которая знает когда и как ехать телескопу. В такой постановке вопроса, Вам нет нужды разбирать астрометрию и т.п. Необходимо обеспечить поддержку ASCOM драйвером вашего телескопа и использовать систему управления какая понравиться (и которая поддерживает ASCOM).
{ TV_VSC-756-USB + HELIOS-44M-5 }

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
ASCOM
Какой ASCOM? Это УГ - сугубо маздайная фича. Еще и сеть не поддерживает!
Даже убогий INDI и то на порядок круче! Хоть и у INDI косяков полным-полно (тормознутость, перегруженность, отсутствие защиты и т.д.).

Оффлайн Volod

  • Новичок
  • *
  • Сообщений: 21
  • Благодарностей: 6
    • Сообщения от Volod
Ничего не понял, но повторюсь.
ASCOM (Alpaca в частности по сети: https://ascom-standards.org/About/Overview.htm ) это протокол информационного взаимодействия. Посмотрите как КрАО реализовали: https://elar.urfu.ru/bitstream/10995/115989/1/978-5-7996-3460-5_049.pdf
{ TV_VSC-756-USB + HELIOS-44M-5 }

Оффлайн Eddy_EmАвтор темы

  • *****
  • Сообщений: 1 567
  • Благодарностей: 48
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Volod. Я тоже повторюсь: ASCOM - это чисто маздайная дрянь! И это уже ставит на ней полный крест!

Даже по вашей ссылке ясно написано:
Цитата
ASCOM COM is limited to Windows.
« Последнее редактирование: 26 Фев 2025 [21:05:06] от Eddy_Em »