Skip to main content

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

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.

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.0.tar.gz (21.4 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.4.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for geopic_tag_reader-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a64d3b171ade0de7680589237d1562ee24f1d42ec2c1723aebfed0b3253dc896
MD5 7c38df2b4ab90011ca61bb551e93abcb
BLAKE2b-256 e5c8bad1f8ea5a0953dcf05318a65afe185de460afcdb6e8ec72f4c6b72ffe92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geopic_tag_reader-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e9ced014831c4a1370a26d27b23e738a7633894c64085a3d7dc7a3049fd4562
MD5 ff2bfa53e7927719b9ccb0a5a9d36809
BLAKE2b-256 1d8b0b8da6d1346132c1062cf5d4f64fc7cb2c09c94cccb046af510b586ba6b1

See more details on using hashes here.

Release history Release notifications | RSS feed

1.10.1

2 files

1.10.0

2 files

1.9.0

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.4.1

2 files

This release

0.4.0 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page