Skip to main content

Generate a simple VRT file for data transformations

Project description

ogr2vrt simple

Generate a simple VRT file from an OGR-compatible dataset

Python package

This is mostly a python package, destined to be used by other applications. By itself, it is quite limited. However, we provide a small CLI tool that acts as a commandline VRT generator.

Command line interface

Generate a VRT file from an OGR-compatible source. The result is to be considered as a "kickoff" VRT file, to refine according to your desires but it will save you some time.

It mostly targets and was tested with spreadsheet data (xls, xslx, ods, csv) but actually should work with most data sources supported by the OGR drivers

Are currently detected:

  • the datasource path
  • for each layer (depending on the source, there might be one or more layers):
    • the layer name
    • for each field in this layer
      • name
      • type if available (defaults to string)
      • width (precision) if available

By default, the VRT file will be generated alongside the source file, extension .vrt

Features

Does not support (yet):

  • non-UTF-8 csv files

Install

  • You will need the GDAL/OGR library. It is not listed in the requirements.txt file, because the installation depends on having the proper libraries already installed on your computer.

    The simplest way:

    • install gdal, libgdal-dev, python3-dev packages on your computer
    • install GDAL package using
    pip install GDAL==$(gdal-config --version)
    
  • Create a virtual env and install the app

python3 -m venv .venv
source .venv/bin/activate
pip install ogr2vrt-simple

Use the CLI

Once installed, you will have the ogr2vrt_cli command available. For now, it is limited to only one sub-command, generate-vrt:

# Get help
ogr2vrt_cli generate-vrt --help

# Extract VRT from a remote resource
ogr2vrt_cli generate-vrt https://raw.githubusercontent.com/OSGeo/gdal/master/autotest/ogr/data/shp/poly.zip

# Works also on a API remote source:
ogr2vrt_cli generate-vrt -d 'https://data.statistiques.developpement-durable.gouv.fr/dido/api/v1/datafiles/37dd7056-6c4d-44e0-a720-32d4064f9a26/csv?millesime=2023-05&withColumnName=true&withColumnDescription=true&withColumnUnit=true&orderBy=-COMMUNE_CODE&columns=COMMUNE_CODE,COMMUNE_LIBELLE,CLASSE_VEHICULE,CATEGORIE_VEHICULE,CARBURANT,CRITAIR,PARC_2011,PARC_2012,PARC_2013,PARC_2014,PARC_2015,PARC_2016,PARC_2017,PARC_2018,PARC_2019,PARC_2020,PARC_2021,PARC_2022&COMMUNE_CODE=contains%3A09241'

Note: as in the example above, if you are tapping into a remote URL that has special characters in it (e.g. parenthesis), you will have to surround the URL with quotes or escape the characters (this is a shell issue, not a python issue, but an issue that needs to be taken care of anyway)


Develop

Compatibility

python >=3.8

Some effort was done to support python 3.8+, but if possible, we would advise to use a more recent one (3.10 or above)

Using poetry

This is now the recommended way

  • Install poetry
  • Install the dependencies: poetry install
  • Run the script:
# Install the dependencies: 
poetry install
#activate the environment
poetry shell 
# You have to install the GDAL library using pip, it doesn't seem to work with poetry directly
pip install GDAL==$(gdal-config --version)

cd ogr2vrt_simple/
python3 cli.py generate-vrt --help

Simply using pip

This should still work.

Create a virtual env and install the requirements

python3 -m venv .venv
source .venv/bin/activate
pip install GDAL==$(gdal-config --version)
pip install -r requirements.txt

You will need the GDAL/OGR library. See above in the install section

Run it

cd ogr2vrt_simple/
# Generate VRT file for a local file (zipped shapefile)
python3 cli.py generate-vrt  https://raw.githubusercontent.com/OSGeo/gdal/master/autotest/ogr/data/shp/poly.zip

# Generate VRT file for a remote CSV resource
python3 cli.py generate-vrt  --with_vsicurl https://www.data.gouv.fr/fr/datasets/r/c53cd4d4-4623-4772-9b8c-bc72a9cdf4c2

List options:

python3 cli.py generate-vrt  --help

Build

Use Poetry to build this script:

# Build
poetry build

# install 
poetry install

# test it
ogr2vrt_cli --help

# Publish it to test-pypi
poetry publish -r test-pypi
# ... or to pypi
poetry publish

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

ogr2vrt_simple-0.2.4.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

ogr2vrt_simple-0.2.4-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file ogr2vrt_simple-0.2.4.tar.gz.

File metadata

  • Download URL: ogr2vrt_simple-0.2.4.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.2 Linux/6.1.0-9-amd64

File hashes

Hashes for ogr2vrt_simple-0.2.4.tar.gz
Algorithm Hash digest
SHA256 7bfa2fa73a9cefe2f42bc5513f936a6c1e2ded05a44d86da91fd477a00341f63
MD5 074cfdf31a7f12edc63abba7ed0bec3a
BLAKE2b-256 cc97082e89b8b02c70c1de0beeb5c81f6fc750b08ba62bd1e91c4571fd3a902c

See more details on using hashes here.

File details

Details for the file ogr2vrt_simple-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: ogr2vrt_simple-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.2 Linux/6.1.0-9-amd64

File hashes

Hashes for ogr2vrt_simple-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 dc974643c924a004676bdafc9db26c5a7e6cd9ced2d6d55b42d780e0114a39bf
MD5 9f03dc35c88c93af5b3eab671058f439
BLAKE2b-256 671192be1394d74c3a5de7f3a59197b268611db13e409577a29204ec157391d8

See more details on using hashes here.

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