Skip to content
VladBusPublic

About

The software is designed to process satellite images and send statistical information about passing flights and processed images from the antenna complex in Barentsburg.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

banner

GitHub repo size GitHub License GitHub top language


GDAL :

PyPI - Version PyPI - Status PyPI - Python Version


  • RU

✅ Проект для обработки приходящей спутниковой информации

Задача проекта:

  • Обработка и сортировка приходящих космических снимков Земли.
  • Расчёт статистической информации о количестве обработанных космических снимков Земли и приходящих исходных файлов на антенну научно-исследовательского института.
  • Рассылка с краткой сводкой по расчётной и статистической информации на e-mail 📧 адреса.

Описание:

  • ☑️ Проект реализован при помощи следующего программного обеспечения, модулей и библиотек:

    • Интерпретатор языка программирования Python здесь версии 3.11.4.
    • Интерпретатор языка программирования Python перенесён в 2026 году на версию 3.14.0.
    • Написан код данного проекта в среде разработки PyCharm 2024.1.4 (Community Edition).
    • На момент 2026 года проект перенесён в среду разработки Visual Studio Code (user setup).
    • Реализован проект на операционной системе Windows 10 Pro.
  • 🔵 Пакет GDAL используется в данном проекте как вызываемое из системы приложение (Важно! Чтобы вызывать GDAL из системы, он должен быть в системной переменной Path). Само приложение вы можете скачать по данной ссылке: Ссылка для скачивания GDAL - вам понадобится данная версия: release-1930-x64-gdal-3-9-1-mapserver-8-2-0

  • 🔴 Зависимости проекта указаны в файле requirements.txt

  • 🧰 В проекте добавлены вспомогательные служебные модули в каталоге utils/:

    • utils/env_checker.py — предварительная проверка критичных путей окружения, доступности логов, архивов, рабочих каталогов и .env.
    • utils/logging_helper.py — безопасная инициализация логирования с резервным переходом на консольный вывод, если файловый лог недоступен.
  • 🔒 Настройка безопасности для отправки e-mail:

    1. Скопируйте файл .env.example в .env:
      copy .env.example .env
    2. Отредактируйте .env и укажите ваш пароль:
      BBSAT_EMAIL_PASSWORD=ваш_пароль
      
    3. Файл .env автоматически исключён из Git (.gitignore) и не попадёт в репозиторий.

    Примечание: Для тестирования можно использовать шаблон .env.example — в нём указан пароль по умолчанию.

Дополнительно:

  • ℹ️ Софт данного проекта запускается локально, на персональном компьютере, с помощью приложения планировщика задач (taskschd.msc) на ОС Windows 10 Pro, несколькими способами:

    • Первый способ — настроить в планировщике задач ежедневный запуск файла run_bbsat.bat [смотрите таблицу 1, пример 1] (При использовании данного способа рекомендуется в настройке действия указать файл run_bbsat.bat как аргумент, а программу запуска C:\Windows\System32\cmd.exe. Также не забывайте про права пользователя при настройке работы задачи).
    • Второй способ — указать планировщику задач напрямую запускать файл main.py [смотрите таблицу 1, пример 2] (Но будьте внимательны: для реализации этого способа main.py должен подаваться как аргумент, а интерпретатор как программа запуска).
    • Третий способ — аналогично второму способу, но настроить запуск не одного, а четырёх скриптов: sort_files_by_date.py, tiff_compressor.py, statistic.py, send_message.py через планировщик задач. Расписание можно настроить вручную в том же планировщике задач [смотрите таблицу 1, пример 3].
  • 🚀 Актуально для версии 2026: рекомендуемый способ запуска — ежедневный вызов run_bbsat.bat, который:

    1. Проверяет доступность базового окружения запуска.
    2. Пишет bootstrap-диагностику в bat_startup_log.txt.
    3. Запускает main.py, а контроль повторного экземпляра передаёт самому Python-коду.
    4. Оставляет основную рабочую телеметрию в task_log.txt.
  • ⚠️ При настройке планировщика задач рекомендуется использовать ежедневный триггер 00:01 и запускать именно run_bbsat.bat, а не прямой вызов отдельных модулей. Это даёт более полную диагностику старта.

  • ☑️ В проекте также организован вывод хода работы и информации об ошибке или успехе в специальные файлы логирования, которые называются: task_log.txt, bat_startup_log.txt. Учтите, что если не будете использовать для запуска файлы main.py и run_bbsat.bat, то и логирования не будет.

  • 📝 Назначение логов разделено следующим образом:

    • bat_startup_log.txt — лог самого bootstrap-старта через run_bbsat.bat: проверка путей, запуск main.py, завершение bat-сессии.
    • task_log.txt — лог работы самого планировщика и модулей обработки: расписание, запуск скриптов, ошибки, таймауты, PID-защита.
  • 🔁 Защита от множественных запусков: При запуске main.py автоматически проверяется, не запущен ли уже другой экземпляр планировщика через PID-файл S:\reports\logs\bbsat.pid. Если обнаружен работающий экземпляр, новый не создаётся. Это позволяет безопасно настроить ежедневный запуск через Планировщик задач Windows — даже если окно не закрывалось неделю, создастся только один экземпляр.

  • 🛡️ Предварительная проверка окружения: Перед основным циклом main.py выполняется preflight_check():

    • проверяются критичные каталоги проекта
    • проверяется доступность каталога логов и архивов
    • проверяется наличие .env
    • при проблеме с .env планировщик не блокируется полностью, но в логах фиксируется предупреждение о возможной ошибке почтового модуля
  • 🧪 Для быстрой технической проверки состояния проекта используется test_improvements.py, который сейчас покрывает:

    • импорт основных модулей
    • доступность ключевых путей
    • проверку .env
    • работу utils/logging_helper.py
    • работу utils/env_checker.py
    • проверку относительного пути лог-файла
    • мягкое поведение preflight_check()

  • EN

✅ Project for processing incoming satellite information

Project task:

  • Processing and sorting incoming space images of the Earth.
  • Calculating statistical information on the number of processed space images of the Earth and incoming source files to the antenna of the research institute.
  • Sending a brief summary of the calculated and statistical information to e-mail 📧 addresses.

Description:

  • ☑️ The project is implemented using the following software, modules and libraries:

    • The Python programming language interpreter is version 3.11.4.
    • The Python programming language interpreter was migrated to version 3.14.0 in 2026.
    • The code for this project was written in the PyCharm 2024.1.4 (Community Edition) development environment.
    • As of 2026, the project has been migrated to the Visual Studio Code development environment (user setup).
    • The project is implemented on the Windows 10 Pro operating system.
  • 🔵 The GDAL package is used in this project as a system-callable application (Important! In order to call GDAL from the system, it must be in the system Path variable). You can download the application itself from this link: GDAL download link - you will need this version: release-1930-x64-gdal-3-9-1-mapserver-8-2-0

  • 🔴 Project dependencies are listed in the requirements.txt file

  • 🧰 Additional service modules were added to the utils/ directory:

    • utils/env_checker.py — preflight validation of critical paths, logs, archives, working directories and .env.
    • utils/logging_helper.py — safe logging initialization with console fallback when the file log is unavailable.
  • 🔒 Security setup for e-mail sending:

    1. Copy the .env.example file to .env:
      copy .env.example .env
    2. Edit .env and specify your password:
      BBSAT_EMAIL_PASSWORD=your_password
      
    3. The .env file is automatically excluded from Git (.gitignore) and will not be committed to the repository.

    Note: For testing purposes, you can use the .env.example template — it contains the default password.

Additional:

  • ℹ️ The software of this project is launched locally, on a personal computer, using the task scheduler application (taskschd.msc) on Windows 10 Pro OS, in several ways:

    • The first way is to configure the task scheduler to launch the file run_bbsat.bat daily [see table 1, example 1] ( When using this method, it is recommended to specify the run_bbsat.bat file as an argument in the action setup, and the launcher C:\Windows\System32\cmd.exe. Also, do not forget about user rights when setting up the task).
    • The second way is to tell the task scheduler to directly launch the file main.py [see table 1, example 2] (But be careful: to implement this method, main.py must be supplied as an argument, and the interpreter as the launcher).
    • The third method is similar to the second method, but now configure the launch of not one, but four scripts: sort_files_by_date.py, tiff_compressor.py, statistic.py, send_message.py via the task scheduler. The schedule can be configured manually in the same task scheduler [see table 1, example 3].
  • 🚀 Current 2026 recommendation: the preferred launch method is the daily execution of run_bbsat.bat, which:

    1. Checks the basic startup environment.
    2. Writes bootstrap diagnostics to bat_startup_log.txt.
    3. Starts main.py, while duplicate-instance protection is handled by Python itself.
    4. Leaves the main processing telemetry in task_log.txt.
  • ⚠️ In Windows Task Scheduler it is recommended to use a daily trigger at 00:01 and start run_bbsat.bat, not separate processing modules directly. This gives more complete startup diagnostics.

  • ☑️ The project also organizes the output of the work progress and information about errors or success in special logging files called: task_log.txt, bat_startup_log.txt. Note that if you do not use the main.py and run_bbsat.bat files for launching, there will be no logging.

  • 📝 The log roles are now separated as follows:

    • bat_startup_log.txt — bootstrap startup log for run_bbsat.bat: path checks, launching main.py, finishing the batch session.
    • task_log.txt — main scheduler and processing log: schedule setup, script launches, errors, timeouts and PID protection.
  • 🔁 Multiple launch protection: When main.py starts, it checks whether another scheduler instance is already running by using the PID file S:\reports\logs\bbsat.pid. If a running instance is detected, a new one is not created. This allows you to safely schedule daily launches via Windows Task Scheduler — even if the window has not been closed for a week, only one instance will be created.

  • 🛡️ Preflight environment check: Before the main loop, main.py runs preflight_check():

    • validates critical project directories
    • validates log and archive locations
    • checks .env
    • if .env has issues, the scheduler is not fully blocked, but the logs warn that the mail module may fail later
  • 🧪 For quick technical validation, the project includes test_improvements.py, which currently covers:


📋 Таблица 1 Пример планировщик задач : Table 1 Example task scheduler

№ Изображения примеров : Example images
(1) example_1.1.jpg
(2) example_2.1.jpg
(3) example_3.1.jpg

! Пример расписания, настроенного в ОС Windows 10 Pro в приложении (taskschd.msc)

! An example of a schedule configured in Windows 10 Pro OS in the (taskschd.msc) application

📜 Таблица 2 Импортируемые пакеты : Table 2 Imported packages

Язык : Language Пакет : Package Версия : Version
Python pip 26.0.1
Python schedule 1.2.2

! У данного проекта настроено на локальной машине виртуальное окружение (.venv), что рекомендуется сделать и пользователю для того, чтобы не возникало конфликтов между установленными пакетами.

! This project has a virtual environment (.venv) configured on the local machine, which is recommended for the user to do so, so that conflicts do not arise between installed packages.


Центр Ледовой и Гидрометеорологической Информации (ЦЛГМИ) Центр "Север" Center of Ice and Hydrometeorological Information (CIHMI) Center "Sever"
Арктический и антарктический научно-исследовательский институт Arctic and Antarctic Research Institute
ФГБУ "ААНИИ", Санкт-Петербург FSBI "AARI", St. Petersburg
Почта: [email protected] E-mail: [email protected]
Почта: [email protected] E-mail: [email protected]
logo_ru logo_en.png

GIF

About

The software is designed to process satellite images and send statistical information about passing flights and processed images from the antenna complex in Barentsburg.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages