目录

上一个主题

10.6. RasterIO的其他技术细节

下一个主题

11. [补充] Cartopy 地图绘图

关注公众号


常见问题

  1. Windows下的安装说明
  2. Jupyter免费在线实验环境
  3. 勘误与补充


10.7. 读取和写入栅格文件的“窗口”

从Rasterio 0.3开始,您可以读取和写入栅格文件的“窗口”。此功能允许您处理比计算机RAM大的栅格或并行处理大块的栅格。

Windows 窗口是栅格数据集矩形子集上的视图,在栅格中按列和行的偏移量、宽度和高度(以像素为单位)进行描述。这些可以是int或float。 窗口也可以由numpy数组索引元组或切片对象构造。在这些情况下,只允许使用int值。 如果将height和width关键字参数传递给 from_slices 可以使用相对切片和开放切片。

10.7.1. 读取

下面是读取Rasterio测试文件的256行x 512列子集的示例。

>>> from rasterio.windows import Window
>>> import rasterio
>>> with rasterio.open('RGB.byte.tiff') as src:
>>>     w = src.read(1, window=Window(0, 0, 512, 256))
>>> print(w.shape)
(256, 512)

窗口转换

可以使用数据集的 window_transform 方法:

>>> import rasterio
>>> from rasterio.windows import Window
>>> win = Window(256, 256, 128, 128)
>>> with rasterio.open('RGB.byte.tiff') as src:
>>>      src_transform = src.transform;win_transform = src.window_transform(win)
>>>
>>> print(src_transform)
| 30.00, 0.00, 394185.00|
| 0.00,-30.00, 3469215.00|
| 0.00, 0.00, 1.00|
>>> print(win_transform)
| 30.00, 0.00, 401865.00|
| 0.00,-30.00, 3461535.00|
| 0.00, 0.00, 1.00|

窗口实用程序

基本的联合和交叉操作可用于Windows,以简化在动态创建的窗口中对一系列带区或数据集的操作,使其具有相同的完整范围。

>>> from rasterio import windows
>>> # Full window is ((0, 1000), (0, 500))
>>> window1 = Window(10, 100, 490, 400)
>>> window2 = Window(50, 10, 200, 140)
>>> windows.union(window1, window2)
Window(col_off=10, row_off=10, width=490, height=490)
>>> windows.intersection(window1, window2)
Window(col_off=50, row_off=100, width=200, height=50)

阻碍

栅格数据集通常由多个数据块组成,当窗口与数据集自身的块结构匹配时,窗口读写效率最高。打开文件进行读取时,任何带区的块形状都可以从Block_Shapes属性中获得。

>>> with rasterio.open('RGB.byte.tiff') as src:
>>>      for i, shape in enumerate(src.block_shapes, 1):
>>>             print((i, shape))
(1, (512, 512))
>>> with rasterio.open('RGB.byte.tiff') as src:
>>>      for ji, window in src.block_windows(1):
>>>             print((ji, window))
((0, 0), Window(col_off=0, row_off=0, width=512, height=512))
((0, 1), Window(col_off=512, row_off=0, width=512, height=512))
((0, 2), Window(col_off=1024, row_off=0, width=512, height=512))
((0, 3), Window(col_off=1536, row_off=0, width=512, height=512))
((0, 4), Window(col_off=2048, row_off=0, width=512, height=512))
((0, 5), Window(col_off=2560, row_off=0, width=512, height=512))
((0, 6), Window(col_off=3072, row_off=0, width=512, height=512))
((0, 7), Window(col_off=3584, row_off=0, width=512, height=512))
((0, 8), Window(col_off=4096, row_off=0, width=512, height=512))
((0, 9), Window(col_off=4608, row_off=0, width=512, height=512))
((0, 10), Window(col_off=5120, row_off=0, width=512, height=512))
((0, 11), Window(col_off=5632, row_off=0, width=512, height=512))
((0, 12), Window(col_off=6144, row_off=0, width=512, height=512))
((0, 13), Window(col_off=6656, row_off=0, width=512, height=512))
((0, 14), Window(col_off=7168, row_off=0, width=483, height=512))
((1, 0), Window(col_off=0, row_off=512, width=512, height=512))
((1, 1), Window(col_off=512, row_off=512, width=512, height=512))
((1, 2), Window(col_off=1024, row_off=512, width=512, height=512))
((1, 3), Window(col_off=1536, row_off=512, width=512, height=512))
((1, 4), Window(col_off=2048, row_off=512, width=512, height=512))
((1, 5), Window(col_off=2560, row_off=512, width=512, height=512))
((1, 6), Window(col_off=3072, row_off=512, width=512, height=512))
((1, 7), Window(col_off=3584, row_off=512, width=512, height=512))
((1, 8), Window(col_off=4096, row_off=512, width=512, height=512))
((1, 9), Window(col_off=4608, row_off=512, width=512, height=512))
((1, 10), Window(col_off=5120, row_off=512, width=512, height=512))
((1, 11), Window(col_off=5632, row_off=512, width=512, height=512))
((1, 12), Window(col_off=6144, row_off=512, width=512, height=512))
((1, 13), Window(col_off=6656, row_off=512, width=512, height=512))
((1, 14), Window(col_off=7168, row_off=512, width=483, height=512))
((2, 0), Window(col_off=0, row_off=1024, width=512, height=512))
((2, 1), Window(col_off=512, row_off=1024, width=512, height=512))
((2, 2), Window(col_off=1024, row_off=1024, width=512, height=512))
((2, 3), Window(col_off=1536, row_off=1024, width=512, height=512))
((2, 4), Window(col_off=2048, row_off=1024, width=512, height=512))
((2, 5), Window(col_off=2560, row_off=1024, width=512, height=512))
((2, 6), Window(col_off=3072, row_off=1024, width=512, height=512))
((2, 7), Window(col_off=3584, row_off=1024, width=512, height=512))
((2, 8), Window(col_off=4096, row_off=1024, width=512, height=512))
((2, 9), Window(col_off=4608, row_off=1024, width=512, height=512))
((2, 10), Window(col_off=5120, row_off=1024, width=512, height=512))
((2, 11), Window(col_off=5632, row_off=1024, width=512, height=512))
((2, 12), Window(col_off=6144, row_off=1024, width=512, height=512))
((2, 13), Window(col_off=6656, row_off=1024, width=512, height=512))
((2, 14), Window(col_off=7168, row_off=1024, width=483, height=512))
((3, 0), Window(col_off=0, row_off=1536, width=512, height=512))
((3, 1), Window(col_off=512, row_off=1536, width=512, height=512))
((3, 2), Window(col_off=1024, row_off=1536, width=512, height=512))
((3, 3), Window(col_off=1536, row_off=1536, width=512, height=512))
((3, 4), Window(col_off=2048, row_off=1536, width=512, height=512))
((3, 5), Window(col_off=2560, row_off=1536, width=512, height=512))
((3, 6), Window(col_off=3072, row_off=1536, width=512, height=512))
((3, 7), Window(col_off=3584, row_off=1536, width=512, height=512))
((3, 8), Window(col_off=4096, row_off=1536, width=512, height=512))
((3, 9), Window(col_off=4608, row_off=1536, width=512, height=512))
((3, 10), Window(col_off=5120, row_off=1536, width=512, height=512))
((3, 11), Window(col_off=5632, row_off=1536, width=512, height=512))
((3, 12), Window(col_off=6144, row_off=1536, width=512, height=512))
((3, 13), Window(col_off=6656, row_off=1536, width=512, height=512))
((3, 14), Window(col_off=7168, row_off=1536, width=483, height=512))
((4, 0), Window(col_off=0, row_off=2048, width=512, height=512))
((4, 1), Window(col_off=512, row_off=2048, width=512, height=512))
((4, 2), Window(col_off=1024, row_off=2048, width=512, height=512))
((4, 3), Window(col_off=1536, row_off=2048, width=512, height=512))
((4, 4), Window(col_off=2048, row_off=2048, width=512, height=512))
((4, 5), Window(col_off=2560, row_off=2048, width=512, height=512))
((4, 6), Window(col_off=3072, row_off=2048, width=512, height=512))
((4, 7), Window(col_off=3584, row_off=2048, width=512, height=512))
((4, 8), Window(col_off=4096, row_off=2048, width=512, height=512))
((4, 9), Window(col_off=4608, row_off=2048, width=512, height=512))
((4, 10), Window(col_off=5120, row_off=2048, width=512, height=512))
((4, 11), Window(col_off=5632, row_off=2048, width=512, height=512))
((4, 12), Window(col_off=6144, row_off=2048, width=512, height=512))
((4, 13), Window(col_off=6656, row_off=2048, width=512, height=512))
((4, 14), Window(col_off=7168, row_off=2048, width=483, height=512))
((5, 0), Window(col_off=0, row_off=2560, width=512, height=512))
((5, 1), Window(col_off=512, row_off=2560, width=512, height=512))
((5, 2), Window(col_off=1024, row_off=2560, width=512, height=512))
((5, 3), Window(col_off=1536, row_off=2560, width=512, height=512))
((5, 4), Window(col_off=2048, row_off=2560, width=512, height=512))
((5, 5), Window(col_off=2560, row_off=2560, width=512, height=512))
((5, 6), Window(col_off=3072, row_off=2560, width=512, height=512))
((5, 7), Window(col_off=3584, row_off=2560, width=512, height=512))
((5, 8), Window(col_off=4096, row_off=2560, width=512, height=512))
((5, 9), Window(col_off=4608, row_off=2560, width=512, height=512))
((5, 10), Window(col_off=5120, row_off=2560, width=512, height=512))
((5, 11), Window(col_off=5632, row_off=2560, width=512, height=512))
((5, 12), Window(col_off=6144, row_off=2560, width=512, height=512))
((5, 13), Window(col_off=6656, row_off=2560, width=512, height=512))
((5, 14), Window(col_off=7168, row_off=2560, width=483, height=512))
((6, 0), Window(col_off=0, row_off=3072, width=512, height=512))
((6, 1), Window(col_off=512, row_off=3072, width=512, height=512))
((6, 2), Window(col_off=1024, row_off=3072, width=512, height=512))
((6, 3), Window(col_off=1536, row_off=3072, width=512, height=512))
((6, 4), Window(col_off=2048, row_off=3072, width=512, height=512))
((6, 5), Window(col_off=2560, row_off=3072, width=512, height=512))
((6, 6), Window(col_off=3072, row_off=3072, width=512, height=512))
((6, 7), Window(col_off=3584, row_off=3072, width=512, height=512))
((6, 8), Window(col_off=4096, row_off=3072, width=512, height=512))
((6, 9), Window(col_off=4608, row_off=3072, width=512, height=512))
((6, 10), Window(col_off=5120, row_off=3072, width=512, height=512))
((6, 11), Window(col_off=5632, row_off=3072, width=512, height=512))
((6, 12), Window(col_off=6144, row_off=3072, width=512, height=512))
((6, 13), Window(col_off=6656, row_off=3072, width=512, height=512))
((6, 14), Window(col_off=7168, row_off=3072, width=483, height=512))
((7, 0), Window(col_off=0, row_off=3584, width=512, height=512))
((7, 1), Window(col_off=512, row_off=3584, width=512, height=512))
((7, 2), Window(col_off=1024, row_off=3584, width=512, height=512))
((7, 3), Window(col_off=1536, row_off=3584, width=512, height=512))
((7, 4), Window(col_off=2048, row_off=3584, width=512, height=512))
((7, 5), Window(col_off=2560, row_off=3584, width=512, height=512))
((7, 6), Window(col_off=3072, row_off=3584, width=512, height=512))
((7, 7), Window(col_off=3584, row_off=3584, width=512, height=512))
((7, 8), Window(col_off=4096, row_off=3584, width=512, height=512))
((7, 9), Window(col_off=4608, row_off=3584, width=512, height=512))
((7, 10), Window(col_off=5120, row_off=3584, width=512, height=512))
((7, 11), Window(col_off=5632, row_off=3584, width=512, height=512))
((7, 12), Window(col_off=6144, row_off=3584, width=512, height=512))
((7, 13), Window(col_off=6656, row_off=3584, width=512, height=512))
((7, 14), Window(col_off=7168, row_off=3584, width=483, height=512))
((8, 0), Window(col_off=0, row_off=4096, width=512, height=512))
((8, 1), Window(col_off=512, row_off=4096, width=512, height=512))
((8, 2), Window(col_off=1024, row_off=4096, width=512, height=512))
((8, 3), Window(col_off=1536, row_off=4096, width=512, height=512))
((8, 4), Window(col_off=2048, row_off=4096, width=512, height=512))
((8, 5), Window(col_off=2560, row_off=4096, width=512, height=512))
((8, 6), Window(col_off=3072, row_off=4096, width=512, height=512))
((8, 7), Window(col_off=3584, row_off=4096, width=512, height=512))
((8, 8), Window(col_off=4096, row_off=4096, width=512, height=512))
((8, 9), Window(col_off=4608, row_off=4096, width=512, height=512))
((8, 10), Window(col_off=5120, row_off=4096, width=512, height=512))
((8, 11), Window(col_off=5632, row_off=4096, width=512, height=512))
((8, 12), Window(col_off=6144, row_off=4096, width=512, height=512))
((8, 13), Window(col_off=6656, row_off=4096, width=512, height=512))
((8, 14), Window(col_off=7168, row_off=4096, width=483, height=512))
((9, 0), Window(col_off=0, row_off=4608, width=512, height=512))
((9, 1), Window(col_off=512, row_off=4608, width=512, height=512))
((9, 2), Window(col_off=1024, row_off=4608, width=512, height=512))
((9, 3), Window(col_off=1536, row_off=4608, width=512, height=512))
((9, 4), Window(col_off=2048, row_off=4608, width=512, height=512))
((9, 5), Window(col_off=2560, row_off=4608, width=512, height=512))
((9, 6), Window(col_off=3072, row_off=4608, width=512, height=512))
((9, 7), Window(col_off=3584, row_off=4608, width=512, height=512))
((9, 8), Window(col_off=4096, row_off=4608, width=512, height=512))
((9, 9), Window(col_off=4608, row_off=4608, width=512, height=512))
((9, 10), Window(col_off=5120, row_off=4608, width=512, height=512))
((9, 11), Window(col_off=5632, row_off=4608, width=512, height=512))
((9, 12), Window(col_off=6144, row_off=4608, width=512, height=512))
((9, 13), Window(col_off=6656, row_off=4608, width=512, height=512))
((9, 14), Window(col_off=7168, row_off=4608, width=483, height=512))
((10, 0), Window(col_off=0, row_off=5120, width=512, height=512))
((10, 1), Window(col_off=512, row_off=5120, width=512, height=512))
((10, 2), Window(col_off=1024, row_off=5120, width=512, height=512))
((10, 3), Window(col_off=1536, row_off=5120, width=512, height=512))
((10, 4), Window(col_off=2048, row_off=5120, width=512, height=512))
((10, 5), Window(col_off=2560, row_off=5120, width=512, height=512))
((10, 6), Window(col_off=3072, row_off=5120, width=512, height=512))
((10, 7), Window(col_off=3584, row_off=5120, width=512, height=512))
((10, 8), Window(col_off=4096, row_off=5120, width=512, height=512))
((10, 9), Window(col_off=4608, row_off=5120, width=512, height=512))
((10, 10), Window(col_off=5120, row_off=5120, width=512, height=512))
((10, 11), Window(col_off=5632, row_off=5120, width=512, height=512))
((10, 12), Window(col_off=6144, row_off=5120, width=512, height=512))
((10, 13), Window(col_off=6656, row_off=5120, width=512, height=512))
((10, 14), Window(col_off=7168, row_off=5120, width=483, height=512))
((11, 0), Window(col_off=0, row_off=5632, width=512, height=512))
((11, 1), Window(col_off=512, row_off=5632, width=512, height=512))
((11, 2), Window(col_off=1024, row_off=5632, width=512, height=512))
((11, 3), Window(col_off=1536, row_off=5632, width=512, height=512))
((11, 4), Window(col_off=2048, row_off=5632, width=512, height=512))
((11, 5), Window(col_off=2560, row_off=5632, width=512, height=512))
((11, 6), Window(col_off=3072, row_off=5632, width=512, height=512))
((11, 7), Window(col_off=3584, row_off=5632, width=512, height=512))
((11, 8), Window(col_off=4096, row_off=5632, width=512, height=512))
((11, 9), Window(col_off=4608, row_off=5632, width=512, height=512))
((11, 10), Window(col_off=5120, row_off=5632, width=512, height=512))
((11, 11), Window(col_off=5632, row_off=5632, width=512, height=512))
((11, 12), Window(col_off=6144, row_off=5632, width=512, height=512))
((11, 13), Window(col_off=6656, row_off=5632, width=512, height=512))
((11, 14), Window(col_off=7168, row_off=5632, width=483, height=512))
((12, 0), Window(col_off=0, row_off=6144, width=512, height=512))
((12, 1), Window(col_off=512, row_off=6144, width=512, height=512))
((12, 2), Window(col_off=1024, row_off=6144, width=512, height=512))
((12, 3), Window(col_off=1536, row_off=6144, width=512, height=512))
((12, 4), Window(col_off=2048, row_off=6144, width=512, height=512))
((12, 5), Window(col_off=2560, row_off=6144, width=512, height=512))
((12, 6), Window(col_off=3072, row_off=6144, width=512, height=512))
((12, 7), Window(col_off=3584, row_off=6144, width=512, height=512))
((12, 8), Window(col_off=4096, row_off=6144, width=512, height=512))
((12, 9), Window(col_off=4608, row_off=6144, width=512, height=512))
((12, 10), Window(col_off=5120, row_off=6144, width=512, height=512))
((12, 11), Window(col_off=5632, row_off=6144, width=512, height=512))
((12, 12), Window(col_off=6144, row_off=6144, width=512, height=512))
((12, 13), Window(col_off=6656, row_off=6144, width=512, height=512))
((12, 14), Window(col_off=7168, row_off=6144, width=483, height=512))
((13, 0), Window(col_off=0, row_off=6656, width=512, height=512))
((13, 1), Window(col_off=512, row_off=6656, width=512, height=512))
((13, 2), Window(col_off=1024, row_off=6656, width=512, height=512))
((13, 3), Window(col_off=1536, row_off=6656, width=512, height=512))
((13, 4), Window(col_off=2048, row_off=6656, width=512, height=512))
((13, 5), Window(col_off=2560, row_off=6656, width=512, height=512))
((13, 6), Window(col_off=3072, row_off=6656, width=512, height=512))
((13, 7), Window(col_off=3584, row_off=6656, width=512, height=512))
((13, 8), Window(col_off=4096, row_off=6656, width=512, height=512))
((13, 9), Window(col_off=4608, row_off=6656, width=512, height=512))
((13, 10), Window(col_off=5120, row_off=6656, width=512, height=512))
((13, 11), Window(col_off=5632, row_off=6656, width=512, height=512))
((13, 12), Window(col_off=6144, row_off=6656, width=512, height=512))
((13, 13), Window(col_off=6656, row_off=6656, width=512, height=512))
((13, 14), Window(col_off=7168, row_off=6656, width=483, height=512))
((14, 0), Window(col_off=0, row_off=7168, width=512, height=512))
((14, 1), Window(col_off=512, row_off=7168, width=512, height=512))
((14, 2), Window(col_off=1024, row_off=7168, width=512, height=512))
((14, 3), Window(col_off=1536, row_off=7168, width=512, height=512))
((14, 4), Window(col_off=2048, row_off=7168, width=512, height=512))
((14, 5), Window(col_off=2560, row_off=7168, width=512, height=512))
((14, 6), Window(col_off=3072, row_off=7168, width=512, height=512))
((14, 7), Window(col_off=3584, row_off=7168, width=512, height=512))
((14, 8), Window(col_off=4096, row_off=7168, width=512, height=512))
((14, 9), Window(col_off=4608, row_off=7168, width=512, height=512))
((14, 10), Window(col_off=5120, row_off=7168, width=512, height=512))
((14, 11), Window(col_off=5632, row_off=7168, width=512, height=512))
((14, 12), Window(col_off=6144, row_off=7168, width=512, height=512))
((14, 13), Window(col_off=6656, row_off=7168, width=512, height=512))
((14, 14), Window(col_off=7168, row_off=7168, width=483, height=512))
((15, 0), Window(col_off=0, row_off=7680, width=512, height=121))
((15, 1), Window(col_off=512, row_off=7680, width=512, height=121))
((15, 2), Window(col_off=1024, row_off=7680, width=512, height=121))
((15, 3), Window(col_off=1536, row_off=7680, width=512, height=121))
((15, 4), Window(col_off=2048, row_off=7680, width=512, height=121))
((15, 5), Window(col_off=2560, row_off=7680, width=512, height=121))
((15, 6), Window(col_off=3072, row_off=7680, width=512, height=121))
((15, 7), Window(col_off=3584, row_off=7680, width=512, height=121))
((15, 8), Window(col_off=4096, row_off=7680, width=512, height=121))
((15, 9), Window(col_off=4608, row_off=7680, width=512, height=121))
((15, 10), Window(col_off=5120, row_off=7680, width=512, height=121))
((15, 11), Window(col_off=5632, row_off=7680, width=512, height=121))
((15, 12), Window(col_off=6144, row_off=7680, width=512, height=121))
((15, 13), Window(col_off=6656, row_off=7680, width=512, height=121))
((15, 14), Window(col_off=7168, row_off=7680, width=483, height=121))

块窗口本身可以从块窗口功能中获得。 此函数返回一个迭代器,该迭代器生成一对值。第二个是一个窗口元组,可用于调用 read 或 write . 第一个是数据集所有块中该块的行索引和列索引对。

您可以像这样从一个文件块读取数据窗口。

>>> with rasterio.open('RGB.byte.tiff') as src:
>>>      for ji, window in src.block_windows(1):
>>>             r = src.read(1, window=window)
>>>             print(r.shape)
>>>             break
>>>
(512, 512)

培育良好的文件具有相同的阻塞带,但gdal允许使用其他方法,最好在代码中测试这种假设。

>>> with rasterio.open('RGB.byte.tiff') as src:
>>>     assert len(set(src.block_shapes)) == 1
>>>     for ji, window in src.block_windows(1):
>>>             b, g, r = (src.read(k, window=window) for k in (1, 1, 1))
>>>             print((ji, r.shape, g.shape, b.shape))
>>>             break
((0, 0), (512, 512), (512, 512), (512, 512))

Block_Shapes属性是块形状和 set(src.block_shapes) 为您提供一组独特的形状。断言集合中只有一个项实际上与断言所有带区都具有相同的块结构相同。如果有,您可以对每个窗口使用相同的窗口。

10.7.2. 读取数据集

数据集对象提供对栅格数据文件的读、写和写访问,并通过调用 rasterio.open() . 这个函数模仿了python的内置 open() 它返回的数据集对象是模仿python file 物体。

>>> import rasterio
>>> src = rasterio.open('444.tiff')
>>> src
/usr/lib/python3/dist-packages/rasterio/__init__.py:216: NotGeoreferencedWarning: Dataset has no geotransform set. The identity matrix may be returned.
  s = DatasetReader(path, driver=driver, **kwargs)
<open DatasetReader name='444.tiff' mode='r'>
>>> src.name
'444.tiff'
>>> src.mode
'r'
>>> src.closed
False

数据集通常有一个或多个带(或层)。按照gdal约定,这些索引从数字1开始。文件的第一个波段可以这样读取:

>>> array = src.read(1)
>>> array.shape
(300, 500)

返回的对象是二维numpy ndarray。该数组在python提示下的表示是一个摘要;用于测试的rasterio geotiff文件在角中有0个值,但在其他地方有非零的值。

>>> from matplotlib import pyplot
>>> pyplot.imshow(array, cmap='pink')
>>>
>>> pyplot.show()
_images/rasterio-window_26_0.png

输入数据集的所有带区都可以读取为三维数据数组,而不是读取单个带区。注意,3个轴的解释是 (bands, rows, columns) . 见 图像处理软件 有关如何转换为某些软件预期的顺序的详细信息。

>>> array = src.read()
>>> array.shape
(3, 300, 500)

要读取数据集较小的块,请参阅 开窗读写 .

数据集所有带区的索引、numpy数据类型和nodata值都可以从 indexes , dtypes 和 nodatavals 属性。

>>> for i, dtype, nodataval in zip(src.indexes, src.dtypes, src.nodatavals):
>>>      print(i, dtype, nodataval)
1 uint8 None
2 uint8 None
3 uint8 None

10.7.3. 阅读标签

标记属于命名空间。要从默认命名空间获取数据集标记的副本,请调用 tags() 没有参数。

>>> import rasterio
>>> src = rasterio.open("RGB.byte.tiff")
>>> src.tags()
{'AREA_OR_POINT': 'Point'}

数据集的带区也可能有标记。以下是第一个带区的默认命名空间中的标记,使用的位置带区索引参数访问 tags() .

>>> src.tags(ns='IMAGE_STRUCTURE')
{'COMPRESSION': 'DEFLATE', 'INTERLEAVE': 'BAND'}