@basemaps/cogify
TypeScript icon, indicating that this package has built-in type declarations

7.2.0 • Public • Published

@basemaps/cogify

CLI to retile imagery into a Cloud Optimised Geotiffs (COG) aligned to a TileMatrix

Why ?

LINZ gets most of it's imagery delivered as tiles in NZTM2000 the imagery is tiled as rectangles against a tile grid such as the 1:5k or 1:1k.

These grids are not designed for use in XYZ tiles services in WebMercator/EPSG:3857, If the tiles were converted directly to WebMercator there would be significant overlap between multiple source imagery tiffs and a output WebMercator tile. This would cause large overheads for basemaps to render tiles as it would need to fetch data from all of the tiffs inside of the output tile.

NZTM Tile Index vs WebMercator Above is an example of a web mercator zoom 11 tile (Red outline) and the number 1:5k tiles required to render (Shaded black) it

This package contains the logic to process input imagery into a output Tile Matrix to create optimised COGs for web mapping purposes.

The output COGS perfectly align to a output tile, greatly increasing XYZ tile service performance.

Process

To convert imagery to optimized COG, a output tile cover is created, this covers the source imagery in tiles from the output tile matrix.

cogify cover --tile-matrix WebMercatorQuad s3://linz-imagery/.../porirua_2020_0.1m --target ./output

The metadata for the optimized COGS is written into the output folder where the COG creation step can use GDAL to create the output tiff.

cogify create ./output/WebMercatorQuad/porirua_2020_0.1m/01GY8W69EJEMAKKXNHYMRF7DCY/14-16150-10245.json

The output COG can be validated to ensure it matches the tile exactly.

cogify validate  --tile-matrix WebMercatorQuad ./output/WebMercatorQuad/porirua_2020_0.1m/01GY8W69EJEMAKKXNHYMRF7DCY/14-16150-10245.tiff

Usage

Install cogify using npm

npm install -g @basemaps/cogify
$ cogify --help

- cover - Create a covering configuration from a collection from source imagery
- create - Create a COG from a covering configuration

Covering

Create a tile covering for WebMeractorQuad from source imagery located in s3 and outputs the resulting configuration files into ./output/:projection/:imageryName/:id/collection.json

cogify cover --tile-matrix WebMercatorQuad s3://linz-imagery/new-zealand/north-island_2023_0.5m/rgb/2193/ --target ./output

Create

Create the first COG from the list

cogify create ./output/3857/north-island_2023_0.5m/:id/14-16150-10245.json

Readme

Keywords

none

Package Sidebar

Install

npm i @basemaps/cogify

Weekly Downloads

4

Version

7.2.0

License

MIT

Unpacked Size

166 kB

Total Files

64

Last publish

Collaborators

  • blacha
  • linzds