Skip to main content

GeoPicTagReader

Project description

GeoVisio

GeoVisio is a complete solution for storing and serving your own 📍📷 geolocated pictures (like StreetView / Mapillary).

➡️ Give it a try at panoramax.ign.fr or geovisio.fr !

📦 Components

GeoVisio is modular and made of several components, each of them standardized and ♻️ replaceable.

GeoVisio architecture

All of them are 📖 open-source and available online:

🌐 Server 💻 Client
API Website
Blur API Web viewer
GeoPic Tag Reader Command line

📷 GeoPic Tag Reader

This repository only contains the Python library to extract standardized metadata from geolocated pictures EXIF metadata.

Features

This tool allows you to:

  • Analyse various EXIF variables to extract standardized metadata for geolocated pictures applications

Install

GeoPicTagReader can be installed using two methods:

GeoPicTagReader is compatible with all python version >= 3.8.

From PyPI

Just launch this command:

pip install geopic_tag_reader

After this you should be able to use the CLI tool with the name geopic-tag-reader:

geopic-tag-reader --help

Alternatively, you can use pipx if you want all the script dependencies to be in a custom virtual env.

You need to install pipx, then:

pipx install geopic_tag_reader

From Git repository

Download the repository:

git clone https://gitlab.com/geovisio/geo-picture-tag-reader.git geopic_tag_reader
cd geopic_tag_reader/

To avoid conflicts, it's considered a good practice to create a virtual environment (or virtualenv). To do so, launch the following commands:

# Create the virtual environment in a folder named "env"
python3 -m venv env

# Launches utilities to make environment available in your Bash
source ./env/bin/activate

Then, install the dependencies using pip:

pip install -e .

If you want to be able to write exif tags, you need to also install the write-exif extra:

pip install -e .[write-exif]

This will install libexiv2 if available in the target platform.

You can also install the dev dependencies if necessary (to have lints, format, tests, ...):

pip install -e .[dev]

Then, you can use the geopic-tag-reader command:

geopic-tag-reader --help

Usage

This library can be used both from command-line or as Python module.

As command-line

To see all available commands:

geopic-tag-reader --help

Full documentation is also available here.

As Python library

In your own script, you can use:

from geopic_tag_reader import reader
from PIL import Image

# Open an image with Pillow
img = Image.open("my_picture.jpg")

# Read EXIF metadata
metadata = reader.readPictureMetadata(img)

# Print results
print(metadata)

Full documentation is also available here.

Development

Tests

Tests are run using PyTest. You can simply run this command to launch tests:

pytest

Documentation

High-level documentation is handled by Typer. You can update the generated USAGE.md file using this command:

make docs

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Note that before opening a pull requests, you may want to check formatting and tests of your changes:

make ci

You can also install git pre-commit hooks to format code on commit with:

pip install -e .[dev]
pre-commit install

Make a release

git checkout main
git pull

vim CHANGELOG.md					# Edit version + links at bottom
vim geopic_tag_reader/__init__.py	# Edit version
make docs ci

git add *
git commit -m "Release x.x.x"
git tag -a x.x.x -m "Release x.x.x"
git push origin main --tags

🤗 Special thanks

Sponsors

GeoVisio was made possible thanks to a group of ✨ amazing people ✨ :

  • GéoVélo team, for 💶 funding initial development and for 🔍 testing/improving software
  • Carto Cité team (in particular Antoine Riche), for 💶 funding improvements on viewer (map browser, flat pictures support)
  • La Fabrique des Géocommuns (IGN) for offering long-term support and funding the Panoramax initiative and core team (Camille Salou, Mathilde Ferrey, Christian Quest, Antoine Desbordes, Jean Andreani, Adrien Pavie)
  • Many many wonderful people who worked on various parts of GeoVisio or core dependencies we use : 🧙 Stéphane Péneau, 🎚 Albin Calais & Cyrille Giquello, 📷 Damien Sorel, Pascal Rhod, Nick Whitelegg...
  • Adrien Pavie, for ⚙️ initial development of GeoVisio
  • And you all ✨ GeoVisio users for making this project useful !

⚖️ License

Copyright (c) GeoVisio team 2022-2023, released under MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geopic_tag_reader-0.4.1.tar.gz (778.0 kB view hashes)

Uploaded Source

Built Distribution

geopic_tag_reader-0.4.1-py3-none-any.whl (13.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page