Large Image
Python modules to work with large, multiresolution images.
Large Image is developed and maintained by the Data & Analytics group at Kitware, Inc. for processing large geospatial and medical images. This provides the backbone for several of our image analysis platforms including Resonant GeoData, HistomicsUI, and the Digital Slide Archive.
Highlights
- Tile serving made easy
- Supports a wide variety of geospatial and medical image formats
- Convert to tiled Cloud Optimized (Geo)Tiffs (also known as pyramidal tiffs)
- Python methods for retiling or accessing regions of images efficiently
- Options for restyling tiles, such as dynamically applying color and band transform
Installation
In addition to installing the large-image
package, you'll need at least one tile source (a large-image-source-xxx
package). You can install everything from the main project with one of these commands:
Pip
Install all tile sources on linux:
pip install large-image[all] --find-links https://girder.github.io/large_image_wheels
Install all tile sources and all Girder plugins on linux:
pip install large-image[all] girder-large-image-annotation[tasks] --find-links https://girder.github.io/large_image_wheels
Conda
Conda makes dependency management a bit easier if not on Linux. Some of the source modules are available on conda-forge. You can install the following:
conda install -c conda-forge large-image-source-gdal conda install -c conda-forge large-image-source-tiff conda install -c conda-forge large-image-converter
Modules
Large Image consists of several Python modules designed to work together. These include:
large-image
: The core module. You can specify extras_require of the name of any tile source included with this repository,sources
for all of the tile sources in the repository, a specific source name (e.g.,tiff
),memcached
for using memcached for tile caching,converter
to include the converter module,colormap
for using matplotlib for named color palettes used in styles, orall
for all of the tile sources, memcached, the converter module, and better color map support.large-image-converter
: A utility for using pyvips and other libraries to convert images into pyramidal tiff files that can be read efficiently by large_image. You can specify extras_require ofjp2k
to include modules to allow output to JPEG2000 compression,sources
to include all sources, andstats
to include modules to allow computing compression noise statistics.Tile sources:
large-image-source-tiff
: A tile source for reading pyramidal tiff files in common compression formats.large-image-source-openslide
: A tile source using the OpenSlide library. This works with svs, ndpi, Mirax, tiff, vms, and other file formats.large-image-source-ometiff
: A tile source using the tiff library that can handle some multi-frame OMETiff files.large-image-source-pil
: A tile source for small images via the Python Imaging Library (Pillow).large-image-source-gdal
: A tile source for reading geotiff files via GDAL. This handles source data with more complex transforms than the mapnik tile source.large-image-source-mapnik
: A tile source for reading geotiff and netcdf files via Mapnik and GDAL. This handles more vector issues than the gdal tile source.large-image-source-openjpeg
: A tile source using the Glymur library to read jp2 (JPEG 2000) files.large-image-source-nd2
: A tile source for reading nd2 (NIS Element) images.large-image-source-bioformats
: A tile source for reading any file handled by the Java Bioformats library.large-image-source-deepzoom
: A tile source for reading Deepzoom tiles.large-image-source-test
: A tile source that generates test tiles, including a simple fractal pattern. Useful for testing extreme zoom levels.large-image-source-dummy
: A tile source that does nothing.
Most tile sources can be used with girder-large-image. You can specific an extras_require of
girder
to includegirder-large-image
with the source.As a Girder plugin:
girder-large-image
: Large Image as a Girder 3.x plugin. You can specify extras_require oftasks
to install a Girder Worker task that can convert otherwise unreadable images to pyramidal tiff files.girder-large-image-annotation
: Annotations for large images as a Girder 3.x plugin.large-image-tasks
: A utility for running the converter via Girder Worker. You can specify an extras_require ofgirder
to include modules needed to work with the Girder remote worker orworker
to include modules needed on the remote side of the Girder remote worker. If neither is specified, some conversion tasks can be run using Girder local jobs.
Developer Installation
To install all packages from source, clone the repository:
git clone https://github.com/girder/large_image.git cd large_image
Install all packages and dependencies:
pip install -e . -r requirements-dev.txt
If you aren't developing with Girder 3, you can skip installing those components. Use requirements-dev-core.txt
instead of requirements-dev.txt
:
pip install -e . -r requirements-dev-core.txt
Tile source prerequisites
Many tile sources have complex prerequisites. These can be installed directly using your system's package manager or from some prebuilt Python wheels for Linux. The prebuilt wheels are not official packages, but they can be used by instructing pip to use them by preference:
pip install -e . -r requirements-dev.txt --find-links https://girder.github.io/large_image_wheels