Skip to content

Latest commit

 

History

History
1251 lines (922 loc) · 51.2 KB

CHANGELOG.md

File metadata and controls

1251 lines (922 loc) · 51.2 KB

Change Log

1.29.0

Features

  • Add redis as cache backend option (#1469)

Improvements

  • Better detect available memory in containers (#1532)
  • Reject the promise from a canceled annotation (#1535)
  • Disallow certain names from being read by any but specific sources (#1537)
  • Add the ability to specify the dtype of a multi-source file (#1542)
  • Handle bounds on openslide sources to handle sparse sources (#1543)

Changes

  • Log more when saving annotations (#1525)
  • Thumbnail generation jobs are less blocking (#1528, #1530)

Bug Fixes

  • Annotations are sometimes paged when they shouldn't be (#1529)

1.28.2

Improvements

  • Improve uint16 image scaling (#1511)
  • Read some untiled tiffs using the tiff source (#1512)
  • Speed up multi source compositing in tiled cases (#1513)
  • Speed up some tifffile and multi source access cases (#1515)
  • Allow specifying a minimum number of annotations elements when maxDetails is used (#1521)
  • Improved import of GeoJSON annotations (#1522)

Changes

  • Limit internal metadata on multi-source files with huge numbers of sources (#1514)
  • Make DICOMweb assetstore imports compatible with Girder generics (#1504)

Bug Fixes

  • Fix touch actions in the image viewer in some instances (#1516)
  • Fix multisource dtype issues that resulted in float32 results (#1520)

1.28.1

Improvements

  • When writing zarr sinks through the converter, use jpeg compression for lossy data (#1501)

Changes

  • Improve algorithm sweep example options (#1498)

Bug Fixes

  • Guard a race condition in vips new_from_file (#1500)
  • Fix cropping with the zarr sink (#1505)

1.28.0

Features

Improvements

  • Prioritize tile sinks (#1478)
  • Add a dependency to the zarr source to read more compression types (#1480)
  • Guard fetching internal metadata on zarr sources that have less data (#1481)
  • Add a method to list registered extensions and mimetypes (#1488)
  • Reduce bioformats keeping file handles open (#1492)
  • Use more tile-frame textures in high frame count images (#1494)
  • Zarr tile sink: generate downsampled levels (#1490)

Changes

  • Prohibit bioformats from reading zip directly (#1491)

Bug Fixes

  • Fix an issue with single band on multi source with non uniform sources (#1474)
  • Allow alternate name axes in the multi source schema (#1476)
  • Adjust default threading on tile-frame generation to match documentation (#1495)
  • Fix how zarr sink directory is cleaned up (#1496)

1.27.4

Improvements

  • Add a guard when reading incorrect associated images (#1472)

1.27.3

Improvements

  • Log and recover from occasional openslide failures (#1461)
  • Add support for Imaging Data Commons (#1450)
  • Speed up some retiling (#1471)

Changes

  • Make GDAL an optional dependency for the converter (#1464)

Bug Fixes

  • Fix an issue with uniform band depth on multi source with non uniform sources (#1459)
  • Fix histogram request bug in band compositing mode (#1463)
  • Prevent duplicating config files with multiple writes (#1467)

1.27.2

Improvements

  • Support range requests when downloading DICOMweb files (#1444)
  • Bypass some scaling code when compositing multi sources (#1447, #1449)
  • Do not create needless alpha bands in the multi source (#1451)
  • Infer DICOM file size, when possible (#1448)
  • Swap styles faster in the frame viewer (#1452)
  • Reduce color fringing in multi source compositing (#1456)
  • Retry read_region if openslide reports an error (#1457)

Bug Fixes

  • Fix an issue with compositing sources in the multi source caused by alpha range (#1453)

1.27.1

Improvements

  • Read config values from the environment variables (#1422)
  • Optimizing when reading arrays rather than images from tiff files (#1423)
  • Better filter DICOM adjacent files to ensure they share series instance IDs (#1424, #1436, #1442)
  • Optimizing small getRegion calls and some tiff tile fetches (#1427)
  • Started adding python types to the core library (#1432, #1433, #1437, #1438, #1439)
  • Use parallelism in computing tile frames (#1434)
  • Support downloading DICOMweb files (#1429)

Changes

  • Cleanup some places where get was needlessly used (#1428)
  • Moved some internal code out of the base class (#1429)
  • Handle changes to wsidicom (#1435)
  • Refactored the tile iterator to its own class (#1441)

1.27.0

Features

  • Support affine transforms in the multi-source (#1415)

Improvements

  • Remove NaN values from band information (#1414)
  • Add a singleBand option to the multi-source specification (#1416)
  • Allow better detection of multiple file dicom (#1417)
  • Better missing data detection from tifffile (#1421)

Changes

  • Remove an unused parameter in a private method (#1419)

1.26.3

Improvements

  • Reduce stderr noise in PIL and rasterio sources (#1397)
  • Harden OME tiff reader (#1398)
  • Improve checks for formats we shouldn't read (#1399)
  • Support negative x, y in addTile (#1401)
  • Add a utility function for getting loggers (#1403)
  • Get bioformats jar version if bioformats was started (#1405)
  • Improve thread safety of concurrent first reads using bioformats (#1406)
  • Read more metadata from DICOMweb (#1378)
  • Remove logic for determining DICOMweb transfer syntax (#1393)
  • Speed up tile output (#1407)
  • Speed up import time (#1408)
  • Speed up some tile iteration by reducing the chance of multiple image decodes (#1410)

Changes

  • Use an enum for priority constants (#1400)
  • Don't automatically flush memcached tile cache on exit (#1409)
  • Shift where netcdf information is reported (#1413)

Bug Fixes

  • Fix an issue emitting geojson annotations (#1395)
  • Fix an issue when tifffile reports no key frame (#1396)
  • Frame Selector: Auto-Range format for saving presets (#1404)

1.26.2

Improvements

  • Fix the DICOM limit to say "Series" instead of "Studies" (#1379)
  • Add token authentication option for DICOMweb (#1349)
  • Use vips resize rather than reduce to increase speed (#1384)
  • Added annotation to geojson endpoint and utility (#1385)

Changes

  • Handle setup_requires deprecation (#1390)

Bug Fixes

  • Fix an issue applying ICC profile adjustments to multiple image modes (#1382)
  • Guard against bad tifffile magnification values (#1383)
  • Frame Selector component: ensure that no color can be assigned twice (#1387)
  • Remove white space in frame selector internal fields (#1389)
  • Fix a comparison between integer enums in configured item lists (#1391)

1.26.1

Improvements

  • Have zarr use read-only mode (#1360)
  • Use minified geojs (#1362)
  • Configurable item list grid view (#1363)
  • Allow labels in item list view (#1366)
  • Improve cache key guard (#1368)
  • Improve handling dicom files in the working directory (#1370)
  • General handling of skipped levels (#1373)

Changes

  • Update WsiDicomWebClient init call (#1371)
  • Rename DICOMweb AssetstoreImportView (#1372)
  • Harden bioformats shutdown (#1375)

Bug Fixes

  • Default to "None" for the DICOM assetstore limit (#1359)
  • Fix series detection for some bioformats files (#1365, #1367)
  • Fix time comparison in annotation history check (#1369)
  • Fix an issue with apply a frame style to ome tiffs (#1374)
  • Guard against bad tifffile magnification values (#1376)

1.26.0

Features

  • Add a Zarr tile source (including ome.zarr) (#1350)

Improvements

  • Style can specify a dtype of 'source' to maintain the original dtype even when compositing frames (#1326)
  • Max Merge option in Frame Selector (#1306, #1330, #1336)
  • Improve tifffile associated image detection (#1333)
  • Guard against throwing a javascript warning (#1337)
  • Test on Python 3.12 (#1335)
  • Added filtering and limit options to the DICOMweb assetstore (#1327)
  • Support more formats through PIL (#1351)

Changes

  • Prohibit bioformats and vips from reading mrxs directly (#1328)
  • Handle Python 3.12 deprecating utcnow (#1331)
  • Turn down logging about annotation ACLs (#1332)
  • Add scope to the dicomweb import endpoint access decorator (#1347)
  • Drop support for Python 3.6 and Python 3.7 (#1352)
  • Standardize DICOMweb assetstore parameter names/style (#1338)

1.25.0

Features

  • DICOMweb support, including a Girder assetstore (#1303)

Improvements

  • Frame selection presets have configurable defaults (#1301)
  • Improved DICOM metadata extraction (#1305)
  • Support more region shapes in the annotation widget (#1323)

Changes

  • Remove a needless guard around getting an icc profile (#1316)
  • Refactor fetching extra associated images from openslide (#1318)
  • Minor refactor of some of the internals of the tiff source (#1322)

Bug Fixes

  • Guard against potential bad event stream timestamp (#1306)

1.24.0

Features

  • Added a noCache option to opening tile sources (#1296)
  • Added a display/visible value to the annotation schema (#1299)

Improvements

  • Band compositing is shown for single band images (#1300)

Changes

  • Changed the cdn used for the SlideAtlas viewer (#1297)

Bug Fixes

  • Band compositing wasn't working (#1300)

1.23.7

Improvements

  • Add [common] extra_requires (#1288)
  • Add more logic for determining associated images in tiff source (#1291)

Changes

  • Internal metadata get endpoint is now public (#1285)

Bug Fixes

  • Fix an issue with presets and single frame images (#1289)

1.23.6

Improvements

  • Allow scheduling histogram computation in Girder (#1282)

Bug Fixes

  • Closing some styled sources could lead to prematurely closing file handles (#1283)
  • Band order could matter in styles (#1284)

1.23.5

Improvements

  • Better expose ipyleaflet maps from remote files (#1280)

Bug Fixes

  • Fix modifying annotations anonymously (#1279)

1.23.4

Improvements

  • Harden when the bioformats reader claims it has a zero sized image (#1268)
  • Harden internal retiling. This sometimes affected histograms (#1269)
  • Set annotation update user in client so it appears faster (#1270)
  • Harden reading with tifffile on images with bad axes information (#1273)
  • Include projection in metadata (#1277)
  • Better expose ipyleaflet maps (#1278)

Changes

  • Adjust tifffile log level (#1265)
  • Use a newer version of the hammerjs touch events library in Girder (#1266)

Bug Fixes

  • Allow users with only annotation access to edit annotations (#1267)
  • Fix filtering item lists in Girder by multiple phrases (#1272)
  • Style functions after band compositing had a styleIndex value set (#1274)

1.23.3

Improvements

  • Frame selection presets (#1237)
  • Adjust the bounds on non geospatial leaflet maps (#1249)
  • Allow hiding metadata on item pages (#1250)
  • Allow caching rounded histograms (#1252)
  • Add an endpoint to make it easier to replace thumbnails (#1253)
  • Presets from Large Image Configuration file (#1248, #1256)
  • Reduce memory allocation during some region tiling operations (#1261)
  • Reduce memory allocation during some styling operations (#1262, #1263)
  • Added a max_annotation_input_file_length setting (#1264)

Changes

  • Minor code changes based on suggestions from ruff linting (#1257)
  • Reduce pyvips log level (#1259)
  • Don't use dask threads when using nd2 to fetch tiles (#1260)

Bug Fixes

  • Guard against ICC profiles that won't parse (#1245)
  • Fix filter button on item lists (#1251)

1.23.2

Improvements

  • Allow editing metadata in item lists (#1235)
  • Frame selector hotkeys for channel or bands (#1233)
  • More consistency in how local and remote image conversions are performed in Girder (#1238)
  • Support showing data from subkeys in annotation lists (#1241)

Bug Fixes

  • The nd2 reader throws a different exception with JP2 files (#1242)
  • Better guards on ACL migration (#1243)

1.23.1

Improvements

  • Harden reading some nc files (#1218)
  • Increase the cache used for opening directories in the pylibtiff source (#1221)
  • Refactor style locking to increase parallelism (#1224, #1234)
  • Better isGeospatial consistency (#1228)
  • Better channel handling on frame selector (#1222)

Changes

  • Clean up some old slideatlas url references (#1223)
  • Band compositing defaults to visible bands (#1230)

Bug Fixes

  • Pass style to histogram endpoint as json (#1220)
  • Don't show frame controls outside of the geojs viewer (#1226)
  • Fix updating the hidden style field for the frame selector (#1227)
  • Fix a bug calculating some histograms (#1231)
  • Fix showing the frame selector when there is no axis information (#1230)

1.23.0

Features

  • Add tile source bandCount attribute (#1214)
  • Histogram range editor (#1175)

Improvements

  • Harden the nd2 source to allow it to read more files (#1207)
  • Add ipyleaflet representation for JupyterLab (#1065)
  • When restyling a source, share band range calculations (#1215)

Changes

  • Change how extensions and fallback priorities in Girder interact (#1208)
  • Reduce the default max texture size for frame quads (#1212)

Bug Fixes

  • Fix clearing the style threshold cache (#1210)

1.22.4

Bug Fixes

  • Fix a scope issue when deleting metadata (#1203)

1.22.3

Improvements

  • Better DICOM multi-level detection (#1196)
  • Added an internal field to report populated tile levels in some sources (#1197, #1199)
  • Allow specifying an empty style dict (#1200)
  • Allow rounding histogram bin edges and reducing bin counts (#1201)
  • Allow configuring which metadata can be added to items (#1202)

Changes

  • Change how extensions and fallback priorities interact (#1192)
  • Refactor reading the .large_image_config.yaml file on the girder client (#1193)
  • Refactor of the which-folders-have-annotations pipeline (#1194)

Bug Fixes

  • Fix an issue converting multiframe files that vips reads as single frame (#1195)

1.22.2

Changes

  • Alter jpeg priority with the PIL source (#1191)

Bug Fixes

  • Fix NeededInitPrefix namespace errors (#1190)

1.22.1

Improvements

  • Reduce memory use in a mongo aggregation pipeline (#1183)
  • Remove rasterio dep on pyproj (#1182)
  • Filter on specific metadata from item lists (#1184)
  • Add a button to clear the filter on item lists (#1185)
  • Improve JSONDict usage (#1189)

Changes

  • Log more often when importing files or making large images (#1187)

1.22.0

Features

  • Add tile source dtype attribute (#1144)
  • Added rasterio tile source (#1115)

Improvements

  • Parse qptiff and imagej vendor information (#1168)

Changes

  • Remove an unneeded warnings filter (#1172)
  • Fix gdal warning suppression (#1176)

1.21.0

Improvements

  • getPixel method and endpoint now returns rawer values (#1155)
  • Allow more sophisticated filtering on item lists from the Girder client (#1157, #1159, #1161)

Changes

  • Rename tiff exceptions to be better follow python standards (#1162)
  • Require a newer version of girder (#1163)
  • Add manual mongo index names where index names might get too long (#1166)
  • Avoid using $unionWith for annotation searches as it isn't supported everywhere (#1167)

Bug Fixes

  • The deepzoom tile source misreported the format of its tile output (#1158)
  • Guard against errors in a log message (#1164)
  • Fix thumbnail query typo (#1165)

1.20.6

Improvements

  • Store current frame and style in the DOM for easier access (#1136)
  • Convert long girder GET and PUT requests to POSTs (#1137)
  • Propagate more feature events from geojs on annotations (#1147)
  • Add another mime type to those considered to be yaml (#1149)

Changes

  • Add a guard if PIL doesn't support ImageCms (#1132)
  • Allow putting a yaml config file from a Girder API endpoint (#1133)

Bug Fixes

  • Allow clearing the min/max fields of the frame selector (#1130)
  • Fix a bug with caching tiles and styling (#1131)
  • Fix setting minimum values on bands from the frame selector (#1138)
  • Fix a version reference in the source extras_require (#1150)

1.20.5

Improvements

  • Improve access and repr of metadata and style (#1121)

Changes

  • Remove psutil hard dependency (#1127)

1.20.4

Improvements

  • Better cache handling with Etags (#1097)
  • Reduce duplicate computation of slow cached values (#1100)
  • Reconnect to memcached if the connection fails (#1104)
  • Better frame selector on Girder item page (#1086)

Bug Fixes

  • Tile serving can bypass loading a source if it is in memory (#1102)
  • Don't copy style lock when semi-duplicating a tile source (#1114)

Changes

  • On the large image item page, guard against overflow (#1096)
  • Specify version of simplejpeg for older python (#1098)
  • Better expose the Girder yaml config files from python (#1099)

1.20.3

Changes

  • Update dicom source for upstream changes (#1092)

1.20.2

Improvements

  • Allow ICC correction to specify intent (#1066)
  • Make tile sources pickleable (#1071)
  • Extract scale information from more bioformats files (#1074)
  • Speed up validating annotations with user fields (#1078)
  • Speed up validating annotation colors (#1080)
  • Support more complex bands from the test source (#1082)
  • Improve error thrown for invalid schema with multi source (#1083)
  • Support multi-frame PIL sources (#1088)

Bug Fixes

  • The cache could reuse a class inappropriately (#1070)
  • Increase size of annotation json that will be parsed (#1075)
  • Quote ETag tags (#1084)

Changes

  • Stop packaging the slideatlas viewer directly (#1085)

1.20.1

Bug Fixes

  • Fix packaging listing various source requirements (#1064)

1.20.0

Features

  • ICC color profile support (#1037, #1043, #1046, #1048, #1052)

    Note: ICC color profile adjustment to sRGB is the new default. This can be disabled with a config setting or on a per tile source basis.

  • Support arbitrary axes in the test and multi sources (#1054)

Improvements

  • Speed up generating tiles for some multi source files (#1035, #1047)
  • Render item lists faster (#1036)
  • Reduce bioformats source memory usage (#1038)
  • Better pick the largest image from bioformats (#1039, #1040)
  • Speed up some images handled with bioformats (#1063)
  • Cache histogram thresholds (#1042)
  • Add _repr_png_ for Jupyter (#1058)
  • Ignore bogus tifffile resolutions (#1062)

1.19.3

Improvements

  • Speed up rendering Girder item page metadata in some instances (#1031)
  • Speed up opening some multi source files (#1033)
  • Test nd2 source on Python 3.11 (#1034)

Bug Fixes

  • Fix an issue with non-square tiles in the multi source (#1032)

1.19.2

Improvements

  • Better parse svs pixel size in tiff and tifffile sources (#1021)
  • Add geojson to known mime types (#1022)
  • Handle upcoming matplotlib deprecations (#1025)
  • Handle upcoming numpy deprecations (#1026)

1.19.1

Improvements

  • Improve tifffile associated image detection (#1019)

1.19.0

Features

  • Add a frames property to the tile source as a short hand for getting the number of frames from the metadata (#1014)

Improvements

  • Better release file handles (#1007)
  • Support tiny images from the test source (#1013)
  • Speed up loading or parsing some multi sources (#1015)
  • Better scale uint32 images (#1017)

Changes

  • Don't report filename in internal PIL metadata (#1006)

Bug Fixes

  • Better output new vips images as float32 (#1016)
  • Pin tinycolor2 for annotations (#1018)

1.18.0

Features

  • Add a DICOM tile source (#1005)

Improvements

  • Better control dtype on multi sources (#993)
  • Don't use dask threads when using nd2 to fetch tiles (#994)
  • Set mime type for imported girder files (#995)
  • Specify token scopes for girder endpoints (#999, #1000)
  • Set the qptiff extension to prefer the tiff reader (#1003)

Bug Fixes

  • Use open.read rather than download to access files in Girder (#989)
  • Fix nd2 source scale (#990)
  • Do not raise a login request when checking if the user can write annotations (#991)

1.17.3

Changes

  • Test on Python 3.11 (#986)

1.17.2

Bug Fixes

  • Fixed overcaching annotations (#983)
  • Depending on timing, annotations could be inappropriately paged (#984)

1.17.1

Improvements

  • Fallback when server notification streams are turned off (#967)
  • Show and edit yaml and json files using codemirror (#969, #971)
  • Show configured item lists even if there are no large images (#972)
  • Add metadata and annotation metadata search modes to Girder (#974)
  • Add the ability to show annotation metadata in item annotation lists (#977)
  • Support ETAG in annotation rest responses for better browser caching (#978)
  • Thumbnail maintenance endpoints (#980)
  • Handle lif file extensions (#981)

Bug Fixes

  • Fixed an issue with compositing multiple frames (#982)

1.17.0

Features

  • Style functions (#960)
  • Annotation metadata endpoints (#963)

Improvements

  • Reduce rest calls to get settings (#953)
  • Add an endpoint to delete all annotations in a folder (#954)
  • Support relabeling axes in the multi source (#957)
  • Reduce a restriction on reading some tiff files (#958)

Changes

  • Improve internals for handling large annotation elements (#961)

Bug Fixes

  • Harden adding images to the item list (#955)
  • Fix checking user annotation document length (#956)
  • Improve scaled overlays (#959)

1.16.2

Improvements

  • Add a general filter control to item lists (#938, #941)
  • Item list modal dialogs are wider (#939)
  • Improve mimetypes on upload to Girder (#944)

Bug Fixes

  • Fix iterating tiles where the overlap larger than the tile size (#940)
  • Better ignore tiff directories that aren't part of the pyramid (#943)
  • Fix an issue with styling frames in ome tiffs (#945)
  • Better handle large user records in annotation elements (#949)
  • Harden which output formats are supported (#950)

Changes

  • Adjusted rest request logging rates for region endpoint (#948)

1.16.1

Improvements

  • Add annotation access controls at the folder level (#905)
  • Reduce error messages and make canRead results more accurate (#918, #919, #920)
  • Sort columns in item lists based (#925, #928)
  • Better handle tiffs with orientation flags in pil source (#924)
  • Support a bands parameter for the test source (#935)
  • Add annotation creation access flag (#937)

Changes

  • Remove some extraneous values from metadata responses (#932)
  • Reduce some messages to stderr from other libraries (#919)
  • Avoid some warnings in Python 3.10 (#913)

1.16.0

Features

  • Add a tifffile tile source (#885, #896, #903)
  • Added a canReadList method to large_image to show which source can be used (#895)
  • Optionally show metadata in item lists (#901)
  • Register the tile output formats from PIL (#904)
  • Copy tilesource instances to add styles (#894)

Improvements

  • Pass options to the annotationLayer mode (#881)
  • Support more style range options (#883)
  • When converting girder images locally, prefer mount paths (#886)
  • Store the id of job results for easier post-job work (#887)
  • Harden style compositing of partial tiles (#889)
  • Cache read_tiff calls to speed up restyling (#891)
  • Speed up styling by doing less (#892)
  • Add local color definitions (#858)
  • Inheritable config files (#897)
  • Add geospatial property (#818, #908)
  • Improve repr of image bytes (#902)
  • Handle nodata style when specified as a string (#914)

Changes

  • Be more consistent in source class name attribute assignment (#884)

Bug Fixes

  • Fix alpha on GDAL sources with a projection that have an explicit alpha channel (#909, #915)

1.15.1

Improvements

  • When scaling heatmap annotations, use an appropriate value (#878)
  • Use the girder client build time for cache control (#879)

1.15.0

Features

  • Abstract caching and support entrypoints (#876)

Bug Fixes

  • Fix getPixel for single channel sources (#875)

1.14.5

Improvements

  • Speed up ingesting annotations (#870)
  • Reduce the chance of blinking on annotation layers (#871)
  • Reduce updates when modifying annotations (#872)

Bug Fixes

  • Improve annotation upload; support full annotation documents (#869)

1.14.4

Improvements

  • Better handle editing polygons with holes (#857)
  • Support fetching yaml config files (#860)
  • Optionally include bounding box information with annotation queries (#851)
  • Reduce memory copying in the nd2 reader (#853)
  • Add support for boolean annotation operations (#865)
  • Speed up removing all annotations from an item (#863)

Bug Fixes

  • Fix issues with the nd2 reader (#866, #867)
  • Honor the highlight size limit with centroid annotations (#861)

1.14.3

Improvements

  • Support polygon annotations with holes (#844)
  • New annotations get a default name if they do not have one (#843)
  • Explicitly mark vips output as tiled (#848)
  • Change how annotations are uploaded from the UI (#845)

1.14.2

Improvements

  • Improve handling for vips pixel formats in addTile (#838)
  • Add validateCOG method to GDALFileTileSource (#835)

Changes

  • The default logger now uses the null handler (#840)

1.14.1

Changes

  • The sources extra_installs didn't include all sources (#833)

1.14.0

Features

Improvements

  • Handle file URLs with GDAL (#820)
  • Add a hasAlpha flag to image annotations (#823)
  • Allow dict for style (#817)
  • Support drawing multipolygon regions (#832)

Bug Fixes

  • Fix a range check for pixelmap annotations (#815)
  • Harden checking if a PIL Image can be read directly from a file pointer (#822)

Changes

  • Handle PIL deprecations (#824)

Version 1.13.0

Features

  • Add support for ellipse and circle annotations (#811)
  • Support pickle output of numpy arrays for region, thumbnail, and tile_frames endpoints (#812)

Improvements

  • Improve parsing OME TIFF channel names (#806)
  • Improve handling when a file vanishes (#807)
  • Add TileSourceXYZRangeError (#809)

Version 1.12.0

Features

  • Refactor the nd2 source to use the nd2 library (#797)

Improvements

  • Add options to threshold near min/max based on the histogram (#798)
  • Mark vsi extensions as being preferred by the bioformats source (#793)
  • Add mouse events to overlay annotations (#794)
  • Use orjson instead of ujson for annotations (#802)
  • Use simplejpeg for jpeg encoding rather than PIL (#800)
  • Use pylibtiff instead of libtiff (#799)

Bug Fixes

  • Harden annotation ACL migration code (#804)

Version 1.11.2

Improvements

  • Emit events when an overlay annotation layer is created (#787)
  • Minor improvements to setFrameQuad to make it more flexible (#790)
  • Support drawing polygon selection regions (#791)
  • Add some automating options to getTileFramesQuadInfo (#792)

Changes

  • Change how we do a version check (#785)

Version 1.11.1

Improvements

  • Add options to get frame quad info from python (#783)

Version 1.11.0

Improvements

  • Release memory associated with a lazy tile if it has been loaded (#780)

Bug Fixes

  • Tile overlaps on subset regions could be wrong (#781)

Version 1.11.0

Features

  • Initial implementation of multi-source tile source (#764)
  • Added pixelmap annotation element (#767, #776)

Improvements

  • Add more opacity support for image overlays (#761)
  • Make annotation schema more uniform (#763)
  • Improve TileSource class repr (#765)
  • Improve frame slider response with base quads (#771)
  • Default to nearest-neighbor scaling in lossless image conversion (#772)
  • Improve the import time (#775, #777)

Bug Fixes

  • The tile iterator could return excess tiles with overlap (#773)

Version 1.10.0

Features

  • Added image annotation element (#742, #750)
  • Allow the discrete scheme to be used on all tile sources (#755)

Improvements

  • Expand user paths (#746)
  • Work with more matplotlib palettes (#760)

Changes

  • Use importlib rather than pkg_resources internally (#747, #778)

Bug Fixes

  • Fix expanding a style palette with a single named color (#754)

Version 1.9.0

Features

  • Better palette support in styles (#724)
  • Enumerate available palettes (#741)

Improvements

  • The openjpeg girder source handles uploaded files better (#721)
  • Suppress some warnings on Girder and on bioformats (#727)

Bug Fixes

  • Harden detecting file-not-found (#726)
  • Fix the pylibmc dependency for windows (#725)

Version 1.8.11

Changes

  • Reduce extraneous files in large_image distribution (#718)

Version 1.8.10

Changes

  • Improve library dependencies in setup.py (#710, #715)

Version 1.8.9

Changes

  • Include the converter in the girder tasks dependency (#707)

Version 1.8.8

Changes

  • Some log levels have been adjusted (#689, #695)

Version 1.8.7

Improvements

  • Add the image converter to the extra requires (#677)
  • All file tile sources can take either strings or pathlib.Path values (#683)
  • On Girder with read-only assetstores, return results even if caching fails (#684)
  • Handle geospatial files with no explicit projection (#686)

Bug Fixes

  • Fix default properties on annotations when emitted as centroids (#687)

Version 1.8.6

Bug Fixes

  • A change in the Glymur library affected how missing files were handled (#675)

Version 1.8.5

Improvements

  • Better Girder client exports (#674)

Version 1.8.4

Improvements

  • Improve warnings on inefficient tiff files (#668)
  • Add more options to setFrameQuad (#669, #670)
  • Improved concurrency of opening multiple distinct tile sources (#671)

Version 1.8.3

Improvements

  • Better handle item changes with tile caching (#666)

Version 1.8.2

Improvements

  • Make the image viewer control css class more precise (#665)

Version 1.8.1

Improvements

  • Allow GDAL source to read non-geospatial files (#655)
  • Rename Exceptions to Errors, improve file-not-found errors (#657)
  • More robust OME TIFF handling (#660)
  • large-image-converter can exclude specified associated images (#663)
  • Harden on some openslide errors (#664)

Bug Fixes

  • getBandInformation could fail on high bands in some cases (#651)
  • Band information should always be 1-indexed (#659)
  • Use GDAL to subset a non-geospatial image (#662)

Version 1.8.0

Features

Bug Fixes

  • Harden tile source detection (#644)

Version 1.7.1

Improvements

  • More control over associated image caching (#638)
  • Better handling some geospatial bounds (#639)

Version 1.7.0

Features

  • Provide band information on all tile sources (#622, #623)
  • Add a tileFrames method to tile sources and appropriate endpoints to composite regions from multiple frames to a single output image (#629)
  • The test tile source now support frames (#631, #632, #634, #634)

Improvements

  • Better handle TIFFs with missing levels and tiles (#624, #627)
  • Better report inefficient TIFFs (#626)
  • Smoother cross-frame navigation (#635)

Version 1.6.2

Improvements

  • Better reporting of memcached cache (#613)
  • Better handle whether proj string need the +init prefix (#620)

Changes

  • Avoid a bad version of Pillow (#619)

Version 1.6.1

Improvements

  • Allow specifying content disposition filenames in Girder REST endpoints (#604)
  • Improve caching of unstyled tiles when compositing styled types (#605)
  • Speed up compositing some styled tiles (#606, #609)
  • Handle some nd2 files with missing metadata (#608)
  • Allow setting default tile query parameters in the Girder client (#611)

Changes

  • Don't use underscore parameters in image caching keys (#610)

Version 1.6.0

Features

  • Allow setting the cache memory portion and maximum for tilesources (#601)
  • Add heatmap and griddata to the annotation schema (#589)
  • Regions can be output as tiled tiffs with scale or geospatial metadata (#594)

Improvements

  • Cache histogram requests (#598)
  • Allow configuring bioformats ignored extensions (#603)
  • Tilesources always have self.logger for logging (#602)

Changes

  • Use float rather than numpy.float (#600)

Bug Fixes

  • The nd2reader module now requires files to have an nd2 extension (#599)
  • Fix the progress bar when uploading annotations (#589)

Version 1.5.0

Features

  • Allow converting a single frame of a multiframe image (#579)
  • Add a convert endpoint to the Girder plugin (#578)
  • Added support for creating Aperio svs files (#580)
  • Added support for geospatial files with GCP (#588)

Improvements

  • More untiled tiff files are handles by the bioformats reader (#569)
  • Expose a concurrent option on endpoints for converting images (#583)
  • Better concurrency use in image conversion (#587)
  • Handle more OME tiffs (#585, #591)
  • Better memcached error logging (#592)

Changes

  • Exceptions on cached items are no longer within the KeyError context (#584)
  • Simplified thumbnail generation by removing the level-0 option (#593)

Bug Fixes

  • Updated dependencies to work with changes to the nd2reader (#596)

Version 1.4.3

Improvements

  • In Girder, prefer geospatial sources for geospatial data (#564)

Bug Fixes

  • The GDAL source failed when getting band ranges on non-integer data (#565)

Version 1.4.2

Features

  • Added a Girder endpoint to get metadata on associated images (#561)
  • Added an option to try all Girder items for use as large images (#562)

Improvements

  • Reduce gdal warning about projection strings (#559)
  • Don't report needless frame information for some single frame files (#558)
  • Send Backbone events on frame changes in the viewer (#563)

Changes

  • The PIL tilesource priority is slightly higher than other fallback sources (#560)

Bug Fixes

  • Fix compositing when using different frame numbers and partial tiles (#557)

Version 1.4.1

Features

  • Multiple frames can be composited together with the style option (#554, #556)

Improvements

  • Warn when opening an inefficient tiff file (#555)

Version 1.4.0

Features

  • Added a canRead method to the core module (#512)
  • Image conversion supports JPEG 2000 (jp2k) compression (#522)
  • Image conversion can now convert images readable by large_image sources but not by vips (#529)
  • Added an open method to the core module as an alias to getTileSource (#550)
  • Added an open method to each file source module (#550)
  • Numerous improvement to image conversion (#533, #535, #537, #541, #544, #545, #546, #549)

Improvements

  • Better release bioformats resources (#502)
  • Better handling of tiff files with JPEG compression and RGB colorspace (#503)
  • The openjpeg tile source can decode with parallelism (#511)
  • Geospatial tile sources are preferred for geospatial files (#512)
  • Support decoding JP2k compressed tiles in the tiff tile source (#514)
  • Hardened tests against transient timing issues (#532, #536)

Changes

  • The image conversion task has been split into two packages, large_image_converter and large_image_tasks. The tasks module is used with Girder and Girder Worker for converting images and depends on the converter package. The converter package can be used as a stand-alone command line tool (#518)

Bug Fixes

  • Harden updates of the item view after making a large image (#508, #515)
  • Tiles in an unexpected color mode weren't consistently adjusted (#510)
  • Harden trying to add an annotation before the viewer is ready (#547)
  • Correctly report the tile size after resampling in the tileIterator (#538)

Version 1.3.2

Improvements

  • Reduce caching associated images when the parent item changes (#491)
  • Test with Python 3.9 (#493)
  • Add a hideAnnotation function in the client (#490)
  • Expose more resample options for region and histogram endpoints (#496)
  • Improve OME tiff preferred level calculation for OME tiffs with subifds (#496)

Changes

  • Include the annotationType to the annotation conversion method in the client (#490)

Notes

  • This will be the last version to support Python 2.7 and 3.5.

Version 1.3.1

Improvements

  • Include ETag support in some Girder rest requests to reduce data transfer (#488)

Changes

  • Don't let bioformats handle pngs (#487)

Version 1.3.0

Features

  • Added bioformats tile source (#463)
  • Handle OME Tiff files with sub-ifd images (#469)

Improvements

  • Expose more internal metadata (#479)
  • Improve how Philips XML internal metadata is reported (#475)
  • Show aperio version in internal metadata (#474)
  • Add css classes to metadata on the item page (#472)
  • The Girder web client exports the ItemViewWidget (#483)
  • Read more associated images in openslide formats (#486)

Bug Fixes

  • Add a reference to updated time to avoid overcaching associated images (#477)
  • Fix a typo in the settings page (#473)

Version 1.2.0

Features

  • Added endpoints to remove old annotations (#432)
  • Show auxiliary images and metadata on Girder item pages (#457)

Improvements

  • Migrate some database values on start to allow better annotation count reporting (#431)
  • Speed up Girder item list annotation counts (#454)
  • Read more OME Tiff files (#450)
  • Handle subimages of different component depths (#449)
  • When scaling, adjust reported mm_x/y (#441)

Changes

  • Standardize metadata for tile sources with multiple frames (#433)
  • Unify code to check if a tile exists (#462)
  • Switch to ElementTree, as cElementTree is deprecate (#461)
  • Refactor how frame information is added to metadata (#460)
  • Upgrade GeoJS to the latest version (#451)

Bug Fixes

  • Fix a threading issue with multiple styled tiles (#444)
  • Guard against reading tiff tiles outside of the image (#458)
  • Guard against a missing annotation value (#456(
  • Fix handling Girder filenames with multiple periods in a row (#459)
  • Work around a file descriptor issue in cheroot (#465)

Version 1.1.0

Features

  • Added nd2 tile source (#419)

Bug Fixes

  • Fixed an issue where, if users or groups were deleted outside of normal methods, checking an annotation's access would delete its elements (#428)
  • Fix an issue where retiling some tile sources could fail (#427)

Improvements

  • Testing fully with Python 3.8 (#429)

Version 1.0.4

Bug Fixes

  • Fixed an issue where retiling some tile sources could fail (#427)

Version 1.0.3

Features

  • Added gdal tile source (#418)
  • Added a GET large_image/sources endpoint to list versions of all installed sources (#421)

Bug Fixes

  • Fixed an issue where changing the annotation history setting when Girder's settings' cache was enable wouldn't take effect until after a restart (#422)
  • Fixed an issue when used as a Girder plugin and served with a proxy with a prefix path (#423)

Improvements

  • Better handling of imported file formats with adjacent files (#424)

Version 1.0.2

Features

  • Add style options for all tile sources to remap channels and colors (#397)
  • Better support for high bit-depth images (#397)

Improvements

  • Make it easier to load the annotation-enable web viewers (#402)
  • Improved support for z-loops in OMETiff files (#397)
  • Support using Glymur 0.9.1 (#411)

Bug Fixes

  • Fixed an issue where a Girder image conversion task could raise an error about a missing file (#409)

Version 1.0.1

Features

  • Get annotations elements by centroid (#371)
  • Added an annotation badge to the image list (#372)
  • Added openjpeg tile source (#380)
  • Handle different tiff orientations in the tiff tile source (#390)

Improvements

  • Increased the annotation page limit (#367)
  • Increased the annotations response time limit (#389)
  • Improved handling of tiff files with multiple tiled images (#373)
  • Don't reset backbone models on saving existing annotations (#399)

Changes

  • Use girder/large_image_wheels (#384)
  • Changed the mapnik tile source style defaults (#395)

Bug Fixes

  • Fixed the pyproj minimum version (#366)
  • Guard against GDAL open errors (#375)
  • Better handle annotations with zero elements (#398)
  • Sorting tile layers could use a dictionary comparison (#396)

Version 1.0.0

This is a substantial refactor from preliminary versions. Now that setuptools_scm is used for versioning, all merges to master are automatically published to pypi as development versions.

Tile sources are now fully modular and are installed via pip. File extensions and mime type are now used as part of the order that tile sources are checked, giving more control over which tile source is used by default.

The Girder plugin has been divided into the parts requiring annotations and the parts that are only necessary for large images.

Python 3.4 support was dropped.