Skip to main content

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

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

This all preprocessing step is included in ./pre.sh bash script

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 ! स्वागतम

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.3.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cog2h3-0.0.3-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cog2h3-0.0.3.tar.gz
  • Upload date:
  • Size: 17.9 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.3.tar.gz
Algorithm Hash digest
SHA256 19f70660052ba640dad0d8f4fd71a24ccff83fc3f7d1d3c1302ceff0ace210e6
MD5 38e4f416714aad805e34200b5f0a992b
BLAKE2b-256 f0c8c011489625de432fb629a41ea2ac4f205607dc85610ce9249c99805a6a86

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cog2h3-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.7 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 284abd3f85a1c1148e119d7ad5966fe9b5a7fd25ae80eab344a0e0d8a8d22fe9
MD5 e7d5d46d384b5ce275eab944c6c27e62
BLAKE2b-256 516a80a39f9c07accc8a4423c6ff261019a133f06625b201acf3faca11a78e47

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 files

0.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page