Skip to main content

Command line script to convert Cloud Optimized Geotiff to h3 cells and insert to PosgreSQL

Project description

Cloud Optimized Geotiff to H3 Cell

This script processes Cloud Optimized GeoTIFFs (COGs) and converts them to H3 hexagonal grids, storing the results in a PostgreSQL database. It supports multi-band rasters, resampling, and various processing options.

Features

  • Download and process COGs from URLs
  • Convert raster data to H3 hexagons
  • Support for multi-band rasters
  • Customizable H3 resolution
  • Various resampling methods
  • Option to preserve raster value range during resampling
  • Efficient database storage using PostgreSQL

Prerequisites

  • Python 3.7+

  • PostgreSQL database

  • Ensure your input COG is in WGS 1984 projection. If not, reproject it using gdalwarp

Example :

gdalwarp -overwrite input.tif output.tif -s_srs EPSG:32645 -t_srs EPSG:4326
  • Set nodata values to 0 using gdalwarp,
gdalwarp -dstnodata 0 input.tif output.tif
  • Convert a GeoTIFF to COG format:
gdal_translate -of COG input.tif output_cog.tif

Environment Variables

Set the following environment variables or use default values:

  • DATABASE_URL: PostgreSQL connection string (default: "postgresql://postgres:postgres@localhost:5432/postgres")
  • STATIC_DIR: Directory to store downloaded COGs (default: "static")

Example:

export DATABASE_URL="postgresql://user:password@host:port/database"
export STATIC_DIR="/path/to/cog/storage"

Usage

Run the script with the following command:

python cog2h3.py --cog <COG_URL> --table <TABLE_NAME> [OPTIONS]

Required Arguments:

  • --cog: URL of the Cloud Optimized GeoTIFF (must be in WGS84 projection)
  • --table: Name of the database table to store results

Optional Arguments:

  • --res: H3 resolution level (default: 8)
  • --preserve_range: Preserve the value range of the raster while resampling
  • --multiband: Process all bands of a multi-band raster
  • --sample_by: Resampling method (default: "bilinear")

Available resampling methods: nearest, bilinear, cubic, cubic_spline, lanczos, average, mode, gauss, max, min, med, q1, q3, sum, rms

Example:

python cog2h3.py --cog my-cog.tif --table cog_h3 --res 8

Contribute

Contributions are Welcome ! स्वागतम

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

cog2h3-0.0.2.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

cog2h3-0.0.2-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file cog2h3-0.0.2.tar.gz.

File metadata

  • Download URL: cog2h3-0.0.2.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for cog2h3-0.0.2.tar.gz
Algorithm Hash digest
SHA256 6d033ae00a0e5f93a271d3eb60d60875855ad6a36d0274ae4810d42915fac0db
MD5 dda34c5b2fe0b61e23de44101bda630d
BLAKE2b-256 0d9e45c7bf620c3f5779b56ccad8a924b20ed0961a889267b10cce5f00604445

See more details on using hashes here.

File details

Details for the file cog2h3-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: cog2h3-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for cog2h3-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b4c9f90e4db6e2a213564c102bf66121a6c21208fa20e4d096e58992ec35038c
MD5 a123da05cc020ca1b23ebd99b15e2b13
BLAKE2b-256 8423804af28c883e004b13b9f58b89ec6246a3d5114619dcb1d348d281a8ef2f

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