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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19f70660052ba640dad0d8f4fd71a24ccff83fc3f7d1d3c1302ceff0ace210e6 |
|
MD5 | 38e4f416714aad805e34200b5f0a992b |
|
BLAKE2b-256 | f0c8c011489625de432fb629a41ea2ac4f205607dc85610ce9249c99805a6a86 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 284abd3f85a1c1148e119d7ad5966fe9b5a7fd25ae80eab344a0e0d8a8d22fe9 |
|
MD5 | e7d5d46d384b5ce275eab944c6c27e62 |
|
BLAKE2b-256 | 516a80a39f9c07accc8a4423c6ff261019a133f06625b201acf3faca11a78e47 |