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

Metadata

Release files for cog2h3 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cog2h3 0.0.3
File Size Uploaded
cog2h3-0.0.3.tar.gz 17.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cog2h3 0.0.3
File Interpreter ABI Platform
cog2h3-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / cog2h3-0.0.3.tar.gz

Download URL cog2h3-0.0.3.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
19f70660052ba640dad0d8f4fd71a24ccff83fc3f7d1d3c1302ceff0ace210e6
BLAKE2b-256 checksum
How to use checksums
f0c8c011489625de432fb629a41ea2ac4f205607dc85610ce9249c99805a6a86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / cog2h3-0.0.3-py3-none-any.whl

Download URL cog2h3-0.0.3-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
284abd3f85a1c1148e119d7ad5966fe9b5a7fd25ae80eab344a0e0d8a8d22fe9
BLAKE2b-256 checksum
How to use checksums
516a80a39f9c07accc8a4423c6ff261019a133f06625b201acf3faca11a78e47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release 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