GDAL :
- Обработка и сортировка приходящих космических снимков Земли.
- Расчёт статистической информации о количестве обработанных космических снимков Земли и приходящих исходных файлов на антенну научно-исследовательского института.
- Рассылка с краткой сводкой по расчётной и статистической информации на 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:
- Скопируйте файл
.env.exampleв.env:copy .env.example .env
- Отредактируйте
.envи укажите ваш пароль:BBSAT_EMAIL_PASSWORD=ваш_пароль - Файл
.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, который:- Проверяет доступность базового окружения запуска.
- Пишет bootstrap-диагностику в
bat_startup_log.txt. - Запускает
main.py, а контроль повторного экземпляра передаёт самому Python-коду. - Оставляет основную рабочую телеметрию в
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()
- 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.
-
-
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.txtfile -
🧰 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:
- Copy the
.env.examplefile to.env:copy .env.example .env
- Edit
.envand specify your password:BBSAT_EMAIL_PASSWORD=your_password - The
.envfile is automatically excluded from Git (.gitignore) and will not be committed to the repository.
Note: For testing purposes, you can use the
.env.exampletemplate — it contains the default password. - Copy the
-
ℹ️ 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.batdaily [see table 1, example 1] ( When using this method, it is recommended to specify therun_bbsat.batfile as an argument in the action setup, and the launcherC:\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.pyvia the task scheduler. The schedule can be configured manually in the same task scheduler [see table 1, example 3].
- The first way is to configure the task scheduler to launch the file
-
🚀 Current 2026 recommendation: the preferred launch method is the daily execution of
run_bbsat.bat, which:- Checks the basic startup environment.
- Writes bootstrap diagnostics to
bat_startup_log.txt. - Starts
main.py, while duplicate-instance protection is handled by Python itself. - Leaves the main processing telemetry in
task_log.txt.
-
⚠️ In Windows Task Scheduler it is recommended to use a daily trigger at00:01and startrun_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 themain.pyandrun_bbsat.batfiles for launching, there will be no logging. -
📝 The log roles are now separated as follows:
bat_startup_log.txt— bootstrap startup log forrun_bbsat.bat: path checks, launchingmain.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.pystarts, it checks whether another scheduler instance is already running by using the PID fileS:\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.pyrunspreflight_check():- validates critical project directories
- validates log and archive locations
- checks
.env - if
.envhas 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:- imports of the main modules
- accessibility of critical paths
.envpresence and content checkutils/logging_helper.pyutils/env_checker.py- relative log file path handling
- soft behavior of
preflight_check()
| № | Изображения примеров : Example images |
|---|---|
| (1) | ![]() |
| (2) | ![]() |
| (3) | ![]() |
! Пример расписания, настроенного в ОС Windows 10 Pro в приложении (taskschd.msc)
! An example of a schedule configured in Windows 10 Pro OS in the (taskschd.msc) application
| Язык : 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] |
![]() |
![]() |






