Skip to content

SamGartrell/inat-upload-utils

Repository files navigation

🐛 iNaturalist Upload Utilities 🍄

Sam Gartrell || iNat profile: mothpith || Email: [email protected]

This repository contains tools to assist iNaturalist users with georeferencing photos from digital cameras, and provides preliminary ID using the iNaturalist computer vision model.

NOTE: iNaturalist guidelines mandate that "content must be generated with real human involvement or oversight." Please use and modify this project responsibly!

Review the iNaturalist Policy on Machine Generated Content for clarification.

Usage

For example use cases, check out the examples notebook, or the demo.py file for each of the modules in legacy/.

Try it yourself!

For example use cases, check out the examples notebook, or the demo.py file for each of the modules in utils/.

Workflow

The general workflow for this tool is to record a GPX track with a mobile app like Strava or Avenza while you're out taking timestamped pictures on your digital camera. When ready to upload your photos,

  • put the GPX track in in_gpx/
  • put the photos (JPG, CR2, and HEIC formats tested) in in_photos/
  • run inatutils.py to create an InatUtils instance, or run legacy/geo/demo.py
  • find your georeferenced photos in out_photos/
  • optionally, you can identify these images calling InatUtils.identify() or running legacy/suggest/demo.py
  • the export part is still under construction

NOTE: if you can't get the tool to recognize metadata of images taken on iPhones (HEIC/JPG), try transfering them to your computer with google photos as per this article.

Collaboration

To get started with this repository, clone it with

git clone https://github.com/SamGartrell/inat-upload-utils.git
cd inat-upload-utils

and build the conda environment with

conda env create -f environment.yml
conda activate inat-img-utils

Most of the logic for the InatUtils class methods originated from the standalone functions in the legacy/ directory. I recommend using and developing against the class implementation for better organization and performance.

Please create issues and/or pull requests as you see fit, and feel free to reach out with any questions or collaboration requests!

External Resources

Releases

No releases published

Packages

No packages published