- No user facing changes. Refactors code to use Harmony Message utilities from harmony-service-lib.
- Give user informative error message when when the input GeoTIFF doesn't have a defined CRS.
- Scale and mask input GeoTIFFs. Any input file that includes scale_factor, add_offset or _FillValue will have those values applied when reading the input data.
- Adds support for colortables.
-
HyBIG has the ability to apply a colortable single band input GeoTIFF and it follows a series of steps to determine which color information to use. It searches each of these locations and uses the first color information found.
- The input stac
Item
: TheItem
'sassets
are searched for one with the role ofpalette
. If it finds an matching asset entry, it will use the data found at thehref
of that asset as the color table to apply to the input data. - The HarmonyMessage's
Source
: If theSource
contains a singlevariable
and thatvariable
contains arelatedUrls
withurlContentType
ofVisualizationURL
andtype
ofColor Map
the color map will be read from that object'surl
value. - The input GeoTIFF's own colormap: If the GeoTIFF contains it's own colormap that will be used.
- Finally if no color information can be determined the output will use a greyscale colormap
Three and four band input GeoTIFFs are presumed to be RGB[A].
- The input stac
-
- Memory usage improvements
- Changes the quantization method from external imgquant library to the
Pillow built-in
quantize
. - Updates commands in the
convert_singleband_to_raster
to use fewer temporary arrays as well as usinguint8
arrays instead offloat32
arrays.
- Changes the quantization method from external imgquant library to the
Pillow built-in
- scaleExtent input parameter validated for correct order.
- Tiling is now determined by gridcell count as a proxy for image size. If an image has more than 67108864 (8192 * 8192) cells, the resulting image will be tiled and each tile will be broken down into 4096x4096 gridcell tiles.
- Input parameters have new constraint. If a user supplies a scaleExtent or scaleSize in the request, the target CRS must also be included or the request will fail.
- Output dimension calculation no based on input data resolution and the scale extent.
- Fixes tiling selection. Fixes bug for large numbers of tiles.
- DAS-1833
- Browse images are tiled according to the GIBS ICD document. That means full Earth images that are ~1km in resolution are cut into 10x10degree images and returned tiled.
- DAS-1885
- PNG images are written as single band paletted images.
- DAS-1835
- Uses Harmony Message's parameters, or computes defaults when generating and output browse image. When no parameters are passed with the Message, the code will resize and reproject to try to make GIBS compatible images.
- DAS-1816
- Adds functionality to determine GIBS compatible output parameters, while allowing a user to override any parameters in the harmony message.
- DAS-1600
-
Updates the service to generate PNG images from input geotiffs. The service can read single band geotiffs with or without a palette and convert them into a 4 band RGBA PNG or 3 band JPEG image. Unpaletted geotiffs are rendered in grayscale. The service can also read a 3 or 4 band (RGB or RGBA) geotiff and convert that to a 4 band RGBA PNG or 3 band JPEG files.
-
This initial version of the Harmony Browse Image Generator (HyBIG) sets up the core infrastructure required for a backend service. It contains a HarmonyAdapter class that can be invoked within a Harmony Kubernetes cluster.
-