Генератор таксономических деревьев пользователя iNaturalist с визуализацией в draw.io
Проект позволяет:
- Собирать данные о ваших наблюдениях с iNaturalist.
- Строить иерархическое дерево таксонов на основе ваших наблюдений.
- Генерировать интерактивную визуализацию в формате draw.io.
- Автоматически добавлять фотографии видов для улучшения визуализации.
-
Клонируйте репозиторий:
git clone https://github.com/ваш-репозиторий/inaturalist-tree-generator.git cd inaturalist-tree-generator
-
Создайте и активируйте виртуальное окружение:
python3 -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows (PowerShell) # venv\Scripts\activate.bat # Windows (CMD)
-
Установите зависимости:
pip install -r requirements.txt
-
Настройка: Перед использованием откройте
data_collection.py
и отредактируйте следующие переменные:username = 'merrcurys' # Ваш username на iNaturalist
-
Запустите главное меню:
python main.py
-
Доступные опции в меню:
Собрать данные
: Получает информацию о наблюдениях с iNaturalist и сохраняет её локально.Сгенерировать визуализацию
: Создает файлtaxon_tree.drawio
на основе собранных данных, готовый для открытия и редактирования в draw.io.Полный цикл
: Выполняет сбор данных и генерацию визуализации в один шаг.Очистить фото
: Удаляет все фотографии, загруженные в папкуinput/photos
. Полезно для экономии места или при повторных запусках с разными таксонами.Выход
: Завершает работу программы.
-
После генерации откройте
output/taxon_tree.drawio
в draw.io и используйте:Arrange
→Layout
→Vertical Tree
для автоматической организации дерева. ЗатемArrange
→Layout
→Organic
-> 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 и бердвотчеров!