8000 GitHub - igskak/KATOTTG · GitHub
[go: up one dir, main page]

Skip to content
igskakPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

KATOTTG - Імпорт даних КАТОТТГ в MongoDB Atlas

📋 Опис проекту

Цей проект призначений для імпорту даних з файлу kodifikator-16-05-2025.csv (Класифікатор адміністративно-територіальних одиниць та територій територіальних громад) в базу даних MongoDB Atlas та управління даними про окупацію територій.

🎯 Функціональність

Основні можливості:

  • Читання CSV-файлу: Автоматичне читання та парсинг файлу з кодуванням UTF-8
  • Розподіл по колекціях: Дані розподіляються по різних колекціях MongoDB залежно від категорії об'єкта:
    • level1_regions - Області та АРК
    • level2_raions - Райони
    • level3_hromadas - Громади
    • level4_settlements - Міста, селища міського типу, села
    • level_additional_city_districts - Міські райони
  • Визначення ієрархії: Автоматичне визначення батьківських об'єктів для кожного запису
  • Upsert операції: Безпечне оновлення існуючих записів та додавання нових

Нові можливості для роботи з окупацією:

  • Парсинг документів Word: Імпорт даних про окупацію з документів .docx
  • Управління історією окупації: Підтримка множинних періодів окупації для кожної території
  • Запити за датою: Можливість дізнатися, які території були окуповані на конкретну дату
  • Інтерактивний менеджер: Зручний інтерфейс для управління даними про окупацію
  • Експорт даних: Експорт даних про окупацію в CSV формат

📁 Структура проекту

КАТОТТГ/
├── import_kodifikator.py          # Основний скрипт імпорту КАТОТТГ
├── parse_occupation_data.py       # Парсинг даних про окупацію з Word
├── occupation_manager.py          # Інтерактивний менеджер окупації
├── create_sample_docx.py          # Створення прикладу документа Word
├── kodifikator-16-05-2025.csv     # Файл з даними КАТОТТГ
├── sample_occupation_data.docx    # Приклад документа з даними про окупацію
├── ІНСТРУКЦІЯ_ЗАПУСКУ.md          # Детальна інструкція запуску
├── README.md                      # Цей файл
└── .gitignore                     # Файл для виключення з Git

🛠️ Технології

  • Python 3.x - основна мова програмування
  • pandas - для роботи з CSV-файлами
  • pymongo - для роботи з MongoDB Atlas
  • python-docx - для роботи з документами Word
  • python-dateutil - для роботи з датами
  • MongoDB Atlas - хмарна база даних

🚀 Швидкий старт

Передумови

  1. Python 3.x
  2. Доступ до MongoDB Atlas
  3. Файл kodifikator-16-05-2025.csv

Встановлення залежностей

python3 -m pip install pandas pymongo "pymongo[srv]" python-docx python-dateutil --break-system-packages

Налаштування

  1. Відкрийте файли import_kodifikator.py, parse_occupation_data.py, occupation_manager.py
  2. Замініть рядок підключення до MongoDB Atlas на ваш власний
  3. Збережіть файли

Запуск

Імпорт основних даних КАТОТТГ:

python3 import_kodifikator.py

Створення прикладу документа Word:

python3 create_sample_docx.py

Парсинг даних про окупацію з Word документа:

python3 parse_occupation_data.py sample_occupation_data.docx

Запит статусу окупації на конкретну дату:

python3 parse_occupation_data.py --query 15.03.2022

Запуск інтерактивного менеджера:

python3 occupation_manager.py

📊 Структура даних

Основні дані КАТОТТГ:

Кожен запис в MongoDB містить:

  • _id - код об'єкта (унікальний ідентифікатор)
  • name - назва об'єкта
  • category - категорія об'єкта (O, K, P, H, M, X, C, B)
  • parent_code - код батьківського об'єкта (опціонально)

Дані про окупацію:

Додатково для територій з історією окупації:

  • occupation_history - масив періодів окупації
    • start_date - дата початку окупації
    • end_date - дата кінця окупації (може бути null)
    • status - статус окупації
    • updated_at - дата оновлення запису
  • current_occupation_status - поточний статус окупації
  • occupation_start_date - дата початку останнього періоду окупації
  • occupation_end_date - дата кінця останнього періоду окупації
  • last_occupation_update - дата останнього оновлення

🔧 Налаштування

Зміна рядка підключення

Відредагуйте рядок MONGO_CONNECTION_STRING в файлах:

  • import_kodifikator.py
  • parse_occupation_data.py
  • occupation_manager.py
MONGO_CONNECTION_STRING = "mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority"

Зміна назви бази даних

Відредагуйте змінну DATABASE_NAME в файлах:

DATABASE_NAME = "your_database_name"

📈 Статистика імпорту

Після завершення імпорту скрипт показує статистику:

  • Кількість записів в кожній колекції
  • Загальна кількість імпортованих записів
  • Прогрес обробки кожні 1000 записів

🎯 Приклади використання

Парсинг документа Word з даними про окупацію:

python3 parse_occupation_data.py your_occupation_data.docx

Запит територій, окупованих на конкретну дату:

python3 parse_occupation_data.py --query 24.02.2022

Інтерактивний менеджер:

python3 occupation_manager.py

Менеджер надає наступні можливості:

  1. 🔍 Перевірити статус окупації на конкретну дату
  2. 📋 Показати історію окупації території
  3. ➕ Додати період окупації
  4. 📊 Експорт даних в CSV
  5. 📈 Статистика окупації

📝 Формат даних Word документа

Документ Word повинен містити дані у форматі:

Назва території | Дата початку окупації | Дата кінця окупації | Статус

Приклад:

Донецька область | 24.02.2022 | | Тимчасово окупована
Херсонська область | 02.03.2022 | 11.11.2022 | Звільнена

❗ Вирішення проблем

Детальні інструкції з вирішення можливих проблем дивіться в файлі ІНСТРУКЦІЯ_ЗАПУСКУ.md.

📝 Ліцензія

Цей проект розроблено для внутрішнього використання.

👨‍💻 Автор

AI Assistant, 2025


Примітка: Перед використанням переконайтеся, що у вас є необхідні права доступу до MongoDB Atlas та файлу з даними КАТОТТГ.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0