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.
For example use cases, check out the examples notebook
, or the demo.py
file for each of the modules in legacy/
.
For example use cases, check out the examples notebook
, or the demo.py
file for each of the modules in utils/
.
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 anInatUtils
instance, or runlegacy/geo/demo.py
- find your georeferenced photos in
out_photos/
- optionally, you can identify these images calling
InatUtils.identify()
or runninglegacy/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.
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!