Skip to content

Генератор таксономических деревьев iNaturalist с визуализацией в draw.io

Notifications You must be signed in to change notification settings

Merrcurys/iNatTreeGenerator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iNaturalist Tree Generator

Генератор таксономических деревьев пользователя iNaturalist с визуализацией в draw.io

Demo

📋 Описание

Проект позволяет:

  • Собирать данные о ваших наблюдениях с iNaturalist.
  • Строить иерархическое дерево таксонов на основе ваших наблюдений.
  • Генерировать интерактивную визуализацию в формате draw.io.
  • Автоматически добавлять фотографии видов для улучшения визуализации.

⚙️ Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/ваш-репозиторий/inaturalist-tree-generator.git
    cd inaturalist-tree-generator
  2. Создайте и активируйте виртуальное окружение:

    python3 -m venv venv
    source venv/bin/activate  # Linux/macOS
    # venv\Scripts\activate  # Windows (PowerShell)
    # venv\Scripts\activate.bat # Windows (CMD)
  3. Установите зависимости:

    pip install -r requirements.txt
  4. Настройка: Перед использованием откройте data_collection.py и отредактируйте следующие переменные:

    username = 'merrcurys'  # Ваш username на iNaturalist

🚀 Использование

  1. Запустите главное меню:

    python main.py
  2. Доступные опции в меню:

    • Собрать данные: Получает информацию о наблюдениях с iNaturalist и сохраняет её локально.
    • Сгенерировать визуализацию: Создает файл taxon_tree.drawio на основе собранных данных, готовый для открытия и редактирования в draw.io.
    • Полный цикл: Выполняет сбор данных и генерацию визуализации в один шаг.
    • Очистить фото: Удаляет все фотографии, загруженные в папку input/photos. Полезно для экономии места или при повторных запусках с разными таксонами.
    • Выход: Завершает работу программы.
  3. После генерации откройте output/taxon_tree.drawio в draw.io и используйте:

    • ArrangeLayoutVertical Tree для автоматической организации дерева. Затем ArrangeLayoutOrganic -> 300. Вы также можете настроить макет вручную.
    • Некоторые связи будут заезжать друг на друга, их придется рассправить вручную.

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

.
├── data_collection.py    # Парсер данных iNaturalist
├── drawio_generator.py   # Генератор XML для draw.io
├── main.py               # Интерактивное меню
├── Node.py               # Класс узла дерева
├── input/
│   ├── nodes.pkl         # Кэш таксономических данных
│   └── photos/           # Локальная база фотографий
└── output/               # Готовые файлы визуализации

⚠️ Возможные проблемы и решения

  • Проблемы с доступом / сетевые ошибки:

    • Убедитесь, что у вас есть активное интернет-соединение.
    • Убедитесь, что вы правильно указали свой username iNaturalist в файле data_collection.py.
    • API iNaturalist имеет лимит запросов (100 запросов в минуту). Если вы запрашиваете очень большое количество наблюдений, процесс может занять больше времени.
  • Большие наборы данных:

    • Обработка большого количества наблюдений и таксонов может занять несколько минут. Будьте терпеливы.

Разработано с ❤️ для сообщества iNaturalist и бердвотчеров!

About

Генератор таксономических деревьев iNaturalist с визуализацией в draw.io

Topics

Resources

Stars

Watchers

Forks

Languages

  • Python 100.0%