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

# Open image as binary file
img = open("my_picture.jpg", "rb")

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

# Print results
print(metadata)

# Close file reader
img.close()

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.

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-1.0.2.tar.gz (823.1 kB 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-1.0.2-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for geopic_tag_reader-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b2643e8f1ab5d27b0b39d2c1a9de77dc360b469d365fff68be1729278649d841
MD5 8837c18bc6fb096676bf19ef7032c55d
BLAKE2b-256 60a0a2f26f5346784c5d5546c97359362941768c507634e76e8fb8a9ef77d7ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for geopic_tag_reader-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2a4031f5a68bb2159acc15e39812ad3f42f1943582e9a0f80ba10c1bf8c5a5ae
MD5 9634edd2f77173294fa9f22cb614e115
BLAKE2b-256 fa71df57b5208210d03af70c8d9e2045640b7024107233b7da04b600b489cdd4

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

This release

1.0.2 This release

2 files

1.0.1

2 files

1.0.0

2 files

0.4.1

2 files

0.4.0

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