https://github.com/digital-botanical-gardens-initiative/pictures-manager

https://github.com/digital-botanical-gardens-initiative/pictures-manager

Science Score: 13.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
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary
Last synced: 4 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: digital-botanical-gardens-initiative
  • License: other
  • Language: Perl
  • Default Branch: main
  • Size: 211 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 12 months ago · Last pushed 12 months ago
Metadata Files
Readme Contributing License

README.md

pictures-manager

Release Build status codecov Commit activity License

An automated process to format pictures from field collection in order to import them to iNaturalist.

Pictures manager script

Takes pictures from a QFieldCloud server instance (self-hosted or commercial) and modifies the metadata to have an automatic iNaturalist import. It takes the sample sampling code and coordinates in the gpkg file of interest and adds it in the pictures metadata. Then, once uploaded to iNaturalist, it adds the sampling code as a tag and the coordinates to the observation.

Prerequiste to make this code work:

  • Pictures have to contain the scientific name of the species, the sampling code and the point of view (if you take multiple pictures of a single plant, it can be either a descripition of the point of view or a number, in order to have unique pictures names) separated by a space or an underscore. This can be done automatically with QField application when taking a picture
  • gpkg have to have the columns xcoord that stores the x coordinate and the ycoord that stores the y coordinate. The CRS (Coordinates Reference System) is not important, the code detects it and converts it to EPSG:4326, that is the CRS used in iNaturalist
  • gpkg have to have the column sample_id that stores the sampling code (that has to be unique in order to have unique pictures names)
  • To have a Nextcloud instance on the same machine (if not the case, delete DBGINextcloudimport.py and remove it from DBGIscriptsrunner.py)

To run this code:

  1. clone the repository to your computer, by using this link: https://github.com/digital-botanical-gardens-initiative/iNaturalist_uploader.git
  2. Copy .env.example to .env and change the variables to suit your needs.
  3. Control that all used libraries are installed on your computer.
  4. Install exiftool on your Command Line Interface (bash, powershell, ...). Informations about exiftool: https://exiftool.org/
  5. Run the DBGIscriptsrunner.py script, that runs all the other scripts and perform the pictures metadata edition.

That's all. With that you should obtain modified pictures that contain the coordinates where the plant have been collected and the sampling code. If you want to verify, you can got to the pictures output directory and use the command on your CLI. It will display the picture metadata.

Owner

  • Name: The Digital Botanical Garden Initiative
  • Login: digital-botanical-gardens-initiative
  • Kind: organization

GitHub Events

Total
  • Member event: 1
  • Push event: 5
  • Create event: 2
Last Year
  • Member event: 1
  • Push event: 5
  • Create event: 2

Dependencies

.github/actions/setup-poetry-env/action.yml actions
  • actions/cache v4 composite
  • actions/setup-python v5 composite
.github/workflows/main.yml actions
  • ./.github/actions/setup-poetry-env * composite
  • actions/cache v4 composite
  • actions/checkout v4 composite
.github/workflows/on-release-main.yml actions
  • ./.github/actions/setup-poetry-env * composite
  • actions/checkout v4 composite
poetry.lock pypi
  • babel 2.17.0
  • cachetools 5.5.2
  • certifi 2025.1.31
  • cfgv 3.4.0
  • chardet 5.2.0
  • charset-normalizer 3.4.1
  • click 8.1.8
  • colorama 0.4.6
  • coverage 7.6.12
  • deptry 0.16.2
  • distlib 0.3.9
  • exceptiongroup 1.2.2
  • filelock 3.17.0
  • ghp-import 2.1.0
  • griffe 1.5.7
  • identify 2.6.8
  • idna 3.10
  • importlib-metadata 8.6.1
  • iniconfig 2.0.0
  • jinja2 3.1.5
  • markdown 3.7
  • markupsafe 3.0.2
  • mergedeep 1.3.4
  • mkdocs 1.6.1
  • mkdocs-autorefs 1.3.1
  • mkdocs-get-deps 0.2.0
  • mkdocs-material 9.6.5
  • mkdocs-material-extensions 1.3.1
  • mkdocstrings 0.26.2
  • mkdocstrings-python 1.13.0
  • mypy 1.15.0
  • mypy-extensions 1.0.0
  • nodeenv 1.9.1
  • packaging 24.2
  • paginate 0.5.7
  • pathspec 0.12.1
  • platformdirs 4.3.6
  • pluggy 1.5.0
  • pre-commit 3.8.0
  • pygments 2.19.1
  • pymdown-extensions 10.14.3
  • pyproject-api 1.9.0
  • pytest 7.4.4
  • pytest-cov 5.0.0
  • python-dateutil 2.9.0.post0
  • pyyaml 6.0.2
  • pyyaml-env-tag 0.1
  • regex 2024.11.6
  • requests 2.32.3
  • six 1.17.0
  • tomli 2.2.1
  • tox 4.24.1
  • typing-extensions 4.12.2
  • urllib3 2.3.0
  • virtualenv 20.29.2
  • watchdog 6.0.0
  • zipp 3.21.0
pyproject.toml pypi
  • deptry ^0.16.2 develop
  • mypy ^1.5.1 develop
  • pre-commit ^3.4.0 develop
  • pytest ^7.2.0 develop
  • pytest-cov ^5.0.0 develop
  • tox ^4.11.1 develop
  • mkdocs ^1.4.2 docs
  • mkdocs-material ^9.2.7 docs
  • mkdocstrings ^0.26.1 docs
  • python >=3.9,<3.15