naturtag

Tag your nature photos with iNat taxonomy and observation metadata

https://github.com/pyinat/naturtag

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary

Keywords

biodiversity biodiversity-data cli darwin-core dwc exif hierarchical-keywords inaturalist iptc photography taxonomy xmp

Keywords from Contributors

projection interactive charts optimizer packaging distribution transformer profiling gravitational-lenses shellcodes
Last synced: 6 months ago · JSON representation

Repository

Tag your nature photos with iNat taxonomy and observation metadata

Basic Info
Statistics
  • Stars: 41
  • Watchers: 3
  • Forks: 4
  • Open Issues: 66
  • Releases: 7
Topics
biodiversity biodiversity-data cli darwin-core dwc exif hierarchical-keywords inaturalist iptc photography taxonomy xmp
Created almost 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License

README.md

Naturtag

Build status Documentation Status GitHub issues PyPI PyPI - Python Version


Contents

Summary

Naturtag is a tool for nature photographers that adds useful metadata to describe the organisms in your photos. It includes a desktop application, a command-line interface, and can also be used as a python library. It is mainly intended for use with iNaturalist, but can also be used independently.

Naturtag gathers complete observation metadata (for iNaturalist observation photos), or just taxonomy metadata (for everything else). It then embeds this information in your local photo collection using XMP and EXIF metadata.

Use Cases

This image metadata has a variety of uses, including:

Local photo organization

Naturtag can tag your photos with hierarchical keywords (aka structured keywords), which are supported by some photo viewers/editors like Lightroom, FastPictureViewer, Photo Mechanic, digiKam, and XnViewMP.

This basically gives you a taxonomic tree for browsing and filtering your photos.

Example in XnView ![screenshot](assets/screenshots/xnview.png)

Photo hosting

Naturtag can also simplify tagging photos for photo hosting sites like Flickr. For that use case, this tool generates semi-structured keywords in the same format as iNaturalist's Flickr Tagger.

Example search using these tags: https://www.flickr.com/photos/tags/taxonomy:class=arachnida

Example of taxonomy tags on Flickr ![screenshot](assets/screenshots/flickr.png)

Other biodiversity tools

Finally, naturtag can improve interoperability with other tools and systems that interact with biodiversity data. For example, in addition to iNaturalist you might submit some observations to another platform with a more specific focus, such as eBird, BugGuide, or Mushroom Observer. For that use case, this tool supports Simple Darwin Core.

Installation

See GitHub Releases for downloads and Installation for platform-specific instructions.

To just install naturtag as a python package, run: bash pip install naturtag

Usage

GUI

Naturtag is primarily a desktop application. It includes an interface for selecting and tagging images:

Screenshot

And tools to search and browse species to tag your images with:

Screenshot

See Application Guide for more details.

CLI

Naturtag also includes a command-line interface. It takes an observation or species, plus some image files, and generates EXIF and XMP metadata to write to those images.

Example: ```bash

Tag images with metadata from observation ID 5432

nt tag -o 5432 img1.jpg img2.jpg

Refresh previously tagged images with latest observation and taxonomy metadata

nt refresh -r ~/observations ``` You can see it in action here: asciicast

See CLI documentation for more details.

Library

You can also import naturtag as a python library, and use its main features in your own scripts or applications. Basic example: ```python from naturtag import tagimages, refreshtags

Tag images with full observation metadata

tagimages(['img1.jpg', 'img2.jpg'], observationid=5432)

Refresh previously tagged images with latest observation and taxonomy metadata

refresh_tags(['~/observations/'], recursive=True) ```

See API Reference for more details.

Development Status

Owner

  • Name: pyinat
  • Login: pyinat
  • Kind: organization
  • Location: United States of America

Python tools for interacting with iNaturalist

GitHub Events

Total
  • Create event: 29
  • Release event: 4
  • Issues event: 7
  • Watch event: 2
  • Delete event: 19
  • Issue comment event: 33
  • Push event: 10
  • Pull request event: 44
Last Year
  • Create event: 29
  • Release event: 4
  • Issues event: 7
  • Watch event: 2
  • Delete event: 19
  • Issue comment event: 33
  • Push event: 10
  • Pull request event: 44

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 616
  • Total Committers: 3
  • Avg Commits per committer: 205.333
  • Development Distribution Score (DDS): 0.013
Past Year
  • Commits: 65
  • Committers: 2
  • Avg Commits per committer: 32.5
  • Development Distribution Score (DDS): 0.062
Top Committers
Name Email Commits
Jordan Cook j****k@p****m 608
dependabot[bot] 4****] 7
Kian-Meng Ang k****g@c****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 93
  • Total pull requests: 196
  • Average time to close issues: 6 months
  • Average time to close pull requests: 19 days
  • Total issue authors: 8
  • Total pull request authors: 3
  • Average comments per issue: 0.37
  • Average comments per pull request: 0.46
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 170
Past Year
  • Issues: 5
  • Pull requests: 52
  • Average time to close issues: N/A
  • Average time to close pull requests: 27 days
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.44
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 52
Top Authors
Issue Authors
  • JWCook (84)
  • lsaffre (2)
  • nevilamos (2)
  • mihow (1)
  • andrew-taylor (1)
  • synrg (1)
  • yobboh (1)
  • arky (1)
Pull Request Authors
  • dependabot[bot] (170)
  • JWCook (25)
  • kianmeng (1)
Top Labels
Issue Labels
ui (38) data (25) performance (11) cli (10) bug (8) idea (8) logistics (6) docs (2) enhancement (2) question (1) accessibility (1)
Pull Request Labels
dependencies (154) python (138) github_actions (16) ui (10) logistics (6) data (5) bug (4) enhancement (3) performance (2) cli (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 57 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 26
  • Total maintainers: 1
proxy.golang.org: github.com/pyinat/naturtag
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: naturtag

Tag your nature photos with iNat taxonomy and observation metadata

  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 57 Last month
Rankings
Dependent packages count: 10.1%
Stargazers count: 11.3%
Forks count: 16.9%
Average: 18.3%
Dependent repos count: 21.6%
Downloads: 31.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/deploy.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • snok/install-poetry v1.3.3 composite
  • softprops/action-gh-release v1 composite
.github/workflows/test.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pre-commit/action v3.0.0 composite
  • snok/install-poetry v1.3.3 composite
poetry.lock pypi
  • 113 dependencies
pyproject.toml pypi
  • babel >=2.0 develop
  • coverage ^7.0 develop
  • nox ^2023.4 develop
  • nox-poetry ^1.0 develop
  • pre-commit ^3.1 develop
  • prettyprinter ^0.18.0 develop
  • pyinstaller ^5.12 develop
  • pytest ^7.3 develop
  • pytest-cov >=3.0 develop
  • pytest-xdist >=2.2 develop
  • attrs >=21.2
  • click >=8.0
  • click-help-colors >=0.9
  • furo ^2023.3
  • linkify-it-py ^2.0
  • myst-parser ^1.0
  • pillow >=10.0
  • pyexiv2 >=2.6.2
  • pyinaturalist >=0.18
  • pyinaturalist-convert >=0.6.1
  • pyqtdarktheme ^2.1.0
  • pyside6 6.5.0
  • python >=3.10,<3.11
  • pyyaml >=6.0
  • qtawesome ^1.1.1
  • sphinx ^5.2
  • sphinx-autodoc-typehints ^1.17
  • sphinx-copybutton >=0.5
  • sphinx-design >=0.2
  • sphinxcontrib-apidoc ^0.3
  • sqlalchemy ^2.0.8
  • tablib ^3.0