Скрипт для создания TLE элементов spaceship орбит.
... Все страницы раздела SAT * KSM проекта MY TLE генератор DDE файлов спутникового мониторинга - являются размышлением, направленным на необходимость и обеспечение работоспособности скриптовых сценариев автоматической генерации собственных данных орбит и связей авто настройки программ - для работы в составе единого ПО комплекса отслеживания радио передач спутников - в образовательных и радиолюбительских целях ...
* KSM - kompleks sputnikovogo monitoringa, satellite monitoring complex, частная любительская домашняя наземная станция приёма сигналов космических аппаратов на базе RTL-SDR ...
Разработка скрипта TLE и проблемы.
Скрипт был переработан в пользу более нового и лучшего скрипта для работы программных агрегаторов спутникового мониторинга в едином формате ... Последнюю версию таблицы активных спутников и скрипты смотрите в меню / ниже ...
Примечание : скачивать скрипты с этой страницы - нет смысла (поэтому - они были удалены) ; материал оставлен для ознакомления и мог устареть ... Для комплекса спутникового мониторинга в комплекте идет весь набор необходимых новейших скриптов ...
Самые свежие разработки ... В октябре 2022 года был разработан авторский уникальный пакет скриптов Sat-Gen-TLE-v5 для генерации файлов TLE, Notes, DDESchedule.xml и Radio.his автоматической настройки RTL SDR цифрового радио, в комплекте программ SDRSharp и Orbitron - на приём спутников и спутниковых сигналов ...
Примечание : вместо многократно упоминаемого слова " файл " - применяется сокращение Ф ...
Изготовив неплохую, на мой взгляд, спутниковую антенну и в попытке опробовать ее - вновь подступился к теме создания специфичного ТЛЕ, будучи подкованным предыдущими разработками ... Как я уже предполагал ранее и, чтобы не городить огород с Microsoft Excel - должно быть возможным придумать BAT / CMD скрипт, который непосредственно извлекает строки из суммарного Ф всех TLE координат в папке программы Орбитрон и пишет в отдельный Ф для заданного спутника ... Иметь свой настроенный / целевой Ф ТЛЕ координат - это очень удобно и практично ...
Лень возится с пугающей сложностью процедур полу / ручной обработки строк ТЛЕ координат из предыдущего опыта - заставила меня взяться за разработку универсального скрипта ... Теперь, забегая вперед, я скажу, что все получилось так, как я хотел, но результат оказался неработоспособным ... Кратко расскажу, как было дело ...
Скрипт Sat TLE, v1.
Сначала нужен сборный Ф обновленных ТЛЕ ... Обновил программы Orbitron ... Как и ранее, собрал скриптом - прочитав файлы TXT в цикле FOR и вывел через перенаправление вывода TYPE в _all.dat ... Это скрипт _01-tle-type.cmd ...
Следующим этапом разработал и отладил скрипт разбора строк _02-tle-min.cmd ... Как только код заработал - на его основе доработал скрипт _02-tle-max.cmd и подставив, в переменные - номера требуемых спутников, вычисленных заранее (из предыдущего Ф sat2375.txt - в котором почему-то оказалось всего 22 спутника ...) Обсчитался ... А, в статье на сайте - 23 ... Так и есть, пропустил спутник 43589 ...
Так, как я планирую использовать этот Ф многократно - сохранил его с региональной выборкой спутников, как _02-tle-ural-2375.cmd ... Запустил и, вскоре - получил идеальные требуемые файлы, которые третьим скриптом _03-tle-my-combi.cmd объединил в обновленный Ф sat2375.txt ... Только при загрузке в Орбитрон Ф отказался показывать спутники в окне меню / выбора ... Первый спутник отображается - остальные ни в какую ...
Тогда я вручную скопировал код следующего спутника из оригинала и перезагрузил Ф - стало отображаться 2 спутника ... Как же так - все получилось в прошлый раз ? Не понимаю ... Сравнил файлы командой FC и увидел отличия в коде, хотя визуально текст практически не отличается ... Я подумал, что проблема связана с TYPE или ECHO и сделал новый Ф , где собрал _all.dat способом COPY / коннектацией ... Заново проделал всю процедуру - снова та же самая проблема ...
Подумав, я поигрался с кодировками DOS и не получил успеха ... Тогда я сравнил скриптовую и оригинальную записи : отличие заключается в количестве пробелов, которые режет цикл, используя пробел в качестве делителя ...
Есть только один способ обойти эту проблему : отделить копирование от разбора строк ... И переназначить делитель токенов по умолчанию на знак =; ... Тогда строка не должна будет изменяться ... Введение дополнительной переменной с механизмом извлечения номера спутника из строки позволило, наконец - уйти от этой проблемы с пробелами, хотя - осложнило код скрипта и увеличило его время работы на 38% ... Но, нет худа без добра ... При переделке скрипта я значительно улучшил его и добавил авто / остановку при нахождении последних искомых данных спутника ...
Всем, кто работает с собственными ТЛЕ файлами могу обратить внимание, что нужно крайне деликатно обходится с пробелами, даже в коде скрипта, например :
ECHO %%A > file.txt - в этом случае скрипт сгенерирует лишние пробелы ...
ECHO %%A>file.txt - такая запись кода не дает лишних пробелов, которые, в большинстве случаев - не оказывают никакого негативного влияния на исполнимость кода BAT / CMD, но не в случае ТЛЕ ...
Преимущества скрипта TLE и особенности работы.
Широкий функционал работы скриптов предоставляет следующие возможности по созданию собственного ТЛЕ Ф :
- Максимальные нагрузки ... Количество строк Ф _all.dat = 6186 строк ... На один спутник 3 строки (название + TLE координаты), действующих строк (и повторов) = 2062 ... Максимальное количество спутников по числу букв алфавита A - Z = 26 ... Общее количество сравнений 2062 * 26 = 53612 ... Полное время работы скрипта _02-tle-ural.cmd = 18 минут / 1080 секунд ... Примерно 49 сравнений в секунду ...
- Выполнение скрипта можно прервать в любое время без последствий ... В окне сеанса DOS нажать CTRL+C и досрочно прервать выполнение скрипта ... Но я думаю, что поиск спутников по одному - будет более утомительно, чем искать все сразу ... Кстати, я вам скажу, скрипт _02-tle-min.cmd работает значительно шустрее ))) ...
- Скрипт _02-tle-max.cmd без предварительно заданных спутников ... Все переменные установлены в ноль ... Можно указать любое количество из 26 допустимых, в любом порядке номеров - и если их координаты присутствуют в Ф _all.dat - файлы спутниковых координат будут сгенерированы однозначно ... Основное правило скрипта : неиспользуемые переменные устанавливать в 0 (SET SatX=0), так как они все равно участвуют в опросе ...
- В случае собственного умения вы можете модифицировать код скрипта на любое количество искомых спутников ...
- Если вы ищите спутники только в определенной / известной группе ТЛЕ - сохраните этот Ф под именем _all.dat и используйте любой из преднастроенных скриптов ... Вы можете сохранить скрипт / часто используемые настройки / под собственным именем, например _02-tle-my.cmd или _02-tle-mycity.cmd - как угодно, в английском алфавите ...
- Главное правило для собранного Ф _all.dat - никаких пустых или посторонних строк ... Скрипт без проверки и методично читает строки 1, 2, 3 сброс, 1, 2, 3 и т.д. ... Можно использовать любые источники ТЛЕ в соответствии с этими правилами ...
- При необходимости, можно собрать Ф _all.dat методом COPY / коннектации, принудительно изменив порядок слияния файлов - это даст дополнительные преимущества в быстроте / времени поиска данных ...
- Скрипт исключает дублирование записей и при наличии Ф в каталоге - повторной, его генерации, не будет ... Поэтому, перед началом работы с *.dat файлами - все *.txt файлы должны быть удалены ... Иначе могут остаться старые файлы с просроченными координатами ...
Порядок работы при создании TLE файла.
Шаг 1. Установка скрипта.
Скрипт не привязан к каталогу / папке, описание для примера ...
- В папке программы Орбитрон создайте папку Tle-My ...
- Скопируйте в нее файлы скрипта из архива и TXT файлы из папки Tle ...
Шаг 2. Слияние групп ТЛЕ в общий файл.
Скрипт _01-tle-type.cmd не требует специальной настройки ...
- Его задача - объединить группы в единый Ф для возможности поиска элементов орбит
- Копируйте, а не перемещайте TXT файлы - после слияния они будут удалены ...
Шаг 3. Генерация отдельных TLE файлов спутников.
Скрипты _02-tle-***.cmd требуют указания номеров NORAD искомых спутников ...
- Откройте скрипт ПКМ / правой кнопкой мыши для редактирования ...
- Измените значение переменной SET Sat(?)=0 на номер искомого спутника
- Неиспользуемые строки должны иметь значение =0 ...
- Ф можно сохранить, как ... и указать собственное имя ...
- Запустите скрипт и файлы в папке будут созданы по мере обнаружения элементов орбит спутника ...
- По окончании поиска или окончании просмотра Ф _all.dat скрипт автоматически закончит свою работу ...
# _02-tle-min.cmd - скрипт для поиска одиночных файлов ...
# _02-tle-max.cmd - пользовательский скрипт для настройки и поиска группы спутников ...
# _02-tle-ural-2375.cmd - скрипт моей региональной настройки и выборки, Урал, Россия ...
Шаг 4. Создание файла ТЛЕ для выбранной группы спутников.
Скрипт _03-tle-my-combi.cmd, слияния разрозненных файлов в групповой Ф ...
- Можно настроить собственное имя выходного Ф ...
- Откройте скрипт ПКМ для редактирования ...
- Измените переменную SET OutFile=tle-my на =собственное имя ...
- Расширение Ф уже указано в скрипте ...
Шаг 5. Подключение своего TLE файла группы спутников в программе.
Ф ТЛЕ к программе Орбитрон подключается стандартным образом ...
- Укажите папку генерации и выберите Ф ...
- Не рекомендуется перемешивать оригинальные и собственные Ф , во избежание возможных будущих проблем ...
Скачать скрипт Sat TLE v1 2019.
Честно говоря, я очень хотел написать такой скрипт, так как вижу в нем перспективу для всех нуждающихся радиолюбителей в спутниковой отрасли ...
Примечание :
- Cкрипт работает с трех-строчными ТЛЕ исходниками, обновляемые с сайта
# ... celestrak.com, Онлайн спутниковый каталог. TLE орбитальные элементы. Dr. T. S. Kelso.
... Трех-строчные TLE исходники ... Космические новости ...
# ... space-track.org, Каталог спутников, TLE орбитальные данные, информации о космической обстановке.
... Для номеров, менее 5-ти значных - вместо нолей впереди номера содержат пробелы ... И это может быть проблема ... Такой Ф следует подвергнуть минимальной обработке вручную / в блокноте, для замены пробелов на 0, используя хитрый алгоритм ... 0 четыре пробела на 0 0000 ; 0 три пробела на 0 000 и так далее, включая 1 и 2 строки ...
- Первая строчка TLE элементов от celestrak не маркируется, как 0, а от space-track, напротив - маркируется ... И это может быть вторая проблема ... Вопрос пока открыт ... Можно попытаться решить эту проблему проверкой на 0 первого символа ... Можно и не использовать space-track - но, на мой взгляд, его база ТЛЕ полнее, чем celestrak ...
Скрипт Sat TLE, v2.
Работа с первой версией ТЛЕ скрипта и создание таблицы активных спутников и частот - показали :
- отсутствие стандартизации TLE записей ...
- множественные названия спутников, в отличии от единых идентификаторов ...
- некоторые несоответствия между различными ТЛЕ базами данных ...
- трудности и необходимости проверки названия спутников при создании алгоритмов планировщика событий DDE сервера программы слежения и управления RTL-SDR радио / приемником ...
- возможно, что-то еще, чего я не упомянул ...
В попытках объединить пользу и удобства - код оригинального TLE скрипта был модифицирован, с целью :
- создать единый Ф _all.dat с уникальными ТЛЕ записями и в едином формате посредством машинной обработки исходников, суммарно содержащих более 55000 строк трех / строчных данных орбит спутников, то есть 55000 / 3 = 18350 дублированных записей, от которых хотелось бы избавиться ...
- исходники Celestrak и Space-Track дополняют друг друга, хотя и имеют противоречия ... Если вы не хотите вручную заменять пробелы на 0 для первых 9999 спутников Ф 3LE Space-Track - просто удалите все записи с номером менее 10000 ... Данные спутника 07530 вы получите из исходников Celestrak, где они - есть ...
- обработать такой массив строк - тяжело, даже компьютеру, и он будет надсадно пыхтеть вентилятором ... Однако, когда вы захотите вручную отсеять 180 работоспособных спутников для расчета проходов в вашей местности - вы, так думать - не будете ...
- удобство работы с таблицей спутников и частот позволяет отсортировать и выделить необходимый сегмент спутников по категории интереса : частота, позывные, дата / место запуска и т.д. - скопировать в Microsoft Excel - и провести дополнительные селекции по особым признакам, редактированию или удалению ненужных записей, таким образом получая список номеров спутников, для которых нужен особый / собственный Ф TLE координат для расчета проходов в местности наблюдения ...
- подготовка скрипта к работе ... Скопируйте ТЛЕ файлы в папку скрипта ... Отредактируйте 3LE.txt, в дальнейшем он будет переименован в zzz.txt, чтобы дополнить наш создаваемый Ф ... Запустить первую часть скрипта _01-tle-v2-dat.cmd ... После, около часа работы, в зависимости от скорости работы компьютера - скрипт создаст Ф с уникальными TLE записями (выборочная проверка не показала наличие дублей), который можно использовать для дальнейшей обработки ... 48000 строк и 2.3 Мб размером, 16008 объектов ...
- таблица спутников и частот предоставляет сведения, что - в мире доступно 122 радиолюбительских спутника с гарантией работоспособности 50% и из них 82 с явным указанием позывного маяка ... Чтобы выяснить, какие спутники можно наблюдать в моем регионе / Урал - используя Excel отсортировать спутники с маяком и скопировать их номера / в столбец, один номер на строчку / в Ф _02-tle-v2-list.dat и запустить вторую часть скрипта _02-tle-v2-selwr.cmd ... Excel позволяет копировать текст и по строкам и по столбцам, так, что - это не должно вызвать особых трудностей ...
- При такой серьезной подготовке - на генерацию собственного ТЛЕ Ф орбитальных данных 100 спутников - уходит всего несколько секунд ... Источник записей _all.dat обычно можно использовать в течении недели, пока не придется изготовить следующий обновленный Ф ...
- Промежуточные этапы генерации отдельных TLE файлов спутников и их сбор в единый Ф - исключены из скриптовой обработки за ненадобностью ...
- Полученный Ф я назвал my-ural-10042-437mhz-beacon.txt по региону, сортировке надежности приема по таблице от 100% до 42%, по частоте передачи 430 - 437 МГц, и с учетом наличия позывного маяка ...
- Ничто не мешает мне сделать список номеров всех 122-х спутников и за несколько десятков секунд получить еще один собственный ТЛЕ Ф ... Пусть это будет, например : my-ural-10042-437mhz-all.txt ... Это повысит шансы на удачный прием и сократит время ожидания между проходами следующих спутников, что сделает спутниковое радио / наблюдение еще более напряженным и интересным ...
Создавая первый скрипт я ориентировался на спутники с высоким углом прохода, не учитывая их радио / пригодность - и, это может быть хорошо для спутниковых наблюдателей, но однозначно плохо для радио / мониторинга активности и приема данных со спутников ... Если переименовать _all.dat в _all.txt (или, в любое имя формата текст) - то, подключив - можно использовать его и для расчета визуально наблюдаемых проходов спутников, так как - если припомнить, то для первичных расчетов я использовал Ф с дублями, который создавал некоторые проблемы ... Ф _all.dat лишен этих неприятностей ...
Непосредственно у меня - есть задача протестировать новую антенну 435 MHz, собственно для чего мне и понадобились таблица активных спутников, возможность сортировки по частоте и новый скрипт / генератор TLE ... Надеюсь, то что нужно мне - возможно / поможет и многим любителям спутникового приема с использованием RTL-SDR ...
Примечание : при тестировании в практических условиях были обнаружены и исправлены следующие недостатки в работе скрипта :
- ноль в первой строке признан нецелесообразным, однако оставлены обе версии генератора :
_01-tle-v2-dat-w0.cmd = версия с нулем в первой строке (with 0) ...
_01-tle-v2-dat-wo0.cmd = версия без ноля в первой строке (without 0) ...
- обнаружено, что в список спутников для требуемых ТЛЕ - могут попасть дубли, особенно в многострочные списки ... Всему виной - обычная / человеческая невнимательность ... В скрипт / генератор _02-tle-v2-selwr.cmd введена проверка на дубли, а сам скрипт также стал ориентирован на две версии по 0 : _02-tle-v2-selwr-w0.cmd и _02-tle-v2-selwr-wo0.cmd ...
Основной текст статьи был написан в мае 2019 ...
11:14 01.08.2019
Раздел sat-ksm : список всех страниц ...