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

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

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

Uploaded Source

Built Distribution

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.

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