datacube.utils.cog.to_cog#
- datacube.utils.cog.to_cog(geo_im, blocksize=None, ovr_blocksize=None, overview_resampling=None, overview_levels=None, use_windowed_writes=False, intermediate_compression=False, **extra_rio_opts)[source]#
Compress
xarray.DataArray
into Cloud Optimized GeoTiff bytes in memory.This function doesn’t write to disk, it compresses in RAM, which is useful for saving data to S3 or other cloud object stores.
This function is “Dask aware”. If
geo_im
is a Dask array, then the output of this function is also a Dask Delayed object. This allows us to compress multiple images concurrently across a Dask cluster. If you are not familiar with Dask this can be confusing, as no operation is performed until the.compute()
method is called, so if you call this function with Dask array it will return immediately without compressing any data.- Parameters:
geo_im (
DataArray
) –xarray.DataArray
with crsblocksize (
Optional
[int
]) – Size of internal tiff tiles (512x512 pixels)ovr_blocksize (
Optional
[int
]) – Size of internal tiles in overview images (defaults to blocksize)overview_resampling (
Optional
[str
]) – Use this resampling when computing overviewsoverview_levels (
Optional
[List
[int
]]) – List of shrink factors to compute overiews for: [2,4,8,16,32]nodata – Set
nodata
flag to this value if supplied, by defaultnodata
is read from the attributes of the input array (geo_im.attrs['nodata']
).use_windowed_writes (
bool
) – Write image block by block (might need this for large images)intermediate_compression (
Union
[bool
,str
,Dict
[str
,Any
]]) – Configure compression settings for first pass write, default is no compressionextra_rio_opts – Any other option is passed to
rasterio.open
- Return type:
- Returns:
In-memory GeoTiff file as bytes
- Returns:
dask.Delayed
object if input is a Dask array
Also see
write_cog()