Как создать свой TLE файл орбит избранных спутников?

Итак, задача : расчет прохода указал имена спутников для места наблюдения, как теперь создать собственный TLE файл, чтобы иметь легкий доступ к избранным спутникам ? ... О-го ... Как бы - не хотелось создавать его вручную, учитывая, что выбрано около 350 спутников ... Как, там в стихотворении С. В. Михалкова (Как старик корову продавал) ? : ... не выдоишь за день - устанет рука ... Метод копи / пасти вручную - ну, никак не годится ... Особенно, если учесть, что через 7 дней файл устареет и его придется пересоздавать ... Попробую автоматизировать ...

Примечание :
- При создании статьи были допущены грубые ошибки в коде первого скрипта (и, сответственно, последнего) ... Ошибки исправлены, извиняйте ...
- В статье я указал, что Orbitron некачественно сортирует список проходов ... Возможно это было связано с добавлением огромного списка спутников с дублированными записями и сбоя при расчете ... При незначительном количестве спутников (например, 23) такой проблемы не обнаружено ...
- было придумано новое название для собственного TLE списка спутников : sat2375.txt (23 спутника с углом прохода 75 градусов), что позволяет модифицировать название файла в удобную сторону ...

Обновляю TLE ... Путь : Orbitron\Tle ...
Создать скрипт копирования всех txt / tle в единый файл
TYPE *.txt >> _all.dat

Как бы я хотел, чтобы эта строчка кода - работала ... Но этому не бывать ...
во-первых, команда TYPE не работает с подстановочными знаками в имени файла ... Это не DEL и не DIR ... Это действие легко может быть реализовано в цикле ...
во-вторых, команда TYPE не работает с пробелами в имени файла ... В этом случае имя файла заключается в кавычки ...
Правильный код, выглядит, так :
FOR %%I IN (*.txt) DO TYPE "%%I" >> _all.dat
REN _all.dat _all.txt

Используется расширение .dat , чтобы txt не перемешивались ... надо назначить открытие файлов .dat с помощью блокнота - и проблем не будет ...

Примечание : проблемы, конечно же, все-равно остануться ... Ввиду дублирования записей в исходных TLE и отсутствии проверки на существование файла - в некоторых сгенерированных файлах будут двойные и тройные / одинаковые записи ... При исправлении (если это вообще вам понадобиться ...) обратите внимание, что файл должен заканчиваться переносом строки ... ECHO делает это автоматически ...

Запускаю Orbitron, подключаю _all.txt (программа не увидит _all.dat файл), делаю расчет ...
Файл расчета можно сохранить, путь : Orbitron\Output ...
Вроде бы все прекрасно, но есть один большой подвох : в файл пишутся только имена спутников ... Некоторые спутники имеют одно имя - и более 10 номеров спутников ... Узнать необходимые можно только в расчете, выбрав спутник (стрелка вправо) и посмотрев информацию ...
Ладно, файл расчета получен, немного отредактировать, убрать заголовки и оставить только строки расчета ...
Проходы отсортированы по имени спутника, а не по времени, что не очень удобно для планирования множественных наблюдений по течению времени ...
Открыть Excel, Данные, Получение внешних данных, Из текста ...
Откроется мастер текстов (импорт), указать формат фиксированной ширины, формат файла (кодировка), например 1251 : Кириллица (Windows) ...
Далее, Шаг 2, цифры в 4 столбце не бывают более 3 знаков до точки, а в третьем столбце имя спутника может вылезти за границу вертикальной стрелки / ограничителя - мышью передвинуть ее вплотную к 4 столбцу ...

Подготовка данных расчета прохода спутников в программе Orbitron к дальнейшей обработке.

Далее, Шаг 3, формат разбора данных / столбцов - можно оставить общий ...
Импорт данных, куда поместить данные - ткнуть мышью в клетку с координатами 1:A (координаты в окошке изменятся на =$A$1) и нажать ОК ...
Преимущество Excel в том, что его / данные - можно сортировать, как угодно ...

Сортировка прохода спутников по времени в программе Excel.

Как, видно - спутники летят почти каждую минуту, и это - выборка только с углом более 75 градусов, и их значительно больше ...
...
15:46:38 GLOBALSTAR M077 [+]
15:46:46 NOSS 3 (G)
15:47:22 COSMOS 482 DESCENT C
15:47:26 NOAA 11 [-]
15:47:30 NOSS 2-3 (D)
15:47:53 GPS BIIR-11 (PRN 19)
15:49:42 OSCAR 30 [?]
15:55:08 GLOBALSTAR M050 [-]
15:55:30 GLOBALSTAR M076 [+]
15:55:54 MOLNIYA 2-10
15:56:04 RADUGA 14 [-]
15:57:47 MOLNIYA 3-41
15:57:55 MOLNIYA 3-13
...

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

Excel позволяет копировать избранные данные, например, столбец с именами спутников ...
Отсортировать названия спутников по алфавиту ...
Скопировать столбец с именами спутников в файл _tmp75.dat ; временный файл для расчета 75 градусов ; здесь и далее имена файлов могут быть произвольные - просто / соответственно изменяйте их в CMD / BAT скриптах, чтобы они работали ...
Также, я ранее указывал, что мне больше нравится расширение скриптов - CMD, но я не настаиваю ))) ...
В файле _tmp75.dat имена спутников повторяются - надо удалить дубли ...

Для этого пишем скрипт удаления повторов / дублей в тексте :
Не забывайте, что в режиме отложенного расширения переменной среды знак переменной / проценты изменяется на знак восклицания, позволяя оперировать значением переменных непосредственно при вычислении в цикле ...
Файл _tmp75.dat читается построчно и отсеянные, от дублей, данные пишутся в файл _mysat.dat ...
SET wrd=last
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /F "tokens=*" %%I IN (_tmp75.dat) DO (
IF /I NOT !wrd!==%%I (ECHO %%I >> _mysat.dat)
SET wrd=%%I
)
ENDLOCAL

Отлично, процесс идет и это не может не радовать ...
Теперь надо разлепить пельмени ...
Я не придумал способа, как копировать 3 строки TLE данных координат спутника напрямую из файла, но можно в цикле вычитать строки 1, 2, 3 - и скопировать их в отдельный файл ... Затем из отдельных TLE орбит спутников - можно создать свой тле файл ... Однако - по порядку ...

У нас есть _all.dat (или, _all.txt), куда мы уже скопировали координаты орбит всех спутников ... Его и будем использовать для создания отдельных TLE файлов ... Пишем скрипт ...
Счетчики цикла установлены ...
Построчно читается файл _all.dat
Если это первый проход / строка - по имени спутника создается файл txt ...
Если это второй или третий проход - тупо копируются 1 и 2 строки координат в этот файл ...
Если счетчик = 4, то обнуление и цикл продолжается заново ...
REN _all.txt _all.dat
SET STR=1
SET FLN=0
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /F "tokens=1,*" %%I IN (_all.dat) DO (
IF !STR!==4 (SET STR=1)
IF !STR!==1 (SET FLN=%%I %%J.txt)
ECHO %%I %%J >> !FLN!
SET /A STR=!STR!+1
)
ENDLOCAL

Замечательно ... Получилась куча файлов, а именно 1716 штук ... А, дальше? ...
А дальше у меня чето - не заладилось ... Тому виной - несколько причин ...
Когда формируется отчет расчета проходов спутников - некоторые имена обрезаются, например, как ARIRANG-5 (KOMPSAT-5 ... - позже по этому имени нельзя точно указать текстовый TLE файл соответствующего спутника ...
Когда TLE микро / файлы пишутся на диск, то в следствии особенностей обработки сзади дописываются пробелы - и, это тоже проблема ...
Когда TLE микро / файлы пишутся на диск, то в следствии особенностей Microsoft Windows - запрещаются к записи файлы, содержащие знак вопроса ( ? ) , косой слеш ( / ) - которые присутствуют в имени некоторых спутников ...
Также, в отчете расчета проходов не указывается NORAD / каталожные номера спутников, что создает некую двойственность / неоднозначность восприятия ...
Возможно в последнем скрипте / генераторе надо было сохранять строки в переменные, считывать из третьей строки NORAD номер спутника - и уже по этому номеру писать микро TLE файлы на жесткий диск ...
Не знаю ... Я пошел другим путем ... Собрал / скопировал нужные мне файлы в отдельную папку ...
Проверил на дублированные записи внутри файлов и перенос строки ... (Примечание : лучше - заново переписать скрипт разделения координат на отдельные файлы спутников, с защитой от дублирования по существующему имени файла и генерировать имя по 5-ти значному номеру спутника, что будет наиболее правильным) ...
И прототипом первого скрипта / генератора - слил в один файл _mysat.txt sat2375.txt ...
FOR %%I IN (*.txt) DO TYPE "%%I" >> sat2375.dat
REN sat2375.dat sat2375.txt

Пусть и не самым легким путем, н я все-таки получил, что хотел - собственный TLE файл ... Теперь возникает вопрос : что с этим делать ... Нужно ли было отсеивать такое (342) количество спутников ? Как узнать, подходит ли спутник для радио / мониторинга? ... Читать далее на сайте ...

Цикл статей наивного и беспризорного радионаблюдателя, который услышал, как легко ловить сигналы спутников ... 1 Подготовка , 2 Мониторинг , 3 Расчет проходов , 4 TLE для наблюдения , 5 Сведение и отсев , 6 Углубление в дебри , 7 Генеральная репетиция , 8 DDE автоматизация ...

22:28 02.02.2019

Контакт моя страница, общение по работе и дружба.

Поделиться ссылкой :

Быстрый поиск по сайту :


Главная страница сайта.

Меню сайта - главные разделы.

= = = Меню раздела = = =


© techstop-ekb.ru / Екатеринбург / 2019