tiff2fsspec.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/usr/bin/env python3
  2. # tifffile/tiff2fsspec.py
  3. """Write fsspec ReferenceFileSystem for TIFF file.
  4. positional arguments:
  5. tifffile path to the local TIFF input file
  6. url remote URL of TIFF file without file name
  7. optional arguments:
  8. -h, --help show this help message and exit
  9. --out OUT path to the JSON output file
  10. --series SERIES index of series in file
  11. --level LEVEL index of level in series
  12. --key KEY index of page in file or series
  13. --chunkmode CHUNKMODE
  14. mode used for chunking {None, pages}
  15. For example:
  16. ``tiff2fsspec ./test.ome.tif https://server.com/path/``
  17. """
  18. from __future__ import annotations
  19. import argparse
  20. try:
  21. from .tifffile import tiff2fsspec
  22. except ImportError:
  23. try:
  24. from tifffile.tifffile import tiff2fsspec
  25. except ImportError:
  26. from tifffile import tiff2fsspec # noqa: PLW0406
  27. def main() -> int:
  28. """Tiff2fsspec command line usage main function."""
  29. parser = argparse.ArgumentParser(
  30. 'tiff2fsspec',
  31. description='Write fsspec ReferenceFileSystem for TIFF file.',
  32. )
  33. parser.add_argument(
  34. 'tifffile', type=str, help='path to the local TIFF input file'
  35. )
  36. parser.add_argument(
  37. 'url', type=str, help='remote URL of TIFF file without file name'
  38. )
  39. parser.add_argument(
  40. '--out', type=str, default=None, help='path to the JSON output file'
  41. )
  42. parser.add_argument(
  43. '--series', type=int, default=None, help='index of series in file'
  44. )
  45. parser.add_argument(
  46. '--level', type=int, default=None, help='index of level in series'
  47. )
  48. parser.add_argument(
  49. '--key', type=int, default=None, help='index of page in file or series'
  50. )
  51. parser.add_argument(
  52. '--chunkmode',
  53. type=int,
  54. default=None,
  55. help='mode used for chunking {None, pages}',
  56. )
  57. parser.add_argument(
  58. '--ver', type=int, default=None, help='version of ReferenceFileSystem'
  59. )
  60. args = parser.parse_args()
  61. tiff2fsspec(
  62. args.tifffile,
  63. args.url,
  64. out=args.out,
  65. key=args.key,
  66. series=args.series,
  67. level=args.level,
  68. chunkmode=args.chunkmode,
  69. version=args.ver,
  70. )
  71. return 0
  72. if __name__ == '__main__':
  73. import sys
  74. sys.exit(main())