• Stars
    star
    193
  • Rank 201,081 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python modules to work with large multiresolution images.

Large Image

Build Status codecov.io License doi-badge pypi-badge

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

Docker Image

Included in this repositoryโ€™s packages is a pre-built Docker image that has all of the dependencies to read any supported image format.

This is particularly useful if you do not want to install some of the heavier dependencies like GDAL on your system or want a dedicated and isolated environment for working with large images.

To use, pull the image and run it by mounting a local volume where the imagery is stored:

docker pull ghcr.io/girder/large_image:latest
docker run -v /path/to/images:/opt/images ghcr.io/girder/large_image:latest

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. For instance, you can do pip install large-image[tiff]. There are additional extras_require options:

    • sources: all of the tile sources in the repository, a specific source name (e.g., tiff)
    • memcached: use memcached for tile caching
    • converter: include the converter module
    • colormaps: use matplotlib for named color palettes used in styles
    • tiledoutput: support for emitting large regions as tiled tiffs
    • performance: include optional modules that can improve performance
    • all: for all of the above
  • 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 of jp2k to include modules to allow output to JPEG2000 compression, sources to include all sources, and stats 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-multi: A tile source for compositing other tile sources into a single multi-frame source.
    • large-image-source-vips: A tile source for reading any files handled by libvips. This also can be used for writing tiled images from numpy arrays.
    • large-image-source-tifffile: A tile source using the tifffile library that can handle a wide variety of tiff-like files.
    • large-image-source-dicom: A tile source for reading DICOM WSI images.
    • 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 include girder-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 of tasks 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 of girder to include modules needed to work with the Girder remote worker or worker 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

More Repositories

1

girder

A data management platform for the web, developed by Kitware
Python
426
star
2

django-large-image

๐Ÿฉป ๐Ÿ—บ๏ธ Django endpoints for working with large images for tile serving
Python
60
star
3

girder_worker

Distributed task execution engine with Girder integration, developed by Kitware
Python
34
star
4

django-s3-file-field

A Django library for uploading files directly to AWS S3 or MinIO Storage from HTTP clients.
Python
33
star
5

girder_web_components

Reusable Javascript and VueJS components for interacting with a Girder server.
JavaScript
16
star
6

slicer_cli_web

A Girder plugin for exposing slicer execution model's CLI modules over the web
Python
16
star
7

cookiecutter-girder-4

Python
11
star
8

large_image_wheels

manylinux wheel files for girder/large_image dependencies
Dockerfile
9
star
9

django-composed-configuration

Turnkey Django settings for data management applications.
Python
8
star
10

girder_jupyter

A Girder content manager for Jupyter
Python
8
star
11

viime

Vue
8
star
12

covalic

Application for hosting challenges
Python
8
star
13

terraform-heroku-girder4

A Terraform module to provision Girder4 infrastructure on Heroku + AWS.
HCL
6
star
14

girder-oauth-client

A TypeScript library for performing OAuth login to a Girder 4 (Django) server.
TypeScript
6
star
15

vue-project-template

Project template for Girder 4 SPA front-end applications
TypeScript
6
star
16

create-pip-index-action

Create a custom pip package index for publishing Python packages to GitHub Pages
Python
5
star
17

slicer_package_manager

REST API service and CLI built on Girder for managing Slicer application and extension packages. This site is published at slicer-packages.kitware.com and maintained by @Kitware on behalf of the 3D Slicer community.
Python
5
star
18

tech_journal

A Girder plugin for a Technical Journal
JavaScript
4
star
19

girder-vue

Vue
4
star
20

cookiecutter-gw-plugin

Generates boilerplate for a python package to house girder worker tasks
Python
4
star
21

ansible-role-girder-mongodb

An Ansible role to install MongoDB server.
Python
4
star
22

trame-large-image

Large image viewer for Trame
Python
4
star
23

dkc-next

Python
3
star
24

legacy-resonant-website

Resonant website
HTML
3
star
25

demo_site

Vue
3
star
26

cookiecutter-girder-plugin

A cookiecutter that generates boilerplate code for a Girder plugin.
Python
3
star
27

django-auth-style

Django template styling for django-allauth and django-oauth-toolkit.
HTML
3
star
28

django-girder-utils

Django utilities for data management applications.
Python
2
star
29

dkc-next-client

2
star
30

geojs_viewer

JavaScript
2
star
31

girder_worker_utils

Set of utilities for tasks related to the girder worker
Python
2
star
32

example_external_plugin

An example of an external plugin that builds its own custom web front-end
Python
2
star
33

ansible-role-girder

A read-only mirror repository for an Ansible role to install Girder
Python
2
star
34

girder-cli-oauth-client

A Python library for performing OAuth login to a Girder 4 (Django) server.
Python
2
star
35

ansible-role-girder-celery

An Ansible role to install a Celery worker.
Python
2
star
36

interactive_thumbnails

Python
2
star
37

miqa

MIQA v2
Python
1
star
38

dicom_vuer

A vue.js component for viewing DICOM data stored in Girder
Vue
1
star
39

ansible-role-large-image

An ansible role for installing Girder with the large_image plugin
Python
1
star
40

video

Girder plugin to process and display video
Python
1
star
41

girder-publication-approval

Python
1
star
42

girder-docs

Girder Platform Documentation
1
star
43

terraform-aws-girder3

A Terraform module to provision Girder3 infrastructure on AWS.
HCL
1
star
44

girder-volview-dicomrt

Python
1
star
45

girder_jupyterhub

A JupyterHub authenticator for Girder credentials
Python
1
star
46

vtk_viewer

JavaScript
1
star
47

globus_endpoints

Python
1
star