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 .

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

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

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.2.0.tar.gz (21.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geopic_tag_reader-0.2.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file geopic_tag_reader-0.2.0.tar.gz.

File metadata

  • Download URL: geopic_tag_reader-0.2.0.tar.gz
  • Upload date:
  • Size: 21.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for geopic_tag_reader-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7cac958d02ce51d12e499ef23077b3c5c433cbf6afcba5089655ace20eee5d10
MD5 df9549e7fde1dd5b9a20a2ef52fb8701
BLAKE2b-256 8c2d6b967b82f203782106cb529dc927cc0537983b83ca6738213af0c13f90bd

See more details on using hashes here.

File details

Details for the file geopic_tag_reader-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for geopic_tag_reader-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9cf8096871dd3c87828d61e4cae64bc95e7f0588026f7882e77d1391a4b599c
MD5 2dc9120a023f6192784bc86bba7e4c71
BLAKE2b-256 be3b73a49566138c41f19258d0041190e2616fbfaf8ff7ed39b10f9ac6495cf4

See more details on using hashes here.

Supported by

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