satpy.writers.geotiff module

GeoTIFF writer objects for creating GeoTIFF files from DataArray objects.

class satpy.writers.geotiff.GeoTIFFWriter(dtype=None, tags=None, **kwargs)[source]

Bases: ImageWriter

Writer to save GeoTIFF images.

Basic example from Scene:

>>> scn.save_datasets(writer='geotiff')

By default the writer will use the Enhancer class to linear stretch the data (see Enhancements). To get Un-enhanced images enhance=False can be specified which will write a geotiff with the data type of the dataset. The fill value defaults to the the datasets "_FillValue" attribute if not None and no value is passed to fill_value for integer data. In case of float data if fill_value is not passed NaN will be used. If a geotiff with a certain datatype is desired for example 32 bit floating point geotiffs:

>>> scn.save_datasets(writer='geotiff', dtype=np.float32, enhance=False)

To add custom metadata use tags:

>>> scn.save_dataset(dataset_name, writer='geotiff',
...                  tags={'offset': 291.8, 'scale': -0.35})

Images are tiled by default. To create striped TIFF files tiled=False can be specified:

>>> scn.save_datasets(writer='geotiff', tiled=False)

For performance tips on creating geotiffs quickly and making them smaller see the Frequently Asked Questions.

Init the writer.

GDAL_OPTIONS = ('tfw', 'rpb', 'rpctxt', 'interleave', 'tiled', 'blockxsize', 'blockysize', 'nbits', 'compress', 'num_threads', 'predictor', 'discard_lsb', 'sparse_ok', 'jpeg_quality', 'jpegtablesmode', 'zlevel', 'photometric', 'alpha', 'profile', 'bigtiff', 'pixeltype', 'copy_src_overviews', 'blocksize', 'resampling', 'quality', 'level', 'overview_resampling', 'warp_resampling', 'overview_compress', 'overview_quality', 'overview_predictor', 'tiling_scheme', 'zoom_level_strategy', 'target_srs', 'res', 'extent', 'aligned_levels', 'add_alpha')
save_image(img: XRImage, filename: str | None = None, compute: bool = True, dtype: dtype[Any] | None | type[Any] | _SupportsDType[dtype[Any]] | str | tuple[Any, int] | tuple[Any, SupportsIndex | Sequence[SupportsIndex]] | list[Any] | _DTypeDict | tuple[Any, Any] = None, fill_value: int | float | None = None, keep_palette: bool = False, cmap: Colormap | None = None, tags: dict[str, Any] | None = None, overviews: list[int] | None = None, overviews_minsize: int = 256, overviews_resampling: str | None = None, include_scale_offset: bool = False, scale_offset_tags: tuple[str, str] | None = None, colormap_tag: str | None = None, driver: str | None = None, tiled: bool = True, **kwargs)[source]

Save the image to the given filename in geotiff format.

Note this writer requires the rasterio library to be installed.

  • img (xarray.DataArray) – Data to save to geotiff.

  • filename (str) – Filename to save the image to. Defaults to filename passed during writer creation. Unlike the creation filename keyword argument, this filename does not get formatted with data attributes.

  • compute (bool) – Compute dask arrays and save the image immediately. If False then the return value can be passed to compute_writer_results() to do the computation. This is useful when multiple images may share input calculations where dask can benefit from not repeating them multiple times. Defaults to True in the writer by itself, but is typically passed as False by callers where calculations can be combined.

  • dtype (DTypeLike) – Numpy data type to save the image as. Defaults to 8-bit unsigned integer (np.uint8) or the data type of the data to be saved if enhance=False. If the dtype argument is provided during writer creation then that will be used as the default.

  • fill_value (float or int) – Value to use where data values are NaN/null. If this is specified in the writer configuration file that value will be used as the default.

  • keep_palette (bool) – Save palette/color table to geotiff. To be used with images that were palettized with the “palettize” enhancement. Setting this to True will cause the colormap of the image to be written as a “color table” in the output geotiff and the image data values will represent the index values in to that color table. By default, this will use the colormap used in the “palettize” operation. See the cmap option for other options. This option defaults to False and palettized images will be converted to RGB/A.

  • cmap (trollimage.colormap.Colormap or None) – Colormap to save as a color table in the output geotiff. See keep_palette for more information. Defaults to the palette of the provided img object. The colormap’s range should be set to match the index range of the palette (ex. cmap.set_range(0, len(colors))).

  • tags (dict) – Extra metadata to store in geotiff.

  • overviews (list) –

    The reduction factors of the overviews to include in the image, eg:

    scn.save_datasets(overviews=[2, 4, 8, 16])

    If provided as an empty list, then levels will be computed as powers of two until the last level has less pixels than overviews_minsize. Default is to not add overviews.

  • overviews_minsize (int) – Minimum number of pixels for the smallest overview size generated when overviews is auto-generated. Defaults to 256.

  • overviews_resampling (str) – Resampling method to use when generating overviews. This must be the name of an enum value from rasterio.enums.Resampling and only takes effect if the overviews keyword argument is provided. Common values include nearest (default), bilinear, average, and many others. See the rasterio documentation for more information.

  • scale_offset_tags (Tuple[str, str]) – If set, include inclusion of scale and offset in the GeoTIFF headers in the GDALMetaData tag. The value of this argument should be a keyword argument (scale_label, offset_label), for example, ("scale", "offset"), indicating the labels to be used.

  • colormap_tag (Optional[str]) – If set and the image being saved was colorized or palettized then a comma-separated version of the colormap is saved to a custom geotiff tag with the provided name. See trollimage.colormap.Colormap.to_csv() for more information.

  • driver (Optional[str]) – Name of GDAL driver to use to save the geotiff. If not specified or None (default) the “GTiff” driver is used. Another common option is “COG” for Cloud Optimized GeoTIFF. See GDAL documentation for more information.

  • tiled (bool) – For performance this defaults to True. Pass False to created striped TIFF files.

  • include_scale_offset (deprecated, bool) – Deprecated. Use scale_offset_tags=("scale", "offset") to include scale and offset tags.

classmethod separate_init_kwargs(kwargs)[source]

Separate the init keyword args.