Skip to main content

Simple and Fast Geospatial OGC Features and Tiles API for PostGIS.

Project description

Simple and Fast Geospatial OGC Features and Tiles API for PostGIS.

Test Coverage Package version License


Documentation: https://developmentseed.org/tipg/

Source Code: https://github.com/developmentseed/tipg


tipg, pronounced T[ee]pg, is a Python package that helps create lightweight OGC Features and Tiles API with a PostGIS Database backend. The API has been designed for OGC Features and OGC Tiles specifications.

Note This project is the result of the merge between tifeatures and timvt.

Install

$ python -m pip install pip -U
$ python -m pip install tipg

# or from source
$ git clone https://github.com/developmentseed/tipg.git
$ cd tipg
$ python -m pip install -e .

OGC Specifications

Specification Status link
OGC Common Part 1: Core https://docs.ogc.org/DRAFTS/19-072.html
OGC Common Part 2: Geospatial Data http://docs.ogc.org/DRAFTS/20-024.html
OGC Features Part 1: Core https://docs.ogc.org/is/17-069r4/17-069r4.html
OGC Features Part 2: CRS by Reference https://docs.ogc.org/is/18-058r1/18-058r1.html
OGC Features Part 3: Filtering / CQL2 https://docs.ogc.org/DRAFTS/19-079r1.html
OGC Tiles Part 1: Core https://docs.ogc.org/is/20-057/20-057.html

Notes:

We chose to avoid implementing the second part of the specification to prevent the introduction of CRS-based GeoJSON. We may review this decision in the future.

While we tried to follow OGC specifications to the letter, some API endpoints might have more capabilities (e.g., geometry column selection).

PostGIS/PostgreSQL

tipg relies greatly on PostGIS' ST_* functions. PostGIS must be installed on your PostgreSQL database.

SELECT name, default_version,installed_version
FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';
CREATE EXTENSION postgis;

Configuration

To be able to work, the application will need access to the database. tipg uses Starlette's configuration pattern, which makes use of environment variables or a .env file to pass variables to the application.

An example of a .env file can be found in .env.example

# you need to define the DATABASE_URL directly
DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis

More info about configuration options at https://developmentseed.org/tipg/user_guide/configuration/

Launch

$ pip install uvicorn

# Set your PostGIS database instance URL in the environment
$ export DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis
$ uvicorn tipg.main:app

# or using Docker

$ docker-compose up app

Docker images

We are publishing two different docker images on tag and on every commit to main branch:

Gunicorn Uvicorn
main commit ghcr.io/developmentseed/tipg:latest ghcr.io/developmentseed/tipg:uvicorn-latest
tags ghcr.io/developmentseed/tipg:0.0.0 ghcr.io/developmentseed/tipg:uvicorn-0.0.0
dockerfile /dockerfiles/Dockerfile.gunicorn /dockerfiles/Dockerfile.uvicorn

See all version at https://github.com/developmentseed/tipg/pkgs/container/tipg

# Gunicorn image
$ docker run \
    -p 8081:8081 \
    -e PORT=8081 \
    -e DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis \
    ghcr.io/developmentseed/tipg:latest

# or Uvicorn image
$ docker run \
    -p 8081:8081 \
    -e PORT=8081 \
    -e DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis \
    ghcr.io/developmentseed/tipg:uvicorn-latest

Note: If you are planning to use the docker image in a kubernetes deployment you may want to use the uvicorn image (ref: https://fastapi.tiangolo.com/deployment/server-workers/).

Contribution & Development

See CONTRIBUTING.md

License

See LICENSE

Authors

Created by Development Seed

Changes

See CHANGES.md.

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

tipg-0.6.3.tar.gz (56.3 kB view details)

Uploaded Source

Built Distribution

tipg-0.6.3-py3-none-any.whl (68.5 kB view details)

Uploaded Python 3

File details

Details for the file tipg-0.6.3.tar.gz.

File metadata

  • Download URL: tipg-0.6.3.tar.gz
  • Upload date:
  • Size: 56.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for tipg-0.6.3.tar.gz
Algorithm Hash digest
SHA256 76d92dc064da85ce97af070c356fb2588e6af70b7ae4ed9c216498d0304ba1e6
MD5 1dc8cfd30165e7483ed17ba8c45e147f
BLAKE2b-256 8f56b64fc9d63eed1cc868a1b673aa908e5c0f0691afefc9e418da48836e5835

See more details on using hashes here.

File details

Details for the file tipg-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: tipg-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 68.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for tipg-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 733013b6243f9df0c006a3521e0235a11b34887324ae4afd4ddd631ac7a14ebb
MD5 cd9817b8219da1c132ef85e2de8ecd7a
BLAKE2b-256 099217dcb035c11b0d9b98f168f4b80d1d8862668a7806d6748393c8f71e7e23

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