From 92ea1ab34b43f4e2648372d2bdd6c054f6c1e7de Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Mon, 29 Aug 2022 11:55:28 +0200 Subject: [PATCH 01/23] update rasterio requirement (#517) * update rasterio requirement * remove python 3.7 * update changelog --- .github/workflows/ci.yml | 30 +++++++++++++++--------------- CHANGES.md | 7 +++++++ pyproject.toml | 6 +++--- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7cfd56ed..5938cbb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.7', '3.8', '3.9'] + python-version: ['3.8', '3.9', '3.10'] steps: - uses: actions/checkout@v2 @@ -73,20 +73,20 @@ jobs: - name: Run Benchmark run: python -m pytest --benchmark-only --benchmark-autosave --benchmark-columns 'min, max, mean, median' --benchmark-sort 'min' --benchmark-json output.json - - name: Store and Compare benchmark result - uses: benchmark-action/github-action-benchmark@v1 - with: - name: rio-tiler Benchmarks - tool: 'pytest' - output-file-path: output.json - alert-threshold: '130%' - comment-on-alert: true - fail-on-alert: true - # GitHub API token to make a commit comment - github-token: ${{ secrets.GITHUB_TOKEN }} - # Make a commit on `gh-pages` only if master - auto-push: ${{ github.ref == 'refs/heads/master' }} - benchmark-data-dir-path: benchmarks + # - name: Store and Compare benchmark result + # uses: benchmark-action/github-action-benchmark@v1 + # with: + # name: rio-tiler Benchmarks + # tool: 'pytest' + # output-file-path: output.json + # alert-threshold: '130%' + # comment-on-alert: true + # fail-on-alert: true + # # GitHub API token to make a commit comment + # github-token: ${{ secrets.GITHUB_TOKEN }} + # # Make a commit on `gh-pages` only if master + # auto-push: ${{ github.ref == 'refs/heads/master' }} + # benchmark-data-dir-path: benchmarks publish: needs: [tests] diff --git a/CHANGES.md b/CHANGES.md index e207d274..26f44ca6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,11 @@ +# 4.0.0 (TBD) + +**breaking changes** + +* remove python 3.7 support +* update rasterio requirement to `>=1.3` to allow python 3.10 support + # 3.1.6 (2022-07-22) * Hide `NotGeoreferencedWarning` warnings in `utils.render` and `utils.resize_array` diff --git a/pyproject.toml b/pyproject.toml index 66740332..6856d248 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "rio-tiler" description = "User friendly Rasterio plugin to read raster datasets." readme = "README.md" -requires-python = ">=3.7" +requires-python = ">=3.8" license = {file = "LICENSE"} authors = [ {name = "Vincent Sarago", email = "vincent@developmentseed.com"}, @@ -12,9 +12,9 @@ classifiers = [ "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Topic :: Scientific/Engineering :: GIS", ] dynamic = ["version"] @@ -28,7 +28,7 @@ dependencies = [ "morecantile>=3.1,<4.0", "pydantic", "pystac>=0.5.4", - "rasterio>=1.1.7", + "rasterio>=1.3.0", "rio-color", "importlib_resources>=1.1.0; python_version < '3.9'", ] From 15df33a214b602aa1c07a0ce71d9887107e6e3cd Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Mon, 29 Aug 2022 15:39:41 +0200 Subject: [PATCH 02/23] reader functions returns ImageData object (#515) * reader functions returns ImageData object * update changelog --- CHANGES.md | 1 + rio_tiler/io/cogeo.py | 47 ++++++++++++++++++++---------------------- rio_tiler/reader.py | 37 +++++++++++++++++++++------------ tests/test_io_cogeo.py | 5 ++++- 4 files changed, 51 insertions(+), 39 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 26f44ca6..1a9dbbf8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ * remove python 3.7 support * update rasterio requirement to `>=1.3` to allow python 3.10 support +* `rio_tiler.readers.read()`, `rio_tiler.readers.part()`, `rio_tiler.readers.preview()` now return a ImageData object # 3.1.6 (2022-07-22) diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index 6bd9aa07..2547423b 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -15,7 +15,7 @@ from rasterio.io import DatasetReader, DatasetWriter, MemoryFile from rasterio.rio.overview import get_maximum_overview_level from rasterio.vrt import WarpedVRT -from rasterio.warp import calculate_default_transform, transform_bounds +from rasterio.warp import calculate_default_transform from .. import reader from ..constants import WEB_MERCATOR_TMS, WGS84_CRS @@ -414,7 +414,7 @@ def part( if not dst_crs: dst_crs = bounds_crs - data, mask = reader.part( + img = reader.part( self.dataset, bbox, max_size=max_size, @@ -429,19 +429,16 @@ def part( if expression and indexes: blocks = get_expression_blocks(expression) bands = [f"b{bidx}" for bidx in indexes] - data = apply_expression(blocks, bands, data) - - if bounds_crs and bounds_crs != dst_crs: - bbox = transform_bounds(bounds_crs, dst_crs, *bbox, densify_pts=21) + img.data = apply_expression(blocks, bands, img.data) return ImageData( - data, - mask, - bounds=bbox, - crs=dst_crs, + img.data, + img.mask, + bounds=img.bounds, + crs=img.crs, assets=[self.input], band_names=get_bands_names( - indexes=indexes, expression=expression, count=data.shape[0] + indexes=indexes, expression=expression, count=img.count ), ) @@ -482,7 +479,7 @@ def preview( if expression: indexes = parse_expression(expression) - data, mask = reader.preview( + img = reader.preview( self.dataset, indexes=indexes, max_size=max_size, @@ -494,16 +491,16 @@ def preview( if expression and indexes: blocks = get_expression_blocks(expression) bands = [f"b{bidx}" for bidx in indexes] - data = apply_expression(blocks, bands, data) + img.data = apply_expression(blocks, bands, img.data) return ImageData( - data, - mask, - bounds=self.bounds, - crs=self.crs, + img.data, + img.mask, + bounds=img.bounds, + crs=img.crs, assets=[self.input], band_names=get_bands_names( - indexes=indexes, expression=expression, count=data.shape[0] + indexes=indexes, expression=expression, count=img.count ), ) @@ -638,21 +635,21 @@ def read( if expression: indexes = parse_expression(expression) - data, mask = reader.read(self.dataset, indexes=indexes, **kwargs) + img = reader.read(self.dataset, indexes=indexes, **kwargs) if expression and indexes: blocks = get_expression_blocks(expression) bands = [f"b{bidx}" for bidx in indexes] - data = apply_expression(blocks, bands, data) + img.data = apply_expression(blocks, bands, img.data) return ImageData( - data, - mask, - bounds=self.bounds, - crs=self.crs, + img.data, + img.mask, + bounds=img.bounds, + crs=img.crs, assets=[self.input], band_names=get_bands_names( - indexes=indexes, expression=expression, count=data.shape[0] + indexes=indexes, expression=expression, count=img.count ), ) diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index b75fc8bc..7582e92d 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -16,6 +16,7 @@ from .constants import WGS84_CRS from .errors import AlphaBandWarning, PointOutsideBounds, TileOutsideBounds +from .models import ImageData from .types import BBox, DataMaskType, Indexes, NoData from .utils import _requested_tile_aligned_with_internal_tile as is_aligned from .utils import get_vrt_transform, has_alpha_band, non_alpha_indexes @@ -35,7 +36,7 @@ def read( post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] ] = None, -) -> DataMaskType: +) -> ImageData: """Low level read function. Args: @@ -77,6 +78,11 @@ def read( vrt_params.update(vrt_options) with WarpedVRT(src_dst, **vrt_params) as vrt: + if not window: + window = windows.Window( + col_off=0, row_off=0, width=vrt.width, height=vrt.height + ) + if ColorInterp.alpha in vrt.colorinterp: indexes = tuple(indexes) + (vrt.colorinterp.index(ColorInterp.alpha) + 1,) data = vrt.read( @@ -100,18 +106,23 @@ def read( resampling=Resampling[resampling_method], ) - if force_binary_mask: - mask = numpy.where(mask != 0, numpy.uint8(255), numpy.uint8(0)) + if force_binary_mask: + mask = numpy.where(mask != 0, numpy.uint8(255), numpy.uint8(0)) - if unscale: - data = data.astype("float32", casting="unsafe") - numpy.multiply(data, src_dst.scales[0], out=data, casting="unsafe") - numpy.add(data, src_dst.offsets[0], out=data, casting="unsafe") + if unscale: + data = data.astype("float32", casting="unsafe") + numpy.multiply(data, src_dst.scales[0], out=data, casting="unsafe") + numpy.add(data, src_dst.offsets[0], out=data, casting="unsafe") - if post_process: - data, mask = post_process(data, mask) + if post_process: + data, mask = post_process(data, mask) - return data, mask + return ImageData( + data, + mask, + bounds=windows.bounds(window, vrt.transform), + crs=vrt.crs, + ) def part( @@ -126,7 +137,7 @@ def part( vrt_options: Optional[Dict] = None, max_size: Optional[int] = None, **kwargs: Any, -) -> DataMaskType: +) -> ImageData: """Read part of a dataset. Args: @@ -134,7 +145,7 @@ def part( bounds (tuple): Output bounds (left, bottom, right, top). By default the coordinates are considered to be in either the dataset CRS or in the `dst_crs` if set. Use `bounds_crs` to set a specific CRS. height (int, optional): Output height of the array. width (int, optional): Output width of the array. - padding (int, optional): Padding to apply to each edge of the tile when retrieving data to assist in reducing resampling artefacts along edges. Defaults to `0`. + padding (int, optional): Padding to apply to each bbox edge. Helps reduce resampling artefacts along edges. Defaults to `0`. dst_crs (rasterio.crs.CRS, optional): Target coordinate reference system. bounds_crs (rasterio.crs.CRS, optional): Overwrite bounds Coordinate Reference System. minimum_overlap (float, optional): Minimum % overlap for which to raise an error with dataset not covering enough of the tile. @@ -234,7 +245,7 @@ def preview( height: int = None, width: int = None, **kwargs: Any, -) -> DataMaskType: +) -> ImageData: """Read decimated version of a dataset. Args: diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 8515c101..3df6b550 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -636,9 +636,12 @@ def test_imageData_output(): img = cog.preview(max_size=128) assert img.data.shape == (1, 128, 128) - assert img.bounds == cog.dataset.bounds meta = parse_img(img.render(img_format="GTiff")) assert meta["crs"] == cog.dataset.crs + # Bounds should be the same but VRT might introduce some rounding issue + for x, y in zip(img.bounds, cog.dataset.bounds): + assert round(x, 5) == round(y, 5) + # assert img.bounds == cog.dataset.bounds def test_feature_valid(): From 639e2cdb9cd10b06ee17cea968454165deec8297 Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Tue, 30 Aug 2022 01:04:09 -0600 Subject: [PATCH 03/23] remove async base reader (#520) --- rio_tiler/io/__init__.py | 2 +- rio_tiler/io/base.py | 112 +-------------------------- tests/test_io_async.py | 161 --------------------------------------- 3 files changed, 2 insertions(+), 273 deletions(-) delete mode 100644 tests/test_io_async.py diff --git a/rio_tiler/io/__init__.py b/rio_tiler/io/__init__.py index 2ccea3ad..45adc19b 100644 --- a/rio_tiler/io/__init__.py +++ b/rio_tiler/io/__init__.py @@ -1,5 +1,5 @@ """rio-tiler.io""" -from .base import AsyncBaseReader, BaseReader, MultiBandReader, MultiBaseReader # noqa +from .base import BaseReader, MultiBandReader, MultiBaseReader # noqa from .cogeo import COGReader, GCPCOGReader # noqa from .stac import STACReader # noqa diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index 37fdf2f6..7d85d8e7 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -3,7 +3,7 @@ import abc import re import warnings -from typing import Any, Coroutine, Dict, List, Optional, Sequence, Tuple, Type, Union +from typing import Any, Dict, List, Optional, Sequence, Tuple, Type, Union import attr import numpy @@ -226,116 +226,6 @@ def feature(self, shape: Dict, **kwargs: Any) -> ImageData: ... -@attr.s -class AsyncBaseReader(SpatialMixin, metaclass=abc.ABCMeta): - """Rio-tiler.io AsyncBaseReader.""" - - input: Any = attr.ib() - tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - - async def __aenter__(self): - """Support using with Context Managers.""" - return self - - async def __aexit__(self, exc_type, exc_value, traceback): - """Support using with Context Managers.""" - pass - - @abc.abstractmethod - async def info(self) -> Coroutine[Any, Any, Info]: - """Return Dataset's info. - - Returns: - rio_tile.models.Info: Dataset info. - - """ - ... - - @abc.abstractmethod - async def statistics( - self, - **kwargs: Any, - ) -> Coroutine[Any, Any, Dict[str, BandStatistics]]: - """Return bands statistics from a dataset. - - Returns: - Dict[str, rio_tiler.models.BandStatistics]: bands statistics. - - """ - ... - - @abc.abstractmethod - async def tile( - self, tile_x: int, tile_y: int, tile_z: int, **kwargs: Any - ) -> Coroutine[Any, Any, ImageData]: - """Read a Map tile from the Dataset. - - Args: - tile_x (int): Tile's horizontal index. - tile_y (int): Tile's vertical index. - tile_z (int): Tile's zoom level index. - - Returns: - rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. - - """ - ... - - @abc.abstractmethod - async def part(self, bbox: BBox, **kwargs: Any) -> Coroutine[Any, Any, ImageData]: - """Read a Part of a Dataset. - - Args: - bbox (tuple): Output bounds (left, bottom, right, top) in target crs. - - Returns: - rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. - - """ - ... - - @abc.abstractmethod - async def preview(self, **kwargs: Any) -> Coroutine[Any, Any, ImageData]: - """Read a preview of a Dataset. - - Returns: - rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. - - """ - ... - - @abc.abstractmethod - async def point( - self, lon: float, lat: float, **kwargs: Any - ) -> Coroutine[Any, Any, List]: - """Read a value from a Dataset. - - Args: - lon (float): Longitude. - lat (float): Latitude. - - Returns: - list: Pixel value per bands/assets. - - """ - ... - - @abc.abstractmethod - async def feature( - self, shape: Dict, **kwargs: Any - ) -> Coroutine[Any, Any, ImageData]: - """Read a Dataset for a GeoJSON feature. - - Args: - shape (dict): Valid GeoJSON feature. - - Returns: - rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. - - """ - ... - - @attr.s class MultiBaseReader(SpatialMixin, metaclass=abc.ABCMeta): """MultiBaseReader Reader. diff --git a/tests/test_io_async.py b/tests/test_io_async.py deleted file mode 100644 index 3f982cb5..00000000 --- a/tests/test_io_async.py +++ /dev/null @@ -1,161 +0,0 @@ -"""Test Async BaseClass.""" - -import asyncio -import functools -import os -import typing -from typing import Any, Coroutine, Dict, List, Type - -import attr -import morecantile -import pytest - -from rio_tiler.constants import WEB_MERCATOR_TMS -from rio_tiler.io import AsyncBaseReader, COGReader -from rio_tiler.models import BandStatistics, ImageData, Info -from rio_tiler.types import BBox - -try: - import contextvars # Python 3.7+ only or via contextvars backport. -except ImportError: # pragma: no cover - contextvars = None # type: ignore - -T = typing.TypeVar("T") - -PREFIX = os.path.join(os.path.dirname(__file__), "fixtures") -COGEO = os.path.join(PREFIX, "cog_nodata.tif") - - -async def run_in_threadpool( - func: typing.Callable[..., T], *args: typing.Any, **kwargs: typing.Any -) -> T: - """Mock Sync function for Async call.Any - - Code from https://github.com/encode/starlette/blob/master/starlette/concurrency.py - """ - loop = asyncio.get_event_loop() - if contextvars is not None: # pragma: no cover - # Ensure we run in the same context - child = functools.partial(func, *args, **kwargs) - context = contextvars.copy_context() - func = context.run - args = (child,) - elif kwargs: # pragma: no cover - # loop.run_in_executor doesn't accept 'kwargs', so bind them in here - func = functools.partial(func, **kwargs) - return await loop.run_in_executor(None, func, *args) - - -@attr.s -class AsyncCOGReader(AsyncBaseReader): - - input: Type[COGReader] = attr.ib() - tms: morecantile.TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - - def __attrs_post_init__(self): - """Update dataset info.""" - self.bounds = self.input.bounds - self.crs = self.input.crs - self.minzoom = self.input.minzoom - self.maxzoom = self.input.maxzoom - - async def info(self) -> Coroutine[Any, Any, Info]: - """Return Dataset's info.""" - return await run_in_threadpool(self.input.info) # type: ignore - - async def statistics( - self, **kwargs: Any - ) -> Coroutine[Any, Any, Dict[str, BandStatistics]]: - """Return Dataset's statistics.""" - return await run_in_threadpool(self.input.statistics, **kwargs) # type: ignore - - async def tile( - self, tile_x: int, tile_y: int, tile_z: int, **kwargs: Any - ) -> Coroutine[Any, Any, ImageData]: - """Read a Map tile from the Dataset.""" - return await run_in_threadpool( - self.input.tile, tile_x, tile_y, tile_z, **kwargs # type: ignore - ) - - async def part(self, bbox: BBox, **kwargs: Any) -> Coroutine[Any, Any, ImageData]: - """Read a Part of a Dataset.""" - return await run_in_threadpool(self.input.part, bbox, **kwargs) # type: ignore - - async def preview(self, **kwargs: Any) -> Coroutine[Any, Any, ImageData]: - """Return a preview of a Dataset.""" - return await run_in_threadpool(self.input.preview, **kwargs) # type: ignore - - async def point( - self, lon: float, lat: float, **kwargs: Any - ) -> Coroutine[Any, Any, List]: - """Read a value from a Dataset.""" - return await run_in_threadpool(self.input.point, lon, lat, **kwargs) # type: ignore - - async def feature( - self, shape: Dict, **kwargs: Any - ) -> Coroutine[Any, Any, ImageData]: - """Read a Dataset for a GeoJSON feature""" - return await run_in_threadpool(self.input.feature, shape, **kwargs) # type: ignore - - -@pytest.mark.asyncio -async def test_async(): - dataset = COGReader(COGEO) - - async with AsyncCOGReader(dataset) as cog: - info = await cog.info() - assert info == dataset.info() - - assert cog.minzoom == 5 - assert cog.maxzoom == 9 - - stat = await cog.statistics() - assert stat == dataset.statistics() - - data, mask = await cog.tile(43, 24, 7) - assert data.shape == (1, 256, 256) - assert mask.all() - - lon = -56.624124590533825 - lat = 73.52687881825946 - pts = await cog.point(lon, lat) - assert len(pts) == 1 - - bbox = ( - -56.624124590533825, - 73.50183615350426, - -56.530950796449005, - 73.52687881825946, - ) - data, mask = await cog.part(bbox) - assert data.shape == (1, 11, 40) - - data, mask = await cog.preview(max_size=128) - assert data.shape == (1, 128, 128) - - feature = { - "type": "Feature", - "properties": {}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [-56.4697265625, 74.17307693616263], - [-57.667236328125, 73.53462847039683], - [-57.59033203125, 73.13451013251789], - [-56.195068359375, 72.94865294642922], - [-54.964599609375, 72.96797135377102], - [-53.887939453125, 73.84623016391944], - [-53.97583007812499, 74.0165183926664], - [-54.73388671875, 74.23289305339864], - [-55.54687499999999, 74.2269213699517], - [-56.129150390625, 74.21497138945001], - [-56.2060546875, 74.21198251594369], - [-56.4697265625, 74.17307693616263], - ] - ], - }, - } - - img = await cog.feature(feature, max_size=1024) - assert img.data.shape == (1, 348, 1024) From 75e450085f548ed8eee557169c5b9a7a108efbbb Mon Sep 17 00:00:00 2001 From: Jeff Albrecht Date: Tue, 30 Aug 2022 04:41:39 -0600 Subject: [PATCH 04/23] remove gcp reader (#521) Co-authored-by: vincentsarago --- rio_tiler/io/__init__.py | 2 +- tests/test_io_cogeo.py | 55 ++-------------------------------------- 2 files changed, 3 insertions(+), 54 deletions(-) diff --git a/rio_tiler/io/__init__.py b/rio_tiler/io/__init__.py index 45adc19b..af59b660 100644 --- a/rio_tiler/io/__init__.py +++ b/rio_tiler/io/__init__.py @@ -1,5 +1,5 @@ """rio-tiler.io""" from .base import BaseReader, MultiBandReader, MultiBaseReader # noqa -from .cogeo import COGReader, GCPCOGReader # noqa +from .cogeo import COGReader # noqa from .stac import STACReader # noqa diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 3df6b550..848ac1e7 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -12,7 +12,7 @@ from morecantile import TileMatrixSet from pyproj import CRS from rasterio import transform -from rasterio.io import DatasetReader, MemoryFile +from rasterio.io import MemoryFile from rasterio.vrt import WarpedVRT from rasterio.warp import transform_bounds @@ -24,7 +24,7 @@ NoOverviewWarning, TileOutsideBounds, ) -from rio_tiler.io import COGReader, GCPCOGReader +from rio_tiler.io import COGReader from rio_tiler.models import BandStatistics PREFIX = os.path.join(os.path.dirname(__file__), "fixtures") @@ -452,57 +452,6 @@ def callback(data, mask): def test_cog_with_internal_gcps(): """Make sure file gets re-projected using gcps.""" - with pytest.warns(DeprecationWarning): - with GCPCOGReader(COG_GCPS, nodata=0) as cog: - assert cog.bounds - assert cog.nodata == 0 - assert isinstance(cog.src_dataset, DatasetReader) - assert isinstance(cog.dataset, WarpedVRT) - - assert cog.minzoom == 7 - assert cog.maxzoom == 10 - - metadata = cog.info() - assert len(metadata.band_metadata) == 1 - assert metadata.band_descriptions == [("1", "")] - - tile_z = 8 - tile_x = 183 - tile_y = 120 - data, mask = cog.tile(tile_x, tile_y, tile_z) - assert data.shape == (1, 256, 256) - assert mask.shape == (256, 256) - - # https://github.com/rasterio/rasterio/issues/2092 - # assert cog.dataset.closed - assert cog.src_dataset.closed - - with pytest.warns(DeprecationWarning): - with rasterio.open(COG_GCPS) as dst: - with GCPCOGReader(None, src_dataset=dst, nodata=0) as cog: - assert cog.bounds - assert cog.nodata == 0 - assert isinstance(cog.src_dataset, DatasetReader) - assert isinstance(cog.dataset, WarpedVRT) - - assert cog.minzoom == 7 - assert cog.maxzoom == 10 - - metadata = cog.info() - assert len(metadata.band_metadata) == 1 - assert metadata.band_descriptions == [("1", "")] - - tile_z = 8 - tile_x = 183 - tile_y = 120 - data, mask = cog.tile(tile_x, tile_y, tile_z) - assert data.shape == (1, 256, 256) - assert mask.shape == (256, 256) - # https://github.com/rasterio/rasterio/issues/2092 - # assert cog.dataset.closed - assert not cog.src_dataset.closed - assert cog.src_dataset.closed - with COGReader(COG_GCPS, nodata=0) as cog: assert cog.bounds assert cog.nodata == 0 From 101f8cecad7feb30856f9dbab9100a75ab9b5473 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Wed, 31 Aug 2022 22:20:11 +0200 Subject: [PATCH 05/23] avoid warning in tests --- tests/test_io_cogeo.py | 54 +++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 848ac1e7..857a6628 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -1,6 +1,7 @@ """tests rio_tiler.io.cogeo.COGReader""" import os +import warnings from io import BytesIO from typing import Any, Dict @@ -812,15 +813,18 @@ def test_no_overviews(): def test_nonearthbody(): """COGReader should work with non-earth dataset.""" + EUROPA_SPHERE = CRS.from_proj4("+proj=longlat +R=1560800 +no_defs") + with pytest.warns(UserWarning): with COGReader(COG_EUROPA) as cog: assert cog.minzoom == 0 assert cog.maxzoom == 24 - with pytest.warns(None) as warnings: - with COGReader(COG_EUROPA) as cog: + # Warns because of zoom level in WebMercator can't be defined + with pytest.warns(UserWarning) as warnings: + with COGReader(COG_EUROPA, geographic_crs=EUROPA_SPHERE) as cog: assert cog.info() - assert len(warnings) == 2 + assert len(warnings) == 1 img = cog.read() assert numpy.array_equal(img.data, cog.dataset.read(indexes=(1,))) @@ -838,27 +842,27 @@ def test_nonearthbody(): lat = (cog.bounds[1] + cog.bounds[3]) / 2 assert cog.point(lon, lat, coord_crs=cog.crs)[0] is not None - europa_crs = CRS.from_authority("ESRI", 104915) - tms = TileMatrixSet.custom( - crs=europa_crs, - extent=europa_crs.area_of_use.bounds, - matrix_scale=[2, 1], - ) - with pytest.warns(None) as warnings: - with COGReader(COG_EUROPA, tms=tms) as cog: - assert cog.minzoom == 4 - assert cog.maxzoom == 6 + with pytest.warns(UserWarning) as warnings: + europa_crs = CRS.from_authority("ESRI", 104915) + tms = TileMatrixSet.custom( + crs=europa_crs, + extent=europa_crs.area_of_use.bounds, + matrix_scale=[2, 1], + ) - # Get Tile covering the UL corner - bounds = transform_bounds(cog.crs, tms.rasterio_crs, *cog.bounds) - t = tms._tile(bounds[0], bounds[1], cog.minzoom) - img = cog.tile(t.x, t.y, t.z) + with COGReader(COG_EUROPA, tms=tms, geographic_crs=EUROPA_SPHERE) as cog: + assert cog.info() + assert cog.minzoom == 4 + assert cog.maxzoom == 6 - assert img.height == 256 - assert img.width == 256 - assert img.crs == tms.rasterio_crs + # Get Tile covering the UL corner + bounds = transform_bounds(cog.crs, tms.rasterio_crs, *cog.bounds) + t = tms._tile(bounds[0], bounds[1], cog.minzoom) + img = cog.tile(t.x, t.y, t.z) - assert len(warnings) == 0 + assert img.height == 256 + assert img.width == 256 + assert img.crs == tms.rasterio_crs def test_nonearth_custom(): @@ -890,13 +894,11 @@ class MarsReader(COGReader): default=rasterio.crs.CRS.from_proj4("+proj=longlat +R=3396190 +no_defs"), ) - with pytest.warns(None) as warnings: + with warnings.catch_warnings(): with MarsReader(COG_MARS, tms=mars_tms) as cog: assert cog.geographic_bounds[0] > -180 - assert len(warnings) == 0 - - with pytest.warns(None) as warnings: + with warnings.catch_warnings(): with COGReader( COG_MARS, tms=mars_tms, @@ -905,5 +907,3 @@ class MarsReader(COGReader): ), ) as cog: assert cog.geographic_bounds[0] > -180 - - assert len(warnings) == 0 From e858526a45d4f812a127965463abf5c0c9b6f83b Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Thu, 1 Sep 2022 12:11:20 +0200 Subject: [PATCH 06/23] generalize buffer option (#519) * generalize buffer option * refactor buffer calculation * better tests --- rio_tiler/errors.py | 4 +-- rio_tiler/io/cogeo.py | 41 ++++++++++++------------------- rio_tiler/reader.py | 43 ++++++++++++++++++++++++++++++--- tests/test_io_cogeo.py | 14 +++++------ tests/test_reader.py | 55 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 120 insertions(+), 37 deletions(-) diff --git a/rio_tiler/errors.py b/rio_tiler/errors.py index f51bb027..326a66b2 100644 --- a/rio_tiler/errors.py +++ b/rio_tiler/errors.py @@ -13,8 +13,8 @@ class TileOutsideBounds(RioTilerError): """Z-X-Y Tile is outside image bounds.""" -class IncorrectTileBuffer(RioTilerError): - """Tile buffer is a float but not half of an integer""" +class InvalidBufferSize(RioTilerError): + "`buffer` must be a multiple of `0.5` (e.g: 0.5, 1, 1.5, ...)." class PointOutsideBounds(RioTilerError): diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index 2547423b..c4a288a3 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -7,7 +7,7 @@ import attr import numpy import rasterio -from morecantile import BoundingBox, Tile, TileMatrixSet +from morecantile import Tile, TileMatrixSet from rasterio import transform from rasterio.crs import CRS from rasterio.enums import Resampling @@ -19,12 +19,7 @@ from .. import reader from ..constants import WEB_MERCATOR_TMS, WGS84_CRS -from ..errors import ( - ExpressionMixingWarning, - IncorrectTileBuffer, - NoOverviewWarning, - TileOutsideBounds, -) +from ..errors import ExpressionMixingWarning, NoOverviewWarning, TileOutsideBounds from ..expression import apply_expression, get_expression_blocks, parse_expression from ..models import BandStatistics, ImageData, Info from ..types import BBox, DataMaskType, Indexes, NoData, NumType @@ -312,6 +307,7 @@ def tile( indexes: Optional[Indexes] = None, expression: Optional[str] = None, tile_buffer: Optional[NumType] = None, + buffer: Optional[float] = None, **kwargs: Any, ) -> ImageData: """Read a Web Map tile from a COG. @@ -323,7 +319,8 @@ def tile( tilesize (int, optional): Output image size. Defaults to `256`. indexes (int or sequence of int, optional): Band indexes. expression (str, optional): rio-tiler expression (e.g. b1/b2+b3). - tile_buffer (int or float, optional): Buffer on each side of the given tile. It must be a multiple of `0.5`. Output **tilesize** will be expanded to `tilesize + 2 * tile_buffer` (e.g 0.5 = 257x257, 1.0 = 258x258). + tile_buffer (int or float, optional): Buffer on each side of the given tile. It must be a multiple of `0.5`. Output **tilesize** will be expanded to `tilesize + 2 * tile_buffer` (e.g 0.5 = 257x257, 1.0 = 258x258). DEPRECATED + buffer (float, optional): Buffer on each side of the given tile. It must be a multiple of `0.5`. Output **tilesize** will be expanded to `tilesize + 2 * tile_buffer` (e.g 0.5 = 257x257, 1.0 = 258x258). kwargs (optional): Options to forward to the `COGReader.part` method. Returns: @@ -336,25 +333,12 @@ def tile( ) tile_bounds = self.tms.xy_bounds(Tile(x=tile_x, y=tile_y, z=tile_z)) - if tile_buffer is not None: - if tile_buffer % 0.5: - raise IncorrectTileBuffer( - "`tile_buffer` must be a multiple of `0.5` (e.g: 0.5, 1, 1.5, ...)." - ) - - x_res = (tile_bounds.right - tile_bounds.left) / tilesize - y_res = (tile_bounds.top - tile_bounds.bottom) / tilesize - # Buffered Tile Bounds - tile_bounds = BoundingBox( - tile_bounds.left - x_res * tile_buffer, - tile_bounds.bottom - y_res * tile_buffer, - tile_bounds.right + x_res * tile_buffer, - tile_bounds.top + y_res * tile_buffer, + if tile_buffer: + warnings.warn( + "`tile_buffer` is deprecated, use `buffer`.", DeprecationWarning ) - - # Buffered Tile Size - tilesize += int(tile_buffer * 2) + buffer = tile_buffer return self.part( tile_bounds, @@ -365,6 +349,7 @@ def tile( max_size=None, indexes=indexes, expression=expression, + buffer=buffer, **kwargs, ) @@ -378,6 +363,7 @@ def part( max_size: Optional[int] = None, height: Optional[int] = None, width: Optional[int] = None, + buffer: Optional[float] = None, **kwargs: Any, ) -> ImageData: """Read part of a COG. @@ -391,6 +377,7 @@ def part( max_size (int, optional): Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. height (int, optional): Output height of the array. width (int, optional): Output width of the array. + buffer (float, optional): Buffer on each side of the given aoi. It must be a multiple of `0.5`. Output **image size** will be expanded to `output imagesize + 2 * buffer` (e.g 0.5 = 257x257, 1.0 = 258x258). kwargs (optional): Options to forward to the `rio_tiler.reader.part` function. Returns: @@ -423,6 +410,7 @@ def part( bounds_crs=bounds_crs, dst_crs=dst_crs, indexes=indexes, + buffer=buffer, **kwargs, ) @@ -562,6 +550,7 @@ def feature( max_size: Optional[int] = None, height: Optional[int] = None, width: Optional[int] = None, + buffer: Optional[NumType] = None, **kwargs: Any, ) -> ImageData: """Read part of a COG defined by a geojson feature. @@ -575,6 +564,7 @@ def feature( max_size (int, optional): Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. height (int, optional): Output height of the array. width (int, optional): Output width of the array. + buffer (int or float, optional): Buffer on each side of the given aoi. It must be a multiple of `0.5`. Output **image size** will be expanded to `output imagesize + 2 * buffer` (e.g 0.5 = 257x257, 1.0 = 258x258). kwargs (optional): Options to forward to the `COGReader.part` method. Returns: @@ -601,6 +591,7 @@ def feature( width=width, height=height, vrt_options=vrt_options, + buffer=buffer, **kwargs, ) diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index 7582e92d..ee14d452 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -15,7 +15,12 @@ from rasterio.warp import transform_bounds from .constants import WGS84_CRS -from .errors import AlphaBandWarning, PointOutsideBounds, TileOutsideBounds +from .errors import ( + AlphaBandWarning, + InvalidBufferSize, + PointOutsideBounds, + TileOutsideBounds, +) from .models import ImageData from .types import BBox, DataMaskType, Indexes, NoData from .utils import _requested_tile_aligned_with_internal_tile as is_aligned @@ -136,6 +141,7 @@ def part( minimum_overlap: Optional[float] = None, vrt_options: Optional[Dict] = None, max_size: Optional[int] = None, + buffer: Optional[float] = None, **kwargs: Any, ) -> ImageData: """Read part of a dataset. @@ -166,6 +172,11 @@ def part( UserWarning, ) + if buffer and buffer % 0.5: + raise InvalidBufferSize( + "`buffer` must be a multiple of `0.5` (e.g: 0.5, 1, 1.5, ...)." + ) + if bounds_crs: bounds = transform_bounds(bounds_crs, dst_crs, *bounds, densify_pts=21) @@ -192,8 +203,6 @@ def part( src_dst, bounds, height, width, dst_crs=dst_crs ) - window = windows.Window(col_off=0, row_off=0, width=vrt_width, height=vrt_height) - if max_size and not (width and height): if max(vrt_width, vrt_height) > max_size: ratio = vrt_height / vrt_width @@ -206,6 +215,34 @@ def part( out_height = height or vrt_height out_width = width or vrt_width + + if buffer: + height = height or vrt_height + width = width or vrt_width + + # Get output resolution + x_res = (bounds[2] - bounds[0]) / out_width + y_res = (bounds[3] - bounds[1]) / out_height + + # apply buffer to bounds + bounds = ( + bounds[0] - x_res * buffer, + bounds[1] - y_res * buffer, + bounds[2] + x_res * buffer, + bounds[3] + y_res * buffer, + ) + + # new output size + out_height += int(buffer * 2) + out_width += int(buffer * 2) + + # re-calculate the transform given the new bounds, height and width + vrt_transform, vrt_width, vrt_height = get_vrt_transform( + src_dst, bounds, out_height, out_width, dst_crs=dst_crs + ) + + window = windows.Window(col_off=0, row_off=0, width=vrt_width, height=vrt_height) + if padding > 0 and not is_aligned(src_dst, bounds, out_height, out_width, dst_crs): vrt_transform = vrt_transform * Affine.translation(-padding, -padding) orig_vrt_height = vrt_height diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 857a6628..a82fe5a7 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -21,7 +21,7 @@ from rio_tiler.errors import ( AlphaBandWarning, ExpressionMixingWarning, - IncorrectTileBuffer, + InvalidBufferSize, NoOverviewWarning, TileOutsideBounds, ) @@ -200,7 +200,7 @@ def test_tile_valid_default(): # We are using a file that is aligned with the grid so no resampling should be involved with COGReader(COG_WEB) as cog: img = cog.tile(147, 182, 9) - img_buffer = cog.tile(147, 182, 9, tile_buffer=10) + img_buffer = cog.tile(147, 182, 9, buffer=10) assert img_buffer.width == 276 assert img_buffer.height == 276 assert not img.bounds == img_buffer.bounds @@ -215,26 +215,26 @@ def test_tile_invalid_bounds(): def test_tile_with_incorrect_float_buffer(): - with pytest.raises(IncorrectTileBuffer): + with pytest.raises(InvalidBufferSize): with COGReader(COGEO) as cog: - cog.tile(43, 24, 7, tile_buffer=0.8) + cog.tile(43, 24, 7, buffer=0.8) def test_tile_with_int_buffer(): with COGReader(COGEO) as cog: - data, mask = cog.tile(43, 24, 7, tile_buffer=1) + data, mask = cog.tile(43, 24, 7, buffer=1) assert data.shape == (1, 258, 258) assert mask.all() with COGReader(COGEO) as cog: - data, mask = cog.tile(43, 24, 7, tile_buffer=0) + data, mask = cog.tile(43, 24, 7, buffer=0) assert data.shape == (1, 256, 256) assert mask.all() def test_tile_with_correct_float_buffer(): with COGReader(COGEO) as cog: - data, mask = cog.tile(43, 24, 7, tile_buffer=0.5) + data, mask = cog.tile(43, 24, 7, buffer=0.5) assert data.shape == (1, 257, 257) assert mask.all() diff --git a/tests/test_reader.py b/tests/test_reader.py index 4c1884f5..2c1ffd4c 100644 --- a/tests/test_reader.py +++ b/tests/test_reader.py @@ -387,3 +387,58 @@ def test_point(): # Test with COG + Alpha Band assert not reader.point(src_dst, [-104.77519499, 38.95367054])[0] assert reader.point(src_dst, [-104.77519499, 38.95367054], masked=False)[0] == 0 + + +def test_part_with_buffer(): + """Make sure buffer works as expected.""" + bounds = [ + -6574807.42497772, + 12210356.646387195, + -6261721.357121638, + 12523442.714243278, + ] + # Read part at full resolution + with rasterio.open(COG) as src_dst: + img_no_buffer = reader.part(src_dst, bounds, dst_crs=constants.WEB_MERCATOR_CRS) + + x_size = img_no_buffer.width + y_size = img_no_buffer.height + + x_res = (bounds[2] - bounds[0]) / x_size + y_res = (bounds[3] - bounds[1]) / y_size + + nx = x_size + 4 + ny = y_size + 4 + + # apply a 2 pixel buffer + bounds_with_buffer = ( + bounds[0] - x_res * 2, + bounds[1] - y_res * 2, + bounds[2] + x_res * 2, + bounds[3] + y_res * 2, + ) + with rasterio.open(COG) as src_dst: + img = reader.part( + src_dst, + bounds_with_buffer, + height=ny, + width=nx, + dst_crs=constants.WEB_MERCATOR_CRS, + ) + assert img.width == nx + assert img.height == ny + + with rasterio.open(COG) as src_dst: + imgb = reader.part( + src_dst, bounds, buffer=2, dst_crs=constants.WEB_MERCATOR_CRS + ) + assert imgb.width == nx + assert imgb.height == ny + + assert numpy.array_equal(img.data, imgb.data) + assert img.bounds == imgb.bounds + + # No resampling is involved. Because we read the full resolution data + # all arrays should be equal + numpy.array_equal(img_no_buffer.data, imgb.data[:, 2:-2, 2:-2]) + numpy.array_equal(img_no_buffer.data, img.data[:, 2:-2, 2:-2]) From cf7bf50aeeb8bee5344dc4d9259b7d0cd4921d22 Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Fri, 2 Sep 2022 08:41:06 +0200 Subject: [PATCH 07/23] remove min/max zoom from baseclass attribute (#522) * remove min/max zoom from baseclass attribute * fix benchmark * split zooms methods and add tests * rename function --- CHANGES.md | 2 + rio_tiler/io/base.py | 19 +++--- rio_tiler/io/cogeo.py | 97 +++++++++++++++++++---------- rio_tiler/io/stac.py | 16 ++--- tests/benchmarks/test_benchmarks.py | 2 +- tests/test_io_MultiBand.py | 13 +++- tests/test_io_cogeo.py | 44 +++++++++---- 7 files changed, 130 insertions(+), 63 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 1a9dbbf8..d679dc27 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,8 @@ * remove python 3.7 support * update rasterio requirement to `>=1.3` to allow python 3.10 support * `rio_tiler.readers.read()`, `rio_tiler.readers.part()`, `rio_tiler.readers.preview()` now return a ImageData object +* remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.SpatialMixin` base class +* remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.COGReader` (now defined as properties). # 3.1.6 (2022-07-22) diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index 7d85d8e7..75986be1 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -31,8 +31,6 @@ class SpatialMixin: Attributes: tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. - minzoom (int): Dataset Min Zoom level. **Not in __init__**. - maxzoom (int): Dataset Max Zoom level. **Not in __init__**. bounds (tuple): Dataset bounds (left, bottom, right, top). **Not in __init__**. crs (rasterio.crs.CRS): Dataset crs. **Not in __init__**. geographic_crs (rasterio.crs.CRS): CRS to use as geographic coordinate system. Defaults to WGS84. **Not in __init__**. @@ -41,9 +39,6 @@ class SpatialMixin: tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - minzoom: int = attr.ib(init=False) - maxzoom: int = attr.ib(init=False) - bounds: BBox = attr.ib(init=False) crs: CRS = attr.ib(init=False) @@ -64,7 +59,7 @@ def geographic_bounds(self) -> BBox: ) except: # noqa warnings.warn( - "Cannot dertermine bounds in geographic CRS, will default to (-180.0, -90.0, 180.0, 90.0).", + "Cannot determine bounds in geographic CRS, will default to (-180.0, -90.0, 180.0, 90.0).", UserWarning, ) bounds = (-180.0, -90, 180.0, 90) @@ -243,9 +238,13 @@ class MultiBaseReader(SpatialMixin, metaclass=abc.ABCMeta): input: Any = attr.ib() tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - reader_options: Dict = attr.ib(factory=dict) + + minzoom: int = attr.ib(default=None) + maxzoom: int = attr.ib(default=None) reader: Type[BaseReader] = attr.ib(init=False) + reader_options: Dict = attr.ib(factory=dict) + assets: Sequence[str] = attr.ib(init=False) def __enter__(self): @@ -757,9 +756,13 @@ class MultiBandReader(SpatialMixin, metaclass=abc.ABCMeta): input: Any = attr.ib() tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - reader_options: Dict = attr.ib(factory=dict) + + minzoom: int = attr.ib(default=None) + maxzoom: int = attr.ib(default=None) reader: Type[BaseReader] = attr.ib(init=False) + reader_options: Dict = attr.ib(factory=dict) + bands: Sequence[str] = attr.ib(init=False) def __enter__(self): diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index c4a288a3..8674d315 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -2,7 +2,7 @@ import contextlib import warnings -from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Sequence, Union import attr import numpy @@ -78,9 +78,6 @@ class COGReader(BaseReader): ) tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - minzoom: int = attr.ib(default=None) - maxzoom: int = attr.ib(default=None) - geographic_crs: CRS = attr.ib(default=WGS84_CRS) colormap: Dict = attr.ib(default=None) @@ -101,6 +98,9 @@ class COGReader(BaseReader): # Context Manager to handle rasterio open/close _ctx_stack = attr.ib(init=False, factory=contextlib.ExitStack) + _minzoom: int = attr.ib(init=False, default=None) + _maxzoom: int = attr.ib(init=False, default=None) + def __attrs_post_init__(self): """Define _kwargs, open dataset and get info.""" if self.nodata is not None: @@ -132,9 +132,6 @@ def __attrs_post_init__(self): self.nodata = self.nodata if self.nodata is not None else self.dataset.nodata - if self.minzoom is None or self.maxzoom is None: - self._set_zooms() - if self.colormap is None: self._get_colormap() @@ -154,8 +151,8 @@ def __exit__(self, exc_type, exc_value, traceback): """Support using with Context Managers.""" self.close() - def get_zooms(self, tilesize: int = 256) -> Tuple[int, int]: - """Calculate raster min/max zoom level for input TMS.""" + def _dst_geom_in_tms_crs(self): + """Return dataset info in TMS projection.""" if self.dataset.crs != self.tms.rasterio_crs: dst_affine, w, h = calculate_default_transform( self.dataset.crs, @@ -169,33 +166,69 @@ def get_zooms(self, tilesize: int = 256) -> Tuple[int, int]: w = self.dataset.width h = self.dataset.height - # The maxzoom is defined by finding the minimum difference between - # the raster resolution and the zoom level resolution - resolution = max(abs(dst_affine[0]), abs(dst_affine[4])) - maxzoom = self.tms.zoom_for_res(resolution) + return dst_affine, w, h - # The minzoom is defined by the resolution of the maximum theoretical overview level - overview_level = get_maximum_overview_level(w, h, minsize=tilesize) - ovr_resolution = resolution * (2**overview_level) - minzoom = self.tms.zoom_for_res(ovr_resolution) + def get_minzoom(self) -> int: + """Define dataset minimum zoom level.""" + if self._minzoom is None: + # We assume the TMS tilesize to be constant over all matrices + # ref: https://github.com/OSGeo/gdal/blob/dc38aa64d779ecc45e3cd15b1817b83216cf96b8/gdal/frmts/gtiff/cogdriver.cpp#L274 + tilesize = self.tms.tileMatrix[0].tileWidth - return (minzoom, maxzoom) + try: + dst_affine, w, h = self._dst_geom_in_tms_crs() - def _set_zooms(self): - """Calculate raster min/max zoom level.""" - try: - minzoom, maxzoom = self.get_zooms() - except: # noqa - # if we can't get min/max zoom from the dataset we default to TMS min/max zoom - warnings.warn( - "Cannot dertermine min/max zoom based on dataset information, will default to TMS min/max zoom.", - UserWarning, - ) - minzoom, maxzoom = self.tms.minzoom, self.tms.maxzoom + # The minzoom is defined by the resolution of the maximum theoretical overview level + # We assume `tilesize`` is the smallest overview size + overview_level = get_maximum_overview_level(w, h, minsize=tilesize) + + # Get the resolution of the overview + resolution = max(abs(dst_affine[0]), abs(dst_affine[4])) + ovr_resolution = resolution * (2**overview_level) + + # Find what TMS matrix match the overview resolution + self._minzoom = self.tms.zoom_for_res(ovr_resolution) + + except: # noqa + # if we can't get max zoom from the dataset we default to TMS maxzoom + warnings.warn( + "Cannot determine minzoom based on dataset information, will default to TMS minzoom.", + UserWarning, + ) + self._minzoom = self.tms.minzoom + + return self._minzoom + + def get_maxzoom(self) -> int: + """Define dataset maximum zoom level.""" + if self._maxzoom is None: + try: + dst_affine, _, _ = self._dst_geom_in_tms_crs() + + # The maxzoom is defined by finding the minimum difference between + # the raster resolution and the zoom level resolution + resolution = max(abs(dst_affine[0]), abs(dst_affine[4])) + self._maxzoom = self.tms.zoom_for_res(resolution) + + except: # noqa + # if we can't get min/max zoom from the dataset we default to TMS maxzoom + warnings.warn( + "Cannot determine maxzoom based on dataset information, will default to TMS maxzoom.", + UserWarning, + ) + self._maxzoom = self.tms.maxzoom + + return self._maxzoom + + @property + def minzoom(self): + """Return dataset minzoom.""" + return self.get_minzoom() - self.minzoom = self.minzoom if self.minzoom is not None else minzoom - self.maxzoom = self.maxzoom if self.maxzoom is not None else maxzoom - return + @property + def maxzoom(self): + """Return dataset maxzoom.""" + return self.get_maxzoom() def _get_colormap(self): """Retrieve the internal colormap.""" diff --git a/rio_tiler/io/stac.py b/rio_tiler/io/stac.py index d7d32913..9bd23ebf 100644 --- a/rio_tiler/io/stac.py +++ b/rio_tiler/io/stac.py @@ -164,8 +164,8 @@ class STACReader(MultiBaseReader): item: pystac.Item = attr.ib(default=None, converter=_to_pystac_item) tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - minzoom: int = attr.ib(default=None) - maxzoom: int = attr.ib(default=None) + minzoom: int = attr.ib() + maxzoom: int = attr.ib() geographic_crs: CRS = attr.ib(default=WGS84_CRS) @@ -202,13 +202,13 @@ def __attrs_post_init__(self): if not self.assets: raise MissingAssets("No valid asset found") - if self.minzoom is None: - # TODO get minzoom from PROJ extension - self.minzoom = self.tms.minzoom + @minzoom.default + def _minzoom(self): + return self.tms.minzoom - if self.maxzoom is None: - # TODO get maxzoom from PROJ extension - self.maxzoom = self.tms.maxzoom + @maxzoom.default + def _maxzoom(self): + return self.tms.maxzoom def _get_asset_url(self, asset: str) -> str: """Validate asset names and return asset's url. diff --git a/tests/benchmarks/test_benchmarks.py b/tests/benchmarks/test_benchmarks.py index 1f527a98..2e15e9b2 100644 --- a/tests/benchmarks/test_benchmarks.py +++ b/tests/benchmarks/test_benchmarks.py @@ -16,7 +16,7 @@ def read_tile(src_path, tile): """Benchmark rio-tiler.utils._tile_read.""" # We make sure to not store things in cache. with rasterio.Env(GDAL_CACHEMAX=0, NUM_THREADS="all"): - with COGReader(src_path, minzoom=0, maxzoom=24) as cog: + with COGReader(src_path) as cog: return cog.tile(*tile) diff --git a/tests/test_io_MultiBand.py b/tests/test_io_MultiBand.py index 298c83cb..749562ca 100644 --- a/tests/test_io_MultiBand.py +++ b/tests/test_io_MultiBand.py @@ -22,9 +22,20 @@ class BandFileReader(MultiBandReader): input: str = attr.ib() tms: morecantile.TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - reader_options: Dict = attr.ib(factory=dict) reader: Type[BaseReader] = attr.ib(init=False, default=COGReader) + reader_options: Dict = attr.ib(factory=dict) + + minzoom: int = attr.ib() + maxzoom: int = attr.ib() + + @minzoom.default + def _minzoom(self): + return self.tms.minzoom + + @maxzoom.default + def _maxzoom(self): + return self.tms.maxzoom def __attrs_post_init__(self): """Parse Sceneid and get grid bounds.""" diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index a82fe5a7..8bf1868f 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -69,18 +69,6 @@ def test_spatial_info_valid(): cog.close() assert cog.dataset.closed - with COGReader(COG_NODATA, minzoom=3) as cog: - assert cog.minzoom == 3 - assert cog.maxzoom == 9 - - with COGReader(COG_NODATA, maxzoom=12) as cog: - assert cog.minzoom == 5 - assert cog.maxzoom == 12 - - with COGReader(COG_NODATA, minzoom=3, maxzoom=12) as cog: - assert cog.minzoom == 3 - assert cog.maxzoom == 12 - def test_bounds_valid(): """Should work as expected (get bounds)""" @@ -824,7 +812,7 @@ def test_nonearthbody(): with pytest.warns(UserWarning) as warnings: with COGReader(COG_EUROPA, geographic_crs=EUROPA_SPHERE) as cog: assert cog.info() - assert len(warnings) == 1 + assert len(warnings) == 2 img = cog.read() assert numpy.array_equal(img.data, cog.dataset.read(indexes=(1,))) @@ -907,3 +895,33 @@ class MarsReader(COGReader): ), ) as cog: assert cog.geographic_bounds[0] > -180 + + +def test_tms_tilesize_and_zoom(): + """Test the influence of tms tilesize on COG zoom levels.""" + with COGReader(COG_NODATA) as cog: + assert cog.minzoom == 5 + assert cog.maxzoom == 9 + + tms_128 = TileMatrixSet.custom( + WEB_MERCATOR_TMS.xy_bbox, + WEB_MERCATOR_TMS.crs, + title="mercator with 64 tilesize", + tile_width=64, + tile_height=64, + ) + with COGReader(COG_NODATA, tms=tms_128) as cog: + assert cog.minzoom == 5 + assert cog.maxzoom == 11 + + tms_2048 = TileMatrixSet.custom( + WEB_MERCATOR_TMS.xy_bbox, + WEB_MERCATOR_TMS.crs, + title="mercator with 2048 tilesize", + tile_width=2048, + tile_height=2048, + ) + with COGReader(COG_NODATA, tms=tms_2048) as cog: + print(cog.minzoom, cog.maxzoom) + assert cog.minzoom == 5 + assert cog.maxzoom == 6 From 470d4a8fdb844a23bc98bd781ce4013af31b1e15 Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Wed, 14 Sep 2022 10:48:22 +0200 Subject: [PATCH 08/23] move apply_expression into ImageData class and use `b{ix}` for band names (#523) * move apply_expression into ImageData class and use `b{ix}` for band names * fix test * make sure we have the good number of bands * Apply expression part2 (#525) * ImageData.apply_expression return a new ImageData object * refactor Points method and deprecate asset_expression * remove unused option * Update rio_tiler/models.py * fix regex --- CHANGES.md | 95 +++++++ rio_tiler/expression.py | 9 +- rio_tiler/io/base.py | 216 ++++++++------- rio_tiler/io/cogeo.py | 89 ++----- rio_tiler/models.py | 16 +- rio_tiler/reader.py | 10 +- rio_tiler/utils.py | 4 + .../{scene_b1.tif => scene_band1.tif} | Bin .../{scene_b2.tif => scene_band2.tif} | Bin tests/test_io_MultiBand.py | 86 +++--- tests/test_io_cogeo.py | 61 +++-- tests/test_io_stac.py | 251 +++++++++--------- tests/test_models.py | 14 + tests/test_mosaic.py | 20 +- tests/test_reader.py | 20 +- 15 files changed, 502 insertions(+), 389 deletions(-) rename tests/fixtures/{scene_b1.tif => scene_band1.tif} (100%) rename tests/fixtures/{scene_b2.tif => scene_band2.tif} (100%) diff --git a/CHANGES.md b/CHANGES.md index d679dc27..b45a34bd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,8 @@ # 4.0.0 (TBD) +* add `apply_expression` method in `rio_tiler.models.ImageData` class + **breaking changes** * remove python 3.7 support @@ -8,6 +10,99 @@ * `rio_tiler.readers.read()`, `rio_tiler.readers.part()`, `rio_tiler.readers.preview()` now return a ImageData object * remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.SpatialMixin` base class * remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.COGReader` (now defined as properties). +* use `b` prefix for band names in `rio_tiler.models.ImageData` class (and in rio-tiler's readers) + ```python + # before + with COGReader("cog.tif") as cog: + img = cog.read() + print(cog.band_names) + >>> ["1", "2", "3"] + + print(cog.info().band_metadata) + >>> [("1", {}), ("2", {}), ("3", {})] + + print(cog.info().band_descriptions) + >>> [("1", ""), ("2", ""), ("3", "")] + + print(list(cog.statistics())) + >>> ["1", "2", "3"] + + # now + with COGReader("cog.tif") as cog: + img = cog.read() + print(img.band_names) + >>> ["b1", "b2", "b3"] + + print(cog.info().band_metadata) + >>> [("b1", {}), ("b2", {}), ("b3", {})] + + print(cog.info().band_descriptions) + >>> [("b1", ""), ("b2", ""), ("b3", "")] + + print(list(cog.statistics())) + >>> ["b1", "b2", "b3"] + + with STACReader("stac.json") as stac: + print(stac.tile(701, 102, 8, assets=("green", "red")).band_names) + >>> ["green_b1", "red_b1"] + ``` + +* depreciate `asset_expression` in MultiBaseReader. Use of expression is now possible +* `expression` for MultiBaseReader must be in form of `{asset}_b{index}` + + ```python + # before + with STACReader("stac.json") as stac: + stac.tile(701, 102, 8, expression="green/red") + + # now + with STACReader("stac.json") as stac: + stac.tile(701, 102, 8, expression="green_b1/red_b1") + ``` + +* `rio_tiler.reader.point()` (and all Reader's point methods) now return a **Tuple** of values and band names + + ```python + # before + with rasterio.open("cog.tif") as src:: + v = rio_tiler.reader.point(10.20, -42.0) + print(v) + >>> [0, 0, 0] + + with COGReader("cog.tif") as cog: + print(cog.point(10.20, -42.0)) + >>> [0, 0, 0] + + # now + with rasterio.open("cog.tif") as src:: + v, band_names = rio_tiler.reader.point(10.20, -42) + print(v) + >>> [0, 0, 0] + print(band_names) + >>> ["b1", "b2", "b3"] + + with COGReader("cog.tif") as cog: + print(cog.point(10.20, -42.0)) + >>> ([0, 0, 0], ["b1", "b2", "b3"]) + ``` + +* `MultiBaseReader.point()` method now returns data as flat (merged) list (instead of a list of list) + + ```python + # before + with STACReader("stac.json") as stac: + pt = stac.point(10.20, -42, assets=("green", "red")) + print(pt) + >>> [[0], [0]] + + # now + with STACReader("stac.json") as stac: + pt, names = stac.point(10.20, -42, assets=("green", "red")) + print(pt) + >>> [0, 0] + print(names) + >>> ["green_b1", "red_b1"] + ``` # 3.1.6 (2022-07-22) diff --git a/rio_tiler/expression.py b/rio_tiler/expression.py index 7b33c868..d733be08 100644 --- a/rio_tiler/expression.py +++ b/rio_tiler/expression.py @@ -2,7 +2,7 @@ import re import warnings -from typing import List, Sequence, Tuple, Union +from typing import List, Sequence, Tuple import numexpr import numpy @@ -59,7 +59,7 @@ def get_expression_blocks(expression: str) -> List[str]: def apply_expression( blocks: Sequence[str], - bands: Sequence[Union[str, int]], + bands: Sequence[str], data: numpy.ndarray, ) -> numpy.ndarray: """Apply rio-tiler expression. @@ -74,6 +74,11 @@ def apply_expression( numpy.array: output data. """ + if len(bands) != data.shape[0]: + raise ValueError( + f"Incompatible number of bands ({bands}) and data shape {data.shape}" + ) + return numpy.array( [ numpy.nan_to_num( diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index 75986be1..5cb5720a 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -1,6 +1,7 @@ """rio_tiler.io.base: ABC class for rio-tiler readers.""" import abc +import itertools import re import warnings from typing import Any, Dict, List, Optional, Sequence, Tuple, Type, Union @@ -25,6 +26,13 @@ from ..utils import get_array_statistics +def _AssetExpressionWarning(): + warnings.warn( + "asset_expression is deprecated and will be removed in 4.0. Use pure Expression", + DeprecationWarning, + ) + + @attr.s class SpatialMixin: """Spatial Info Mixin. @@ -194,7 +202,7 @@ def preview(self, **kwargs: Any) -> ImageData: ... @abc.abstractmethod - def point(self, lon: float, lat: float, **kwargs: Any) -> List: + def point(self, lon: float, lat: float, **kwargs: Any) -> Tuple[List, List[str]]: """Read a value from a Dataset. Args: @@ -203,6 +211,7 @@ def point(self, lon: float, lat: float, **kwargs: Any) -> List: Returns: list: Pixel value per bands/assets. + list: band names """ ... @@ -262,8 +271,8 @@ def _get_asset_url(self, asset: str) -> str: def parse_expression(self, expression: str) -> Tuple: """Parse rio-tiler band math expression.""" - assets = "|".join([rf"\b{asset}\b" for asset in self.assets]) - _re = re.compile(assets.replace("\\\\", "\\")) + assets = "|".join([asset for asset in self.assets]) + _re = re.compile(rf"\b({assets})_b\d+") return tuple(set(re.findall(_re, expression))) def info( # type: ignore @@ -360,7 +369,7 @@ def merged_statistics( # type: ignore assets (sequence of str or str): assets to fetch info from. expression (str, optional): rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). asset_indexes (dict, optional): Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). - asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). + asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). **Deprecated** categorical (bool): treat input data as categorical data. Defaults to False. categories (list of numbers, optional): list of categories to return value for. percentiles (list of numbers, optional): list of percentile values to calculate. Defaults to `[2, 98]`. @@ -373,6 +382,9 @@ def merged_statistics( # type: ignore Dict[str, rio_tiler.models.BandStatistics]: bands statistics. """ + if asset_expression: + _AssetExpressionWarning() + if not expression: if not assets: warnings.warn( @@ -385,7 +397,6 @@ def merged_statistics( # type: ignore assets=assets, expression=expression, asset_indexes=asset_indexes, - asset_expression=asset_expression, max_size=max_size, **kwargs, ) @@ -425,13 +436,16 @@ def tile( assets (sequence of str or str, optional): assets to fetch info from. expression (str, optional): rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). asset_indexes (dict, optional): Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). - asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). + asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). **Deprecated** kwargs (optional): Options to forward to the `self.reader.tile` method. Returns: rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. """ + if asset_expression: + _AssetExpressionWarning() + if not self.tile_exists(tile_x, tile_y, tile_z): raise TileOutsideBounds( f"Tile {tile_z}/{tile_x}/{tile_y} is outside image bounds" @@ -455,35 +469,20 @@ def tile( ) asset_indexes = asset_indexes or {} - asset_expression = asset_expression or {} def _reader(asset: str, *args: Any, **kwargs: Any) -> ImageData: url = self._get_asset_url(asset) + idx = asset_indexes.get(asset) or kwargs.pop("indexes", None) # type: ignore with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - data = cog.tile( - *args, - indexes=asset_indexes.get(asset, kwargs.pop("indexes", None)), # type: ignore - expression=asset_expression.get(asset), # type: ignore - **kwargs, - ) + data = cog.tile(*args, indexes=idx, **kwargs) data.band_names = [f"{asset}_{n}" for n in data.band_names] return data - output = multi_arrays( - assets, - _reader, - tile_x, - tile_y, - tile_z, - **kwargs, - ) - + img = multi_arrays(assets, _reader, tile_x, tile_y, tile_z, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, assets, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img def part( self, @@ -501,13 +500,16 @@ def part( assets (sequence of str or str, optional): assets to fetch info from. expression (str, optional): rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). asset_indexes (dict, optional): Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). - asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). + asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). **Deprecated** kwargs (optional): Options to forward to the `self.reader.part` method. Returns: rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. """ + if asset_expression: + _AssetExpressionWarning() + if isinstance(assets, str): assets = (assets,) @@ -526,28 +528,20 @@ def part( ) asset_indexes = asset_indexes or {} - asset_expression = asset_expression or {} def _reader(asset: str, *args: Any, **kwargs: Any) -> ImageData: url = self._get_asset_url(asset) + idx = asset_indexes.get(asset) or kwargs.pop("indexes", None) # type: ignore with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - data = cog.part( - *args, - indexes=asset_indexes.get(asset, kwargs.pop("indexes", None)), # type: ignore - expression=asset_expression.get(asset), # type: ignore - **kwargs, - ) + data = cog.part(*args, indexes=idx, **kwargs) data.band_names = [f"{asset}_{n}" for n in data.band_names] return data - output = multi_arrays(assets, _reader, bbox, **kwargs) - + img = multi_arrays(assets, _reader, bbox, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, assets, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img def preview( self, @@ -563,13 +557,16 @@ def preview( assets (sequence of str or str, optional): assets to fetch info from. expression (str, optional): rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). asset_indexes (dict, optional): Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). - asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). + asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). **Deprecated** kwargs (optional): Options to forward to the `self.reader.preview` method. Returns: rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. """ + if asset_expression: + _AssetExpressionWarning() + if isinstance(assets, str): assets = (assets,) @@ -588,27 +585,20 @@ def preview( ) asset_indexes = asset_indexes or {} - asset_expression = asset_expression or {} def _reader(asset: str, **kwargs: Any) -> ImageData: url = self._get_asset_url(asset) + idx = asset_indexes.get(asset) or kwargs.pop("indexes", None) # type: ignore with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - data = cog.preview( - indexes=asset_indexes.get(asset, kwargs.pop("indexes", None)), # type: ignore - expression=asset_expression.get(asset), # type: ignore - **kwargs, - ) + data = cog.preview(indexes=idx, **kwargs) data.band_names = [f"{asset}_{n}" for n in data.band_names] return data - output = multi_arrays(assets, _reader, **kwargs) - + img = multi_arrays(assets, _reader, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, assets, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img def point( self, @@ -619,7 +609,7 @@ def point( asset_indexes: Optional[Dict[str, Indexes]] = None, # Indexes for each asset asset_expression: Optional[Dict[str, str]] = None, # Expression for each asset **kwargs: Any, - ) -> List: + ) -> Tuple[List, List[str]]: """Read pixel value from multiple assets. Args: @@ -628,13 +618,17 @@ def point( assets (sequence of str or str, optional): assets to fetch info from. expression (str, optional): rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). asset_indexes (dict, optional): Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). - asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). + asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). **Deprecated** kwargs (optional): Options to forward to the `self.reader.point` method. Returns: list: Pixel values per assets. + list: band names """ + if asset_expression: + _AssetExpressionWarning() + if isinstance(assets, str): assets = (assets,) @@ -653,26 +647,34 @@ def point( ) asset_indexes = asset_indexes or {} - asset_expression = asset_expression or {} - def _reader(asset: str, *args, **kwargs: Any) -> Dict: + def _reader(asset: str, *args, **kwargs: Any) -> Tuple[List, List[str]]: url = self._get_asset_url(asset) + idx = asset_indexes.get(asset) or kwargs.pop("indexes", None) # type: ignore with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - return cog.point( - *args, - indexes=asset_indexes.get(asset, kwargs.pop("indexes", None)), # type: ignore - expression=asset_expression.get(asset), # type: ignore - **kwargs, + points, band_names = cog.point(*args, indexes=idx, **kwargs) + return ( + points, + [f"{asset}_{n}" for n in band_names], ) data = multi_values(assets, _reader, lon, lat, **kwargs) + values, band_names = zip(*[(v, b) for _, (v, b) in data.items()]) + + # Create an array with all the point values + values = numpy.array(list(itertools.chain.from_iterable(values))) + + # Create a list of all point's band name + band_names = list(itertools.chain.from_iterable(band_names)) - values = [numpy.array(d) for _, d in data.items()] if expression: blocks = get_expression_blocks(expression) - values = apply_expression(blocks, assets, values) + return ( + apply_expression(blocks, band_names, values).tolist(), + blocks, + ) - return [v.tolist() for v in values] + return values.tolist(), band_names def feature( self, @@ -690,13 +692,16 @@ def feature( assets (sequence of str or str, optional): assets to fetch info from. expression (str, optional): rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). asset_indexes (dict, optional): Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). - asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). + asset_expression (dict, optional): rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). **Deprecated** kwargs (optional): Options to forward to the `self.reader.feature` method. Returns: rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. """ + if asset_expression: + _AssetExpressionWarning() + if isinstance(assets, str): assets = (assets,) @@ -715,28 +720,20 @@ def feature( ) asset_indexes = asset_indexes or {} - asset_expression = asset_expression or {} def _reader(asset: str, *args: Any, **kwargs: Any) -> ImageData: url = self._get_asset_url(asset) + idx = asset_indexes.get(asset) or kwargs.pop("indexes", None) # type: ignore with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - data = cog.feature( - *args, - indexes=asset_indexes.get(asset, kwargs.pop("indexes", None)), # type: ignore - expression=asset_expression.get(asset), # type: ignore - **kwargs, - ) + data = cog.feature(*args, indexes=idx, **kwargs) data.band_names = [f"{asset}_{n}" for n in data.band_names] return data - output = multi_arrays(assets, _reader, shape, **kwargs) - + img = multi_arrays(assets, _reader, shape, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, assets, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img @attr.s @@ -942,17 +939,15 @@ def _reader(band: str, *args: Any, **kwargs: Any) -> ImageData: url = self._get_band_url(band) with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore data = cog.tile(*args, **kwargs) - data.band_names = [band] + data.band_names = [band] # use `band` as name instead of band index return data - output = multi_arrays(bands, _reader, tile_x, tile_y, tile_z, **kwargs) + img = multi_arrays(bands, _reader, tile_x, tile_y, tile_z, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, bands, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img def part( self, @@ -994,17 +989,15 @@ def _reader(band: str, *args: Any, **kwargs: Any) -> ImageData: url = self._get_band_url(band) with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore data = cog.part(*args, **kwargs) - data.band_names = [band] + data.band_names = [band] # use `band` as name instead of band index return data - output = multi_arrays(bands, _reader, bbox, **kwargs) + img = multi_arrays(bands, _reader, bbox, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, bands, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img def preview( self, @@ -1044,17 +1037,15 @@ def _reader(band: str, **kwargs: Any) -> ImageData: url = self._get_band_url(band) with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore data = cog.preview(**kwargs) - data.band_names = [band] + data.band_names = [band] # use `band` as name instead of band index return data - output = multi_arrays(bands, _reader, **kwargs) + img = multi_arrays(bands, _reader, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, bands, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img def point( self, @@ -1063,7 +1054,7 @@ def point( bands: Union[Sequence[str], str] = None, expression: Optional[str] = None, **kwargs: Any, - ) -> List: + ) -> Tuple[List, List[str]]: """Read a pixel values from multiple bands. Args: @@ -1075,6 +1066,7 @@ def point( Returns: list: Pixel value per bands. + list: band names """ if isinstance(bands, str): @@ -1094,19 +1086,27 @@ def point( "bands must be passed either via expression or bands options." ) - def _reader(band: str, *args, **kwargs: Any) -> Dict: + def _reader(band: str, *args, **kwargs: Any) -> Tuple[numpy.array, List[str]]: url = self._get_band_url(band) with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - return cog.point(*args, **kwargs)[0] # We only return the first value + values, _ = cog.point(*args, **kwargs) + return ( + values[0], # We only return the first value + [band], + ) data = multi_values(bands, _reader, lon, lat, **kwargs) + values, band_names = zip(*[(v, b) for b, (v, _) in data.items()]) + values = numpy.array(values) - values = [numpy.array(d) for _, d in data.items()] if expression: blocks = get_expression_blocks(expression) - values = apply_expression(blocks, bands, values) + return ( + apply_expression(blocks, band_names, values).tolist(), + blocks, + ) - return [v.tolist() for v in values] + return [v.tolist() for v in values], list(band_names) def feature( self, @@ -1148,14 +1148,12 @@ def _reader(band: str, *args: Any, **kwargs: Any) -> ImageData: url = self._get_band_url(band) with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore data = cog.feature(*args, **kwargs) - data.band_names = [band] + data.band_names = [band] # use `band` as name instead of band index return data - output = multi_arrays(bands, _reader, shape, **kwargs) + img = multi_arrays(bands, _reader, shape, **kwargs) if expression: - blocks = get_expression_blocks(expression) - output.data = apply_expression(blocks, bands, output.data) - output.band_names = blocks + return img.apply_expression(expression) - return output + return img diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index 8674d315..6dbedbfb 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -2,7 +2,7 @@ import contextlib import warnings -from typing import Any, Callable, Dict, List, Optional, Sequence, Union +from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union import attr import numpy @@ -23,13 +23,7 @@ from ..expression import apply_expression, get_expression_blocks, parse_expression from ..models import BandStatistics, ImageData, Info from ..types import BBox, DataMaskType, Indexes, NoData, NumType -from ..utils import ( - create_cutline, - get_array_statistics, - get_bands_names, - has_alpha_band, - has_mask_band, -) +from ..utils import create_cutline, get_array_statistics, has_alpha_band, has_mask_band from .base import BaseReader @@ -259,10 +253,10 @@ def _get_descr(ix): "minzoom": self.minzoom, "maxzoom": self.maxzoom, "band_metadata": [ - (f"{ix}", self.dataset.tags(ix)) for ix in self.dataset.indexes + (f"b{ix}", self.dataset.tags(ix)) for ix in self.dataset.indexes ], "band_descriptions": [ - (f"{ix}", _get_descr(ix)) for ix in self.dataset.indexes + (f"b{ix}", _get_descr(ix)) for ix in self.dataset.indexes ], "dtype": self.dataset.meta["dtype"], "colorinterp": [ @@ -446,22 +440,12 @@ def part( buffer=buffer, **kwargs, ) + img.assets = [self.input] - if expression and indexes: - blocks = get_expression_blocks(expression) - bands = [f"b{bidx}" for bidx in indexes] - img.data = apply_expression(blocks, bands, img.data) - - return ImageData( - img.data, - img.mask, - bounds=img.bounds, - crs=img.crs, - assets=[self.input], - band_names=get_bands_names( - indexes=indexes, expression=expression, count=img.count - ), - ) + if expression: + return img.apply_expression(expression) + + return img def preview( self, @@ -508,22 +492,12 @@ def preview( height=height, **kwargs, ) + img.assets = [self.input] - if expression and indexes: - blocks = get_expression_blocks(expression) - bands = [f"b{bidx}" for bidx in indexes] - img.data = apply_expression(blocks, bands, img.data) - - return ImageData( - img.data, - img.mask, - bounds=img.bounds, - crs=img.crs, - assets=[self.input], - band_names=get_bands_names( - indexes=indexes, expression=expression, count=img.count - ), - ) + if expression: + return img.apply_expression(expression) + + return img def point( self, @@ -533,7 +507,7 @@ def point( indexes: Optional[Indexes] = None, expression: Optional[str] = None, **kwargs: Any, - ) -> List: + ) -> Tuple[List, List[str]]: """Read a pixel value from a COG. Args: @@ -546,6 +520,7 @@ def point( Returns: list: Pixel value per band indexes. + list: band names """ kwargs = {**self._kwargs, **kwargs} @@ -562,16 +537,18 @@ def point( if expression: indexes = parse_expression(expression) - point = reader.point( + values, band_names = reader.point( self.dataset, (lon, lat), indexes=indexes, coord_crs=coord_crs, **kwargs ) - if expression and indexes: + if expression: blocks = get_expression_blocks(expression) - bands = [f"b{bidx}" for bidx in indexes] - point = apply_expression(blocks, bands, numpy.array(point)).tolist() + return ( + apply_expression(blocks, band_names, numpy.array(values)).tolist(), + blocks, + ) - return point + return values, band_names def feature( self, @@ -660,22 +637,12 @@ def read( indexes = parse_expression(expression) img = reader.read(self.dataset, indexes=indexes, **kwargs) + img.assets = [self.input] - if expression and indexes: - blocks = get_expression_blocks(expression) - bands = [f"b{bidx}" for bidx in indexes] - img.data = apply_expression(blocks, bands, img.data) - - return ImageData( - img.data, - img.mask, - bounds=img.bounds, - crs=img.crs, - assets=[self.input], - band_names=get_bands_names( - indexes=indexes, expression=expression, count=img.count - ), - ) + if expression: + return img.apply_expression(expression) + + return img @attr.s diff --git a/rio_tiler/models.py b/rio_tiler/models.py index e67dee30..e9f28d63 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -18,6 +18,7 @@ from rio_color.utils import scale_dtype, to_math_type from .errors import InvalidDatatypeWarning +from .expression import apply_expression, get_expression_blocks from .types import ColorMapType, GDALColorMapType, IntervalTuple, NumType from .utils import linear_rescale, render, resize_array @@ -163,7 +164,7 @@ def _validate_data(self, attribute, value): @band_names.default def _default_names(self): - return [f"{ix + 1}" for ix in range(self.count)] + return [f"b{ix + 1}" for ix in range(self.count)] @mask.default def _default_mask(self): @@ -274,6 +275,19 @@ def apply_color_formula(self, color_formula: Optional[str]): for ops in parse_operations(color_formula): self.data = scale_dtype(ops(to_math_type(self.data)), numpy.uint8) + def apply_expression(self, expression: str) -> "ImageData": + """Apply expression to the image data.""" + blocks = get_expression_blocks(expression) + return ImageData( + apply_expression(blocks, self.band_names, self.data), + self.mask, + assets=self.assets, + crs=self.crs, + bounds=self.bounds, + band_names=blocks, + metadata=self.metadata, + ) + def post_process( self, in_range: Optional[Sequence[IntervalTuple]] = None, diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index ee14d452..4193849b 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -71,6 +71,8 @@ def read( "Alpha band was removed from the output data array", AlphaBandWarning ) + band_names = [f"b{idx}" for idx in indexes] + vrt_params = dict(add_alpha=True, resampling=Resampling[resampling_method]) nodata = nodata if nodata is not None else src_dst.nodata if nodata is not None: @@ -127,6 +129,7 @@ def read( mask, bounds=windows.bounds(window, vrt.transform), crs=vrt.crs, + band_names=band_names, ) @@ -324,7 +327,7 @@ def point( post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] ] = None, -) -> List: +) -> Tuple[List, List[str]]: """Read a pixel value for a point. Args: @@ -341,6 +344,7 @@ def point( Returns: list: Pixel value per band indexes. + list: band names """ if isinstance(indexes, int): @@ -357,6 +361,8 @@ def point( indexes = indexes if indexes is not None else src_dst.indexes + band_names = [f"b{idx}" for idx in indexes] + vrt_params = dict(add_alpha=True, resampling=Resampling[resampling_method]) nodata = nodata if nodata is not None else src_dst.nodata if nodata is not None: @@ -383,4 +389,4 @@ def point( if post_process: point_values, _ = post_process(point_values, mask) - return point_values.tolist() + return point_values.tolist(), band_names diff --git a/rio_tiler/utils.py b/rio_tiler/utils.py index 0a4ae31b..56f9bc99 100644 --- a/rio_tiler/utils.py +++ b/rio_tiler/utils.py @@ -67,6 +67,10 @@ def get_bands_names( count: Optional[int] = None, ) -> List[str]: """Define bands names based on expression, indexes or band count.""" + warnings.warn( + "`get_bands_names` is deprecated, and will be removed in rio-tiler 4.0`.", + DeprecationWarning, + ) if expression: return get_expression_blocks(expression) diff --git a/tests/fixtures/scene_b1.tif b/tests/fixtures/scene_band1.tif similarity index 100% rename from tests/fixtures/scene_b1.tif rename to tests/fixtures/scene_band1.tif diff --git a/tests/fixtures/scene_b2.tif b/tests/fixtures/scene_band2.tif similarity index 100% rename from tests/fixtures/scene_b2.tif rename to tests/fixtures/scene_band2.tif diff --git a/tests/test_io_MultiBand.py b/tests/test_io_MultiBand.py index 749562ca..43be36e0 100644 --- a/tests/test_io_MultiBand.py +++ b/tests/test_io_MultiBand.py @@ -59,86 +59,98 @@ def _get_band_url(self, band: str) -> str: def test_MultiBandReader(): """Should work as expected.""" with BandFileReader(PREFIX) as cog: - assert cog.bands == ["b1", "b2"] + assert cog.bands == ["band1", "band2"] assert cog.minzoom is not None assert cog.maxzoom is not None assert cog.bounds assert cog.bounds assert cog.crs - assert sorted(cog.parse_expression("b1/b2")) == ["b1", "b2"] + assert sorted(cog.parse_expression("band1/band2")) == ["band1", "band2"] with pytest.warns(UserWarning): meta = cog.info() - assert meta.band_descriptions == [("b1", ""), ("b2", "")] + assert meta.band_descriptions == [("band1", ""), ("band2", "")] - meta = cog.info(bands="b1") - assert meta.band_descriptions == [("b1", "")] + meta = cog.info(bands="band1") + assert meta.band_descriptions == [("band1", "")] - meta = cog.info(bands=("b1", "b2")) - assert meta.band_descriptions == [("b1", ""), ("b2", "")] + meta = cog.info(bands=("band1", "band2")) + assert meta.band_descriptions == [("band1", ""), ("band2", "")] with pytest.warns(UserWarning): stats = cog.statistics() - assert stats["b1"] - assert stats["b2"] + assert stats["band1"] + assert stats["band2"] - stats = cog.statistics(bands="b1") - assert "b1" in stats - assert isinstance(stats["b1"], BandStatistics) + stats = cog.statistics(bands="band1") + assert "band1" in stats + assert isinstance(stats["band1"], BandStatistics) - stats = cog.statistics(bands=("b1", "b2")) - assert stats["b1"] - assert stats["b2"] + stats = cog.statistics(bands=("band1", "band2")) + assert stats["band1"] + assert stats["band2"] - stats = cog.statistics(expression="b1;b1+b2;b1-100") - assert stats["b1"] - assert stats["b1+b2"] - assert stats["b1-100"] + stats = cog.statistics(expression="band1;band1+band2;band1-100") + assert stats["band1"] + assert stats["band1+band2"] + assert stats["band1-100"] with pytest.raises(MissingBands): cog.tile(238, 218, 9) - tile = cog.tile(238, 218, 9, bands="b1") + tile = cog.tile(238, 218, 9, bands="band1") assert tile.data.shape == (1, 256, 256) - assert tile.band_names == ["b1"] + assert tile.band_names == ["band1"] with pytest.warns(ExpressionMixingWarning): - tile = cog.tile(238, 218, 9, bands="b1", expression="b1*2") + tile = cog.tile(238, 218, 9, bands="band1", expression="band1*2") assert tile.data.shape == (1, 256, 256) - assert tile.band_names == ["b1*2"] + assert tile.band_names == ["band1*2"] with pytest.raises(MissingBands): cog.part((-11.5, 24.5, -11.0, 25.0)) - tile = cog.part((-11.5, 24.5, -11.0, 25.0), bands="b1") + tile = cog.part((-11.5, 24.5, -11.0, 25.0), bands="band1") assert tile.data.any() - assert tile.band_names == ["b1"] + assert tile.band_names == ["band1"] with pytest.warns(ExpressionMixingWarning): - tile = cog.part((-11.5, 24.5, -11.0, 25.0), bands="b1", expression="b1*2") + tile = cog.part( + (-11.5, 24.5, -11.0, 25.0), bands="band1", expression="band1*2" + ) assert tile.data.any() - assert tile.band_names == ["b1*2"] + assert tile.band_names == ["band1*2"] with pytest.raises(MissingBands): cog.preview() - tile = cog.preview(bands="b1") + tile = cog.preview(bands="band1") assert tile.data.any() - assert tile.band_names == ["b1"] + assert tile.band_names == ["band1"] with pytest.warns(ExpressionMixingWarning): - tile = cog.preview(bands="b1", expression="b1*2") + tile = cog.preview(bands="band1", expression="band1*2") assert tile.data.any() - assert tile.band_names == ["b1*2"] + assert tile.band_names == ["band1*2"] with pytest.raises(MissingBands): cog.point(-11.5, 24.5) - assert cog.point(-11.5, 24.5, bands="b1") + pts, names = cog.point(-11.5, 24.5, bands="band1") + assert len(pts) == 1 + assert names == ["band1"] + + pts, names = cog.point(-11.5, 24.5, bands=("band1", "band2")) + assert len(pts) == 2 + assert names == ["band1", "band2"] + + pts, names = cog.point(-11.5, 24.5, expression="band1/band2") + assert len(pts) == 1 + assert names == ["band1/band2"] with pytest.warns(ExpressionMixingWarning): - assert cog.point(-11.5, 24.5, bands="b1", expression="b1*2") + assert cog.point(-11.5, 24.5, bands="band1", expression="band1*2") feat = { "type": "Feature", @@ -162,11 +174,11 @@ def test_MultiBandReader(): with pytest.raises(MissingBands): cog.feature(feat) - img = cog.feature(feat, bands="b1") + img = cog.feature(feat, bands="band1") assert img.data.any() assert not img.mask.all() - assert img.band_names == ["b1"] + assert img.band_names == ["band1"] with pytest.warns(ExpressionMixingWarning): - img = cog.feature(feat, bands="b1", expression="b1*2") - assert img.band_names == ["b1*2"] + img = cog.feature(feat, bands="band1", expression="band1*2") + assert img.band_names == ["band1*2"] diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 8bf1868f..303984e6 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -115,7 +115,7 @@ def test_info_valid(): assert meta.offset assert meta.band_metadata band_meta = meta.band_metadata[0] - assert band_meta[0] == "1" + assert band_meta[0] == "b1" assert "STATISTICS_MAXIMUM" in band_meta[1] with COGReader(COG_ALPHA) as cog: @@ -142,7 +142,7 @@ def test_tile_valid_default(): img = cog.tile(43, 24, 7) assert img.data.shape == (1, 256, 256) assert img.mask.all() - assert img.band_names == ["1"] + assert img.band_names == ["b1"] # Validate that Tile and Part gives the same result tile_bounds = WEB_MERCATOR_TMS.xy_bounds(43, 24, 7) @@ -183,7 +183,7 @@ def test_tile_valid_default(): ), ) assert img.data.shape == (2, 256, 256) - assert img.band_names == ["1", "1"] + assert img.band_names == ["b1", "b1"] # We are using a file that is aligned with the grid so no resampling should be involved with COGReader(COG_WEB) as cog: @@ -232,20 +232,24 @@ def test_point_valid(): lon = -56.624124590533825 lat = 73.52687881825946 with COGReader(COG_NODATA) as cog: - pts = cog.point(lon, lat) + pts, names = cog.point(lon, lat) assert len(pts) == 1 + assert names == ["b1"] - pts = cog.point(lon, lat, expression="b1*2;b1-100") + pts, names = cog.point(lon, lat, expression="b1*2;b1-100") assert len(pts) == 2 + assert names == ["b1*2", "b1-100"] with pytest.warns(ExpressionMixingWarning): - pts = cog.point(lon, lat, indexes=(1, 2, 3), expression="b1*2") + pts, names = cog.point(lon, lat, indexes=(1, 2, 3), expression="b1*2") assert len(pts) == 1 + assert names == ["b1*2"] - pts = cog.point(lon, lat, indexes=1) + pts, names = cog.point(lon, lat, indexes=1) assert len(pts) == 1 + assert names == ["b1"] - pts = cog.point( + pts, names = cog.point( lon, lat, indexes=( @@ -254,6 +258,7 @@ def test_point_valid(): ), ) assert len(pts) == 2 + assert names == ["b1", "b1"] def test_area_valid(): @@ -267,7 +272,7 @@ def test_area_valid(): with COGReader(COG_NODATA) as cog: img = cog.part(bbox) assert img.data.shape == (1, 11, 40) - assert img.band_names == ["1"] + assert img.band_names == ["b1"] data, mask = cog.part(bbox, dst_crs=cog.dataset.crs) assert data.shape == (1, 28, 30) @@ -295,7 +300,7 @@ def test_area_valid(): ), ) assert img.data.shape == (2, 11, 40) - assert img.band_names == ["1", "1"] + assert img.band_names == ["b1", "b1"] def test_preview_valid(): @@ -303,7 +308,7 @@ def test_preview_valid(): with COGReader(COGEO) as cog: img = cog.preview(max_size=128) assert img.data.shape == (1, 128, 128) - assert img.band_names == ["1"] + assert img.band_names == ["b1"] data, mask = cog.preview() assert data.shape == (1, 1024, 1021) @@ -328,7 +333,7 @@ def test_preview_valid(): ), ) assert img.data.shape == (2, 128, 128) - assert img.band_names == ["1", "1"] + assert img.band_names == ["b1", "b1"] def test_statistics(): @@ -336,21 +341,21 @@ def test_statistics(): with COGReader(COGEO) as cog: stats = cog.statistics() assert len(stats) == 1 - assert isinstance(stats["1"], BandStatistics) - assert stats["1"].percentile_2 - assert stats["1"].percentile_98 + assert isinstance(stats["b1"], BandStatistics) + assert stats["b1"].percentile_2 + assert stats["b1"].percentile_98 with COGReader(COGEO) as cog: stats = cog.statistics(percentiles=[3]) - assert stats["1"].percentile_3 + assert stats["b1"].percentile_3 with COGReader(COGEO) as cog: stats = cog.statistics(percentiles=[3]) - assert stats["1"].percentile_3 + assert stats["b1"].percentile_3 with COGReader(COG_CMAP) as cog: stats = cog.statistics(categorical=True) - assert stats["1"].histogram[1] == [ + assert stats["b1"].histogram[1] == [ 1.0, 3.0, 4.0, @@ -365,7 +370,7 @@ def test_statistics(): ] stats = cog.statistics(categorical=True, categories=[1, 3]) - assert stats["1"].histogram[1] == [ + assert stats["b1"].histogram[1] == [ 1.0, 3.0, ] @@ -373,7 +378,7 @@ def test_statistics(): # make sure kwargs are passed to `preview` with COGReader(COGEO) as cog: stats = cog.statistics(width=100, height=100, max_size=None) - assert stats["1"].count == 10000.0 + assert stats["b1"].count == 10000.0 # Check results for expression with COGReader(COGEO) as cog: @@ -406,11 +411,11 @@ def test_COGReader_Options(): assert not numpy.array_equal(data_default, data) with COGReader(COG_SCALE, unscale=True) as cog: - p = cog.point(310000, 4100000, coord_crs=cog.dataset.crs) + p, _ = cog.point(310000, 4100000, coord_crs=cog.dataset.crs) assert round(p[0], 3) == 1000.892 # passing unscale in method should overwrite the defaults - p = cog.point(310000, 4100000, coord_crs=cog.dataset.crs, unscale=False) + p, _ = cog.point(310000, 4100000, coord_crs=cog.dataset.crs, unscale=False) assert p[0] == 8917 cutline = "POLYGON ((13 1685, 1010 6, 2650 967, 1630 2655, 13 1685))" @@ -432,10 +437,10 @@ def callback(data, mask): lon = -56.624124590533825 lat = 73.52687881825946 with COGReader(COG_NODATA, post_process=callback) as cog: - pts = cog.point(lon, lat) + pts, _ = cog.point(lon, lat) with COGReader(COG_NODATA) as cog: - pts_init = cog.point(lon, lat) + pts_init, _ = cog.point(lon, lat) assert pts[0] == pts_init[0] * 2 @@ -451,7 +456,7 @@ def test_cog_with_internal_gcps(): metadata = cog.info() assert len(metadata.band_metadata) == 1 - assert metadata.band_descriptions == [("1", "")] + assert metadata.band_descriptions == [("b1", "")] tile_z = 8 tile_x = 183 @@ -479,7 +484,7 @@ def test_cog_with_internal_gcps(): metadata = cog.info() assert len(metadata.band_metadata) == 1 - assert metadata.band_descriptions == [("1", "")] + assert metadata.band_descriptions == [("b1", "")] tile_z = 8 tile_x = 183 @@ -611,7 +616,7 @@ def test_feature_valid(): with COGReader(COG_NODATA) as cog: img = cog.feature(feature, max_size=1024) assert img.data.shape == (1, 348, 1024) - assert img.band_names == ["1"] + assert img.band_names == ["b1"] img = cog.feature(feature, dst_crs=cog.dataset.crs, max_size=1024) assert img.data.shape == (1, 1024, 869) @@ -642,7 +647,7 @@ def test_feature_valid(): max_size=1024, ) assert img.data.shape == (2, 348, 1024) - assert img.band_names == ["1", "1"] + assert img.band_names == ["b1", "b1"] # feature overlaping on mask area mask_feat = { diff --git a/tests/test_io_stac.py b/tests/test_io_stac.py index daf93a52..8f098b35 100644 --- a/tests/test_io_stac.py +++ b/tests/test_io_stac.py @@ -138,22 +138,29 @@ def test_tile_valid(rio): img = stac.tile(71, 102, 8, assets="green") assert img.data.shape == (1, 256, 256) assert img.mask.shape == (256, 256) - assert img.band_names == ["green_1"] + assert img.band_names == ["green_b1"] - data, mask = stac.tile(71, 102, 8, assets=("green",)) - assert data.shape == (1, 256, 256) - assert mask.shape == (256, 256) + img = stac.tile(71, 102, 8, assets=("green",)) + assert img.data.shape == (1, 256, 256) + assert img.mask.shape == (256, 256) + assert img.band_names == ["green_b1"] - img = stac.tile(71, 102, 8, expression="green/red") + img = stac.tile(71, 102, 8, assets=("green", "red")) + assert img.data.shape == (2, 256, 256) + assert img.mask.shape == (256, 256) + assert img.band_names == ["green_b1", "red_b1"] + + img = stac.tile(71, 102, 8, expression="green_b1/red_b1") assert img.data.shape == (1, 256, 256) assert img.mask.shape == (256, 256) - # Note: Here we loose the information about the band - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] with pytest.warns(ExpressionMixingWarning): - img = stac.tile(71, 102, 8, assets=("green", "red"), expression="green/red") + img = stac.tile( + 71, 102, 8, assets=("green", "red"), expression="green_b1/red_b1" + ) assert img.data.shape == (1, 256, 256) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] img = stac.tile( 71, @@ -170,7 +177,7 @@ def test_tile_valid(rio): ) assert img.data.shape == (3, 256, 256) assert img.mask.shape == (256, 256) - assert img.band_names == ["green_1", "green_1", "red_1"] + assert img.band_names == ["green_b1", "green_b1", "red_b1"] # check backward compatibility for `indexes` img = stac.tile( @@ -178,23 +185,27 @@ def test_tile_valid(rio): 102, 8, assets=("green", "red"), - indexes=1, + indexes=(1, 1), ) - assert img.data.shape == (2, 256, 256) + assert img.data.shape == (4, 256, 256) assert img.mask.shape == (256, 256) - assert img.band_names == ["green_1", "red_1"] + assert img.band_names == ["green_b1", "green_b1", "red_b1", "red_b1"] - img = stac.tile( - 71, - 102, - 8, - assets=("green", "red"), - asset_expression={"green": "b1*2;b1", "red": "b1*2"}, - ) + img = stac.tile(71, 102, 8, expression="green_b1*2;green_b1;red_b1*2") assert img.data.shape == (3, 256, 256) assert img.mask.shape == (256, 256) assert img.band_names == ["green_b1*2", "green_b1", "red_b1*2"] + # Should raise KeyError because of missing band 2 + with pytest.raises(KeyError): + img = stac.tile( + 71, + 102, + 8, + expression="green_b1/red_b2", + asset_indexes={"green": 1, "red": 1}, + ) + @patch("rio_tiler.io.cogeo.rasterio") def test_part_valid(rio): @@ -214,25 +225,25 @@ def test_part_valid(rio): img = stac.part(bbox, assets="green") assert img.data.shape == (1, 73, 83) assert img.mask.shape == (73, 83) - assert img.band_names == ["green_1"] + assert img.band_names == ["green_b1"] - data, mask = stac.part(bbox, assets=("green",)) - assert data.shape == (1, 73, 83) - assert mask.shape == (73, 83) + img = stac.part(bbox, assets=("green",)) + assert img.data.shape == (1, 73, 83) + assert img.mask.shape == (73, 83) - img = stac.part(bbox, expression="green/red") + img = stac.part(bbox, expression="green_b1/red_b1") assert img.data.shape == (1, 73, 83) assert img.mask.shape == (73, 83) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] - data, mask = stac.part(bbox, assets="green", max_size=30) - assert data.shape == (1, 27, 30) - assert mask.shape == (27, 30) + img = stac.part(bbox, assets="green", max_size=30) + assert img.data.shape == (1, 27, 30) + assert img.mask.shape == (27, 30) with pytest.warns(ExpressionMixingWarning): - img = stac.part(bbox, assets=("green", "red"), expression="green/red") + img = stac.part(bbox, assets=("green", "red"), expression="green_b1/red_b1") assert img.data.shape == (1, 73, 83) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] img = stac.part( bbox, @@ -247,18 +258,14 @@ def test_part_valid(rio): ) assert img.data.shape == (3, 73, 83) assert img.mask.shape == (73, 83) - assert img.band_names == ["green_1", "green_1", "red_1"] + assert img.band_names == ["green_b1", "green_b1", "red_b1"] img = stac.part(bbox, assets=("green", "red"), indexes=1) assert img.data.shape == (2, 73, 83) assert img.mask.shape == (73, 83) - assert img.band_names == ["green_1", "red_1"] + assert img.band_names == ["green_b1", "red_b1"] - img = stac.part( - bbox, - assets=("green", "red"), - asset_expression={"green": "b1*2;b1", "red": "b1*2"}, - ) + img = stac.part(bbox, expression="green_b1*2;green_b1;red_b1*2") assert img.data.shape == (3, 73, 83) assert img.mask.shape == (73, 83) assert img.band_names == ["green_b1*2", "green_b1", "red_b1*2"] @@ -280,21 +287,21 @@ def test_preview_valid(rio): img = stac.preview(assets="green") assert img.data.shape == (1, 259, 255) assert img.mask.shape == (259, 255) - assert img.band_names == ["green_1"] + assert img.band_names == ["green_b1"] - data, mask = stac.preview(assets=("green",)) - assert data.shape == (1, 259, 255) - assert mask.shape == (259, 255) + img = stac.preview(assets=("green",)) + assert img.data.shape == (1, 259, 255) + assert img.mask.shape == (259, 255) - img = stac.preview(expression="green/red") + img = stac.preview(expression="green_b1/red_b1") assert img.data.shape == (1, 259, 255) assert img.mask.shape == (259, 255) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] with pytest.warns(ExpressionMixingWarning): - img = stac.preview(assets=("green", "red"), expression="green/red") + img = stac.preview(assets=("green", "red"), expression="green_b1/red_b1") assert img.data.shape == (1, 259, 255) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] img = stac.preview( assets=("green", "red"), @@ -308,17 +315,14 @@ def test_preview_valid(rio): ) assert img.data.shape == (3, 259, 255) assert img.mask.shape == (259, 255) - assert img.band_names == ["green_1", "green_1", "red_1"] + assert img.band_names == ["green_b1", "green_b1", "red_b1"] img = stac.preview(assets=("green", "red"), indexes=1) assert img.data.shape == (2, 259, 255) assert img.mask.shape == (259, 255) - assert img.band_names == ["green_1", "red_1"] + assert img.band_names == ["green_b1", "red_b1"] - img = stac.preview( - assets=("green", "red"), - asset_expression={"green": "b1*2;b1", "red": "b1*2"}, - ) + img = stac.preview(expression="green_b1*2;green_b1;red_b1*2") assert img.data.shape == (3, 259, 255) assert img.mask.shape == (259, 255) assert img.band_names == ["green_b1*2", "green_b1", "red_b1*2"] @@ -337,50 +341,51 @@ def test_point_valid(rio): with pytest.raises(MissingAssets): stac.point(-80.477, 33.4453) - data = stac.point(-80.477, 33.4453, assets="green") + data, names = stac.point(-80.477, 33.4453, assets="green") assert len(data) == 1 + assert names == ["green_b1"] - data = stac.point(-80.477, 33.4453, assets=("green",)) + data, names = stac.point(-80.477, 33.4453, assets=("green",)) assert len(data) == 1 + assert names == ["green_b1"] - data = stac.point(-80.477, 33.4453, expression="green/red") + data, names = stac.point(-80.477, 33.4453, assets=("green", "red")) + assert len(data) == 2 + assert data == [7994, 7003] + assert names == ["green_b1", "red_b1"] + + data, names = stac.point(-80.477, 33.4453, expression="green_b1/red_b1") assert len(data) == 1 + assert data == [7994 / 7003] + assert names == ["green_b1/red_b1"] with pytest.warns(ExpressionMixingWarning): - data = stac.point( - -80.477, 33.4453, assets=("green", "red"), expression="green/red" + data, names = stac.point( + -80.477, 33.4453, assets=("green", "red"), expression="green_b1/red_b1" ) assert len(data) == 1 + assert names == ["green_b1/red_b1"] - data = stac.point( + data, names = stac.point( -80.477, 33.4453, assets=("green", "red"), asset_indexes={"green": (1, 1), "red": 1}, ) - assert len(data) == 2 - assert len(data[0]) == 2 - assert len(data[1]) == 1 + assert len(data) == 3 + assert data == [7994, 7994, 7003] + assert names == ["green_b1", "green_b1", "red_b1"] - data = stac.point( - -80.477, - 33.4453, - assets=("green", "red"), - indexes=1, - ) + data, names = stac.point(-80.477, 33.4453, assets=("green", "red"), indexes=1) assert len(data) == 2 - assert len(data[0]) == 1 - assert len(data[1]) == 1 + assert data == [7994, 7003] + assert names == ["green_b1", "red_b1"] - data = stac.point( - -80.477, - 33.4453, - assets=("green", "red"), - asset_expression={"green": "b1*2;b1", "red": "b1*2"}, + data, names = stac.point( + -80.477, 33.4453, expression="green_b1*2;green_b1;red_b1*2" ) - assert len(data) == 2 - assert len(data[0]) == 2 - assert len(data[1]) == 1 + assert len(data) == 3 + assert names == ["green_b1*2", "green_b1", "red_b1*2"] @patch("rio_tiler.io.cogeo.rasterio") @@ -400,11 +405,11 @@ def test_statistics_valid(rio): stats = stac.statistics(assets="green") assert stats["green"] - assert isinstance(stats["green"]["1"], BandStatistics) + assert isinstance(stats["green"]["b1"], BandStatistics) stats = stac.statistics(assets=("green", "red"), hist_options={"bins": 20}) assert len(stats) == 2 - assert len(stats["green"]["1"]["histogram"][0]) == 20 + assert len(stats["green"]["b1"]["histogram"][0]) == 20 # Check that asset_expression is passed stats = stac.statistics( @@ -419,14 +424,14 @@ def test_statistics_valid(rio): assets=("green", "red"), asset_indexes={"green": 1, "red": 1} ) assert stats["green"] - assert isinstance(stats["green"]["1"], BandStatistics) - assert isinstance(stats["red"]["1"], BandStatistics) + assert isinstance(stats["green"]["b1"], BandStatistics) + assert isinstance(stats["red"]["b1"], BandStatistics) # Check that asset_indexes is passed stats = stac.statistics(assets=("green", "red"), indexes=1) assert stats["green"] - assert isinstance(stats["green"]["1"], BandStatistics) - assert isinstance(stats["red"]["1"], BandStatistics) + assert isinstance(stats["green"]["b1"], BandStatistics) + assert isinstance(stats["red"]["b1"], BandStatistics) @patch("rio_tiler.io.cogeo.rasterio") @@ -438,28 +443,25 @@ def test_merged_statistics_valid(rio): with pytest.warns(UserWarning): stats = stac.merged_statistics() assert len(stats) == 3 - assert isinstance(stats["red_1"], BandStatistics) - assert stats["red_1"] - assert stats["green_1"] - assert stats["blue_1"] + assert isinstance(stats["red_b1"], BandStatistics) + assert stats["red_b1"] + assert stats["green_b1"] + assert stats["blue_b1"] with pytest.raises(InvalidAssetName): stac.merged_statistics(assets="vert") stats = stac.merged_statistics(assets="green") - assert isinstance(stats["green_1"], BandStatistics) + assert isinstance(stats["green_b1"], BandStatistics) stats = stac.merged_statistics( assets=("green", "red"), hist_options={"bins": 20} ) assert len(stats) == 2 - assert len(stats["green_1"]["histogram"][0]) == 20 - assert len(stats["red_1"]["histogram"][0]) == 20 + assert len(stats["green_b1"]["histogram"][0]) == 20 + assert len(stats["red_b1"]["histogram"][0]) == 20 - # Check that asset_expression is passed - stats = stac.merged_statistics( - assets=("green", "red"), asset_expression={"green": "b1*2", "red": "b1+100"} - ) + stats = stac.merged_statistics(expression="green_b1*2;green_b1;red_b1+100") assert isinstance(stats["green_b1*2"], BandStatistics) assert isinstance(stats["red_b1+100"], BandStatistics) @@ -467,19 +469,8 @@ def test_merged_statistics_valid(rio): stats = stac.merged_statistics( assets=("green", "red"), asset_indexes={"green": 1, "red": 1} ) - assert isinstance(stats["green_1"], BandStatistics) - assert isinstance(stats["red_1"], BandStatistics) - - # Check Expression - stats = stac.merged_statistics(expression="green/red") - assert isinstance(stats["green/red"], BandStatistics) - - # Check that we can use expression and asset_expression - stats = stac.merged_statistics( - expression="green/red", - asset_expression={"green": "b1*2", "red": "b1+100"}, - ) - assert isinstance(stats["green/red"], BandStatistics) + assert isinstance(stats["green_b1"], BandStatistics) + assert isinstance(stats["red_b1"], BandStatistics) @patch("rio_tiler.io.cogeo.rasterio") @@ -506,14 +497,22 @@ def test_info_valid(rio): def test_parse_expression(): - """.""" + """Parse assets expressions.""" with STACReader(STAC_PATH) as stac: - assert sorted(stac.parse_expression("green*red+red/blue+2.0")) == [ + assert sorted( + stac.parse_expression("green_b1*red_b1+red_b1/blue_b1+2.0;red_b1") + ) == [ "blue", "green", "red", ] + # make sure we match full word only + with STACReader(STAC_PATH) as stac: + assert sorted( + stac.parse_expression("greenish_b1*red_b1+red_b1/blue_b1+2.0;red_b1") + ) == ["blue", "red"] + @patch("rio_tiler.io.cogeo.rasterio") def test_feature_valid(rio): @@ -553,43 +552,41 @@ def test_feature_valid(rio): img = stac.feature(feat, assets="green") assert img.data.shape == (1, 118, 96) assert img.mask.shape == (118, 96) - assert img.band_names == ["green_1"] + assert img.band_names == ["green_b1"] - data, mask = stac.feature(feat, assets=("green",)) - assert data.shape == (1, 118, 96) - assert mask.shape == (118, 96) + img = stac.feature(feat, assets=("green",)) + assert img.data.shape == (1, 118, 96) + assert img.mask.shape == (118, 96) - img = stac.feature(feat, expression="green/red") + img = stac.feature(feat, expression="green_b1/red_b1") assert img.data.shape == (1, 118, 96) assert img.mask.shape == (118, 96) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] - data, mask = stac.feature(feat, assets="green", max_size=30) - assert data.shape == (1, 30, 25) - assert mask.shape == (30, 25) + img = stac.feature(feat, assets="green", max_size=30) + assert img.data.shape == (1, 30, 25) + assert img.mask.shape == (30, 25) with pytest.warns(ExpressionMixingWarning): - img = stac.feature(feat, assets=("green", "red"), expression="green/red") + img = stac.feature( + feat, assets=("green", "red"), expression="green_b1/red_b1" + ) assert img.data.shape == (1, 118, 96) - assert img.band_names == ["green/red"] + assert img.band_names == ["green_b1/red_b1"] img = stac.feature( feat, assets=("green", "red"), asset_indexes={"green": (1, 1), "red": 1} ) assert img.data.shape == (3, 118, 96) assert img.mask.shape == (118, 96) - assert img.band_names == ["green_1", "green_1", "red_1"] + assert img.band_names == ["green_b1", "green_b1", "red_b1"] img = stac.feature(feat, assets=("green", "red"), indexes=1) assert img.data.shape == (2, 118, 96) assert img.mask.shape == (118, 96) - assert img.band_names == ["green_1", "red_1"] + assert img.band_names == ["green_b1", "red_b1"] - img = stac.feature( - feat, - assets=("green", "red"), - asset_expression={"green": "b1*2;b1", "red": "b1*2"}, - ) + img = stac.feature(feat, expression="green_b1*2;green_b1;red_b1*2") assert img.data.shape == (3, 118, 96) assert img.mask.shape == (118, 96) assert img.band_names == ["green_b1*2", "green_b1", "red_b1*2"] diff --git a/tests/test_models.py b/tests/test_models.py index eea50727..3ba00ae0 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -121,3 +121,17 @@ def test_merge_with_diffsize(): img2 = ImageData(numpy.zeros((1, 256, 256))) img = ImageData.create_from_list([img1, img2]) assert len(w) == 0 + + +def test_apply_expression(): + """Apply expression""" + img = ImageData(numpy.zeros((2, 256, 256))) + img2 = img.apply_expression("b1+b2") + assert img.count == 2 + assert img.width == 256 + assert img.height == 256 + assert img.band_names == ["b1", "b2"] + assert img2.count == 1 + assert img2.width == 256 + assert img2.height == 256 + assert img2.band_names == ["b1+b2"] diff --git a/tests/test_mosaic.py b/tests/test_mosaic.py index d2d76f39..da147095 100644 --- a/tests/test_mosaic.py +++ b/tests/test_mosaic.py @@ -69,10 +69,10 @@ def test_mosaic_tiler(): assert t.dtype == m.dtype img, _ = mosaic.mosaic_reader(assets, _read_tile, x, y, z) - assert img.band_names == ["1", "2", "3"] + assert img.band_names == ["b1", "b2", "b3"] img, _ = mosaic.mosaic_reader(assets, _read_tile, x, y, z, indexes=[1]) - assert img.band_names == ["1"] + assert img.band_names == ["b1"] img, _ = mosaic.mosaic_reader(assets, _read_tile, x, y, z, expression="b1*3") assert img.band_names == ["b1*3"] @@ -281,7 +281,7 @@ def _reader(src_path: str, *args, **kwargs) -> ImageData: assets="green", threads=0, ) - assert img.band_names == ["green_1"] + assert img.band_names == ["green_b1"] img, _ = mosaic.mosaic_reader( [stac_asset], @@ -289,23 +289,11 @@ def _reader(src_path: str, *args, **kwargs) -> ImageData: 71, 102, 8, - assets=["green"], - asset_expression={"green": "b1*2"}, + expression="green_b1*2", threads=0, ) assert img.band_names == ["green_b1*2"] - img, _ = mosaic.mosaic_reader( - [stac_asset], - _reader, - 71, - 102, - 8, - expression="green*2", - threads=0, - ) - assert img.band_names == ["green*2"] - def test_mosaic_tiler_Stdev(): """Test Stdev mosaic methods.""" diff --git a/tests/test_reader.py b/tests/test_reader.py index 2c1ffd4c..90d4e30a 100644 --- a/tests/test_reader.py +++ b/tests/test_reader.py @@ -369,24 +369,32 @@ def test_tile_read_vrt_option(): def test_point(): """Read point values""" with rasterio.open(COG_SCALE) as src_dst: - p = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs, indexes=1) + p, name = reader.point( + src_dst, [310000, 4100000], coord_crs=src_dst.crs, indexes=1 + ) assert p == [8917] + assert name == ["b1"] - p = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs) + p, name = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs) assert p == [8917] + assert name == ["b1"] with pytest.raises(PointOutsideBounds): reader.point(src_dst, [810000, 4100000], coord_crs=src_dst.crs) with rasterio.open(S3_MASK_PATH) as src_dst: # Test with COG + internal mask - assert not reader.point(src_dst, [-104.7753105, 38.953548])[0] - assert reader.point(src_dst, [-104.7753105415, 38.953548], masked=False)[0] == 0 + assert not reader.point(src_dst, [-104.7753105, 38.953548])[0][0] + assert ( + reader.point(src_dst, [-104.7753105415, 38.953548], masked=False)[0][0] == 0 + ) with rasterio.open(S3_ALPHA_PATH) as src_dst: # Test with COG + Alpha Band - assert not reader.point(src_dst, [-104.77519499, 38.95367054])[0] - assert reader.point(src_dst, [-104.77519499, 38.95367054], masked=False)[0] == 0 + assert not reader.point(src_dst, [-104.77519499, 38.95367054])[0][0] + assert ( + reader.point(src_dst, [-104.77519499, 38.95367054], masked=False)[0][0] == 0 + ) def test_part_with_buffer(): From 4a6c14ee747b95a0251c9be5f2c73796ff3174af Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Fri, 16 Sep 2022 11:30:43 +0200 Subject: [PATCH 09/23] add PointData class (#526) * add PointData class * fix test * remove deprecated * fix test 2 --- CHANGES.md | 42 +++++++------- rio_tiler/io/base.py | 72 ++++++++--------------- rio_tiler/io/cogeo.py | 22 +++----- rio_tiler/models.py | 113 +++++++++++++++++++++++++++++++++++++ rio_tiler/reader.py | 67 ++++++++++++---------- rio_tiler/tasks.py | 17 +++++- tests/test_io_MultiBand.py | 18 +++--- tests/test_io_cogeo.py | 47 ++++++++------- tests/test_io_stac.py | 63 ++++++++++----------- tests/test_reader.py | 29 +++++----- 10 files changed, 293 insertions(+), 197 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b45a34bd..3d8264cc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -60,7 +60,7 @@ stac.tile(701, 102, 8, expression="green_b1/red_b1") ``` -* `rio_tiler.reader.point()` (and all Reader's point methods) now return a **Tuple** of values and band names +* `rio_tiler.reader.point()` (and all Reader's point methods) now return a **rio_tiler.models.PointData** object ```python # before @@ -77,31 +77,27 @@ with rasterio.open("cog.tif") as src:: v, band_names = rio_tiler.reader.point(10.20, -42) print(v) - >>> [0, 0, 0] - print(band_names) - >>> ["b1", "b2", "b3"] + >>> PointData( + data=array([3744], dtype=uint16), + mask=array([255], dtype=uint8), + band_names=['b1'], + coordinates=(10.20, -42), + crs=CRS.from_epsg(4326), + assets=['cog.tif'], + metadata={} + ) with COGReader("cog.tif") as cog: print(cog.point(10.20, -42.0)) - >>> ([0, 0, 0], ["b1", "b2", "b3"]) - ``` - -* `MultiBaseReader.point()` method now returns data as flat (merged) list (instead of a list of list) - - ```python - # before - with STACReader("stac.json") as stac: - pt = stac.point(10.20, -42, assets=("green", "red")) - print(pt) - >>> [[0], [0]] - - # now - with STACReader("stac.json") as stac: - pt, names = stac.point(10.20, -42, assets=("green", "red")) - print(pt) - >>> [0, 0] - print(names) - >>> ["green_b1", "red_b1"] + >>> PointData( + data=array([3744], dtype=uint16), + mask=array([255], dtype=uint8), + band_names=['b1'], + coordinates=(10.20, -42), + crs=CRS.from_epsg(4326), + assets=['cog.tif'], + metadata={} + ) ``` # 3.1.6 (2022-07-22) diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index 5cb5720a..d9461228 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -1,7 +1,6 @@ """rio_tiler.io.base: ABC class for rio-tiler readers.""" import abc -import itertools import re import warnings from typing import Any, Dict, List, Optional, Sequence, Tuple, Type, Union @@ -19,9 +18,8 @@ MissingBands, TileOutsideBounds, ) -from ..expression import apply_expression, get_expression_blocks -from ..models import BandStatistics, ImageData, Info -from ..tasks import multi_arrays, multi_values +from ..models import BandStatistics, ImageData, Info, PointData +from ..tasks import multi_arrays, multi_points, multi_values from ..types import BBox, Indexes from ..utils import get_array_statistics @@ -202,7 +200,7 @@ def preview(self, **kwargs: Any) -> ImageData: ... @abc.abstractmethod - def point(self, lon: float, lat: float, **kwargs: Any) -> Tuple[List, List[str]]: + def point(self, lon: float, lat: float, **kwargs: Any) -> PointData: """Read a value from a Dataset. Args: @@ -210,8 +208,7 @@ def point(self, lon: float, lat: float, **kwargs: Any) -> Tuple[List, List[str]] lat (float): Latitude. Returns: - list: Pixel value per bands/assets. - list: band names + rio_tiler.models.PointData: PointData instance with data, mask and spatial info. """ ... @@ -609,7 +606,7 @@ def point( asset_indexes: Optional[Dict[str, Indexes]] = None, # Indexes for each asset asset_expression: Optional[Dict[str, str]] = None, # Expression for each asset **kwargs: Any, - ) -> Tuple[List, List[str]]: + ) -> PointData: """Read pixel value from multiple assets. Args: @@ -622,8 +619,7 @@ def point( kwargs (optional): Options to forward to the `self.reader.point` method. Returns: - list: Pixel values per assets. - list: band names + PointData """ if asset_expression: @@ -648,33 +644,19 @@ def point( asset_indexes = asset_indexes or {} - def _reader(asset: str, *args, **kwargs: Any) -> Tuple[List, List[str]]: + def _reader(asset: str, *args, **kwargs: Any) -> PointData: url = self._get_asset_url(asset) idx = asset_indexes.get(asset) or kwargs.pop("indexes", None) # type: ignore with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - points, band_names = cog.point(*args, indexes=idx, **kwargs) - return ( - points, - [f"{asset}_{n}" for n in band_names], - ) - - data = multi_values(assets, _reader, lon, lat, **kwargs) - values, band_names = zip(*[(v, b) for _, (v, b) in data.items()]) - - # Create an array with all the point values - values = numpy.array(list(itertools.chain.from_iterable(values))) - - # Create a list of all point's band name - band_names = list(itertools.chain.from_iterable(band_names)) + data = cog.point(*args, indexes=idx, **kwargs) + data.band_names = [f"{asset}_{n}" for n in data.band_names] + return data + data = multi_points(assets, _reader, lon, lat, **kwargs) if expression: - blocks = get_expression_blocks(expression) - return ( - apply_expression(blocks, band_names, values).tolist(), - blocks, - ) + return data.apply_expression(expression) - return values.tolist(), band_names + return data def feature( self, @@ -1054,7 +1036,7 @@ def point( bands: Union[Sequence[str], str] = None, expression: Optional[str] = None, **kwargs: Any, - ) -> Tuple[List, List[str]]: + ) -> PointData: """Read a pixel values from multiple bands. Args: @@ -1065,8 +1047,7 @@ def point( kwargs (optional): Options to forward to the `self.reader.point` method. Returns: - list: Pixel value per bands. - list: band names + PointData """ if isinstance(bands, str): @@ -1086,27 +1067,18 @@ def point( "bands must be passed either via expression or bands options." ) - def _reader(band: str, *args, **kwargs: Any) -> Tuple[numpy.array, List[str]]: + def _reader(band: str, *args, **kwargs: Any) -> PointData: url = self._get_band_url(band) with self.reader(url, tms=self.tms, **self.reader_options) as cog: # type: ignore - values, _ = cog.point(*args, **kwargs) - return ( - values[0], # We only return the first value - [band], - ) - - data = multi_values(bands, _reader, lon, lat, **kwargs) - values, band_names = zip(*[(v, b) for b, (v, _) in data.items()]) - values = numpy.array(values) + data = cog.point(*args, **kwargs) + data.band_names = [band] # use `band` as name instead of band index + return data + data = multi_points(bands, _reader, lon, lat, **kwargs) if expression: - blocks = get_expression_blocks(expression) - return ( - apply_expression(blocks, band_names, values).tolist(), - blocks, - ) + return data.apply_expression(expression) - return [v.tolist() for v in values], list(band_names) + return data def feature( self, diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index 6dbedbfb..0017a6d2 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -2,7 +2,7 @@ import contextlib import warnings -from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Sequence, Union import attr import numpy @@ -20,8 +20,8 @@ from .. import reader from ..constants import WEB_MERCATOR_TMS, WGS84_CRS from ..errors import ExpressionMixingWarning, NoOverviewWarning, TileOutsideBounds -from ..expression import apply_expression, get_expression_blocks, parse_expression -from ..models import BandStatistics, ImageData, Info +from ..expression import parse_expression +from ..models import BandStatistics, ImageData, Info, PointData from ..types import BBox, DataMaskType, Indexes, NoData, NumType from ..utils import create_cutline, get_array_statistics, has_alpha_band, has_mask_band from .base import BaseReader @@ -507,7 +507,7 @@ def point( indexes: Optional[Indexes] = None, expression: Optional[str] = None, **kwargs: Any, - ) -> Tuple[List, List[str]]: + ) -> PointData: """Read a pixel value from a COG. Args: @@ -519,8 +519,7 @@ def point( kwargs (optional): Options to forward to the `rio_tiler.reader.point` function. Returns: - list: Pixel value per band indexes. - list: band names + PointData """ kwargs = {**self._kwargs, **kwargs} @@ -537,18 +536,15 @@ def point( if expression: indexes = parse_expression(expression) - values, band_names = reader.point( + pt = reader.point( self.dataset, (lon, lat), indexes=indexes, coord_crs=coord_crs, **kwargs ) + pt.assets = [self.input] if expression: - blocks = get_expression_blocks(expression) - return ( - apply_expression(blocks, band_names, numpy.array(values)).tolist(), - blocks, - ) + return pt.apply_expression(expression) - return values, band_names + return pt def feature( self, diff --git a/rio_tiler/models.py b/rio_tiler/models.py index e9f28d63..53e6c33f 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -131,6 +131,119 @@ def rescale_image( return data.astype(out_dtype) +@attr.s +class PointData: + """Point Data class. + + Attributes: + data (numpy.ndarray): pixel values. + mask (numpy.ndarray): rasterio mask values. + assets (list, optional): list of assets used to construct the data values. + coordinates (tuple): Point's coordinates. + crs (rasterio.crs.CRS, optional): Coordinates Reference System of the bounds. + metadata (dict, optional): Additional metadata. Defaults to `{}`. + band_names (list, optional): name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. + + """ + + data: numpy.ndarray = attr.ib() + mask: numpy.ndarray = attr.ib() + band_names: List[str] = attr.ib() + coordinates: Optional[Tuple[float, float]] = attr.ib(default=None) + crs: Optional[CRS] = attr.ib(default=None) + assets: Optional[List] = attr.ib(default=None) + metadata: Optional[Dict] = attr.ib(factory=dict) + + @data.validator + def _validate_data(self, attribute, value): + """PointsData data has to be a 1d array.""" + if not len(value.shape) == 1: + raise ValueError("PointsData data has to be a 1D array") + + @coordinates.validator + def _validate_coordinates(self, attribute, value): + """coordinates has to be a 2d list.""" + if value and not len(value) == 2: + raise ValueError("Coordinates data has to be a 2d list") + + @band_names.default + def _default_names(self): + return [f"{ix + 1}" for ix in range(self.count)] + + @mask.default + def _default_mask(self): + return numpy.zeros(self.data.shape[0], dtype="uint8") + 255 + + def __iter__(self): + """Allow for variable expansion.""" + for i in self.data: + yield i + + @property + def count(self) -> int: + """Number of band.""" + return self.data.shape[0] + + @classmethod + def create_from_list(cls, data: Sequence["PointData"]): + """Create PointData from a sequence of PointsData objects. + + Args: + data (sequence): sequence of PointData. + + """ + # validate coordinates + if all([pt.coordinates or pt.crs or None for pt in data]): + lon, lat, crs = zip(*[(*(pt.coordinates or []), pt.crs) for pt in data]) + if len(set(lon)) > 1 or len(set(lat)) > 1 or len(set(crs)) > 1: + raise Exception( + "Cannot concatenate points with different coordinates/CRS." + ) + + arr = numpy.concatenate([pt.data for pt in data]) + mask = numpy.concatenate([pt.mask for pt in data]) + + assets = list( + dict.fromkeys( + itertools.chain.from_iterable([pt.assets for pt in data if pt.assets]) + ) + ) + + band_names = list( + itertools.chain.from_iterable( + [pt.band_names for pt in data if pt.band_names] + ) + ) + + return cls( + arr, + mask, + assets=assets, + crs=data[0].crs, + coordinates=data[0].coordinates, + band_names=band_names, + ) + + def as_masked(self) -> numpy.ma.MaskedArray: + """return a numpy masked array.""" + data = numpy.ma.array(self.data) + data.mask = self.mask == 0 + return data + + def apply_expression(self, expression: str) -> "PointData": + """Apply expression to the image data.""" + blocks = get_expression_blocks(expression) + return PointData( + apply_expression(blocks, self.band_names, self.data), + self.mask, + assets=self.assets, + crs=self.crs, + coordinates=self.coordinates, + band_names=blocks, + metadata=self.metadata, + ) + + @attr.s class ImageData: """Image Data class. diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index 4193849b..536298e4 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -2,7 +2,7 @@ import math import warnings -from typing import Any, Callable, Dict, List, Optional, Tuple, Union +from typing import Any, Callable, Dict, Optional, Tuple, Union import numpy from affine import Affine @@ -21,7 +21,7 @@ PointOutsideBounds, TileOutsideBounds, ) -from .models import ImageData +from .models import ImageData, PointData from .types import BBox, DataMaskType, Indexes, NoData from .utils import _requested_tile_aligned_with_internal_tile as is_aligned from .utils import get_vrt_transform, has_alpha_band, non_alpha_indexes @@ -65,7 +65,7 @@ def read( indexes = (indexes,) if indexes is None: - indexes = non_alpha_indexes(src_dst) + indexes = non_alpha_indexes(src_dst) if nodata is None else src_dst.indexes if indexes != src_dst.indexes: warnings.warn( "Alpha band was removed from the output data array", AlphaBandWarning @@ -319,7 +319,6 @@ def point( coordinates: Tuple[float, float], indexes: Optional[Indexes] = None, coord_crs: CRS = WGS84_CRS, - masked: bool = True, nodata: Optional[NoData] = None, unscale: bool = False, resampling_method: Resampling = "nearest", @@ -327,7 +326,7 @@ def point( post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] ] = None, -) -> Tuple[List, List[str]]: +) -> PointData: """Read a pixel value for a point. Args: @@ -335,7 +334,6 @@ def point( coordinates (tuple): Coordinates in form of (X, Y). indexes (sequence of int or int, optional): Band indexes. coord_crs (rasterio.crs.CRS, optional): Coordinate Reference System of the input coords. Defaults to `epsg:4326`. - masked (bool): Mask samples that fall outside the extent of the dataset. Defaults to `True`. nodata (int or float, optional): Overwrite dataset internal nodata value. unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. @@ -343,10 +341,15 @@ def point( post_process (callable, optional): Function to apply on output data and mask values. Returns: - list: Pixel value per band indexes. - list: band names + PointData """ + if vrt_options: + warnings.warn( + "'vrt_options' has no influence over the `point()` method.", + UserWarning, + ) + if isinstance(indexes, int): indexes = (indexes,) @@ -359,34 +362,38 @@ def point( ): raise PointOutsideBounds("Point is outside dataset bounds") - indexes = indexes if indexes is not None else src_dst.indexes + if indexes is None: + indexes = non_alpha_indexes(src_dst) if nodata is None else src_dst.indexes + if indexes != src_dst.indexes: + warnings.warn( + "Alpha band was removed from the output data array", AlphaBandWarning + ) band_names = [f"b{idx}" for idx in indexes] - vrt_params = dict(add_alpha=True, resampling=Resampling[resampling_method]) - nodata = nodata if nodata is not None else src_dst.nodata - if nodata is not None: - vrt_params.update(dict(nodata=nodata, add_alpha=False, src_nodata=nodata)) - - if has_alpha_band(src_dst): - vrt_params.update(dict(add_alpha=False)) + values = list(src_dst.sample([(lon[0], lat[0])], indexes=indexes, masked=True))[0] + data = values.data + is_masked = ~values.mask - if vrt_options: - vrt_params.update(vrt_options) + if nodata is not None: + # https://github.com/rasterio/rasterio/blob/dc6b8682869bf16f2235da5e3e6eb5a2c7723b79/rasterio/_io.pyx#L1035 + # if one band is masked then all bands should + is_masked = ~numpy.logical_or.reduce(data == nodata) - with WarpedVRT(src_dst, **vrt_params) as vrt: - values = list(vrt.sample([(lon[0], lat[0])], indexes=indexes, masked=masked))[0] - point_values = values.data - mask = values.mask * 255 if masked else numpy.zeros(point_values.shape) + mask = numpy.repeat(is_masked, len(data)) * numpy.uint8(255) if unscale: - point_values = point_values.astype("float32", casting="unsafe") - numpy.multiply( - point_values, src_dst.scales[0], out=point_values, casting="unsafe" - ) - numpy.add(point_values, src_dst.offsets[0], out=point_values, casting="unsafe") + data = data.astype("float32", casting="unsafe") + numpy.multiply(data, src_dst.scales[0], out=data, casting="unsafe") + numpy.add(data, src_dst.offsets[0], out=data, casting="unsafe") if post_process: - point_values, _ = post_process(point_values, mask) - - return point_values.tolist(), band_names + data, _ = post_process(data, mask) + + return PointData( + data, + mask, + coordinates=coordinates, + crs=coord_crs, + band_names=band_names, + ) diff --git a/rio_tiler/tasks.py b/rio_tiler/tasks.py index 87530b12..da7ca38b 100644 --- a/rio_tiler/tasks.py +++ b/rio_tiler/tasks.py @@ -6,7 +6,7 @@ from .constants import MAX_THREADS from .logger import logger -from .models import ImageData +from .models import ImageData, PointData TaskType = Sequence[Tuple[Union[futures.Future, Callable], Any]] @@ -72,6 +72,21 @@ def multi_arrays( ) +def multi_points( + asset_list: Sequence, + reader: Callable[..., PointData], + *args: Any, + threads: int = MAX_THREADS, + allowed_exceptions: Optional[Tuple] = None, + **kwargs: Any, +) -> PointData: + """Merge points returned from tasks.""" + tasks = create_tasks(reader, asset_list, threads, *args, **kwargs) + return PointData.create_from_list( + [data for data, _ in filter_tasks(tasks, allowed_exceptions=allowed_exceptions)] + ) + + def multi_values( asset_list: Sequence, reader: Callable, diff --git a/tests/test_io_MultiBand.py b/tests/test_io_MultiBand.py index 43be36e0..4cae44b9 100644 --- a/tests/test_io_MultiBand.py +++ b/tests/test_io_MultiBand.py @@ -137,17 +137,17 @@ def test_MultiBandReader(): with pytest.raises(MissingBands): cog.point(-11.5, 24.5) - pts, names = cog.point(-11.5, 24.5, bands="band1") - assert len(pts) == 1 - assert names == ["band1"] + pt = cog.point(-11.5, 24.5, bands="band1") + assert len(pt.data) == 1 + assert pt.band_names == ["band1"] - pts, names = cog.point(-11.5, 24.5, bands=("band1", "band2")) - assert len(pts) == 2 - assert names == ["band1", "band2"] + pt = cog.point(-11.5, 24.5, bands=("band1", "band2")) + assert len(pt.data) == 2 + assert pt.band_names == ["band1", "band2"] - pts, names = cog.point(-11.5, 24.5, expression="band1/band2") - assert len(pts) == 1 - assert names == ["band1/band2"] + pt = cog.point(-11.5, 24.5, expression="band1/band2") + assert len(pt.data) == 1 + assert pt.band_names == ["band1/band2"] with pytest.warns(ExpressionMixingWarning): assert cog.point(-11.5, 24.5, bands="band1", expression="band1*2") diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 303984e6..015412b7 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -232,24 +232,24 @@ def test_point_valid(): lon = -56.624124590533825 lat = 73.52687881825946 with COGReader(COG_NODATA) as cog: - pts, names = cog.point(lon, lat) - assert len(pts) == 1 - assert names == ["b1"] + pt = cog.point(lon, lat) + assert len(pt.data) == 1 + assert pt.band_names == ["b1"] - pts, names = cog.point(lon, lat, expression="b1*2;b1-100") - assert len(pts) == 2 - assert names == ["b1*2", "b1-100"] + pt = cog.point(lon, lat, expression="b1*2;b1-100") + assert len(pt.data) == 2 + assert pt.band_names == ["b1*2", "b1-100"] with pytest.warns(ExpressionMixingWarning): - pts, names = cog.point(lon, lat, indexes=(1, 2, 3), expression="b1*2") - assert len(pts) == 1 - assert names == ["b1*2"] + pt = cog.point(lon, lat, indexes=(1, 2, 3), expression="b1*2") + assert len(pt.data) == 1 + assert pt.band_names == ["b1*2"] - pts, names = cog.point(lon, lat, indexes=1) - assert len(pts) == 1 - assert names == ["b1"] + pt = cog.point(lon, lat, indexes=1) + assert len(pt.data) == 1 + assert pt.band_names == ["b1"] - pts, names = cog.point( + pt = cog.point( lon, lat, indexes=( @@ -257,8 +257,8 @@ def test_point_valid(): 1, ), ) - assert len(pts) == 2 - assert names == ["b1", "b1"] + assert len(pt.data) == 2 + assert pt.band_names == ["b1", "b1"] def test_area_valid(): @@ -411,12 +411,12 @@ def test_COGReader_Options(): assert not numpy.array_equal(data_default, data) with COGReader(COG_SCALE, unscale=True) as cog: - p, _ = cog.point(310000, 4100000, coord_crs=cog.dataset.crs) - assert round(p[0], 3) == 1000.892 + p = cog.point(310000, 4100000, coord_crs=cog.dataset.crs) + assert round(float(p.data[0]), 3) == 1000.892 # passing unscale in method should overwrite the defaults - p, _ = cog.point(310000, 4100000, coord_crs=cog.dataset.crs, unscale=False) - assert p[0] == 8917 + p = cog.point(310000, 4100000, coord_crs=cog.dataset.crs, unscale=False) + assert p.data[0] == 8917 cutline = "POLYGON ((13 1685, 1010 6, 2650 967, 1630 2655, 13 1685))" with COGReader(COGEO, vrt_options={"cutline": cutline}) as cog: @@ -437,11 +437,11 @@ def callback(data, mask): lon = -56.624124590533825 lat = 73.52687881825946 with COGReader(COG_NODATA, post_process=callback) as cog: - pts, _ = cog.point(lon, lat) + pt = cog.point(lon, lat) with COGReader(COG_NODATA) as cog: - pts_init, _ = cog.point(lon, lat) - assert pts[0] == pts_init[0] * 2 + pt_init = cog.point(lon, lat) + assert pt.data[0] == pt_init.data[0] * 2 def test_cog_with_internal_gcps(): @@ -833,7 +833,7 @@ def test_nonearthbody(): lon = (cog.bounds[0] + cog.bounds[2]) / 2 lat = (cog.bounds[1] + cog.bounds[3]) / 2 - assert cog.point(lon, lat, coord_crs=cog.crs)[0] is not None + assert cog.point(lon, lat, coord_crs=cog.crs).data[0] is not None with pytest.warns(UserWarning) as warnings: europa_crs = CRS.from_authority("ESRI", 104915) @@ -927,6 +927,5 @@ def test_tms_tilesize_and_zoom(): tile_height=2048, ) with COGReader(COG_NODATA, tms=tms_2048) as cog: - print(cog.minzoom, cog.maxzoom) assert cog.minzoom == 5 assert cog.maxzoom == 6 diff --git a/tests/test_io_stac.py b/tests/test_io_stac.py index 8f098b35..df0f7d17 100644 --- a/tests/test_io_stac.py +++ b/tests/test_io_stac.py @@ -4,6 +4,7 @@ import os from unittest.mock import patch +import numpy import pytest import rasterio @@ -341,51 +342,49 @@ def test_point_valid(rio): with pytest.raises(MissingAssets): stac.point(-80.477, 33.4453) - data, names = stac.point(-80.477, 33.4453, assets="green") - assert len(data) == 1 - assert names == ["green_b1"] + pt = stac.point(-80.477, 33.4453, assets="green") + assert len(pt.data) == 1 + assert pt.band_names == ["green_b1"] - data, names = stac.point(-80.477, 33.4453, assets=("green",)) - assert len(data) == 1 - assert names == ["green_b1"] + pt = stac.point(-80.477, 33.4453, assets=("green",)) + assert len(pt.data) == 1 + assert pt.band_names == ["green_b1"] - data, names = stac.point(-80.477, 33.4453, assets=("green", "red")) - assert len(data) == 2 - assert data == [7994, 7003] - assert names == ["green_b1", "red_b1"] + pt = stac.point(-80.477, 33.4453, assets=("green", "red")) + assert len(pt.data) == 2 + assert numpy.array_equal(pt.data, numpy.array([7994, 7003])) + assert pt.band_names == ["green_b1", "red_b1"] - data, names = stac.point(-80.477, 33.4453, expression="green_b1/red_b1") - assert len(data) == 1 - assert data == [7994 / 7003] - assert names == ["green_b1/red_b1"] + pt = stac.point(-80.477, 33.4453, expression="green_b1/red_b1") + assert len(pt.data) == 1 + assert numpy.array_equal(pt.data, numpy.array([7994 / 7003])) + assert pt.band_names == ["green_b1/red_b1"] with pytest.warns(ExpressionMixingWarning): - data, names = stac.point( + pt = stac.point( -80.477, 33.4453, assets=("green", "red"), expression="green_b1/red_b1" ) - assert len(data) == 1 - assert names == ["green_b1/red_b1"] + assert len(pt.data) == 1 + assert pt.band_names == ["green_b1/red_b1"] - data, names = stac.point( + pt = stac.point( -80.477, 33.4453, assets=("green", "red"), asset_indexes={"green": (1, 1), "red": 1}, ) - assert len(data) == 3 - assert data == [7994, 7994, 7003] - assert names == ["green_b1", "green_b1", "red_b1"] - - data, names = stac.point(-80.477, 33.4453, assets=("green", "red"), indexes=1) - assert len(data) == 2 - assert data == [7994, 7003] - assert names == ["green_b1", "red_b1"] - - data, names = stac.point( - -80.477, 33.4453, expression="green_b1*2;green_b1;red_b1*2" - ) - assert len(data) == 3 - assert names == ["green_b1*2", "green_b1", "red_b1*2"] + assert len(pt.data) == 3 + assert numpy.array_equal(pt.data, numpy.array([7994, 7994, 7003])) + assert pt.band_names == ["green_b1", "green_b1", "red_b1"] + + pt = stac.point(-80.477, 33.4453, assets=("green", "red"), indexes=1) + assert len(pt.data) == 2 + assert numpy.array_equal(pt.data, numpy.array([7994, 7003])) + assert pt.band_names == ["green_b1", "red_b1"] + + pt = stac.point(-80.477, 33.4453, expression="green_b1*2;green_b1;red_b1*2") + assert len(pt.data) == 3 + assert pt.band_names == ["green_b1*2", "green_b1", "red_b1*2"] @patch("rio_tiler.io.cogeo.rasterio") diff --git a/tests/test_reader.py b/tests/test_reader.py index 90d4e30a..fa6954cf 100644 --- a/tests/test_reader.py +++ b/tests/test_reader.py @@ -369,32 +369,31 @@ def test_tile_read_vrt_option(): def test_point(): """Read point values""" with rasterio.open(COG_SCALE) as src_dst: - p, name = reader.point( - src_dst, [310000, 4100000], coord_crs=src_dst.crs, indexes=1 - ) - assert p == [8917] - assert name == ["b1"] + pt = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs, indexes=1) + assert pt.data == numpy.array([8917]) + assert pt.mask == numpy.array([255]) + assert pt.band_names == ["b1"] - p, name = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs) - assert p == [8917] - assert name == ["b1"] + pt = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs) + assert pt.data == numpy.array([8917]) + assert pt.band_names == ["b1"] with pytest.raises(PointOutsideBounds): reader.point(src_dst, [810000, 4100000], coord_crs=src_dst.crs) with rasterio.open(S3_MASK_PATH) as src_dst: # Test with COG + internal mask - assert not reader.point(src_dst, [-104.7753105, 38.953548])[0][0] - assert ( - reader.point(src_dst, [-104.7753105415, 38.953548], masked=False)[0][0] == 0 - ) + assert not reader.point(src_dst, [-104.7753105, 38.953548]).data[0] + assert reader.point(src_dst, [-104.7753105415, 38.953548]).data[ + 0 + ] == numpy.array([0]) with rasterio.open(S3_ALPHA_PATH) as src_dst: # Test with COG + Alpha Band - assert not reader.point(src_dst, [-104.77519499, 38.95367054])[0][0] + assert reader.point(src_dst, [-104.77519499, 38.95367054]).data[0] assert ( - reader.point(src_dst, [-104.77519499, 38.95367054], masked=False)[0][0] == 0 - ) + reader.point(src_dst, [-104.77519499, 38.95367054]).mask[0] == 0 + ) # Masked def test_part_with_buffer(): From 147db802a1826616238fbb64930d65204018e0cb Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Mon, 19 Sep 2022 09:44:07 +0200 Subject: [PATCH 10/23] better expression parsing for stac --- rio_tiler/io/base.py | 4 ++-- tests/test_io_stac.py | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index d9461228..aeaab4ba 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -268,8 +268,8 @@ def _get_asset_url(self, asset: str) -> str: def parse_expression(self, expression: str) -> Tuple: """Parse rio-tiler band math expression.""" - assets = "|".join([asset for asset in self.assets]) - _re = re.compile(rf"\b({assets})_b\d+") + assets = "|".join(self.assets) + _re = re.compile(rf"\b({assets})_b\d+\b") return tuple(set(re.findall(_re, expression))) def info( # type: ignore diff --git a/tests/test_io_stac.py b/tests/test_io_stac.py index df0f7d17..ca24e2dc 100644 --- a/tests/test_io_stac.py +++ b/tests/test_io_stac.py @@ -512,6 +512,12 @@ def test_parse_expression(): stac.parse_expression("greenish_b1*red_b1+red_b1/blue_b1+2.0;red_b1") ) == ["blue", "red"] + # make sure we match full word only + with STACReader(STAC_PATH) as stac: + assert sorted( + stac.parse_expression("green_b10foo*red_b1+red_b1/blue_b1+2.0;red_b1") + ) == ["blue", "red"] + @patch("rio_tiler.io.cogeo.rasterio") def test_feature_valid(rio): From 5f73ec1acd0eb4ce97704573d5687db6782aed19 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Mon, 19 Sep 2022 11:01:24 +0200 Subject: [PATCH 11/23] docstring fixes --- rio_tiler/io/base.py | 21 ++++++++++++--------- rio_tiler/io/cogeo.py | 4 ---- rio_tiler/io/stac.py | 5 +++-- rio_tiler/models.py | 4 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index aeaab4ba..9e171a00 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -37,9 +37,6 @@ class SpatialMixin: Attributes: tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. - bounds (tuple): Dataset bounds (left, bottom, right, top). **Not in __init__**. - crs (rasterio.crs.CRS): Dataset crs. **Not in __init__**. - geographic_crs (rasterio.crs.CRS): CRS to use as geographic coordinate system. Defaults to WGS84. **Not in __init__**. """ @@ -52,7 +49,7 @@ class SpatialMixin: @property def geographic_bounds(self) -> BBox: - """return bounds in WGS84.""" + """Return dataset bounds in geographic_crs.""" if self.crs == self.geographic_crs: return self.bounds @@ -128,7 +125,13 @@ def tile_exists(self, tile_x: int, tile_y: int, tile_z: int) -> bool: @attr.s class BaseReader(SpatialMixin, metaclass=abc.ABCMeta): - """Rio-tiler.io BaseReader.""" + """Rio-tiler.io BaseReader. + + Attributes: + input (any): Reader's input. + tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. + + """ input: Any = attr.ib() tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) @@ -236,9 +239,9 @@ class MultiBaseReader(SpatialMixin, metaclass=abc.ABCMeta): Attributes: input (any): input data. tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. + minzoom (int, optional): Set dataset's minzoom. + maxzoom (int, optional): Set dataset's maxzoom. reader_options (dict, option): options to forward to the reader. Defaults to `{}`. - reader (rio_tiler.io.BaseReader): reader. **Not in __init__**. - assets (sequence): Asset list. **Not in __init__**. """ @@ -727,9 +730,9 @@ class MultiBandReader(SpatialMixin, metaclass=abc.ABCMeta): Attributes: input (any): input data. tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. + minzoom (int, optional): Set dataset's minzoom. + maxzoom (int, optional): Set dataset's maxzoom. reader_options (dict, option): options to forward to the reader. Defaults to `{}`. - reader (rio_tiler.io.BaseReader): reader. **Not in __init__**. - bands (sequence): Band list. **Not in __init__**. """ diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index 0017a6d2..eb9fee45 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -34,11 +34,7 @@ class COGReader(BaseReader): Attributes: input (str): Cloud Optimized GeoTIFF path. dataset (rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT, optional): Rasterio dataset. - bounds (tuple): Dataset bounds (left, bottom, right, top). - crs (rasterio.crs.CRS): Dataset CRS. tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. - minzoom (int, optional): Set minzoom for the tiles. - maxzoom (int, optional): Set maxzoom for the tiles. geographic_crs (rasterio.crs.CRS, optional): CRS to use as geographic coordinate system. Defaults to WGS84. colormap (dict, optional): Overwrite internal colormap. nodata (int or float or str, optional): Global options, overwrite internal nodata value. diff --git a/rio_tiler/io/stac.py b/rio_tiler/io/stac.py index 9bd23ebf..dd52ca19 100644 --- a/rio_tiler/io/stac.py +++ b/rio_tiler/io/stac.py @@ -130,11 +130,12 @@ class STACReader(MultiBaseReader): Attributes: input (str): STAC Item path, URL or S3 URL. item (dict or pystac.Item, STAC): Stac Item. + tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. minzoom (int, optional): Set minzoom for the tiles. maxzoom (int, optional): Set maxzoom for the tiles. geographic_crs (rasterio.crs.CRS, optional): CRS to use as geographic coordinate system. Defaults to WGS84. - include (set of string, optional): Only Include specific assets. - exclude (set of string, optional): Exclude specific assets. + include_assets (set of string, optional): Only Include specific assets. + exclude_assets (set of string, optional): Exclude specific assets. include_asset_types (set of string, optional): Only include some assets base on their type. exclude_asset_types (set of string, optional): Exclude some assets base on their type. reader (rio_tiler.io.BaseReader, optional): rio-tiler Reader. Defaults to `rio_tiler.io.COGReader`. diff --git a/rio_tiler/models.py b/rio_tiler/models.py index 53e6c33f..31a2c4ff 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -138,11 +138,11 @@ class PointData: Attributes: data (numpy.ndarray): pixel values. mask (numpy.ndarray): rasterio mask values. - assets (list, optional): list of assets used to construct the data values. + band_names (list): name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. coordinates (tuple): Point's coordinates. crs (rasterio.crs.CRS, optional): Coordinates Reference System of the bounds. + assets (list, optional): list of assets used to construct the data values. metadata (dict, optional): Additional metadata. Defaults to `{}`. - band_names (list, optional): name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. """ From dbe6c791a2c615a6627a108ab4b23457b527d4bb Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Thu, 29 Sep 2022 22:05:14 -0400 Subject: [PATCH 12/23] only use WarpedVRT when doing reprojection or nodata overwride (#529) --- rio_tiler/io/cogeo.py | 45 +--- rio_tiler/reader.py | 507 ++++++++++++++++++++++++----------------- rio_tiler/utils.py | 6 +- tests/test_io_cogeo.py | 16 +- tests/test_mask.py | 9 +- tests/test_mosaic.py | 3 +- tests/test_reader.py | 184 ++++++++++++++- tests/test_utils.py | 16 +- 8 files changed, 509 insertions(+), 277 deletions(-) diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/cogeo.py index eb9fee45..ba04d2e1 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/cogeo.py @@ -286,6 +286,8 @@ def statistics( percentiles: List[int] = [2, 98], hist_options: Optional[Dict] = None, max_size: int = 1024, + indexes: Optional[Indexes] = None, + expression: Optional[str] = None, **kwargs: Any, ) -> Dict[str, BandStatistics]: """Return bands statistics from a dataset. @@ -296,7 +298,7 @@ def statistics( percentiles (list of numbers, optional): list of percentile values to calculate. Defaults to `[2, 98]`. hist_options (dict, optional): Options to forward to numpy.histogram function. max_size (int, optional): Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. - kwargs (optional): Options to forward to `self.preview`. + kwargs (optional): Options to forward to `self.read`. Returns: Dict[str, rio_tiler.models.BandStatistics]: bands statistics. @@ -304,7 +306,9 @@ def statistics( """ kwargs = {**self._kwargs, **kwargs} - data = self.preview(max_size=max_size, **kwargs) + data = self.read( + max_size=max_size, indexes=indexes, expression=expression, **kwargs + ) hist_options = hist_options or {} @@ -409,9 +413,6 @@ def part( """ kwargs = {**self._kwargs, **kwargs} - if isinstance(indexes, int): - indexes = (indexes,) - if indexes and expression: warnings.warn( "Both expression and indexes passed; expression will overwrite indexes parameter.", @@ -460,40 +461,20 @@ def preview( max_size (int, optional): Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. height (int, optional): Output height of the array. width (int, optional): Output width of the array. - kwargs (optional): Options to forward to the `rio_tiler.reader.preview` function. + kwargs (optional): Options to forward to the `self.read` method. Returns: rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. """ - kwargs = {**self._kwargs, **kwargs} - - if isinstance(indexes, int): - indexes = (indexes,) - - if indexes and expression: - warnings.warn( - "Both expression and indexes passed; expression will overwrite indexes parameter.", - ExpressionMixingWarning, - ) - - if expression: - indexes = parse_expression(expression) - - img = reader.preview( - self.dataset, + return self.read( indexes=indexes, + expression=expression, max_size=max_size, - width=width, height=height, + width=width, **kwargs, ) - img.assets = [self.input] - - if expression: - return img.apply_expression(expression) - - return img def point( self, @@ -520,9 +501,6 @@ def point( """ kwargs = {**self._kwargs, **kwargs} - if isinstance(indexes, int): - indexes = (indexes,) - if indexes and expression: warnings.warn( "Both expression and indexes passed; expression will overwrite indexes parameter.", @@ -616,9 +594,6 @@ def read( """ kwargs = {**self._kwargs, **kwargs} - if isinstance(indexes, int): - indexes = (indexes,) - if indexes and expression: warnings.warn( "Both expression and indexes passed; expression will overwrite indexes parameter.", diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index 536298e4..0800ee13 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -1,8 +1,9 @@ """rio-tiler.reader: low level reader.""" +import contextlib import math import warnings -from typing import Any, Callable, Dict, Optional, Tuple, Union +from typing import Callable, Dict, Optional, Tuple, Union import numpy from affine import Affine @@ -15,29 +16,67 @@ from rasterio.warp import transform_bounds from .constants import WGS84_CRS -from .errors import ( - AlphaBandWarning, - InvalidBufferSize, - PointOutsideBounds, - TileOutsideBounds, -) +from .errors import InvalidBufferSize, PointOutsideBounds, TileOutsideBounds from .models import ImageData, PointData from .types import BBox, DataMaskType, Indexes, NoData from .utils import _requested_tile_aligned_with_internal_tile as is_aligned from .utils import get_vrt_transform, has_alpha_band, non_alpha_indexes +def _get_width_height(max_size, dataset_height, dataset_width) -> Tuple[int, int]: + """Get Output Width/Height based on a max_size and dataset shape.""" + if max(dataset_height, dataset_width) < max_size: + return dataset_height, dataset_width + + ratio = dataset_height / dataset_width + if ratio > 1: + height = max_size + width = math.ceil(height / ratio) + else: + width = max_size + height = math.ceil(width * ratio) + + return height, width + + +def _apply_buffer( + buffer: float, + bounds: BBox, + height: int, + width: int, +) -> Tuple[BBox, int, int]: + """Apply buffer on bounds.""" + x_res = (bounds[2] - bounds[0]) / width + y_res = (bounds[3] - bounds[1]) / height + + # apply buffer to bounds + bounds = ( + bounds[0] - x_res * buffer, + bounds[1] - y_res * buffer, + bounds[2] + x_res * buffer, + bounds[3] + y_res * buffer, + ) + + # new output size + height += int(buffer * 2) + width += int(buffer * 2) + + return bounds, height, width + + def read( src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT], + dst_crs: Optional[CRS] = None, height: Optional[int] = None, width: Optional[int] = None, + max_size: Optional[int] = None, indexes: Optional[Indexes] = None, window: Optional[windows.Window] = None, - force_binary_mask: bool = True, nodata: Optional[NoData] = None, - unscale: bool = False, - resampling_method: Resampling = "nearest", vrt_options: Optional[Dict] = None, + resampling_method: Resampling = "nearest", + force_binary_mask: bool = True, + unscale: bool = False, post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] ] = None, @@ -46,71 +85,107 @@ def read( Args: src_dst (rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT): Rasterio dataset. - height (int, optional): Output height of the array. - width (int, optional): Output width of the array. + dst_crs (rasterio.crs.CRS, optional): Target coordinate reference system. + height (int, optional): Output height of the image. + width (int, optional): Output width of the image. + max_size (int, optional): Limit output size image if not width and height. indexes (sequence of int or int, optional): Band indexes. window (rasterio.windows.Window, optional): Window to read. - force_binary_mask (bool, optional): Cast returned mask to binary values (0 or 255). Defaults to `True`. nodata (int or float, optional): Overwrite dataset internal nodata value. - unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. - resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. vrt_options (dict, optional): Options to be passed to the rasterio.warp.WarpedVRT class. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + force_binary_mask (bool, optional): Cast returned mask to binary values (0 or 255). Defaults to `True`. + unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. post_process (callable, optional): Function to apply on output data and mask values. Returns: - tuple: Data (numpy.ndarray) and Mask (numpy.ndarray) values. + ImageData """ if isinstance(indexes, int): indexes = (indexes,) - if indexes is None: - indexes = non_alpha_indexes(src_dst) if nodata is None else src_dst.indexes - if indexes != src_dst.indexes: - warnings.warn( - "Alpha band was removed from the output data array", AlphaBandWarning - ) + if max_size and width and height: + warnings.warn( + "'max_size' will be ignored with with 'height' and 'width' set.", + UserWarning, + ) - band_names = [f"b{idx}" for idx in indexes] + resampling = Resampling[resampling_method] + dst_crs = dst_crs or src_dst.crs + with contextlib.ExitStack() as ctx: + # Use WarpedVRT when Re-projection or Nodata or User VRT Option (cutline) + if (dst_crs != src_dst.crs) or nodata is not None or vrt_options: + vrt_params = { + "crs": dst_crs, + "add_alpha": True, + "resampling": resampling, + } - vrt_params = dict(add_alpha=True, resampling=Resampling[resampling_method]) - nodata = nodata if nodata is not None else src_dst.nodata - if nodata is not None: - vrt_params.update(dict(nodata=nodata, add_alpha=False, src_nodata=nodata)) + nodata = nodata if nodata is not None else src_dst.nodata + if nodata is not None: + vrt_params.update( + {"nodata": nodata, "add_alpha": False, "src_nodata": nodata} + ) - if has_alpha_band(src_dst): - vrt_params.update(dict(add_alpha=False)) + if has_alpha_band(src_dst): + vrt_params.update({"add_alpha": False}) - if vrt_options: - vrt_params.update(vrt_options) + if vrt_options: + vrt_params.update(**vrt_options) - with WarpedVRT(src_dst, **vrt_params) as vrt: - if not window: - window = windows.Window( - col_off=0, row_off=0, width=vrt.width, height=vrt.height - ) + # TODO: Check if we fetch the Overviews when not using transform + dataset = ctx.enter_context(WarpedVRT(src_dst, **vrt_params)) - if ColorInterp.alpha in vrt.colorinterp: - indexes = tuple(indexes) + (vrt.colorinterp.index(ColorInterp.alpha) + 1,) - data = vrt.read( - indexes=indexes, + else: + dataset = src_dst + + if max_size and not (width and height): + height, width = _get_width_height(max_size, dataset.height, dataset.width) + + if indexes is None: + indexes = non_alpha_indexes(dataset) + + boundless = False + if window: + if isinstance(window, tuple): + window = windows.Window.from_slices( + *window, height=dataset.height, width=dataset.width, boundless=True + ) + if min(window.col_off, window.row_off) < 0: + boundless = True + + wbounds = dataset.window_bounds(window) + if wbounds[2] > dataset.bounds[2] or wbounds[3] > dataset.bounds[3]: + boundless = True + + if ColorInterp.alpha in dataset.colorinterp: + # If dataset has an alpha band we need to get the mask using the alpha band index + # and then split the data and mask values + alpha_idx = dataset.colorinterp.index(ColorInterp.alpha) + 1 + idx = tuple(indexes) + (alpha_idx,) + data = dataset.read( + indexes=idx, window=window, - out_shape=(len(indexes), height, width) if height and width else None, - resampling=Resampling[resampling_method], + out_shape=(len(idx), height, width) if height and width else None, + resampling=resampling, + boundless=boundless, ) data, mask = data[0:-1], data[-1].astype("uint8") else: - data = vrt.read( + data = dataset.read( indexes=indexes, window=window, out_shape=(len(indexes), height, width) if height and width else None, - resampling=Resampling[resampling_method], + resampling=resampling, + boundless=boundless, ) - mask = vrt.dataset_mask( + mask = dataset.dataset_mask( window=window, out_shape=(height, width) if height and width else None, - resampling=Resampling[resampling_method], + resampling=resampling, + boundless=boundless, ) if force_binary_mask: @@ -118,57 +193,74 @@ def read( if unscale: data = data.astype("float32", casting="unsafe") - numpy.multiply(data, src_dst.scales[0], out=data, casting="unsafe") - numpy.add(data, src_dst.offsets[0], out=data, casting="unsafe") + numpy.multiply(data, dataset.scales[0], out=data, casting="unsafe") + numpy.add(data, dataset.offsets[0], out=data, casting="unsafe") if post_process: data, mask = post_process(data, mask) - return ImageData( + out_bounds = ( + windows.bounds(window, dataset.transform) if window else dataset.bounds + ) + + img = ImageData( data, mask, - bounds=windows.bounds(window, vrt.transform), - crs=vrt.crs, - band_names=band_names, + bounds=out_bounds, + crs=dataset.crs, + band_names=[f"b{idx}" for idx in indexes], ) + return img + +# flake8: noqa: C901 def part( src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT], bounds: BBox, height: Optional[int] = None, width: Optional[int] = None, - padding: int = 0, + max_size: Optional[int] = None, dst_crs: Optional[CRS] = None, bounds_crs: Optional[CRS] = None, + indexes: Optional[Indexes] = None, minimum_overlap: Optional[float] = None, - vrt_options: Optional[Dict] = None, - max_size: Optional[int] = None, + padding: Optional[int] = None, buffer: Optional[float] = None, - **kwargs: Any, + nodata: Optional[NoData] = None, + vrt_options: Optional[Dict] = None, + resampling_method: Resampling = "nearest", + force_binary_mask: bool = True, + unscale: bool = False, + post_process: Optional[ + Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] + ] = None, ) -> ImageData: """Read part of a dataset. Args: src_dst (rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT): Rasterio dataset. bounds (tuple): Output bounds (left, bottom, right, top). By default the coordinates are considered to be in either the dataset CRS or in the `dst_crs` if set. Use `bounds_crs` to set a specific CRS. - height (int, optional): Output height of the array. - width (int, optional): Output width of the array. - padding (int, optional): Padding to apply to each bbox edge. Helps reduce resampling artefacts along edges. Defaults to `0`. + height (int, optional): Output height of the image. + width (int, optional): Output width of the image. + max_size (int, optional): Limit output size image if not width and height. dst_crs (rasterio.crs.CRS, optional): Target coordinate reference system. bounds_crs (rasterio.crs.CRS, optional): Overwrite bounds Coordinate Reference System. + indexes (sequence of int or int, optional): Band indexes. minimum_overlap (float, optional): Minimum % overlap for which to raise an error with dataset not covering enough of the tile. + padding (int, optional): Padding to apply to each bbox edge. Helps reduce resampling artefacts along edges. Defaults to `0`. + buffer (float, optional): Buffer to apply to each bbox edge. Defaults to `0.`. + nodata (int or float, optional): Overwrite dataset internal nodata value. vrt_options (dict, optional): Options to be passed to the rasterio.warp.WarpedVRT class. - max_size (int, optional): Limit output size array if not width and height. - kwargs (optional): Additional options to forward to `rio_tiler.reader.read`. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + force_binary_mask (bool, optional): Cast returned mask to binary values (0 or 255). Defaults to `True`. + unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. + post_process (callable, optional): Function to apply on output data and mask values. Returns: - tuple: Data (numpy.ndarray) and Mask (numpy.ndarray) values. + ImageData """ - if not dst_crs: - dst_crs = src_dst.crs - if max_size and width and height: warnings.warn( "'max_size' will be ignored with with 'height' and 'width' set.", @@ -180,6 +272,8 @@ def part( "`buffer` must be a multiple of `0.5` (e.g: 0.5, 1, 1.5, ...)." ) + padding = padding or 0 + dst_crs = dst_crs or src_dst.crs if bounds_crs: bounds = transform_bounds(bounds_crs, dst_crs, *bounds, densify_pts=21) @@ -202,127 +296,121 @@ def part( "Dataset covers less than {:.0f}% of tile".format(cover_ratio * 100) ) - vrt_transform, vrt_width, vrt_height = get_vrt_transform( - src_dst, bounds, height, width, dst_crs=dst_crs - ) + # Use WarpedVRT when Re-projection or Nodata or User VRT Option (cutline) + if (dst_crs != src_dst.crs) or nodata is not None or vrt_options: + window = None + vrt_transform, vrt_width, vrt_height = get_vrt_transform( + src_dst, + bounds, + height=height, + width=width, + dst_crs=dst_crs, + ) - if max_size and not (width and height): - if max(vrt_width, vrt_height) > max_size: - ratio = vrt_height / vrt_width - if ratio > 1: - height = max_size - width = math.ceil(height / ratio) - else: - width = max_size - height = math.ceil(width * ratio) - - out_height = height or vrt_height - out_width = width or vrt_width + if max_size and not (width and height): + height, width = _get_width_height(max_size, vrt_height, vrt_width) - if buffer: height = height or vrt_height width = width or vrt_width - # Get output resolution - x_res = (bounds[2] - bounds[0]) / out_width - y_res = (bounds[3] - bounds[1]) / out_height - - # apply buffer to bounds - bounds = ( - bounds[0] - x_res * buffer, - bounds[1] - y_res * buffer, - bounds[2] + x_res * buffer, - bounds[3] + y_res * buffer, - ) - - # new output size - out_height += int(buffer * 2) - out_width += int(buffer * 2) - - # re-calculate the transform given the new bounds, height and width - vrt_transform, vrt_width, vrt_height = get_vrt_transform( - src_dst, bounds, out_height, out_width, dst_crs=dst_crs - ) + if buffer: + bounds, height, width = _apply_buffer(buffer, bounds, height, width) + # re-calculate the transform given the new bounds, height and width + vrt_transform, vrt_width, vrt_height = get_vrt_transform( + src_dst, bounds, height, width, dst_crs=dst_crs + ) - window = windows.Window(col_off=0, row_off=0, width=vrt_width, height=vrt_height) - - if padding > 0 and not is_aligned(src_dst, bounds, out_height, out_width, dst_crs): - vrt_transform = vrt_transform * Affine.translation(-padding, -padding) - orig_vrt_height = vrt_height - orig_vrt_width = vrt_width - vrt_height = vrt_height + 2 * padding - vrt_width = vrt_width + 2 * padding - window = windows.Window( - col_off=padding, - row_off=padding, - width=orig_vrt_width, - height=orig_vrt_height, - ) + if padding > 0 and not is_aligned(src_dst, bounds, bounds_crs=dst_crs): + vrt_transform = vrt_transform * Affine.translation(-padding, -padding) + window = windows.Window( + col_off=padding, row_off=padding, width=vrt_width, height=vrt_height + ) + vrt_height = vrt_height + 2 * padding + vrt_width = vrt_width + 2 * padding - vrt_options = vrt_options or {} - vrt_options.update( - { + vrt_params = { "crs": dst_crs, "transform": vrt_transform, "width": vrt_width, "height": vrt_height, } - ) + if vrt_options: + vrt_params.update(**vrt_options) + + return read( + src_dst, + indexes=indexes, + width=width, + height=height, + window=window, + nodata=nodata, + vrt_options=vrt_params, + resampling_method=resampling_method, + force_binary_mask=force_binary_mask, + unscale=unscale, + post_process=post_process, + ) + + # else no re-projection needed + window = windows.from_bounds(*bounds, transform=src_dst.transform) + if max_size and not (width and height): + height, width = _get_width_height( + max_size, round(window.height), round(window.width) + ) + + height = height or round(window.height) + width = width or round(window.width) + + if buffer: + bounds, height, width = _apply_buffer(buffer, bounds, height, width) + window = windows.from_bounds(*bounds, transform=src_dst.transform) + + if padding > 0 and not is_aligned(src_dst, bounds, bounds_crs=dst_crs): + # For Padding we also use the buffer approach for non-VRT dataset + pad_bounds, height, width = _apply_buffer(padding, bounds, height, width) + window = windows.from_bounds(*pad_bounds, transform=src_dst.transform) + + img = read( + src_dst, + indexes=indexes, + width=width, + height=height, + window=window, + resampling_method=resampling_method, + force_binary_mask=force_binary_mask, + unscale=unscale, + post_process=post_process, + ) + return ImageData( + data=img.data[:, padding:-padding, padding:-padding], + mask=img.mask[padding:-padding, padding:-padding], + bounds=bounds, + crs=img.crs, + band_names=img.band_names, + ) return read( src_dst, - out_height, - out_width, + indexes=indexes, + width=width, + height=height, window=window, - vrt_options=vrt_options, - **kwargs, + resampling_method=resampling_method, + force_binary_mask=force_binary_mask, + unscale=unscale, + post_process=post_process, ) -def preview( - src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT], - max_size: int = 1024, - height: int = None, - width: int = None, - **kwargs: Any, -) -> ImageData: - """Read decimated version of a dataset. - - Args: - src_dst (rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT): Rasterio dataset. - max_size (int, optional): Limit output size array if not width and height. Defaults to `1024`. - height (int, optional): Output height of the array. - width (int, optional): Output width of the array. - kwargs (optional): Additional options to forward to `rio_tiler.reader.read`. - - Returns: - tuple: Data (numpy.ndarray) and Mask (numpy.ndarray) values. - - """ - if not height and not width: - if max(src_dst.height, src_dst.width) < max_size: - height, width = src_dst.height, src_dst.width - else: - ratio = src_dst.height / src_dst.width - if ratio > 1: - height = max_size - width = math.ceil(height / ratio) - else: - width = max_size - height = math.ceil(width * ratio) - - return read(src_dst, height, width, **kwargs) - - def point( src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT], coordinates: Tuple[float, float], indexes: Optional[Indexes] = None, coord_crs: CRS = WGS84_CRS, nodata: Optional[NoData] = None, - unscale: bool = False, - resampling_method: Resampling = "nearest", vrt_options: Optional[Dict] = None, + resampling_method: Resampling = "nearest", + unscale: bool = False, post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] ] = None, @@ -335,65 +423,74 @@ def point( indexes (sequence of int or int, optional): Band indexes. coord_crs (rasterio.crs.CRS, optional): Coordinate Reference System of the input coords. Defaults to `epsg:4326`. nodata (int or float, optional): Overwrite dataset internal nodata value. - unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. - resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. vrt_options (dict, optional): Options to be passed to the rasterio.warp.WarpedVRT class. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. post_process (callable, optional): Function to apply on output data and mask values. Returns: PointData """ - if vrt_options: - warnings.warn( - "'vrt_options' has no influence over the `point()` method.", - UserWarning, - ) - if isinstance(indexes, int): indexes = (indexes,) - lon, lat = transform_coords( - coord_crs, src_dst.crs, [coordinates[0]], [coordinates[1]] - ) - if not ( - (src_dst.bounds[0] < lon[0] < src_dst.bounds[2]) - and (src_dst.bounds[1] < lat[0] < src_dst.bounds[3]) - ): - raise PointOutsideBounds("Point is outside dataset bounds") - - if indexes is None: - indexes = non_alpha_indexes(src_dst) if nodata is None else src_dst.indexes - if indexes != src_dst.indexes: - warnings.warn( - "Alpha band was removed from the output data array", AlphaBandWarning - ) + with contextlib.ExitStack() as ctx: + # Use WarpedVRT when Re-projection or Nodata or User VRT Option (cutline) + if nodata is not None or vrt_options: + vrt_params = { + "add_alpha": True, + "resampling": Resampling[resampling_method], + } + nodata = nodata if nodata is not None else src_dst.nodata + if nodata is not None: + vrt_params.update( + {"nodata": nodata, "add_alpha": False, "src_nodata": nodata} + ) - band_names = [f"b{idx}" for idx in indexes] + if has_alpha_band(src_dst): + vrt_params.update({"add_alpha": False}) - values = list(src_dst.sample([(lon[0], lat[0])], indexes=indexes, masked=True))[0] - data = values.data - is_masked = ~values.mask + if vrt_options: + vrt_params.update(**vrt_options) - if nodata is not None: - # https://github.com/rasterio/rasterio/blob/dc6b8682869bf16f2235da5e3e6eb5a2c7723b79/rasterio/_io.pyx#L1035 - # if one band is masked then all bands should - is_masked = ~numpy.logical_or.reduce(data == nodata) + dataset = ctx.enter_context(WarpedVRT(src_dst, **vrt_params)) + + else: + dataset = src_dst - mask = numpy.repeat(is_masked, len(data)) * numpy.uint8(255) + lon, lat = transform_coords( + coord_crs, dataset.crs, [coordinates[0]], [coordinates[1]] + ) + if not ( + (dataset.bounds[0] < lon[0] < dataset.bounds[2]) + and (dataset.bounds[1] < lat[0] < dataset.bounds[3]) + ): + raise PointOutsideBounds("Point is outside dataset bounds") - if unscale: - data = data.astype("float32", casting="unsafe") - numpy.multiply(data, src_dst.scales[0], out=data, casting="unsafe") - numpy.add(data, src_dst.offsets[0], out=data, casting="unsafe") + if indexes is None: + indexes = non_alpha_indexes(dataset) - if post_process: - data, _ = post_process(data, mask) + values = list(dataset.sample([(lon[0], lat[0])], indexes=indexes, masked=True))[ + 0 + ] + data = values.data + mask = numpy.repeat(~values.mask, len(data)) * numpy.uint8(255) - return PointData( - data, - mask, - coordinates=coordinates, - crs=coord_crs, - band_names=band_names, - ) + if unscale: + data = data.astype("float32", casting="unsafe") + numpy.multiply(data, dataset.scales[0], out=data, casting="unsafe") + numpy.add(data, dataset.offsets[0], out=data, casting="unsafe") + + if post_process: + data, _ = post_process(data, mask) + + pts = PointData( + data, + mask, + coordinates=coordinates, + crs=coord_crs, + band_names=[f"b{idx}" for idx in indexes], + ) + + return pts diff --git a/rio_tiler/utils.py b/rio_tiler/utils.py index 56f9bc99..e68b38c5 100644 --- a/rio_tiler/utils.py +++ b/rio_tiler/utils.py @@ -276,9 +276,7 @@ def get_vrt_transform( # If bounds window is aligned with the dataset internal tile we align the bounds with the pixels. # This is to limit the number of internal block fetched. - if _requested_tile_aligned_with_internal_tile( - src_dst, bounds, height, width, dst_crs - ): + if _requested_tile_aligned_with_internal_tile(src_dst, bounds, bounds_crs=dst_crs): # Get Window for the input bounds # e.g Window(col_off=17920.0, row_off=11007.999999999998, width=255.99999999999636, height=256.0000000000018) col_off, row_off, w, h = windows.from_bounds( @@ -386,8 +384,6 @@ def linear_rescale( def _requested_tile_aligned_with_internal_tile( src_dst: Union[DatasetReader, DatasetWriter, WarpedVRT], bounds: BBox, - height: Optional[int] = None, - width: Optional[int] = None, bounds_crs: CRS = WEB_MERCATOR_CRS, ) -> bool: """Check if tile is aligned with internal tiles.""" diff --git a/tests/test_io_cogeo.py b/tests/test_io_cogeo.py index 015412b7..c256b175 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_cogeo.py @@ -19,7 +19,6 @@ from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS from rio_tiler.errors import ( - AlphaBandWarning, ExpressionMixingWarning, InvalidBufferSize, NoOverviewWarning, @@ -709,14 +708,13 @@ def test_tile_read_alpha(): """Read masked area.""" # non-boundless tile covering the alpha masked part with COGReader(COG_ALPHA) as cog: - with pytest.warns(AlphaBandWarning): - nb = cog.dataset.count - img = cog.tile(876432, 1603670, 22) - assert ( - not nb == img.count - ) # rio-tiler removes the alpha band from the `data` array - assert img.data.shape == (3, 256, 256) - assert not img.mask.all() + nb = cog.dataset.count + img = cog.tile(876432, 1603670, 22) + assert ( + not nb == img.count + ) # rio-tiler removes the alpha band from the `data` array + assert img.data.shape == (3, 256, 256) + assert not img.mask.all() def test_tile_read_mask(): diff --git a/tests/test_mask.py b/tests/test_mask.py index b86a8da6..aff0f882 100644 --- a/tests/test_mask.py +++ b/tests/test_mask.py @@ -47,16 +47,19 @@ def test_mask_bilinear(cloudoptimized_geotiff): data, mask = cog.preview( resampling_method="bilinear", force_binary_mask=True, + max_size=100, ) masknodata = (data[0] != 0).astype(numpy.uint8) * 255 numpy.testing.assert_array_equal(mask, masknodata) - data, mask = cog.preview( + dataf, maskf = cog.preview( resampling_method="bilinear", force_binary_mask=False, + max_size=100, ) - masknodata = (data[0] != 0).astype(numpy.uint8) * 255 - assert not numpy.array_equal(mask, masknodata) + masknodata = (dataf[0] != 0).astype(numpy.uint8) * 255 + assert not numpy.array_equal(maskf, masknodata) + assert not numpy.array_equal(maskf, mask) @pytest.mark.parametrize("resampling", ["bilinear", "nearest"]) diff --git a/tests/test_mosaic.py b/tests/test_mosaic.py index da147095..8dddf360 100644 --- a/tests/test_mosaic.py +++ b/tests/test_mosaic.py @@ -444,4 +444,5 @@ def test_mosaic_tiler_with_imageDataClass(): assert img.crs == crs1 == crs2 assert not img.bounds == bbox bbox_in_crs = transform_bounds(WGS84_CRS, crs1, *bbox, densify_pts=21) - assert img.bounds == bbox_in_crs + for xc, yc in zip(img.bounds, bbox_in_crs): + assert round(xc, 5) == round(yc, 5) diff --git a/tests/test_reader.py b/tests/test_reader.py index fa6954cf..4e6bbe89 100644 --- a/tests/test_reader.py +++ b/tests/test_reader.py @@ -5,6 +5,7 @@ import numpy import pytest import rasterio +from rasterio.warp import transform_bounds from rio_tiler import constants, reader from rio_tiler.errors import PointOutsideBounds, TileOutsideBounds @@ -368,6 +369,18 @@ def test_tile_read_vrt_option(): def test_point(): """Read point values""" + with rasterio.open(COG) as src_dst: + pt = reader.point( + src_dst, + [-53.54620193828792, 73.28439084323475], + coord_crs="epsg:4326", + indexes=1, + nodata=1, + ) + assert pt.data == numpy.array([1]) + assert pt.mask == numpy.array([0]) + assert pt.band_names == ["b1"] + with rasterio.open(COG_SCALE) as src_dst: pt = reader.point(src_dst, [310000, 4100000], coord_crs=src_dst.crs, indexes=1) assert pt.data == numpy.array([8917]) @@ -381,13 +394,6 @@ def test_point(): with pytest.raises(PointOutsideBounds): reader.point(src_dst, [810000, 4100000], coord_crs=src_dst.crs) - with rasterio.open(S3_MASK_PATH) as src_dst: - # Test with COG + internal mask - assert not reader.point(src_dst, [-104.7753105, 38.953548]).data[0] - assert reader.point(src_dst, [-104.7753105415, 38.953548]).data[ - 0 - ] == numpy.array([0]) - with rasterio.open(S3_ALPHA_PATH) as src_dst: # Test with COG + Alpha Band assert reader.point(src_dst, [-104.77519499, 38.95367054]).data[0] @@ -449,3 +455,167 @@ def test_part_with_buffer(): # all arrays should be equal numpy.array_equal(img_no_buffer.data, imgb.data[:, 2:-2, 2:-2]) numpy.array_equal(img_no_buffer.data, img.data[:, 2:-2, 2:-2]) + + +def test_read(): + """Test reader.read function.""" + with rasterio.open(COG) as src: + img = reader.read(src) + assert img.width == src.width + assert img.height == src.height + assert img.count == src.count + assert img.bounds == src.bounds + assert img.crs == src.crs + + with rasterio.open(COG) as src: + with pytest.warns(UserWarning): + img = reader.read(src, max_size=1000, width=100, height=100) + assert img.width == 100 + assert img.height == 100 + assert img.count == src.count + assert img.bounds == src.bounds + assert img.crs == src.crs + + with rasterio.open(COG) as src: + img = reader.read(src, width=100, height=100) + assert img.width == 100 + assert img.height == 100 + assert img.count == src.count + assert img.bounds == src.bounds + assert img.crs == src.crs + + with rasterio.open(COG) as src: + img = reader.read(src, max_size=100) + assert max(img.width, img.height) == 100 + assert img.count == src.count + assert img.bounds == src.bounds + assert img.crs == src.crs + + with rasterio.open(COG) as src: + img = reader.read(src, dst_crs="epsg:3857") + assert not img.width == src.width + assert not img.height == src.height + assert img.count == src.count + assert not img.bounds == src.bounds + assert not img.crs == src.crs + + with rasterio.open(COG) as src: + img = reader.read(src) + assert img.mask.all() + + with rasterio.open(COG) as src: + img = reader.read(src, nodata=1) + assert not img.mask.all() + + with rasterio.open(COG) as src: + img = reader.read(src, window=((0, 100), (0, 100))) + assert img.width == 100 + assert img.height == 100 + assert img.count == src.count + assert not img.bounds == src.bounds + assert img.crs == src.crs + + # Boundless Read + with rasterio.open(COG) as src: + img = reader.read(src, window=((-10, 100), (-10, 100))) + assert img.width == 110 + assert img.height == 110 + assert img.count == src.count + assert not img.bounds == src.bounds + assert img.crs == src.crs + + with rasterio.open(COG) as src: + img = reader.read(src, window=((0, 4000), (0, 4000))) + assert img.width == 4000 + assert img.height == 4000 + assert img.count == src.count + assert not img.bounds == src.bounds + assert img.crs == src.crs + + # Can't use boundless window with WarpedVRT + with rasterio.open(COG) as src: + with pytest.raises(ValueError): + reader.read(src, window=((0, 4000), (0, 4000)), dst_crs="epsg:3857") + + # Unscale Dataset + with rasterio.open(COG_SCALE) as src: + assert not src.dtypes[0] == numpy.float32 + img = reader.read(src, unscale=True) + assert img.data.dtype == numpy.float32 + + # Dataset with Alpha using WarpedVRT + with rasterio.open(S3_ALPHA_PATH) as src: + img = reader.read(src, dst_crs="epsg:3857") + assert not img.mask.all() + + +def test_part_no_VRT(): + """Test reader.part function without VRT.""" + bounds = [ + -56.6015625, + 73.0001215118412, + -51.67968749999999, + 74.23886253330774, + ] # boundless part + # Read part at full resolution + with rasterio.open(COG) as src_dst: + + bounds_dst_crs = transform_bounds( + "epsg:4326", src_dst.crs, *bounds, densify_pts=21 + ) + + img = reader.part(src_dst, bounds, bounds_crs="epsg:4326") + assert img.height == 1453 + assert img.width == 1613 + assert img.mask[0, 0] == 255 + assert img.mask[-1, -1] == 0 # boundless + assert img.bounds == bounds_dst_crs + + # Use bbox in Image CRS + img_crs = reader.part(src_dst, bounds_dst_crs) + assert img.height == 1453 + assert img.width == 1613 + assert img_crs.mask[0, 0] == 255 + assert img_crs.mask[-1, -1] == 0 # boundless + assert img.bounds == bounds_dst_crs + + # MaxSize + img = reader.part(src_dst, bounds, bounds_crs="epsg:4326", max_size=1024) + assert img.height < 1024 + assert img.width == 1024 + assert img.mask[0, 0] == 255 + assert img.mask[-1, -1] == 0 # boundless + assert img.bounds == bounds_dst_crs + + # Width/Height + img = reader.part( + src_dst, + bounds, + bounds_crs="epsg:4326", + width=100, + height=100, + ) + assert img.height == 100 + assert img.width == 100 + assert img.mask[0, 0] == 255 + assert img.mask[-1, -1] == 0 # boundless + assert img.bounds == bounds_dst_crs + + # Buffer + img = reader.part(src_dst, bounds, bounds_crs="epsg:4326", buffer=1) + assert img.height == 1455 + assert img.width == 1615 + assert img.mask[0, 0] == 255 + assert img.mask[-1, -1] == 0 # boundless + assert not img.bounds == bounds_dst_crs + + # Padding + img = reader.part(src_dst, bounds, bounds_crs="epsg:4326") + img_pad = reader.part(src_dst, bounds, bounds_crs="epsg:4326", padding=1) + assert img_pad.height == 1453 + assert img_pad.width == 1613 + assert img_pad.mask[0, 0] == 255 + assert img_pad.mask[-1, -1] == 0 # boundless + assert img_pad.bounds == bounds_dst_crs + # Padding should not have any influence when not doing any rescaling/reprojection + numpy.array_equal(img_pad.data, img.data) diff --git a/tests/test_utils.py b/tests/test_utils.py index 7730023f..d33b8baf 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -163,25 +163,17 @@ def test_aligned_with_internaltile(): """Check if COG is in WebMercator and aligned with internal tiles.""" bounds = WEB_MERCATOR_TMS.bounds(43, 25, 7) with rasterio.open(COG_DST) as src_dst: - assert not utils._requested_tile_aligned_with_internal_tile( - src_dst, bounds, 256, 256 - ) + assert not utils._requested_tile_aligned_with_internal_tile(src_dst, bounds) with rasterio.open(NOCOG) as src_dst: - assert not utils._requested_tile_aligned_with_internal_tile( - src_dst, bounds, 256, 256 - ) + assert not utils._requested_tile_aligned_with_internal_tile(src_dst, bounds) bounds = WEB_MERCATOR_TMS.bounds(147, 182, 9) with rasterio.open(COG_NOWEB) as src_dst: - assert not utils._requested_tile_aligned_with_internal_tile( - src_dst, bounds, 256, 256 - ) + assert not utils._requested_tile_aligned_with_internal_tile(src_dst, bounds) with rasterio.open(COG_WEB_TILED) as src_dst: - assert utils._requested_tile_aligned_with_internal_tile( - src_dst, bounds, 256, 256 - ) + assert utils._requested_tile_aligned_with_internal_tile(src_dst, bounds) def test_find_non_alpha(): From a45c3af842d24a7d34d0b05030aa7aeaefec06e6 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Fri, 30 Sep 2022 08:38:58 -0400 Subject: [PATCH 13/23] update baseclass to remove useless kwargs --- rio_tiler/io/base.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index 9e171a00..cdf28dab 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -155,7 +155,7 @@ def info(self) -> Info: ... @abc.abstractmethod - def statistics(self, **kwargs: Any) -> Dict[str, BandStatistics]: + def statistics(self) -> Dict[str, BandStatistics]: """Return bands statistics from a dataset. Returns: @@ -165,7 +165,7 @@ def statistics(self, **kwargs: Any) -> Dict[str, BandStatistics]: ... @abc.abstractmethod - def tile(self, tile_x: int, tile_y: int, tile_z: int, **kwargs: Any) -> ImageData: + def tile(self, tile_x: int, tile_y: int, tile_z: int) -> ImageData: """Read a Map tile from the Dataset. Args: @@ -180,7 +180,7 @@ def tile(self, tile_x: int, tile_y: int, tile_z: int, **kwargs: Any) -> ImageDat ... @abc.abstractmethod - def part(self, bbox: BBox, **kwargs: Any) -> ImageData: + def part(self, bbox: BBox) -> ImageData: """Read a Part of a Dataset. Args: @@ -193,7 +193,7 @@ def part(self, bbox: BBox, **kwargs: Any) -> ImageData: ... @abc.abstractmethod - def preview(self, **kwargs: Any) -> ImageData: + def preview(self) -> ImageData: """Read a preview of a Dataset. Returns: @@ -203,7 +203,7 @@ def preview(self, **kwargs: Any) -> ImageData: ... @abc.abstractmethod - def point(self, lon: float, lat: float, **kwargs: Any) -> PointData: + def point(self, lon: float, lat: float) -> PointData: """Read a value from a Dataset. Args: @@ -217,7 +217,7 @@ def point(self, lon: float, lat: float, **kwargs: Any) -> PointData: ... @abc.abstractmethod - def feature(self, shape: Dict, **kwargs: Any) -> ImageData: + def feature(self, shape: Dict) -> ImageData: """Read a Dataset for a GeoJSON feature. Args: @@ -275,7 +275,7 @@ def parse_expression(self, expression: str) -> Tuple: _re = re.compile(rf"\b({assets})_b\d+\b") return tuple(set(re.findall(_re, expression))) - def info( # type: ignore + def info( self, assets: Union[Sequence[str], str] = None, **kwargs: Any ) -> Dict[str, Info]: """Return metadata from multiple assets. @@ -305,7 +305,7 @@ def _reader(asset: str, **kwargs: Any) -> Dict: return multi_values(assets, _reader, **kwargs) - def statistics( # type: ignore + def statistics( self, assets: Union[Sequence[str], str] = None, asset_indexes: Optional[Dict[str, Indexes]] = None, # Indexes for each asset @@ -350,7 +350,7 @@ def _reader(asset: str, *args, **kwargs) -> Dict: return multi_values(assets, _reader, **kwargs) - def merged_statistics( # type: ignore + def merged_statistics( self, assets: Union[Sequence[str], str] = None, expression: Optional[str] = None, From 5d87dcd360323b99b5df18557701a4de48d6d421 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Fri, 30 Sep 2022 08:45:26 -0400 Subject: [PATCH 14/23] update changelog --- CHANGES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 3d8264cc..5117b457 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,7 @@ # 4.0.0 (TBD) * add `apply_expression` method in `rio_tiler.models.ImageData` class +* update `rio-tiler.reader.read/part` to avoid using WarpedVRT when no reprojection or nodata override is needed **breaking changes** @@ -100,6 +101,11 @@ ) ``` +* deleted `rio_tiler.reader.preview` function and updated `rio_tiler.reader.read` to allow width/height/max_size options +* reordered keyword options in all `rio_tiler.reader` function for consistency +* removed `AlphaBandWarning` warning when automatically excluding alpha band from data + + # 3.1.6 (2022-07-22) * Hide `NotGeoreferencedWarning` warnings in `utils.render` and `utils.resize_array` From 8c63926aee2eacc546d9180d438fbe234e905241 Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Wed, 5 Oct 2022 16:24:31 +0200 Subject: [PATCH 15/23] forward dataset statistics to ImageClass (#531) * forward dataset statistics to ImageClass * better type and autorescale * one more test --- rio_tiler/models.py | 29 ++++++++++++++++++++++++-- rio_tiler/reader.py | 15 ++++++++++++++ tests/fixtures/blue.tif | Bin 110792 -> 153972 bytes tests/fixtures/cog_rgb.tif | Bin 0 -> 27738 bytes tests/fixtures/green.tif | Bin 111765 -> 154871 bytes tests/fixtures/red.tif | Bin 112047 -> 156191 bytes tests/test_io_stac.py | 13 ++++++++++++ tests/test_models.py | 41 +++++++++++++++++++++++++++++++++++++ 8 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 tests/fixtures/cog_rgb.tif diff --git a/rio_tiler/models.py b/rio_tiler/models.py index 31a2c4ff..55344d9b 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -256,6 +256,7 @@ class ImageData: crs (rasterio.crs.CRS, optional): Coordinates Reference System of the bounds. metadata (dict, optional): Additional metadata. Defaults to `{}`. band_names (list, optional): name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. + dataset_statistics (list, optional): dataset statistics `[(min, max), (min, max)]` """ @@ -266,6 +267,7 @@ class ImageData: crs: Optional[CRS] = attr.ib(default=None) metadata: Optional[Dict] = attr.ib(factory=dict) band_names: List[str] = attr.ib() + dataset_statistics: Optional[Sequence[Tuple[float, float]]] = attr.ib(default=None) @data.validator def _validate_data(self, attribute, value): @@ -331,8 +333,21 @@ def create_from_list(cls, data: Sequence["ImageData"]): ) ) + stats = list( + itertools.chain.from_iterable( + [img.dataset_statistics for img in data if img.dataset_statistics] + ) + ) + dataset_statistics = stats if len(stats) == len(band_names) else None + return cls( - arr, mask, assets=assets, crs=crs, bounds=bounds, band_names=band_names + arr, + mask, + assets=assets, + crs=crs, + bounds=bounds, + band_names=band_names, + dataset_statistics=dataset_statistics, ) def as_masked(self) -> numpy.ma.MaskedArray: @@ -391,6 +406,15 @@ def apply_color_formula(self, color_formula: Optional[str]): def apply_expression(self, expression: str) -> "ImageData": """Apply expression to the image data.""" blocks = get_expression_blocks(expression) + + stats = self.dataset_statistics + if stats: + res = [] + for prod in itertools.product(*stats): # type: ignore + res.append(apply_expression(blocks, self.band_names, numpy.array(prod))) + + stats = list(zip([min(r) for r in zip(*res)], [max(r) for r in zip(*res)])) + return ImageData( apply_expression(blocks, self.band_names, self.data), self.mask, @@ -399,6 +423,7 @@ def apply_expression(self, expression: str) -> "ImageData": bounds=self.bounds, band_names=blocks, metadata=self.metadata, + dataset_statistics=stats, ) def post_process( @@ -473,7 +498,7 @@ def render( kwargs.update({"crs": self.crs}) data = self.data.copy() - datatype_range = (dtype_ranges[str(data.dtype)],) + datatype_range = self.dataset_statistics or (dtype_ranges[str(data.dtype)],) if not colormap: if img_format in ["PNG"] and data.dtype not in ["uint8", "uint16"]: diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index 0800ee13..4b7b7ecd 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -188,6 +188,19 @@ def read( boundless=boundless, ) + stats = [] + for ix in indexes: + tags = dataset.tags(ix) + if all( + stat in tags for stat in ["STATISTICS_MINIMUM", "STATISTICS_MAXIMUM"] + ): + stat_min = float(tags.get("STATISTICS_MINIMUM")) + stat_max = float(tags.get("STATISTICS_MAXIMUM")) + stats.append((stat_min, stat_max)) + + # We only add dataset statistics if we have them for all the indexes + dataset_statistics = stats if len(stats) == len(indexes) else None + if force_binary_mask: mask = numpy.where(mask != 0, numpy.uint8(255), numpy.uint8(0)) @@ -209,6 +222,7 @@ def read( bounds=out_bounds, crs=dataset.crs, band_names=[f"b{idx}" for idx in indexes], + dataset_statistics=dataset_statistics, ) return img @@ -387,6 +401,7 @@ def part( bounds=bounds, crs=img.crs, band_names=img.band_names, + dataset_statistics=img.dataset_statistics, ) return read( diff --git a/tests/fixtures/blue.tif b/tests/fixtures/blue.tif index ab527cb4b3f7cf8dd2ddef0c62ca69bec8228577..8f69901112252ec66126aa8a9c4575b8d6e1e86b 100644 GIT binary patch literal 153972 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

o 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 z%0D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 z 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

yVbU)n9 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 diff --git a/tests/fixtures/cog_rgb.tif b/tests/fixtures/cog_rgb.tif new file mode 100644 index 0000000000000000000000000000000000000000..8529b1b32623283f1443de7ef5eeac5dd70b25eb GIT binary patch literal 27738 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 WLV?<0t{FAX+TQXH@ literal 0 HcmV?d00001 diff --git a/tests/fixtures/green.tif b/tests/fixtures/green.tif index 002ed054ffe53a2a9ec56573b43e9f30e7eb95b9..f7c9e16f4b7edd970c862002f80a0b4e4da8b29f 100644 GIT binary patch literal 154871 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 p#a8w4b-E^BDlAOr}O?HXgd=>3c`oBh)8oX3z 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ÜLnE{kf>;OZoG+YcuISR&X%#z<3F! zcB*}*=7P9!9N(}aP}RL|>ev3)54T-gvv~Ex)804#f+tKQ?r1?uh>}bxavze_UFNPy zI!nl4qGN8{bPReB;67_Ram8G$<9eF{%PI+9(tt7kG-28FaiD9!^(nPHW-H-|ZMeQ$ zEmU>NEip)A4ys^;T`tkt)X%!rD)y`n&=%aPCHC{P3fNYlo^fI%Ii-*jo{)uhDtgEE;#jZB$2Cgg^e!B-O=$Asyf|BqFJkNh|J2ja zV~-0JukZ;Qh)4f~yIAU?r%@i~j7v9Y$x;!QH`(blHqs?nz95DXo4M7qULfohapDQQ zo`a`O*euxps8Wa(_#DGO2SkIK>#uH&v@c*%L)x!kvFa43CV&{^GzZ&X9Lff+DyMbH zsBl*)N4*AFqPHz@P@0X6+EA_+pwwoWi0pW=lP33%F}E8@I)mQRkg22y z3C1R4j}i^3LN#-=6MOdN^fUGuU@l93@;Y=AxaZ|e|gT)%84-shed%>KY0lTJVk=vhs$y1{SJ591^^VBP27e3^Z z<=qZz4R5}LTO(9(tZx2fzaZoMQ=*FL1R@sXbDrhku99#^%5dw+sojpm{L4wJ#B!aM z#5xM%bgPtQ>-=|d^qoPkQaD3~MW$9@lq5Y!o&NKYuW&o$pS&i1qAbfdx<)IUMC9=w z$oS+mnSeAy#Zo3hew2l3{~w~>J-&%5|NlQTb0(RjX)?LB>3z~0X(#u?Oo(Uot5|!PjjKnQ z;ulro3BymuTN3aZ*(zi>OHj3=ZYoRehfpelAQQF2LpKeDbc97#FWyW6G$1_#x$mKS zE)ly9E5D&Q5tFKPj3?{w*LAmUkSA9Uu;o?-;f6k1W--pA;>%4+jpmMo@Jh%c2o(*L zwi3vLh+nqIEWuR%z$}7X9keIG)y)~4X980r>-v+fb5ML43N^%y`UFg^Am2 zL8>!J9Mh$Gobgy$Pln{pj2z!fcdOi2wn`ooe-?W!)o4FrV)tuK@~R&SNk)c&$P3Et zRApJ#mD>riTaei(Ad7+QnH-2EBJ-bAOMreWmY?XZG6kwq7!-GQ;9!7~havA>AssyGBq!#nCIlXQnQnA>d1lS6i5)2qsW5)oR9P z=C@OFoeFM-=S^987vN5Ww0betm&tpmW%PG^9RcP7zRm#Z>})#eMz8ssNvya;sYzfF zzFCd&)dr<1N%5tFs&u*P`PN04?0W$22iPiu;!9(ZC(?He8+`EdpZ-7L=<9{+x&y-Z zM65xDm2?2sdUv#1IzqaSYQd5+P@TbY7&mAd?Sfsks^cq@I4=omkys^_tup>{m}EL3 zlYg4^A@im6wPlc4n=`!=IU_Yp^_PLGhmdVus;AkCVmBfb85OgILewd@7e?xzYu%3c z&P=Tgh2z>dAhA2dt=^Ek>hJn{B=Z{#^uQS_b(}}TvQ?n;kNjgc&t@Q1k)SgFL?)$F zr!lo8Q`uo}s!_atRs~mPlUy|^HzcDkmR)8X3jbB!n5ZnFnJOKap_O_e2;qu_nkBLqL∨6*P;zwcEAY!CQY!{TXAwaTBMEK3u#m+!Rs}3B1 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 literal 111765 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

JzvUyMdE_nICYu?Mg5DCoM;WUyRz;*l|%OqY~ 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 z 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¬-dRqolQHd=lf_vLD3f9j|&-Ak=4p2;Y|fcKMS~KCICaXe+^avx zNEMvim!UbhDorPBn7v%lSutqS&yQ2n;x~PKzD5R{LCL|iv0(s-->sg zoS;=FH&x1b%4r?3K&$h{I=dvb5iDAxknB=2O|j7Xpf?hk|3yyPS=Bl!3W4~D*lUK| zyeMBtNUR;8jFh{jx{y2}=w6Z_>Jm!xW7z~Wb$vRxOm-Zv_DCe2+jRs&2YaNj84*g8 zec%sbZ8L(Cq!zJ>BjLYZ(g|+=N|M|!A4xiV++lJnBDpCMdctV7#1k?{!dJmP#D*?P zP4bK!O%Ma%II+#c9iaJicuzz!m@n~W?6hLeJR3h;mX1SD86AUrN`*tT z#zAtT3+W-#w4-m#n7ZP|Gqa{X;#r#wE3?+mPS=``$OX-sQ?jjEk3uFw7KEg`yOf1F z_&|M&#MV{qk=c-(eUt+{C?VIu&>Q4>7#fjh;|nK5{H~Wz$s*|Rd!!u6&rLy%4_={O zylXBQkMmVEgKc(o@hn?eNShXo)@!I2J(n&}Hbm4&rgc&G$u#hwk4lX|oTRKv2nZ_+ z6cRbB@Q|AKT_N9U(J^UOBhb*cGGkdWUKPb6uftUg?#|MbEf!YxRIS7_Lsd`P4uQH@TZXB0fh|ws zC-;7*Ki+mm8QWTf?N^nq!K?~RG4}rXHgc`DxtMrax!6KDO&Td;;$!<2M2A~H77@;f zI6ed!Dv|#=x_OTZtjGtC0jI?2cCzF=ArPpNqd_mvqJ59w2UFy*U51=55MW%2%-a^v z9_{0gdu0ZmF{aXj+!a-Ll@c0`LiNvzfPp6A>e*O+uNZX==M6xWg}Ea<=}(LCbf{Rr zim*~940e{YTw~nyhfi+U{B}`Qcp!Q9*5v?&83faoiK$cqAdlt4Denk$BL%Q~E~-zD zi*VdgUY8i{;frib85{{p1hBLihL-UT>2+3jOSCUIu6Tfxtksty-tQhrVY}3lUm)Uv zv>52hL6sK;6~Qza*IsIAZWEPtr(_STCIwW>4x}{`VJ>8%`fs8ucGhE@Q4ZCk2l1HH zSZ})!mE2D_?pH?9tCgrE;sLue321va%HN_c>zNRN!b!fVI0A)Fh!9|eK&?w+uGXY^ z!flp%Z*-S1!iRT=V?tX?yca+mXXaZZ9YSZ%v;^2;KqaMQW4IIZ$w`uVLxG?dV;Fye zC4ajx;$}_vswo(PgSEXeg7S9BxEfZ!Ft)sVTipIe^l(&wB_PxKPAbtrOY| zgOZI~Ya;DIC@`f(COmwe#~2s35<`GHq&-lM)}svXgDQKJO0RFx-B-^JF^hc ze=q7fEZsECBrF$ZVcNqp(erJwmD4vyJn;N=?$QW!e*^dUi|zWRG}e5Pmp+HW)GZPI zzI-(381z+7u@s@c!9kA%^Hk+A++obxmlG8#%|TQ(*wyL8dNqS|ynqTEflfb3zz|~1vgN1yrxgn5!T~Ha!x1I=6YhR5KR{5J_ znaAUhPw)tKhT&z`2}G?a^clB`j$aV3_ZH?bToSe~Bu!|3Ls-?55yN#OysZ4@wpxd zo+x;RCxHs6&z91im1ur{)CnpB-4T{`aCHbv-wBfQ~!Z0O%iOoTX0SjPh1U1 z>(5V*ustd9z&4K!%@G`@Q8|w z%h@>@KE-$e+fDN5#&kr(!@Sdps1TFM1TOY^+Y=GLP{{UFM0wm}kK(BkRFN*^4&VGo zez#B%DpYwGaxF6@ZkT>#6m)A*Br?u?D&Sq^zF$17{?3}Ium1GHv2|9{eFD{gfFD02 zCzm# zt`?1O&3WEvp39zBu7uprn73CVP?x054`w97^#wpbv&cvF<64!3?0b{5mA80ijYvwHo+`B6I_M5RZ1toe_q}nC|2v^BFNPQGgLU zbunx>R=fNQoQmk)aqN2$N`5SwIGnGRIb5W`Ew=W?;=5=NTnK|}SpO_U#X}N5wCGX< z$akas5s;tc^-6$?;3q6YsCdLU7ond-0G~Cq;O6|jIzS;mhNbc;6f5!I0-XI zE6d)qe_UiWyi7JC2!Vm87i7)Tivjle2IrDK(OpkMsHCn7$_AVvkNFd`Y7BQhiJ z{C4Q)S^Q!cQnBGu1mppKGXf&BeJKobhdm{Tzn(?qc0IAH^-c!~{c(2g6~o1vNcup`(!WSlgQ|rbA#6YlB}YI=4(=p4`^EMialr|fBSf5ylnGF>a2y+10Up9% z?4=+hvjfVZNU#JY*2ilQ-P7RV6E=_75|-N`4LoV=tK+Sp8C9d~&MpBX|Lpgflkd%% z{CF?h8fT-FNN4;|LpEz}LXAAcyqMMStozKUDcDx{Cb(B3Q!9o%KQNj-- zp}nLX5;h~zA&E-rtYSeO8_-3VILHl>g(X@hvZOy328LgPQh|%y`sR9j<+mWb0C2c0 zLgYcQO((It#TE_0lWc*P71prW!bMO)iPb||B6aMon~+Q1#}RC&)M6s@y;&es#zwEP z`O{g3Vvm0`!62~!3DQa0%p_ta9Z-gQC|=GaL|A0$orh?iWfd`qXMWGzkD9+pZN8tD z99er69)Z%6u~s$Gx&Sd0Bdr)>o{O{!5JNp;oXi@V*-$GIbI0nEI8?Ek2!J5DZwZiT zJRIkN=*K~@4DFr`19d1v1Ahb^QX}%`1im5|Ol1>) zI1*{OTsf;qfj1ui2`DYy5n-%AU_SJ>fItDb`n^L#c5*TBUU7jZi4~^8U>pq5lUgY! zLn>aG2Jc=)K>QrdP}U=H1c*pj2D)Udk($-Rz&lIXQEt{$$ZDFlolCoQZq58}o+VvR zu%QUgqGe4nhc`%bSh%l(MJ+|!+ApSmvm(DY0>$QB4n8a zgU{Pd3Fw=J=X#Ru-Dyyi$Eqj8OM?XOp)j!Gt$lai0#vn-fmhQ68(%0$uYKPownj)6 zuhO$&)iY6g33~4`0>};$QTSq(Zcp;zhVrA!Uo&!ZMW(^JK)3g6KvR{r1JJ`+-FpFD>fq5O`uyO~Rb+ z7Nol@Q6CRsyxo=U{N)`>sK^2rBdrOnunkqWA#TGq6KP|zDE|_+bruNjxA_ySJ%rUw zA!Y(|lSm}~8m1seT3acLnc5zxMf9au(x-wDiB$KorX&kB7ZJ`K&kYguzKleu+u&GB z55{6QvDV=#^c?hU-`*(&ttGtSKaD>#rAsfiM93^Ji2w=>kaoS)9$N&%ZQ$~v2%F45 zPJ&=O;EF(CI_#eZBOKE|e#q0Ljxv)oZ}0ys0>Iu}a0eDd7W-lf5>V8RA0F~U64a2+ zcav6y(k4{$56#AmMQ3$!*4C8a-pM;u8CdB5q3YeEo2b^u?>*U*WSS>hygjApvZ~H;rzDmTJP_DziaiMuGMz6oxSJT&+~kq&o(K1&;0YPv1^_xT2os9 z(c0)6#5bt;+ND?(@S5c^Bf*Cnc}uxW%EuAZQ#BUrnCoY;_vc_3VXNp!kW+^5#SMJE zUQwz|S$!KZH6T}C#%}P+|3|TDA(mT>txE*&+}|%zurpJ}YWbJ}3z)drlOU8bh#BWK zlf&E=E;OEtt-pBWQoud>DYr&ZU*zx64zid)C^rSVL9`r0BsHqgp@G#aYQ8=5F9bWZ z5?MvC&MDyjg}LszKyq@Smv+Pw5zIBBXCV(>#18KDM=5?ZV%#b@R5PVX1(gFW>CHw< zv&9S!{xcC_ww+pU?zpA*UQ?7(ifAe5OF+j?CE7lrNphq9w`aFMKWc|3x|AoPkyl#WCGl3tN$u%UwfuT&K+#4&y7$e?O%`;A{X9^c`v&he=cBJzzcv-?E9W2X z_EX7Tk@UA|@6+krmCGPR!Y&d4hO*Kmf4s(ve$U*TdFBy{0kVbDnl@!EjHu_!BH(8N zo?C(bA>ex-*P}1@~b2!FsdToXVFjg&;R!OD0BC zVytR>4~as&B3H|qGk;_9L9CvSOpqDVWkRj&-#Z@vc(>`!W4|TOZ;5z``50F&>#*}v z(L>L9i(Bj`reH({KRf}*>Y=d2JAksUMFe;>o2hJ@;a>3)H! zPltTOUQg7tS#bPJUy%kbt8x`WUq?|Q^yC%|g@MRc1@z}yli<&cWf%@(wsf3}x@vtV zJFLKWs@v{{r%TU0-|mlDNx!L!Y49&`TNRs4LjOd?e$J_H@op>0-o3c*&PyHDogdfx z-x5mhR(}2Iss-Q7{r>qy-+cWao()xIY+Se<8{ISB%bRZ-2uJQ={kDK9pV}EnsYhj6 zY(}!d1N^!jLCZc}s>5-AM6wV)l;?L43#c7l(_pRN-DREAD(|z`w3&>I-502`R{NI{ z&X=~)blEJ_g>{Z@JtW-P(1Ot|+HHb#f_%ft-b{HNge)1U+_w@6GZAEX;K2zEBo}%8Mbn=~(zMYMnAk(>sg-Z0q-PUG!Zm|pe4zNPI!$a+|Y;(=49G5=m zd3WY6-lEo1!6BQ^{kGu8@%_JD{jX!-{=%%%@p8Ja9BYGOr2@a!Rw?uQfirbAPye<; zb?~BnsM>MMZIBgj>!4IYVyk`=7u!i?c#Lh@Gl9NEDtLylmBCYjr5t`16)B#*cOg>= z`PJE*9fXD2$=$n3w)47`q?`_?laPrh$Yt3#Xf?fPA|w5d3xydQ1&cg*ax@~Emh-3( zIyJgg<8_fRY8e`IpOs%PBzN4iDU16u2$9RgqURK%B`cn*qp|l7D5tp7WZa!+dFiwg zmJU*a#wuC;A*D~4qGI;~In@^@>&l8_JEri_GG$A5I!SLFNk}#WW?b_uQ$L~^1zi`D z8AtCdm9669P7_0POvjFQpO~6{{lL1d=YOzG>HIzOdiWz;Ixx-aUZk4L(ps#1o_F-& z_>#6kGSKFf1y_=-MiY=aM`O`_ao(;)$&RbfVbNRy)o?M!k9giA#Ocl~xzMgrqM99( zn?=$McE0z@BN1e#&MeJO4n~z?aQU-zgX;|hEizI+^fYKt@pu#$8rR%x(|oWkrgXWp zS{7H4UcqVu(XVit=yvIZjcxIr$mY?Nlg#d&zm2wEI@68Lq^MpdFhr1^r#gWkd)BT9c3)JA zkp!H!q7FNYqqDhSTJk-JjKXE-wAhY{5-v6ldash3!1$V8Dm#s>t3q?1DpxdJBeu`u z&#RTKJ*mlDgV{fDo;}Gn!%OYC-t!(84|b^n63QEkOsaMk@^{F1rf6_5@+K6fZpEZc ziICobDy8{eDy9rZGSJxUS{Xf?z#DSZG$Q^zyOgKhxv9dXB3?wScAq5$v@PL-f7D`K zkCKH@!ngOjhAX;q62xt1ef6cN==20Wb`ar7AL5T5N<491GI`B6h@dn`Cv^b-c@WQB z`~b%c26@M#{BM|S9k;Vgrb`=tGLi|e0n{IN6$ERahS#a&_UH^PPt3%@-UL!wKP;Gw zhU!J_X7>h+iA;glk7&1a*hW4edp+QrxQ+Qkrn{3Fd)aYi=zM;d?h4WgWeSQyi^eo_Vx|o)dRM%*qhfE`uGvDqD=%YR+GsQ*Rx{Ts@^` zyI;b#tyT8MUP)miLwT{E_?dZ8asBupt-#o1(GhrR`3$;a(>S3jBa5!zfF1kXiuagE zlVR*;M^$pGLpg^@qWy)Z~d^Ihkaw0Rx$+gGT zR%GN*^GAu%FL95fk(Xu=@<_%DV0FuM$~pqXhAy7msPWeqp>*+g$d;m>ToEpY-ho1d ze3|tR!{U;cuse2)k+vp?k?eTpPV$y|yWp2H<$w2+_R&*NHt)k1=W4v&E{iBtx`nk* z$?7Eocc4W{Um{U9V&fuLaY);~n6+9txw|-yZItohX#CWkC*X-oq>LLF&JEmF1iQ?N z?$bFuSEUXPB&p~PDZx$8BJobHch+p8g*GWCtXaL`jk&k~v+SMUzo0ydu`%3Hd__sO z7xFjX{qRJ6ZZh4y#yh$~tuSX(Ov|y2)QnLM>sA$gb@6=8J1Gb%YQVX9K1NT-IL4w&SB9kGOC{J9# z!;hh7dtBf!3>;H97Qw(i=y?d2oycOXTG5s+S&TPh(0_?MR5OjWX$0#lLM{w!U)g+2 z?xEta)2jXkQYcOG7`0*t5C-0)W4P7}9e4uQFvWBhGW+5=l|q^i!xb7~Mv{13>&VrD zE=Ax#0_RjtKSYY9gjkwHmn4ZLl<3T0nct&dX{d`D_ct0}L)y?@{Bv_E%M1uh_ zyKzSjJXM&)m1tO}Rw$PV2t;zBW2crmL`YSC@HvWpTNZ8qz$2+m>v85X9&R9*M{?j* zia+35nOrI{vQ`}^OX5CLiU+1Kd5~W}U9yhgy5V7kjL7xVMgCtNyhN*^xMwtNNf5Xc z$*Rgf3wf79N`=A$c*>9hiWH>{CNxG?yWmTykYGyFPF^8c0$-Z1X3ABZHG#IPr3D#M zXM(UK{cjae%!a}RD7f)J-s`mUCvHCs{GeizvIe4Apvd?YE;n7;4|D%s7aJ+Wx~+} zu}Cenr30&uD@>s|jc_Dw>aR*i9_%pA4y=U1Hds32vY5A&vn*#>c;>ELD$)(BR$~uw zafT{T7$3X_#eOsb41?JewgP$t$Yw%%hU%*yF4CKzcnNy&CdLjJXFOepNU21!_r`P% z{ykSF9@2uvnSB3Gf;A<6f2-*#uQMgc4HPlp@~N3X_WXy7(}I zOEm;NUo(;;nR1FL#c7v3%hew~V?fAlW@vDjQ202rvVC{N#QKC?y;28OiOog}! z2bprFAIHpc<~GhW;LLtGa}#$kxG4$pNh;GNDAnS04j!o1n2zBNQXw)p)1u@%VL0~! zus&Ifc1=UCv`Z1(g^MvcuqjOEO8K}vrh)kR2VD3tnLS~Y)+!hquDuKc*C4kQ20xSs zjuGGi8Q!lA98rTh82mLaasYRHjJjM_Y>0S3w&N)2kDuJu2WD2z>3Dd2#UHFV3C&#N1b&oO`k{PS~Rs%iY=s{}#eIgA4ia+h#XBt$PBu8DKp)nHfT^5L0u6`aLsm_n^o zNU|%FFsm_a#~nwIKPp4)E*9-Lu;9!CwF$vqXz@HMRoyL7 z#?>T9H7T4e;W-6lYQ70PgiJpSR>DBnO0IPjKcEhr#j(#IbCuxx6S*o~cpo9HRuiY@Hsga!)ZTBUzLYb6L35s z;8bE2GR7Y-tWbHfv2Y$~vL^p@0H1N?RVf$7ik}Hh@pn%1pBpkwc})8=dcKXgbbjc; z73W23;_Q9QdpOQN#@Q1%-GPKF@?b3?EKx}@DBQsf>P)&EazD0wWY>siQO8j!+LP(S z8n8N@Zox%X!JIZwO>ptxL|{pl9;%pNx}&~@DM=LVX;PgcOc(<@lY}ej;>0A8z_Fv# z1h0Cr2m>W>*CFl9wRkXu3u?u=V;akL=vfbiJS}L_ifVb_F7Ej}nX@R_0;AY&G-2z4 zP3I)*e;gqwh~=IFNIy)II(0%v27Nc3-IH~1S2D=fcrH*t)M0Jv{S{|BsV<=bhQx>XO6*5OuHkRM@ZniNA>t zOOlNup_nRvFe8JlRBuAu;k|0XIn3Lm5Gn|6kxpDh30o6$+n{g&@?EOrorz+Rj=7@} zYtzMt1ZUGSMM`GF4D`m3e!#gkx!}NPhyNAPrex|V@!3V}YCMpm4}Kg!l8Y0pL)jxR zf>2Hi1eQdhNGaLlMO)UI$wesK3y53A|KLL^;faHs#Q=&_3`ej)K2gv`H#2m*0Wx%6|6Mje!6viRkP`DHa%G6SYQEVYi zgEQC)50ELsw~5113dLo~l^{6EL<)*`q4?_D@n0N!a>}vS$|iVnv?Ph8iAT2LVOoAFPsUZGv9rhUwS*Xf!d`VS76%T*OYJz_ zPyT*YAvHi&poAiV^QQ?moO7%R4=hL!A(yLOcMM4P<4u_chEvm0QtTm)^~HC#r`%c# z#howEHo0WMIg6YvlhYH6Pw&Fy$KX%qWa(N8XGwc^J@hPqe1n3?p}-|)kWh=Z#Ccu= zhRD42+j>8S{G5$K2^LmCrYueTED@9@OZ~tzLnB>DmHHDfvxYC#OS6^`pANZIqZF%C zgkFLc^qgHDoSn&i{7~Heu4sK19D!%Ej$Qrai>v=Q2RD9{{biczF8qbif5O7RPFzaZ zBu+GfdKkRj$GS>rI8#%&q@`89!PafM|Nv zW8BQ{Ea2WPmJTF>bx#Cqe-Q?B*RI3|DiBu<*^hBPRpDsTg8W3f9cK!mDB|n^x#Q>K zoK4LX#nH!8r2YCY3e>@s$^0gYqxC$l9G=CKR%X07wW9AbMUEwBX{0xMwTw z5pZk~42NJ?*fsFwIeXT%%t6NjQ6gZy!QPF3(_Brbul`6^CJPKD^Nv2aai&+Ej7e<&ZNOOuZ;p_n5C7$j4O6=mD07gkiQME4 z?hf2dY!t42DNNk&nE_3GD$f^}M0PrdN( zA76Tg+bS1#;z16_et_ZmFu3IgGdYVvpPq&R1j9DrNr!S+zXC&l;0Bc2#4}A$)I;v$ z`M|n^&58dg8|GW(9>r616~>k(N)rRYc6H8-nY1210VY#z@U+uZYk7I*F4z(Pe*1FD zjNjGI?q)iutzX<^Zo8RA-Ol0z1Gj1GesXZ}v+nadt$WDb@GI_mmEB5?^VM=+aAr|E zvaED2g4WZju-?U^O&#{nwFfu8JWIzk9wgg+{?+gM8KvX1;$Aj#!wSa6!G7?oROBqo zbipUzK3K%PMDW>uw&Oy^O2sBw5x3D|dWI;iPLjB-Ch)(tcrQ5u=WFlpSy=SOthc{j z@%x_d*Z;%w{}Ik`Cv6wQPNu6;eHk# zY`8s)JXq>ny2Vwy=cU#|eJ&iH_Bzw|1a761nZmd2+GHs*lH3iXYg!HS?Jmt$?pub0 z^esKPPn4=r(s_Yfj-SC&>kWg(C&g=g!lIMM4-sn>z7zDyv3f4IFHNyn^w+`zwLLRh z2FEPReJxdpST@y8%;5untS=<_Vf8jLY`K!L4^?x5_{jlFT8DCZ`MkIm$+Z+;B9zSY zPjCJ8cENYn^thf7Z73 z20h=mK4}ko>%#DDQivMyMs}@TyHU9J^iVk{wPoRcw{0##6HKM=3}IOWTch(wtCuj+ z3jbtkcIwMFK|`IKxOZjvK04Z;_8J?`OWGN*Ahb@5JThFVsV^GkYqnS`d_tQw)7LCm zhQn6LGTfg{6sGvH1JqRi!P;LZ?y5OoGkyEg<+FiLL`OvxZLu?34u)Jq5O!!?pjy0K zX2pN*+Mc4gDLtCK%}M+tB}2yl*_==vv9JAtxs{!y&mMolkVHo>Q;>@sx3|dqy7dVr z-3^^8h{V2W$Ci%oSvg_X&;M78cfSt46|GjopD(Ge!9#>y=^xT#&Gnt2%EsZcsC{_+ z4Z<=8hi2z8-yync&E^)ST<+H{Pt|T_V#v|tkV>gdj&QX;Aq-Yi3J10+;dRs7zosWS zI+_?F47x_X=HF;YfZw|96+S0nUFWN27tL%_a?CUS>Zr2}mYA(3pYR%|$Aw6nHjRze zY2pPW09LYnvh3~hVdX>i1o}$IprnNzmNC73Gm`kLl^W@)p|`=1tc9HD^7ONv_z+tCWMO{D^AqBi%Yw%Lm^dOfg_b$=%?ha%*`$2J_l=Y5I zRZi}z1X9NcUtkGxwPj{HF1h5vQf+aB*8lC1RxTljZ{#-g-9hzUo534>brM*s$ATf0 zCKhIjXs%ndj{wo15l%>|DIu?zz8l9>*_#C^;{-aCo-~kJp=pe);|)?4Db~`FIA5(V zVgF$5W?)CnaXC?K)@=*ZgV@CtV>xOxrFNPZ$(+ z;Ibtd?E}u_AW);`hZf1W6hSI|k+gFVFXbzp9T}vnQOj}FxkKES;r>1{e*6{EZ_Wnd z@r>!O94D}znQFSu#CQLooNP(eF_*A7UADPpAT^0!fJ{h_S#IDuMIT2j^BtAM@Da4gcG7 z^LLa^wp1%M1@w*(Sxn4M*iVdWb#JHf?iaPf+GqJ_NO|hDCM9wcKr<>H*Di*_07Z7s zi1YUxhSe5L3lpQ7sk+2)VTq67;&>(vf3s89%9ZGN;&t3~gz{0$h-dq;Z_|b@t^0KM z-`B6&t>iWwmxLN^P;eO7u1aixB@|p%N_fFaKDt6VdDGi+-+dj|b~esoUjwgOayAcG z$AE#!P()N}WBZiA~nzZ#8phLq!_|HMb7E0@O4&kC&D3+qZo1$@t z-5Ke08zWOBjRDefcwHj5O181g013l;QOSO7vh3sn8FubDUwDz~%+3`_V(nzF`Bx>! zra_?>D65()TLj-KPP?u{G?$& zHGcH!%3?pc5sZ7UH8&GgSXRk&WFz=xGcIs?nYmn9B4lIwV4#R# zq=|~f-AI6A84My*Yg2 zS@lO@TcME|%7-in-Fv6L6gOHhfN%liCn>^-RY=|H<(~H$Yq8u0o*D+CWn5przhQB+ zC4W%va8MlenF+aZk*~`Ea~EQziCAPEW?q+Fs>7>vcoc;IN@1b4#HM^W;hgi>@DsiH zCoYX>Kl+z&CJ(;RvH>x6FJihws7JoLGY$N5z_Iux7$Pkq@`ky2ePvwQbc8_3`lf9L z6R=f$b03M!B(m?aFz#s(9n3}NVALeuqTp^V|G26l6Tum6dUl&pH^i5r{x zj&1JiZGXFJp(R4LQWSo)iB~(`aLZ+(Cy)~cL$|*~R&vsFTr6)-hy+LCKQ`-I2K354 zeX}{CIYMGpIvHiiF_JvBnv*J#QJp86FhGDmYg;)zWDz1p`UoxN{M$i^^y<41&BjR+ zxNl!jMlxF?8a}GS8?=6m;v!?X$WmyWk9E0x4O20idA*kOHB>38h9Z2n6`90h6M=== z75R@}qVPYS#@_tKYa}6+;4_j6dYJd(XR?MQ+&qVq5#qi}GRQinHOCfUY+);F0t4gsHq7+9NzAR{8Guk7I`307$7VK;ch`eRoQ&`Qn_tS9g0b|PNtd2S#F#L_@?6!+)L z%0@E=%EpD%EoM^2Wbhp{)iolRo50WOMckebnDBovY>64wX)?1b_zieN@?k;K0&Aq_9crAgR9TFx4j zrKBAF1myXwnuAoINYn`_Ev!#K!p{SgjEnVg$d?^W@X~r{)FbCr3qyU{R`oxf$UjLT z1!zkojDZH8usPqE^qC3OuZsdg|Z~ZbarJBa-nk^G$ox}K^G_E7<^*Nb* zE!o0On=g=Ts;9PDpM;f;0wkCib^ z#h4)y21;XFJKbmn%8kk1Zk>`=`|6WqZEDm(;4BtdWc*=}$RBskg=7|~ITK@K@$8`U~=;tuwe4ftZjmvo5!!bKT z&GUc!@b_{Ie+xf8WX4Z_XCG+83hM36?s&6?Y%4Y98vWf!l)9B`{3nPeV1wh3F4ZSe zt%IE)I@?Rn$1)zvh`|M72LI33`EG5?Cr7~_-zkKoM8*sTMsu-BE+pq9#WbVVH|zA2 zw|^^=c5;0bPu2Rma(T(ah4RZ9(wosYcIjJV-Nq4!X2Z~Mf;rcpPvRDJbJT+M&^~%8Y#Xg4wAX8q%`8NIGY z%Q_t2h-0udoyfup-NT+8Hc-W+9 z)3y>6=%c{4J?vdw&E;oq-dy>b@Dg%);Pk}v9jPs~iLaD96$#ZmvF1Fdm2C_mX0E4C zYm23G(Vvy|6!NxVAuTZL+gw$U#HXl>Z=WfKN>UjBidDSpKF@zK6<6^dwb8%Ik#J|k| z;&9yOw_Qo%`zoQa0dqUNeWSQ&HLNFmZs6;lC~I5Gh1O!Ao{y3sRLey(gG5xtWU3GbZ9r>Urxh_5)2@Mc@__M;=*6v zxn@;055~WNeRT7|xjUD?ydzzeHE8jek*AC}ZSY-r!fQ65fdntwDHOr|R@U0B_eZt| z>aK%W`j4F{{!6j=EhjPaLM-VYEyj%A4rW#l*>d$C;J1VRhbf<2n}iImYKr8#3gmrR zUPN|A^~K+RZl{pycEn}^jdM`k3$GljwX~LM@Ol$htLMAM;phZnE@+_=W#$Pmf&srrt z+21|86_M5*$^KHR<;@2?Q3HNmEHBk6tA1{0^vb_{zZ5sAbgQ9P5amGRZsOH0n2BYTk(YPw#M|PKj12ZEKb&zcf@yXcP@p za|7k2nQtQwpSkIi)snwdH9L1wS!fOj&B3Zx$fzP8jF)xl(GyV`^&eRl@KglWI$OHT z%|aSv>F>dOIQ>0Y->Bs@``*HIq^ARY>%7NyDa{60mE01|gSoRgL8+rjg)c-3jHn&;F$8oJwF$$ zetCGq6V0)jex(r&3lD8pzbA{7b5S`~J9#OsRUD1IO=aM*0B=sk+)rhMbl@8&7o7(p z+5G>c%G+O1iQ2t=qL0vhJs{&lIR$;>_P%9UCj`&|=oM{FsZ0E3sVEr5b@5hhbG4WT8xqdsfCxcwa11geLeXl(cK0XjjVj zp!n!z3VrT6nSZPN>^g41#DAHOMJLIkf4DuDv#Cj^-Kra&$ zl#*Ua>skd$Hf+sb#BK7E%5I%P)cvPQi&1$Pm4f8G7?F&`vze0;-8WD3!1`%OxA?y; zkB44+JoczWRmr=a#^l{HDN(WWWvI#Y>ObN~zGsUS@$@PgH$rwP4o?~nLiraq~M+aZT9SX}w5pk$hv$zBn>Rv+)h*6w5Yl(84x%H4yzv=xM}M z*_?SN3FVT!Nl_&$*F<2X*I`&k7SY6#DTom!zqWz3(?^lj=L^Zu?i9_x$m+tf1w-*04Obe~j;^dh3klK}PO5A6shy@C029 z_b?GZxrdg{Y0}wSQBqHb+sLih=$4_I*zjsiN7zV{iQaV$8X~*Ts)ozz%U1hKkn~^W zt+f)iK=?Brel|*I{ZLa`^b%QOH~m( zAXYDtD;bx?7w)i`d;y{)+5aX}5-+gdR+1DK%|S;q&RU3@+L+1y;(zCBGnuGL*CyV( z{o8T&-jWO%_iIN=b9Q}6hOd~ljr2XN{ANT~LJK148 zjqkrPa}s-2IfcqLFfU@8&30>$VDaK!YM8iJ>5FCI?VZ{d!9E_uLJ*B(%O%Dn#!~U@ z7}YgvC1GmN7&HZD{#;`{T6p2E=JSgemq4Rwb)u}35{n-QoKVkQqJ|OoT7RY z{h@&w*nlXeJk5hHbO;`${^Gb6)qawLxo4oOV^ASmmm4Jh4XcqBCu$qdMCRfSFhVAx z>$+mQq4(Y@uV+7TDEBcu5hG7_KOl;G&`f?qfy|hcD8|;|YF2Y>z^)f#wWFEF@iJ^5 z0lH1ge1o-eiZMG7o~O`EQq38r`~PY2zB5;7WJ0EF$u%W6_%*n{mul~}l30flFTSJm zu2SJlWb7Wg(TNG~DtZSpck{IxLa?MU;s2se#*1DDt5oFL;-v#FKD?7sv<*-7=30H8 zwTjbpdLDBwLD_9Je}DBhh9<{b%G1TD1_$>IqwoZ} z7Ys8<^-HnH6+0i6L+0w%Av#yN@rCr$qBMIq-hR0G7E?e z^{)ygMh9^D>Bi^yd$mfDq6L2}(+fUSo*2kX5;i2L?$;1XOBQwcZTqJKP8m-;z{%$u zy<9Of1^Z>z6EDwRv2gm^zn8rIbxA$W-^)?DK3)cc_4-YqYKFj!?P8R`gDW^&y5?eg$9^|Xqrw|X2 zKYc6`+#jE7g{z}VK{@u(g-_(WA{90>>hBJ0fq@lATUJ+%2ofJa=@C_+yGxuQOvzH? zNH5l|Y^}=F2`>@h*9(U*u@7mX;RRk=w@Qp{hbT;G<8Bgo)AI#P<9hzyyM&xE%?vhD zTc&+<_|GZJ|GDtJ57&QfP7H!MCxCw__N|bJEa*@WP|h>M0HPnklPtNY`;OuaWljZk zWBK>w3-QaNSs8}iv=J-_XElFMxC zFu4YKTU#;|f^W;4bxFPst1bv$#GPit#;BMlqMO`;ZMiRBsZ_eU^EEF*ftQ?=6g$AI~axr4gYBZ0Go+;Edax%T=ycfZHGr{mFC za&tvN_yp`tl8H<_W6^R=X{^)eI)b;AD`|TY+d*+?iZZ4M9)thv{}!_zkX#vp^#!Ky z99XYu?!eiKJrWw9?ZL&vDIAl`Skqa17J?&1OD5ZdBN2yKl`0j*i=2U7Z4@jiY~cy| zHuTggJWkkpjMVH=V!I6NE>$>RfmlP{31?=eAvl07I>3#Dh$lnnn@60YTqqZ7(xsA2 zW`UfsSORs5TV_&h*9-e}+#*z;xk!vuAa0d)$q$vn0D!?TCb;4ymwL&aW2c(FLI5ah zORS5)w=c+P`%R|%4Uqv7^F~1US!B{gyF537W0g2|4hQ>iV7yfSMEa`F)8GFx{dRWN zWW=}}!vEIZg{4DYy_>ekI|g9jMijV^>Z1WT zkUfBhGvywZ6g!BSkCT{51apIxjtxb`K>Z^lTZG`wTn<;6V(M@W3`Vbt-3Dm`wtcpi z`&ftI2JWctv>}s0-YFsVMg?@VZ=j1v)3{Z|vWT(XjaWr`FV09%pgjuC3dAQZ!5Rl=PhyY>hk<_q$2R$xC-cRUbfGBe z;u4&HAP*egP8Z!c_QO!%Qm`E`cumoE<$F^%Wc(i1Die+@54<>h(+tS>)<}iOG?oPl zD6vB+mCIaiIp~!K&OvrxDYH+@c7tc5(6mPt-memk zE+Dn|ie&LHq$dqyTmeKtvNM!Ny)fJZ@2;Qm%jHDQ6`0Y~9M@sov=%poaBOz_prbH+ zq>^?Lw4IbyLNU~cF#lhcDC!;<1bc1n#ANX*L(%6|g@eyQ?kiyj_2~lN* zag2owB&DN+j8vE^mFpAHx47cPdgwv8^BrwqAI{q0j+K;X#pw3e^F-Z@<4XRfoI8x# zI(Rq_$F3lD3P;zmNr(GD8APgI$!_^uosP8|I2)QsQnI!bc496E$|Wm`iE7%0adsJN zr)Zn%={6X?zg)B%OY7aV!|9RXe}S82I3CLU`ZA7fz_Gm_NsJOqV3S{b?%#aF@Z&nT zO$Y2{LKAe%kZV82?$wQ+nqI{eX{7oT+^-Jf1br3GS((9d@sdr&bSCwq`%W5muYB;bX4Ms~Xa6zc!- z=M|`drS_-Wy>YTRTL#tMx}e$O#l@a~Y@4AlEr8-+$mYfcw#vP8lY=@ZSBmJaG}?-Z zlNcrnMI4^&GOTZbVhrBt*D$uV%zL}djy5e7O5(;rXBK! zA(tKJ*rXVAK!&2&+6u(l%8QfYIIB*qI~ORBJ7iF}5_hO6NwOw06*|_E#TLnhA5dCE z>{ktEijvs*Mzmj~%I6)11g3-h+x)m-PBMKngFW=xH-Lu#=S(oCw^st`Kh&R#X^%3@qeeK(-=uC46#XIOitV9Q#*0g7kg z>8;ru-}2V=M8TfQ+H?cPbYQ=1I`3eZeZ-n6;_IoBGfT3orro@KSpO$rGPf+iL2*In zxBDNCe$!ewPJR;s{aHgV1SQnC>$wD+&T;D7fS4Djb_#r@MS8&*K!#f|G;n0$LJ zyxF8GH6k1q-tS1N{QYgjwywJ~(a`+lKLPIO#OeR+zcQ}plPx`ec8n1lAioy|D98_4 z_1<8)&{ea3zao4t0*cC32dku*;)0%B5`lELQp`rmOx$!CGNTrVZ>>P#+f>bcUZ;Hh;IXL)l9do=L8z50+c`qHZ?eZ{+ zp@q;fw{Z6r7&r>IWdrH01JXBx>7p#AU^v#EU^+|+W+)ZmrfXNeiovk+7o?<;erw`v zq&UI()^B^Io$&tMCpZH{@0sAyFl{${xy&z4TElPqoUx@ZTLSNogn%(fcB5c_JiWSq zLQOmxt|&%mPBxMA#?%*f^f%t>@40*fD^LV44o3Ir(Va5dmMmD+Qe^^LL^2kIR2?Vn zJ<6_!+)F5m#f#P~UcQ5WG?JMz(C;QHn+Qk0+;If1Vwk$Qb!aw#cMm8Q#hC<+Aj;Xh zn(%E+{60!7poAs@P2dPfy3iyCJL%D-vTa}z148^M~%|HbMhTT)yI z2HX%$VI678!R}6Y&kf&uEcxAWlDBC4KAc~ z)m02LD?cB7qOm|WXsGX;7!pftZ zZWx?ZrSu2ycQo{7)hYJ`!ljK=)>Fz0p5Hnf7np2q>5ga*=cLn>pChG4Gm*7M*^dn< zW)6Ghi>1G%?7jT#_}9N$c0V;E>E)>hFE0N*_4Ug4=DqXH(+|=zc73({gYTaCck18! zHdar4b~sn_wWR@1&ulG@7}^@r)@!#H^KZg>dr6}8lS zHg<4L>IP5oekQz@8A{Sh`J2Xdg>-SJ2izzG;kfPDs_g$coItW+as(7_Ikh-*k5sqN z=h3y};YE*CoOGpI>jU)k&oo+ik%fghl95CBb;E7I~6`t(2 zPKNut?9+U2nJvS7hawgyL{}@;`woO`)8Ne>TaNDpuqDBpgl(|zRLCy#Nm2VO-!+RJ zUHd254LBY_e#(Y=fT*C>rj}~J ziCSy1wZ7EX_6>uIR&B6WqqR05wb9x(TI(CDwRiXXz4wpbx_{iemae61sSGCP?6ddt zc^-FGs5!;ZRJv{OQm;@lU`Qszm|NY^h_nB4oakO?Lx!z*{Sr|l_58Z}<(0FVfgW7AvXDFt_QmjqqAMd44c>yhYGLUpp}dYx86e$F|j;7D*{j z6B%;pY5oW}sMsrf*Wpx#n2((46gKN0t{aUxjXA~U9(@jC9`NVX+%N6RnT-8(Csnk~ z8@LNqQ~|i(itv+3v=v!GM!25$i6Ug6U9__m0ivFBi=#?cY)t*?(-kiYzxizC#wFjK zwzsP82+1zFMZ|LrToUec4v-?UyZ#0#bh-y8?101gBe$^=R;9j^SASYaI=zSDL&3mo zfjKd4AL(#ite*J(>GrHqaB}MyZSM8u6q&tULK$ZDH(}m$}?qvm6;5`DcM4A;Hk;mr=Af>{oP1B&!n&1)%3CT`!hnD`X_4>rRre_KH0Tz~J z^E1rJWTUGvnDOP|Rqk-SLo*6|H8W(OhQn#9-~+o=Sjj9voUy}MA~_hepj-+HtGsTk z?WI8Fbo1(nXn;s5lzPcCd14~z6>C}7dTtkyi5+|jZ9rKWuD(OT%qfxGofQiLWmuI? z7;@u;2(L}!d5x126`2qi`8Z@SM_^@&bGkLYkk%GavO9}c-th*u?bJeK;Er`}2NkSm zqDnYyRD?TgCxm$$a~XHg=kY8TU9@-jdvi&iw!i2aDC3P9(O!nUrQqcQ{m3kX{Zn=$u&S}(IM+QPcOYF@Ky)>ogull4=++rh&+M#iU5Jn@!6dW5VG97+K1pjFgdTWQ9z!6@bs}h$e$Fq-( z{jR`=a4JJ}dc*-|O@!IKFEZb-HiJlMm#s0c$hivw!O-{`PB)ImX@XSvri${<3PrSX z660Bm)9UE2R5-WmQL?L5pN%vhkInB)y|I!pFIGcy(Xp&wAp)%w*<~T1rdwRQgo2Zw*zy+`Yy-` z|6pDU`D=;L`qRbT98WBtezP&yrKD)@Ahzi7R;0gySMWNDeR5_F3MTKhk?|qIPSH)- z>YU0WSFph&w^7hYAXz`++~jDK3?eX!BJ_357Lo?6P#5}6f_m+i)mPWwocL3NVLmco z;GQ=aaA25+bcG&u`B!3z)Boanmx#Kl<y$?ak93H4R;;4(ozV%Z&S{p) zt3sDTc9ME2Fdx~)?MYdPn>z)E6&ihN`%Ua#jqp~~sSw(?hRE|peDV1H+rYQs;dd9} z5m!(+r#2eX*C!l0`HF|(EB*Rfe6l+`2=+w*T~oul{X7nc?av3oDT{{gBTaEJFwkz4 z6m4Ad>kRDhmL(1EoYDrJ{92<~ArhJER}@#n`Lsq7Cv#Jo037isAqjGFBc}l_@9d=U z--*erW(|J!zrSzU+W+U)IX{oh49wtAR1fX`cm(UIKz8jK*`=r?+j0csed|G>+|K zYhO!$x9!~~5nlNM_#%LB1{-{6_p%R1DDt4#3Ha|>_e}%d=?%`OjCZC3X#$Ugd!2A^ z@x{1K730l(&mlxg65$`nf&IVN;R{h%2UB@Xum#vT=H#OT4k&6DjFcj~ox*)>t8Ihd zKr}7tq&dC8b<{<2A@iywku%W2!T_RkNHR<7uxk$poXN*mzop=5G*LP z_lZm$Bx-=iha{IG@qg3mJgXsXVrIvrff=@=@@0 z)d$0<5|c859m`tj*I6nC_?8?&LO)UejR1(tEP-4s!*gv%I)#{BVATpPKi+t_b)%UUSYK-e zUdXRUFy4{zdZCa>VTNk^47v=15QjgmCyO0IYgkx)_l4ZhVIv=}4XP#M+l70j71QjZ z{EU^7s4Tmyi19B?d$IRwhs#PyWcE#rUxSd-n1F$K{_(V_lV*IMJL8whAzfD7tE;xOM$b4LcIOk`f}WZ_8XMGpwT(bc4{0!P7}b}r0I%b&Yx5d)y^X%;5s zumIafN?oKdtt%7^{(F*MC=YBXga2!pH7Uwt|3iuwL-Q-})a)I52zbl$Oy%F6vV5Ui z3hs4b9^pIbznKa~GroMrH#_yR^b4m5af(ioxlr*4{6D@M^f^MD0sfVtpl?*Ch`AI7 zUfjR{8BK^0m=;E|AD$jp}e-~46PO|s}poF=W1+Z2*v3}QTM*uK>;ikzYprNdl$ z^XI(Hjhys};OCLB%?$CxgZ4SVlYG=8xZ&gj-wGBOb2~{3JSDe>Geelefqv^0mNl&d zo-xdA`yoa)b<*4LiJ0*PwKxP&4e~na+X*l{9x9aBW<4+wV$+h z2>Uz-nw)EZ@3R9Rt%hP|Xa+@;qRtP0{D{y+SD=ft`4kD1u@Uy{xKz0({1ojPJZS8!zpAv(|%&p1Tjq!Iyd_1*J+n%MQeZ!Pdw zBA|u2a`fdtG6um9j+nRgg6`gAlN>_f0j7sIq0&3O63 zan(CzyEsZAHt`DZ^$nEV#*Yjexo50RC-goVD~)<6kv`_VShw%k56t7kxMe>J&YHX= zDn7)#oXqoxb{NJg?Ibt+oOj8@MPKGDx|E1ZLnR@5ZB>is5CYo+XeQn;zE)_;R3O3G zW0uW_&q+u(#BHmYTi1B)0$Q^R4rFatli{q5rBmOcwC=I(0y2a*5r0S^ey_$D(0 zsm&mY8TfI$Z*))e3o&}W^IeAp?PUB~O|9@7rR;RyI;b*b{EHXP|AKjzsTRkd=X{A8 z$tfEa9G7OYgiLn1aM2CpQsL^QQK#Ph{=&lN6dNOQ|87GnR}PddTRc4c|GG0e)clhnw`Qt zX_2?@te!A(uatAMWmjsa2#h;>bpU9OD{pdygd*Wcag|C?59-c za$)Q8C=It(bTM3-s;On}TT?RMvf8x3Q^vSsW>W%03FjgN*0<}YIp8FykgF9~X{ZGi zB3E?GcW)Khw*pTjGmvyTzGG^w+!669<1J$zeGp~eDy3kOMD$wfnNIUt6`HIo@C~jM zeOn8cB+A{3nh}s6q!7v+^Vz7J>z|0NcGBt~|3xX6y=q$-e{JRHZv@MIUSmAtna#Mv zfM+pqM^`dJoRaFq$XKZNI^|l({?0WQ3y#LY;q!FZ0TXLBJz~ z*hVqq8~2k@G^%;pNa-T*^QhF=9?Q>;zW27{;*?P@iP z;jVKQGx#>X`zAB=%5`>(B2F=L$20}Or7M? zJv*<~{@Y?87f~CSS5J6_umAQNvgVCpYqo;r?epJp2_xi5%+M9O^f1F&GWTMY%`aT6 z7!L;Cxx6`*({=G@*M9JL>yWZ0bxqmOjwM1>g2XQ(nE403j%NI>9rUVgs-rCW8unl^ z_&e!At+vDbGZTOhFIiLmme=f@QnUY?iJ!EUxS!{FQm?IyU$r1k!}JHzj?R)FhhP0{K7@Gey2wir4)bXlZzft99HooOX#7QiUnct7dJ0IWO5^Y_}+V#hveg zAhak80ZZU~2;-lAIh{c8A7w$cQ;3lWQM>MXU>tc&`#0yja^LUW2I zSJBQS_ol%2wNw<}`sTuYJr^_6Lk&x_bs}v2Z1ALV|7oQ)OU!}=P>zmFy=G&=(9sAI zqMy<33M|~e{hUxPVRfG z&INC6EcZDAXI;9Fvb?=uSJHlT^P_jnFP8Rg+Iew?uL?Yipt^R$&;PilWKPK22uZOq zFK>qx;w2KuDeWj@%Q!Gg8-KEC+Z$KP%KA{SiP&IEG6bL#V$Ul@usDM_B6 z9BzDV-#$12(z{=kysz%~Ul$&1Iq+~==|My)Uavn}$B6MxF;bVf^P}l(aFZFXk+!_? z>f=AQE__x@ol5sIRiWc=h$87~kyQWlMtDWo7+$VQhGU_eo7mwXHb;&pDd+)zFasRZX-~7qp zTJzh=4A(alq`v*ykr~Ub|7k5eJmc7`<=<{Nx8$>VC+58V?F)|W+@eqBuDG$W;K;YH zpPsk!#tZBDAJ?9lzv|}3bNBz)_~pVkZocI5IOgt3qi0j$u<&i?7p?ZZv=yc7zO;DF ztxe~bj(hLw(zUn#;?@-$ytb_7_U6K)vp&4>`kS}^vRzpG>Ft&4{{IU{e|>A?_kZ*1 z&fR;me$(BpMMuB=`Ps(JcmJ-t@Z;})Zr<|4)(b!V@#59itzW-HfJ+<8M_uk5G2W%E zh~jp+H_3=@ZA)5ExBF~*NRRf;1YwW+rHbq=i=86r?awI-J6BdQH{x9Xrb_AgvX*7h z=ljpDj=fNJXMOyI{+BG(H$ApKvF}<=bMnRM74N2Aytb)TerbBk2g5I2J9~2ESJUr& zKKiR`FS`_%XT)C2xcp5{f991L6}Pgke6wjld38q1gY2u{oPC`0^^7~ubHD!PFNAi_ zjN|9IuTK)I`)AIND(t_$S*E!*^Zm5qYuCR>FZpKX_Y+FLx&D_*dwo{il&6T>3^ZlIpx7K}sbMrv$-8t_+*l_pe7mqjnFz5T{TYk9t z3Sr;@Cg0@sBy-TULMEtQV@bN4UXcmLLxt6P4Wdw2c*pKiTkoxbw;`ZkE9H6MCVzTn*>4{mR1 zZGTw4|AS)>Z-066_|N5cKR@yF?N?nLkLJZ+{N&Mhx&5bpnYZB9>0iFvGSKj#{_&lyvc4x32huJ*x$~d&|5G?R z<=WHlCzoCSWB$UqH~#p3Yo+Je`~%BwKl}batMB}G{txT#{`dR8S#MxLLj7Ri?&Rj7 z=L;6Td;j^}t*yR47aaKD;h%T^bMn!P1wVZL>x;X8cllo~Ot|>uLQ;jL$X z{jhZ)@M__K2Y+L zr1z2+H}>z(EOdMueXn}u_Wm!GMbaPt58>#&%M|s`&yFqxFo1#+t`P#BC9hK3S)COp zva74gl!s=Iifk-gRMt7PZc;*%rh58>DlJVPOV{Pc1pzdqC?Y{%{;R>E4nW?Qv6HLlt-(cM}EOsQdybVkUd_!^Xbnid#@}# zRlaiezZakW{*6xBQ&gF*%S}TY$`+k$f0|dYF!T}ufx}a+SdgjelctZJP3s(5GdJhR z|MKXwt%2rODH-()XI%fG1{)IlHP3ciwZA*Ny=zI<=lq6|X^ph{$$)e?4foZ%TYiY# zeqm_M`id`?W|g*&iC61ovOsNwI_>I?q=EGs|Fo=``fkG}M_VLQc1Eat^Dh+F;{2X3ioko`-nQU}sZuqm#HAW5+v|PYf}t|DQ~I!!mss z!ir1sOouNX8Xk6N*`HJF=O(E0V_Pfqv+yNNg#{KBQ=DxZ(ymIWE0WKg%VV|eF^zfN zzBhvN{ZAlA!s6vSl9*neD6#L@V)6O)(u|#wmH#)7e$modSZT-BOE{rST5ftMr=L3` zNTxfz%GRT}JDgJ~r7Ph>mS(!OmF`Xw;Tm6zxCo9c3(kFjDt4uofhY-cD|*hZLEX~@ zVp)G`X0y}v>(cEug3)n%4AoI~i{VPi{Qu3gFK;ZzS^xd{yO+$B&aZE^FJEqNbLb76 zHs5Rlr=2BYh+(UzTJP1a3vPhrAsy*_9#JYuLT0atJk-3UR@@^dOC(ig8S0%WiWj>` z^|JVUc!GZ;ExZyAFj(4rx{*wqW_Duez!XdW{M-MVY2U%Im<+X=`uolCsn$GCMLL1{ z3=22~c8vR=@SzTak=IinG`;CZHhF?$aPAgPD0Z=UVz}vKYVNLK&qq(& zmG>?=Z>OH+YQ(8s#Hj6co!4VIs8*Y9U1}(g4_-pej@!{1&`!md8cR0dF0CfrQaYfBluzVY_}6kQ-9&0`i`l*@930f>B00q3aH@9& zOwbbDx}+FAQ;Mcn^BvTiu*4pYkkwHpr-|oslM|Kyn`u{{+GJ(h1%=Ad5!43~g4rL- zdg$Opd%TS<=OJV~4z=j@?q`Yl{@ui)6k=5HkWK|Q5EMykMxij_fS&9Q>vb$asrHqovJFAB zCN-3Px(rW09%@oRa?KuO?SIO1xst`sKCDGkl=45B_UdZXyC#OE#z?>^9y+im=$x^N z&wTbZ{Oj>_;H7}MoGPLZWt(*?g;mv~LZ~zGy@tH-)|Od(l`aPFD}!5|(}{tsiIxsR zl6XBAXx+f9I}=pZq+uv;QkUU7uKxY&=KhKxni|F%$Q)-X+ecVClO?K_XmeR3oT8O+ zpyQZuULIyKOb{{c6HUklq7aM;qZ?OpD{~X`iTP1Tlacf8`2WeY7i&{Zs|y9TJ?+61 zl_2!*7^l*9^V({{fV+5Ap?xv8wYnBsC`JL#etxAT%qEMaT<*hBCT($~}U_ zJ;}U&Ng{`^@J#IprfHAw?T8Z6#z+p>Lb1%7_`#Wy5YQ5iP+~5kB`tb&8Y2CcgItdk zx*cLu=l7B-1-V_Zi&T-&f=G=4j9P?fa&T30e1i&wn=#7-i*%Bm?#7Xbq7qm2j@+U6 zy6_k1hMe7aiRjQORDI1HXGeIwt2!C6Ukr9$j9~8RiVI70PIQsZ!T9m$an52IReRJ$Yu^Q46`&LUL1gJ6_N7v@b{zHc2q%fUZB@g#Z5LGG@&lA_eyEn~8oAGF@Z?d53_yk^M ze7YJw2%C(PzIIFE)xO!WYz|eg*cW?Vn+jY*Z1?a;2u>@`?OS2AS5b(2`=-*5Zp9Jgc)EBzRE#>NG^N}}`b-~4UasGi9vK@p{XMvDw6KO+MILh#cM`c=&9i*X$ViTA^8H;8i_K~8o-(~m9~TIKEB1S zUzghBTq#oZae0tx=hn^^x7JMI>ZLJi|7g_JGT-dd@U2uDrwd<(x^D;d^r>PKwE`mj zD;Yw>oYdO|Cge#l$4j9q_0qb53c^N?4)a1!2$ILUpcx;_c4nHIjr^0o@$dvRjHfpx znUy$4-x40wQ5w#yilIvhrWRvP2$-{oQ%k&7#nI2iD~-W=H@7PYhwi$8EF1`N=Tp43 z0$+Sy%H)NDy}$j#qiYS$yl^U7B4`6%Z>S7PmZwKMZ5Vw_>|$bEPLA^tt{()dTrRRt z0H+fM05Xsq)s>0XyClwI*AT|QdcR=7)P~|LEb{tS%O1}sbL*XjSitLJXZ#;YA0!Fu-CxtYQZZZlkLGP zukrMB2s4CN`r#83?(OAK(YR_0F3ZFRAi;TqJFp=HdBp*V!5=M2cLw2IJMh-C97v@* z1Gsks&cyRo@ZT>a2Fh_+3Euh%JR-)u6xW%HJ8N)u0q(L76kfu-NASvQj&?>&6#y*l zZPI1Ni}}{PfhJE)u1s979&FZ~T96*Kz3^VM=c&9gJw<%Syyk;s-5bNATb4C{@K^Qx z;E1WoGwVAZo}6~*+hyW4;ppb1{qc(r^`9IZNA7MeoY8mo*_`DG0`�XHR;5y=Cx6 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

+2;vna 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 literal 112047 zcmcedbCBfC*5|9I?P*Wjn6_=(c2C>3ZQIkfZQHhOTiegw`$pV1V&A`ZW3%E^e)8nW ztU8(BA1bO!OpF`=0RRAy001Ch0MIvmeH+lf8Ti}r#o|3;Tu?XaL~q7XZ+N004M? z^Wk^>g#`dCd|T|dzZLB}XKVoA^Sh1to%AgX0KkI?063xo0P~Ol0PgoZ|7H5$oMs6C z(7OTv_;CP$Y5VtlLjXX|BLFbI0st)M0RXwQK!CqUKmchaAV5zD5I|ED2r!ik1dy}? z0<5P10jj?lt^o)@^=*>h#wjAmCn;sTr1>X~8;Xb<|Lyevzym(NC;r~Bf7ySj(dVD`zm?$k z&Ht~}_|N?RrN)2wA2t4?7Rhh9{iDWzSn!+wQ;q+rD8=tSQUw4&?>i0=0{~$AR>S`} z6W;HL|H|Z_CH?=A$v>+J_q|L1WbzM#d~ehLl*xBDz$N2i^+`o(sS(@;QGcl)qfgs> zvSD%aO_B9}Gu-DdnNU6%IYHPDr*rI{%|GF))oAB6{iqRIbYSIj)q|Ba$^FZlt~~A8 z_mLcf9W75bL#)|%@a0!(_ESttD?@{WrwZIAy-=fYSdG>g1}BNC!dIbfcdZX#j=Me= z`ooIZYH$99PIdQbpYe^q{NrM$pgddech`qe(mcS6RtwcO%*^}ZJLRZ48oj&n3bkLQ z=cJ36GgtD>2g=<&=k5)is+i=buK2x~CC`syFHbtwS;u7+YVO&;v~mg5pWfM9OqBa| zXI{^*Z`6+zo%;|J?9TDAm9pHW!r&G?%F-)Na$AShZj;M->h9gXth{}{D)M;eyZ%}x@(xJF$p zI|fIJwREdUT3f5;nUkW&$`1Uz6dcVzfD`!XWL_5YD$m#th-vILR_WuFp6H56X*05d zKfRXr_Zhvp(^c8~x_a}=%$=8>+b)ZPy(#>`HqzZ%!vI6Jom`0?oBk3ORZmC{EVjP~ z!W#}sD0%x$c186SYTl{b$NjLT&d@>zD%1J19x;GvzM$O&m76PWBl#8|oylfD67E#0 zl+$zuj2h#v~LlS`=7x$1C*TjzT0 zxUghMV{tOXMO+${xGxR?>pA#IG6?5cY{7OAoU6j>v z-eeWaSh%S9>iJp1T2{GDIEtP00uv9;fl_DF(pE|88G>nxb5V4U^fs(Ci<3piv$#Pk zkZ(?vd4(%BUvzeA`ZZ4(vX+~0CLKCJnYwcOu_^$`p%>an=e2F`n%gRav)3iNjyAvw z;k_3*4R$(0SFY;3_1Q=#`NXl6s2RLEwNOWNZ8$>V7X@b%u+%Km z=rAkOc9QcnTHki0UCM?-xgxbEaPY<|>Ex7we^~8MDwkBv>WYAwBjqE_ny_ShWjR}8 zRt<(3f{Z|bQG#jf-S+WIh`|KT6U}B~$6OwjDP$3?Dvl)__*YP-D_RrMZo)HpaaMFe zo!7Z?xIv%PhxX9W49x-Kg!UYJ3!^8K^BDFCYc`ETS^-3JuV=!815)@OjTcxKqG;%~ zAgx}S8VU!fiUARqasyyM^-uEILOK81aOG8NQi>Dphuq^zO2*5Wp&k4Omd8AdDQ(4` z%VRc^s>eWqhm`Q3Cu;Vg_|5PH^@+XaE)@iL*|uHC6iMuTg!^*MjhhtBo-~pd_sUo= zv>D2vhaR4S#1!3Uw(?NLa1ab5dW52?rYq-^y0Fe#(>t_>>DzyC0AGcT)S}N#=&2Wx3 zbeu^?Wp-<@wMi>jk}B5QM& z25k9yOKKy%xR;}I4X&&5o^TBh?9wc4?#GjrI^}Mqp}n)FJWf*e&=1ocLt?8Vw+s!z z?Bqw4x>0UVC3HRwlB9_X&xEqSK-itqkmH5(>27>ccBxyW*L=_+BS%SZ)`sgBDnfX2S4`G9X`OBT{Ny`dK? z0rcp@RvpO|)z%%gt^@31IiYlw;L4zsu6T8U+@NkB5x8cM}A z=pOJo5oGm_)|G_Q_s}F({_?UFf9S`<2cis;iLvARa!$V=hgj>!Srk5uQN;P0us+cu zg)>9iu~w_G9Bv#DHlGpAIU-zM+{YqheYjC-;N_grjYx}IPbHpEGD+GGY*O|T&$2)> z!UHc<34N}4!eNS?AGkTuOunI}gBr_R*w=g9QmHtEeM2{Kd|}=S|8|0UWLn9!V%bW_ zO|+O`+WFz>u7Nx2eCiyY#0(Xhz2ZEhc!%6wx@}$P)Q;P*Hzg!ce)ZfPS{mq z9s*>;Y(!{!w20;TPQzf0P(i2XThw%DXUABtpL`59i@*~cd@hoSO^u(kztbsdv+*dP zoAg+%e^Y(Mp*+^6lrmS>R&&)PF)&u`u|c2>t)blW;k>(`O0ovspa$zP`O7=_M0%)! z?U`^bkmD`kC(o-PAKa8*-|T1xXpVrr(H=n>SSKx*IXRtNX!W2mrX=YAr_u%stL9}n z=MZ&1rIT1w-`-#$@vyU6Uv=9Bs#!F7x~eP6x+i8j*@eDS|9XuTFWy#P)9}jg2Gbvm z(hUz|{;g(MToPvHY=zTA{H7C6vIx+Eh$l`dIY_)DEDC}@*r$m%xh$ zdN6HhF5@ z8txaw_GDfTGHTku8?A258Q(+^#?2ewu93Suu8hK5rcTvpdPENCk*q^EN79w|PH&lZ z7Dj2nbEBA*Ztc~rqkP)`CEP6XWsNSWPfEw#2vT#fT&fa*Ikido#A<5eO=pOu+EWN2 zD?j%HaP}umvk}bhLC^KJzkjCBBQt5as)8D4PabN(@{wwGi)>?MQC`t5S(;ifi0EuJ zvnsm4Rx3$tDV?o{RA|En_|-M9)>{ZG zYb)?}DC04gCewxalZ0dzPOT|+2qY|ylBC~i&VEvR_1s(o7mup3id7D)wEXSrgHbK% z=Mbzps%-7~uIg@g6&M@{!NQBJ&eRFj?%~+g3J< z*t-QmHeVKa3{q#*kzGiR0Si|}l=3fTG7eZ^|8~tuqwsCg(+Ma#5T`M4PmwwCV&Q0@ zykuP!T@lBYv@Tg=q2(LZ_o6Yd3F+B>jsF8h+xAYy(|q?z!^|MJqlGY2BVB8 zmNHalELtEgj$Wm9rpNC2dj?p|C?8>g`MqE`G+mo&v2*wE$e7j5M;>#PW|hS3reg2@ z;4Q^nQAN9k!+wz(yml8<)(0~)6`fR#KMmKzIrefh)m%m)gj7G+BdAu;(;sFbG}zL= z?#mDm0j~EFCmHTct31y&^7NhHuRkl>6|U;E8z1ZE-+sCBE3wB#9flqL^$5^1WPgk} zx`Es+Hu;@YJxEXmb@>U#PU_L{;XLVVh=wd)NS_)Zu$%FlWGu3#^_ISbotaO?zbc`W zLu{;?#ggP;x$^OS#W0h#r<5)8l3T?dWvnEa*-v>6cc#6tYs7sS_$HxAIPt*%O;v^z0 zi5xZm0JGKiZEV@ZVGSHckI3DVEFYZcSSZ&y9s=@#p_nmZ=DqW6rsBvCj8$oI-&hY0ioZ)j@@bCVhH^WQd5%^}^e&#{o*iR1BEJeQO__bx zuGq@k7$V(je(&C%_v-|1%6CTr>kI;ZpUP;0nEty$mO$+AiIOclrtEttljZA23~AG&>yj6{`jNQEOtU^6+NC zxcxdGh#p7RB?Lf3IN|YXAX&VaNu#GVbjz`jhhtT@P5eWW?`Vgh|C}RL)dWgZ!wB{K zJ^-ty{n@9{WU76@@oW@laoWS|3MqsR@7>H@ig^!pJ!=hdK^o z^=Sv!V9|bg7gK2-A5dSosg$m8*K>-?F^xL-@$BFbG)cvtqc5~))D5YDd*&!ViSydp znZ})a@Y%^{`^Jt$R|6k;!iW5Nst&Bp!U%#$8>kkMu!27>z!Sx=0r3nr)X5O3R0j$v zel++98oJo+!^(PuP7xd3XBJF%hi9tbo1x$;J@?Ga6QZC@Pj1arR_;={Loe0a8?zeh zNy0Tjf-y82^F8fOjwWDKxZa7Mfgfw-J=n7jV(7xhAhqf*IHcW#_A*$*%zGHDP~P44 z&lu*rzs7l^j92uPdz)&c&WU8Um27XZ33OJPF+TK2l4wipo9TS!|E}0%YR|}7)Ed+__ISl^faUn}7Lz|s$C?>9oz}?Z zA6!dv*bY4I+-D(c>-Lw_Ie23pNRHW!vY$tnk~;{u1T#xW#RDY$+Ss9&bG=7?8PUnV z$}s1hscV2L^HE>m1Xs|%V8>CFTFbmmA%G8iQOl9z0k}N??wtEK5o8=8Ts`(c7(X?u z)10f>m6&;;cvzPB zn5<69vvfgzhv)a*4&HC1)3hjaw&w0V(IBe81Cq`E^&m$GOaY$yNba$hZWT z{J_g;Wnf(EeJb-8a!5IS4LHFks(+THQhXsg2~uhFMA^$QM>?YQm2G2wec8_~Qha}Q znvjij3vZK0I*&fnt*n)<2E7I55;~ki zuV-KsG`KlDG6H7qt)Tqb!FHswLZz&*+52YC)#NbhZGr15#UKg=0tch7ehVA!BX1|0 z4aHo}+Cjqpb=8IAGl#YhA(pE#l6|l9?NX%6QyN>uAK^~3DM~efPaCO;&r-l&8=D_9=)gFV zgXowWKQXs!vhR5AewTM9QpcJ;F-Fhtx)msnNV4vY3m1)BQ)h40A%P6p=a_O1I9VPj0)WLDur_J9}I21ErBvtr|>@aVgO-&tG-2;ETp>ZQuu*HIXJ zjVp3sUy)3b@D_*MM?Dc=lC>u9ai@oDomIUqG=0W7)hmC|9PUY@Ov9(qeVe$O(r;9{ z-$|0bc2*N!71tP{zfI#LZ8*WCU)KE6qfOrQ1xkrn+QxoOlNl#;LEyL+ysP*dFtHu( zg4}f9`ehY8Zrlx}F4{KjKM#K?puh>~&Cl!=m0*}h6=AfeM)DPk-k(nX+BURx(2*ak z?E=FZlxFR7@C@QbHwE3Y9BKMYB+#;{hWw%O@adg|3-*T_%l`*!c+`57iXG1f@204x zKIru*NNjQ<{dGP!gTy{0^6-N{b~*mS;uz|4pI1@CG2b$0)gE zoVOV|D5=$xgtfU(s@snw)kP0(XyI82;_++F{DeSVukdSYLn3mKYj)qclx;S@daLrj z|CRaHdR4))>2hamVBl>&`7**y!DROS^^jdc9S_dxNgD(T0{7CCy}wnmWfz&^Blq!| z$+gV7S6!kksBz`?>iw4b`6iCOOH(fCm>R(BAai+fR7`Q?mR=FmLY(PuemHLP+?0LU z)oB#AF|?@FY~D=A*48%6J6jNaac8*Qm_s@`(=TmUiGnTubx&QJnet)HbL6cQ*rJn? zVX?B{RmYg3g=D<^gw=8qE&cXJ6J7Pp#b6{EzM~@IF?m(|HsmpUT;N_{N%XNc_2%71 z&1S(I5qd2>&WOb9%^R5Qy}CBwP1D6pXl6QGi$-`58%#x2F~^CS))9%a!m=N<3hm_! zY1!r!bNb~SK$ygCCF+6gFr8Q8!F@I%TF<*BRkyA;5^vh$j~ZQU$fFC^h-Kud7MA$u zg}$brzWNU2k`PP6b}87!1H)TrGyfv>*_!Z~rzGzXM|q(2jkzS=qJ!GuVk_@rK4Ha@ z{w=CYyT)y>F3Ue}&JlCMI5NASiav?yMFi3K<)B*OHPXO>2Gd`EPwuZyD>yILCN90fB^JQZG$Q4ZWl&;adur_%KYZR#)8n2pW`LBWy93 zM&y^}_?P`fw6en;VbBU^<4tnqKEw^K=GLL=uiH2BN9&+gbg!_d11%>V5bzJAMoIM( zC7w*kxj13At_2>X{1AeTtsTt$f}k0@zzqx6mSYi57Y9j}oK!`b6d|v84@<6QNl&UL zIdQ0dL&kvo>q7@}bo?PfE=LXGh*xi4FM_o?i@1^;YH(%d4iuV+Bm6T1&L0$>-N%e^7tiU^V}6?BBeMFTaG!>I^-p0EK7Xw8MC9 zx-NQ^nH5%V6>rNo5csXZz&bZyp`a<0<}pU*CXFfrVQ7bBM%a3bY?$O)e&>~wKb_>|KNcKA{7GSh6bq8yiZp$17OVUi!x7)w`oQ4a7% z5KGL4t_b0PY&1%*l)|4PYLC->xPa?k>5+TYkfQ6Y$gSL9wH8YYi}HjljNXA{@uls& zC`;t%X$LVHnHv(g4p$A*w@RmX%BT9zaY2+cTKnu>-?Zy zPcOd>NpjuE`dI3u4aL@3x;RpvpGdzM5F-b9&F>%^g^z)~r=8!Ku=kEE6R})`mgY^V zt;JE7FBYxtrE;vp&0}(Y?tjR=!+l{N52a5oBTLkTb!i^9M_27A5TR)~w@}tg;^eKF zm}1R{^MrBzOsBxdx9r=j?V#4;6oG6Aa2tj6O7Sva-(lObTv<>I7HRId(_2r*+hI*N zYS4By{esc?lXadapv{Z)fiVm7gf!HP_t3OCgGm%JxI#`n(iy*EH8b|Bl4xY=dTrYL zUHMvqJwTJVYT9`hykr!<9-HZdMk&&-d&CxX7p1_zvxCxPZRNhvqFkf6`8Rl2ZbcW0 zu>)k{P<)pwY-_09hF!y!((a^%Mi2k**{Df&f;RJHG1peu*3?5y94Zgu;C}V{Ul$hI zBV&Tral}c(JpHV8a?Qg!>B16vE>zOWrwruhj#>mC7YJAw}d3H8~f4zFy z76Sxbq6Tp#26JjBUC-%sCm1~f9C-unIPbq`hPAR9!3lB9EE9`fg=?jo0=Aaa(t7iP z9V`kX7{Ew3jM&EGkmI1-QTPnETwpPn7l2C zqHCxkn2Nt2JOW?ix1ot9&G{A9aMP!eA}|g2ro!-gf!s=_1X)X|kq^UC^661|By2uH z>Pw@Ws?*H)n{{x45Q`oz!pUJhvzeJ*`gXZ<-ip_@XC9Qzrx2+F%bF?dTxg!w}j z5DtI(MA11yh}Hwy`()??HWBJJ_D%?PI)3t+2gwj!>IT@5A+rA@wDOfuV=o_?*<@zK zTIl(>&UVQlFFkJ%q(fB4A3IpO85!}*IiIMDl{OII8Qh6 zpU~OYm|Zs+s8&mOI6@}LK3X&YiX;xLhpy4>Th3l3a3j0)twpkm6gyRGyD8FKsC&}MEcYv) zkr4$VT57C48w}?n55B<US~2qnXtAb&F$O%Z%?Yz*{U6Cen^TS z%2!z9ZSEK{iy~~PyBtiG@TnYRaE(QOLL1E|e`n&Z8*9YAj8HL7Yfp_2(@Ed*{k$8( z4BZvg*1*DU`srRQ&Y!4w6b@UvgdD?Dy>5?USp!40+O^5^DX{q>=T@sCE9wP8V#K@D zX~e>Om`he%)lQ6big%vB|1)qoYbmIIzvhrMMkegij~fQ!IQoQ2486Nm#oLW#)BO;lJzW5?poaYJOyKXpga z-ty#DL{iyQ$_6TZ^75+l`qav~2iQ;(fIo1aJ?I`>A9#jwB{yin>Jgn9m zXwE5iQ-G;xjfsJ0S62Z|T|_vbIDC{G3VBprH7%eyin)jN1kw@wsPVj2zOGxSUxU&z z!IcR;|LA#V9t~(5@+!>4Drn zms0$+#5IrKhf`J-w4?`mE3yMBlgtF_KEAfM2!*jDIB3=y#}#)Wu{-WxQF(04z>)5{ z=+({-gTw{`-IOY3gTk`s_-uJE+$wn~YTT>57{}!!(o+Q@EdtWso!IZ|04*7u?f}0& zn0yRkA%#)x+v$&mJz~c$zmeF%%-eaxcB-Z=qqD~ZiKf?~s!`lqaRWP7e{E?3uO5YP z9xFV&^o&9$g4K73KAL#Z3q{Xwm@P0Xbm#dRevuev0)tKMReZ=%ta_#Y`>uh)aQmg77hrhV31%d|gcVxQLq0K>j-N(3F+AD2U-rEkE8}d>z#~#1g zp3q3XS1%1&AV@&qQTsX8bFm&v29=}bDBh&+R{^zYG)ryCG1RUuyd#Ln7prMVJwNBw z6)6b1LjTP@;@iPam<2*~qJfpW$OOSp^)Z;gxcLUQ&*cIWlHjnX$=HH%`*7J~D% z&VoCdH88U@4q4k(L;o)iIt7#ME0Nq(_y-#ty@r^J!7Rk0)O<8HNQG;cceM%TjuE^J zVr|66+E!)f0DXRu9d@dqM#usq_@W2qGDd1Snip8Mh)!gJ6XYr!gTL=Wb3*FU<*pf@ zq#01pzN;o_HDJf7fyp^Qt0mY*oYqcp9n-p9IL{$=S?vM^K~Rs7)P2rNo_2(C`}md4 z15b=A55Oz<_5I#-YSoOHF_qPYg97nW>aY|#`*K|G(6EsbOQ-Pr#zlsLj4T$jGVtbk zPiI^N_97XXCZ=s+8%!4=ok>}7cYe0PoxU6{ri6jQpDw}VhJ-`#f&7}2zf^W#* z(Gtb}_~4y8Q^v@@fGG>1p%`3SO723a@$1h9Hr8d~$t1GVK`SOh`e%TY(NB@Jwbj;5KnJ(& zj&_gW|MW~eUSOOJ_lPQh|ab&E=%2cJrr z(XIMw#c7$&(&M$PyLP&xW5#Oue6luX=4SI|0R3i}1errw*(Tptr9T7dnU^1b4yQJ7 z>AWV@6@Nt={O&hkga1yE55@SIDnUb>M_N^=FEi z9^U7$M)SjNN+-=`*lJ(Le*UTLMnZF(A_OaY~ErnV2VV5Le zujxuV{;ySq0_UiQviwU>z@iZCHC@t=KJf+ud+(elf7sK$5^Zt1dida|RHfql^)qoy z?}@e)yGK_<+j}*G;3x!CfzfBsb@4v7OLPZI)mLD9^bByaBHQwaYDM6>eJN!bP|*Z~ zb{&+Mz{|>CBCPRGggI_}bWq%XGbY}tQNIbT#yUc;MyM;@#;CSV9KDQ+%dAViSWAtJW3DCr%tTe3!rgP>rx+ zk$(Q*TB@cEVb%$tl|QyeFR0O2bbis+tG-un-dRqy@`JR=o+tDS2({>3Q%njIP_q64 zUf{JQ3%`%wob`Gxa6%E!L$d*P3(gSGAD|+Gpg|Cy!QupQ?70}=o=?}#Nv{rX6>+j- zRg>a~i)~M5CFLE;Y*E|5weE?MCQ-i6aKg}-{BV7mEK11!1O8UGp!n5TvhryjHam_M z;W_?LE}fE&o}99n_Ib-Ww8bZLQ=NmK9QY?qvT@E|OJ)Wr2GTq3Z5axV4_z?%Nv}@I z*wQ$@lp7sx%w2i5kCk7rJ*GJdl3)s*Khr`7oQnGm*nLn^SZE|lFh8QoGsYN!p$1d@G~Cq7Ngox5Dl8qUdwZ?s&v$Y!9T=rY z)ytn#&BP&-pTHGIVNtW#GmG$L=+_TF3G4fYwhNabUSsV#doO+CC)-L)awOxELMN+# z!Rm=FaYgeJLvW>7`CD>w`e9P9wVT!Itu_?ndjt_4gZ{Aa4Oi7+M$Qgw$_35j&Bh%3 z3zOipX|g^-6s{T0kjCf$)&3U+M=*&GSwc^zdT_q0JKk%zFQAe#BG7#AU_^{%{=^%Q zxgx9?4^Ir#dSkrwOY31}G}X-P3tS+kBKjq!52Bz%3A$_oq02KM;WCzG!s*>?TWM{g z9u#}d7OO*l6I^2%tF3c7Ty00YpJ6jxU%j8urJjC_mNpOcL+JihR)Ta3=^f-F>t5}~ z5ILxS$+$=>jNViJI1y!C)8Hg;?ac+Qjw|vw{}4V~<&o z(LGhEYSTUIaQ)D1DtedQatq*ZdZw|G3%FDY8}v%f$t(T>4H%0e?Xb3S4e(*RaMv<&XUgd-N7N;!GNvZO z{7K#OnD+Bdw!_;c7Ap*nR4drtAgUEKSq?lQ-zW>NnTOv6L|t-ijO7|yibF{Tce>El zQ!KEL(K#M^ALHFVdrypt{>kN}W67SSw6D*G%#t@sRw0%})qotZte~|BE#PLp@@omxj{+0^Bmeg~#macAPx6{lEd<0$0Q_G%8(fQS z?gupUl+La*?alr&FzEAjZEHA0VEs%^$g3~q)xpUfkz-)f?xnpW4EMDkPRXRPC@z)j z-7Dzs(`{Zyw!jxE`Fu11n(NT$F%i8zgvF3JkR-3jA`Idg!~_|n9e)eib;5^l&Yx1D zffT2nm9fC3kS^>;u?Si$a61^c4Zb?Nf`=SBNL5%~q-HkHH-t5E?-KX+LuX++HP?R| z)g>lLq*gWahW?~J?j*h-rnCLgw14;h_1AAyh9a}<*c3Mw_6H#rD%#za{@JjEs(aRs zZOIhwy!ve(l2X$xRejTjLVy-c4$CmMT>^hnWlxZ2^=f5Iy%6&=J4fjGjgip^`LCJ# z?yy1lB3BmTu4xxje4Nm^7|2sL%APHE()7+dD#}QUD+Xm1i7PR3JZv72@x|Nd{lK9@ za$mOT7XG5Fy}>G~&Lz)8k%BZ85haB;_YqB}}_$Ny0=I)Nwz?%@j_1=Sw-1n0`7PVQs#`YT&aQ zqH^EW<`_j+-1^rLo>8fd!|lh(6AX&1jmRk5^kqjHMoqHR9XSkW35jqrFvin_s= zpRQqcye|qkMMireW}Q!R_Y8&>fGT^B;x=c@Dqb(XdQIwe30{++POMl(TfG`F)R-YQuppl zFK=v|k{B_LW$FknZOxcMIvnih0_l91z?&Wc}&xE59})c65=+0jJdDY z9Hzn&BjHbQMKbL->VFUzF#*|(ioXG9hLUq8l}3?fg7h0Hzeggz@SXx03dw+SrI$;g z1)0mtBDIde2{lJW2j0=`uzvb7v%N2$6|eIqFKR7P$DE2u&tm7;Gx4C^Ai0NL?i!RB zskW%~U8wm`&zO~6rql9e4U*P2^93Zit3#4bfZoR}s13x6&iNG8*x~8+Kk)sm7ZS-07ex zN7^8?N}_XIrcTy9o~vkVEZ4yReS^685*wo)5+SL>kKHiLl&AQ)KSbq3P;1an5J42h z$mAut^jo0F0gHd5i&3DIvDe*f0%bbKo>^SNh?;||z=eEb_KhA`9Fq~NkdxCu7teQ09+Wpf8-S*iJSG)1v^IuksLqd8nDW>^VwY{6ul!oHh> zqCZq6HF%<kdqeaui)-dqm*b`Guw(0f)>EfwBQda#~qCSIg*Zm4!6B?j6xoC;li;Rd~ZTy z_Jc)^LNmbqc&b_@m(<{Q*UU}zn9YV0VTKTo9L5)%{|J&tf_HyQDJi`!ygUe+DJCo2 z$)84B$!q`T#bUu#c0C)LjrAqk7%l{+zQY#xIFYmvYRAlR2dUUvt^y17F4bV@yJmAK zOP$}ctCUt~A~$H|ZpT$OgX)$|;gXpmb4sn^#dy{O;x#_-vyDn%&=0O^k};-L@;ff- z@8Tk{EGKP&KMbR%;0$Q6ezKfyt19y!5mW5I^1@D~%!H)bM&AF~CRI7*#hp)(ghFY^5 z;DmXxMncW2_UWwWci8MK_wIPV=*Zp)1K=3Om%?MHYmD)C*EP=_QZ^|!vRRd>Kx833 zpcGR|=&R;8I8%Igv6Z@s4L-qpi~CgMeKO&#wL>PXUV+Ibn+{iee@v_9MGTmb z>-5OXMbi)PZv*ow@Ign4O!LC{#>6c#YP6^^`v?N1&e;r*TGBq?p~sTqm&w?ZsfxU3 zxgBU8e$vS1NszM3ww}ad*Ct95-`z(JRJ5YMizk!Yae)MH1cw`lN=`%p8&JH?-Rf)R zZx|j%-Zhx|a*r-XW!rzv_@+HcrMVI5FbK}Ana;iEK?hRY5$F)FtHdLsg5}HL2ao8! zbKeTbl2$U6w7vhp_|0hpt{x@-a=N~R#LWl71}inqyIAQAtQ?ROl>*T2)qVH>6fnBq z|HY%Dii*y~8;Z{!Aln}R{5ZSJ7-LT+{% zRxK(uUu!m#YuZD|#tiZskD76s2lMa%mFMvqvDRS=HC*~k#_~>&UoYyY@;;Soq-CL@ zBYcn5;ngu47N7U-&-#@@rAeYTN&IXaqUal`iN_QZ_bswZ^GPPi3t5-@6`spN?!}Mo zPOk6@l1V$mJ2Z|e(}T4Id?T~F6RxAHWKt;0Wzf~2S+mVJ1SNQm{!-XGMY|W(nxN8t z^APNNLY@4rKkV>_bV-RojhW#5I*S@EWdj>aF$(#tWec)0>L|%)c2hFumgzO33@``a zmA!A^LPZM*&biRLU~WS*ru{oeYhgI?AjN%^Gi}`HYEIS2*}?Sm+HdleM=p{3HJc_Z z^%qA>%~>yX&p$!`u!Ix(dMCZ9T@4BF1|`Q7ez33ona-RJ?U@qC4fq(8aB8G;7Bn=MS6vo@HiN6Qk8D39wrN}iw^ zVV<2o1#PD_D*e0+r}eSMD@yh6*)oe;82-DE4==bU5j!yg##m|H{;|jRnGe(A7SKnv zs%5uho!htXKQF17DZ&Q&+B}THU`5=@|H}dI=AK|(QQ^aFUr1rtSsgm6#@pn+x?^;V zHSd%dHOIu7r#|;R`-2HAkk@>mQXav{<-rhi^^+~QLjI@{eLCDi%(S)r@w)ml`Y-?$ z^#FW~Er`&I>&rz?b=;iY6GnAhm|P&>@_kwh-;6YNZQ1wSW-TE}9s-Z3}#MCDORwl-z^c#F zawGK=sevG~8pGjH?p3PQA80qUs=Aa*e9*0Q79E0%FnLRPqG8`{+<=pwgY*Xq?>Bnx!0{jYshY$u=8SLMN z#Jw`~664ib!qMhkIRtiz=LOh_e#18|IM74WDv*;GNDlLyWiL{)~^tZ>YK`S|x zvw~|MAFCB`$c#i%5zOtRh$lh(@{__7K0+%Tk61V}e^#sSttq8#a%D<@>tV=rt{J_A z-Z?F6T@*Qom}isku`bl4?sa|~Lc{L^b^>z1I(lh(0iv-_@s8u@kLl*uR`02gfpcnK zRJ~NSSzbatVlR&>veY>aMT{Y95cWH$;uj4poJdt95-z;5-@h8>(b87!aD6+$5*>NR z`!JpDfnQf^LyFpio)$N3_Z-IgT`jE|_O@HV8ui#8dP-eU@AB(zm?n{%rfRQ&H)CjW zk`)}dN6=jiQ}hQm$>8KMZ5_1Yj(mHcY32)e#-GOanh%H12pYSZ-KhbKmlVwr;~NYQ znsC%1I!mT_nHWQn3!uleN>UL#p%l2yb0AJ#?Q_m^qt3d{kBAVHs&WU??{A;ae zXhu8K7{Ptw3i_smp@Sl`H2Abk^I$f@^dIrp`+<%^9DUw!$dmQD5qi8d331G99VctGlb4y^7SR1CZvY5dk(_KBKWiRY|FcU zpB4L1LJo>h{U_dSn#z*a~W1l zvae|BX28?n8wN@1}uFJMrRJq>CH?RXWPkVr$Ep0Nl3y#9<6jl@1l28M+WSR*Ox5+P_4r? z%6_yPu}9qOdq!fZ4yU8XSm#FyrLcAGcX^EMpxp(2-oadckU+jaE}?tHbc?@;ifhychFd1$w2-&u18jGNxE+dkXOt zq)*p4?_=v!`jXLOy@(xsF~FB9j;Yr&#tVDw8{KmgV~K)iMzpFtQ5k$CF2vR9<07dKKs9{~EVW;!U7#Lf-7c=d?a~R`$}Q!`)+A zD87A>T24CiBHtv2t3gG|V29PIG4ntNOUkrj%`qDVUkj!Qj-~Wy?ao}L7X*$6uGIF8 zG6YvmYFKoP`m0(jr7H}XLYnfan0su4LN%x#e*|s(RCs2bK)Ci_T-S)}$zI2cN~=r* z@=F(*@cBKa;?R1IxZH$m+hc4TtddmOriI1OGLe+>_fh#FHrl*YF>ffihYoY<9_J@( zhb%@*$fGP*gJ1Sv{XVV+$itxn1=5vaIi$sb`-CEi&Ro1k1pm^P#W{WxQn?iItRDVi zF*s8RQM?!N&e%O!WF{2pJ>x9PW&K)Knz+Thr3WlGjV7jvr0;J%YP&9ChCY!=dmEo$ z0{a{(B}+OhwzxSChC3@0kZb4mcs>$#`9r_-e((pKS+0@o@T{w1r>b0A~Z8! zO7+|L#JI%Uj)(Q$C(ab_dvX330AWC$zq>}g>!U3iK7TCTM3=C-eiP8uQa&ftc%%Dl zdJwwl9r>ud34UQ@I^Tjq9M{^`F+Yo*Hyr1T?7dswD7}!9q-kP?xJCGO68R~dh??!!-s&iJbL0Be%6?-j36n{5hu8-SNwc7Lnp#Ok zTx}g$4T3wgkZy%vZW>~TD$E&R&t53nnQPD_ zlsV9MN#Vw@iT2)F9g-i5{lq{%pBHc&wym1@-AOM%#Lmm!XQ^QwShI8VZ0B35r`Qa6 zrk`R1s3|LI;y)9%7fxvcNL}&^)drXT1Nd?AB(H>C?2gz3Y89@-COn0oVITPn(wwxy zYte182<{2xtRmoFA@})cxC=W#W|F8?Q`}E>8a061!ew%Y zHANhI*u8`jJOzSu%f(7L#?lu$(gXCppaU1D``UdVn!9y&rl0T_yc;B%gI$;hUPK+l z`^1Y7;>nJLwQ*gYI8767UlsBMuU4J4!%PoW!|j$b5qqGyUAt-qK`yM0aO=T~%F&eJ zJ(w@riVBC`#}1M2GtS9xg=jL}B60H3l?hNYz5)G|-D2t9l3`i9^ahXT+UKGmj29LN zFWFIEi%+g*_m{9%B%Hh>XUSpVoA473)7^q2Ab2a(h5@)av7w8F6e31x$T>~o%yib* z@(ilNoFtQG)>lXfSs@Hjn!-3z8^6)`(4NwE`?>g#>Hs;Gr7>Vb&e9opIG-H&K-ldX z2mLkw@D)69>{ZfB^G$CWkSi=jan@^bG@h5?Ftf08X+(afmUI_+?Ao6elU@!^tD-wK zk#zC^ykE0(K!l$IPO|verxDOT$2Je`(un>Obu^))yk7rGds$c^j264`_ToRhiRj8g ztI2-5&~3QSX3&GY3d_(ac_SUj(%=?;P2)%bZp({E6ZyLIRbHX&#YVwb=Z-;mgx6Ce z|G`>Nck)Im1UpD4I(!|!1Yi0F|Hh^02L9>s6L|`gX}Rioa^OTprNh|ne@H`_0lIHG z8II6n^t-G+-=l8LJhsrMru`-G!`+k&d?+Rfx<;5rt;CJH6yl2Th6#H4p`$fj7Va_l zuKQ)YM;ASF|4vihOJ7ZIUwPp;Y-p>ip{!R5MF(lD=)m8ypN#MXH4#-0e=FQm{|C6z zUb^w-y+vKr#M~yq2_l5!WFS3<+k-VvP#(}sQk9enK6(vAU<=!Jah(FcutIHP?5Mm& zgJ>lkkdj1pOW!ru!2(>_1pG{ru&eN${zJauZ|E0}A?s&-b>2%Igwf=)nu5NBPRF0D zHo( z;kVm<$B(6<(?j`VK2B$$Y?9oia@FnJn&c_ z*QG&R!v`z=Qijx9JjQ>r&1@I7<8}Eh_JO_S{aE$TyLJ3(Zw^1}+eVlyt}Kg*adK+q zltc@O8D672Tt-H!sWe}l3|#duN1#Hut|@a^DxJX{U=MAidhtwrgSx?AxRU1+R}kSI z?k>mc;tg-nc1NRc2w5-f@Cb*oXko-6B0AWK*U%rxF_5N}_U%&ee$jQj)GA(hXi;p6 zvT&2@_vqR?oERM@pdmBwj+;MiM9?$3O0$}heL?Ae_4?wmk8EF25xjx@q#m>Z?JTB9 zuf%OqoOo6kAehw?Sj#9o$1>OtHd7d1&FRm8K+w=ZQ&O?bjCzF?a&u-wv{EkAg?{{@ z%5uy7E5&`pC-@C^^H@L}>ECdXE@YQX10hY5LD!?kxCt($`49yZT7xw#vEah_k|_7T zPy%b=vYlR*f5Xr&x}eq(z0py+60bt_t$5CIudU;=6LxkAF-ImY!YzbWuKTo6BYUvX z7W;ZQ`DC8x+3gVi|Z=;6MTvn`v^%|bpNDGjEbh0`RCnM8l@4dMu4DNp02 zERhGYH*_{VPwz1c)=KDDP5i%n3P%he-yBXGArJF|Y#V=~?rao~X5UFG@`$*Qqx2P9 zL)=I`VXv(ZYJtzd?2z%k-QYLU;bE+sG=%@cYgm6633p&g8a3Ln9WD<32Z7`%JS$m z+Kexzm8>_PR?XxSK^EEw)+6)-;CY~4I2pH8Xh{m`Cwab_(+^++b)m#=4rzmYAz!;o zNR<9^YYOE!25vxiRq+<0W6(8{;w5ks+GbXHbwnxBIn7c@bqOxXtUfg6&EZu@dCzB> zNq$XbhvKoqsH}sA6>?9v{kV(9;JX6)`}jbr-x$qsJTLq8%#Jw|Sf%$*bdjt?MVjZ~ z3+J^Nwd3i-@iUg+r5CKm@=M}W;))$I^=ooU$u=1m{793HMJ zlU+6Yf6?xpxs0p>AE+I)09iAQu-5Ymt+aF{AJIp(kM(uqy!R0i4?!agK|(=61hfT2 zpW#nd#Ila=c(8mob^WO5rlv(&sxdB;^zF547PlLz00;}7xS<7p${L~|A zV6?WgvfQPvww-)RNRr%SXR%mXB!bdjo-M5q{DgEqoIRxf&@rq5OXmeDhU%h!K-NVp z2H&o;Nh9+(0CI)9NYh*wk}9peVIMmzXk<#ZK!DR&*i8FGdeUr`2kGJoT-PlWYvCN6 zv8#t?!f>gR@;ab5Isv`0TgWPIo`KFxenj}UWKP0$#!<3kXrI{hu@ej0{+L1v} z1zu{Bnu$O5Xr?)4dD&r#MQwb=v$s!l+-vb7-Zwf{lSgKASF|IPi46agX5i=aC@;47 zMopL}op5<;cMR=BZ?KDA!b4y%E@$QJnIy{1rN4x_!VxuV+@a5?LTj^kteJWm8|WC` ziXY`^tdp9&7STl3nkT7eL#x^UxoSpqAo>0maA?wP$6rbrSxRq3<j#>J&Z?d@d(lyBO4C6YMvf13?{AB zq*PZ7Bp(z0V=A_|wjt+{ojzQ2(-e}fN_{wu>*KQ|IkG#RuWheM5Q{86;gwD%%_-ZR zcr6c$K1rR-wXOGPFXW`iGvvMe4pGoK{1rQDi4vr8No`$M@rYct;4998`@#~sn{K5q zc$)B*&1KDTPo$pejiS1_gLWE-WkY(cUWaZ z3wn~L%11SkD3JDXT*^PIu5dDW1aX3Ql8KD>nvM5B2km(wkp3e3pn))em(qnKlP{s2 zX$i|Eh!NU}=F(K!i=Acd_#A$mM6o}aFT1O5!g5wU{IR*K+_kJ3sRKh{Gd~H=w)KVY zqB622I6xd7q3Mj~kUvn8W*jb3vt4QUcWDzo?4GJ0OHO#7H(nZ7;^kr${e-;$=# z)ATd_p|ag;p`2e~=Ts-;$7{37YT|caT+wxQyd|w;XsGQ?nlcYv3sR-Jo^t(4e1bH` z-`owzh!3(^c&XP>_73~$|I&%1WVF8$?EQ$;V~4m2g(7$4fi!rK>K3|Nco!|9b#o`d zAv(9>FV($`OJ6G;g^I#i=>--~3g4M-p{ZF(oj=GY*c7^?bhCd`kkM74nO75Hhx4G5 zu8*#6$aVQRSxe85d(2);Xa4G>zgF{QEq0t(QxBF*lgKub!ZtF@p3qV1=6B*@yb=Gz zY*=%ye?wXUGwB`DMP6j$%#D{bCH5DDvg>GY;6cqUx)dEVnxGbJM-NdD zZi9(%+iOWec&Ce)sCw~FY&zXe63A!bs`mX4>doG;TsE2cGc{+^zu79@iKp^Q)$D#} z7NZk+I6Q(_2mzf-b0w1OAXl*^?ThYPpF;)cnPo%lV6{ggFcVtiZ*nv6Bqe10kf-qv zaXNnl@9{fBl;)nr?Zi>;uTWHw4xjCFX?Syd!|Vb+TPzc6hrsz~#3{w#* zlIrrr&c#*@g>cJHQCILrt=wE#K1<*g#6^BZr;|lwCOt(8=u$GD zq_Zg`f{dqQ)v2FOo%lSJ>1wG{-<0)b4^&SO%DOTyCiC6Z#D9-?K|3{T5A?dh58`qu zg}KnJ!6TqCL^)ok!_iVSADmUkvlC|u&D;t#4@3hQk1uu6#+_oj-~s(Ap26?E#5k?# zZ_Bd7PgYM$zWDD`K zdm_HGG~g(*-KjO{8#p~;f|Uzt#KVcBvj;>bIi75O)rtvO=x3H8Q(i589K-s~gRDLceYTBP)+g9y@1 z5(i)pb*kI)Zmf)Z2)4u|?bG#>M2WFUaF$Yfm+Ya0TC2$CQL1kH1$LDBuqP~p$I|Ca z;08WKW&UE71*?a@AwIyDK?(jw`#~f=#)&Xf;LM1hLVX;DD>S1~6X<5~1Tw^MDAcaA zdQvz&J`0a2Tw|z18`B2v18^?(r4K^rG(-*lCq&u`+0@ z#r2#O=sEt3*2o^bj_^UWAV(}d+eF1w(dM$rDVpyT?y!&WKdQU#psLPoZ|vRJJ^Nd2 zpF>A%Ac|rE1;JoJL{YI9tXPp~>hu~oqvV2X2}kiG8N-XX zwmRS2^gH<~|NC+-XEEu*6{L!cmenHmEs2qqydsO;Z%Y8?_UjB=)XjZ^v&8afO5Si= z2D@&WbeQS(+V8ZPZPvhP6An)Q2znAw1V-UGE0oq?$!0>k$Y52t=9bOs#D6(bBWigR zv$}b8@VjLif!*kfxEvJZINJPp^r4`~UdJ7a&_Krxb*ty&4ZeQVzw)kF2lof3gt}gP z*5J;3k$0<-Eyo+2p^A57d4+v|X4v;-EzPFoe12oXsWY#l47#2Dl@-2XKk3dL zIoSqD;ZE{`W7P*Q&*GpB=3*#_shBT3nfKEKJ{z1_Hnw_R&)M?8ZL%HAu{hJ+l3E;1 zH*g}aqVm3S zyxVOYrob{D2DPl!Uiq9wa0Iu-`xt6^SN#R-gi#@hRzbX1yDc?|O2?ZKI|=0Hau=-a zbRYBko+B3qxI5*IFY+^UBqfyVZ8+#k8rn&r9L(GCXiBP+^0Gz*lg zhnZyVX@+^k!=dom6*p2bQ=-AoWzUPEn>=?5bDqb-?4ZvnJ3XKkbb*F&H|$Qs$XogD zYkJFtWH3ABTYjnzXbDI2HJ&G*Nw}RLi#VTMS>DTT`zV*nqV|n;<|TKy%Ajn!j6z@- zhQYY9nLGeaL(%#_R(y-4X#q!7Z|~DqqHs!}Kg{zPiM<+R(l*@TGZ9`JzuwiHVH8(o zqS@lN$1&D-k;jDj5lOGG;mq&)-;0?Cp*S5DG%|RwE1IiV(0KrQl*!Y4n9mKEGN6~~ z;_Hy(c2wmEXi6QOubk<2Np4O^hcF*Mr`LR#I@18Xvf5afJSjh)q$$dMS9mVp<|5Ku z>)(YNvbX)7n@A1S0ikvadB!uv&La9hK zd}|#xrq_5LN<*HQY}lh^xOwF`i9gLdom7U6{Y2H^Y+j}cZW0e77Y)Sc=t0e?K1WbC z%1>44JU8Q26i>ytApfFguhVh9%4K9V|Hwfym)GlB#LGHvE4L*?{czUu&kgee@0dxr zH>xQ8fC;_}Oh2enu~EbASRHEF`0-UJ3GR)z%;W$t=*v+K4**%e9zB;VK1!V z>`)`}Sg&@z$-SR<9bu2E>_5o%U&})|oW;8xPnIcdUeoVTPk%lQAe>FN>+&EU4S$yK>#$?KOY-g z#CaJ!@fF>o{*5*Vt)Tg!;uNUr_mI+@xv@a}?4+h<8m#arJf?e#>sBpURXrX2af@9a z4m*lFis2NTFgB^&BdbKpH2#Tix>t`ZRHu7j(9GzBN%FDZWreZ-kdyrh?(qij6d?uCcF?@^rWRd#@InyF9 zZOqYYHE9?R+s`TfuVzT04S>8*L^gZWN^}B-W z@fmu?_l9ou*q4s%qXSH{!vb;P2!EwC=k^(!VT&DDTH)~#y8J7kB>l@8$+ZqIjdeTC4nY=f<^DV(ELwAVyP7p-wS%{7q9 z;t@Cp4m=B`a3apZcxAoW)RS^>O}ay~)pri#*NT;Gxwi~qi>ul*q@-+-biP4p(v*kF z2tLUhvY3CE*F#8k52c!L6Hmi9N{zlJNmk$feN5RF@t)fn?1;VqDbOVNOIU9lVMpzs z9N#2AFjq}Ws1`d?o#<39Gd2`DoKv!` zrq)_XRip`4#%iq#`Vho@(JVn8J_G^BK z1$h&VQ3pJZDo`+wrbJHXFS(^6z)~K_*CmIn<;7e__VP<9Vc(Rj<$usV;wp!suB|?w zxovf%b3*ImvqKqt0>^N-HJZB8RV!O~ZRap*WpBG@x4jiSl;HloVV6b)9+J~DGrkXhS%*flF6X+Hgyg|LepLfwi z8cR8(mH10sSX$998|_gfcuv1zhR()oyoWt0n%0pYAH*HXd#$)D zZ&vNsnCtU0XG=2NkMHt09w7Pbpe*J;7#dhF%!zvL)DI7Zzq0c4uEj|Z?Y`FGX>V7C z3R5kfpKrz{xTTqZ<7Xnb;Wd7aZF|M*``k4>V&wXXhDMD_h8o#=IRjNVczO0N~aH>ef&s~A3pKm?p#>LNG5ONH(b!p zp>7~+*+;>^vJaAT!bub6>xDIAhC)xN5Jeb5Q=@NiA|oDfq_#L|exQcRN2$=vDl~l_ zr1qfMAsd-y3X2Pb}l_u+=}Usq+o3@C)#;2lhdB8mkD6BG-(;|*L#9q2Mmrp<~U z$Ed3vDTmpI-DHpqRh1YkG0Ok##ZT4Gc148sl57WLary=P?G(5$XebQvbJ^=$@pW_7 zUPBEAKZ0lQr|Iu3TDdojGBtRqc^Nmrai(vww|}+faDjrU5Js9^7{EVDS2)b0@f5DY zVlxkv5&eolk(BOFBs% z+e1PmyWN2nX0iS|XsbEeRjhOv56`HVW0qAY(Z5#R?#Jvlm}yeY8>x}ki%0vEsaAb_%HOsq;@pW|P{5-xg*VIPmt6Ug}17M{Y0iMtt zMysw&RS)$Qtb|*2UH#h&PF;L$p9Aa1PfB``Bgjej zaS*ql66%AKshFb0aT^RunF`| zbj)e*gP=Xy3@hOTb6?_V2Y2Hh{h!fB%!}?^Rb6VbBH#v?3w_Nx&AONA4ZTcPv(_Ai zF5m}os*fV!Giaq1-wZ`yGR%jykQ0~VF?@?N4l%{B9w_0Xgj{77Fvk`x;9OC zD*dV~T*tnt8epYc9eGL9oJ;sPkN6ku2EN-YOnV7FL7hz_(-M84*1%2)VLXXFOc0mh z`vdA}y$_i*Yrofz&>9bOHqI&QIu?*Ts!l8Nx3Eol6tK3UTM|6eoPW|8h=T)WiaU+2Am1 zqwFv3?c${J@`48b8~1`AXOB1CRHODb?M((g6c1_}(u{*43f-Nt_GDaR8dpxnM0pxp z%&m$XqM0xVADJoUh`FTbcf;yn=9}!W(Y!P*%{@~bw(45UgI+oX7C4~-bcc!197p1p zxEY4Qr#c6!iB)av#fQ{_N2#VNPNle>JW`)fMYZ20Lb*lzq_pI)pYj({QL0Hc`S<1j zwHF_A-pXZR=9cZi)>ayIG9{&;xNCp@M15Ty)cvQ>BHUwc7+<)jej(o6w5FIr z#$gcB6z{eg513|7!9genHFOph!x2~w35tJxu!CaYEIsa5d^wD1I`vo3P3OKRzDJ91 z@HVn|n#`4%9512j0uRb-F2r5*tY=pG&7QSzALmGx6;iv5@yN`3WFm#CW^D%n2D)1~g{gg&7A zG+p)oN(|vd?1ptAFT63gt!1W?Ib{_vFRf|ju+>kwZ>~9~nBNqpm=bzisXWkEdGCWd zyrUZM0Tjnwn1QP?l(wO}x`t=CKpjH?b|~}zM!C5Nf7l)G!~FnG`Cd}&)m}$rn>>-v zrJQ_>?EfCWu}ytVsygNpFjdvgX07)ME71I9d74=Bjk#$GLnk<7*1#ta1lx>-t>B$0 z4->Gfo}UKMihDt@0^4id-=UKVs_KYFVGCbSFJ-+v$}A1IFOw?&R8D}s{Jm=t2k|3L zv$xp6(&r=R|M!T3LZ*iK+VV1otN=xTOlyNlG?Pp{)6Y~k`QWMc4mqZZ6$a5sU2N$udoz^CG#eIPkIa{huSy zd~dqJD^pMF>;+FCn`$3l{rwWmf<%bNt~eRCLyC64H+9yTzm27F6IG={$W)0M&|>PdYmJ9!guA?!(sQdaRyXi7oP>%r3k&l*_*#$iaVd|bOx^Bd zB>q(ypf~MQEX<@Xyh_~V2btjQ?mXrdCKc@|_7cwO_niLkMvQ6zfAYXbs{3PTDE8FZ zUx?q)WJ=Y(=)m9MAnvbd|DI2XEnn~s&Sh8O7Iq0cL-tCVeC+H0S4A*grCOAiQq&Rt zg6W$5Q9ea4)ZrWvU%5sX>VHQZpcD#b2iD=Y^d$wz zcxQ+!FYPJU$K#%y@jA}g?2QsCDRNjc{@-{1{}yEw1wQ8(<-Ih{Y1fl?66H2m(kYw$ znS|Q0TvATR$G*n@O#H?!=PGr6kDYU!6;%0nY7d0Va4G)}I-man?nOh6c%1Fdu@OK( z5CFiBbs+MGR15mifJh+Ho=hrJhca${X19VZrEN!CwX65IE$8soC;BOSlx3g4SR;D@ z00000000000000000000000000000000000007XcA00dg#(13F*oj+HR~7(prL7jV zDpSR^C3)}N?QJ0mNdN)C1c*oy2!?%)fGn~Ih{|e3a0Nx&5VxYB<2ItyQMA_Dc2ulO zQD>^HmI`jwx>R(ul{)?rFEiga_aFG(<(zZRy#ogPKaYU9!|-bT0@lDC;Qtr?nX>qm zKW3KdUMc#xblw!`of}m7-}Fxv!$>#s9$7v~<0}t5VF{}~uKynA3Eb-Q@-INlunlTAjkT<66e!SOofl@lAT4j$`W@x z*>Y|BFq2zovtpoj52%z`8As}<@-c0oUWV;VDl7J?``e-k`;j^?&Usp)zDCgEkzj$m z-Jwx=01u;Dt4AO0n%+{|-w?F3x#l+a+3Y@BHKPw+U-wlNE-3fc9KuhFZ~I*)F@+0`wJ9p@+c zpC_ejgO|5>Eag7nE=4W|zsvW_QryncRrnRmQT`ejv)CoeasI35E1J_{8(SkRu@p@5 zk7@Qz6(&+2%T9)GE?rvDpnqU7Bv(4nKO=hOGKy8gaIuryZx0o|=5{di-Coa9hxS>2 z$<8Tkj6Ic5TI)F9gtlwDxcxEj`#lc6%AWGwj6VPo%J0%NF;A+w_6b|2r4V~vm810K z_)D*Pf#)`UWs5MnW16o2w8JLKkSse|#4$7LWYrK}ZIxPNA3zI$a6{EOZybaw_ zhLtAOtpKXYm*Tn-=FFX+-?e&l{i}nCjg~S;`AYEwJDgmDuf2LK-i0f(UH9t}@0GT$ z8&kP{Lr1}jP0PRR+P}4fEOeB=Kld_arE9q|-<~xe?fP5&(ZfqjduzrP`Zn}_dSu(y zZC)+xfto%2HIC8cfBj(9V0v(VWBo#MRX^TV=YKOyD5hsSZFN7Nby&Ax#OezhN39gr z+8k7Wf|Mb_y*k@eKF^%h)2OLDnBW?d8CXASPTSUoJ@sPsC*{HOp2cpQ^;F{+pJDO< z9b3-Z!A{UEsz!%OTgz>S*QBrUJstViD98Bc>6BtSnkYQNdx>rF z26LM*Q~lIvh7+nHc;AICb#=yf1sHqSJM9z4_>I<7dT)Xu*gLv4P9JX|R@ES}3G89k z4`LfDio*_Y?I*Ebl=N=N7k^w(2;0(!jmc-Bp-!CTx9z@6Y6SMC46@V@z?akzW? z^b9bD_2&oZ1~{buc@>;zZ$=r`rM!w8V;-rM8#j=nq*gwjx+^b4$As5e`vSg>yX5?he&=4ZM+YJ{F* zt0q4RoNO560KXWI%fA#RpnJ?s?hrkcdq%f20(+08WM;Zt^$?8}5{#X}r?tn~QD`WX zT3-hG*x~%|e75pBbHS3$ybHC-4R7JREY}rb4LHXJ zAc!7P9q=)zp${9PWJYQimB4g@Ot?+q<>@x%?~?C-c90)jX&a2j(T&_c(O5K=JON|C zK6eUkfUe41MWN`)48@ZsZAGi`By?Tk_xBSWA$5zyQhjtQ`H&=`0!jT7qKl=jmXe|ddUbf zi=BsmMHg8bH6e-@a60owb!2)I^&1l;bW@9Xzp2vs3p{iwX?zxGX8(Nq+IWUTa3=SJ zl;VBhBAbKqQ2=}stBt)HbekF~$F!HAM!%w4lHGp`gufU9IWz7;;|R~HaFV)=+`}%o z69=IXZ34Q@JwPMHv*3lzCU<54JW1W0`pPR&GXJ(QUvY#pd&iJ|Y`|A=FYXs7uomvP zB7^^)ErpLwf52=Igq~AQfe+-r(MqvRpq7jiPQ<}*nhxm zA1 ztHswza_CPXEw<2USA-t*w%DKJ7ju``F!m9tv8FO7z(f3ub`@*l&ZXC9mX=H7i;Asm z#N?rK&v1K4LjK7tOKp1cJMl9ty#XWMR)Yg%X!Kf>3mQdM>h*=X+WQSNJv`kXOwrJ8XbcNCwA zBSND?%RFSZWIhiussZ|1CM0LGypyC<4~fmskis8?F%Bm?*bg%71x5T9F?z-6NkxX0 zp8Il)X*zZDQsNd(a%J+}t%u=%d0m+&#R(PE4mseC5NxnHVyjP&(O?wD%hT4$A?_Z&zY z>kjS>{^eC9}i#yZc6>8Ty;=&HUOx*%nM>N-21^c0sm zo%gsL=sn7Y7{+{o!-Oh}?*9uu;=U=hxpw3DCBfypo95QPtm{#|qo`|Ir;NR!P1T*U z=V`C&CDFiXv(iO!3CLi7kX=Ges+HAoR|71EbCoH}tL%zYlhFa(YPyPEOKGf#k7-M~ z6ZJpOH(q_Z)@s$B#>chkt9^?r%2$>;Hg~ez8(dgtl*{Qxy3912#4ZV~fnmY`voP#U zn&>5YlJ14ScjV0lbMOT}H0)#XA3Oi9g91<>rITKB*%m%pOa2npv8aW)svsILr#X!ir-h7T@v>HG(Ykn@QBM^=3fSi}>uJt0_d?@wM!Mrs zpT;isaMGlrwdk~R8nuAUyDD-QQFGNQ3+u$2;xxfXu(9KP$NBDa{YAA>>cRA8g-U}w zm-&$H^uOh&6}V(<$jzU3tV|x?P{>vGELaxtAjoY&K;B8Qo84`7spL~|I4uzW5dQW% zjCp*KuEKAvHy2(n%d?JC4;5dDBhabQjaCcv|5#b&C4`-JIudF}LzAC)+%1?kYLN2K z=0a6zSx===^FivuD)4FXAZ=mY?e~l6(f^h2P(LwqYHshTBeTy$RK?V!^v+za8zSv< z6vQS)=XPG3sV;E4TWehM(CIujA%4UJeb($p1B1^@+f0t=))F4AgimcAWTh*+MXigC zDU6T%0VC)ZhK+H`sMBP>Vo!wFsZIR?8^c%hp zQ=d(E4ZA9}O8u=M!-18_1*V0O7mLRE|7|_o{AW?ptt`B#HjgpLULuZ`t&|kTgr~}J zZAZEio1v)S79mf4M|D*Ch=h^Pr*rg+*){kk>>t}jX1z>9Xk|bv$)PWp8`CDfN<&JG zl&m(8CQ7v|m!|tqWeI{KTu#0S79?9VP;rryBO_AhW&C93H{8^Go4KLpwe*|z=h#Ad zXlrP4=a2t|e+onyq&k{%z7Qn{rjFuv!&I3j<^L7h(n8 z0}rBL;*}V#o+I|x*e`FM_)au*>ZPxg=9uP)gVSwQObn&hrABGA_KE*vdc`N3`U*dU z*Gxv8Oy7sRtaZ^lmG8>fD=FcIrj1_D*>%fZ_&4g6a8@MthuBhKvs5G3IRvsOcDKYX zc#>Gi3goXS%RN?@?`&^=8J*Rc;aYVyd9U1z8kDxzXKzWzqA5y&%FcYKx<%Qg%~1}C zX<2{E7a5~XcsCks{%g==bqAF->1xv>-;aI}I%^up!C-}=q%s_-j-`JqD|~)cZ51{u zYw2;%2z8wNapYW&cn4F>8TQn48ckxx&h(VA?Ar=#L2M%mJj4Zk+!Cn$q>;9_K9#b z+vv7ail$L)T>hLG$YrJWxIlkFS;AWN zt7(DS19nDkII}b)G?63_5879#QEX!^%08uUSXZ~$Wn!H2NZ6p%kP!BZ>MwI6Wfkj> zr;|whw=TpjQp!f}nUUif?=;j^IGH(S!uIr?UKhw_^1`_c)i}3!#*2?cXPWHZP1va{ zWzkYA>rR%iM&YacFLgkX!e?lYW<#&!Ep$Fg4nO1h5%(clB1CSptt%xy+&#h zR*Sj94rbSWj@j}%)Cr#;)%axC%aFC?8J#;ZZEjia@0QErT=J@+3zO)3Q~)f)Pp6;a+)!j%p!2*s!Pf;Bnh~KAXVjFp#bCh5{&AH@k^xZiQ z=AE2eCqLJOrE zwz=&ssDRXy2xtsl&WR$7K%3&#R`(vN}n@N{$%jd8j$x)EidES)XPQ4Hj< z+!(fOvYp~5rbNDO==ZZpQI;@6Jb;?f2}={OTS$Z&@{B;?iLl3g1iomiOUCBoqe7A= znKnzB(5uQOvmg4-LP2CX>g!g`9!P2635h|s;C|*LRER&&DpWVp6@Del&~{y#`7nBh zgoXaV>&ZCb2>imw@mKt&vbS=%d|znM&0M4|-Ju$&97koyAKa%wpr5n_`uQD|4Fitg zH;AeZ*nN|tov-AUk&UDiIflAP>r^LkmBlf57QaW8L?(vtZ|o2E>8j#mH2rWFT*rbO z9@4jNA1T7A#2xIiG9jht1iFc8O}_?glG=hwd?Q3d>9dLxYkX#kw}qj?N7xIl#J%A} za0vYYe?@z+IdNAlpf|)w_jh!x(=)o6`l+n+N6;ab={6s(r)j?bnAPHs*+xtcW8oz1 z?z)bOB$WiBfy!>uUH2QiMLxi5B*yK7TL>Jh`3Zf6p>aI|_v4dXYi7&z5VK(RCCfrg zjLxL~j7PJ<6!$B*H|+p(;TE`^VEIaWW*VY;vP|4V{l(oWgT`2pGr&lC)$X?6$j`}_ ztd29CnWJdKnuGwDF889F<(puUwjQM6z96LCXFh|6@F*SN+6kT<-UfTaNNrE&wRi}B zhqwjYkycCPwo2k-`iuWJv=9UUXHW;auzGwCRKq>ENc>C=V|{{jbUZoVA1qS>ek zP5_7LC=|lEaebu-^GbD-t?%fw z_A70g6HFExBmu8weefUPtmQqhFw}^7s;zf(t?jrU96XtmQ3_!OLCfp8n@ z77>gNAuaaDlaN;U&OZmX+#BF5#)$XqeY~0alh6~t0*k=!;3x2rUj;a51A zw2*LNi;xemr2TAJNVm27-9*?;l}|m;rBO_%RtoeVH4zGe^ZokR9za*2vyQmkhozQ+ zyiJ-Q+(ye_KlCe9&=zEgW^2X@JIQ>L)h0_#FsWv1MJuPx;wiRUoQ(oOfx~l{gqp!~ z@DJLCUI_{K#E6*|srn_tpQH`0nFgd$%-!Y=IV#SOAMq(T)^D)Y453EM&>s~>WjK&9 z<(xD_m^!wPG?es}%Z1CTDK=EDLzTEAst+pBUzCPfZ3bKMK21k1C9D_UL3zQVU4ND@ zsx!z%s1??M)u0MAfbC!*P@@9mgFI=G`WX6G4#P+3&3SDxcRW*)H>&?ew_{(cUXR$G zIt^Y@y3rrv1&{Bj4_Xcmlh=e{DF20fkU!DiE-ly!MiU9yqFL~afa5iADui$ppTY_` zAJChArRQW(rB!!Qx`B=02B?Ldp(m__4nV{DATM-G9BI}nbxP^s*phKzoZ%=+Bb=** zE_@CRB1X&%kAo$C&p|!xCw7MC@Ozt;?)7jY48UDT&xAu(8|fD`!^zk_%C#A1!kaL~ zZzViS%19MIT3E|%qK)zQ#ZWdww?Zf~?GMsH1N^S3X}@)gU;((vy9>+7BFAdF4o0RP zL$Avo!tL<~6R9-?oyr^|l>+2euyu$@9@Gas;l2tGR5>h2Nn*D~eD0;Xqqvso-)agO$HtJ} zcoRN`d%@>QJhT#uRBhUSxjZEYX{0d@4a6IWU?H@j!}#B%f!q)-A+UpTK5v-5#r-j{ zjl2y!#&jfy&^J&FW6=qqf`KS<8E+&mgYURTejq6p zjnPil4TSSU@HHQV2ZPX* zyp-Y6U-+qebeY<7xYU4RBF3ZM(mAjXb>`IK0o6BnlMmr%k^8un1i+r!ckqhkzoG;A z$bUdxpe@X%x4~D~1xC1qxySHXAQHEcZO{tV$+G@|+*$3U*()?7HSMYlK~2&-_*63) z+-^^Jcy2#4h!zENV6Hm$8Ug{dVjAifZ{b!Yw;1-am!4m!zJP@x~aWW z)ak}y0xy9+K*N3EQ_)25nKx};!$J59o=bait|-;<9vP+VqfTNfbCUfPPkEl;MJ;hH z?vX{wIHVCHz*cQ{7y*6-r*JC_;UmEsalOr9?o)Ktq@O-T^2!>_o3E#@kk65I3 zqJhBB>STNSzGX+Djnxcr4i1#;xQ}>0)`LUBTXFytgFo;lvR}B%;r8ricmTU9H^}?7 zwH7XNH*xcwAdU}5Ep!%|!|uX^V7|~Wd@>vY%S;w<>wq!XXZam|hd0qja?X5soD+_< z+@W_zYaL)YQ4Ft30%^fQz&H{}#m+#6=^eX4-_@44G zB^&r9{3G2YL!n2qZb~QE$Zym30)tRToC79GQ@J)ML z^x-E2c2RxeH$sIsi1LGFq!D=YDiEdH4_!0gb5}?x?~RP`Idq3~1t~Pw#Z~zkOy=LC zOE8ZG@h7=c=mU2f6xgjp7tpJ{l=c+_fv^0~_8leh-`igUEBO@heBdUt&pgM+ z5fOBhMo?L@4^D@!pbh-Xds2~m4G?VR4U?lS&2TVpAR%Fo)>^#6Rqz3D3OOl6jQ9YP zvUVe9VLZF-)CYG`<$?YtPb_Qr-n3A9jT-4=Wf_S_AK^3jwY{lxAU0G5ABxVnGvAE< z3~=WwIF;FRc!I0KmS7=$1ufx2(3uz^4H?V2(rg@tLfcc@5E@9I&7RSC@W3W4cs_o> zH}mz`h0>kS0q7ku)>Y_4JQ=ui`=dVc=6D49Fa8@pDtMgjS7~rn)tU_m0wN%T56Jn3 zz4tlip4{AfGY@2jgoK2IKuCZnixp~KT&sY+RGp7wkoW>NKuhtD;lE~7 zMBSqkv_ocf?i+T@{}FZ*zd{L>Q%&D`Vy&!Wydf@9iX4HKsO6|@*wdm2w2AmTHZYny zR?3>zY~z2!|E5|jcWkjjZhYpbf`fEc0D zC5UZ?2My)X{DhWKCwoJvgDGCO0>ijL^E`dFb=+^3_EYRRN>>q%c;k_ynb>OH_p9u? zulJ!A_fyx5n-XA&&BpaXX#xFlp8sKorQWBe|LGeUO2u4cv&#S~^I9d>=r7bmIzT?^ zpbQn)M6T;N{t368CooEH#HYQs!)n+gblS2HW)%5?M4N_14THN1C6m88)#!Xwks7ljAg1D!= zgOkNvMoXw$>^7R%)|ZKZdS?F5Z!b2nV;xRt{BhS+B|;d3J0`S1K0;-dAKyKs@1VtgT^ z<$19${i0}N4kJN*L|bh(Ou=lb?;4;V744lH)oziGgY>yP$M>NO*YEKsourH(> z7g-4x#5u30Tq`u%wnU~o4cbca7Qm($ANkMu;iIr3QKel85YF2cony6$%~d0ciBw^yqm zJ*TH{9(-+mgtvprz~T~-;2kZFh{wSlsc-xSeA|A9Hqsra4W0A?eLhdcmui&U$%ptN zKIAocfmTrqZW!Axpp31s^Lkcn1KVs--*=bZLB%*m$ERAYv6Fc_rwqP_2Pu{5yma!V z#0f)gb0Z!@Cybw|81HJC@RCZj<*39){i%r4UGjyVDI_hVH>r~xB-@DI*xKznS43^x z3_4clC2AwR6W5o&;|&lOP>0WmlEk7YA#b|227A~n$MALyxua?`>rg1O=}9!HDLLWTCJIHu)rUks-WJWl>@M(9tux=iptsdjQBVPXM$ z(k!pHtwiGqzM^{Zqv4w0G^|Hge2O6nDhD2;KWI|!2|DVv4IQ{k8*bm>cU43F5hrM0 zL!u}({A3yb$(zJDQQ!0z^U;f>-#YPzF%xY5XK}r@Pt)iQ`Z4nZ5v^{B+uW;bsY+B4 z(y4!~O{R0QWo`?#jp{d>>w3wHd^Uw=!v-9#=6e=XzFI=py=Qfs!DFxwo`vyr#QQC8 zPjOb;C7<#)b}t$xlJs@5Ob^igjW5L&I*5T-*SyXPFkIHhO3)Qf`;=j-n1QRqYjUyU zF^y2AG||j53jCJIry{r0M%IiQBCbh-+7Rz6Ylrr+W@sa$wn8ps<3pg7JJbaa>YvgU z$}lb^J%t5up=~>^A3sQcB}%PO^GMPVch)pBqs<}IRaD0-%G;gFi^LgBfFjCtXYl~6 ziFIfsms$-)FZ*0EpKTng3Tcv2?6r*i_y?6P64Z9(pdi`7txhBJzP%1Qu|h5&Q$Dv{ z=J6ON4r-qV&okeITXaKjm)KArW7fb-^M?M0DA6YxC6U*~uQ&$VaI)~D@$?Xei(ELM zO-BR9LuX!rO|V?NqT@Vs{U#PHKLtfB zUy%~?t$g(mJBw%U# z#9Mo{S{=Uhye(F`-}Oo??)V-D(N2B~3bgh{4RXS_ZePEsJ$Jj|A1>W_+MZ~!$aXiO zXi7G7y?dxnVIio{Qi2(OBdd9%7neZg{f(cjvQ@^7vuw97RHs;=5Z z=~BtgBss~QXes(fRN0;JfYSLGaD0K2smYp=dOWMtqf&Qh)Lov@w**V=7;qwx~` zrv2$z9KDy5DbH)Ta2b;$-U@yx6U`*^1J~Im^JpAf{2?^5SLZkIn%muG!+Ltxz6CS7 zz2lyyr+pr|)2XC?8n@7*PxB73}1w_MzC`t=Mtsihbzs z5TqE6INEDPTB+9B?dH!TnnEO0fm`w>Pd8trmWub~Snrj>#XD_NVK4epPyAJeQ?%77 zc-k5~Luqi!;LlnbPX*%y#C)#IXWvYVy>Ql!)=M>t9H@%CgEw*#t*8;wcVcv&W zlZjZ=c9UG?`4C&d5jXn+hzCt>hq_`Q#)glFcxr42*&0ua3F-+xkd5e>ti~%c?vPR+ z(nDd1UNRduhn$igw%tY*yd)RkU~Lr7!NV|Aeq{4iJ82Bx7iqqww1RHwt@&?SxmxMw zpDI%X;WoSgm$e&SvCfV(S$is;X+!KEDPK4Wn|)^BLhWp?>*^|AON__6>MfG|yO1+Dlty~&(Pw=N~+=myrt^5{02>lf%b|~SoFas`wADtA{MHg#i>`+DZeceP)#E#4TjxZN!1WAuk8-L5CJd<;Xe zt~Q=r9F4Oy1J@D22h;+0;!%3;o}S$xtU(w;m5t$n!4L~&at0k$gW$_Z-}lqRkD;Q; zaQs&EryRP54Y{}PVbL&b4FBPFz_X!;dwwapqnEZUa~dw;P_3qSk+$D+kCv!T%5CB% zlxgv9zwBl-9M&RshcP1gxPFGVKt<9gc!!JJUVMTJ^#I=E-JIGPm++u^qOv$r6r;ty z&6Xf@Vuw@x-x71sY5inR#oGDvjVXFMMT!X+JhXW(LP-Ct*KMvljFoLJQ~|WO#AtI`^qr zEjx#=We*u;f6w?sjP$)0KLcIPPr-l;eKc&86SQKo1y$oN&^Wt}O4cjW#FS7+4tY?3 zBAEsm?k&w5YIsi3uIP<}XZ!yQgJGjKR85x?5W*77t#lXTWD6@ASLXGQ{cyV&!-o7u zXj)tF!CkT@IaOz_&wumVz%$GOEOh5evS@;hHCISgTIj8)5jJuOP)mz>-eaVw! z%K-Z#*y%ha!k`l-LjC-hG4gJJ|112i%Q4Rf#(VhQT-O&uPQj z#UbOLl!4Xt<>X0D0co%d%Ao*OW%b6rp>NQa&{7}O^GHOt{3)WIF@l@(YG(+>1}<#cSAT>n zHIsV4WVIT6TE2nx%ncaNqj^1hCl!hpygvSsk%^0W9;Apa>KOM-d@h&4Gx|b1t&PPF zp2_Z=qo3zmnBY9CZ4am{*W>(Nb>WhVaurWpRjfo2|bAi?n|OG0;p`c$|%wcT|*D z7w*RzJ29~`@9F2A0t~$)(u+v%MNmXQ5JZ|3l_sDRDWZso*g!;4u|#7FYBZw8-n%B& zScoBZjd$){>#p^E`809Qn!o0c-#lkO=Q(>nAtk~iVVZY<=q?oDNYEE%fK-qJ;=oI) zfR6~kTj47hshwzQ#NPYwcL<}qa1(w)Kaj!V2po_1=}*OP(O>W^909e3w#Hh^Va1?y zU3wO}3s+3hweq6NNhph#?<#ts-N#yy^G<1_FZquu0e`?e!ILMjv8Yz4Cf^ZH5D%>Q zZ-N4fWMp_Iyh6v~YPU>_h@)_tzBUK+j8P@FCn6bvN|2wY9}Gw5;E%2-!fNqO z^GeeS`vmlh#YnG-OppGQUQk~*?%4Xx78>$rmL0l>wf>WTL9j(u!bRkS+67Z$fofPZ z*iDSY^~e)8;#MRQH&`w&BFFG#_8!+eRS^Yw&CH1vQNcT)A8W?8^dd4sQ&A2ej)x9tVKci z65K3AJMwrB$PIY{Jq9MFyY(39q8j3|)n`Bvk)31*)oXy>V2fPTDgKOw# zD2&Mk*5HB=2prW8*o8dMco+pMRXvF&x&ggyJh_D5q^tON$4BTaDuhuEt|Z@n3pp>{ zZ#gwVkS77E^;lJc5-sx`EZIo9L2NTPcHL~;aZTfPy-s57U~KN}~5 zIJ^Nh3M!f|^aAT4hq>x=n1PnUJ8Cb6!;iXWEQi?H;eH`rex5d>80Xs^lN!^*oyIoIIw;C+48LYhr-x@B9VQp71YW5B7y`jhjHO zun0GjwK_7nmVoi$$c-=p$dDerD@b$>x|f1ji`5=$lFuqyCiQh0hHv1BcmTPKnqUno zg-+9{;v}@P9Yp(yM{!W(&8m5!qh+ZyK(SfxS>n6-RyiStYsA0v+b8)$Kfw}-aDyKa z9TAAU!WC#B$fgbBj)8ilA-JGs^iH^KJOVhupCad3d&a%c-Qj+g=;EECrGp&5M6-np ziXGqvVB$V`s@RQH;1C$4{fZ30ukZ?7EbC=?)#I7(bz2v!xBtVB4$7ok(66YQ4i30a zX2NPvW1?yNR{yzvE0n8!&<_G}FpPAr#U{!!aBLDp-ZYqWvvufqQV`dsQ;&wxe$WEg zfj61~T8Ggj-@eu=c$(c3g3%Gh9qZpsXF7~yQ7j(K z21eiy;iY2?^9?hWJ(9i_yzm`6Np!T`x{M(%n)X+tN82!Y_$T=N;aJmrAi!K0VbBxj zqh-)Tw8ks7;*quNg}nh-3F4i9(>@3FNR#-M_rVs}jRqhsJc-=FYw-1P1!x>Tf{zI6 zgzlth_gsaD^VlTqF*6{ z;1OEAP8y zoYm*EhmiI+ zJp;dkDPWnR2mCs92YQ89!e`)Uj9Xmy6b-Zj{AdBlP-KEF(R20!mx7mIaENGO99xC5 zO>&Vp83jb+{!zYbLhYT7AKaWZ^KHq;xn&#u!acL^h;S{UG`lfT;Gf4)BPcMbXz+goJe8UYCnmPlqff#~1&?b0-IN{wO+URsrYsulp ziKq%T1551XWB`6hR~2MimCbId`KEGmNw4XrC-hLf;vRgjIQtWHiDV29(=kHtNCMi5 zqhym{*0ddI4^W9BMXRT>N8(sG3Dkf&AX0FTy$ekB1w2^XK)ymR;2!wcdRT7zuDP75 zrvwvq4lbihSB_7%nO<5pX7+~Zy|nKn85^y$KB3$$&*6Q!Jum)5_a%}=Bpd|diGUc7 zv~46uXf3OPa()$^FdBpJBTW=6&IdD~0?s1qKo*E)OOcn>Y4kN-BdpWUOzFZ0fg_0Y zCumwxa9)RAd*Q>VS*+XTnXA9zw%G`+U5cHuVlL&km?PUxKgI9H?eg!_{NQ?+<`Mz@ z;6m*Iv->eer0W~)rRjQ`FxUkq@D}_d zk^v8?zw{;$z#M3?2Q89PBNDz6)dm-=m~H8~_( zCUX%l@~d3N|6p6$OgfsTeNw$da$QzsoIt)J!_jOM%!V4zKp{ctNz?TnntuoN(Jx@I z^ijSo{zb^vR7sbBKceQqN<2fa4ZcQCz;5B0<(^3_XnAy-;Vu}YC^PrBlPE8H+z=I_ zr`Vsj@MiWCdrU9Udg_Wl%`YFHow$lUq)(6%hrmkNXuU|fpU#zOqT}dy;g}+WT`+kh zBnq#jz3ogqMw>^B@1!>9sL(9DmqxR8lhc0h_tmU6mHP?Tr2Wj!w-sbukcIL_o+Rtb z+n5<|XSe8TF^GKi8U1_5Ek-?Q2i_nX9aiEj^%_9EkrFAPwd#VtA6yGP!5B~ie-PGy zFz}LjOj)D|0FLMw=mE0Fi7qpPr*G_EI9U-wM<9vE?WH3Y*rr37FAwI;;&C>Ljb%2} zonD|3wC88|1H-$VPmX(wozU+QACU@QMp^I)ZNNw28z((WJvX$BMWVwziocYp_a`itiZace#&PMq8;XIYc%Si_hwh!^7kVIk;-#?m`R!#6B;DAV1JC13!mdCse8)@kZ75oNXpAsk>;Z=wZD0QIENBQ7g=XvDCK;99hC0AqYD|A9EI@OB zCEN`L==C-J5wsT$SFNI0G*zCH2?iPb0McQ)^oH(A-(2wx?=PMbr|{uo2{U51@nQA* zkqi65^`HTKp8sAN31^^N&=)=v%!>`u=DK#Ed~}=~khTb=lb$TD2M?q-q?6b?mf>`1 z^2zjFc5~2c^Z-4=J0`9ME9K{0jqG-qs^TQhmY^A?$U=AlPo;!DLI#+_mmmY22Il{u ze+tltVI&slK4LlT7_K-?)t=JaQiD zMK0ot?q%6ED;AmO7#^Zy;1F4U*h1MumcqJm05QjbKmwS0dfE36>Lrp_cm{kA{E>~2 zGBMos9{d5ef^~2@-b)LlSxM2kWwK$-9kJs?8~?MR9%&cHB_vD>+k#G@PTK)B+oR_+ z$!anT4yiYdcWAeThvjCEP1u`mr|meA{07#67?=&ke^4)x+ym*LRl3`3AS!o=fmxPz!E%$pxi;srEmmT2%7(qUmbBqPe(|Smf&8X5g6&+5*`asI60Vt-~vC67uO--NQe@{6Z@>mw{{G`Y&JvU2bQzsJYW9dr(a z!3sF$AF}8F^*>367V;6&=6FwE1M^c0RaUnrwwc~n81naIBDYVjRZQ12#S7{xi6x%q zynI#P1oQPXtG=;MsR=hJp?=lMW{t&}3zL_7$vec?XaRL2!>|&cMeETpG!7y(>mSui zB*R8R+? zFKSu8Lw#w6D9t>2rw8qhtiK-%6#Zp+yo&EozxICE97hm+?23Ly3)L_8zwj%6^_T-b z3PZQ9{{FA9q0YGkvt zW@+)j9@>@SJ4Kr^MqbRX;QMR>U5QOm2ezZN@Hhl;7%cf0{b1TLR4t8{n|YYbtnj%X z_j8I~Xk8>PX1R1N zTdv-PZh&}o>L$SqI0%ma$GiW3>lmE^mk5{g?$!Eio3r|f+I8JiujFJk4ldOzbd1cC z+wzYjO}3YevYFAKHT_QWS7fU505Q>RRaoE5-Z@VrQf-YZ^HZkfe8W!R9&|Di5rp2T z19XCZP*lGv|HfYi*YV#CI%1FP>ebS7aZ=)Hi%YRpbL;9>uT5w=Xu3qvTbVdkKRp$@ z&}M89Z$NI%9&6Cg{>0=DQFh+9hlkTX4n(| z8^1n7g1k)+*B&hMnQyisH*8AOsMUWNj*nc%T4aIvjl~lew}9=e1~G79>}mH97n%7S zd4tL-b57fdiH8+L8JT=NVj{msb;wWfA#8>RkPmu=-XkZNgEGkF&(3}Szsk#NL7@4{ z7~$&9z141q3%fRcy=a?Q5V@AW#n({)y+h3qLn6?I05{Qb_p-dGlZQ{JI(HaHdUwhFJLzK8Mh!qk{mkF*oZDB z4&)JOLn|#xsUC5qzp-nkF=7Jm6!qD5l1l1`2a%9BWFJl0Ck@ z>@?9ORb&sOd`KP|9a>QvaKvYx1%K9vXHA?dmFwV_r0{2 zk^R)oQ?qa@F~P&QN!&oZERP%iMQ@P)ijlmWA5z5uE8)84ZK*eF=clPIZ6HPTDv42_ zlnc3z-(VMV@eBCo=&sZ-+0Vw!ZxWt|$HNYnDbue2m7r55t=hii&9sH!FxZxsYB+Q4 zhFLZSYuQ`!E$kxNG}qWzdPMVz>4I5-72mqdl+`hTeV|G7F*Rb2RFl?`1z$i{=Z|ns zF!wu-F*hgmPz9B6FjRrTHrFHeOg%Y2O>8jxJ~PuLLw?CD(W>3?PvdxY0$_Aq7OBV< zUMS4+ES5c8dpCEh`zdyvo?*ur;fq)?-9}yM`p@n>|5Xo-`u4}9l+b`$|OWhn#IWN1jz)UZL zPh&&aFn)-B%UW3*O{aNZ#1~qdOCwg=P1F!ZgERD@w<6{P5WI&jJ2WdCb-_oVO1c2_ zOsdw2)2nu=^L(V(3b(-4rAz4_)Q|_VgX}$hOK*G; z|H}3!{=)5pYy`D=MdYN=Ti3r(0j+1ha9WE$b2s zE>!$dEKYd7nipxi ztwf8289)N}gBm0k)~jd#14*58?`Myd{T>^vx@&enPhMSJ@#Ap=G0@7VJSe2iZ+B+0 z7{M3wL83joPbtgc!`MCM!s@?}Z|1I@G&^#7Sw(`y*v-Y8r^?_-@I7lb+luSaY#~k4 zU3ZG}YTqJFFGFABE-zKe1c5<&*Ae~oBGVZ=I7Zd+DW!h zrF!rGGJXo2tgO#8CEr*S$6YQgcZi)MXZKJvEg(p{fj(RC*qg!=dxW;3(d6HGi@ML zsWW^JN9dI9E2JUJ1y}M1IC$utS3R?Iv-ow)A}3f>T2kJG7rdwqoMErZ;#vG_9?GxL zCU%k;(o*`Cd__-?dUAnGCsAL>zXg(Hn&=Rj2gb1r`q8KX>r3;M_1IY|iN0PNtNqx> z*S9FQ+xe0AhNzafC9C$dT2()s+~ljWnJI4M{lxj)iEm@^!{~kd4cm%~@N)cR zbcw_k~AR4pbCGBGtp zEpki^(ImxEgiLV?r%Tt{t+npDYu%x4Yu&~3&;Ik-Yrp$__iy*;(M>nqbkj{Y-E`AU zH{Ep8O*h^AztdN_i~dOeZfO*Zg2SLKPM7`&|6|A(-9=+Gm%%+S09ApB^hr_+|9Ae~ z#0<58ap+Ze8?2IVg4wjyRBOBhE_+4TA1A-RKL<>Wx#XEj>(RF;i$dvpPzs$J;liIQ+7@o>LAEQ_AO zQ^hg4lNIpa#=p_ZtYy35RcVQI0CY-^(;@f}-h(%@ z3&v{o3z{g-v1nUAIkl?_8=Sloy{${h5i&sRx6|6J>`sGv z&|pdhmf%TfL59;3$qO_}J)j-);Z7u&)v!r?9dFcZSD@_8&#P@p98ab*G=-v%O*(yr zSF&$yra7(hKEN*d*ZA(ARDpEC_d*Tmp}2r2vLEpwx`~utOE2Hn@GSxfqFm0n( zY*va_JTlZ$F_E=TDN>@tU!z+*k9#zX*hDJvCf0|n#S7IwYy}H?#W5f+yLUtjd*oNW zRI~!V3zOh<uYltiHS?(OCt}^o{e-Um}o<_}fD|AJ$F7_GFAYG8+;NcN7QHSIYa^V}W8uz15 zvI<>2{}a0v*N--c>ud{4H7zrJOZVWRcyU*KpTpODZp2YTB8?Jvl&yTM<1ywS1_po5 zxScu43_r?Rxj9><@9%v~U+&T%%-!$FXa9N^EZ8Cun_Tdm1-K1%YiELwL2r-%qQEmC zvuib?2si_^;!Z|&2Nh3EI2$b-L`PeW+$DE@2&{21f@q8t;3! z+CW}7E}2BJLXYXgN_aUtKr=Msluj{n7|(w*Y?mDqkLoY18|i)cB8&v{fhSnQPFXua zHy~~T2I!HoY0)~US#at zu^E)>wDZ-)+6#(d{34Hma!`M-b=e(J1uZ3oUs zpcBv!H}Ndre6S7-2emL6Ohx@s5uQn{M70L}Qp zXKUd?Fc6-CO*YM-H1sV{33h`WU^-k4dlP_mq8+jyFI1L9HL}n6Ns%C@h=uGms`4e) zu4I;GFsb66x-~e66=E9yHmy|m$|1^e+t)PbNoV*2y4F}H_fsa2Z7h;R@IQ-IaYHm^ zKl1yyo!|%9Nb73Yj?K_A+@f)z>(EVPu$~3yf^*0P*L!YI3RyVsE1I0nDcg*zmFl2- z!`)afRunOw_|q#Sf#;Dma;mbJmXeL+6vK+e!o{V`1}9TRij$w)`a zXY32;V)miGx&J#Xi9Ix2&#n3U%a9MFxf!|Q^a9KTT6_sK%LaH2#lil{0Yp(6R7nm! zf`^Se$vSi{zK40DO|uA+-%#I9oI@ATuUIUJ4lz0cLjXRF0%#V_B^lx#nI_h&56K4l zyu1Jpbn#|ku4^2354$Jl(L;tKi^6R_bo<%g;+F4w4P?T8_Vt<(;3&=k*8zgL)=NPN zeU;oo4PGZu8NTcOMAA+rP3|kqvINuH4R^n%G>ZhKgEW(P_Y3$2PD0f@5I+SQ@u&16 zQ}~D6&SqEFbeu;|(nTIm>QDOYEnXlF8{)1QGK)E(aHsMAP46ETj zTmfUqdGrALphjeYE-LfH2D*_pdo)it%G>FVz~kb!cM2~fs{K})FWiScPPfn+9*RXTJ+yNgKggP$xE^ ztFVpEBo+7@Xa#53WZ)rm2+9)a%4TH?4d?ZmCA=h|*iWMd3wO~$rfD^_f=pK@)9GY^ zsT!}s;pj0Miy?Z|(-S?qlGzZ9C<`#GrMv)_SzA%=Y4ot+?QIM%gdxGy*w7M4FliB*j>Bq<$)h2O+ zyJ~FZCSs+W#WT<~bd-jpQFsS#6~$diEJ+cgPhS`nA?~odAuA(Ol{m3V z>{B4E?wX4cqEyXC9`-fpeXyx3!5t*oJdX)HOH-NrqI~KV+qkESdRY&*iwuj&c`L(z zred6z{)>MpsFIrTyJ(mFV(J9HMscpbU0G{CeN*)v+D41%N7w_GqdsIG9l?g!^wwNt z%ULt~)ZscGE#}afG=j$Jp5oW>RNZDY5tMeN$T7O74O_fVg$(j?ad2Xxp6@1Z*X;49 zhQ}Rt2DjR575h__pUtq{09R2^S)m1ojIR5 zb7q?~Y3!#^(X?htk>9_u4#pV~JtAk>MVnqJl@b3lwK09I{Uz=Crfptz_9nZVhA7h+ z{YWjvd86SD?WSB?VG!R8Y&73wzhS>3n`e6EB^!*}O{u05(>p^8WrlIDF*@yoo=Z2& zp>qyRsdb*KP7z$>K&dTXGO9!v8Q6RLu-p@6jrX@ZZ&t6mA4{msc#tA_=9|iu$tFY4 zG1GIyZT-Of9EaiohWP4HB{{{e<&oEYE{GFZXvD{<)m3cLtcBZB8t;$rPFMah{?)H^ zxY?AJVypSMp9-z^+@|qrQ#)0m@&V-!{r5f3`fShKom|wDk#F;j^{c$%+?NbYoixRmZti9(A3I6OR&zXe%zkXN z@?08nWzgf^i7ETz&*fmr(X`K)C{}TPv(9*o;gYxy;2MB%WBsr6l?k_v1}#A=bsDC5 zs?N%Vgk}0qgV*Q2&AP4sTRm=U=Ts=aGECurOv;fvuzfpNnrnWBr$g z|MbE3vsGX1lw-BidFSt>uiV<1zE19Fa@4j(e?O$o_k_k$%d$tr_^H>m?s^BBM=u8{ zJulnef^E2>k-oFxe)dlFaAZgAnD5H$c(bRmi(!SzX_dX!jkGsh7N}Al+C^&;sfA4p z^VN$EE$!BdTVv1ppB!W>-4NT``H;r>O~tffrrtSje=5Ny!P!RJ6Ms_KE;SAMMr`B% z?PP0@y>aiPp;ATPfBPjBZu2BcjbW&LGTSi2aYA$2l?){78(II-@Q+fcOG2WgHuLW7 zonn76A~Uv*|1;(DfO+a>gJ)#d0>6UuiMPeLewU4F!UkrDUcV48=9D`mnGRa);msB` z^8621PU$D;|5d&+)CNs3wJ93)-9>}1`Z*zJN|>B1y^ziibzfGP*+E?@jg9Kc`tk$f z7W6MOmCK)|n&+1cJ1T$e+c-ZbaIk#dv_kEwg}bhg2pDk4c-$b0orT9!O8F&HPnS7d z*tjvn2Jop&v)j_$=MOT^b!8coSL%6=u;C~8K!E}4b1nxSEYG?xgu`1 zX@WjiQ-#M|i%7k=$?jYIZTDenW{Q0K# z(i>^A)HJ=bvcX+ZI~ltLUw6OfRm;CsXBvMGeVV;n9?NeMkCW_4FZ6lBC2q06CD{rE zGdr>YQXw-^mqxAss&Xkc-Ql1dB@NZa8pGvkxl*;)_w~)=hmj|&skA<27Po*OrMG5z zsjL_AKHayAyovcJlST=HMAAw8!F^Dp@;};dwn!uwDN~p%eeK&RXo~#E(B0Wr(fDxB zF>D;YqW0nKluzPXmgTl@*ah!EjC>DOPD2g4!%C>h|pPF zDdo$-L;Zw0=LF#uU&^<3n@0oLYA%KC;_h)7q)1z1tfMPQcBmgW&#+V~pwaAq_?-MG zr{TU{o+jD|qm!NvUnw;;w3Wl9<6@0)kq_~B#Px7p#5!{!w4D%O{>ESvl+}AKw~>1R z%cN_9wKRe>p@pog)KR)m8t!vKuKve?-NhWSxeqpctIXxTl4|{8m32ui_=8#@JxUy< zzR@lDAH)Jap3O^GE$ty=9j-^2=^)R1yjGs#(e2|>aV^FiJtF_XPjt=LiiH>sLl=gz95L<8?Gz7VbK#P~k{!&y8%B-n^smAz6Qwi7RDu;0#56Bya6CtJr7 z6N}PUC|hV(`z$guwh7(h_#?Mn^cHgX6se!Q+c4bmrh3o8hWm*S-xhQ+G^H!-xv=1# zV@N4&*Wmp5a~hw^UBo@Pf0Q!*Drp*-$O^RuvagA97-dffkRYc!;SKXk*-iR}WcR7{?Coz$ zj^k+TEFHvtg{dw+)7cI2vh+xL&fgOp{LksLc=w1~DW9VzWq;?V zkgW}@e+k(g*H+5S-l_fIIDbe>R7ET3bfFpU!Y6?a-^1_QWaQ|nK!-HGNyK$A?T7Ii5hj`wNbE8>cg{SkMA%hf% zQSu44TUCVrxL5pobDjPed&?EkLu4lo7H3PZ?0=O6@)N8P8sMwU(5g zIf&p_!ev}RU*R5dDM_MR$TaeZhSAmZDaoKAEQg=L{P{Y_pwU7H+#mH~1>8)!m#k{g z`)3~iw;m*HScjL2tEj(V!uquD@Dr$o4>}*X1LVjDa*cQ?M-fczVL48lTiz@B)HX*=G;{Z1W80H|;k&vu^11ric)&0;4r(tBgfs5!YsVyA`#iWjGq%Wy&Oba>y zCjy1_xB@dent0-Ycg}#_z8yBgCMc#?xLD5YJ)W+_ zA4Pkbf+yjxNDyvr-xdGHF5@aLl+@SfK*i;j>P<5J4|OI2^OCxgA+#?yjoZvO!CuNE zPR`(l^)*0*TzY`h03?eK< zCsCHZj#f(V!I3?L3-AYQ!L_Iixy3Gn6UYUB@GU^V*28&zCVl~va5uV`sbnR7AY2K| z#)F^=S3`ci|Nm0RYZ8Y)qFh}&QVOeig}lU-_!)XZ@8gTwXx8cr?hUc}hmZ|T@IIW!GEg;(#P?87MSy(h1!l4j_r)8~1Kl_ck#aZyYdwGA z%R)DiX`CeWfLX>d452MP_48{W5f-TX`95iRb{k+2Rs4FxESSm(qyPuff9XeXMIS5^ z&;)D`qlIv^M(u#_@G+1q)#4_2uHPG%(-0?39vvI}Cu+;xAlFI#{BJDln(Un~d5X>P z@Srz%rKQW3lew@S?L(gQq;v|m#!v8WxCt#`HMqh(^ujXZJ7X(`iDtPAtjH(mLMk|W z7;Mg^<#q>&2!?X?(ccEn8@hyHbW7O71+rl6q~VIC`h&=y z)E1vdKcaD{7^Mm~*#W5FHj;476z-I`5LsK^Bvky1^LqzxD#ANrSv^Mg8o8LXbqUa)1eO*4NH&_O-8|Zv+iKH z1CvJOLlS<0FE||2n#s>;4a6w1QgFTeVB-xMCf;y4NS0cvywB2MPorb#1xjTzVJ=#a ze8_+37FvpLkzL?T=2*^Q0oqGCVL$T_!!|aH{3>ERyw5(t8)UJyZXxa`?5fxNS8O*D z&TG^00!TBJc*j8otV3JzTeJ{v>u#fu^eQS-a##)OP4p3O;W#uWAHd9TTua^+m%&8+ zGMtA8(OR^DzQ#%PBHHX# zg0m5Z-*6Ay4qx?{pnC*vv>U{5?qNFyRFNvYCqZwg_B%wD!Ow6%W|jA~dgSjk>5KNG z)}~4NBe+iQV7Xgnfwj;V4Q1KjqC`UvaS?lisw_D~!~|_&3N%wXV;jr8+{(_&`-n6F zj^MJM%jr3ALSs+>?Ow3TFsdH&M@#mG=0gZ-hxKq8zl2q2CFdZGN82C^%HRa~9^Qd3 z%(3)>bX>~f@l%w~e!|^RJLkP}s!zGwQs$v4^gIfH+Qc3SWwtG#Rmz=u%ztCK%ltDM z0i9V2ghMj8v$v?T*wV7TFxW^`c#b;55L`xMg_Y5R*@1vMc!|7p4$k+;5;}yXdUX+d zX)5Uo1JEK}iS7@dO3D$P_T~Pf*vn`)e73s}-SB>Rk4nWY$iq_qm*^0_r0YOiK@}Q^ zVqr7(69k+?N=Pc+Y_tGeMecG{ zs$g~!SCQ6e2i?$XGrp_qs_TZn)bGw-pe}rrrTaOu+29Pds2ndt!Ip{JhgFM3C?6d7 zAj|K02Or=)oMI_#n?KKlo>376}-gl0g-zs3eM0( zD8|WbEb4;n=r70$mcud2`+h_2*B~K#U3%|ZmdZSpMCJ;Pcqf0APtmP5UG@3%3-@0{ zX6+$*iVo6;sGF%jB=hf-j{2tzxC4-jcEJ{ifn5*?KcmWcFX#l(c&JZKTml@_&4>Fm z4<(>P&`3NxKy;vkv9=4S4vplei@)3cAJe-_33!|pS9MrbOV?NLwZ#t3UTe+F-undI z9U>wqrG%tGNU5NRs30Z^qJj!`doAql*S>aRw_f|&-Cn=_J?EeEoM)dsGi!d?T-0Vm z{W39^y1P%L$C9U~C9B2y+0@nd7v+46_=A<81+KL9R)@nz!%@>%Hd@T028QMg_*%m( z@>Zhr(1_K8fwX^E_SdFWc$O>5d#LpO-A54IGgc!fiOK zvx6FGxZ)4hAi+S&hYhq5`!j?5H%z3s&j0#jkgb|6BE>ao&5qMDAA9+?bT_a8U83O%6H%r8biKncQ%~Wa(2Z8b^=d^O;DdQZ#>Ai zz!PZ|MZh^00t+D<^1(>wrCh@ixQtoY3tjQH;W#ftAH|*`Sgvg>jYK~dCw|#KvMI+J zyev$-1$X7sVGmh>8x%n(j?(9<2F2AWQPiew_z~+fJ@cm$m&PK*^taksNm8C0ce0jf zqhT}{`fBHngMDfzb{PNCB|{t@glso2eF)mp3ovu^!F@_BJ*Im$w>+EEcE9$bwuoZI z#!m8D*vuQ!VfsQgPRBrpFW|RCxL*4RSe0&h5=9kyLEfvEbP}Km z>}x?~9^tPAsT4eQ6|$k*_=c8gb8 zp|E9U`UYSdogp1_C>M7%&GCSPupTBr2JDaxut#IwKe{@2O56WG&=V64cWwT|9{3pt zNxNte4Aw^e3e%}Rjp8rhi!?3OS1G{S{H2uQa4u&JpUtXZ0&BoKLbwzmPJoO@L=LNg zIZ8Zhr9T6?ub?{)X!! z4aX=wX|(#j#|g*Zbk`KYuCR1AK-+N*xLSl@Yu|1-k``zvG@%VN!b2DZ-gZ4;k#0T2 z(=Ps0Kbk!t- zqr*xuf^C3W=mT6{DW=F(9e&bSbjJ+*FQObT!wZYuID&V#*$-2(0ycv^d{RzBpz^b` zxyXT!P#>%4f4(E&YpNY_JR&Xc^h;CAdvZur!~Co6g%j)L#pq1)U{-W)a2FWIhT=_nujJ`R(rH>FLULC$nq{|dI@Rc^~dl$UxxehjG-FCTz6=rulw7@!PgKTwal^BGSw zaF25h{lq0EU*3j(v72tMp;+X{+A@3E!WY91_(_j6r>#$`VH(EqVXQ9uPD?OH98}hV z1D?lrv;~hbXXO_Gb51yH{|T4KpA0VC%)7sshil|^9%nE`+Jg3u-ux0Vnn1OftxHD6 zl#^aQ==0AAvv z_RMn_kFCA`RqnAaybrddzUmS5;7L+X$KB#y_;DlHANKrTm+Iv8(V$NB>^tn}@Jn|6LL_6o0OnsHZzN8EW{kF5wm2^fWT zQ~_xkPN&IjX%-}71eW7DxYOAmWej3>)t0<1b~5c#i}65^rMOGc;<)nBauN1{0ctjE zrID zs9LwMV{iDg%Rkr(59n))@$9f|crWka-Fl_+7_wl~*aeG4F21x(dT)D?*~s4k*(&D6 z`%pj87&$!wOLnww)aHRV+m;^ECY|$8}(I#rwBeXK)M+h75I!v^pif z??HJiA0@{y3-&zoMCMeZ7e!HhR(F^eeeQUJmdh8V@AOdn&u6_}%cK9`7QERx6uVIX zQxeTWz3oHk8h<7{^!;2Gu(o7Nx6lgTLu1yFmcc))HD$ALYHNN9emPhxh3Z56Q;Ahf zSVO~Uzo|auMlJ2vS}aQ~@O5P=3Zlw(CA$Db5k~=?)HRr9MxO#}bf!Ee@UmVq?k@q7p z*Ljm@NEvz^%V7KM{8RX7! z<#@Y0xJiW4sgyvWauS-kay<{_5PDSh2!N}Sc2fDHDh`Y4R#YLRLjFS^qhoXdYfrrjpfo3J_q7dlyr$CQbs zT8?f(pRq5gs)b<<&eS+WaM*Ps?R>jm!YU+O`_S)kmX-pg-rqBJUbZNM+%WNTB*s>FG{bLPHd&6G@wB{Y^j zRx8Jh3)>DOwASz7IptfTQqgrgKeX)#1%M>)y}^FpYm3Ui6ZC(o{!A%`dQeqeA=iz3Ddfa zC~%i2QGdQpPKdAIm!seE_7q2Enw|{8k5;$Gw^%bBOwtMZVA+a26YCB0)M&?T!de9T z9HtzWz-DQ#6zxzgufk|*>v>YtWk0c$¥h&+~D&FIO_zZd!!-IM-z->A~Eq0&jLG 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 J+y;=G{sZ-dG)w>h diff --git a/tests/test_io_stac.py b/tests/test_io_stac.py index ca24e2dc..2f1c6e9f 100644 --- a/tests/test_io_stac.py +++ b/tests/test_io_stac.py @@ -664,3 +664,16 @@ def raise_for_status(self): s3_get.assert_called_once() assert s3_get.call_args[1]["request_pays"] assert s3_get.call_args[0] == ("somewhereovertherainbow.io", "mystac.json") + + +@patch("rio_tiler.io.cogeo.rasterio") +def test_img_dataset_stats(rio): + """Make sure dataset statistics are forwarded.""" + rio.open = mock_rasterio_open + + with STACReader(STAC_PATH) as stac: + img = stac.preview(assets=("green", "red")) + assert img.dataset_statistics == [(6883, 62785), (6101, 65035)] + + img = stac.preview(expression="green_b1/red_b1") + assert img.dataset_statistics == [(6883 / 65035, 62785 / 6101)] diff --git a/tests/test_models.py b/tests/test_models.py index 3ba00ae0..2dd14c74 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -5,6 +5,7 @@ import numpy import pytest import rasterio +from rasterio.io import MemoryFile from rio_tiler.errors import InvalidDatatypeWarning from rio_tiler.models import ImageData @@ -135,3 +136,43 @@ def test_apply_expression(): assert img2.width == 256 assert img2.height == 256 assert img2.band_names == ["b1+b2"] + + +def test_dataset_statistics(): + """Make statistics are preserved on expression""" + data = numpy.zeros((2, 256, 256), dtype="uint8") + data[0, 0:10, 0:10] = 0 + data[0, 10:11, 10:11] = 100 + data[1, 0:10, 0:10] = 100 + data[1, 10:11, 10:11] = 200 + img = ImageData(data, dataset_statistics=[(0, 100), (0, 200)]) + + img2 = img.apply_expression("b1+b2") + assert img2.dataset_statistics == [(0, 300)] + + img2 = img.apply_expression("b1+b2;b1*b2;b1/b1") + assert img2.dataset_statistics == [(0, 300), (0, 20000), (0, 1)] + assert img2.data[0].min() == 0 + assert img2.data[0].max() == 300 + assert img2.data[1].min() == 0 + assert img2.data[1].max() == 20000 + assert img2.data[2].min() == 0 + assert img2.data[2].max() == 1 + + data = numpy.zeros((1, 256, 256), dtype="int16") + data[0, 0:10, 0:10] = 0 + data[0, 10:11, 10:11] = 1 + + img = ImageData(data, dataset_statistics=[(0, 1)]).render(img_format="PNG") + with MemoryFile(img) as mem: + with mem.open() as dst: + arr = dst.read(indexes=1) + assert arr.min() == 0 + assert arr.max() == 255 + + img = ImageData(data).render(img_format="PNG") + with MemoryFile(img) as mem: + with mem.open() as dst: + arr = dst.read(indexes=1) + assert not arr.min() == 0 + assert not arr.max() == 255 From dbbfb9ba843803e40919e9e70eb17cf269c23f9c Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Thu, 13 Oct 2022 23:45:59 +0200 Subject: [PATCH 16/23] rename `COGReader` to `Reader` and remove relative import (#534) * rename COGReader to Reader and remove relative import * rasterio * debug * merge from branch * add note for backwards compatibility of COGReader * remove individual options attributes (#535) * remove individual options attributes * add typeDict for options * allow empty options --- .github/workflows/ci.yml | 11 +- .github/workflows/deploy_mkdocs.yml | 2 +- CHANGES.md | 29 +++- CONTRIBUTING.md | 2 +- rio_tiler/colormap.py | 9 +- rio_tiler/constants.py | 2 +- rio_tiler/io/__init__.py | 5 +- rio_tiler/io/base.py | 12 +- rio_tiler/io/{cogeo.py => rasterio.py} | 138 +++++++----------- rio_tiler/io/stac.py | 14 +- rio_tiler/models.py | 8 +- rio_tiler/mosaic/methods/defaults.py | 2 +- rio_tiler/mosaic/reader.py | 16 +- rio_tiler/reader.py | 28 ++-- rio_tiler/tasks.py | 6 +- rio_tiler/utils.py | 10 +- tests/benchmarks/test_benchmarks.py | 4 +- tests/test_io_MultiBand.py | 4 +- .../{test_io_cogeo.py => test_io_rasterio.py} | 137 +++++++++-------- tests/test_io_stac.py | 18 +-- tests/test_mask.py | 6 +- tests/test_mosaic.py | 14 +- tests/test_utils.py | 10 +- 23 files changed, 249 insertions(+), 238 deletions(-) rename rio_tiler/io/{cogeo.py => rasterio.py} (83%) rename tests/{test_io_cogeo.py => test_io_rasterio.py} (90%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5938cbb2..05d2bfcb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,17 +28,16 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install pre-commit codecov - - - name: Install module - run: python -m pip install .["test"] + python -m pip install -e .["test"] - name: Run pre-commit if: ${{ matrix.python-version == env.LATEST_PY_VERSION }} - run: pre-commit run --all-files + run: | + python -m pip install pre-commit + pre-commit run --all-files - name: Run tests - run: python -m pytest --cov rio_tiler --cov-report xml --cov-report term-missing --benchmark-skip + run: python -m pytest --cov rio_tiler --cov-report xml --cov-report term-missing --benchmark-skip -s -vv - name: Upload Results if: ${{ matrix.python-version == env.LATEST_PY_VERSION }} diff --git a/.github/workflows/deploy_mkdocs.yml b/.github/workflows/deploy_mkdocs.yml index 97bdf800..81a01ebb 100644 --- a/.github/workflows/deploy_mkdocs.yml +++ b/.github/workflows/deploy_mkdocs.yml @@ -44,7 +44,7 @@ jobs: rio_tiler.expression \ rio_tiler.models \ rio_tiler.io.base \ - rio_tiler.io.cogeo \ + rio_tiler.io.rasterio \ rio_tiler.io.stac \ rio_tiler.mosaic.methods.base \ rio_tiler.mosaic.methods.defaults \ diff --git a/CHANGES.md b/CHANGES.md index 5117b457..5c2bdf9a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,9 +8,21 @@ * remove python 3.7 support * update rasterio requirement to `>=1.3` to allow python 3.10 support +* rename `rio_tiler.io.cogeo` to `rio_tiler.io.rasterio` +* rename `COGReader` to `Reader`. We added `rio_tiler.io.COGReader` alias to `rio_tiler.io.Reader` backwards compatibility + ```python + # before + from rio_tiler.io import COGReader + from rio_tiler.io.cogeo import COGReader + + # now + from rio_tiler.io import Reader + from rio_tiler.io.rasterio import Reader + ``` + * `rio_tiler.readers.read()`, `rio_tiler.readers.part()`, `rio_tiler.readers.preview()` now return a ImageData object * remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.SpatialMixin` base class -* remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.COGReader` (now defined as properties). +* remove `minzoom` and `maxzoom` attribute in `rio_tiler.io.Reader` (now defined as properties) * use `b` prefix for band names in `rio_tiler.models.ImageData` class (and in rio-tiler's readers) ```python # before @@ -29,7 +41,7 @@ >>> ["1", "2", "3"] # now - with COGReader("cog.tif") as cog: + with Reader("cog.tif") as cog: img = cog.read() print(img.band_names) >>> ["b1", "b2", "b3"] @@ -88,7 +100,7 @@ metadata={} ) - with COGReader("cog.tif") as cog: + with Reader("cog.tif") as cog: print(cog.point(10.20, -42.0)) >>> PointData( data=array([3744], dtype=uint16), @@ -105,6 +117,17 @@ * reordered keyword options in all `rio_tiler.reader` function for consistency * removed `AlphaBandWarning` warning when automatically excluding alpha band from data +* remove `nodata`, `unscale`, `resampling_method`, `vrt_options` and `post_process` options to `Reader` init method and replaced with `options` + ```python + # before + with COGReader("cog.tif", nodata=1, resampling_method="bilinear") as cog: + data = cog.preview() + + # now + with Reader(COGEO, options={"nodata": 1, "resampling_method": "bilinear"}) as cog: + data = cog.preview() + ``` + # 3.1.6 (2022-07-22) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 602de440..ffac0b0b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -56,7 +56,7 @@ pdocs as_markdown \ rio_tiler.expression \ rio_tiler.models \ rio_tiler.io.base \ - rio_tiler.io.cogeo \ + rio_tiler.io.rasterio \ rio_tiler.io.stac \ rio_tiler.mosaic.methods.base \ rio_tiler.mosaic.methods.defaults \ diff --git a/rio_tiler/colormap.py b/rio_tiler/colormap.py index 0d3900f6..4e6afc5e 100644 --- a/rio_tiler/colormap.py +++ b/rio_tiler/colormap.py @@ -8,13 +8,18 @@ import attr import numpy -from .errors import ( +from rio_tiler.errors import ( ColorMapAlreadyRegistered, InvalidColorFormat, InvalidColorMapName, InvalidFormat, ) -from .types import ColorMapType, DataMaskType, GDALColorMapType, IntervalColorMapType +from rio_tiler.types import ( + ColorMapType, + DataMaskType, + GDALColorMapType, + IntervalColorMapType, +) try: from importlib.resources import files as resources_files # type: ignore diff --git a/rio_tiler/constants.py b/rio_tiler/constants.py index 78cebc3e..e96430a9 100644 --- a/rio_tiler/constants.py +++ b/rio_tiler/constants.py @@ -6,7 +6,7 @@ import morecantile from rasterio.crs import CRS -from .types import BBox, ColorTuple, Indexes, NoData, NumType # noqa +from rio_tiler.types import BBox, ColorTuple, Indexes, NoData, NumType # noqa MAX_THREADS = int( os.environ.get("RIO_TILER_MAX_THREADS", multiprocessing.cpu_count() * 5) diff --git a/rio_tiler/io/__init__.py b/rio_tiler/io/__init__.py index af59b660..02ed733e 100644 --- a/rio_tiler/io/__init__.py +++ b/rio_tiler/io/__init__.py @@ -1,5 +1,8 @@ """rio-tiler.io""" from .base import BaseReader, MultiBandReader, MultiBaseReader # noqa -from .cogeo import COGReader # noqa +from .rasterio import Reader from .stac import STACReader # noqa + +# Keep Compatibility with <4.0 +COGReader = Reader diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index cdf28dab..1fbd4625 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -11,17 +11,17 @@ from rasterio.crs import CRS from rasterio.warp import transform_bounds -from ..constants import WEB_MERCATOR_TMS, WGS84_CRS -from ..errors import ( +from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS +from rio_tiler.errors import ( ExpressionMixingWarning, MissingAssets, MissingBands, TileOutsideBounds, ) -from ..models import BandStatistics, ImageData, Info, PointData -from ..tasks import multi_arrays, multi_points, multi_values -from ..types import BBox, Indexes -from ..utils import get_array_statistics +from rio_tiler.models import BandStatistics, ImageData, Info, PointData +from rio_tiler.tasks import multi_arrays, multi_points, multi_values +from rio_tiler.types import BBox, Indexes +from rio_tiler.utils import get_array_statistics def _AssetExpressionWarning(): diff --git a/rio_tiler/io/cogeo.py b/rio_tiler/io/rasterio.py similarity index 83% rename from rio_tiler/io/cogeo.py rename to rio_tiler/io/rasterio.py index ba04d2e1..29fa4161 100644 --- a/rio_tiler/io/cogeo.py +++ b/rio_tiler/io/rasterio.py @@ -1,64 +1,67 @@ -"""rio_tiler.io.cogeo: raster processing.""" +"""rio_tiler.io.rasterio: rio-tiler reader built on top Rasterio""" import contextlib import warnings -from typing import Any, Callable, Dict, List, Optional, Sequence, Union +from typing import Any, Dict, List, Optional, Sequence, Union import attr -import numpy import rasterio from morecantile import Tile, TileMatrixSet from rasterio import transform from rasterio.crs import CRS -from rasterio.enums import Resampling from rasterio.features import bounds as featureBounds from rasterio.io import DatasetReader, DatasetWriter, MemoryFile from rasterio.rio.overview import get_maximum_overview_level from rasterio.vrt import WarpedVRT from rasterio.warp import calculate_default_transform -from .. import reader -from ..constants import WEB_MERCATOR_TMS, WGS84_CRS -from ..errors import ExpressionMixingWarning, NoOverviewWarning, TileOutsideBounds -from ..expression import parse_expression -from ..models import BandStatistics, ImageData, Info, PointData -from ..types import BBox, DataMaskType, Indexes, NoData, NumType -from ..utils import create_cutline, get_array_statistics, has_alpha_band, has_mask_band -from .base import BaseReader +from rio_tiler import reader +from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS +from rio_tiler.errors import ( + ExpressionMixingWarning, + NoOverviewWarning, + TileOutsideBounds, +) +from rio_tiler.expression import parse_expression +from rio_tiler.io.base import BaseReader +from rio_tiler.models import BandStatistics, ImageData, Info, PointData +from rio_tiler.types import BBox, Indexes, NumType +from rio_tiler.utils import ( + create_cutline, + get_array_statistics, + has_alpha_band, + has_mask_band, +) @attr.s -class COGReader(BaseReader): - """Cloud Optimized GeoTIFF Reader. +class Reader(BaseReader): + """Rasterio Reader. Attributes: - input (str): Cloud Optimized GeoTIFF path. + input (str): dataset path. dataset (rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT, optional): Rasterio dataset. tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. geographic_crs (rasterio.crs.CRS, optional): CRS to use as geographic coordinate system. Defaults to WGS84. colormap (dict, optional): Overwrite internal colormap. - nodata (int or float or str, optional): Global options, overwrite internal nodata value. - unscale (bool, optional): Global options, apply internal scale and offset on all read operations. - resampling_method (rasterio.enums.Resampling, optional): Global options, resampling method to use for read operations. - vrt_options (dict, optional): Global options, WarpedVRT options to use for read operations. - post_process (callable, optional): Global options, Function to apply after all read operations. + options (dict, optional): Options to forward to low-level reader methods. Examples: - >>> with COGReader(src_path) as cog: - cog.tile(...) + >>> with Reader(src_path) as src: + src.tile(...) >>> # Set global options - with COGReader(src_path, unscale=True, nodata=0) as cog: - cog.tile(...) + with Reader(src_path, options={"unscale": True, "nodata": 0}) as src: + src.tile(...) >>> with rasterio.open(src_path) as src_dst: with WarpedVRT(src_dst, ...) as vrt_dst: - with COGReader(None, dataset=vrt_dst) as cog: - cog.tile(...) + with Reader(None, dataset=vrt_dst) as src: + src.tile(...) >>> with rasterio.open(src_path) as src_dst: - with COGReader(None, dataset=src_dst) as cog: - cog.tile(...) + with Reader(None, dataset=src_dst) as src: + src.tile(...) """ @@ -72,38 +75,19 @@ class COGReader(BaseReader): colormap: Dict = attr.ib(default=None) - # Define global options to be forwarded to functions reading the data (e.g `rio_tiler.reader.read`) - nodata: Optional[NoData] = attr.ib(default=None) - unscale: Optional[bool] = attr.ib(default=None) - resampling_method: Optional[Resampling] = attr.ib(default=None) - vrt_options: Optional[Dict] = attr.ib(default=None) - post_process: Optional[ - Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] - ] = attr.ib(default=None) - - # We use _kwargs to store values of nodata, unscale, vrt_options and resampling_method. - # _kwargs is used avoid having to set those values on each method call. - _kwargs: Dict[str, Any] = attr.ib(init=False, factory=dict) + options: reader.Options = attr.ib() # Context Manager to handle rasterio open/close _ctx_stack = attr.ib(init=False, factory=contextlib.ExitStack) - _minzoom: int = attr.ib(init=False, default=None) _maxzoom: int = attr.ib(init=False, default=None) + @options.default + def _options_default(self): + return {} + def __attrs_post_init__(self): """Define _kwargs, open dataset and get info.""" - if self.nodata is not None: - self._kwargs["nodata"] = self.nodata - if self.unscale is not None: - self._kwargs["unscale"] = self.unscale - if self.resampling_method is not None: - self._kwargs["resampling_method"] = self.resampling_method - if self.vrt_options is not None: - self._kwargs["vrt_options"] = self.vrt_options - if self.post_process is not None: - self._kwargs["post_process"] = self.post_process - if not self.dataset: dataset = self._ctx_stack.enter_context(rasterio.open(self.input)) if dataset.gcps[0]: @@ -120,8 +104,6 @@ def __attrs_post_init__(self): self.bounds = tuple(self.dataset.bounds) self.crs = self.dataset.crs - self.nodata = self.nodata if self.nodata is not None else self.dataset.nodata - if self.colormap is None: self._get_colormap() @@ -235,12 +217,12 @@ def _get_descr(ix): """Return band description.""" return self.dataset.descriptions[ix - 1] or "" - if has_alpha_band(self.dataset): + if self.options.get("nodata", self.dataset.nodata) is not None: + nodata_type = "Nodata" + elif has_alpha_band(self.dataset): nodata_type = "Alpha" elif has_mask_band(self.dataset): nodata_type = "Mask" - elif self.nodata is not None: - nodata_type = "Nodata" else: nodata_type = "None" @@ -275,7 +257,9 @@ def _get_descr(ix): meta.update({"colormap": self.colormap}) if nodata_type == "Nodata": - meta.update({"nodata_value": self.nodata}) + meta.update( + {"nodata_value": self.options.get("nodata", self.dataset.nodata)} + ) return Info(**meta) @@ -304,7 +288,7 @@ def statistics( Dict[str, rio_tiler.models.BandStatistics]: bands statistics. """ - kwargs = {**self._kwargs, **kwargs} + kwargs = {**self.options, **kwargs} data = self.read( max_size=max_size, indexes=indexes, expression=expression, **kwargs @@ -411,7 +395,7 @@ def part( rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. """ - kwargs = {**self._kwargs, **kwargs} + kwargs = {**self.options, **kwargs} if indexes and expression: warnings.warn( @@ -499,7 +483,7 @@ def point( PointData """ - kwargs = {**self._kwargs, **kwargs} + kwargs = {**self.options, **kwargs} if indexes and expression: warnings.warn( @@ -592,7 +576,7 @@ def read( rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. """ - kwargs = {**self._kwargs, **kwargs} + kwargs = {**self.options, **kwargs} if indexes and expression: warnings.warn( @@ -613,7 +597,7 @@ def read( @attr.s -class GCPCOGReader(COGReader): +class GCPCOGReader(Reader): """Custom COG Reader with GCPS support. Attributes: @@ -623,21 +607,17 @@ class GCPCOGReader(COGReader): minzoom (int, optional): Overwrite Min Zoom level. maxzoom (int, optional): Overwrite Max Zoom level. colormap (dict, optional): Overwrite internal colormap. - nodata (int or float or str, optional): Global options, overwrite internal nodata value. - unscale (bool, optional): Global options, apply internal scale and offset on all read operations. - resampling_method (rasterio.enums.Resampling, optional): Global options, resampling method to use for read operations. - vrt_options (dict, optional): Global options, WarpedVRT options to use for read operations. - post_process (callable, optional): Global options, Function to apply after all read operations. + options (dict, optional): Options to forward to low-level reader methods. dataset (rasterio.vrtWarpedVRT): Warped VRT constructed with dataset GCPS info. **READ ONLY attribute**. Examples: - >>> with COGReader(src_path) as cog: + >>> with GCPCOGReader(src_path) as cog: cog.tile(...) assert cog.dataset assert cog.src_dataset >>> with rasterio.open(src_path) as src_dst: - with COGReader(None, src_dataset=src_dst) as cog: + with GCPCOGReader(None, src_dataset=src_dst) as cog: cog.tile(...) """ @@ -648,29 +628,23 @@ class GCPCOGReader(COGReader): ) tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - minzoom: int = attr.ib(default=None) - maxzoom: int = attr.ib(default=None) - geographic_crs: CRS = attr.ib(default=WGS84_CRS) colormap: Dict = attr.ib(default=None) - # Define global options to be forwarded to functions reading the data (e.g `rio_tiler.reader.read`) - nodata: Optional[NoData] = attr.ib(default=None) - unscale: Optional[bool] = attr.ib(default=None) - resampling_method: Optional[Resampling] = attr.ib(default=None) - vrt_options: Optional[Dict] = attr.ib(default=None) - post_process: Optional[ - Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] - ] = attr.ib(default=None) + options: reader.Options = attr.ib() # for GCPCOGReader, dataset is not a input option. dataset: WarpedVRT = attr.ib(init=False) + @options.default + def _options_default(self): + return {} + def __attrs_post_init__(self): """Define _kwargs, open dataset and get info.""" warnings.warn( - "GCPCOGReader is deprecated and will be removed in 4.0. Please use COGReader.", + "GCPCOGReader is deprecated and will be removed in 4.0. Please use Reader.", DeprecationWarning, ) diff --git a/rio_tiler/io/stac.py b/rio_tiler/io/stac.py index dd52ca19..058dd611 100644 --- a/rio_tiler/io/stac.py +++ b/rio_tiler/io/stac.py @@ -12,11 +12,11 @@ from morecantile import TileMatrixSet from rasterio.crs import CRS -from ..constants import WEB_MERCATOR_TMS, WGS84_CRS -from ..errors import InvalidAssetName, MissingAssets -from ..utils import aws_get_object -from .base import BaseReader, MultiBaseReader -from .cogeo import COGReader +from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS +from rio_tiler.errors import InvalidAssetName, MissingAssets +from rio_tiler.io.base import BaseReader, MultiBaseReader +from rio_tiler.io.rasterio import Reader +from rio_tiler.utils import aws_get_object DEFAULT_VALID_TYPE = { "image/tiff; application=geotiff", @@ -138,7 +138,7 @@ class STACReader(MultiBaseReader): exclude_assets (set of string, optional): Exclude specific assets. include_asset_types (set of string, optional): Only include some assets base on their type. exclude_asset_types (set of string, optional): Exclude some assets base on their type. - reader (rio_tiler.io.BaseReader, optional): rio-tiler Reader. Defaults to `rio_tiler.io.COGReader`. + reader (rio_tiler.io.BaseReader, optional): rio-tiler Reader. Defaults to `rio_tiler.io.Reader`. reader_options (dict, optional): Additional option to forward to the Reader. Defaults to `{}`. fetch_options (dict, optional): Options to pass to `rio_tiler.io.stac.fetch` function fetching the STAC Items. Defaults to `{}`. @@ -176,7 +176,7 @@ class STACReader(MultiBaseReader): include_asset_types: Set[str] = attr.ib(default=DEFAULT_VALID_TYPE) exclude_asset_types: Optional[Set[str]] = attr.ib(default=None) - reader: Type[BaseReader] = attr.ib(default=COGReader) + reader: Type[BaseReader] = attr.ib(default=Reader) reader_options: Dict = attr.ib(factory=dict) fetch_options: Dict = attr.ib(factory=dict) diff --git a/rio_tiler/models.py b/rio_tiler/models.py index 55344d9b..1dd3ef79 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -17,10 +17,10 @@ from rio_color.operations import parse_operations from rio_color.utils import scale_dtype, to_math_type -from .errors import InvalidDatatypeWarning -from .expression import apply_expression, get_expression_blocks -from .types import ColorMapType, GDALColorMapType, IntervalTuple, NumType -from .utils import linear_rescale, render, resize_array +from rio_tiler.errors import InvalidDatatypeWarning +from rio_tiler.expression import apply_expression, get_expression_blocks +from rio_tiler.types import ColorMapType, GDALColorMapType, IntervalTuple, NumType +from rio_tiler.utils import linear_rescale, render, resize_array class NodataTypes(str, Enum): diff --git a/rio_tiler/mosaic/methods/defaults.py b/rio_tiler/mosaic/methods/defaults.py index ac460ebb..a1728cb1 100644 --- a/rio_tiler/mosaic/methods/defaults.py +++ b/rio_tiler/mosaic/methods/defaults.py @@ -2,7 +2,7 @@ import numpy -from .base import MosaicMethodBase +from rio_tiler.mosaic.methods.base import MosaicMethodBase class FirstMethod(MosaicMethodBase): diff --git a/rio_tiler/mosaic/reader.py b/rio_tiler/mosaic/reader.py index 3b94f2ae..a8e2abbf 100644 --- a/rio_tiler/mosaic/reader.py +++ b/rio_tiler/mosaic/reader.py @@ -5,14 +5,14 @@ from rasterio.crs import CRS -from ..constants import MAX_THREADS -from ..errors import EmptyMosaicError, InvalidMosaicMethod, TileOutsideBounds -from ..models import ImageData -from ..tasks import create_tasks, filter_tasks -from ..types import BBox -from ..utils import _chunks -from .methods.base import MosaicMethodBase -from .methods.defaults import FirstMethod +from rio_tiler.constants import MAX_THREADS +from rio_tiler.errors import EmptyMosaicError, InvalidMosaicMethod, TileOutsideBounds +from rio_tiler.models import ImageData +from rio_tiler.mosaic.methods.base import MosaicMethodBase +from rio_tiler.mosaic.methods.defaults import FirstMethod +from rio_tiler.tasks import create_tasks, filter_tasks +from rio_tiler.types import BBox +from rio_tiler.utils import _chunks def mosaic_reader( diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index 4b7b7ecd..cb83e153 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -3,7 +3,7 @@ import contextlib import math import warnings -from typing import Callable, Dict, Optional, Tuple, Union +from typing import Callable, Dict, Optional, Tuple, TypedDict, Union import numpy from affine import Affine @@ -15,12 +15,22 @@ from rasterio.warp import transform as transform_coords from rasterio.warp import transform_bounds -from .constants import WGS84_CRS -from .errors import InvalidBufferSize, PointOutsideBounds, TileOutsideBounds -from .models import ImageData, PointData -from .types import BBox, DataMaskType, Indexes, NoData -from .utils import _requested_tile_aligned_with_internal_tile as is_aligned -from .utils import get_vrt_transform, has_alpha_band, non_alpha_indexes +from rio_tiler.constants import WGS84_CRS +from rio_tiler.errors import InvalidBufferSize, PointOutsideBounds, TileOutsideBounds +from rio_tiler.models import ImageData, PointData +from rio_tiler.types import BBox, DataMaskType, Indexes, NoData +from rio_tiler.utils import _requested_tile_aligned_with_internal_tile as is_aligned +from rio_tiler.utils import get_vrt_transform, has_alpha_band, non_alpha_indexes + + +class Options(TypedDict, total=False): + """Reader Options.""" + + nodata: Optional[NoData] + vrt_options: Optional[Dict] + resampling_method: Optional[Resampling] + unscale: Optional[bool] + post_process: Optional[Callable[[numpy.ndarray, numpy.ndarray], DataMaskType]] def _get_width_height(max_size, dataset_height, dataset_width) -> Tuple[int, int]: @@ -72,10 +82,10 @@ def read( max_size: Optional[int] = None, indexes: Optional[Indexes] = None, window: Optional[windows.Window] = None, + force_binary_mask: bool = True, nodata: Optional[NoData] = None, vrt_options: Optional[Dict] = None, resampling_method: Resampling = "nearest", - force_binary_mask: bool = True, unscale: bool = False, post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] @@ -241,10 +251,10 @@ def part( minimum_overlap: Optional[float] = None, padding: Optional[int] = None, buffer: Optional[float] = None, + force_binary_mask: bool = True, nodata: Optional[NoData] = None, vrt_options: Optional[Dict] = None, resampling_method: Resampling = "nearest", - force_binary_mask: bool = True, unscale: bool = False, post_process: Optional[ Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] diff --git a/rio_tiler/tasks.py b/rio_tiler/tasks.py index da7ca38b..e8484f76 100644 --- a/rio_tiler/tasks.py +++ b/rio_tiler/tasks.py @@ -4,9 +4,9 @@ from functools import partial from typing import Any, Callable, Dict, Generator, Optional, Sequence, Tuple, Union -from .constants import MAX_THREADS -from .logger import logger -from .models import ImageData, PointData +from rio_tiler.constants import MAX_THREADS +from rio_tiler.logger import logger +from rio_tiler.models import ImageData, PointData TaskType = Sequence[Tuple[Union[futures.Future, Callable], Any]] diff --git a/rio_tiler/utils.py b/rio_tiler/utils.py index e68b38c5..c2244417 100644 --- a/rio_tiler/utils.py +++ b/rio_tiler/utils.py @@ -20,11 +20,11 @@ from rasterio.vrt import WarpedVRT from rasterio.warp import calculate_default_transform, transform_geom -from .colormap import apply_cmap -from .constants import WEB_MERCATOR_CRS -from .errors import RioTilerError -from .expression import get_expression_blocks -from .types import BBox, ColorMapType, IntervalTuple +from rio_tiler.colormap import apply_cmap +from rio_tiler.constants import WEB_MERCATOR_CRS +from rio_tiler.errors import RioTilerError +from rio_tiler.expression import get_expression_blocks +from rio_tiler.types import BBox, ColorMapType, IntervalTuple def _chunks(my_list: Sequence, chuck_size: int) -> Generator[Sequence, None, None]: diff --git a/tests/benchmarks/test_benchmarks.py b/tests/benchmarks/test_benchmarks.py index 2e15e9b2..bcddfbd9 100644 --- a/tests/benchmarks/test_benchmarks.py +++ b/tests/benchmarks/test_benchmarks.py @@ -5,7 +5,7 @@ import pytest import rasterio -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from . import benchmark_dataset, benchmark_tiles @@ -16,7 +16,7 @@ def read_tile(src_path, tile): """Benchmark rio-tiler.utils._tile_read.""" # We make sure to not store things in cache. with rasterio.Env(GDAL_CACHEMAX=0, NUM_THREADS="all"): - with COGReader(src_path) as cog: + with Reader(src_path) as cog: return cog.tile(*tile) diff --git a/tests/test_io_MultiBand.py b/tests/test_io_MultiBand.py index 4cae44b9..16a159bc 100644 --- a/tests/test_io_MultiBand.py +++ b/tests/test_io_MultiBand.py @@ -10,7 +10,7 @@ from rio_tiler.constants import WEB_MERCATOR_TMS from rio_tiler.errors import ExpressionMixingWarning, MissingBands -from rio_tiler.io import BaseReader, COGReader, MultiBandReader +from rio_tiler.io import BaseReader, MultiBandReader, Reader from rio_tiler.models import BandStatistics PREFIX = os.path.join(os.path.dirname(__file__), "fixtures") @@ -23,7 +23,7 @@ class BandFileReader(MultiBandReader): input: str = attr.ib() tms: morecantile.TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) - reader: Type[BaseReader] = attr.ib(init=False, default=COGReader) + reader: Type[BaseReader] = attr.ib(init=False, default=Reader) reader_options: Dict = attr.ib(factory=dict) minzoom: int = attr.ib() diff --git a/tests/test_io_cogeo.py b/tests/test_io_rasterio.py similarity index 90% rename from tests/test_io_cogeo.py rename to tests/test_io_rasterio.py index c256b175..f34a0acc 100644 --- a/tests/test_io_cogeo.py +++ b/tests/test_io_rasterio.py @@ -1,4 +1,4 @@ -"""tests rio_tiler.io.cogeo.COGReader""" +"""tests rio_tiler.io.rasterio.Reader""" import os import warnings @@ -24,7 +24,7 @@ NoOverviewWarning, TileOutsideBounds, ) -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import BandStatistics PREFIX = os.path.join(os.path.dirname(__file__), "fixtures") @@ -54,16 +54,15 @@ def test_spatial_info_valid(): """Should work as expected (get spatial info)""" - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: assert not cog.dataset.closed assert cog.bounds assert cog.crs assert cog.minzoom == 5 assert cog.maxzoom == 9 - assert cog.nodata == cog.dataset.nodata assert cog.dataset.closed - cog = COGReader(COG_NODATA) + cog = Reader(COG_NODATA) assert not cog.dataset.closed cog.close() assert cog.dataset.closed @@ -71,13 +70,13 @@ def test_spatial_info_valid(): def test_bounds_valid(): """Should work as expected (get bounds)""" - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: assert len(cog.bounds) == 4 def test_info_valid(): """Should work as expected (get file info)""" - with COGReader(COG_SCALE) as cog: + with Reader(COG_SCALE) as cog: meta = cog.info() assert meta["scale"] assert meta.scale @@ -89,19 +88,19 @@ def test_info_valid(): assert meta.overviews assert meta.driver - with COGReader(COG_CMAP) as cog: + with Reader(COG_CMAP) as cog: assert cog.colormap meta = cog.info() assert meta["colormap"] assert meta.colormap - with COGReader(COG_NODATA, colormap={1: (0, 0, 0, 0)}) as cog: + with Reader(COG_NODATA, colormap={1: (0, 0, 0, 0)}) as cog: assert cog.colormap meta = cog.info() assert meta.colormap assert meta.nodata_value - with COGReader(COG_TAGS) as cog: + with Reader(COG_TAGS) as cog: meta = cog.info() assert meta.bounds assert meta.minzoom @@ -117,26 +116,26 @@ def test_info_valid(): assert band_meta[0] == "b1" assert "STATISTICS_MAXIMUM" in band_meta[1] - with COGReader(COG_ALPHA) as cog: + with Reader(COG_ALPHA) as cog: meta = cog.info() assert meta.nodata_type == "Alpha" - with COGReader(COG_MASK) as cog: + with Reader(COG_MASK) as cog: meta = cog.info() assert meta.nodata_type == "Mask" - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: meta = cog.info() assert meta.nodata_type == "None" - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: meta = cog.info() assert meta.nodata_type == "Nodata" def test_tile_valid_default(): """Should return a 3 bands array and a full valid mask.""" - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: # Full tile img = cog.tile(43, 24, 7) assert img.data.shape == (1, 256, 256) @@ -185,7 +184,7 @@ def test_tile_valid_default(): assert img.band_names == ["b1", "b1"] # We are using a file that is aligned with the grid so no resampling should be involved - with COGReader(COG_WEB) as cog: + with Reader(COG_WEB) as cog: img = cog.tile(147, 182, 9) img_buffer = cog.tile(147, 182, 9, buffer=10) assert img_buffer.width == 276 @@ -197,30 +196,30 @@ def test_tile_valid_default(): def test_tile_invalid_bounds(): """Should raise an error with invalid tile.""" with pytest.raises(TileOutsideBounds): - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: cog.tile(38, 24, 7) def test_tile_with_incorrect_float_buffer(): with pytest.raises(InvalidBufferSize): - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: cog.tile(43, 24, 7, buffer=0.8) def test_tile_with_int_buffer(): - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: data, mask = cog.tile(43, 24, 7, buffer=1) assert data.shape == (1, 258, 258) assert mask.all() - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: data, mask = cog.tile(43, 24, 7, buffer=0) assert data.shape == (1, 256, 256) assert mask.all() def test_tile_with_correct_float_buffer(): - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: data, mask = cog.tile(43, 24, 7, buffer=0.5) assert data.shape == (1, 257, 257) assert mask.all() @@ -230,7 +229,7 @@ def test_point_valid(): """Read point.""" lon = -56.624124590533825 lat = 73.52687881825946 - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: pt = cog.point(lon, lat) assert len(pt.data) == 1 assert pt.band_names == ["b1"] @@ -268,7 +267,7 @@ def test_area_valid(): -56.530950796449005, 73.52687881825946, ) - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: img = cog.part(bbox) assert img.data.shape == (1, 11, 40) assert img.band_names == ["b1"] @@ -304,7 +303,7 @@ def test_area_valid(): def test_preview_valid(): """Read preview.""" - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: img = cog.preview(max_size=128) assert img.data.shape == (1, 128, 128) assert img.band_names == ["b1"] @@ -337,22 +336,22 @@ def test_preview_valid(): def test_statistics(): """tests statistics method.""" - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: stats = cog.statistics() assert len(stats) == 1 assert isinstance(stats["b1"], BandStatistics) assert stats["b1"].percentile_2 assert stats["b1"].percentile_98 - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: stats = cog.statistics(percentiles=[3]) assert stats["b1"].percentile_3 - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: stats = cog.statistics(percentiles=[3]) assert stats["b1"].percentile_3 - with COGReader(COG_CMAP) as cog: + with Reader(COG_CMAP) as cog: stats = cog.statistics(categorical=True) assert stats["b1"].histogram[1] == [ 1.0, @@ -375,41 +374,41 @@ def test_statistics(): ] # make sure kwargs are passed to `preview` - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: stats = cog.statistics(width=100, height=100, max_size=None) assert stats["b1"].count == 10000.0 # Check results for expression - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: stats = cog.statistics(expression="b1;b1*2") assert stats["b1"] assert stats["b1*2"] assert stats["b1"].min == stats["b1*2"].min / 2 -def test_COGReader_Options(): +def test_Reader_Options(): """Set options in reader.""" - with COGReader(COGEO, nodata=1) as cog: - assert cog.nodata == 1 + with Reader(COGEO, options={"nodata": 1}) as cog: + assert cog.info().nodata_value == 1 + assert cog.info().nodata_type == "Nodata" - with COGReader(COGEO) as cog: - assert not cog.nodata + with Reader(COGEO) as cog: assert cog.info().nodata_type == "None" - with COGReader(COGEO, nodata=1) as cog: + with Reader(COGEO, options={"nodata": 1}) as cog: _, mask = cog.tile(43, 25, 7) assert not mask.all() # read cog using default Nearest - with COGReader(COGEO, nodata=1) as cog: + with Reader(COGEO, options={"nodata": 1}) as cog: data_default, _ = cog.tile(43, 25, 7) # read cog using bilinear - with COGReader(COGEO, nodata=1, resampling_method="bilinear") as cog: + with Reader(COGEO, options={"nodata": 1, "resampling_method": "bilinear"}) as cog: data, _ = cog.tile(43, 25, 7) assert not numpy.array_equal(data_default, data) - with COGReader(COG_SCALE, unscale=True) as cog: + with Reader(COG_SCALE, options={"unscale": True}) as cog: p = cog.point(310000, 4100000, coord_crs=cog.dataset.crs) assert round(float(p.data[0]), 3) == 1000.892 @@ -418,7 +417,7 @@ def test_COGReader_Options(): assert p.data[0] == 8917 cutline = "POLYGON ((13 1685, 1010 6, 2650 967, 1630 2655, 13 1685))" - with COGReader(COGEO, vrt_options={"cutline": cutline}) as cog: + with Reader(COGEO, options={"vrt_options": {"cutline": cutline}}) as cog: _, mask = cog.preview() assert not mask.all() @@ -427,7 +426,7 @@ def callback(data, mask): data = data * 2 return data, mask - with COGReader(COGEO, nodata=1, post_process=callback) as cog: + with Reader(COGEO, options={"nodata": 1, "post_process": callback}) as cog: data_init, _ = cog.tile(43, 25, 7, post_process=None) data, mask = cog.tile(43, 25, 7) assert mask.all() @@ -435,19 +434,19 @@ def callback(data, mask): lon = -56.624124590533825 lat = 73.52687881825946 - with COGReader(COG_NODATA, post_process=callback) as cog: + with Reader(COG_NODATA, options={"post_process": callback}) as cog: pt = cog.point(lon, lat) - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: pt_init = cog.point(lon, lat) assert pt.data[0] == pt_init.data[0] * 2 def test_cog_with_internal_gcps(): """Make sure file gets re-projected using gcps.""" - with COGReader(COG_GCPS, nodata=0) as cog: + with Reader(COG_GCPS, options={"nodata": 0}) as cog: assert cog.bounds - assert cog.nodata == 0 + assert cog.info().nodata_value == 0 assert isinstance(cog.dataset, WarpedVRT) assert cog.minzoom == 7 @@ -473,9 +472,9 @@ def test_cog_with_internal_gcps(): src_crs=dst.gcps[1], src_transform=transform.from_gcps(dst.gcps[0]), ) as vrt: - with COGReader(None, dataset=vrt, nodata=0) as cog: + with Reader(None, dataset=vrt, options={"nodata": 0}) as cog: assert cog.bounds - assert cog.nodata == 0 + assert cog.info().nodata_value == 0 assert isinstance(cog.dataset, WarpedVRT) assert cog.minzoom == 7 @@ -508,7 +507,7 @@ def parse_img(content: bytes) -> Dict[Any, Any]: def test_imageData_output(): """Test ImageData output.""" - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: img = cog.tile(43, 24, 7) assert img.data.shape == (1, 256, 256) assert img.mask.all() @@ -612,7 +611,7 @@ def test_feature_valid(): }, } - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: img = cog.feature(feature, max_size=1024) assert img.data.shape == (1, 348, 1024) assert img.band_names == ["b1"] @@ -693,12 +692,12 @@ def test_feature_valid(): def test_tiling_ignores_padding_if_web_friendly_internal_tiles_exist(): """Ignore Padding when COG is aligned.""" - with COGReader(COG_WEB) as cog: + with Reader(COG_WEB) as cog: img = cog.tile(147, 182, 9, padding=0, resampling_method="bilinear") img2 = cog.tile(147, 182, 9, padding=100, resampling_method="bilinear") assert numpy.array_equal(img.data, img2.data) - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: img = cog.tile(43, 24, 7, padding=0, resampling_method="bilinear") img2 = cog.tile(43, 24, 7, padding=100, resampling_method="bilinear") assert not numpy.array_equal(img.data, img2.data) @@ -707,7 +706,7 @@ def test_tiling_ignores_padding_if_web_friendly_internal_tiles_exist(): def test_tile_read_alpha(): """Read masked area.""" # non-boundless tile covering the alpha masked part - with COGReader(COG_ALPHA) as cog: + with Reader(COG_ALPHA) as cog: nb = cog.dataset.count img = cog.tile(876432, 1603670, 22) assert ( @@ -721,7 +720,7 @@ def test_tile_read_mask(): """Read masked area.""" with rasterio.Env(GDAL_DISABLE_READDIR_ON_OPEN="EMPTY_DIR"): # non-boundless tile covering the masked part - with COGReader(COG_MASK) as cog: + with Reader(COG_MASK) as cog: img = cog.tile(876431, 1603669, 22, tilesize=16) assert img.data.shape == (3, 16, 16) assert img.mask.shape == (16, 16) @@ -737,7 +736,7 @@ def test_tile_read_extmask(): """Read masked area.""" # non-boundless tile covering the masked part with rasterio.Env(GDAL_DISABLE_READDIR_ON_OPEN="TRUE"): - with COGReader(COG_EXTMASK) as cog: + with Reader(COG_EXTMASK) as cog: img = cog.tile(876431, 1603669, 22) assert img.data.shape == (3, 256, 256) assert img.mask.shape == (256, 256) @@ -746,7 +745,7 @@ def test_tile_read_extmask(): def test_dateline(): """Read tile from data crossing the antimeridian.""" - with COGReader(COG_DLINE) as cog: + with Reader(COG_DLINE) as cog: img = cog.tile(0, 84, 8, tilesize=64) assert img.data.shape == (1, 64, 64) @@ -756,23 +755,21 @@ def test_dateline(): def test_fullEarth(): """Should read tile for COG spanning the whole earth.""" - with COGReader(COG_EARTH) as cog: + with Reader(COG_EARTH) as cog: img = cog.tile(1, 42, 7, tilesize=64) assert img.data.shape == (1, 64, 64) img = cog.tile(127, 42, 7, tilesize=64) assert img.data.shape == (1, 64, 64) - with COGReader( - COG_EARTH, tms=morecantile.tms.get("EuropeanETRS89_LAEAQuad") - ) as cog: + with Reader(COG_EARTH, tms=morecantile.tms.get("EuropeanETRS89_LAEAQuad")) as cog: img = cog.tile(0, 0, 1, tilesize=64) assert img.data.shape == (1, 64, 64) def test_read(): """Should read the entire dataset.""" - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: img = cog.read() assert numpy.array_equal(img.data, cog.dataset.read(indexes=(1,))) assert img.width == cog.dataset.width @@ -798,22 +795,22 @@ def test_read(): def test_no_overviews(): """Should warns when no overviews are found.""" with pytest.warns(NoOverviewWarning): - with COGReader(GEOTIFF): + with Reader(GEOTIFF): pass def test_nonearthbody(): - """COGReader should work with non-earth dataset.""" + """Reader should work with non-earth dataset.""" EUROPA_SPHERE = CRS.from_proj4("+proj=longlat +R=1560800 +no_defs") with pytest.warns(UserWarning): - with COGReader(COG_EUROPA) as cog: + with Reader(COG_EUROPA) as cog: assert cog.minzoom == 0 assert cog.maxzoom == 24 # Warns because of zoom level in WebMercator can't be defined with pytest.warns(UserWarning) as warnings: - with COGReader(COG_EUROPA, geographic_crs=EUROPA_SPHERE) as cog: + with Reader(COG_EUROPA, geographic_crs=EUROPA_SPHERE) as cog: assert cog.info() assert len(warnings) == 2 @@ -841,7 +838,7 @@ def test_nonearthbody(): matrix_scale=[2, 1], ) - with COGReader(COG_EUROPA, tms=tms, geographic_crs=EUROPA_SPHERE) as cog: + with Reader(COG_EUROPA, tms=tms, geographic_crs=EUROPA_SPHERE) as cog: assert cog.info() assert cog.minzoom == 4 assert cog.maxzoom == 6 @@ -877,7 +874,7 @@ def test_nonearth_custom(): ) @attr.s - class MarsReader(COGReader): + class MarsReader(Reader): """Use custom geographic CRS.""" geographic_crs: rasterio.crs.CRS = attr.ib( @@ -890,7 +887,7 @@ class MarsReader(COGReader): assert cog.geographic_bounds[0] > -180 with warnings.catch_warnings(): - with COGReader( + with Reader( COG_MARS, tms=mars_tms, geographic_crs=rasterio.crs.CRS.from_proj4( @@ -902,7 +899,7 @@ class MarsReader(COGReader): def test_tms_tilesize_and_zoom(): """Test the influence of tms tilesize on COG zoom levels.""" - with COGReader(COG_NODATA) as cog: + with Reader(COG_NODATA) as cog: assert cog.minzoom == 5 assert cog.maxzoom == 9 @@ -913,7 +910,7 @@ def test_tms_tilesize_and_zoom(): tile_width=64, tile_height=64, ) - with COGReader(COG_NODATA, tms=tms_128) as cog: + with Reader(COG_NODATA, tms=tms_128) as cog: assert cog.minzoom == 5 assert cog.maxzoom == 11 @@ -924,6 +921,6 @@ def test_tms_tilesize_and_zoom(): tile_width=2048, tile_height=2048, ) - with COGReader(COG_NODATA, tms=tms_2048) as cog: + with Reader(COG_NODATA, tms=tms_2048) as cog: assert cog.minzoom == 5 assert cog.maxzoom == 6 diff --git a/tests/test_io_stac.py b/tests/test_io_stac.py index 2f1c6e9f..247dfbb7 100644 --- a/tests/test_io_stac.py +++ b/tests/test_io_stac.py @@ -120,7 +120,7 @@ def raise_for_status(self): assert s3_get.call_args[0] == ("somewhereovertherainbow.io", "mystac.json") -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_tile_valid(rio): """Should raise or return tiles.""" rio.open = mock_rasterio_open @@ -208,7 +208,7 @@ def test_tile_valid(rio): ) -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_part_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -272,7 +272,7 @@ def test_part_valid(rio): assert img.band_names == ["green_b1*2", "green_b1", "red_b1*2"] -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_preview_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -329,7 +329,7 @@ def test_preview_valid(rio): assert img.band_names == ["green_b1*2", "green_b1", "red_b1*2"] -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_point_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -387,7 +387,7 @@ def test_point_valid(rio): assert pt.band_names == ["green_b1*2", "green_b1", "red_b1*2"] -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_statistics_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -433,7 +433,7 @@ def test_statistics_valid(rio): assert isinstance(stats["red"]["b1"], BandStatistics) -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_merged_statistics_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -472,7 +472,7 @@ def test_merged_statistics_valid(rio): assert isinstance(stats["red_b1"], BandStatistics) -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_info_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -519,7 +519,7 @@ def test_parse_expression(): ) == ["blue", "red"] -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_feature_valid(rio): """Should raise or return data.""" rio.open = mock_rasterio_open @@ -666,7 +666,7 @@ def raise_for_status(self): assert s3_get.call_args[0] == ("somewhereovertherainbow.io", "mystac.json") -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_img_dataset_stats(rio): """Make sure dataset statistics are forwarded.""" rio.open = mock_rasterio_open diff --git a/tests/test_mask.py b/tests/test_mask.py index aff0f882..8a6e4d96 100644 --- a/tests/test_mask.py +++ b/tests/test_mask.py @@ -8,7 +8,7 @@ from rasterio.coords import BoundingBox from rasterio.crs import CRS -from rio_tiler.io import COGReader +from rio_tiler.io import Reader tiles = { "masked": morecantile.Tile(x=535, y=498, z=10), @@ -43,7 +43,7 @@ def test_mask_bilinear(cloudoptimized_geotiff): src_path = cloudoptimized_geotiff( cog_path, **equator, dtype="uint8", nodata_type="alpha" ) - with COGReader(src_path) as cog: + with Reader(src_path) as cog: data, mask = cog.preview( resampling_method="bilinear", force_binary_mask=True, @@ -70,7 +70,7 @@ def test_mask(dataset_info, tile_name, resampling, cloudoptimized_geotiff): src_path = cloudoptimized_geotiff(cog_path, **dataset_info) tile = tiles[tile_name] - with COGReader(src_path) as cog: + with Reader(src_path) as cog: data, mask = cog.tile( tile.x, tile.y, diff --git a/tests/test_mosaic.py b/tests/test_mosaic.py index 8dddf360..8d5a3178 100644 --- a/tests/test_mosaic.py +++ b/tests/test_mosaic.py @@ -11,7 +11,7 @@ from rio_tiler import mosaic from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS from rio_tiler.errors import EmptyMosaicError, InvalidMosaicMethod, TileOutsideBounds -from rio_tiler.io import COGReader, STACReader +from rio_tiler.io import Reader, STACReader from rio_tiler.models import ImageData from rio_tiler.mosaic.methods import defaults from rio_tiler.types import DataMaskType @@ -41,19 +41,19 @@ def _read_tile(src_path: str, *args, **kwargs) -> ImageData: """Read tile from an asset""" - with COGReader(src_path) as cog: + with Reader(src_path) as cog: return cog.tile(*args, **kwargs) def _read_part(src_path: str, *args, **kwargs) -> ImageData: """Read part from an asset""" - with COGReader(src_path) as cog: + with Reader(src_path) as cog: return cog.part(*args, **kwargs) def _read_preview(src_path: str, *args, **kwargs) -> DataMaskType: """Read preview from an asset""" - with COGReader(src_path) as cog: + with Reader(src_path) as cog: data, mask = cog.preview(*args, **kwargs) return data, mask @@ -249,7 +249,7 @@ def mock_rasterio_open(asset): return rasterio.open(asset) -@patch("rio_tiler.io.cogeo.rasterio") +@patch("rio_tiler.io.rasterio.rasterio") def test_stac_mosaic_tiler(rio): """Test mosaic tiler with STACReader.""" rio.open = mock_rasterio_open @@ -428,10 +428,10 @@ def test_mosaic_tiler_with_imageDataClass(): assert not img.bounds bbox = [-75.98703377413767, 44.93504283293786, -71.337604723999, 47.09685599202324] - with COGReader(assets[0]) as cog: + with Reader(assets[0]) as cog: crs1 = cog.dataset.crs - with COGReader(assets[0]) as cog: + with Reader(assets[0]) as cog: crs2 = cog.dataset.crs img, assets_used = mosaic.mosaic_reader( diff --git a/tests/test_utils.py b/tests/test_utils.py index d33b8baf..d125a900 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -13,7 +13,7 @@ from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS from rio_tiler.errors import RioTilerError from rio_tiler.expression import parse_expression -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from .conftest import requires_webp @@ -281,7 +281,7 @@ def test_cutline(): feature_bounds = featureBounds(feat) - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: cutline = utils.create_cutline(cog.dataset, feat, geometry_crs="epsg:4326") data, mask = cog.part(feature_bounds, vrt_options={"cutline": cutline}) assert not mask.all() @@ -306,7 +306,7 @@ def test_cutline(): }, } - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: with pytest.raises(RioTilerError): utils.create_cutline(cog.dataset, feat_line, geometry_crs="epsg:4326") @@ -334,7 +334,7 @@ def test_cutline(): ], } - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: c = utils.create_cutline(cog.dataset, feat_mp, geometry_crs="epsg:4326") assert "MULTIPOLYGON" in c @@ -353,7 +353,7 @@ def test_cutline(): ], } - with COGReader(COGEO) as cog: + with Reader(COGEO) as cog: with pytest.raises(RioTilerError): utils.create_cutline(cog.dataset, bad_poly, geometry_crs="epsg:4326") From 6dc730f7c3257d02ccfe3951d6c3a5d70c2f94d8 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Tue, 18 Oct 2022 15:16:26 +0200 Subject: [PATCH 17/23] make sure to not change the input array --- rio_tiler/models.py | 28 ++++++++++++++++++++-------- rio_tiler/utils.py | 30 ++++++++++++++---------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/rio_tiler/models.py b/rio_tiler/models.py index 1dd3ef79..4fe5a718 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -395,13 +395,23 @@ def rescale( out_dtype: Union[str, numpy.number] = "uint8", ): """Rescale data in place.""" - self.data = rescale_image(self.data, self.mask, in_range, out_range, out_dtype) + self.data = rescale_image( + self.data.copy(), + self.mask, + in_range=in_range, + out_range=out_range, + out_dtype=out_dtype, + ) def apply_color_formula(self, color_formula: Optional[str]): """Apply rio-color formula in place.""" - self.data[self.data < 0] = 0 + out = self.data.copy() + out[out < 0] = 0 + for ops in parse_operations(color_formula): - self.data = scale_dtype(ops(to_math_type(self.data)), numpy.uint8) + out = scale_dtype(ops(to_math_type(out)), numpy.uint8) + + self.data = out def apply_expression(self, expression: str) -> "ImageData": """Apply expression to the image data.""" @@ -417,7 +427,7 @@ def apply_expression(self, expression: str) -> "ImageData": return ImageData( apply_expression(blocks, self.band_names, self.data), - self.mask, + self.mask.copy(), assets=self.assets, crs=self.crs, bounds=self.bounds, @@ -498,6 +508,8 @@ def render( kwargs.update({"crs": self.crs}) data = self.data.copy() + mask = self.mask.copy() + datatype_range = self.dataset_statistics or (dtype_ranges[str(data.dtype)],) if not colormap: @@ -506,14 +518,14 @@ def render( f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds.", InvalidDatatypeWarning, ) - data = rescale_image(data, self.mask, in_range=datatype_range) + data = rescale_image(data, mask, in_range=datatype_range) elif img_format in ["JPEG", "WEBP"] and data.dtype not in ["uint8"]: warnings.warn( f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds.", InvalidDatatypeWarning, ) - data = rescale_image(data, self.mask, in_range=datatype_range) + data = rescale_image(data, mask, in_range=datatype_range) elif img_format in ["JP2OPENJPEG"] and data.dtype not in [ "uint8", @@ -524,11 +536,11 @@ def render( f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds.", InvalidDatatypeWarning, ) - data = rescale_image(data, self.mask, in_range=datatype_range) + data = rescale_image(data, mask, in_range=datatype_range) if add_mask: return render( - data, self.mask, img_format=img_format, colormap=colormap, **kwargs + data, mask, img_format=img_format, colormap=colormap, **kwargs ) return render(data, img_format=img_format, colormap=colormap, **kwargs) diff --git a/rio_tiler/utils.py b/rio_tiler/utils.py index c2244417..2237036a 100644 --- a/rio_tiler/utils.py +++ b/rio_tiler/utils.py @@ -376,9 +376,9 @@ def linear_rescale( """ imin, imax = in_range omin, omax = out_range - image = numpy.clip(image, imin, imax) - imin - image = image / numpy.float64(imax - imin) - return image * (omax - omin) + omin + im = numpy.clip(image, imin, imax) - imin + im = im / numpy.float64(imax - imin) + return im * (omax - omin) + omin def _requested_tile_aligned_with_internal_tile( @@ -461,22 +461,20 @@ def render( elif img_format == "NPY": # If mask is not None we add it as the last band if mask is not None: - mask = numpy.expand_dims(mask, axis=0) - data = numpy.concatenate((data, mask)) + m = numpy.expand_dims(mask, axis=0) + data = numpy.concatenate((data, m)) - bio = BytesIO() - numpy.save(bio, data) - bio.seek(0) - return bio.getvalue() + with BytesIO() as bio: + numpy.save(bio, data) + return bio.getvalue() elif img_format == "NPZ": - bio = BytesIO() - if mask is not None: - numpy.savez_compressed(bio, data=data, mask=mask) - else: - numpy.savez_compressed(bio, data=data) - bio.seek(0) - return bio.getvalue() + with BytesIO() as bio: + if mask is not None: + numpy.savez_compressed(bio, data=data, mask=mask) + else: + numpy.savez_compressed(bio, data=data) + return bio.getvalue() count, height, width = data.shape From 767d0ea2d94d1a1b099b8b9ad3c6fb91ff53a8dd Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Tue, 18 Oct 2022 17:28:06 +0200 Subject: [PATCH 18/23] add ImageReader for non-geo images (#536) * add ImageReader for non-geo images * update changelog --- CHANGES.md | 14 +- rio_tiler/io/base.py | 13 +- rio_tiler/io/rasterio.py | 293 +++++++++++++++++++++++++++++++++++++- rio_tiler/reader.py | 12 +- rio_tiler/utils.py | 10 ++ tests/fixtures/no_geo.jpg | Bin 0 -> 659730 bytes tests/test_io_image.py | 163 +++++++++++++++++++++ tests/test_io_rasterio.py | 14 +- 8 files changed, 500 insertions(+), 19 deletions(-) create mode 100644 tests/fixtures/no_geo.jpg create mode 100644 tests/test_io_image.py diff --git a/CHANGES.md b/CHANGES.md index 5c2bdf9a..22b04ffd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,19 @@ * add `apply_expression` method in `rio_tiler.models.ImageData` class * update `rio-tiler.reader.read/part` to avoid using WarpedVRT when no reprojection or nodata override is needed +* add `rio_tiler.io.rasterio.ImageReader` to work either with Non-geo or Geo images in a Non-geo manner (a.k.a: in the pixel coordinates system) + +```python +with ImageReader("image.jpg") as src: + im = src.part((0, 100, 100, 0)) + + +with ImageReader("image.jpg") as src: + im = src.tile(0, 0, src.maxzoom) + print(im.bounds) + +>> BoundingBox(left=0.0, bottom=256.0, right=256.0, top=0.0) +``` **breaking changes** @@ -116,7 +129,6 @@ * deleted `rio_tiler.reader.preview` function and updated `rio_tiler.reader.read` to allow width/height/max_size options * reordered keyword options in all `rio_tiler.reader` function for consistency * removed `AlphaBandWarning` warning when automatically excluding alpha band from data - * remove `nodata`, `unscale`, `resampling_method`, `vrt_options` and `post_process` options to `Reader` init method and replaced with `options` ```python # before diff --git a/rio_tiler/io/base.py b/rio_tiler/io/base.py index 1fbd4625..966322fb 100644 --- a/rio_tiler/io/base.py +++ b/rio_tiler/io/base.py @@ -21,7 +21,7 @@ from rio_tiler.models import BandStatistics, ImageData, Info, PointData from rio_tiler.tasks import multi_arrays, multi_points, multi_values from rio_tiler.types import BBox, Indexes -from rio_tiler.utils import get_array_statistics +from rio_tiler.utils import get_array_statistics, normalize_bounds def _AssetExpressionWarning(): @@ -115,11 +115,14 @@ def tile_exists(self, tile_x: int, tile_y: int, tile_z: int) -> bool: if not all(numpy.isfinite(tile_bounds)): return True + tile_bounds = normalize_bounds(tile_bounds) + dst_bounds = normalize_bounds(self.bounds) + return ( - (tile_bounds[0] < self.bounds[2]) - and (tile_bounds[2] > self.bounds[0]) - and (tile_bounds[3] > self.bounds[1]) - and (tile_bounds[1] < self.bounds[3]) + (tile_bounds[0] < dst_bounds[2]) + and (tile_bounds[2] > dst_bounds[0]) + and (tile_bounds[3] > dst_bounds[1]) + and (tile_bounds[1] < dst_bounds[3]) ) diff --git a/rio_tiler/io/rasterio.py b/rio_tiler/io/rasterio.py index 29fa4161..214ff31e 100644 --- a/rio_tiler/io/rasterio.py +++ b/rio_tiler/io/rasterio.py @@ -2,30 +2,39 @@ import contextlib import warnings -from typing import Any, Dict, List, Optional, Sequence, Union +from typing import Any, Callable, Dict, List, Optional, Sequence, Union import attr +import numpy import rasterio -from morecantile import Tile, TileMatrixSet +from affine import Affine +from morecantile import BoundingBox, Coords, Tile, TileMatrixSet +from morecantile.utils import _parse_tile_arg from rasterio import transform from rasterio.crs import CRS +from rasterio.enums import Resampling from rasterio.features import bounds as featureBounds +from rasterio.features import geometry_mask from rasterio.io import DatasetReader, DatasetWriter, MemoryFile from rasterio.rio.overview import get_maximum_overview_level +from rasterio.transform import from_bounds as transform_from_bounds from rasterio.vrt import WarpedVRT from rasterio.warp import calculate_default_transform +from rasterio.windows import Window +from rasterio.windows import from_bounds as window_from_bounds from rio_tiler import reader from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS from rio_tiler.errors import ( ExpressionMixingWarning, NoOverviewWarning, + PointOutsideBounds, TileOutsideBounds, ) from rio_tiler.expression import parse_expression from rio_tiler.io.base import BaseReader from rio_tiler.models import BandStatistics, ImageData, Info, PointData -from rio_tiler.types import BBox, Indexes, NumType +from rio_tiler.types import BBox, DataMaskType, Indexes, NumType from rio_tiler.utils import ( create_cutline, get_array_statistics, @@ -125,9 +134,9 @@ def __exit__(self, exc_type, exc_value, traceback): def _dst_geom_in_tms_crs(self): """Return dataset info in TMS projection.""" - if self.dataset.crs != self.tms.rasterio_crs: + if self.crs != self.tms.rasterio_crs: dst_affine, w, h = calculate_default_transform( - self.dataset.crs, + self.crs, self.tms.rasterio_crs, self.dataset.width, self.dataset.height, @@ -659,3 +668,277 @@ def __attrs_post_init__(self): ) ) super().__attrs_post_init__() + + +@attr.s +class LocalTileMatrixSet: + """Fake TMS for non-geo image.""" + + width: int = attr.ib() + height: int = attr.ib() + tile_size: int = attr.ib(default=256) + + minzoom: int = attr.ib(init=False, default=0) + maxzoom: int = attr.ib(init=False) + + rasterio_crs: CRS = attr.ib(init=False, default=None) + + @maxzoom.default + def _maxzoom(self): + return get_maximum_overview_level( + self.width, + self.height, + minsize=self.tile_size, + ) + + def _ul(self, *tile: Tile) -> Coords: + """Return the upper left coordinate of the (x, y, z) tile.""" + t = _parse_tile_arg(*tile) + + res = 2.0 ** (self.maxzoom - t.z) + xcoord = self.tile_size * t.x * res + ycoord = self.tile_size * t.y * res + + return Coords(xcoord, ycoord) + + def xy_bounds(self, *tile: Tile) -> BoundingBox: + """Return the bounding box of the (x, y, z) tile""" + t = _parse_tile_arg(*tile) + left, top = self._ul(t) + right, bottom = self._ul(Tile(t.x + 1, t.y + 1, t.z)) + return BoundingBox(left, bottom, right, top) + + +@attr.s +class ImageReader(Reader): + """Non Geo Image Reader""" + + tms: TileMatrixSet = attr.ib(init=False) + + crs: CRS = attr.ib(init=False, default=None) + geographic_crs: CRS = attr.ib(init=False, default=None) + + transform: Affine = attr.ib(init=False) + + def __attrs_post_init__(self): + """Define _kwargs, open dataset and get info.""" + + if not self.dataset: + self.dataset = self._ctx_stack.enter_context(rasterio.open(self.input)) + + height, width = self.dataset.height, self.dataset.width + self.bounds = (0, height, width, 0) + self.transform = transform_from_bounds(*self.bounds, width=width, height=height) + + self.tms = LocalTileMatrixSet(width=width, height=height) + self._minzoom = self.tms.minzoom + self._maxzoom = self.tms.maxzoom + + if self.colormap is None: + self._get_colormap() + + if min( + self.dataset.width, self.dataset.height + ) > 512 and not self.dataset.overviews(1): + warnings.warn( + "The dataset has no Overviews. rio-tiler performances might be impacted.", + NoOverviewWarning, + ) + + def tile( # type: ignore + self, + tile_x: int, + tile_y: int, + tile_z: int, + tilesize: int = 256, + indexes: Optional[Indexes] = None, + expression: Optional[str] = None, + force_binary_mask: bool = True, + resampling_method: Resampling = "nearest", + unscale: bool = False, + post_process: Optional[ + Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] + ] = None, + ) -> ImageData: + """Read a Web Map tile from an Image. + + Args: + tile_x (int): Tile's horizontal index. + tile_y (int): Tile's vertical index. + tile_z (int): Tile's zoom level index. + tilesize (int, optional): Output image size. Defaults to `256`. + indexes (int or sequence of int, optional): Band indexes. + expression (str, optional): rio-tiler expression (e.g. b1/b2+b3). + force_binary_mask (bool, optional): Cast returned mask to binary values (0 or 255). Defaults to `True`. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. + post_process (callable, optional): Function to apply on output data and mask values. + + Returns: + rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. + + """ + if not self.tile_exists(tile_x, tile_y, tile_z): + raise TileOutsideBounds( + f"Tile {tile_z}/{tile_x}/{tile_y} is outside {self.input} bounds" + ) + + tile_bounds = self.tms.xy_bounds(Tile(x=tile_x, y=tile_y, z=tile_z)) + + return self.part( + tile_bounds, + height=tilesize, + width=tilesize, + max_size=None, + indexes=indexes, + expression=expression, + force_binary_mask=force_binary_mask, + resampling_method=resampling_method, + unscale=unscale, + post_process=post_process, + ) + + def part( # type: ignore + self, + bbox: BBox, + indexes: Optional[Union[int, Sequence]] = None, + expression: Optional[str] = None, + max_size: Optional[int] = None, + height: Optional[int] = None, + width: Optional[int] = None, + force_binary_mask: bool = True, + resampling_method: Resampling = "nearest", + unscale: bool = False, + post_process: Optional[ + Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] + ] = None, + ) -> ImageData: + """Read part of an Image. + + Args: + bbox (tuple): Output bounds (left, bottom, right, top). + indexes (sequence of int or int, optional): Band indexes. + expression (str, optional): rio-tiler expression (e.g. b1/b2+b3). + max_size (int, optional): Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. + height (int, optional): Output height of the array. + width (int, optional): Output width of the array. + force_binary_mask (bool, optional): Cast returned mask to binary values (0 or 255). Defaults to `True`. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. + post_process (callable, optional): Function to apply on output data and mask values. + + Returns: + rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. + + """ + if indexes and expression: + warnings.warn( + "Both expression and indexes passed; expression will overwrite indexes parameter.", + ExpressionMixingWarning, + ) + + if expression: + indexes = parse_expression(expression) + + window = window_from_bounds(*bbox, transform=self.transform) + img = reader.read( + self.dataset, + window=window, + max_size=max_size, + width=width, + height=height, + indexes=indexes, + force_binary_mask=force_binary_mask, + resampling_method=resampling_method, + unscale=unscale, + post_process=post_process, + ) + img.assets = [self.input] + + if expression: + return img.apply_expression(expression) + + return img + + def point( # type: ignore + self, + x: float, + y: float, + indexes: Optional[Indexes] = None, + expression: Optional[str] = None, + unscale: bool = False, + post_process: Optional[ + Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] + ] = None, + ) -> PointData: + """Read a pixel value from an Image. + + Args: + lon (float): X coordinate. + lat (float): Y coordinate. + indexes (sequence of int or int, optional): Band indexes. + expression (str, optional): rio-tiler expression (e.g. b1/b2+b3). + unscale (bool, optional): Apply 'scales' and 'offsets' on output data value. Defaults to `False`. + post_process (callable, optional): Function to apply on output data and mask values. + + Returns: + PointData + + """ + if not ((0 <= x < self.dataset.width) and (0 <= y < self.dataset.height)): + raise PointOutsideBounds("Point is outside dataset bounds") + + img = self.read( + indexes=indexes, + expression=expression, + unscale=unscale, + post_process=post_process, + window=Window(x, y, 1, 1), + ) + + return PointData( + img.data[:, 0, 0], + numpy.array([img.mask[0, 0]]), + assets=img.assets, + coordinates=self.dataset.xy(x, y), + crs=self.dataset.crs, + band_names=img.band_names, + ) + + def feature( # type: ignore + self, + shape: Dict, + indexes: Optional[Indexes] = None, + expression: Optional[str] = None, + max_size: Optional[int] = None, + height: Optional[int] = None, + width: Optional[int] = None, + force_binary_mask: bool = True, + resampling_method: Resampling = "nearest", + unscale: bool = False, + post_process: Optional[ + Callable[[numpy.ndarray, numpy.ndarray], DataMaskType] + ] = None, + ) -> ImageData: + """Read part of an Image defined by a geojson feature.""" + bbox = featureBounds(shape) + + # If Image Origin is top Left (non-geo) we need to invert the bbox + bbox = [bbox[0], bbox[3], bbox[2], bbox[1]] + + img = self.part( + bbox, + indexes=indexes, + max_size=max_size, + height=height, + width=width, + force_binary_mask=force_binary_mask, + resampling_method=resampling_method, + unscale=unscale, + post_process=post_process, + ) + + shape = shape.get("geometry", shape) + mask = geometry_mask([shape], (img.height, img.width), self.transform) + img.mask = mask * 255 + return img diff --git a/rio_tiler/reader.py b/rio_tiler/reader.py index cb83e153..301fe310 100644 --- a/rio_tiler/reader.py +++ b/rio_tiler/reader.py @@ -162,11 +162,13 @@ def read( window = windows.Window.from_slices( *window, height=dataset.height, width=dataset.width, boundless=True ) - if min(window.col_off, window.row_off) < 0: - boundless = True - wbounds = dataset.window_bounds(window) - if wbounds[2] > dataset.bounds[2] or wbounds[3] > dataset.bounds[3]: + (row_start, row_stop), (col_start, col_stop) = window.toranges() + if ( + min(col_start, row_start) < 0 + or row_stop >= dataset.width + or col_stop >= dataset.height + ): boundless = True if ColorInterp.alpha in dataset.colorinterp: @@ -500,7 +502,7 @@ def point( 0 ] data = values.data - mask = numpy.repeat(~values.mask, len(data)) * numpy.uint8(255) + mask = ~values.mask * numpy.uint8(255) if unscale: data = data.astype("float32", casting="unsafe") diff --git a/rio_tiler/utils.py b/rio_tiler/utils.py index 2237036a..09700025 100644 --- a/rio_tiler/utils.py +++ b/rio_tiler/utils.py @@ -657,3 +657,13 @@ def resize_array( indexes=indexes, resampling=Resampling[resampling_method], ) + + +def normalize_bounds(bounds: BBox) -> BBox: + """Return BBox in correct minx, miny, maxx, maxy order.""" + return ( + min(bounds[0], bounds[2]), + min(bounds[1], bounds[3]), + max(bounds[0], bounds[2]), + max(bounds[1], bounds[3]), + ) diff --git a/tests/fixtures/no_geo.jpg b/tests/fixtures/no_geo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be29ec309270a5b9a52e6f74e81a26f58980e04c GIT binary patch literal 659730 zcmeFZcUV+S(>HjAA%kQTBn=EXNzOUvoI%Ms=cJNR5r&L_Bqb-63?c%Ok(?!o4neYH zNwNpM^?tr@-`#6>|J|qOI@76cC|~Bp9NgV(Vca}0S4TI;Yx=c4*Sh_#x%oJS0Dy;!hew1@+3h2ScX!Yfch8rCj9ms$cHkY zK=_M(jh7RM{^G4f$Zt6i6ey4c0kD7Tk8+rV@>hq8BOuBzP7V060>5~$F>43_^Ck!Md{fqPd*u~Aom51`j>lh<> z(0}pETmOs&-r@Y;`d`l`paA6``Zb3B2S)n`-v;UE|3T;Zr6;HxCRqXRFCD-chbdIR z_X~4_SfaqNFs0xkgf-)jI;V+;VYHvvG%9ROIe z0pO$%01Qii5A|yfcy^~#JB(W8Z{iC`9lXsf&HR0fMY!dX#dPJ)K>uf7tgg0 z^#H>kegXu*_y>c!GX3R$53v1}(+zO^;UNhFIR9YKUw8iEI{??;zFPqAA3Aum`2Jwf zYy5vPDj@I&qeKCMe=z7}k^jJ=e=z`v{l(Wi4PfQr;^^(e#idDz0(1gr00ra;BpT8U znj;M80q-G^zKnO4b zLI5Y=0Z;�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⁣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%0AjqXSQQ?J6TQEB)a?i_C0 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
Ww!J1~fxM-{q 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∨*ezuVx6u^o5Q3dCM1lzXnP3SPgXtt8aW4 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 Xzb2|iXV9vTh|2})i9E?& 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‚!N0WT0Wxo5! z+~OE9JByzs`8YUf+-sd%qQhJ39dKkRFoxKFFFT~C`!xvWsMSPGk~=5pa(mLU#oeZp zWkORF$|1b#PK>0A9g^mK$#C8gf8RkqJR$8U^jJPIkv&;1n(9U;k0gm$7%g?-5&pf2 z*097_WJJa^lJ_ z?Q>sV$r>3o%?m{r8wvBE)1lb5MZ#1oJsVO{pAAj=RU>7+hc#L>7W&p$hQ`aND76>CE}mFrIws8h#}w5^3GQ| z=yS|uYZ-K)-x)WcYYHsGhx`PWrj)n+ix`}k%3#86fi~vTjM`sb;f_zssmeZv0KiBr zZiOS!#PyZAggWDwKdl*&%6e&RER0$yNouu%d>ORcFTn8eTFl~PXdW0oX=DItG4R&ejd=h|B3ZOgm zD>g_&k*!ou4bALKaw+Vy;iUWNI-jJ+CVFydr#_e4(5}*t*F;%^4(;c57LI;poz`AJYt}fzpMZxYx zEIFu|KrQr9C5zhIF>rQ~*9IvUiw^F`fJ;^f4BrQm6$69?yNy&iuZ?R1$I0;e*3@r4 z2?K8@!OED@Ra)j36H_SWx>H`BwW<^g{)b64dcuqb_1Ez2A32og&I!rj!<1bw3lG)FieEK znoLdn(PrYRfW{)6V!pDDbQoZLg@8d#JQSo{&kJ3&JoMzeUV!NAEj*dM!9O zEgY92$YB8EGa~W92aFM*jS6N}cM-3=!g4evbP7a}Ev_(rLWErZ-j8*V(wkSx(EwrL z{UKrO^66xLD%-l>R`LCw993qWRjw0qKmbn$=;2u9SW7T%xX`mDXgbQTyBkDoWH?Ba zY}v`NlLs1N!;zv$;+cEt1E6{#z3lcSs=ovG_6;%iI!$%&F)f_&$^(Vbwt*%pxcfy2 zhA#VBt^T*yrw-^rq=iEZ#<~E@&40y(3Re8g4))jFApwchbZyQkWZ9l@bX4B2T zI2XXLXQoJEOusxT_Uc-T08M8-=W=Twtnn7}5udm?G>9K7G8YuEP!t~|7)O==`!NP| zbVlDGQX}Q5FE0s1{~^rQ7cbj`df(~!H{=;^c!wXxFied!HQOjFXoks(@!SCz81zL~-mLp5;$=BqQ zAx&gsXShbn5@rTgG@q-(g)T?jkTl8H{0Hq3U84x#4WTtq(fE|=QJu?MA}uy>HyJ?z z%cAu21>|{a!OFD;(ZwY#pknk$Z?&JPhMy1bCB75yZ!s<^VWd9TuM5J;;rDcEb;TqA zMgrrq&>ziGfU^4uTATEQ3(ma(_k<~(HG5OA0;3jfC|Q+~;DdtLj~5)-H*?>=gnA<{ zX1+C!76mcXoxAXYIbsY5JSY$+6Ih_C-n(~rok+U?ZMdcW*oFJ}7i$F zUNP3ZCvlYdj;9&Jqry)_3|lVBeT2Ek*I*+eZ7Cxy7vbh`ik7o;DO=Hx++Whuhqn~{ z3kdi6+-Is5iI)S#Q{Pp78z|qrTC1v8;p6o(J2a-onE5o0mq}C&PQ6el9mq-svnfN#=Y)MF5(2>rTX-FTXmm2 zDv#06rdK6vk>)8ln5XB02BE;h3oO)@6XHUHP>{%-iW`qnUv=NR3S__#PC6-6T#Sl% zXIh6pf}gW=xu|cO)$T3ZRURO;Rk=#t?E|~oaQ;_+J}f~zz58Q?);fmZGCq@^tySBPA|AdHrxFDT4#Ke`qu$G{mL3leL~K*#JJwcJ~tD+jLSQf<{PWyWEdPEH-cAq$7qu` zC49r2FK%@54(3rk4H2qajHubdOagBdcUEI!EBQA-AU6UgMq?2_b`gLa>Hb;M7~*P}RvW=8uk0d76WulD_0hr-kM$UHDeQjH6S;-$fym zmf6X_czp_%2j8M!!k6LSJ9!T|E$6B%bG8Am0YS zVI|3|8r5?3kTb7rGu3SI;|~hHA9;8@ipGhxs#W}D0@5pO- z{Y_SBqFQmsmF(ASb&|tLjY?O(q8X@^5Il>`@6`Lc6D)3;;#1ijkGXc#&ZPABvoUCNrq#!o`1h6H+KO=1U@f6yoWQR;hnHU|ZnHRa4IKEB=qr1aq^eCp4&=XH$tX z8N?pG9{ll57p|l6JFFqcSkM8PtUX+)7p6Z}vjGSXp*ix-b&w zkj$jN@aWLpXx#-Ict|s}y^K*8Ac|qQYoUTw`{hwlB3pK!+8pa}<2Q{V7ARpaDcKMy< z>to#SVemtrVK924a|*?#P~YoiU0|X`#}8LTL8q%6$PbFzgAVHI=rSV33?cTxmYS6E z@EpX$rJRAu&V#7w>l3@PBdqP@)e~?sbL}{CCTjYKnVeCryB(jB2fSsef-SjBX~k{S zc~K>)`|&|{%nCH$Z+TX{Zh|SsO8ZYeem@{^v<5+E;0ZinQl>!-HI+Uu2;FUm(ef~0 zf5%2O-hfy|Oh0;pmy96)`NXCFNx&nYN-9y9s1Gyg^uw6sH-n7^zvDy$M1U{i&@Rs+ z?YiCGrSek|B90t)9x{cHqp12VO>&a{7yA)+#*&IGU9w5s1qt5rts{0!Y}mLHhPb$& zynW`e#45-?UiW!aGD3~ihwy&DU^@(FOG!r8bb9hu!@yNPr5GU%q6wGguHUMUw2plD z`px57v!LWAj39=j#wSq)8jnn2|&hIr#$&Gz5{ngEiD`avKfhPIUWmBk3BWO zpXF1K@igG4r=E$YUpJT@6LNajf_ugF4>!^!?A;I@sP!_nSLqQjn1I>Q*=v(vXkM7)^|gv zU40^c8`?}`H#ey>)|LyuhUc+h?iczA!0ht~{@-vLe-P}|^>YK(MwyV}1XeXmBLit?nHWcS_AnRmPj7v`&o4hM~VXPBpX@;Nh}52m4S8@VX%^0aoPC9eAu@GXa?LPeUfa7|?{#SWwjbqfYV z?6iS4ot92Msne@|o5qDM+bqF)Zgd2jOS3_y*ygRC+AP`VP4VO@jLI{Hzxz`e^g^@# zLbaJ2ZaP4TeJlOZ)n_)<2{7FITyUK}o7)JkDeo?!@={p#m- z{{hfPH<@>!G0!W|Zcp}NIJA}Vc3ZJNPSHu)!@ap>6*0eD*k6^&LHo?kK*+4Ql-^Lh zaiiYy*G7gSVsE5ec)N1OXU!DxHZR|mqt7ziKX;y{baq5=$fXm@&K7tUiRajQp#0HK zbxRZ|gc*N_Y8~XJ>md|e(RL;hf?jX_?pZG)bhXXReKta2MH&bkeu8wZ0x_xy(;xknkb_kmBFU!<@oIpXAw{J1bIp{WBbj7k&1mn2~Q`d zoZ=BlcoC&T4#vaEXe$4WP}BJc{;n%H=%o*pG#1J5-cWzBuTQ}`YeG^X>NCRE6juBVwE zz+ki#7OLH41w{Tq#Y?G^=);id4afdBPSI?u$AFUPK&v}!7ErNg1S2OGpXFT9;3J6l z$oKGN79mnTmMz5&4{<(4yZzIpl|Re?APvBR*wrg=@PO{LgvY-4i=SdS!9f&R3*W(9 zPOA&kHK=zfT}Q3(WIo*DjsPp_5%Nla^!vc3GDHJ{Z)RM_IsG3Wf)FUlcgw(+a-eNg z+q^avUggmcyI*%~6KC#ZBhgiS<5Ln+Nqfl@KouO}_baqF(zyg3mm{-u&>Q-Z9cV)8 z_`u2d>cc?r>A3P;E%79$^tKlqO0B$8g%;+iDX;5Db@s*x23;qb7V$w?H^7Lv-VXPW z-iupnxpnERw{k$H(Q*xboQsIb0whrNFdK@j_dHHy?% zR*>6IY%@oV86~RIv&BxR74mMon-|0lwNNh}nO;tk6bB@BL24kMq2t-sy)g;&(6Wg= zb57eJcDKcfpskcnb(3Vh4dXaa)DZYU6QHM8EArbIwaSo9u)d#=ze#-v#QV~A+L`mE zMGF`%Z~wf3muBRPuvs-j-tyT`692{=0K~Y?=6()VE}7^rR20^l{0H!BbFAVMt1KN} z!@-{hRb*vX{u!tve$bLLERL0*=M6@-OxA)K=yaA!r{MVm>wd)=jvAEVnrd7AhMM)|5-!+ zzpsImxv2?BF)f($MF02qEPA*$yqQD)13dG1Z^CE)jY~ZFpdAY@YmR4<`LVMdm%5VQuk&r-?MO5-YNnCERz`gi zy9iZXLLZgWFT|!lC3GkWr`$hz#OjSB_U}310=O^lyoG}qu0^<~mYeUf9ab>w=#=O`4H9@c)GbgtxG4id2GSF;kLfzVuHSloK zb!9%8wVrf}0-&}|~O^?5c=U&h9Q&ySeSuvn+QXLyPNK$cIa*QT4dn!(Kv zvs2aHJT8SR<(wEDCJ3po^TLz%W`}4gB`2@P_2B;z|dDWp@{;v zAMZgyOUsO?n~vopi1<{oj{$Njr6sAq=2LbI}mmIk#1Q|vbgW` zk1B=4^$%PT^BA4iF95y^QSktTREQ;ET}FIY4RVx-mE#PzNdp*~=vEooF{{WngOzMzK-TR)O<_1ANJ@iN8{ z{>r5iH;r ziXoXBAMicshDK{g{K>8@+m_FtOEauvrg_-5!WN;RJ6mesuMkV&FcjKKFvJqXtdR-6 z5h=ll=_>JbM6W1uQpil=2P9RY)~BUbw*5ybiBaf}Xk(T59k8=VzRuyUV7$bt*?1A0 z_ATJdG}---@eSF7TrD!@uBhik{t^Eug9o)hjM`plT~!GK2HFUWULCJQ(Qt17hvdX; za_@OG`cTXeye)_u^QS*xN2|CynWM>JTdiZVo6aIYvTE^LW}J32+1 z9|+Yyl?J?WS0|5bwGW_6TfZ_Be_`>nCE>3l4Epp;Qs1~K5}X9`)=^9Zg#R}={$iRA zb89*chzw^kPWOzRvO|29+QK}_f*kAk)C3459-uTs(v`aL;#~tNjFW)WACt&XG0_iI zD}(V*V$UA*Ia>_{#*Vj_la-yHl`)zdt_;C@X))-w{Rw8E$b18a<&hhPJs)3X+4`j; zN8Edra}ajDi<^H@K!bE=e1CB8NLG2apsCrKgNIF`^&-mmK=(9{O2B5G)k%cWuw4s| zFIB9FWMDXPOduj#2End{ZB3H|{O|7{)6S8BCV^&*3NI*I6}GtWoNt#=_c8Vv+J6Jj zzXr&hoYW;1f=WCVZ4!|EEkwNP(fSTG!9XJ-rsoTZ2~~q!si`~LLfoDc5}07;G2jsdX2;SW};C_RcdV=Q$w{8_c9GQ4G0b>*8|V^Sv|OY`8TH{ zT&}X_riA7Ak>|_IG`zi1YZ1vd==w7Qr}aeyfr5*!IsIGGUB}<@-uO6u={}t8Kv}5B zWQoGnrN!Z!S$5d{#=Fuftd!npD8L&);MWomLicXR7@VnFb-|pp!B7uYUa;iKU}Y!D zFps$n^CxGpFpn_6VG)ZXHJ@RI%7h?qJWyH~qZlyb<1VH6j@xvAbF%$#5*-Zw43`yr zlV1{4Ou@EYv6$02EiI}LfkF=MTwG3a3FRw)>%!oSlRDAG78!O@UGkFL157W6Fbj$m zF78Ul!oZytfKpTy?2BGy+mYO=pA-;ewGb^C#On=bldsR+*)hfNQsdGm6iy}@wf`0c zh?DZ@<2Mx0|LBV4ECn-Ws*$}!s>D|&zyWUtwxV%-3{BEXw2CyxwvUeH?SoPUe_R!V zCeMD$dkrs{19JjJd1f1|7IVoaCq zTi6jXHJ#0i$)y?vxBYAQ)i41GXth65+3NToV0j%siAT8+-HYIRsi=}ctBPpx{lT_l zsxBm1=P49Sc<*jyDO@$FC^Q-c`<_61^GfLJxh>EkNo{CAFmg5>W$v2fx!~zTHckdH zOF&& zbXCH$#SwFqZZtWcA{Mg=sjeCoIHS{_A0>i7OQF`Tdl}w}N{#gKk3VMo$##W~zlq6!rpM=m#7m^BaQ zY4Y9t;18HNmsU3kmoD^@Pm(iLaTe7xK2MYmCLGA_tXc4=&Sw3}(fO6kBF8CQ)B~>>vK{3?jau zJ@SDTmx!X9kakpm*>WM-MmQF&;+2i#0X4)7wVtet-i0Xb4v{zq=)t@RuEm%@2pThK zj+m8vNI$q_AWN_K)}x*{B=`IsR=fp?4ils{cM;�bjbVgU=_V9bD4W)G1S=7SJOz zAv2wbcO%{RdN~7p_3Vv%hGHPAtJDN`X_p4$EAEIyl?lF-$B$YEue7$OImD=#E`Al= z>}ZI{agqX{A8b+KUk+r@+z&$X`Eb)rit*h(`I`Q& zinp9VD6*H3If^GU{rCMeOY}jL4v$fo3;5Qx{L*|zvt>b2(D(-}-1F6g8xnv|vaVP& zD0gP>Ia)LFt$A;RMhW~ zmc~mQP}^twc5Q3Y_irkFzuwcB)1_y31`fZcij+)hhW|E17)V6*n(ATbX;bW^*?u*hgj=YXobT;CsG;aT6el`F8 zs2s$!vw^)+>YyLd;Fg!n8GIuIa%Q`#B=H$3!z@7cl07`-Tu(}oR@*dD;Z&epuOn2cBZPBKqI`9<)TyvtS9#a)p*u6IRC-^GZOt|-q|;i~jYNg}GV7X-K0!y2h}cCTdy zF3a*By5Oql@OC#ewvSD|-yZQ~%qwW4g_L{atLLQ<2Zf^F5*5|eAG_A2=7Ua{|3K)@ z+0R&F=1oPllEVP;=-#`WmE3Dvnx zcM$z-8VL#|mm*g$P`xJAxqZviI#*SiK^jK^UEcZk!|XC=Fs`2BK@_^m*?N40v6rV# zBEcyt>fbkq#YR_-OKJo24}0&+q^Sa_MTG%LWW>l^PqRBbXA#FPeBrOW!}ao+-JadR zojCs~&&Ci>4|zUlUcl8fj~wD`#zC<2^3VPv1p)&s04Un@ae`CCRFTvBV?r+T76_iO zsquO+bDiXWBW}E4Q&~qp${f{`HS-*VUP{L|vV!FIF$CR{4-8+-={&-nrrk*P=k8>n zSDK@y2$?|!=%}(Sb6(Tx3&}cxpco~e^jOW{FFvo>zpJa9Cn4M3hp;*=3i&u^o+lb}7$UgHxoRXTElB^X7wFJgOVWFMTBIi(iRqKvG#M9l(H-(L#=>tr^&Hmg2rC9RC{ zZ%zpB>$*~iZr0twsop#{^-kqJHal`-d!wcG{L`eDg;o0pKs)cc;$Lh*Yk*cf^p6{8 zKW#MRt6oeY-&bL5;k0>g|L8ve`7VjZ8?C@D0O!x^9SVHz)>P`oZXv*k$5|wPm~Qyr zM3rs}0uJNoaL@l9VHc@rc$#la&R7e@Ds!uh0VQ8~kvRt8HcSLXsv-@7cE*h2Fs>`? zbRY9sBu1$YTpZVrJ+z(~wp}&KPyCTqGQH|Ib6j+&H71El7eAITE{=T@v7FyQ`uyWip@q3QBBlZ#G+sCO*%m+XSFPUOX$iU+4fE;A0P2 zwZCO6=z1uV%AOqzd6m}$r^-Hi@EAi+^QLx-YiqVpT&UL74ugYpnF8zNXzx42*L`n1 z+HSIVH{Xi%tqX7{9?Q*aEag?!nS133^ktidVzF`?DJU(`6k6xU0W!L z7Fd97s2^yC&V~I}9>{p>gUdePP}$Ml6kQar)(Z3V)jwWLEGNKz^nBh37!MKqlybPo zxS-Tvn`Ru=)(_elszLw62CkLGvA zwe)3{)JeeogoGQRjzq$%Br`dNpUa*;a20zB%zvHu*Mg>{5COmj_~Yj*78Z1RLHuq* ze?g6E=O%UsDf+C?C8$sm!SkbEV)9jI7zOYQhT5oT*A_pn6&=n_U7V?vq8|)U9_@|x zL|X8o2>`YMz5StX=u;uHB*#eEx!qMfh)ns=6eNr2AxAbz1oHpW-TzJJ;n!bd_d1_I z3@xAUPh)X;_OasSW?`hP<#7&O1{pDy{EPs|f5QDU&ORN42SaX&r;*~Jb=B6bz`*M^ z^PPPS%_mKy{09fn%#xUR^WzQGWS>e}@x7=+73PEpU0tK{ozwxLo*^#>F4;q}r31PS z0ZdBx3jCBN;np#i52=TB0qJRvcgO`W1LiWihsfzW)FWxMRhguLe&{ zwEaLOzv&5&j(%&m&?>|pdHM@=&%&@HQhQIwN{qOCUY<}`Pj=70;Pf(kwd#6dhS94? ztnGFE))o@)2(WZN#(@tFliUiQ6hD$hVAEND%VyAv)~<&!ABtz7h6@!!j6e+55lSo__oAx4+=PJy=ntzYMP&3d;iPf6aR`TgZqGgEiA9BO? z9JQD+7dV#7@x@@(3IneqD8)J?JOw4NkM=&mI?alL@b$PvKp zK?NF*f1&`&^Lzh{Ksx^NMGNhx^I`<^qCJAmB=|DiCVj0Zs5U(rvB}mAjaFfLjiF*yX6Qn39#~`tL42kjHDvIHh zbsS-%6eTZ7!k4RhXw*FH+e+Q)x|$O1>?K+2k1GoG!?E$W#seU~_HH z>#C%!@*P~GG^ck(AvH2_C7`snytl31(|&Q4uw2m@)KUQ-nh}%e!qM-cfz2Me@2I`o zI@^1BiX>^~H1ULT{y)dezfl76ptEgKaRMF*?r89Oib_@!x+?TZX-9@|+V>>#@QJNZ zS58mOKIh#tf~VUu3`4LWSwNWL7=R@FbwD;glI&T}M~NcvytOV{w@I(kX7LB|Rh|C; zG7@tKLPYn?CCK~`=SJanfAlpK-*JAU?Xpdw%nnz+ZIoN)TG&#kbNvjtGA~cqhuEW# z-{aW$FU|eYuUh7q&(<;e8X<3RTgLlX8eSaNqPpj^!RgGxrQ-y#!xgDTNaWx%g;mJ0 zq8pIh88n92%ihGe^uB(RZ0O}-@!nWSl4!g=+lMp+Xc)lMCODs<+`6N}@Fo+_R87!l zl+ZnGP_Sh`k8VB#oHNIBg4<({&2Ekj$rSq)B!$So-)brdvbX%@&jOT$>5ADRCp5PO ztRSB=Iwi2dC#K-PGIq&y-r`1YBURY_{cl!|3E)B;(|e=5Y$rxW*$=dOoSz6RS(L>iIN!XTgSHw4*@{%3MT|7YS{!?aOfL}Fx%f}7>a-iJ0TXOo4sSip^f5^+aTCP&4xEDr-c5?>paZA zES1N{nZ(Y(Tal=)2S50WHI&BdD>Q5fCF+0LHD{j~f`+beltr|%tAZ0gf`R@^n`)?& zCNZ6fwb=~jElq!RL~pS8X2!1ndlBY@7sURDmP=LKuiF}`!%%d+*KQ7=lp!xC6&y6x2t*T}?@YTVH zzp$5mfb}b>4qb8%$Uvn&xRSUW^tmMv4)b4c9^oy%bc`h!M9c`9D>wZu{u_xVMlfn5Qcs9mPJ*sAf|~S9UlPiSAD<9 z3-(@Yy_So3{PvXxC2V10IP}KQhFE4<__I{5ying7plfH`cVf+=`*9oMb;0_3kh1LO z5~23vKO1GSEo|L<;YseiK25iJ7fzib%5QfL%|L7E#ZjaDNVbX0F8*D?hYzrB1t+|^ z3jyGJM$`ej1bIXH<8j^|0zEo=Yk@ggmoI;INy`)(cyd82z#u84qA)kS?(`bh++0%< z=fJ?m9F%w6mIlQgo#)xbpq+-<-op2FY*b#)t@{~&C%lLhT$0%~pBKB>3h0ZAu7pYE z+MQ&zZDuyH-t@Z4(^AR)fP8mp`=0)We&HdUQfH9&gs7?%+xKAQJ>9bu)Jc*+Ir;v>2NFArsD0rhh~rAqfzB4DtT`%Kr8}h^0asHGO;VEDfD<3i)7cfmAT#XO1yG-& z=QD#6>sPcr=`qx1)fZhZ16I`8P}TT|hjV4GmLT@m!{Tj8*OxOzG<|P@hNFtR4Yoc5 zYu}A2xMNqN^fgSDFQ$W%ThU1Xw!w4$q|oy6fSRDVX6UQ;CT4eQ{sTBN2-AEQFWcv%ePllGnN)hrrGHbW4X7a0EZP^EHpC3o;4iBM zYlo0T8S4^E*W7RUjEFT0hOCyX&i2sbA4O&>3IweV`2YWoU;<}nO0DrbyC#IXT$`JZ zfBY8cLjU3g?PZB@bMbmx$1uU!I68Z>&i&a({Z_7cAPSyXb*cw+9K1oco*+e{Ct@P_OudK#39&+B$&J4RiV<3$4}jvg2-6XepSzj z32l#|#N3E3u>6S*Kot{%?;I25XGPHo#KRfH{{h&UaBGhl3plA5vQPUJm%yYK=&&>Z zR==)kvU}n4aCl}}j-Jc~l+W*?PJ7EBMOu?`7`WGRR>FrwaJs;U2<1j~{=}ZoM!r9k z(gXO?lQk+k#25Zl#1_Xn571eFN(oOATi|s^Heq4Nzo){wy!ru+c;VHC?1H`}h=ULP zMk-Jt!RBt{Z1d6UTt3Rh`kQJC?KP6e(fsA-dCnQUuw#d3qM&=Y@M6V#mho?$GuU_k&>IFCS9J+`TZw&t z{?Q_h^~!j)b%uu4tj?eY8D-V+`UQ{PGJI95s79t9t{fMUY=*=r*(6uxwg-nn@%kx1 zxSecfbBui3lwCiQfbPJi`QXDa;{y-aQ>|z#ZXL@6r`OB3Jt*i#g(P{lmNroB{QQ2w zmmK^XVZh$?^K9fT3%mvGEeKXkT*yF?U(SeE*4o?>9~hRF64)u+LB{uv ziB;hmw+HggryLc(eI5%jJ*0;oM5P{%nT3>Ei@|o<>#`Bk^Pir2_z!p6Q;E&1QzrvC zlp6ZnCiq01g+}`XO(eG5tMz)mc|q91zjKd-H-ri;Ef<_)9@Hi>d&~OhRE5Z!H>r$< zX|9JSni+kRJZo%Dq~9m9*aD%LLqdLtjxY{<_Kl;^2mgoq;G ziwG(BNFEEf1)mfew;Y4h0Y)v7U>{PQ%C++rmco}MPZxbK$lXO_hs7)oE&7Uj4TFKj zBF;0HCwdfj#9P&qgPty@Ywa0ezsc$hos!)z3korKrW~zgY}caMFgleyN5&`m)a^>j z{oyrhtk?vM>+WazS4%=QJq*c)e0OIo6VvKm3HgM=w%w^asEyL-7oxesnSAK*^M%fF zlU|9mgqU6lyrOB6aNrW~WsV1Mao+waS~hO_%1mcK*g$&_OPd;6GCt9K0|y%g-!lJg zp7Nr7K}FP|ibs3S>`wXF`K?}={z{sMCzdHW?hmJk>E0f$?WquGravd^4oOhsa_8mB zwY@wU>+%^+v^38I2BS%rs(pX(ndv8$%Iv4}l5`KyA$6#0ONK{UonvndXvB8TIaJmE zeZSx)Ux5LF6QHwsN*2E3!9)bVOq8bg8?>RicIK;`j4+pm90OSZ?eg+>?$@7$OTc(A zj3^_aHo&_>_gYiIgE0wz{Hbz+n;lIlj(Kdp>|aJ3mIl1Lo07Cr{)wuxSonF#+nuIr^2wSH9f~|cPuFG+z;$`aF~cM!ejs0P*Vlxqcaid;Jcn_I>T+JFZnLN6 zwc$TYrH2IfdW^MlATtTu){ppytndqPdnGPKSGnquk*G~>=b8$uBc|)3h!;XDY4LS& zx6MW+?45Ov8$XD-E6esnszPpG?uL0BD9Z-nM}&ehKNfavbT88h99#~Z$U9}Rp6h#e z_sF(NbyKS-;Z`mAE)3x0Yt+V>ZtODubC*EH);&&PZ{!jl{|6*_>`d&lvGjK2TS)5O zX$5uvN2Nv~l$f@M{R{blPZQ;!`0SDU5_v3k)Dc}{PE}p=pohCbt>6nuHYp&-vch3# zp|n{_<^OSXF78bJ{~x~@<}hc9%yAQz#0YboLvzfT6cy$WNleaRj!AQvQ^+xAQ7J-_ z5#~&&oReeDIp>hi@BaS&fnB?H?Yi&x`}KN09}l>Hg}-wOAN+U(seK-q)RsIjaUdri zJ-j8|WIgJCyQuzq<6mmV1#62h@YzRKo0h|0Ml>4ZSewG1g&Tf}`uYyn~tu!um`m6dWI7s=DTZr)q;~Ib5iLu{hQvp}+gZJ=f~hW&i$9^{3C0 z^U$H_2mH*>e55D+Q`K%O0-m(HVyQi%>g7OC1_II-3J-i`5m!eDm%|xL&N#&$vlW>;~NlOWvr;6p^L14th{#c{OPD* zce3e;1lUxw?L(tNWy0V8Y+o*27cQJjy`cIdMfaC%C|U}lkG1Ix{(v%25;{-XE0ubr zc39;niNw%rK_J_uS)5p^gdose25_Y47Z1?1?UzE7I?I-N6)`+t8oS8P!E%jWm@F=I zg;omL&|Sb7=Q{AUdvBK6ZR=*6TfiOmYW13KNK*CHry_JnrSbyiouG&h`h*+x=GF@d zi}b}n<#t}wHg6FA_LuvBZz|~8Dz{@>cw#vyBII7k;}T;YQ0d_Bcz9h)y{Y|`#9^n; zhE1;EIN8?0H_6!AU67rvY-Pntj1&2S_R<5Y1kVg_qCV2{sU(xV$lNYH}EM69NoDZ@FgTRJ>};YZ1%WHs-U-3 zR?7>%aE%6cFrdG1L2z55OOdEi3y^q!dN>3xm+{PcVHDmO}aow(85~o+3U0kLr1xABIhR`{M6LRnfE&DvEGOyU>+Mx7^=Xe4;&OY2Q zPc}i+6Xp#qh2F~U)P1UNR>nr*-Ur8_B7@#9WqT0o+cwgx+Ss?)GtcP08QALTrGK{Zs+u~};Q^|Ja};rfR!JY5!|LEQLH#=}u39mhnnGjM z4AIi}WlhGF)sor@(Z*u1xccQ$U7o@7J>}bvUJDRAV6D$;k zL9FBzP1Md`^5)ZR!V4P7u!YK*>|UNc^f87f{W7Ntm1gpvygTQ7n*tAU8{z4eK*K+I zFwQUX-iyizyltsY07ulB{>S^39Yv5x2!8p_(LS`HKv!~*`)mtk>g{XTH_g3TsB+3gun{taq$9dxui3trx??B`OM-Tg^NkmTSs z17KQ$9T=W;dj0OTzm|_vDFSJEnJdR5+I`U#k~bPO=cFPKX%ozDB81>bb&snkhOlkH zBpnlTg*YrJ-K2y~@9&8D*G>ePpeI6d4o`pxH96xRkg9Vw;Yo#61&^t&YM@OnrtnE$ z(xp5dhS@V-i_V`LTyak)lTE^M%V}LkUyINPaM4f(?+(<7HiSg?wp-! zR{HZk)#$K0a}28N125#SgMqkpO649^2Mdtrj;wr5xgCD}kQgZ_w>FCr<%`)q<7~hhMYk&T$=Ir;vs6IiNPa|FBC`GaBIMHV~otS5|g6F4U9Ru`Ff79MX*f@Tc)>oDYU?>__+3csvv3tPDKTymp`;es!vla0MuL_xRwtDCa@tpDII^AB@L zl4A*^ONw&VA}_8y z_zb=dwsuZYUN|z4Q2*#u2G*MR#hVT~F3Q0xZXZo1X0Bw1{dpB>EA)5ajOY6!n3%F< z9zCqJ;j!BgsQy|=^|zu0HphxYtvG@c_XJm)-Z6w^-{-Prz(};z0cvO$C)d_a|D^4b zslr3dWFAe2UhCbkDT~Z$(7{J{O?RqjOAa}EJY37E;LKr%;6skw^snzye7g)SJGy#_ z>6?yYIBbL_LR26iDhH2I!%yVFydVd^Wj!EE(4!xVYoHy83u%GQ!qY!5g&G1kSz4xh z-l}maQ%6d4Bwdc4J?>F{>@7bP|A9YXmb=!!LwlH(5zBP)2@D7nFdP0bFZUmp0+Qr? zg#T`;jL2MU_#g!jxp^1b2PzdeY#!G+74mp>@=0}uGaFd&odxm6p1=1+C_h1tm4P*q zE)kc!NBFcvcCzF~q>O3GbLW50<&GAAX(qqwOJ4Ulr$42NyBRq<3qaMt>*W_XB+b9m zeUPV=!^t7aU&EezACv?7ql%4hAeQcal3#ZheBo41W2f0x(xT=qMQnc}{21d9oY+uy zT?~2zKmX86@5jj6byTVLUug=g0<<&K@{1;kcJk!E7(KDzga0;F5GyDUg?~P#O zxMVKgv=6flE0fuEFfTlQ3D<*}g6^-F?ZjQAceYVO&kH92B5_?x(r!qXFnm82(JGp@ z+^~1mA#9fzgA42o|7Xpg^wDn_Y%4H|bFp7$0$Ea;-!lzU4-G^DHn1_{e@w!KmrYES ze5D;K%%g~m1&k3k_IU}TR%AV)o8CP5GW$`2MkhZs--ID7*S*ro4Xv^6maL~harZL# zLccGRZ+K&8d>pTu=8&|-oGynrGM5AP20b$My!sdQe-njnnqm%$<^LNVm{fvOZAN#}SS4|Dm&-pe6 zaQH6NFt|Td=0aULt zlr`3-9{Oy|Boi^4{k>NKw^r$7*>ugvJo_5?riMd#OYYOI_ga}7_|@RMU1gUm0WMtP zRp?7XxQcJ9Cz>m?Kj)Ona?E^#@2`yD?7v^V+$kL1>cm$lM*KOQS=t+aBP5!&pDIKL z^?mZKv&+X%WL^Cf-z}YY|LsDM16yc6L`Gkn;JCBBlfjY$*%y0dmm|e4oYLEB7G}8# z9>LlvXr2UumgniXP#q?Lp>2a-+9%SRRgTf6EsC)x12x5&KTz^w<7-SJI_^oss^+Y^ z>9R>GXKY}RB;SK>@Tz;wIzHqc{sdiNW5R;sCZAo*d?rhUX41V`x;`LB&i_+xcI~0> zvq$=q&_LGIzjU&wCZBWcRMFgbW@lJ%{tlyW)L&-&U|?UQ{HKVX%H_3gN&(YpI~l28+ROe+haz;g ze_O-Cd8Zve$|2=?VzH2p=FqSP{0_wmtVX-toyPK z5=II|fKZQi^Y)c@ewa-gvKLFcX7Dg%$k~6tL-+A_XeY#-uRhRjOe(XSU3`%nEuSv%eK9sSM_ zd@}}tDqU4+QM))24~sJ6PD7_YW+e zm}5-*%IUH~&R?F1IOlwCk=WK3_o`dnZnrX7oD}m6^7c(vM3NA=bK8W{O15HE_bh*_ zdq|3NE;~JeAVT1<6Sh4{+izTOB1&gyWHaq)e&Mnj%x@_Z!(Yjx;hn~r>QT2* z_O_%eG|ucN!(nDc`RxbAbS)zOnyVw4=sa7{Xeka05`G^1VqJ-~p{L6hmYTn24z9Ub zDR@=WTMn|w7$$y6v`-G~c)t0LKGORQTrZ~6H_`M~^f?z+k@2Joi9f|BzVAY_m{Mee z=YbI6KWm`WYEe{XjIk)UdSrXQ%s?u$A}P3HGkAVX=xixPHPHCJkJ_`kk6g+^JNQB*zLSl}g2r7}e$9 zGfx55sMQeejdQDtJ<#<8#;@R8L0FoEZJf2TY9ETCh?x z-aFppWTqn>rR8iOa^|b3fJ#kfq&{A%CP{JiUh=y8oS8{u=G%RA zD+ejG za$Wli$AMs%v1QCw_T}ogy-UC>;YNYxtw~F@C(^tG6`J^0qKcMw%_`&m6IvN(yFN#U z<;$Zoi!oiQR#GQLNdtBGnrN`tc}U&4>T&-@#)MJm*i12G#rh?3`SM%>p02!m`Kt6Q z0Z{?HMGO0mi+L4G3BMB2Wi7)68IP=vyu&ZZ#5!^D_Tp8q8*VL2i4{t-aFSdL>0Wz# z-@kaXk#5J-C->~ei&jc^&woH%H6z~1Ao8j|+~xD?N&eju--D3s>lC7u*YU=(aKgi_ z9qM!Vvn=dXSq=o$4RAy=Txn@x85mqskfPAJwW&&T`DrVjFhZ~C_qg?xtv zOu3Jrk0(!t%w^iCo#QJ54|By~+q*gV#be8!9^2<_sgr!C_h^_HX{^}?!ak1{$1rzw z;LzChusR-3mGnW+lOY4Xslp#+M;(BqyWq1PCW+1A4w2-v=>$-UM+lXlG-`VXBjHD~pUyfHRQ<2sxZD&tyL|Qi!!UBBi?(m# zH4#ZF-D@RCZ7|vL=H=eOxNcMMN4i#SccO+@EU*p{W zI(f61mRyoD5Yl*I8=p6D9!b&Q^{;Y z1(EESGB44$#0_{)_u}2RO6XWwZ3NHqSgd-=t8OSg1jLV5s{sH z?W4gCv6V8L_vEuX4Z3H1%oZ|c^$NL+>S6rtOSx*rYo09IpF=amek)Zx?L0DZl%{`8 zE_3VI>>O5L`*(P{+YO!9ofl^K(>Scs)ebcO1ux4dU$W|Q4u7;fv{bdfRN&QE!JQ^F zWk#{I9%QJpLbL7B{8kKLSp6=w+s&uB^+;hinQ>LV!{Kl6#s~G+@<}JEt_29G}ETT7N31eYJTEO$9_lDtMqy`0Q6{%f^_@Z)b-9H6PV z&OLeR(U?L{ZV6}}{4<|leM{rMk0MWi_1a(XsQ08RA63calPoKDoyL5Q{A1vMcaiO| zi^=T>ECYZ@wHXu2oI*)<3J)MqOv>N_Fn|*a22!^}*&mMzXuAo68%Tb;hf{t|;ZFoL z>cFS(2V3Y|&8^*l(mqh0BRe^@<0|7Y;tBdYf}d}a9;mk#Ffut$c7~8QuxvPvU%~M<$>dK_ zG4tvxPA>S!AUIK30a!ZeI8U#KQFm`Gju$g~;E4zAJc>Ape%4M*X+;npPCx*Q*#`?+ zHMn!4k-eSzb1!J{Cv|2z6`ofrbA*>op*=Wpt%vr`@zJgVA?|Fmlzk}lz8QL8PV|v6 z+YvnHU@re5Iw<@TG> z9de-~5>+98EzLhI-SA^>R)P#jvFP#4awxe8E3xEJd7dFX<(MOX`ZYyuvH}JlTz!=? zk(4$r4E67b_2Ny2F6#wm`Ka#0?(%Io(pm7!%N%g9AM%iztLphQ=?};P_I9UnP?7E% z>8^W`=TpBzHpBJv#FL4L@cl6A>zRrm{pqLzyg z%w6BGVayV(zfe{12EH6&-OgxEB3Y+y?zR4tH=neh3i3$(yiIj>PkCk2#Qz(4qsD6wGV4F;F7)*n%YMiRW9`TdHoAvi83@wZ8aA zvsBZtDvA4S2cDXfJLLufEJYYyW|Y^1Wb@ei>3TI2a27(7Ab503K2Ff zk(Jv*#BzK#nKgAHNX0XnM`{UDdER$j%*CEmDxbRdQwks_xE(~~B=tn+_*>V0w3=ab z_(y^!!ZwlMp;>(%qP?VF*63cyX94we{-(EAR?v>0c`0!PdwxAYB*6Tv{|;AM4~H)2 z``$?3qkw)bugS|~>o6ySuCv-hvp5I|gQ2X{Peicf)c=&&?!P#nN>1|mP8OSCej;h> zV(O%a-!GH)=J~f?h1{DYX9JdEo@1|~*7Ay0w0S|M4);%<4uB@DyF->ckI8<&AF#EC zjaeuOz4$v=r>Gwtw9CEpo4J0s^ext3R61n4gI?gCYZo-hbBNZ33Tzv_yIwgB=94bm ze_;A+{Wn_IBIbshaK2M6$M$4oI!`K}q&Xtmxc8YXg1Pra|_Uj@2~ zr45s^8s;H|Wf$9FBokFU&!R4&m0N_ZI8O>@{Gp8^q%Jl2{Ga1A5p!^g5(B+V)NN1^ zJC)370K*BWvjR6erxZ`!DwK=UMH1enoKqgaRxTaB}M^p=@`#}6KXP*CGi1kK$Mt}e# z-%7Sq(Z{D)3%M>{dtq6xr+mvr+(|tV8EVZP$f++6&BsO#KWH)4vJv+*jw-t~bT;W| zC{w}zqypYD5&ctlIR}Lef&7bF4axfRi-pa&CCw?}IrrDjzj&l9N9*~7=gs3_qJZnY zP7FLHlvM;Nk0bJU)|~1e%#}<5GtN-;a&gL70}IGOgm?*9LF)6XWiO}|#{Ec{cHb-{ zFsTUzm2L%K{Fn<4)hi~`Z5zy5lknL9p65#HksCwytGar68=+~b6g=js0S0`znY4e} zR1ZWRo6#ufCS>_t?%wI*X)}A=g3%y_mniccUJ`}zr06RgP{d;?>I1C6H8OYDwygfF z+Y*1dtE+8VxeVWSeWcH^h0GpFA+exl5Og40+C&!%78;`R^tV7ZMpcSnmtszy2?jAy z(h!IzsdB|nIj2BZOkAB}zUItVrbd~o79zcv!zbYJGPE*NPujW#UgOv?JcDvvu5z+p zl1%;`k0zWO`)+mg%)4Q0%jiAR5?bbT_QZ@%MAadBnrh*598elp%IG8lhc6PLJVr{r zAFyC`+rPxXDS%cA@>Z>JfM$;&lMDCj@+5s!2%G$GdOhwI^3E^$Q9L|U%E^B>{ro-2 zpm~w};76$@BTN@Wdf1q7)cJlu&V{H_F~xW$I~9f~xpv?qktK@o+G_5){Fgb!0GQf{ zT_)v3>~|nr0{T;Z*yd5=VkPYLwu-tI(>F=-QAaDH!mYF~oYIcB?|9rk(!%6}tO&v;-2 zy^K>&>P*>3JKd;5J;4a|e;v5gf0~!c8!B{MPk+1J0-MtC14f~2Ifc`|KJ)Tj#iM}PI( zM^lv@w2mwoTU_Pzyn#%YHhs8VF&4!1J_uX!4ZD~$dI5OfJg@OE^R|WTUreXm+GdEA zVu~Je#>ly6cD5d&JUC>*^6dFr>!$&a$DC$zE4HZzu8DRbuv7`0G;tMvb+7pYpjRYUIjKR9!=UPsW+O?FQc;fB&JrGMDwnV($ukAhKy5f4g4R z5WUrKZ-|=|qggPhur4+}Y9Y3AkrB?@DW4bOSJn~WB2SO~O;Gj8FRbiW|Fqy~F)$r= z_l3|tqpkVlcO^Re5~&-YGI#j*bCWsO42@Nc$lhrsZ{XszkLLySf>e--a6!NBJ8AQ# zj}=<07~ur5Ypgv?i#Mc${U*VMS9^j)4v@^z>>V8OLt^H|SxsLYZN!f}g36=v&tKnZ zN(3*fx%mFQ@M?J~3mens95ZvCPhxU7`NC!KcZxeTofPNPZ|^$|)V5cy%l~Sn(7|Te z_(GUt{iJqp_r2>Xiv^t7#sEKs-#Kaz72-KGosLIlCD7o-+xM z_tPABsc*4xbT8$hHh}`Lsrs6ApX~hlh!r^)PMAadg8;Ruafv)LD>jQxk4D zzjS&XVw#Yqna%mPHT-+#4R548{UPSz_a`@=8ZKte6UQbrW!&S^>mhaio##c8fr}MK z11WEfoxSCLY%5gAcA<*p1Q`c~yR4({H==tlY(Pr`3m7EhmCtfu}qz9Gn9QEiu2-pR#Ck#MIcef7aZ`*%TDY> zLLc6$tI?5SEC-e!>X<3`D$b{y1<`R*zb7-^QuGvjOOrl8DEs+6i;fm!^pv+}r*U97 z?8$H%s^h6a?|cOY`WrQFpcEw{8o7{odcq7O+6B3Kzn4!W+>K-(CcEf!OcK{=G=pNH zBSN){iMBub+!^#c*+tm3rTznC9cnt3B+qzf!}lwQ0uiW~@sDbuU%{)@cN^x4$WO3G z!oPHK3sVBW+8*eTLfv^q0()M4P`uq*N}hLu5XzMF+McRF%yM5TN?nc+MS(VDf7g-k9}CfSxFG`v-G@!FNBDa zHV{j9f>v&RK%?#HEbGI2?g!<5U^J}qsp$3E3^gcV@pk|0Y=A&llJlTizfsZKRW|^w zl(HD=4F0!N>CF-nUyof|8A7-{6uY&572QehdBgt`!Tyc}J$B!6cEZ`xXq=?(*k)y$X4T~En1nVV_7i`sPX;(IOZ=?9 z^!DvaozYi>w6Ee&;BU?3a+8X3rJMP?l_}_^_n||khK`eC*)nt^_Whd2RM+Daj|(AU zao@hsnh;dulN4grggUdm-6acHLnZYux;+z!oOO1F@4x!q&DHs*p;f0-o!zjSE@iU4 z=H=|NG_^+amqnAZvrny;0Q)Wj@giv>)$xu&+wA_u(!6u^Htqrr`<+1=d%vBgm~}fM zj$V++i8-SdT}V;2?_{&he@jqPV`hN(;Xhy+Fx;bW)<{1`qv_@@|GtQAzV0rA-qR8o zC)8R!jEFC>Og?Hd$6Jk$jHXVmVB?%+S`fV6Wr>vTIa&6aeoYT;&V2CZUBAP;GQBTkgl4qQ2oA+pG8!(nB%7ca$0)2M~9B#)kVX)urG~EXqCXeu4_?>;evMo;rIxa~sGd)pNQwc~jpu50h0p-25=)@pLLGI|4 z+&)saJ(gV7hI3_g zoFW#4fNMBd03kr;HjG9H2Quk`K2z*m_#>vldPDp6j>=F$+pzgjfrGtxg7ZHg0drGuQ zB7bX`(pp!q%+KCokl^P7D^!-`bVg*l7qz^&)4giFkgP;AS!z0O8gFC1d&qZ`;Kuqh zP!2H~Zula&o~}kD0Q~ps2S_v|xYcGL0WZPE1;VA2JJ2pYZtM~VLb0U~sq^JC$+ z0N<+lr?MQob*3xXR&A#}wD{43(yp%$&1-!pUiz_i0`m#fH{jt}&)Rd7HBld$?fy`9 z!%Vwoz|^ps&o;OI_1vjX>#QX-FQH8}C=2?XamsAfA!6?@;JHh0d92^wtZ_g->Y!aV$SM1T%gUE`A7U8G5J zL6p^xf}USpW}lBr!e5e}|0$(Mx3nsl&Dc#p4EDJ&<6{Vc5iqB6L`Cn%t_v&4yQ?n zG&n%3In$E6su-|6`94_YrsRdZyt)fDW-b%A$Ce@S$ljMA0$faA-8%8+E|5hpXXu^LS0 z2#&djytj)!-H=_ zQc?_<9Lm70vlkvH;Cdxe(G^a7Bz(H#*ooyYmPd*&=Yu2y@bRyFyuR-Uya>{sr^ObP z?^7R}(f>WO|Cl_?g&P^+>A1|ZPQ!F@x&vB*lwDHnb;2D*T>;ppJ!BK;K0g|MeB#ZQ zv%L}zq^Ah>RDmnrfPBhV_VG9uvLZ1|dun&D_?~TJig9_T7A#!L!a$mZF@7q8b(GCS zk~Y4`@NtK(&46LfhG%dhb!cSbQ5K8c+4^fp**5#`nyD5Gf<~(6fNENeYjpuS3x(v; zL|j@lm-V6D;!T(A`h>1*!M(p-h>2;XGDCY9nA97KW32>4n#UTK1I%V-s1wx>qA}th z<`en|vcZiLwpIUhhvNVJnruN>T6}P$h1#GCp6`i_*qVA`d@>4YCswxpq?$a3- zzGGoJ6GRll&W@7CqI$%ot>F}dXvhW^jtY?glWBGzKe#v`vcB1!G^}me-g?%R|NEtl zw<(6ITuLwbuFu(VG*!2Zw#0hkWu@WN2qz7uxKp18#HHJVOf17?h)_DM6h2}!hrOb# z$Jg>!fqQHa)8M=@uCi@~DfzTAN3cwx-Cy@o-Q57u%pFbUw_>CP2C7_Z2t zrCnt%xpU5YpH9U7mIsbRMc-!G=j_90tg8v9t;JJiD4=UYKTyr#*y$+^A z=~v}VMWQ7^FVBBDb+5EZm-nvd_BVFn^z$?^VrmhK$w9!P&&G9r2;PB_d*q3M89G}BtXY4EEi4`+BR zXdsVQY)BvieywXZT-Sdu-dHj}3bwL4?`=Py7@hd}+qvofx6X+Rev}PEijm-STLn#g z>{_iAxu03=ty6H+bi^^+D0OGr_T_`gG2!3t@h+{25{w4Faq@d=UmX;<{-l2)Mg4pO z+D58kpU&N#fpfE2;$J+q z*2QD^T0Pmn@MixwZ;q>Z52O%O;1NHvJ-u#SuUE|xq75C{i0U{e*ncnm6GfIs0(L%s z+0-ct-5Nu^YiY(5g)5b&Cd&2?sQ+8JWt$1G!F{_2mknD9zA|mRv4@BMq?jA5ZC_l; zr4}w62V3ii`R0G7k`9lpGPW}An^9nHf=s9GG*@z(+6n0ARN#+PdzG6nj(ghl&G4&s zU7v227=I`sb}i~BvP?Df#POL>ol4v^ zkMn$r4^;v9nR>rVpN;xj)m-A**aC^Y35@F8k}Sb~efj$9E(Zg2vER^3TU1B5FZh6m zF>~No?39T5KPhoXqSY3#f0=Za4l&|LdUQQQji4-S_;fLh5fI9i$8tT0h))@Kp*Jgq ztbdw@N}0`L3zahL7nu@JbL;ICNLoTEFIZ+SZjB)JO6fXs#jeN`8fNiPD|>}r1v)Wg z4!Lf?Ek9h#x=l~ISV_P{ukN~Jy|wBO2|lXeJzBkAx^X?NjlY8b1(nX?lH`dziNM^8 zMWb4ISz{mSEk{RqgN$wB8Mrs^#2W_**rAx9{QaEz0)*Z#Tqf}Ce;&i-1jy(QT$Yf6M z@Hr2Fye@cI1ml6YJK%iy_ zlVUJ3jqqFb->uzZBZh4JDD#czo78&D1^?iWKcjQS#@F5Q5$l}L1ck# z-4rX;v-)b;7{cWp@aUKsNOje&ih?z(o`vm8hv2NppH3UXv<6GG(mXkegox=p>pe;+ zj>1^E!?)^Bx3Dm>4ZVvKji7os$~h3B+%0I=aJp*Mev{JeRSYhZv~etLZ~O~%GoG_} zJ|1dc*znw=?ssUL|4K1%Wcs3GXf~3uYA&H3A|u9Qdfjl}4iV9Y^g`<( z`!7wo6gN#%!${?V%Lj3~d7FU);kQ0nfW1*UBxv*6DbMT+VB)`N>kuzP@52-35Qtdo zy4>qpoNlW){@f`qIN(3vLgWom#ec(7&ceGL7*c;NdYSL2`z(zy_ktO%E@RTk*g}|~ zhtwVAV!9>_BAKT9v|{s+v#ZcZucg60pE4@1g_&5)3c`5(2Ur?2>8@M?jA%%X#QB}V zq9oC*TAsDD&w&AFU8!kZfG(Tyg>@|RheMB=(!spcUwg-+gi2jXhC3UZ7N!F*uIV~@C@mr!`hq3mOxV!%x8sphyj-h5 zgtSTMwuMsqLzMi7S?n@>gL=itr&m$C&W~FI)k5iIFN`cmy7drw@O788E=-3N zkg2Kt$hT7a%9H@VPDvWadL1Daz_;y<<^HQY-2%n~oFU*NN`(%;*K+LX!fNDt%#Ejt zc<+n*rYBFVH+H?~t9&y=gag8M)fW&8p7dT~6&>ekKPj zs|M4mT5?+LXw)IyE+x(tTIN^lSJ$1@wwtJoqAwe=-Sd{~2h103Wskr2*UI*CG&Y2T z&88TGS*Q2?)xEl|R;tk8nv$M59oi4mr%{_yu<&~({vo6c)J#<*t@okZk{*YnEUMP46*={o3%sFk zco@lt{U<;8gxkvAj1Dt3O1E4Q)Vt;H&&}uWLY?Wua8&>cP({6ucVLKZp zxO%ySO|D6TZp5yCV4j1-Jpw+)5vVG*9V$(zMlB4NHn7H_?J~e1z<*e(;F0z8+fyhP z`;U9--J2e^Ib~VQ7wuscYN#a3sqAziu_na~zJ)91XUIbZM%@J>R#yT$uK zj4%O9Z-`75P4bzbDsPy(2};sPVUe?bSDj`i492|umrvuH0>$dmwdn_@(k*j@#t#c% zKS-}0Y~6V9fSO$#>3`avGf zSQ|0eQi|&PA>YfVXGN0zt+6dMUuR7$exTq(uk2Z%*~Yjkb?#ik1g9Zo=OX1ckbv?nL#r!2 zR-4M*D@SIu@-eE#v%HkO66@(*TnrJO_f6!XR8Lu7!|ZH8xs|7;$czfF1T7I>Wfgg2 zag+X1t#scSwZ5!QG#OI&!(FghD&WW=2a@ND<&uAroP`_G6Z&N3!Q)Mt-S1v1aa`g! zx|2EoL4B3;e{yOkBAgA{6S%e#|FmAy;vP&(;Iku$E|wy3-0*e?&cW|&VR>COtRw{O zh^pVy{15(6K8!r*h2`vDteB8&`rM7NJ#*X)|MzI4WkMy{EKFDP<^E~EEYn`2xsulI zn?uuE&KIJvr2^@fYkk)CFx3LROGdRHq8ZNq9BR&@N-HfreaO4qIma}{FmL5S<6U#5 zizWC7GcdDSR9bs)U=!_=G+3>LbY%+D)?StjA1t}<8Ao1>wFPT?PS?1u)tqhNr-c6$ z(<2c4k2gss*LCEx#AR^m^qR1Q#qKZ6jDoCymVpJY*oz2#hHXnexrfW#-5`U%nxlQV z1rqW7%@k2Y{5i}Ut#SeA1Lm{M{6FSvOSw1nI%NtxKoG$L5xA;Qay78^r6Bz@hbyV7 zU9_r?R{mP0=*LqUk-?B3r&2VR^hKZA1q^&ihm?JPPa+u^|GNf~i^nyemnhxuTcguK z<^ZbMfSsND8}Xev`a~w>*RM7VJS+X{v$%pB+!lpnOkGM!n%{RIcmrDfp?r`W*LPQB z&dn_@CT%*?OMF&6Q>f?X32BQvno<$A2=7c6vI@VFK#i=TSt`28u-=G#G)s>9Yeu_H z=+c}S6pLVQ70CSMGm&HLq(0s%A(Va&n!%x=g#U0|w5LAJ_U#?4+7KOSvx^hkc5KOo z?(_X2D9JwnXvQeR6c3TYZ*BoT47eV)u-bOBMGILSp)&RBY8>t8H(^2LGg#p(a& zU^~+5#c1!Nn>Z-S57Ef6V7S8sfPL_txf2z{DhA7gqfGtQ@Lzamqr zC+~duAVVf6w%Ze&Gj+n27ms|urx+u6PsTLTc5dT#pbaIxZ1O2Vr&544`8CHM%|Tut zC;p!#$=TF?%k!Q!N4mr+T;MV|YPaNn@Pi<;Y`@>h^pbK9h5EzyV1MQ2ty&LlBmOSa zw12AB4GYqYjya{Rv3 zY-~O_cutc>FWyL5_t~5`@z!O*aaHSZA(WmBaDN&iWm?Uw+*M^r+wdgO-->wYd(t&2T|~0{T4wWa z{$=W^?lME>Gj{mvjxP$f3wddO>(iwWyQEmn@2?b0`IOUY_9fzPsN%(6(CGDD1FlZo z_dy=AAqRo--zdh#MIs-6I*@2-EZLbp=oS^#L$!>KKJyW^CMC2J)DvWp-eNF- z&JQU>kNv6Ubj>FNE~%EZUH((Dlwlw^w=AiXoK8l6V)zZc<$yynKW?P4pQ|)sL<-$Z zq7$k;n0T`cEUyh}{<8MAlhGP2;+SUHe7JjL#*e);qER~&_6J}~1G4BU%PAF^3kZNs zC1>|Kf2Te~xLSljd^h{YccmXtdgR%E<(ef?(sGHT3ZU{A=yR&QnbizgGeMrCF)Uw; z2ktA73l}1i!F58+UAcGvN71>*GyT7Rcr(l?A~c!f$gwhfLQW%xIiF9Zno|x%X5~~E zLTQaT9~R2_e8@4>9Oq09MtTPIW;*sOV)^IxWV!q{*?Au})ng7kWGOL6)rQEK_#7skB%DW4h2F=&ng0jc`t-*7YAs$MJU|h-ZeNxE#Nw*% z>-GRvRk=0XHk$pePeG?y9vH}JuxflI_ziLfAPHQz2;B0n<|@SlG>z4-^Ov#=NVXDt zwWgke?b2XTE>%g5g8YqaTSS`ri41QAaz5t9k)T>hgJwSOEY8B~IGes^*J+T9Ok3yDq|yW)el?mg7`gpMo z1x&RRNuzJM>ZWPf3{j4L z(bbFlN8hluCH~#3dKCf(ywvI!;4$txEg>T~vp&&UmnKav=6p^gvANj4lg+OMqDcwg)p5C1 zGGJw#(WPdVx+<;bBKJapSiMj>hriv20Y5Mr#MJZJpDLNNxYMban6`ll(r_I-0^FxgqhlKb^%*oL- z+2L-&x#RCRwv5cLA4$05(9WbNN`h{iC1jNyvHRqNsKPz}=S;cV4%NzRs0K~`eaYW? zNhnWd34^gEm3RRZVa=e`71*x=u?mwn6a~b`P~dE9(noM3AyEG#5#s`ZY}xK@)hm(z z&T+~5?z=sgO;XCalhAS&6`3|X*{hfCpAM=vM;~gP9jRra9UZ@;hy21c1=q*lN8az2 z04aSPFM8e&g{Ow=Y}Wswos0{0OBgH%COVW9aLHb%{VjD^cpxO`-c6cR{I~oEAd|Vr zZv+j@y`(Gt`|`(>?$uxMa`60yI;ia>ZNCt=J zI$H8hwmYhF0xQs~X?A&v;!5$v^ZI)+c(!DjK4iaqgWz_wLe?4sQrmq?RZk;sz2c@o zGgGdNl?N5Q+XakM3?ZVP+Qy&{Wsa=8)#(!wkF_!jeBTAxn=;+a>@Rydds%#;1+n7n z!SzwLJ1C7FEt`TtCaQ4lovwjl8l`8%9fJ@Kt-D$cS7-EmMy7wQc_)S_URWM^9laRE z`m4B2#lv9YLge%@@HsO5HM!7mcI+H#&D*C6Lo}=XQ@2h@;+5=xHd93+g-RW}>Xi+n zyC5CVKNH}7-kDxB$lZPKw{7C>U29MmXKRc7ux>T%#mUfI2ZbscpVBsf-?6i>nGik% z|8J_Owynf%HXoj-omaBtlD2<_(%ERyux5Ta;}J864w-K5qqZ}9vkSaWS`^h}HWQEh zrr`;wp-uq)7Le6EAL8ObCd27}ldWZ$k~Ow$@LYTFCzoGd8XPoWJ%~KO68-?YPXlO{ z4xn!WMptdbG~)AUIF6%3Uc%bo-!}IkMC75+`iU$>tshPZJpPr(@`^pSy9IU^MDsc- z)up&mf(CvvFYayH>^vyG?f5GXvEKYQXLY=^FHk#e!!FKc7JoT`g`%yty}fO0!m)L) zScpk~86J|PJrD{`w3z(7qSj}*XzBeTBpu48wbpy%NwMK_vz*eF)xVDB6_Qn^ogFVy zK#XWHIUe`q;TBYbAy|Zl;<^3drA9`|RdWLaBjJKWKG$y{-_|tn6#)>zr^3{Pn?~XV zAk8k84mf9(McprvTZq&GF@6n0LX`P!t$!sT?w4#m;<0nNZK@(?AL2$nymrbR3!I0+y?8Kq;zSPei?mF{qgjhfTcbs{dPvLo5H!YC>2xCSl9e6Cbk+niMd-<3#-Axgecj6g4PqDi@vG<4>i;jtS%Z4*AI zw4yh6SrsJgBXY$uH6zAtB5Luh%z@#s&%r$)5dn`e&tuEKzO*6X#+LhoI&5;BJshC( zH}67pJnqV567s|nJO$Kcc3{U?0sf)!ph4tmt<8IbfVLKRBBw&w2D%CM>vCVhJ>}JX zhPS#UtQb~6NY4>*b+STy;d7+5_IJ{UJStGMCfynJ6Y&fDsfg-3>ML9SxK#g&MdFy9 zn0u>KS;LFB`=mXXjzHSL#00xuqlvfbFBM;`GBV%{QSMZ;)>obZ(G9M_mv>bIlNh=V*< zi7cLY(!u=p=wU8wPDrkA^i3=UvRXl(KEdeoqgss6VLF~p1)!gU$`>4PnSw0kW z#noK>sJuwPU0>g^b30oww^TTa83VZ5{Y>Cr4|3(7z1)x0gjRof z*FN#RsmbAhH8D|bcQeu`>bgsF(z?c`*UtjC>F>4%+d)-fJP4?giV@3~!J;pV{`Jtt4CW;~t_KU<%af$ifyJ`|{ar zpOnKIlTd4|2W$RX%?18*jnA!eGN9UpAlpa(8H9hgqCm7WOJ1cD+G2F81=fcx8feUx z9SlU=Y5Qn{twD-P7UJZ^iP8vid()H|*0uuLaXu__H>EcC#HMb+#*$sfKz7O-!1(+nplG*ZQR10Mdk z0y3t5S?f-GumDYK@bcKFaZp7$X@y3tcUJ7LtS}9f5%654d8`QH9LRb1A-UEjKIIWn zbMNxhR#s4}6n$0j@%O0}WWphI`M{X|;Bnwb9;1duU{H{zY`e{O>@m$82|}RdpzxFAa~<2dt}>roqnMh zkfVFz$BTo2iu>*Rdaj6Dk^Qi_CLt~X+NQNMsed;21EdsE{L!1R7vn_%@hE^+f95e$ zS46TF8bMfcc*=>`;ImKCPyr3drorU5IbO_T-hN?cUzrtm&nkc5;V|^)_8?m89@G=N zMM7Z)w})KFkl&L(=0@+y{3=V;Sj{W58Y$)f89x-fNm?gcLU1)0{@IZKzXS3YV!HTX zYCX&jPo&GY2@?`2xkoj5TWBd|mJrO0bby(PkLM5-^7|>t1jc#2N>xp)UDj)$RP+4= zFPJ5Gaz#7+s2F(xLylgQI4sJO{tMEeS22ei{)b4jXRt^K1y+2#tn)r#iO+u(GX3rt zQIqZ~VQ zH|w##+ z{FwZ!-kKee?4}%^p%Er$9PHYDPl4ezky9ap+q_fOyMM(@a;RAT)9{C^eC)Mcb>kbt z7uRHxZ_4w8n1&L528(B)ftH*gu1CVlgJc<0AjKCrrQ18&%TeiG|@vU&O`2Vok6w7j=+;<^G|Fnu=)KOk`i&VXH9e7W-k%w{j$#8{!(Yey z>#ICc4_=}vmtY5yb0^0&?y&pyALr>dPFdB{=|oPJ^Oa1K$4;vS++LwCn;&ek*Lsb0qQN3TIQ>B)Iin# z;;Tvre|}^OhFC+*jrSFmj4r#oZW)ATft>gp6V3gBLA-X5|0(D#iWQH`nS3=@bCk!5 zY4&O|f)0KH?Ffu$r|Pv;p+H1!Hmu7SCzt7@o405a$P);W-HcVYKopvCE*a7PPWgXU z;i67dvix2OzmJz&)V<(4^x$~}z)EhDEi$yawf{Wra%2X59}IW5S0wWkRU*M~+LwZx zr07Yk>88=d%IW%x?D*GT3i2z(V%`kiG8g%6!J(=DMA(^;f%ORf)37q&YD0O^{Cmhl z3k2}4Y-#bPUtI|}geV+*7UsPTbLoxUFkQXk5TWI)O;WeajX-xPym{ zA~Z{1xT#{atZ!@N^y1G;tEmke1ZyJ^@TH)_WN%TuNX`(%+dL)`8guazc37IyH=?g1 z+l&g?-8REi1Pe$J#vs{J9L;}hjG0_&n?;l$vpFm0zbm4Iuw%f3x*i{--sYna>bDt* z;^`ayBuCJ`XKe5FOPa+Ff6^M|BSk9o?PgT%<;7UFeEvC2w}immOCaSD#_!n`e4A;D zWZNqTH)>a_*JP|Rjd~3Mm&tw*ANItS+a$nkzey+`6s2DMcGFsh?aVdc>1v@^vZ7HF zOhQHYG{P8E6PfuQHo_(PMC6SIxxd8$=b1n0;jG{(H|ihp=0D>&#EShWmV_EiR@WPR zdgydXX6|O9P6|M(+ zK2GpA!CckaqcJ3+B0E8&Z9iuU&V@(~cNnOSAjflM2kw|!*TsyiA_#xLC@y#R#9sOv zG6N^)Ib^{pL5ZU0n@EyQm(%`S-`&P#MAQ_jSQv`-D%0~ar( z9R%bt!+<${i&N^Gi)>u>wD?TGtQ!QOx{>Ux^awan5A9&^u)&wc{qvhwd!eMUGXuP& zV(&$k0;K9@&(#yXh*nt%4cS_Nk1{16?Qbt7%31tpO7ttw0z~%Ri;mf)BjG5#aL%*m z9gkn7Ep55=s*_CH>Yp3bb+4$=M4kmvs~eosx%(^(!_V>?JU8B_>P<{Up*%%@9ljM+ zB-GvM|Me2Zff~6H7IDeQoLSbALDDMoz+UIhh?$}J<;1Hi?AD6G4(x5m>sBp;7~36P z{Kr%$h`Nh`ktzhpWR@0Il*&1aGqdmSx5k?J_Q;d9It@YwX#2xPk3fy}w}YJd{`Q!g zTR2Y^N+kWq6pjiIgkCOqr^GP7LqZA)2S(f~5|z7P3XftohaSEC?o_0`Kbr6Xwr}|9 zQD;^EC0_kL#-bavqdd0c8~shVG|?w;dYDhc@YvNN&2O$hIhi9wtZe?Hpp1SXme*%VO~@fn*x!#oUP4?j*QYQyQz|)QE$f< z4gk(gAJu923TpL(DH^n&B}N2%-qNu>Bfs{fCF2(6QO0%bROp2S(><$xzP8n2TWKA* z0zFJxvGjz|sG}Ddos}h-7BEMbwhaO;T>=rMhmtBTi@und?Z*7m;bTC#YPrV;m5K!C zK&!_q@{?07-95DBVmr_3-|qx227@VU=Gq#TOy03uXq_kPEe1;wvWWLi`3HQB%_Hac zNcL~9z=LC=@d_&3lvAYfT`2|`mxaj5C{BxG3*cv)A<%uE56)fBO>y?53QIJmE~%!9{P zivbi%O8tvFDUWUr%BYH1t$9}vL0rU8%u1X=!aMD>5Ybs)Y$p1w;L=w=NPPNcze0j!(_lA?+%>%Ya3%$B|NpJ_Ww`F3B3k>t}Q| zkZGbNeaajax^MTVR~Nse3dC=NBHFVuP7K-h>Vnjcerc9Ei+b3;0EP0y#~BotWb10? zZ|C1iCIV-7tGEpUDKKb7rrtov^U(R9;2!MUFbHK8nF|Mfmdt2E9ZekIl$mm3g_e% z`ym&jm!T!R;QxJzcCXF58p&HNPtGkVtGer3e(BAtV{=Z6F}wAvJC#udl`x60g%;}M zYNeeDj@dgXRRZI?iGJHFfY48kOV81IMnB_YKTYz>g}|TR+g!J}B7ZL|b4BB{yT)QP zYH=XrMXcWF(CuB0qfsElDV<8u@BK{X3ilp`zR48mEIF|#)ru` z3=Ips3}}XRZ08)Zyu2?besYuk`u$O*+^fP5Dd^G$d>4{_se+_z%uvPq|G^ghSx0<$ z^LiEtdu|0RGIYCDSX=f1RoT>DrwM2?_LV+MkW=JGap6b_d#5rTFNNLF9-?kf$)bM% z_+N}IgUHV1@MATpf28@z?=K#9f4t{AJQTM+ZR?}admwcD>1%OK0T)7u5SU=~Rpb_< z1ykcp+h}6#hPwo9QL5bnks8o^a6N3rD)P78W6&wy^P_nvTX2XCQt`Yt{)#Q(-qj)`9j%GGc`e*=NV9L@F(KFYJ78FcPhayLBVo&dde_qR3dzj7BxJr=8a zIQ>ky$4S(_SHV!d`JH;Et0ix&=AaE>XT*-S&_<+#chP!A92r+(JfR13>lW;6LM15b zCmZ80`}}SoOIEs@kgSRV^}r;0`yarCG#y>u?dZLcrz(=_aNlxiUr`22(*SR0Di8e`bv&PE?gb_0 z-iStWGyYQ?&Q{!jBd^BVu-Y{I39N-j+Fo+5RiWclTCsx2y^r1jx-qhXTeRgs(N!VU zKVzT+4bltqRY+9#Qn+rR-of>*OJ#J7TeOuf3GHYkN;#gDy?1rt-b0LnrlDncJ*7dj zzP7h)2)M*qPkpj)<0+?wai+Nc58GuaHP8 zM1jQ9Xgjz3qhojL0e{=*uYV@v=b#yu=hft?O#tM}`S!o*eWlZzz=GN(P_A#EWSSMX zP$;MNr814*EKej`q`oGcwIffHI}(v_z?SMxA|=_q__&wIwFgv?hFFBLi5yat&XMS& zP~o31`k2i?+xYX}r>qL1kEIBlEx$&OiYkY{j?}e2l45F%>Jo~B<$*0D&nlaDf<lNN4k>`mJ~)w3>3E~fp)}L$ykoJWyZ{@E4t2Nty+Ei?T`#nKih#wN@r<0HVj4_J1dAs+kqEx#u ztKaJNUeQn3UrJC*x~hc*)*MnR_@ z?b7FOd^bRAYGoc3J_yl~?efyV=B|IK5RFwv4wPMlF%l!VQ3C1qt`Cd^Y-L{T=qHc} zxY5uR-leaP;K-PB2vY8ca^SxIvza>SoAzb<-QA0^kTK!K7-fzs0|P^=+l{Wubq@0& zjoRZ~M``cCH{YRR!0n!FYgF|o(Q5ftWWug+F21bhokd{o1J{lZ7g*{&i?enk zKdl+>x+mHy@Z&@AmbIJ*?A3~j>;`DyDp6K`;)l`wY#x{xj8T-$?yD_%L#`2kJ`#X7 zeW~aV@oFp&z8;57wGKl5cUQGIv%9WprPogV+SmEBRD_u0)y03Z9w@wvj>fgIAgx1# z=clA-GKa695zyLoOq$BKABa10#YJzgTeXooVDXN}%o?&HUzMF%>T22;e-Ohu}!b{j5o-C$h=Id~wm!DWn+dr?S{Wx0DIRot?fRV9@$DtA3l3MTUH zKZ)Qbd)dWys1F7^YC73x>^d#3s=YsCXW}{Ch^}RBQ9n zLTfcx*(!ayvJyAXx*7ega!{it;oF;;b)bfp#WYH<>eN^f(5lO?bioOS- zR(GbHE+^3+Wy9{qtMby@GPQ$*S>Rv-3B~g-OH!2-r3Upn>amY!oZlLH%PJI1|5dIP zLVlRp$-v2F9=1{L9F~&)qM{@;N}9p5&TIPPvh9wA{_)#)>fM3guNN_pF^wVeK93sv zWw&jOZesDQ%;lLLN*?hQnSTqO0Yi)6dfB}4@~B`$jv1n3nKxjA7ARo&Ff{9pU*SuC z3<`gAlLYif4njV^c~QbTKNp(3Yy9K#g9n*E+|5dqQZ4-rKl=PPv9k|+HQ54!Emw%0 zMZ}G7{DR!>iPB7Q`@{0b6}4f-{RG9Z`9??2C{&L+p-`wI`NG&W9OVyNYK4UDJ$b%| z-(Q^vLD#>%aG&{`>2jbH3nr><>EFt>iiy4{F93~QJpa_@ljmhoai`S$^Gwn zYb_6ln-rNomd@#J666Qe+e;&LhD{y$b&&qk*)tm)dJozQ%)^>_Cg1C^viRZT6`7ax=aIvE3 z?*Y<;%pF3Nvigc8U3%1a{zp|&a)6CI9|HkzAtfA@b|rv`!Jz4~*;^C$0H)gs)=jMp zcF*Ogi3K^C@E@-tbI-l*inY}d5Spjud}~k+wXHGuAIMvj8Qz4kz#VSeeQFR_RMfbv z2cv0zeOuh{o1C;U+>EL6SKBs<)Sh{SXnn2pX;4+y!iv~{ST|Ff7x2HGRIGik7iji+ zo7Tw{pm-_lNd}b$tJvIbGMnoG{IU$#U?UE zH$UoKYx38{Q7iRkqv!n?{(Ipz)+z7%bONac5ZIP< zv*SXP+|%Ihy6&{!QdKuRqkn(VU;bBDex=1bNG;Hf%t4HvEzOq8Cy6os{TT6v)%%IS z)k4sp)x#d7BhmX!zE!I#-7`rOYbEb7*76X8hgMgj*F`x{D6U(s(Ud+~p*qXs2g{|S zQfh@ZE48A2ZsZBx0o$?~*y!ba_7N`O0xX(U(Pr00U(-#LTR7ZLNBJ9_XsCnU@dp8P zgq}z!JcxH;K)@;1K8q?UtwH)@UDHW8?DYcgT-=qznMrSC_b(k5(PN>Ez*rIOp6>6& z8%k6wKt|RchBIRyaq!4v-?@M-)zs~9`9zHPi^a-8K=chTB_7@T_TtF$= z=r|>LGANJLAHZ#1S@XFvquR@&v64%K@F9c_z7TrhG=L>}34~?S4lV`)N8iHt;J=jT zlN6|;kBi>tI7o)9o3iq$e9{O7Z=(H??{l5U3W~6ixpzOsXb1XVN<25v`ix=?jy*9C zE2UpGf`LM_{60q+E-`_O>y!;4h!#HGZGbAO{a!e{!8@W^DQCK<`D&4hX6XHlcnB$r z>yxn;6YOnqv^^+JM5fe-frb8rPw`EcIG#J!hk@<-_YQdcds7eQM8Uwi%5KDp+L@$0 zHn+Il2}FbrnD}#vI{e2``AFJdQ9a?-n%qZ4+yEZ5Rv-OSEre?NHX*MD3o?ATOsJnzrV9Dhz9)c16Td>!uOYf0Bn zr~gcD)zbL8A`f`Nq#1w%pm$70pi$8Xzu<5H42&j8&LHD$rs*TUjG_-7#`L%it^6!d z_{{*ruiuJ^{JKo9c;v2JJU-A)=ljQjkZg_fPP1sSb*xN+c0|i3EbCThjILa za_|9~?#aiBYYkn&E4wiKfN03pq(wA_o@el0tUpj==R`RDw z>Nmzr^@%)w0+_N36tvr|S~3$nV1385N=M>FkNKgVI25(e!Ai#M*IoB}cT+-C(gkDY zH=bjug&>4{jw3huF9UAaIDpW&V+>%3N5|iAt~<+fCh4^y7yd;QN{km6A~^bw{naC6 zF(wi?%)ocRBuW!8j%QhE(#Q7-NsRQ`5F+X#3dJ=>Abo75KIyy!AwXw|;D-1U|Dp1MqC};# z3w{$t2I^qYV0c9(sNGY@%eMdg2Dh5o#-fKNt9yDGvE-U)mLY zZ(`!{lEq(5jrvV<__DH*pJ2Gfzzq)a>TK59roXAEJLf8_Y-pdAUo_TUD)!z7Z7yRc zjwYU18NAjn?MhKW@qVO}$E?!apNXn89vhY$SW5rVX_-;XLYqsTUHVLO*}eOm;WHAY zaEg0WyJkWt$g$gtI;wg%kF$7_m{RD<<__YrqtnB}y#Hno{#yyK;KVa&O{Pwx?z*J<2%j@t*tmg>^kA7 z1fyg=GW1GVYh5Q5h{C-J`8jY`n;eJ$_7N&g4JRbFd zKfHhPLKE1n7Ag~GvApp6Q|p&1^aK?ipy%d+C8W|Ilb*^PaV$CxCsXO4Aev>4X|P1- z$gciou5*0(2T=uto!Umr+=*@H^_kVT9(GHK!KWo)$m{~ZJ=Mj%nURRz2y6d4^RVkrM>0q=KAg1OmogvVYeZjW)>lP?>CT9jmHE z%Z;z!w)JXXg~E2cg>52X;k>jWwLIowIkH}rKXmi=ggC*p!!w|~Un186XT2R`xLX^! z2<#%4)J5Hr7OV!}E*1H1%IN#~;hPZ9Psb;}REq|-Mpu!dwS80_>a9dG#bw1n(m+nc zpUHkcHZi^aUZ?jt?X{>E1<#u8)ua;r4Z?a5b#FaDJ2U|yq{GcVgd;tXgDcfBKr61n z?uk`e;_64#h*nD;QwKIF&+YB7%CO?w*Zb4kWAWVYydB(9M}+{a?@nNvb+`)^*mknJ zw*W~r&dJL?7*^HK*)+%F zeZj!cQW|f38(=0&c7MTGHtjYRpZGEtKYCeB zuGL>8Gmqh9|);8lb|f0Sz!PRr6; z{&v&HrS0SeQ@z!bg3IkstS9)EZAm*84DV(M9sYI^FJEdWt$r!Q!o4s_cDhE_7TWQ` zop=PymYaJ;K}{6+1LF;OsO88O_mA|?Oj(1wX!2Zr#0Bghwg6`%f^H;ApdWT-%VHn1 zV%0988Je8%CFXt{oggk^GZ+pj)Lro&S)V8EPW%*-Rw!kMKMcCAfFyW+%ZQAIx4nJy zsV$E_L=@(+2|8%h%es(xbC5*jVrj{Y z$Lo&7NFvtEMPlccA&3(Nbm7V+;=~nLH!N&!ax&m&j)lTgFWkJo@cFwf0PkADT2=() zr(MMoi<5s_*IcAGp=b2wGHUv$7DG07o>%EcM=p}XmAfsYpYm&OBj09SbgNNzJnmBl zt#_r`UtrYf!W{gubvyP%x=i(|xK*!Oz3&{V-C~T0$O6FrxVBI?UVLL3kkVkbn^k4p zH>@f7oUgAwoxa8!cr0~d8Phg4#0(?sB@32Sa?N7@>lI4l^0aalysGTKae`F<}6aei)?Tlyv={0+UF9vYj)fI{({_dMt6R- z(J|Xs57*dOF9uno*MHy7;4bk7eKUue%j~P`eR_5^VrEn%M$bd=Q!s=?5s>|K_r{rW z=Ro1hzJ-~PJa(9U9Ij7c-v4>TjY#V$0iA>ptv0ts-VT{-Ezx{BIn3Cj!&9Hmfw~#=SQ@^}>U^eQ6Ex4_lwvS$xNw^>%mKJHO>Gd!ead5<=o&hQ zT~rbxx8a*U@K>@hMKU0}ZAEX~DNMOH;#N6cVee$^Rbs$&U@Z#RD;y5oF z+Z_jZ)KV(7L}-mcnLTQ!iuUg5TxJ^Ot0^K4jiL3ogRD8YvDh z6V6kaUed$VZRo1Wek`E<(ArZoBW1yRB?2O;*LEoP6kII!kY!-PPh+Bkrml@U$`4`*7SAlPgssu{rB% zK9JWabo?L4WRj@E79Wa>1Qt#1G*5Ei3#$j(7hC>>+S|{c=1cqycyLQdOZwx3IEf%C zL-p-8sQBc${3u&&ZY2npR##X#-Y@Qc&C*cYIW&G6x9-ZIm55&XZfY~HA{X_fnR**I7;D{#3I~L6AmihWbPdwJs|=iIBdI?u@-|I53S%8ox;a@l7rnG6zhvDqlaSVaOd^8& zx3?`T^0)UB-i6d=9b9XTDqUbkbkc>Ar)cfrC_OzwpuZQ*iwU zdXQ@W8Q|6A9`Z_$0RguqGjPed4)Km} z$$dHDlTQq9?>EQ99U%p!KRGF2H^Ga8iqLbXqR(bDhdBbz)hMVN2*BMj#Ob1KeGGdT zZ7j=@w?%&`r|Zuclk^Ywmi?J$@5SAH*QpVqhTmEcSLUSRoo1eowXC{fAnWTE-h8hT z|61Y*7e*VU8D88EQSjFyyH=7k@O_R*RoIB4R()+>Pns?J{!blVdOZI(=WV}yDUm{u zK@AoDl+0kXD78NL({pxv9uEe8<n>bU)$zg}hA${Qys{N6`qUw_Aj$rfp>>GI58d?I;>+E2)amHEy6d0Z-)S{SeZ%`2e{gV=zepYqB>tW|Pk76yT%z$f+^ zu)0^7X_FJqtMM3R@}Ov`b9&qh}=rCH1YR0o`17`lOb4V z2nv(=K;~ZG7HVVMkxADoRt2z|6Q9!`S`RE3v1x+=dq~-hF%h5m`+p0u0NgY8tXK8el z*|8om0-l4w{`_^&hYv4HV>rJlKH!Avq}egGTRbYfYcJnwVLW2moNqYdGR7dI*P0;9 zbn{fh+HW@C!F8|O=ZH}S7ZkQ+8;#)B_wxevb~?>rTs|XhY3O7Z>X6T8jVC>xJ`!M< zaKV{frQ+q@uD|0tnoP#7YBWas0Hc~`?LHo@DWMKVks?`oJy3}1+gItUB=Y^z-IJ!A z)&B~U2r$mjNn|uyQ5-^etbsFiaPsTqDbGp2a=;)!?g;f( zpYy|-kJ^f^Zkp;{MEVK4yX_Et^3(*%E1TgWZ_E5*um4h>0C$aNzj>Y0o1Ql;10p`1 zVo6HpJLx}9jgg_vbZ+@A?%#c`3 z8Lh5V@(uuLWIg{Rx8muwea8D^?SCNUXPCzY40Rs>Lc_(Hi+Ubs~ zW^4qTw*yRdDM7Jr?^U&4c5`vo4L(gnIO{RTN;FF;1@wP{!M8G(hQM z%FrT}FcKAm#)O7i4p^Co5?OYXjNsXJsVstV#sGS=_uQpMpiXEo4J=_5fVvEZg~`@^ zN|%-@=frOLxYeV-Ih}YhpftYN+p1~;uDTllu=yu)L#AY;wXt#Qr_%IOD|nJ#FS>u= zh^7kc8TOb`ajA4nv=vpNd_Pe|N=*o@xjw9rq^tX#$R(uqX99k6`MsaGyBhoSpLmob zarw49rSWqTv*D^e|FZ2#c90uhK~ZxfgS@>&P|*O7=Oh`}R>b2@C4_V1LYbYM`0rn~ zY~`{;_?g{`g~6I;#uy?v1zNhK9vm_u@b&;?A*FF)Z13R@`JJ_S}39yFQ6QBk)s@er@SF^cos_p zDo3%a*?luDConj2wJ)H{sSj?&B+PTYt#G=uF{grjJ-|7m62PfG#$3^{{eAkk>tIqo znd@hT_Z`n}g*;n$F3#FSBH?en8V6M4@UWDdpKsV&_n{x7krQsPd9vvO51LPpJT}c@ zCZ#E@)u4e~3VHq88l`D#kg?-a-e}HbA~zvM==%+-fs;dRAWscyqfmaH4>5_+>x&1K z-3s*bBoqRnNiEqNwoYS?B>7%HpXVkY#I;va*zkHG$00&p`zb{2Pdq8TAZLNKv-$o8 zr-K&d@KmNb%eponrUQ=!ymv|uX~)KMGau zRR3Qbzve|oR$aM9?#)VNWsi$+ja=iJEqjGrve!ivUDv%<=(_f}icnTm_O%JgEV{N- zc1FIx&+k9Dk9$A&^FHr$&g=QKTG7{7${*L1{7I@|{&qzv_#EU`<>@_~gOFrk!zfLE-N9;0QeDRCK19Z&464j6&ZPxBUdevi3)hE1D zS_}MtrxOO^Pz|1R*#t~;hH~NNk)^zT{%_0#<|vto^twH1&US;PJTo+(RRC6P7mMJA za2KmX*`YLz)D99+J7e_XE;y*2DR9lJ(83P6VV@W#ym!c{9T~#x*Tlz?(tgDm%oI8j zxUadsSjMrt*tQTqB>RZS*+bKo(+s?AF1SL>a3%i-ssb6z5~+lXU&*Ki?+L57W+4rs z?bQ9sEoemClCT1mVXs6KN9p|qVdpkICzaRk5_#3%NZ?0d1e!f2JZS{fpd7_yTy&>I z(!w7kn2~Vv^1neN_GkFKw|H%C1pgC@ntQ*oQO!d#mS)K5-SkYieSWxs)H#`)`LUZ; zvAJI2LfgJT-(-S4mD^BU+!B0<^1hpJq@?skJK}hvdad~3Vm6u=wdyF@NjIW>HJT4g zwjtmOWw47m$dMn~9ogd7zC?Ea2l8AvyGdVR&v(_uf9ZfCoFCnMDoKCK;3!|h zNpl2MUa#3zciH?8-PcUf1)#=leb$x95j%xRzBrhxcWLqBD-6#3a`Av0tMrmfTr2lp z0VMgSW#>mj2ZAUr{xK>`YyGaWw%NM_PxP-wA6ncLbur$Qt>)e5_;>iwxzp9%l`@%G zWwizJ!uF8r-BtOnCaPJpVy%{SmZ>i=Bd?}ks08vh!Fhb2msrIZS8+kq`kO8@=WhMP zsng>BqDvi2v*5&21SS_m`4Cc90S_K2Rej>dxic*h#|1j6x{H11eI@0y`0Z&95)r7D zDoQe!^0zLs2nK9j9fwUFXeDB=hP^Ikss;LW&&Bnaq2zxQ;VECk4g!P=%UnbVM1y z5LxK5&Q|&qV1`S(6Pyq%$H^6>Db4UApu3azyUMT>x@OIg50t|e6GS?%qS$n8ppx`> zgt>&fdZ@?xzAED-@17|}?)>OIP;91-%>%%d(Q{`aV!ynFi0vc<4k>f@?Y5jwuj2sx zmBjp<;r-(BQZ*RN!y7ErEv}<}Cw4Y<(`1M1y;&3!=%(q*{^}p$zJBlayjVdM67NGs zn#v@viTj6;70BKvQ+I25dY2Py8g z^joj5>V3$m8|Lzy+Ay;P#IT-Qk^n?;TslsP7Z=2!xXxo9?TXp6N`59ynQfv+o}60v z%iLlGu{T78ilk_?b!J+!oUN}PS=K>i{33#E*1VDDy5!TCoc;p)Rcj3YjrP5`F^sh8 z34{NWp75!7UL${bb6h(CwTe8cgGsB?HB|mWgw*uExg5B&+5psg(aT9s#5<&rVFBp!U9+wBUlI9E<~5{-sk298Ptor4E%3*`&8{^EyJl?x7X^?~JI{@rPa%;m z^e=*nWF2E`zge9Ll=)Z|A_abhr?y$0D~XZjR42t4BkZ%hTu)X%^l^!2{y}4Wg`9;m|!Crl9N_)s-Snf@q3Ay@rRq>|=;CgrYK1S+? zp<2&{bD~yf2n-i2Vw-~7&NAGr>BZ7EC(=hPpq1v!TsdUUa5g?Ee>O)Ka`>4dXf@}{ z1(g!5*ZvCmZ%Xw~`gn(S?}S9A=lUnh&pC3^s-an{$Et6vR!9kg>U;Ky|S+xvP z@pF?w6==UH)htOEo@f*KwVR8|z`)K&Fj)cDJt21Eez!D4flzCl(Xn%J&{HOCj8Fdh zSovM0wd^vv&k54qs! zm2Kb)z~l_v+%NZ+F%jz5t@FEu+c{FvUb5`Xm)|0&lWiXok5Y}<6;P67S>?d=ShAtd zwnb@cRv}3=%iSsS(TB!aC>todJTw0qdmT3^4W-$vmC5mXSFuBIWIr$NdMLo`nH_r# zFIr_eNqa28GKkPl-bUmuzLg+wf5qzUi`?IPE$`Uk0=`VAZiaGrn3-~#n&s|?7-nJk zVDRyd?&f2S&S^l+R-?I2ywmP&ou-_V9r!Nw#gP@=^(!Az;vCwHoaWpNclc`cWD2Mh zzw7e;oP0MLB+~}v>~nHeW>c@_;f>bY6#sG;s*73GxA2&O_9O}piWZC=Sh!uDE>jWm znA3F|qq!VqrSH0+k#!Q9&~dW!(-zMMRH4a^i%*^;!uN+klqR0n-eaemSv?3LZ3m2R zwWTw&_7f;qM**5R`mWGuWPtqrUwECE^}h{{5!|B<1vD1d@hV?t>)J31e&RZ|5~6iC zn_8{VxKqaUPCoIYbSWMLPAw>B>ENhQYM)pT))$4ir^(fyxvlSVeCjWrDGj;x`l;$Z zb=l_ci{+gGs0)0Yer~pw*tC zZ#J|1bMB&r7-!exlFvrD4dc@tDZ(AYMxr}0?4K|7>SPdPS&v>O>o@G?1%qlEMc-)u z-M{xR@VtyU%XS}O6%?c*LNm9}cNkV-owGlFqKkqbYylCsc6ePa;RONrK6OzzM^n4X z2x_ttRUp|10SKC!XXShR(lf@zt3KOjRiPrNn4UyN_ep`+u)1UwbJjlX!7pEQ_+Y(O zko&B|MyFii%r41+nN&Yb+C*ha(yv^%q+bd=c^R ze+NL{-Hh!h8>AbbjyF0!&JDb4S9}36L=}7sD8OQQWS%!K`wM(}KE9@I9cIJ2j9f?` z#6f%g5xwjCL#Ds^q#tC_RH=~T|3K-e`lr&x0fpM?s}12?ZRU(=?|XGwXgYW#G~d)J zOVG2I`p(s#N4 z=017>yM4VgflgUF`f04yhc2FBas3XNbVuo#$J$73eXkg+H(t&_pvMHk43` zeyfz&g_&@LMwNYP)s38GH4@fnk>tu%B{SZ$8(;74G$Gk`T0#H1B88!M$FY2{AV>u` znetqD3YBG?tq!dXEjGMHxN-zdYAsL@3E;S85%pkwd);_pX>WfMalzrckBQ`3xXULX z6!iAn75gWz&-qX-2)7;1|BjIox5E7?$pi!KGOOCm#_Lf%Q5AGJaUKEGpq=ZIhX8Pm zG9MAJIZ+i%{4y87VfZMo!*E#E0CmpH#M3nl&N++zWw&GY|9dLJrl~&2AYEG{M)@Py z!b+Ojbm6EYg*tl7J`rc%g%YIKgDM=hpIwTZvA>`yGYj)W$F7B&)4#6Mh>ws(gfQJ_ zj)?La1Qz2+WTvY|R~z7NZJ;Q1m*iOTqsz{BeTCS7q&4V~3N7`4L()9APOAFL-@HRN zvf3PL!9tkHS8~?FbN_D3${0Nx{;uFprI{;)>ANv5Z2ukYZ3fA$R*8QrR%D3|h1LF( zZXtw1*=$sP6rD`8sg0$_BF(;K47cWjbR%-n_f|1$Qv8vfXT22rI2;@3VS`EqYw7&l zSkVRb)cGOMorY(U@+wPsg{km~XfN2g@3Cjm_1?OP%5uLJ0&cr^&AM8K(`)B}LQHwi zUrxmq&>h(r)W&<3Lx0nDRI4Or1|LjJ+EfPm#sB-X=1uN~d>*+l+Q`~^Lzk07_a1XF zJ6m-3thsXmk>d&y?Ll8+_Z6DVtTq1`{X%8s&6PnIW!?VdqNX$=Y2A`G;jK>#FIYrU zzusiHhg@A2E1JU6BUVU^G4o|bvAzDydD_pcdw;ty90Kk2o2D!uq=Gxw_2Qg{hqxLX z@{hcZxzRVojqWKaEmV3bb*>vswXhjWF=Y0;#v1%#mOh(`Vp4U9#Vf_5jWWOkEo1NK z-_o-l@-ubm-20-&j@hSlHj6sC;Jw%bTBK;@;erB7uH3mvc{<0r#1ezMl1CNv7VrVD zXH$iEQ-4fnfVP7X3sGyV7$ovd@+bAv=TCV`=h=pfTO*!+;q;6>Z9d1H;q>%@^?x7{ zW01jmbBwfKw{tU1BEQrKe&1fMR)&QM^4Lw2>+eL265Fw`CWX$4hE~!4_ua+(XFzZ; zOgmHbK?c3iW^Asx@tf=>4H_`wvYVGZN&JapKY%rr%g!;+(TC?dnDa-woo?UmVT)f$8-jcah|>%ue(H-jV`+et#oP7`smciR0kWZk zvv^TgjShai|1h3b@)u8J~fy+1UPiw_JFMTLAGi_!?M<5qmnzc!u zFMfv$0yB(;=XOtOJ*@rt{GX>MFNC-d4rnS~G2Jz6Uu-%~j=Q7&O48CEQ~$S3gF@9q zrh|hN(hxK)a^^Mmw-+;|S*GJY{yO&;mp=C|2*fj*wUUfVD>6e4+wUDdVV)6Em50Gn#l=hRXqjW0aAN+5tY|+s*GY znNvBO29SL|x`d8{0#;(IdSD~)=9t1<{|w`|Xg?@9w{w);YbhV4%@(jV_ke-nFG>%= z*85zkZ5oOjLw=VPJzu=NI+-~Q2YdUBXaq>rzBPRJYH^n;Ad&*Q>FB~u@-H1(k>tQC zmr4(V3;bdtqV15C}z2lHeq_HfaHojq$!0Bz|KnA?w&R@*t zZv^+pp(2BJv=d2~nw&?x`vgZEp)W!+84twy8`7s;WR@f73De5?K&O0BB>++OoFBUzAOWTbE1ZWU44b<%IMzll0+;JEHypV zMXoYW$ZF@q&kRa-Iu#fhCBcHJ+Q!d%AxfvKrwijn;*KHgnJ0501>n|C@402s=IY_c zE1A|xi85gVko~<9cm)&SU|_`D7UZwRkc2l8ysV&J-vKJe|6?Hx{kDhKZNK8;|62P_ zsTvHcd652jnbb%)Kbarazns<8SizrmEBz58r>y4si;K7AUxp?!MEyECMzeLl7 z+>Q8Bl63hlx!xPzAO|~NG2(>wyROiEt$Wz)!rSchzQURsTtJ{{Y3VI_q2lszB0lLH zi5yp&W!71$nq0JXA5@9!A|)4cY=l*R{5EW&E;@PQO00PR-lIm^=qEJCW^K5&IqkTH zA9nkA^tzv@KLI)gttIRcyypEfx`pSF{gq2;dYoRVk3=yr?d-cdI_rO}c+PJCP1nes z%IQ;o@7h?N7uj|RjlS>XpcFN_=I$0G+ctj_?=B}ACE8les1iKt* ziF7=1A==9aqI;mNta4bua+;v7lQX8!$@yvv8yIWT+Pj$H>lR8Cy{tOYbQ3C9ZKdkI4F0N8iA<`5~F^ z*GI)y{EW_^A=KsqR#X3O$1I)}>hny|HPkOTSK~xxQs+MM?}Q7Oxi2}a`E`PgX(3Q!Nu5WI1j&NF>TdPb4&5K2Az9~zr!(_R z=+%;a>biPO15|0LFBsOXOfW(IMJltRt2lP3rD4<#%QQlWQ&W8#aXtwm#V#vHj>(jl z$b8ZJgci0G{^hB@?CL|2mxq2Rl|z1>N+n?%@E1d7?By%PG1rQhqr5MQnX$A%xynl& zUW9c#4FdtHLWYg-FFrr-YUzMKiDjQlY;;ST?p0a*RLr>_ETy-+`~-kg(VrEBh*WvF z@rk@t-H_EOe^>P%NT$TGfF4ks0*f$utGB=}$O4>(o4wi&k4u+@y$hXLEVm|Bzt*!J zytwx#<~4Z5x`*qddi=Us0{4JH{(EA^tFFNM4_`I8>SbY$g=i=AF-<$+<~+@uuK$=b z!xw|?H5=c(ys%P|Yhr6^Q2Ibqy9dkd;{P0m?G41qmdXF>NMnvbUrlgHZ`XK3p~zRx zVte-#LA&e=Tg1S|(bfHm0Vzl5d3~g-o1?PJOk8FEU9wRR*a7rFF7iVmYO)9dp-D8> zs|z;^PgK&eDZ~ShIlYGIoolrjA$yd`4cBu}yQz4F2E(!9hau-$Yb?!FZu0)LME{9t znZ#au{Z^s1MoSP{%!xSYMm?k)dAKg6g$Y=7dsOV;fBxy@TftmE$0J|}C^qaktg2=i zusRaB04cL7@1-S!xxgVeses@bt2Ja9UxJ|bLTn#R`$4!2^ZWVfzBarLUs}%ior*gnf4;&i9aaSB z@d|6p0O0_qsRy3NR?oS2p1`!qa+`FL1La<@0jB|@@+yMf(GqX_23Em`YZ8_1Jt&to zby9UXH2gctkZZqaE+osPJMnCzU*M@k3))m%SGh_0+fzV~%7;awv=Nf@BQnaEWP=A% zksWR6Q-K!zO>W#)>`b5iO2N0s0`#q=bX3e!u8*{oKu-zayJ* zDY`bvR9^gE$VZefahH|D8x4WXdfU!(qRQV)zGM-X|Fz(&GHWT-aH6y==%?Ki7#G!o z21k%8$!d?Xr<2O+xk z@DO3HcZPvFEqPrXYDoh!ej<%cmf5$rp+?PnQ18E-9-veu6{>qT!JU`3Txy=;l~ zIo7tCDrHzb1}NF$CnUXP?Y7blxzB?EwK8GzB=+C~e%~KFcbtD7J!@*~3A`;U+L!qx z(2&Px$;Y`%#<1-VA)-$9AX_SMrE z0q-A$cv|+{xmyxeJ_s7JOABrgX?+~*G~%dzJTaBKp+9ILMmH{zp6osN`$nd$t0ut7X!kBAt_KI<2X~dJCPK|%0s-#{F2{<2d{o;O) z*A#2ck9uAAHj6Jw5MdJf{=-(cpS+?p!JPuG-;M_rlT>3=b_c43KETW8Y;-s#xc0g~ z`i6?|YGb{u%dcTV6Z(pA7#CGlNzmAwSDkJKb_6hje2GjqOvw?B> zt+4d&%4*)(SH#wd&(O=dsVpepJ>$>0@Io|a^?lyR5CI0~e0Xahvh7il?Y|-~WJX7i zZp^gsrw87k$0;iyVgevC^>n7Rd+@*8f*aG#XSoZ&wC912qmoOa+x#p;Bh4xd$GoBk zS>FY0TW%W-9HFI?_L*I`BEJ%B+{DT|0!GR%gt3hCTL8Su!mDIIva44$nB zx+9lv(HV2If>rceak@1J3M6;@Pg51SN?lw8jj6%ivl!~z#6GE^f-P|8( z^*gXswaxN-pT49#)bmdjAZmXpL+sJUXR>kE(r23W@(OmEX`B0{^H)CaTq8Ui4QO7< zk8!ek)%yG2N;GD_ggopCH74<{8+Cc*Vl-E?#AYh6F5Ejt`x3|K^@C!+ZsRVJelhpu%O;x+uw9cWZkg~9;0o4xXdC4!;EckQvF?hDnIvy9@p7Ww^4$Wce-8W;n{ zgw~al!sj&b`lz*7!J8~Aujo1Gc-DH==i(qEzWo{1V?dMKG0Q2T!;{~-vqY|cWNK12bdCw6t6b-(yQa2u z93!0>93Y_w6Q&jjCB}3V1`G(^s=J6|7Y=OHo-9rOxz3X|TV}4zp4F#G_frz&^3EAj z(;pt7Z`1hA&u#9Bla(}hGR>gLCo>h7HfxvshOgQqit>ez-$v#4#3<7`O@io^jq@{Wh8+!V0<9pg?@O9f|2P60=;Tr zj!U&2jgh;(We8$9{p`bP|cJQ%{MJC6{-NORb(L$@(cbs%Wl%H30c8raF zc@bUZ)ASxON|Wf))K;<}C2UTK079I!y0b#y3=qD_^V1DXk&yVabt?&5+74M$z@0b- zSN`c*1IUTt9!KLN{W{c~mS%}$P@W&3@^HZ$^Aae7wNUO=qNG!f0q3_cA*u8WGltes z9?gFn5`qP6l^Pv^0VEUe19zcAS*b%Cg!NGq@ zn@JxbJXWdjERpvg>^Jg5fxlJdzdvU!S%b8qYI+}^uQX(g|5`5!RmEWq?`L#2)?cM> zt=JqR3F6dtlMz~9nK!glhR6TLNi!Z9eE+q5gt2;x(CY=5B-Gj=Bee`N8nT!w@jZVN z!C~6RaEE+f)-`qg)a0MH*h#MpGs`MpOP;_zkjzt6p?{Q}*BAvx?W;~N{!JDzrW`c< zQ4x|eNhE}o7p_TFHmw6R)mO2jL{pt65CfE!i(&gNzXU`nCrx{8W7m^0OOHhGlAtBh z*6L)QKxSr*PFoL4*{_Y^xp4G-M@J=I{2r)8MPPQ9EuGl;ALx8Hy>3q1>4v=O-1qJg zKG2^HNER53^Vlz;JK!b7qC#+ay-Ek|eDS|lA$*`=-G!w<%PauMu>CE!>O&H&(fB#Z z0|NAV8d9eG48l*)cF>>03f~CuJQTykm=@xwSscqz4!xvN#~iZ5#n4PSSNX@l`sp&F zw^MSYR21sJd_k6*YKd~Fy7C&&UO^`wt{l;GOMN^ z`I@hvpG<&Ky{oIN{e{;8iIep{Z+^smN%z{7N7e4V2D(UN@~fE($7?Z(Yh;e6NLmfKfkg zJX*Ic9e2#)*2;MNrvpJs8IM` zHD=9)tRuL!1WY_6syU1xSJQ{t_J?lLq^Hu$OO^c=?gT6C(EUcR7-swb3@8SXKN%Cz zjN-bQPs7EIU|jjYY;?R{F3CftD-9J6A{zY6Q0ZN=GFZq#KtfiDD9328OtVpD&wKIP zP-iSZ!GO-}{~%Hdk>bPd@yP*^eH4%Ru2~7!hjd03PdH=Y&r)JBbN|98eu;Q}`ySGW zu`m?&J&f<|vHdiet4wdgup11~^GsP#}c1A&lRtPrtJlIZL zTwaK9Q-#VBFLhkCOkXBW&##{gV&NcX@Y!u{ivuUQG)|w^DQMW_lAI=aj&uVR{=Vjs zdbaNaV|zcBC%$-!n4jcMRXVvo6Z6jD?1Iw(vfLe8Dki;a6O*O6xx-!&0FA2+U6VBl`2{(Dso*>mFX>+*c^E-8&3132s96U3ICB1G(@F< z`CJaSj&r|!Fu^S5QZuxs4|2PDH4cRW-rDa+FnmshGo2rGhNC}F2E{Yujg=p5;#CS* zw;FH#hCivpll-X5x39mpZyo!9P&Z@I`l3KRh^q2wH;G|Yb+I_Y4T!HDzCXrlTg|Q` zIBqR$Im?25e&p8mK?^5Nr+PyCW7M)3&h-eCuw<(;sEQYJ>tCL-a}0JG*7T%zPc!`` zFR4eWTOh~Cp~oJY+b=4p^l1GSIIRqB*uk=JKV2RY@a$>xA8Kb9|AtjqOej$QY;Od8 zBbvYa+vYR0#pnhE0`So>no0WBArgfro!TjC%ah<~zDitYxh=4MSo0*!#Zt#-Rmkh) zN}407aLtaVT*QI!Y(~i_mRd8jx;>;@zz<3K3}(32ves?DG4lt4W^?$s4AAJi*Be4T zTou#;emeWcqkva|Qvl7mRHNtf=``(c^AHG~Xe5!|2SNSzsMeG=d5TwJ!;+v-X#C$G z3Mw~nHxaS{R;(GWIqz|8sYXRw_1Y|Xg3kI1+=r$7V;~Owx~uw%z74>Y$hz~aEY&OZ zAst>lHC$-x+2v)|wj*1=S(^SzLEis*~JsJaDws1v#VlAaj#g9+z9 z18r#+<_Fn%)Mn@?<7b`#BF=9_2$-opPF%FMaXE~_j4WHg)#oH1edrxAwh0pyJQ8)$ znrN$g8~xMqv~}l$zCK@Ud<9LDGcex#I{)bxutd$PYx4E)dkQe${WzmoOBjhc!mi0) zwgXU)Vz$Tq&t_fRV)W4Xzf;_V@Br{WCGcdNYzT-EuFLSm71n$#Aw`Fl$+xUJ*>Hwh z1^}BY8tB^x!5Yoaf)Vms#pCOU99@EVz&wchs7my5&hfaXGy-5mDjmE;;3`>XHUDZfJG1HxZoDGE;!)K zjIlBSS=-w_l+Y)zdjN;$gr%gptbND{UJ6U?dMX_f<&}WwKNQZOHQ&7elHFUnRM%CM z0dW%hwG_Y=(~rFh5?pb~zk5Kjb!`|k2)q13yVpu%)G)2fWv5%?g1e{xr&g;G3iSUO zJ8qIvbl!%S*mLi+0F<5uUnWHHX==2WYx-Z~SbX{HB=!!}&c*Ke8Aw17Hxm%q1F?a%WV4Xd-Z1kmz@4z5```#3xOs>VH^4AoB|di+s?+f z=~otF{by)@1?3Zo{fZ@f77lHV9gbVd2D3$Q;dpSpD1YZGKFju4v5fLGdLYHbX1;t; z)J0=ycj#94l6s<K7qQ3aEqGml#AQPSvvf0I;j{$0 zjksVHe#;F8+K0OwjZy~}mGY|;hkq3_{DCDWKq)iBP57O;K>5}OzA2gut(H8}$ zG%wiZX*A-=}IllsH;1@+LUlls94UjyRx6EZQAod*C7Xxo<4qFdn%vJ7j zfzy#HhHHYGRfVh@@=ePh>&*@QdKnCxv5U_g8TN!cpA2KOZDqmt8o> z?TQ<4{Pudhhs^?|jx6`4_#QK<#gDyu$05kqD5$ga!WpTuw^HhPIw+$j{i#FEW5cT= zwzGteVaaa;^~0+`$S;@3_Eo;e_K`HR>hT!7VVj~0xpAUF+we9j>|;jv`pJpx7cSQ{ zJRcxp=i7lB`b;*x;gdN7K(_F8r~Fx&s>b>El2=ION_O|J+Ia#P`iIhgI~* zgG4u)>Hz9*sSV`*kSIpwk)SxS%$}Zl<;VpsK|CDQ;w}%!VDGS*Ce!o zx=GZi`)R8x-PEo~r~V3A4nA~C>Xsd>y=$~webG6-C!E&|-mCOxP*d&yX~zP{^7~8| z12&6LEAo@wbOd|Yindx@^Y3wnKNRj*M|L;Fl^i^)Rwr4(JSs1H^%rHybzdaKtd7N~ z^T_cKD3|JL=jg!TG9*AAs3#ytS{;`$`5gtj*H#2S`mBmb4#!-w1iJ0GDe64Cmc?(x zg&)H?fm1sagnOu5)pVvGoS0UVASoL2|Pu!49$cZ z7-^r9i*$nP2t&4sJxn&d$iM6%+@o|@O-k@{+iCeEgh=WnR%FHK@J`x%bOz2z(t62S zqS3*r$+DE5_}hHtS~uRXL2Z;_Lh2Fe!k$1|84V2QA6ZQ{+*z7I&c}XF_Q=6s+yQJu zx@{Mp;WF3vD6B_yAEGEqfz5wQt4)A(+=L0jfA6K@ST|+cz|Bv^0yxAhl`0Uh>Ae7u&5^2;m7y>66GaF#WVzHj|YSN}2^+*`w z{tEVj;_Pl?bf&B0K6Md!-j^C4db<*!xH0pN@{WJdW+W6i9v_d_ofu0BVn(3jyx>12 z4D_N&Xy&;66V}FhL_mS&T6vOW6-!ew0Y|6RuH+(Bc z1qQGuR}{|rmZA-lad{s&nOP`KsY{|b_$NuNCy#;kKe>Pho&pDa7a)R9H9sV%eWK~(MS82b;I8yFJNtfNnrt{Z0~A}^ z&h&PCCgWZD`8yn1Bn1|MC9QI1Tcgy9jzq(fj}&HD|mk30`Vv z3`GADWjxB-d>3-R>Dap5r^20Kd4XFn?G zBa}ilF1_nA?S}-l@0ZUiin-n?OaSMjdJ1i*%q60-D-{MqleyYo?Sof6&%C|oGu{qx zx--hEFycHmuJTMCJXEMT-98SFx~jWsk+j%d3vUGD5x@qmr+$>~>d1=$s|?(k@7x*x zHGJNx^F!j3pC1(V4=BEm_w{-2x!{Az@terQAd)!y{o)Xm7rubu1^a%6!OGI$shY{GX zSfpFZz*i8h=y<{h&JiaY{)5D?lm%PS)WjAlT)#sR`qY8t&cRLrskmg&4Dl= z2%a9c%H76fFTyXz$XU-Isgq`f7C@FDog}zi08a1o%K-+<=f8IoBF1EMAd%mn`dCU` zZm2t1tp}MpsB*&)?Qcg);q4Aepv51nBF0`sHW#SOQtYB`+j-ze5%V?jyF!*+u9(;h+iOSwNsL9i?R;?-G>!+5VJxu%oK#I6O%C0kCwJe+lLOvW^wW4` z1=i+2T_OlQ1>yiw&{*m6IRcAv3?8^v;1uCOV6BjAC!TC zTC)Ror6$dvDLKwWB#2MG1Pm3G27 zmL9no?6oI!dXH=*NasWMC`s_Q0{l~N47Tv3$q0?t0$1Si!`3z5pOwS6I~#OaAN-=F z0Sc1s_tNpwmH59J9^<)TgkGbWYonlxh1z)On@z!1D}Sn{*j;u@y#_JQ4rOtF!UKV& z61*Meq{puxNK@Y~eJ|@_$~$s*_qQ237dZfb>GX>Z)JU5oZSpJ^;I?24`P&6dX$G!W zCV;bsNcs}8%Q_6~fLi^N9!yn&*~2?zhrfWLA5SK*CAlInr;gD%WsD~5TJ9&Ycm?un zxmkvryeR)thZ(EHvkM?-R47HiiyIbZJPihwsU5ojV`n`TYSwxq*$=#N-fw@>E_$FOlM=n-eI`9GsrI zI$21#6>tZ4NMGpoJ|$pUlIls|{_CE;iaQ^^O$O{pS#}-iA22wd`;e29f0ChX`tILe zP0$0u1L(L*s4}ml&ngb1XR?y$Y<4k$V-hPCY#piK1No))Pt&V^htd_Jw7ACUb>=#T zg)T^ToG_pWX(4qPjEf5Xigm@$MB{tdaYCuplC!&Z?B$}Iwu`}O66#Q=rVPgOER zmIZvY|NL(6sk%9%mT!}@Mu9r_$WHP3RAP?x)5~Vwy5ko(*H{hRQoi3o&K{=riRI}@5a2A|iXS*aL==(wdBwv`+zm*$|Ialp8X;CUy= zdc~h>+oSonIm=Sd)^hEvDuvWaTsmzJ_h101(z!}Gd~d$(@g*8HFULn>U+Cf0-;^&R zciuA5q55SN)*`r3*Q6smMG_2_mwHq4iX|qo0s`E%QwSM`l;}cB0O_NPw^4; zkd=|Lrx++H)2|y#jsWlu)xqpMay@F%iY)Pxop5%?z*(T|HqF%$=MK!=Oef`%;MI(F z?0HB{$y_EZJ(yj^XGz4{5kUt`j3RQ$bGT|D9d>yx0WhB9YDLF8*MnYaxa;TMK@%y^ z9_%adN+KHfKt1GY6WaHnl+#KWL3->H`Ma`7_I9d~OJ$sC!Em@gQ29b5U%tgp@7;7; zv1L`SwjXu%VDMk~@;Fn6Z7boBGO2p|{rf`aYJa(QU^kF(IqD>`CY-bQk0NE~P0lb~ zZ~5yGmw@c-_*upYSB+b*q#htTu-D#RyxpEeRe?$DRyNH|Tg8QSt74Iz7r-HZaBZ!N z`Ky{l35^@#1a4fDs(N-n7g=siswA&CSY_#-*1L7bG=92geQR{9+ohq4+_;8S&Du7g zU;(8%8@K;a1F5PUPvpyZsFrb*%BsL-lap^U{R!}-w}L^REC`cE1Bz2yHNACzk{r3r zRx%Qh&zEW?fRTE3WOe6qk4nWP23nH9sY%sA_^bF1Y`nv*p>YeqIy%T&X5^D9^^tK+ z?-=1fkks*ErM)@5N9?dVuccpz2l@ z1OE1Fq}tO!B=c1We$P^{Ry4mqP1MYIRdrRCw@rq$|-^|5a}fPfqWtH zG&5b4a-SL8RBnH#{;hz!M-XgzSEc>bYj$Qd^_>n36rROMI&4$#(16%ZL|9eowmxr3td zl=3M4yb%+8;%&xemXuOQym%L}ysHAX0i`Nqd<%b`zPrr7Y!~0JWW>p?EqvjfcQ?Ps zG^q;NfFI;%;E%rea#3Rm-|io{ThU*GSM0uqX%uoLc z(#%+%r|b*YlSu(ZcTuN%X2x6rwLjbF8#LITRqJ?3KSiNuh667~Ae%o{b*mTTFz3f8 zu=#LHsLLRFdx~i&$boPAcw45;u4BMZgTw(0ceNLd&Ofr4NT>2t$r<~ZOr6c?C;9$_^1tnr{W^1ehEJ4{RGTVAfaebB^TW+wAB65v2JFs&dV zglwherH1LY3-$#MDrZVi=0UA$v{jp*#pI}=!}H`}ZHosSq0E2GBTszNO{~5;rW((GnzdQcH-BsPEKjvf_n?Cal;toYAq*-TUq-@bEk_|vVsd&eg} ziT$a5D4$K9-W^G%;-<#D@B3zD7FHD66j{u*y_&n2Z}a>5nOeP1>74!%Un6cgzSf-Y zNWF+EJPEh#p>fC$}#5^yA}5ALr3-e@mi8nf$f2b4ootJ%Rj6 zM7}WL0@eEiG8ngf?sToH7n~Jl`JE!izIE5;B+tX|gg@n;5!;?5#l$JhA-73mD#e?;5!>ZmN{8&VujOL^C?#POZQ z5-wkI2q}Wqd9^Ck@OFGJAAvl!37*RoZ_>%Meu-Ps`)gCfE#-xCro2E;WPWNl_%K1jt_8C!F-Gcn3GmX!?)Bh+4=n`U09R3_?n7UN5bS!uCmVvWPc)dsTd z&O!J=kO&)TA68~q9~f;y#jWT=&X2_dl_iJ*hdQebO7r^nE+f&~Ej!tJWs@Ixg1ix& zPr@m{;or}9VarSC$Yy`xBz%mkt;GQMD+c5OT9I*QgF0e~!D->Jyl^lz97L3IPcyNB zxn^3EdtE@g%aeG?R^vAK zrge0$oEih@pp;RxM0pFviFsvKvbf+$QE;DblvCsKArU#0j%`q-1ks$;ag!@-K}(!a_E@U&ozmJ2XW5(RCn_TnYS@1aw`7^ zk___NAZ=}G#~Eu|$EdKMgMB0HT=uYkx+os504p;RwOh!~%*=bhXdN&n9hmlB3j9LC z(L-1kxk)uk#i91tJQzgW>yM5`i&*Jt{smPCy_>e~O~6o9%zI&q!`6ji?pL0%QSi4= zy;Bu|JCe83nQ*%mg>n*eua0ZH8KfpRfT-k_i2+iL2#^-VY}a{>K?SA#4ID#lUf(8i z+T0v}Xb^ z?$;Nk#NvmHOCu8uY=>r!OZU2P>n@e08Rl4%c@UdIFAg1H$sh&McraUK;Alrg1{kg8 z-Ieih4pIm-+!&ch?GlxC!u(jMJEeVVQs*QI5nt+pUGeCE$Yq8nLD$ga>4_ZXQgF-P zcoRMkbTgY(b=;v&?`pm!>l;|+x=E*)n2Cyc zc5&w&^E`ps@*$7$i|~|AJ%O%seK(4Qh%YS~&NZF8+?jADt>R8!qx}52n$j9>a^JsL zAkduXU(xVT1x~AiE^uEHsQ3L-*7L6qn57Zld3IF{Z9pHti^yxNHfK2Bw8uWzcDIO? ze}Czh6>A_R_%|$^vNUQc$@~&=0|*_ceVx|7ChOV!Gy$UpXmf@N5<=e97+r++xTX!dJg{42l{d;IxV_2|PdednY}T74EH`(==R2G@cj z8bRm9shRt~ccL%7K|O8jQ!ldQEg1~_&m}B(Ddh)F11zXw=^J*qvnHlkI!C~C~HvX^pdP9_fjsrYL*dF*;|VBw)4W7 z``&HrnUy}4F(6w7lrR(kv+zet{#Q#f08WW=>24*_%kP5Nez^#XWTs6iN1KxLRJi*q z$Cz2$jhy4och|yldyrC)S0dT_Z%^9C%GE88X-ha@YV^%8?+OmGRngnj6J@Ok7C!OS zma|6t4ZV^fYEP2^Vv|XqEhIf~C}OlUnlHUK+us1!UcsMUKKk8iB(MuD*aU7wr)euZ zRJ&_-I8*qr?xBgdHK@0n)~=$E-co0l3$RuGSwcpPl|L=BFGPP2jy9RL+Wt-}rmCP0 zpGtGgTR1;_b2TujNzr3dBXd~mstd+wvGWC2Fgdk^_j^J9BToR2(5Nw1fVwyprGKkk6 zk6Q(*C!n+gtHC6U%<6cM;GYUURwGPmQ+fG=4pIIBLE5Xx;L%H>Shvu+%AeqA#2f8(<`(Y|*#S;H} z=)I+!Q@7WP>Oe?wvMga^e?d`-6OGCd3*YMk5$sCIWtrYTx-E1gmlrOjLP>^bt}8N; zhVS&#tF4}&5y33Mc10;}P5y`*~4QCFdq%L|NkoAI|Y7Abhb&Q7Zu7mTGo6e)#H2;dn^&hC!GF!Sc29= zOUsJL%e>i6MwB`-sUgAINsYWj^rHd4`SeM26fZUTdm@jNm$MPR?KIoj@Ts@={)yIW zpS~G?*G`U)zlb2Wjt|98R3tG7v7=wP|C$9);2EWR)EjP6(-(+w|9%6*ep!Cu~35aw42U*M;1Z? zi*mG4%1w5Jg&8ufJ6{ibm{WxL6b{liE-*{%#1Bo-c}ceE?ICrM>m?A)j%-WpbZdAx z;5bsd#Q)iURuGj7F!N&Bi9}%ix!F^m*y$o~B=ooH*O?`TD80g*8XDzq74q#uSmDKT zY+)Hl_v+o zQmLHTW48O;NYq_0I%iW3)@L5LY-1>r^6UlEO8=zYP3E&0!8G4&1BE`2Bv5bQ4Dlh_ zrN5@Sz5Im70CNcD-M5O@s)6jq^-cpL_C|s4Ut>vN{1s*^S3SaJ*pdYRs&c~mC!;SA+gQK z+XkG=L~jYihFDti*Pj9>S%V`7Z#2} zK~wdc&%Pbmn;l%_>CWh0A`Er@5t5nhJb7ggQj&8-UlgS3YQD2vPi0nQEruS?z6}=u zz4Z6DVpV?AbWqXtP^lX_APGsh;vBe|m!SRZR41KNZ+a@f#WA4A@TZynk2q?6q;XQhm$l-2K=Q)Ta|) zP+~WLMD>&``mHoqBG;aHDl(I*#TpWJm^A#($lZp7?cFP7y!Y_gL0p6S?u#>W`l?g} z=WG(~55p6E^&o~y)E-QOw6KROf~E7GDcu=Qj#GOCfzH!ozpeP*$j!mx)?^H`q}T)w zdi^W5iKvs_7d01)oUr3<|@F60r$VD6O-<`v^;Et zV?3Q_!db(0BiIX_JAcbu|Ds1O7)t}UMTNzGRtMSreY?#S8|FL?Pld$UkW&@6|uul&n?Bf2(FrWPX^FTYa;Pl0S~&n%?;U3m1i?dh(`ZP%xH_4y(+u&6vZdg-<$dyK}SR> z@PVEM+2Z?RKLbm*5q-Mo=!?+eSVBrkO3XuUIPO@QXY@uB`Su35qmXVBh;nm@a#ory zr0ap_yF!^zwzHH=54hJeCrXn?hfpjJ3hmLSkXPs5SI>7OzP>-(n3q!-GcS~2ZtfUJ zoI5PVW^}T~@;q^>T1=V&Z?IIJzwLTsP9vWDp2yVoKalUG9j1x&O7S$Of8e=7pOCQ& z{eHh=H?koxKtiKtBlI#XOm$R|=ZYc$EQ4Ux@H3-ab^cO$d2OK^Y&QYq5$758SheqVi z2YQr=rw6t+x@8j^YThbcdR=rxF()i%>YZu65;mZ{cb+8NouO-`JHzLAEqalh9vLR& z`|0~enYvk;XzUI@RoKijo&OjAo%i?C@=8dlVMhn$1Fn{!$k#Jao9Rg#*Y`<}p8CR} z$QF6-z!hBO(J>)IFt@JS{ zIk?$CYCv{dbBhwKG!*G@w}{0vHpcZv{vSP6qoc1(jZX}>zdyck&)P`qYW8tX(wsf^ z+Y)09p>}+HqOrDnAd%@>Ij!D(44FT|c)L1-;Ya6m2$Rpxj1|xOp~{sdxWlHS-AWQ! zV_il<>3cH}jpz@H>OZU4z;7PJn|XA%h-t0iuAIZ+BS{y%cHue6s z{Qa`zKt<$!pq?k!bA3v}S6@&bdz;H*I}d6Ft>;0#Ro7TbVA~6HLC_XlXid}3!tv}h$HNEyGtAZFB`NfRmj<^M%nwcTfJCB-1fZ!o@VTGAW zb3EHF-f}yOvvNVeO;SXR{^`}FFKP?1Evr`2t|Q|w@XOjM&rBaHlXMF)p|dk5zJH)G zt$GlrefNhSq!?_iMaV=#on1h!gX$0gR|PG9F16gwJECvYPw_2mHNPTc`>V=jthtma zW5!8xHay4ooUEf@kA^@%R&uDDs#d+n2BWaQ&DUF)fwCQ`7B+!|4a`@cPd<-E?ESZl zKUf9SmhI=Xu- z)2!L;2{^7QdSyP<=q6f6LgEamEtkLrjY>nW%kF>oYO^}Y(T-1r@ zyS_MV5|`oOlOWYO}tC=|dJu*_ybs$MAQF^kPCn#6QAMAlhGZ@a5oteS&* zY>{~&4)`4i@(=8eZ<@DNhK$*|AW#vqhS%zrJ!=Iig=(8e)z5y$q64izw#$Y+cpboU z;!}#`Lr1s~xw9&-cP0nlgF}R>P7}0M-@xWdhJHD=066lLvKV3*ZR#1Er(vwy=St9g zl=3JX`P%R*sFuG!OfjSh^^R>#9+1sgga=%};>>8Hx!c=<%Al{HhQUebb|jP|Ni7oTfMRnu(qdW$l(poqic#{LM<@0Gt`3I;8*s*uDQdg}b=VCSE#xL(&(0Co? zI!Y9CvkVJc;0QEI409i13Ln>r*sUlSjJe+hGDVY3o_0I}ZCL^Jm7x2|&m3z)J?cA+4Vd!$9RviX0;#`=%8{Ip)D08JydP7aQEag2n_I)PpbOdJ*P@jagq~H zUkj$@v{!b#k(m!Zibw{9{CZQrO(hbf%LFcBoBHqlD#+kq*(4n(PmoGH78HiVK~8Hp z*GoFXD74`sAv-_JANpiYn(8bbcuS6-j- z(|MoeCp!!cDPqdbT*{8HVTSn-x-_s;24RTO&Wrtsc8JDq5!gZgmm!X}Y9-Z%tzqZX z()Iluk;9ixH2U>?dRQY5^l)fWzjrgu$+GWv)N=2d_s}TZD_|+#BXg6|RK&Pb5X4Gk z-mR=9y=TB0y*+#cTZH8W?r`O#A=bP>vrFm53?Raih4}j7?1T<@+;r;9*i?g(iWpnT6XR<>UHz%qCP*b7u|$!&EAKTrQr7PMFjdgK&4 zV_)^vX04ry5*t|3Dudf~2P+8!V7rkU-`~;?mrHyI>=nQQMvy2o3bEAG*jThA$1~i2-uw- zl+K#aYQ2Z8a+8)`j9R;xc&H$Pjg7}%q0dQVWCr}kSMf{VD56e0W>1@oeuA^gt3OXO z_fSvK7^qf=DTvc;7zoRvP1;VEB)T%%XN0(0DkIVdCB%o>aT_3C`B z!C^CIyDUJ&NG!@|ig4LUA1f~+d8WN*;Z*sh7sy|vc5KZM854S7*J~e#Q*UP)0oY`RCAc{ zM2`D(b3oJ$z5J6iaG>)blAwd@!7OVt{U~@kwpHccD9(0i1^JL8;33AY2#et`shVHM zl|`0&p5i(Kj1~YiVK2D!9t`<}P-SL}o)xU5k=b-NX)2tMd( zNRN#&U_s2E$avG@ig=XCpF9_;sN0qN&>$h=4CkLe+7-2o4KF{%{!v=f2f}sop?G}_ zO4IPCGH{7&cF&CZuJRnGb@QffOV#(f-#Y)#5Y)DYgvqw~fA-q$aYpnt6C^1mDxHA1O;Tt9oQP99#h{2ky#EZSDuiDDqa zD5m91SHz@fp%CFm;Q?-nBXpk?6I!0cEftsAo*SCqsS_{d9Mc}?T5VcQ(XAFe(64Fji1)ryW!H=U94Bd}m3ihCKTewp9eXv{QRWJpB$x zhzh5c89eC8p-Re9%(X6bP}pAyd~W9)2x@bQlrF8u=1kcc41?49(_VqJm+Zwm)}3gO zpg9V^l;>BzF_$W3x z1?ixkKX(i$0>R+aJydo;RrF&9zBb<%E%#4bjI%;`y@O5 zksP`&SMlxWYfrJUm`lpR74^h<&Q*iS0l!U|3o-=cBzsN%M@+aW#Tw{i#{dG5q#C@@`KlHd7>7?`#JA?y&IF$|?g7 zs~AO~C9m>PEcv%!7}-OL>3D~fToPDTbkiF&X<;>_Sueq4nU*Q|RQI7wSgbcxYqSu` zlgobQv<3yCluVV_k|83876Cs-#<;q#Aj#jF=*qubC4EJZKxK3EiGrZW5C3rC@LLHm zvDnR3ZB{d1gW&w|ubJ%3&*G}7uhmavikbgW zLBMtkNGoo4xIqS>C$Br*GywTOTDBVGt<~zC7Q%Lc93-w}2HeRCZd6_t9lGfUqW+D@ zyZM28rbMxa@7ty{(*0YqMaFC%ojAw^9VfAJm)W(cpUcxWUzn9{S{8K=K$Vnmu9|23 zc;L1#KJ_{34|wJtX7cO(f?s53RBVRY#=eTGWcMRQ$M5%uGXjPjV_C%MPnNA{) zt(sGCwA*%MJI)p8Qj{Y64kP(KI;%n}- zj}}+$jh$dRO{m;WD;g|&)e7&k-Z6&Xet?lZRNtqn3` z#8_EhnIhOj7IWm{%_C^!zhjAUST3@}@CO}<(kJ**&4_jMp9u0_+afnUqZ;PZKc@x1 z!R&0JNvP|@)VTd4TVvLIMmZe~R9s;h{(Nb6qiG9loJ&ilzMW>KeUVGS;Xja$$-L6q zOnN3VwRO^_*g9@uQJa>ZN7Pqkpn&L^gC>$OQ(WAkSdE>+;W6IViv22M5Cj|ha*kHF3+O04c2upqAbv&ac|DJgqU*uU`*TddLBo2R zIQ`7{_0P#UTVGDsZ$etE@gf2aN?}%sG@G40a?$~n&)+mmGEsiMxy0AP7JnZckQ8?|E%@=;fN%e^LXb%qh{+{rN4HaioLR3 z%s!6TC+YKE4Y0rLwk@wU_t|Rb72z&=!g=6`m!ge!<`y-B4m=$%yYdZD94xp&qegUN zmZOa~W8F8&8r1lH61=K|Zy2$1Sr&X1f2lUhp}@^)hdQ`P+O4$uFwkMspQ5<|g3`w( z?GlVWH{FFw^&o~-M0>fPJ}^-F1$m0$W#3?y3QYeww(`%}?y(L9c$LNiB*9jk}ymDra1i?e=`ewm}6Z z2$>@H^W!W*AQx4FH@I(N;wLfb2X02E_avOvSKVu27A}lk2qI{m*a;dz!unz?6@Vulu0!$3d2J;H0@-xB@wtb%8s-G3f z=`Qt3`EYsri-H87{K%3r4*(aCps-bIsc1K~E&*XIdb9>M3 zpO0*>_o;7NgzHuD$9lYcZs^B+x<8_Jcdz=5*jCH4SMAY^qQ5Iv7(wRiu=FKe_MDSR zgpk(L3G(9TW_yN?C?EJi@ed(p$Sb+tdqFSMp@JMBs}A}b74u5~UZjK1iD8zBvv{wF z<&_7PPe1-#AnSu}`ttwjwy*sq8vE;sc=Z4n$Z|q8J-)>_w?><>JB+Y`ZE$cl5KPX@ zY!OaQ+bUv)jyaVOK9@40Wom$Jl>0kIL`S({|A;&M=x97(U9liKhlauArSyOFAScI2 zfunl1kJH*$W3;Qj%oE|WAbJs^(yWD7Vh&~o%p0tpkF)`tFS(3OfDd7bBtkpfWF9+XSt1Fys>~aF@@vhgzn*u%`^Z zSuRu!kws+!$HW-yv7zQy#b!8&6=+J+ z{_vh8g9vHMMvSxF17OPTndy*)z%B+f=MXb3`F;}XlUZ$+_$iHUO(LuIf~p}#`MG!$ zCw$rF&|3`56r?@^HBfbb0^dx|Ts#6`Dao15hEaQ5DaNeLz=TB+#Jf8?{E4<#6c5X6 z6N0rmuprXz765S|qgQj54z~qi!D;;yL^%1y_BH>xrS$Fr)l{S3hT-9LaNQbMh=t0z zp@Og?7E2AC*w;$k5u-9P4>oWF8NFtvF8rC^&C5XwEqG8=Jy`Igq5FySXXs)2eDV{P z0sl;6_)Y5|!u_(RenVrTeg;~1QNX(WHBq#qQk-K^v(;B(HrmdghTDMAw%#+U9ACE6!XJq!7y%h3_?>KXmXk9|{g^6Ap+S%|9GC7QV3u*w zy@Aoh!_(eC+wQ$rWjS$e-Y67&tW0$8aU}M1>X^2w$nZ;|QyHzH&Via`&Z{4T>r4!gI5Lnyg z8oN@@{`1?VPf|?YR9OABOFGkZxiU@_PtS|D%MCCOIoj$1>D93!nuYtyNiu!a*L*22 z!^&pjb&GI>6hqO<70AT9s>n@$-O`8KLGk{ZFJ&|l>NBkBE}sLLt?$(K?{A9biz zMWF7_e>iTyhaZeFAD$=x!R#lx8*FC}v_Tx>!xz$xe=B-}`w`;0JVCQn@!I6#%Yvx0zuPV4^zsrz{_3Z~(Um?RV!=$J|>zKUr; z;T{?lxA)v2$S&tLrd%rf@x#}Mw$&MHaFJvVGn^p(Rynn;QQL>d;(WBh4CmEgC8POM zT_P&l5`pwbERW`9j{gA-e;dt8KSxm-w+X|>&fG16b}lf%f91hr$&=$X20JEIva}Fw z$#QS(p+DGKAq;kC34yD-pbC7hI{hg@6~;@q!NNoy%?Q>0P>u#jr?XNF7HWoVPzIQJ zcaaRs366Bbf0*{s0{_EOIp%+bmm+!M2rDDe3hKVJYn{S(7vw#ckalAnpn(r!w_X`joFA{ zUoWTm$YAX@k7GIl$t9z~r=_^JY%MML@#gxtrKu`B^ zghEI*rpPs6DakSh8F+F^Pbe!%Ve`t3e=||M&l1L#q|jqcd^#J_9lB~G?&j5jfW%(! z%^dFrznol5!S+SVGq&s%Q~64hV@;14#9%=@rFXkH>a+%&Y7bT|VXhMt@rnSIr#4M? ztY4(tx^=qD-`DF2(gJteU*5pk#Lew)faSg@5A`rxe@-Rba_)$by4}4D3R#R^Uw3rV zHqR*I!T2*;-l1c@$J8Q^=A2Nyqj_MhD}Tkq)+lF?4K0b2<5((<$=I7h6BEm8Zy z0B(zAKFyyIZ%3R5Vi4E2)2oA1W6F8V#O4-Y$h*rX7|?=H+fkqi??R#TQVuJ3-y^@; zJ2!5a=o|K&=~ky5jVfQc&+1T3DTsH7kruZct+B~>4bKnl0$nl|d!C>Aci9MsaOu*a zkG`C_A4_z%{%TB&lTTyZWUUfq?J(p?`t8#kb)1VS>w~$;>oEq!A4M-kQjPi&YB&{$ED(n zaqsTn71!o%V~`hg?}g4}MFxBw84tK`AhHFI#4ox>$6$}_5^pC3NcgxD4DV3$;u^wc zQ>aW&A4GS`RS*sFm^`QhS^q;j(S~_b6lfVxRB$R9xV_j3CI-kzcwPAD-ck60}b*{0rh*b z&F_>THKocxGNp?LPKHVpV6?Tl_3DHUyp*3`k!=(KZIbdpK4i+}p9qVwXoD+IlObaQ zmipJGq?zmvnved5!TgS_467)3+{7L@vU@BAPungrI2YgslKgvFP0~SZME}B9 zNi(6ux{cgYiFC_)k>Mo2#-6!u#QfE?cQFAjsZn?}(9k*z;A+LZypfw?ZaToaiIlmkG4>@VUo;-L(SRJl zBu{Ny5R<+di>O&{sY4>%CY6(J_3Eu$qPPsL?hRD9OfA6ulrXyksMefhx}%q-ifeZ+ zutq&E@dhV3@d=(fH}|5xUX@Cpd70c9bk`m!kPbf{#&SpZ(m`Y+kN5{ox_x+?c4Wk_ zLg-dWR?=kbSkSKKcuMmyhj6Itx9u0g-jScY*gn)nrtM={zAM_WGR>(Z1 zB!JH6DVC~WmKvmf5?OgDbVW)qwd6HtIOqkNlQd35=l7Ll$YBp%Js)L`wJts1!qJ|N z;xrp&;o^5}a_%d^@PZ+i;!cXMXAeWG+F$I4)?VUAn0m0wUPK&?i~szGPoDOjr@Oxf zoHP(o9N5;qoTXY}4*t8rWvtk{12s{OB}uX%h{Xy*_wsMpxH zW%~_`>2zQ)^E7%$shw6`7_J>$U0hR}pJqnOi>NN1ZV3T;dYWyD*OpGvHn5%FzS#6> zx5K*8O1+X~ya#vpw1oz_+sBzH#^x+XE7ja5E-R=`e&V7IwXx!0JyFQ zdwp5C4ZgsoB_K9n=--X0lpRE)w!&`i8<8{2c?MF{a4d6P9l$tK+l?wN(l{v7b-lnpLKIxwLwV7d1c&^Dd)qr-(rN#Jgfy&``4^}Cs!c<*M2^##iqriu+*tsF z4E3ux9c|P6))1~q8UOt7zlk9^VqpH5&6Al=*p2Yubqhgwb$;}C^7T|Ym;9G+Zua+jxdb1LJG}<208gZCgXFUB(Hn+;ZPq`HDuJPat(;9OGS!D+vj^Jr zDaz}<4iB755OWb5AYQo=oStfX!YNurej8A+DAe=fqpuSS)Ekxuc0HjAohDSN7j%na zV+TRTC_XTA^M-}wc4c5Daj-sk(8Pp>Sg@4|IAr?-!wmzb7kn`Z)J7Z#4=tB76#xD{ zn5cC1PG~D@CeqJ9p(K<(#%HbmsD6kFMSXry4`z06^fZskRy18Sz@*dw)`wM#WF4HH zC;QAo^k|{LRJrp4tuUK6=*Nk#3s##g4n%ul_0bb=eU-8uR?5_eUc-rn|B4pR;BsS( zMWTw*hSI530Us^V?)em{!;ZsSSa2%qKE9gNFUwU+rzkC3C%ObTcv5Rr(AS>K{_Js| z-juFR-mcow*1DjvGk7DLh4o9+zgVIg=avfZIqsKb;&62EyC9u|a>h6xdG7fBC1+-x zk;t%B8$E7I$J7zdiE2an{Oz~|ECx#tT8GT!-JRF{WzbQiK^}tbl`2lFAvBu4F5b~* z(mFepFG5yACt0Pz;Y)e)84f$Q-xIzc_MFB%S6{yp&PgbY+4gXWvUOnT>qk-B06(M5 zOy5dS@@HZ5@>2Z_I~I|Xso0S{%^xO#hR!#0W8?{HQM?HTo2+Es=ne|7mOUKL_355n z;SKItNGtbw9N}>j64*P>KOf~u+2_AW+8{O_Bo6PC$LTNW@hGPjXB#N3a28cYeJ^Y3 z*tE>|a*w($b18Yf-JyeL=CCYMjs2n1IGY#l@PfjcU_h3t62Ovhych~iED~%wQq?Mx zZhG(6g+w{72`Md(D1)zUwi$b%VY$J74(<$YNHf&S;kdEPFT zAGJC|ItXg3bgHnFvRF0cB|#?dnm*@7ROQwNwSxXWACTeKR$u@C^5XheH@ zM%JLLl|#n%QJ=+mzSPrZOtfV^e_tT-X5njWYE(H<1l!Mj^4VmiWV7Kus({OF`S^-{@_mtn9Z@0#fsvyPw7PP4+YI$JGpDv; z&aNFbmIRz=wIL$@vntpQ`Lj%e5~&Wk^u#K%;?^Zkok=e0){qqV=KT!qnh$p{^vowy z1j7lkSmVvffjPH5_^=kxRJXe2|6syE9SJ9_|v4@U6 zRH5B<4EE*?AJ5C+lFu)TKki!~9}-_YTVRp4>x4`fR2=)3X3j9$-L7SKZyen4=0-S- z+%{y7q*go_m-h3rClj~FPu5(#rU|}%!-%*`Uupx7O~7KK{%1|9@ba*Jq|0q#>xhUv zkXxK(W%N^@^%%~dChgo;wb@cD0FbRs!P?KKefMDSp;05)nC9$?;S z5`Ht(`&W~+9ZI!S|1@jT0+%i9Gh7}AJU8!|6)dz_ww`%uTATaLht8d$Lv6JsXIuH7 zch*nOzb%QG+|fQ4$0`rKg|#~q1E>pr6MW0)*{oqNGP-KG(=b2yoI~DcTNDb4CAYjS zi5+%69=9KPA(Gqf18%1`Z+L^Z-qoSQ9ORNYf>+lsC-{t>y&YXUv|(WGOZ{%!(}C2S ztI(`xew7-bumWz|2b@2bhKllkCbq$+;fjDb&mdR zE}F~FGCD^!cqknFTN>I4M|*?^A6Z(lu^0Mg>oOf)b4!g&8v{=Np{-oRTMKuy86(*y zq8cMDk32>U(rjIJr6{Z}-TanejDT7~)yMpoV3=b7Xe5~EZkR65(j#O9n<|Y64H}hk zHSR$mZJtaA-3F6L!Sz8#z*iLbWhi)4dMp)RSxR)d$(q?SPx_kJ8y}nYp<;tlf9PLY z$YdUyUL64YHbGR1W7Rt=S|!B0r##V6a3#=Ov*ge|M*UJM7g6{Pve3ncM`174)m;?k}5?(vxX;BRF*GL=EahN$`tM!&6zr@33svzMyXdSA|I{bm$@-0lpE=C41gj4NlDxLp>qAPr%Xlk}&k^L)HlLYqDawPf+Brkr?lOC>;ul>9+1o95PnB+e#z-7)*097@o5X0T z1^(of5^3(;tDMk?9>OnJwzJ3L?<{MBV1iV_`=hbkuzuv&{FI^sD+O!7yB^Zx9QAP= z)bcf5%Id?}%=IbqhcdjRmPwelyL?4VVDvYJ68-DVzw1HKX2}dh7W%SYd$wXF> zo5pJerWGzuWq#``HO@;!0p@PF2S;af5$X6@02PiX&h0NKq7$&@*^WrfwRHsMNC3p< zFJ_ug(}>DO+T0G57*$Or5LUeX_un?@wBUz#2gOpSozBLr=d*$W%@n+c`>1%WpH_-| zV)*tI!m?|+i06<4JEw_Gl1KkVfLtjBR^U+T*1DRWt&^=md#59#8uG%Q8aPEkqF5IW zl!-MN1~v6T=<`Dyc*w+aA5w|fJUBY}>8;Y708Rha6>*59_aI2}Nz{KJC}qa6RS|B7)5Y-+%}_k zpNOo|jSEt{eV`2HG59R>C^#G?-4yis?s}Kefa$r}7R{`W;?_%6_o)uIitWNrhp1uWo%AyhS*|$=x?AKq7ovS9aWkdDP2~(lN#KG zhN2Z+GOe3rn$gJpA|{y@NUHYg>Xnk{zXcyx7Q7k)9qA!#(ua&!O$%ou^C9*5fTM=H z266qvLddf5yM&7_*4fi-3!z;iP>vGe0uZPt_O+qLy)G=#Q{DpV1+O~pU_Hq{8%;VI zHybc#8S(+EIq4(37xhFN6oSWuu$Ps1%_XB96{EqNwB& z&g`JQsstxiv-)E+ht(ws7ZtX?Zk47WEm@2k1etD!5nGsa)yAIoi_~SN@^aEG*Pt%I zyhkQp^BTn*OZmQ6#Hjl?7Kfw5_e#{?hDU!REO+UdiZ=&5C^=|};^Uw-#g1$NeF(H( z%=h1FsQTKNg&J{(yHyQEY!aaxePpXQIi>Czsg!Y$F*n=?yLVNa34FuZxN1sjF-^w6 zkiJ{Fc!jkT2_CnEN(tgHDsB?-dWHeS`IMJ99H5y=dS_@h_Mz!Z&~biLJt#9VoBTZS z&|j@~=&}m&3P{Qv&$}p#slH&|w#$2%zsYSBc4LT$;pB3A>k-av=7Kz3JG5v$^|1&_*nHD9{StgL6&Al|#WF zUCb5KJgoC!o{-p)aDg1%;Smp3Jp_D`BLYA*zj*>~M^s)908pu46pYkrfTX|cbSL`) zDyyw5Lpl`o>&>8N;<^6Y?N7yM#rxIWKiFCTl9^tU^7)%%UX)bP;n9uTo#MA6|^M3w%FEehnW<~xx( z^t`G?**P}8P}a*|@3(V4t%E&0NMXC#0xW>^0xP6uCMEf5CGynu}jg(so2q{ey;cbN6~rsQ~CdI{5}qjy+Y^Ym`CA| ztT@L!sAD91RVuP28D&Pt44-2hdz=n3ju9CZ(m297$O@GZ>KIAL&dB$7|NetB?#KOp zzh2jMJuj%#{YqD~l1C=4jzbiy*#=*qsSwmny`oC%W4wUhnFblWw@$j2gcb=t`asuS zeEQU4Y42eaa=aELZ!;e7n^AqFFv0a5HBW_!qkSqI9C1+SY`tuPH%A+l)zKwRpyaBO zw3-dO)8hZz=hBSG#HDxOg{3AB*BoGmnuqs1k*4zE~})b)nW^e6>tX@mgd zlqjYTH8ok#*Pi2@-N(!rDxzDE1Q~lx%N7^P-K7*H07?2+*s_JEr_?KE7!Hrwd7{}) z(jRK~v?>OIAvI0|kH1w;FT~gyLf*7t=B!!K*BT(5bY8PX(ssQ;sR%uNU6VqNoKo1ir9w}~HcGW4iU zgeE67PBhB={=V)3LoefvqK-C?$`pAnJ!Gc>&ZQPUT;&TebdpSF!~=t=W5U}UAxokz z66KQBRcegZe%q(odvYgrfZ2Z zU;0e{9k#amj^ln^riRy~Oj#yRA+9iZx zyp9uyFf<|q3CAX*xyf@0w$V<{ekfevI~nOlO8QZ{Wh(N3DSIuGj{x51LsdY0c4s6Q zzPH;X80sfIZZ8SUN6r2ZsK3M`bG=`d%ie>1`L8vL3}e9z1fD zj=?_kM+3R#g1{9kjJTzr=OawYkk-9n>u6p;Wp$=E)!|xJJDnHnDWjKa@`3U~`lU~f zi`5?NK6cR2(U#FacOYrbektQDeN!#Q)yk@@LS4k`o&(pk2rPD+T9*6RNR$V!1`Mw_ zOa*6?#^Oz37n(2Vc8l{F+GQyq8%A-`uh!NbQK6fKhHw{m@m~m$EW1Td&L!E0Xjjyw zpyy`FOLp|NCr_2=7abDc&uzjzNISLN>9~1sea4@%)C49}n9v@#fbwwQp8c{_Cp{^j zs#IInfebiEtq^mCWWbl8y7sA3_fN#O{EFiHTk28yX-ZxVuQt(xnGVR0eCi6>bEbS7 zG!vG&b`KjP08TIZ|=c zy)0FuA)VEl)7PMrhBE|N-%nIqGf&Ik9J;$p_4rK;SFff@uPo(B)fI1fVCb{npWug; zrngL#kU5?|RY@h0fd3t?Yb7t(m8|;vIVGmkOVX4={$-vxMI?QCcQBs#p1-B{3McsF z!O$8kt3`@y4iQPXvSY6dCvWizY_DXaHRDRnr(~kZY}r~ii~s0{ySzr z*>Q`_l^+Q{Pf$f=Ph$2LDeu^y3TLaDaxdk2bskPg9Xr6*Lxnv;xuSS>s1=T%mlyEA zD?0=!Z?_>z@p}oSD9rqyi5exR-&?O_DSifW6JQ?X7xBAW_J;yV^=iE)$FNmMIgZ*8 z2^t7&w##DAP`LseC3}W+9N=-Z!70mDEY)ZVQraY&eyOdEc z3-wAA*nfg^*mqfyjf@ewj!LUgU6*1ilEx1lpKtb@0dd^vCWEa-gIVnUoF@^>**&U) z=BH$IhaM-IB4z~MIE1hC|9?-1I2^CECBz>=hQW9&z?3 zIt}{EJMrJc6#3eh%}BI6J%*sC4ETc8i9a#1bl^~sTcm!5e*b@fN4n~YP1|$FeKXW~ z^-BT2uOh4P`j*h>i+~Eeu<3F6fkUE79SM2OxelQ1FxzTpY&TvUJmkJFX>J7K6%9>2 zr^KFQ)dYlnH$BGJ|9Uwv=Ym&riqne*y(vBZJO#%#V_!BJ@;Kjq@iW$>(?_F{#Frt% z_!;kkLXa(ZVw6I);$7%%7>I(5ZBSo_>3ns(=xsd2KDKk@SK}@b>IvTwF*5kymjT0; z(-V?cTa@zlF1n|lr5<(>kHvq<-=REs%H1Zv-y8}y>HXQa@!0qKZIB##aLP#G1GkaA z)<(#>sZp-DA;T|-Ra4MJ?{M^}ms2NSZwtrk+#9f@pR2e|6sV~F75z}#PbEdAU6yj$ z08R65y$am!Z?l(F{jELfe{P^c0h~FK{i%|Vt~v?v!4ua>rX20bDKfHJUa$lE4EfyF zA(e?^!5&4mgznOpI;mD?L*vLi^K(0;P_6-y;E?GJTX>~$qdZ-q43MqauXSm6Q3oZy z0v^E!H1p8-WjnKZHbMNOptZ$zI-K5MLTnvpCRtU5=(PU z(7J*9<>PTW78VfB{Zs#iOpe z;)@}>DWaH`F$80LXV4d3Npu@R-n$Vm;&LtS0&&7R(1-|nrFrT^it4bOZ=3_Kl^vm{ z^9D6!biebdm2TGwbwMV@WGMp?5=RaRf~u#5d&3b7$wz)pERV8CQ}7Y9Sb9hv$Uuml zsZ6A9>b8yWNa)h1zwYS0gE+Ft^hj`xA6tcz` zDD$aATPi&H%Dj_26GEw%8!#Db>_HFT<}p|nD>Cj1K=_wXx2pr>nw=-{zOHWXnbH{_ zt#(8lS*EV_39b9iLSL#M)s+0)!ix*{nqgg4vu9dPIzRewdOiz_d*2ewKhCHB{4lB> zA0arlNX#G;0J(o9=D;X=Spc|W^KT8H>eOlF(`@jN6k)(S`x?H13+o(2=jM+zOMrFy`o-#p!-bQ@%Hsp)s8OdM$Y!i!wDnOEv;*$RWN zZ&yLPFQ3S6rv{BkzEbdv%9})l?)1?gqJ4@kSqrKxQ#kgjuiol)ZZagR%$GcS0oc7B zzZ?JJxsNuB81nEi=t`fv-ZbUTRNDNuZqpIW@R}^D7veWK`4bOK(jpHC~=;C)%oOO9kUCK*~pG!cZD8C{dphzL{FuEufmLDux2)AF!^ zx}UDUQ&?(1b6DkYOBrvHU;f~zm}q=9ERC1^rjvx$EfkQt+}9z!6&Fp=favnJ8%-`+ zYIbCA#zha?T|(S;JcDuf?gO%WsTT!jnlfvf9x(WG`*wyS!v)X?b0PRqLn-o*NFHJJ zeHbX5PiKC0BKW=bO!4;BWKl6goO!HUx!c>B97DuGB@EI2d65zxLXQX@=j-losAqpwX!nx|eWmKx}|;Ex@inKtnsfl5=RaUUQ2W{8In zA5z9=(TG3E=1q5BVU~^*s+><}!v7Al3LZyPJU#r zftLz&N&hh$V9FXKKbg9DqVtz<)F|l%(al)P$mC(AkyDE%P+bv3zHrS)&x&<~1!$iS z)`>>nbLV+)pKCT5sT@@D{oruC#D~#a%fc-CWpJvx*664-3b|#$eKvUWRrN(>%yL$U z!{dR5O8|Ab2NqeId-$z)Wq7A5*DV434yL8-wJjm9d7|vT_+IY{B1J;Rrc3<%P*}!> zgkE*nl;)}P`xq4H+yXR|EtlpbnDx2|#d-drOEo=GJ}K{|phw%4aBHs3C@#Qyx1W8- zTdveD_E_UMY`+mN7!;@8wqf})eMakS2t|kg_=S9~iE53c7F!19NS>wcEwc^XwD(J% z8{s%h-UWV8dM=%a{ZcP4mamA5eb4ev-Y(S%hPD?nW$Ndix$1Hvk8umbQgo$UHaics z5AF_#z=Iddj2(mJGfz*de{`lwxpnlpA2sF`1h{LaaLkGXTx%Su?xg=A3ieE+e#y@!o zOEaC}3v6T`)uc98!GU1)c)LE7Zed{xL-M$ms1W>A{fjX0t)pBChD8X=v|*t7gqy1hd zrbxaAj+X!68zw@5`-4!~D+#B+CjFR>R%m)%C-@&?Mm5{ght4+>Len2FokJ6IU5=ka zPUgp@v;q9!SnVCskx7+GSGNW0Wg;c4K2serzUJ)AchFRv!}a!Mdc=YKP%6rUJkG?p74;Dcmyq}H+^|XB1;I* zg%FoOltfUM!sP{S`XkEw$6Nk9C;hxx)4@o!zyC-2$E;A5dG9w@o-|$WA`j9_j$7*Fky}%pQcX+s0NW(0Eife2 zK6@ZP(1t>l$oaNliiel`RsB|F-3EUhQTc8v(?aHAZveHLj`qIOt*P(EkofjXE|k=Y z83G5Dnx>%KX`T6dcT%#?{*qnsd}_bb zeZS{iF$dz_@EhRF$W(!=>o$1jjtC501+gStDRCXDaP0Cg1zTK45-qGj_(1Y1PA|_` zGEa4{nOD^~ky)~C@7HrvNJ#a|XG&IJASYOw>V6@>3u6?SK2A?N5$LaJ!fFTdIxCZ$ z{wAtjyhVey$`Q9gx&WImvVg|M9&D*k;|P=KN|Z4){H#lKT~N+lbMsS-{h<)eEpX`f`fr<>v39&X>MUM)`n!uxO?`! zZaL-ePW9tYG7x?}U$MwsTMi7k@V*rnhXQ+6~RHdO5YO!-= zY?L5(;r646R4sR1hp-G%$IFWbYt=NJ&iM>;FUIO$=Ik4Q8!oA>3SYHE1uE-r=;`^% z`D!j4rVpb2Yvdac}uRTMR^gq>I*STBF8oQj1hKNS zmuw;>q{$@4=`Ev3xuI*5+JZY3Ur%N7;n^X(rS3ubsCval!8(4IXa&?#sCp)*&apLV zAgi{aeq!h7ry#3MKJo3GX5?O(+ZFpJ1GTMI$Ta60S?R8F{ZcV&{)(uAKF-dck_o7KJwY!NFae!@@>QH%nzFd)_|WAbd&naXqjqs zgf4W&BFih+J?*c(q&%3s9RWHoP_DM!-&r-r+Z4iCoW%KeN=+N4f}X1`J`UkXYZ8+n zWNC-s1cC_mnO4+#gY|QA*xfQ0^a6fqu7nzSMP+r-coPNYaR6aO?Q+c?z2)Y3o-%=_ zsU{A(8TIIGG((C!`r4H7!1Tm;z%Uahw5BV6t9~p{BXtq071;B355amc+93X*nt8f+ zef%GqbgKnthzC zk%V`@C=EkrS0Ap#+g?tnWwwEw07%Y**EKseCw+CCf8=u9Qyzc}2W)?_;5}^Ai5y`` zocw#IeOvF}Pe+IBDCv8Or%TVp}7cmiF}^@>IxWnX*-Q5Kl;_iEBDR8285c1EL+HUv1*#U05IJjGp#(9ujm)k$_|p@+HBH*e^r=}(v}29VNWDDj6}A^q2#O=rXBMG*#6 zb5|v$UzP*xzpeZX!X5Ev2}HGTmeIb&r5@AvDZb* zXFi2mD)-XY!tb!LpV}eVxjSeorSt)nfqv1I#P2bP71zQgu|&ynw~dE>=8?hRhq zwD2AviHGm}$bA3nc6;)<;MkLggzDj)I?=4`O%b6ygYezz$FVSk4fzN4(tmD+XNY6~ zxM}6GffF(yJJ(F6V)}OmG2i@eDt{NXAwDFJpD;fMhYF^_@Uk8mw4&P;Jc+Ec3djW? zmKLm-3xr69j7QqP4_Z{rQ}b@nx7$z67Q8@uetS{NeFdCVW6^z?r5?zwF%6);vE>qC zQbk298*IV7gyn$;=&8iq{V-a*=P>Ep9Yo=`5MjhCoeb^5i+%b0g4}`Zpq~Dk5O0 zER6o6$%gZ(xoX#RJR>GQIS`55ayQ;Q1i@g#vWY_XXR4`)`A-#sE&?B`7&cwdPT}+# zPUY{9H9gRLCNV#fPgGAUP%cT5jGEm;1b z1;&BLAverXm(%8xxU|_p+(*%fzw1$E6d2xYKn?hG#Pbn@GN>Y&BMgMjRMptnip7A< zvpiGxS-s1uyxezNJ+k&q4CLuC?Yq@ljI777TV3y{l0)RvLMp7#_?`0}MiySqjYiRP z4{0N8yfx?8EWeNDUXTp6iC;-K8TnKwqpqNsOTwFPV|HNgM$7qB>Sazs*WKeY%z<=U zhuoMAhKp;4pK+&HOZxVIZ7=5-lXMrT%9aU@x*Mo{j>Wa zx<=|mIm>a#2{zsr5%AT~9NxdMh2Jo%AqwenSp_{B=4KHczcj@0gMhSQd_XKw*~xz{ z1-yGB)e*AN4Jr_dZj;bkwHBd1$ZXXf=vQm zXxH(yusc90AbZ!W`NHMzY87)@deO^n&1y(d#kIhbN4_=pG3@fgGeaSLM`)iiGsM-6 z_qE$L<0W^^+0D>03Qn28n=6qecOyM+m^xg*b44}v9{ebI`%zXWC&J^8r5STH?>q&| zeHDv>>g4M_%ort{u{+0oi%@Eyt~z%Z?ROzj8Ol&vD75+p{~vIs{KJe&vh+opG2Nhj z2lcx#Y0Z-skx4QHSxwWdwB~IG<~g8wv1Xszx?LHsx?W9hjE-HY~m@=t}x3bp07v zxh@;+>(%z%v=h~U2W1C&c;*!Cqxfdw^`JZ@D-cQ1@V2Mb9&gRawGGYQ-l?@X!zE`R zkJ5>pw|hV*eYR3!lYH>UjB#;Sm=HWwoB1UK-_G>ayX?z=Y`*MLclBO#M;zxmdbOGg z`MR@0^Wc4mWdb_hM6WCVbRG|(i9xq|_je@olu*y&wdU9H^Yim_{52vFXE=M_XTx*V zm;-nArxsGyd0S;Wo8z7)9g)WxKPhu*S^rJKl?B#k0tSgH)XTC@F0t8!KP{?UFP%mi>B#V7P&l9jfCj@)A5@aHxP3`1hc zz^CT5ZvX$_YeBZ0X4mHl9CH#cMAc^8MbO&wpzj-!rCZjQ7B(NI%LNw*3z(O1BF1QR zbjSPJR%4mOkzXf#(tm+7RPyJskJ~sKIB)V3djjfW+jgYvgpB$(()v2c?z;AOW#8V+KehgiGJ9Ta##cDP zf^WtUK4b=-n>YJ?b}`dty*uR|yNSrBQE-tdX*$fM=-%xV?rGIz2n~7S=okNUfmIpE zo43w;54z>o<5zGAzNMM%jsTQqv-ha=&1Ko%*`Egllq-{1QYKTYqRg6=%g4aND0;PK zL@T*M(I1RFWxN8Rf%Js>O(_D+2S{uy2=y%rBUs(#Vz)(DgW?#H@)GeGLk(Ax8+Zs7 zvmMtv(}8cpsBs=ULEAuCZ#7L#iZCd%)ME0(r~ev$B_AAw)tns&(6U6NIu|GnMALIS&WpzzOE=DCL z;tW{uekYdJ+1=kHuMPrto`yz-Z=KO8;0qa}9DjZKKR_?wziF_Dh6>sfdhO3>z)hso z1x(%ddF(t+3c9&GRi$)TUY0tmkmrx6P|H|*380o!ldru_y>26Tvc$sn>Bg(rQ}g^b zsl=2e`p5Rj*pcXm|L)OMCR@MBw!XzHq$Tt5Tx_Dx%u=sjPd4}>-ro8C;ZAkNyc;Tj zRWe7S)LNRjXDgmf&EwcNgtJtp5Z5yCb*Dh#J$pL)C{gGfd1~Pn<5P;1oyP@Fj(tYy zx&`O6m_gP!dHw$Z7E3!CEiSSIfmkCV-@g6}XISflu0#}y61npu5B^?Y6B#=!9=?p@ z%8>O2cuH)tFK6L(EaHL9pfAE1GJ`s1aU!qwR#Subub_Noqei5BZ)F~TN0`Aor84TZ z_^NNlr$dH~O;KF+Qgm3ou6WbacvKUdN!bP%;$I(GfEcTv!LJ)4tz+(z@J2gwZ^VkB zJ~}BqfWDbnx>56{=5BR&uz7cthx-RgoMCpbf2w4 zSueOUqe$G##MvnK;SVG-$}8_8yNgVT-Ld{S(8nnYANny{w%wy)LRJ+sWNuW>gtS}2 z!>AEbAkk=cnatEJcc^YFj zo!c086GgY5n;w?x#O|yN8hHg*$%Rh+G%IEEBz-gNJ3FLM9LM_#C`&WCVT$LaO?Ai>$-du?B7{ZE!E*IxJm5*aDPM3Eep*Fo~VvR^aQfF^P zp4l`{J8k>ee%>B)>nkg`JOqAsq{vN@AKkA0HSzDV9%07aQaJr_M0GL;PTX(>jD==S zz0Zo~Z=w=EY>F;r|Bd!Lqmu%AcC%ivX8PpXQpVO!1q(9kwJYEFzW9W^o}Ro%cEq#} zb2JIuHVnYT|FHoorAq2#yVKX}6R{vgEY2l+m}!geYinr*ywi{4VoChxOSse-0RNJu z!@Xz*f+4PBC-lR#xd|D7lD%J*ni;vUX34 zS%!YAjuk(?ICtW6Q9eIHRUQVzPLWGOaQx|7ScN=;(d-4}9;}S|x;e{Z3ASI97|WyHK7Jz*b3Z3}amdDlxCf~Gf2io7)(;<&0p^N#SVRy>C7T@3hr5CI) zERFa^-1u8^6}T6BMIX;&brp_gB&SFPjR_N1&Tv}4?V8Mz+niVJ~MNqM2(tg3$_ba(iMf}Q(ObD&8OPEdub_USuyiSkOe5)fA!n;MzWyQKzu zR%zj$q$z|-QL&QvR}FdUhVPD`!DJ7|)y`D~va?xk(2ZVat$Bg;(;Rv>3@Qgr1(Fq4 z(dzL>zb=>+@HF=G6y529PuFTjO6dJMpNls;mQaAG16UvcyI3p;5ZI%(jOlX-u13}n zQjeDI!b2_~xMf`}?oCkqvSsMEEwT^>UUAVlwoh;QR~Ei}{(G~bejGunb9ex=Q^SHE zeBsO#H(kG+em$Y&2Mp80H{%{)8$!WjHGpCV7sXZt0yQ!=p?pMf!qj-C^GgNve;^(s zs_J0>MqOLW)^UPW^a99cJSeEZ249E%jP~ukA}0|jU;eom9kYcQ-v2@1Eqy?PWJF%B z4E$ylv|?$8bgffnlH->xTt~BPIA}|$K-%=uf>^|SWVFIpNUCW6NE=!!*y?V*bn=>X zy3r1}oWy=$vx{9Zr>X8+;)Ihl)A|LXYcHZ;L_v_=W%KbBJzVnfC1Evfbz*{LJm{@) zyikZshk$r46qd&#g0B6~2U2-SjZ#SMH`ix}pjwS>;!&~hWF;^)9vLtx*B~4u7h#n{ zfPT^V>YmBld`_0fd$fSn0zZdCo^r}Eu|dqGQ@;q)yq#DjE?$|qVyth*F#KF*I!_PQ zcb}=?=zOnB;3G%cLWaz^fUmJ}{Lkvon?HRDMY<#JoyiMdJNr26W-)bPA{9%**-+GJ zRnS6rpzmD>i)Mp%yu*h+_2&)KhZ&<)sTu}4jnMJX^J0YbU=wk$aZa$HF?2~B?G;Yc zG1KYDpho&ky6>MnO9?7UbNIlPDPZ-$Jr#&zheiII^}`XTT#yj5ZS8(EKWZimYo29z zzy+YtB3)@y1mGZYte{SwbE-kX5X+yg{`m<|>fK2X0;4%*oDSI}(lnUY$#|sHg`y}- zJ;DeV$AgF~0+Lp{kPk`1^_aK(P>YatzdQCurKM%nKbxrR6W(jvj64PSh*|y}g5QI+ zY5d{s63Jw8Sw^ec9RJBE0B4zdDi)hOco)95Z4H9IAN2RlVlWE4`8++;tkZ5xxTRLM z+uiL(`N3Gs{!I7M{upGm+a5;O3R__`RfAZu^k~1peyjXGhQ&eAy~axchvJbu|L@sM z>3>cDtTQaPXBE7HOB3CCourm1Nrg=}rRq))=R?N8lzG!74RZ@mL+}^~)_=h* zBM-xfw>Wc>sT6A_f`S zbLP_-QQR}QbQ`P0(&s9fTL2fZy>dDHy~>j8;Ra6N!(H8T%|Wr_;MPnRKd(r9X*u%t zZHakAVfkqfo>?Qz(ej#g@Ia3ta&fth6pEEq7yo5t(4Qb zAw;s@#DB4<9=_<3yPp2MR+=+AYhwA5fTwIhLf2shbECJEb*5mFQ=$-gtU=eY&I3z9 z3$z~v-m)OYeu-bTR#!H(4(3zE@waOJ#^s}=<`3+?vD*2=B8kCNG3wRQY#7;`(?idrJ{dChUM}cLE-+g-w z7ZpZ6=W=k$UEtZ4M>;w1B5;Xk^R5$Y@mE#W{mgcuBkKOrOsNg~+%;M6R(8^wQN`ym zQI8n+zM)b6oBf0{7ZaERvl7g`rrd)d%hcasFW=*SJSSAFX=GgGa^Q(QTcOgWSbDVI z<;1tHw5C2!q~vG9sqkKV9x+l!(@ynpfdGqG?0EdqvVi)_9`TU$pwZ{2FFj9FReRO= zlM1Q>6*HIS8JlxF|DtQ&+SqE%G{{_8b<$KA-fbieqKs6km7~9 zWzVN|e>f(G^j58OM?AFYcAt0 zr#M(UA?xA)KOm3t2ux`<8iX6QxthS_P)9y2SFVm;X)Qc;f~WwH_IE@8rwjL|oxGvQ z`0dIfrTN6^+L%AJ$MzWK{y7!UMaSw~28{db$m4}dqpf#v93hqb4 z)YJTY)=W;DteaymRqY?!S9`%(J&^YgPT8x#*y2gQCr}#|Y75=LU9pXKD+B>JJL>jF@9OLAggbkWnb!w_5V*`Qf!@;P=Go?5563B2`N?HBm|@iKrk?MV)wogw84vDJS5pLZ**x7oh5SQ5#io6o zcc~3|zV)S&{kv@OJt^Kc>`w@&JK?kC&uTn-UN8OoQ8K)g+v1i>LGs;@9!L4#-@l)RZ%>VF>e_!07R!@YtKh?9hMV@N z+QROLThWA}m>i&E$-ylM9T*9TKNi6hx)V(VKBQN6{L@3{+|mq1|H2^yj-Su-c{m1} z9{*V+D4i^F+FuO6hP=}$Sxtr8NO6sVs{&@pXv%PL@(9Ir2(KM!+nvVR@hP~g^b7%# z^KW9FwAqM}DcXR*xA@m0 zm-vJ-FN??ZOm7TBVcSpS7tk)Czhg3(V_ODnU-=ELvj|;ak{UH+bJ+P#E|xsj+KCJR zyj;U2-~08y_awsSg@A`iWqF8O|CkLSUjloNf^Zyy;<~+=b6|n&Cy?g2@Ewg;>B`ku ze_>G(^N00+fLB%0kNN)rbP)Z^GvB@VUGWO9B}k@ zt!zWdL6LUExpO(mrF`HxGTtZ_eSBr#$|5_{?=`7J^^n35wO+Ul-u^2)ow`GnGrPr2pP1VtZ+NDANmr!p-}+M zjHfQ(TJLuWgf77}XvF8Y>7VEC>#1JmUX*YO4QF{~xtsNNnezf1h|K~)m5N5qi$dLD zXNe`?%XB!OKsX1-{8o7S+oR75wNkR=SQ`HA6jtUOC5#0Ct5zLe64Mgnk#nR$K*?+T zh;F6uKOi}_efaxiMd%fdEP(kX9C02Ih4q;AheJAVgxDx*FXFm$u@2i6YI~383D4k; zk~0X@AK{7hGo-FuRTJ`qcMo@dq75{!WDM|+|B0!3MvJqZO47W)->v~HSLT@kDePU0 zfr+80!%t#=c9%1MrH$kw;QAnhWt-=D$fZTmA>n&=YbNHVQ?AYq#-ck*az}fmTrWpb zitlBWIY`Q61X!%9fI&mP!l2DTSzMMHcG_?c zRJMW03)L3Ir$g!CH?53EsZoR2+*8*-21te>Fgut*6~j=1(P*P`On~Wdj8M z*H+35Oh*6jwlL(01p9sG>0W*ST>d;A;%#16J;_R74IkETX9$y?D)<=V+YOYp$t5>e zu1tm&2Brt-zAp{s+4R8%n`?R9VbnXRq6OOk0M$< zoAQt=?GBgQnIPi4H~he^8!T6pi}-mxogHl8hE?LS#omG1n&#dZ0V4RmT&5f)ecW|%D<+8@8imj8lW#nPdgf%M(msKvH?|=ZUPTRGq zA2X+tIF{IB@5}$!pVo$uVkk`XJzOQrL_8?H*Lp$$QE<Sj2*|G@4tW)>i z9c*iSiMgaGx7MrEHdl19?NylVv&B1zN&7p?phe+JDLa`gygsyEFX@H*?xDku1sQPH z>M!kHs`A=rkE-1rHncF!OdGWz0aiEK#lwYx{Rg>5HOdj+jkb35KM9zf5Yzu7mTsx= zOvz5w=N3mfF`j%l%77Ko6xn-+q5z$23pU?)Nj2T_FpV#{_O4CtSexbp>W981IeLS4lWHDwf0c#*^*w!Xx!#Lg!{yc<`d!urxHZZWx-HX9IteChb0S?yxpXM8H&*0i&;w{A)*IZIfc zo9r#!v|?QxD^*J|hd>S96YQMafK1sLA0+-&T4xv?^)v4LXi1!70QdQVQci>bY)Y5!83p93lN zEsIPO9q3VCaC8Byioxz_whz3+2VR6z*63fg^GarjrgAmE*!+5f`PKXjBk3Nnh(i|V>d-GJ{RY(ZV<_QM|P=ZovehYe+q=o zHy|Nwi%PH*CUwr)O_bTjp8PkbV)Z$3vW8Ne@l$&Qn#G-cMz?-qophNpQJeRTre_5* zuXk!?%#fNV|1~^M(f~+X0&14pwk&2Wx~Y;;_%=Rf8e_tKEFqlf36pr#IzFZu!HHna zck2)*Y?teN5my~jAbbf=@Dmm?Kbm2TCJ6EuIVkZ%Mc8N8c81TR2Y&WAgiEDI+9J5! z2fC$Jch1LLQcJFXqt=yaWo*Cq`q62lL~+o1Q3F>FM?HH3NF#-;P^G)nHbEkb{#|-p z!Oi@~)BhAWnX;}2BhoWh_wn8|+o0IbB#|p&knJ=10RYdVz@wVZk7~^(8D*ucNM?ejxWWbj*Z!{pRyeKC(ntcKxcKG$Twl(Xc{tIS;9CQ=i`LUae$?9`hy~sel zi)toH{|RS#fCcy1s;shDm{Js^2uO3z1Kq4{Ce|m>W(fV~OSw0_rk5nO;LE0S*}1*O zBc}l8+1~>_DMGHqXJxC_PfpGl^T<;(?Gr=$f5aVM<;Yl#(+jESx`oFCh7`C!kxXXdy_pO9F>h)GAJf2wFRCt|;qg5lA{p8P7`V3s zd~X!wl+0J@FsOLQy2&KrB4&U5{-6e%2M+^=m9l1)PHluQ5kK{E?a!NP!FE@z#mODK zvsZJk?23QQcxI^pqy@b96$L`s8E?^29cDbGuJb28SEv_sroj_;)-LmOl*{GGiAPzp z=d{W=aJO)n=w7s-ZTfqmVsN(p} zE@HCW``|}x`npI~fGhw)-jd5a=T~i}Ku=ypxWIzT#$S*ir@7j!dfEqKC5JuOt?Iza z1+C2F=KHOM^Z;@N#<{%o@bgNZ(~>g+(fT>F-UKim`hPq>9t)b=e)Tk3HmZSo< z8}mZZHL0b>??RE1?deZ4Nqvf6TB-HGC1mV}LP;os`R;|hgV*UHj$ct+&xGnk`{o4PrpaONL^@;K=6tWTsO`Ytg_a&oGj8m+ zy5!$l`>pSnzBB)9gbbb_hd+!-u8C zz2QnIXLD*nK%t|EOiI?bDid@i0fQN?G}%=APB&edNOhyn1(5@N1b)XQnQ@*Y1NgAW z`LTq?g5Iw$Is|EqGWHY_v(S#su(PvLN=scdBTT0$)9PKN3ZerQpHvg1z)uN{B~v~j z!=Zr-86qf)+Rm{ocD{$^z(w>*!i|t#zXvvh0`8}hc(|B)=vOI)S3YvW$V|YtTZPs) z_7<~90IxX0mq@KdYl8mjn<%Iy>Dzdn{v03sLwcTEfT2I%5%?sZ%exlV&knW{+qm^- zS^**HZ8eT6gD=SWzaYmB8q#HC3&8gEYCyrxZiQOgZ!gSg+)uxIsv2?fZel^7GW54w z)%G_7beE`=PNXvqL$eKfKOrAI+N4wOFTA;US)`(Qdm^!Y(&}cVnvHad?afzM=!#K+ zBkGNo)-6Wt_Ffgs9SQFo+B%R^7L`ucV5x}t&Cs;ku5tcIR;OV0YXRT)ZDrc5 zR9(vX3Th^$5>HPfoadNdW`ChCrU`RDGLXkeN6u}_6o|+qmqGHw^&d&rD=4(|-_Vk< z-pVjKm0}QXMzaoQRH{Va)=ENE362CgmO(d2mr@$JaS5gy!(OnqnMu5~O6QM!(8R-T zK}t6h*MA|ph~}{6zoi4Z=h`!mo~k%C__%fiipd_>u2QtNP9v8vddsY&ed6W?xR$G_ zBDlm+>~F@`3ar8Y9QpPsR&Uu_JCoH;Yz55}HubY((b^P<KTgFU7C5^_$oPP6I+#gzrT?V=H{=YDeapT`~GYnGB`!pzpXA|&_SD4 z-Kn_Tz!;EzNUutv{aiuV?G?*{VGu*H+Du`8iMk%$!M6s=My9Yp8f-trD$i5dzP66V z&{J2kQlQqHt}-Wt!L0xEVUe6}KwQ%2|K|BiPffuXj_f6|4gX;-=#SSED)pCd?9UyH z6`UCl3l58?$${+#x_tsNx9=-b28Vdh>wdnct88UQJAcwrb5#$|58J9l;P*3;_dtF1 z+JgkOHQ9~yB+?IoTqVA-v9N{+*3^X8gXem$HH20(7Hm(CHE7Le##l#5MgkERz4eXn zz=!znmQ|+;&8mB({}1>V*&^J`DOed@fQ1PkR_|JR^3*Si&&mbB{BTYe@4K8t*H2S; z@dKPXZ-PEkG|A64BJG+^5lm)KGOVS?Pv>S}ir5>5Tl^wKMz5#pZ12~E5 z2$Y=++kTQNsHECf*7X%Tc-(X}P>y~h4{W+S%ymmZH?8J>r z7Qp$e>c6jM+zRaaX{1+ml4!*)CHav=+GH13bPs?wq3@t5jFM3j`%wMMi&*it?Vii0 zD(atSK8+O8KD3j)f5Jb1!GR$TO3Exp4VQRo0zxJ;QE{3ARt@3*{5(mhKxrK<5B7kE z<_*~i(~BOtO=EDzmluGBZmBT2B!?8AZTsYU%Oh_cj{Qi9D4wyz(br9V6n0}d|AVCi z+mmS?x09whv6JN)e@eOkkD_z&XX^js_~thEThx}hZj2?lg<%Z2=6+Wy%q2oDXG5mtr+q*L#QMd+j7{Q2vxRo=Wdh=!FoHd~I~gRGEEsVM zmp(9;AgV7Z?H|1_|KV+hj#UZ|6^7iD-+Kt_^UJ&d4BNwbK3equ~@d-f#l__rUHs14Fe_{g91Hh0%|9KZ(+BkTE_ zAUOIf1AmmPdtaJGk74fzu+Gu6;$ff(Ixl||{b6R&rP8X5J25>?7S$)y`Yl?CWu_ft zx6>kMjTAOpTiqk4J(WODR7~l=mD7LDkgeAp2}1B{G%S52_bs)91k};l{vvc3wuyX! zi%cmc!C@;zx%G71#nnQgMAdRW4sdh9We;7Jnv`s3|2>H#wFC1Nl6-S50`VAM#CXC% zHT);(YS!5a{}FPY1$HE~j|9@yWX}1hpM^xp7HR1-{S4vO;n?FvM%lQy`u$yE5NQ39 z@@a@Ps9LlSW~oz-6nBDP4o)uD38Oh&1S{?eEe)h(Zx;>3+7lq;h|2O&K z+>Q@Vhp$=A<4kA~cFddxN)2nXz651~{rxm4&XV;RQ(+|EFk{O`5r@fSqHBhZ8ETOh zB;^B{Eco?_GjMZUqbLF$`}7%~f5$!zK{D8)@5P-84JB&Lb$F&+0a^dBI*Z)GCG8nG z4?k~(>Hc}5JVDnRsuu7^nK`ZgwpP>1?_yE?`GIPJ8oaJyvpB+Je%qktTMA&ez5At)fW9(6W}IRxchnSjIGjwgMd(XuTM+I zF_YiI8%r@d_4ipdPQfSaAM2Bqm@Wr!Lf@uOo?|upNQ$Flr4i+weneuEvQ@ zG6Z^bFp6w@c5zIspv+)1y?y$GW5cHOb(Z?DvTFJ1x1ZQJ6Uskd4A)LHwZFhw1%oiozQLwo;)0e);)BE8Ft0qL@R# zrK5}P99hLb6AXeU|8sk78v3&e_T>2Ir=?Bu(R!)};;DYe+3&s_T6){`%>8v-zgOFl zK)~L$ml&8D!J;Zd62|}B0XEyoQfwG<^11!hjX8O=RlJG`;O;Rh zju7{s(>Ux3j}VyzqH11uxGIWClTb)@-@l(bR;_(_HLL0#U%x$+8vYrdVZ2rD|64)` z)xoK%rh#FXRodM0sAu@n9|-abDJ;*x0#`@p%mB@}p4qB2iCg+tXI2tnslep(>!vjg zZfla$1jG$-EWUM7r_hg++gLWFz~aW+_kVyj1S9{i_b`S(b3VRNKKlQEc85Db+(RJ2 zkMBG!lx6QHrPj!&rJ9##(%!+i||4z^q65=-uAeG?Kco8}2zS!XYo! zYql-DVOke$2DXeDBNotl%RWG58+`9eU)gH#LfVMOOywxK4Vx9h+9GL`fnSh zI5{r}E8UePm2MKy+c|%{ayf@*ir;08tPcZes{e;$X?r2OFf{KMl<~ykW-bBQ}PD7Y8bQOji+g%}@ zJW!O+np{d5{OFM91|souMOfwJ?XQTE)B9YPk+0xhE4%vF<$9ELSonL-eiPIMKEsoy zlw4ITGe7PNe0EZ?t<-mR*JRuo1`b)8KWoHRy(oeq*&;d1M(KM404wdrGt*OHtjS-? z%9S}4Z0CF*CB2(EN#M5Ce%0zPE^6Z=RHVOY6%)^Ay7PV7DvvW`a#)P=o#=05>E?;v zQkw=tQ+<~9Hb)Vgc7kpTv@}(+3iGJJ=wx>4{3o6|p5#e!6db_!HeSAN9|<%+vYVuP zK>@t%Umm^(4DziR+mJbuf;LNzEa5W8H$+5{ZcGseUFILT{=P0+c$coZF>i zVc^v;@_V734!#j|UZ9FUHRK3Db)N8JwAm6Fg zmoT33y`;uol>t-er#BCY@FY%yS-MJsV+~SEZ>7D3(`hyB%JnO(*{uz|T?vGZN!)2! zxdI0<((T|FH9PiXUT2+lQq^Pi*9NcD8tNNYwLxBMcWsX3ZFC>i+?6mCHxXK?-X`4w zHNyCgJQbP4NA^0dwTBd8%rLfXM2!{a;y=|*b1@EK^A7*7AK?%j-O5Xih>W0 zHnVu$VnO@z&DBy2OAfHdspM_{qr_hWmP?^XWTR4V;hoW2$g`leIJyr)jluoG-Sip>hzlU(&(7dHBWdg_)uG8X^o&EFElf+H=P&KF|oWAFmoq@@loaw`EkP^Y6 zx;)-Q;Q;m_xkzK-Na`x2=)Q`78Uy6LzaeB`sAkPT_RKQia8zXQB2z@x%ZInz{kH7l zu<lawuEFIP`(uLbLp}5 z3{q#yxNk-YW9ZiEhrI+ocalw{&prm9OwqjIF?*ve`lev#rmz&P^nl5_b)KV)m%HD$ zu~1ekpYLxWIr~6s0O{8%d0Fk0Ynsbkl=SRfnJE*$ZsU_*GEJN@yP-v(@?)Dvcy^|L z(;$j!ONQ<4lbW30&)YF493ip>=}B2gGlEQx`WFI1wu9e4Gqc#tSP4Ju6cuxc3c`QS zPdRFY?lO_&LDYM>jlr}976A$iy-EW6)ZJ(JK6b|A$W0?j!SpG4R{y%H@5p8#jpHJ1 zyCe|9F_~LG{O{|AbrP~%U2ARvpkv{MBz>opO58@+gjD2ai+<5=k1=82Ng$M*z_agu zg8T*bo_cNM4EV42E5ih&=WGcZ(ck5xM;tU$7l`}LXl|1${UFV{i`&!GFNJ$$99NsV zmn>6Q33Bi!?&;#<-TtVD1~|EFbwvnjrzW2D?O#f?;cm+ySJuPBm3icYRxfCF#lW^V zaSvq;S2%&=PyO>?i}ZD~Wnr;3lV=?~yOHy?1sQVD-Bs_plA?T58oH?;CJ7=^FLds7 zY8~lUfIq9b3>fqLn|@(b5x7K*F^Ao#4_NUUgEWeRlXtNBzPD< z`Ds9Zs<@^jQv@HdMlKQrxoe#G+o%m3m$yF_4yjDS;gske{u$5LVBQr-?qq zVcPg6TZxngh3B~s4Yla~YxLOw(kJ3652(mm&)kQ@5P%e>^8LPY&Qo7YI`X#Dg`Z5; zo5x5RgAP&*!bE)|4bDrrm z5yc?@ib35i&mGuad&zzrAvSsn+ge41_rWd_1#@x2 zAq8%NDT<*jr<-4^Ufby}sswvYq-4;JDPJ(_zcLUj7X^&nU2W3bqFVziV|}8$OA5Fa zD}$t*MD(9|C^n*P)NWlt(Rb1i#OtEP4(?{{yAq8m5`fw^$D%OEzTlvSY2o6>4%3h$ zatY0Xp8uW~d8ueEV<}pCrKpd>D>YNDS^E#i&w)9tPCV8Li7dX`3g%)fEKfcfe{J{@ z?#w{tZ{E-sAUQN+-Me_WJ&&4ofvHmz-TPfiDMy)bPt6Zo#y|J&BmCQnB4aO%= z1r8()E)5T0d1 zPFK(wL?k>`+BTCQ+R>%~S!fGzrNj+Q=W%-)T^P^XSy?**>H|-*JuOVhZ0_Z{MVZt> z?8oB{N!v$=NdlL1o{(+NP?Yif$&}37wQ*#WZhM$z26VV78eLTN@;^}R3+bimly;yG z0U$s0@v&%N(h8gTnS1<49~-roC-Xuvpjwqtt0Z!VDKyBqhA4STORl_0ZO{MCx7nX2i7q{(t7AvQokUm)-qno{s+ z4#zDbSuijfJtgEOKPb`>Q!I~Iaa;X2tas72MFS*oT$3yr=}K?^XsF%npoAG%FALG4 zMr3BIEM=t=E!8lXbwgLa+}Lpk6GQXg;w9h?85pxq(7rrquhqa(L`s=L2!Czv*c9uD zpRCX1!!Tw@DQ_bXUn^vTMIOZ8jL4Ts&D|TP%o6C{w(EtxHd%zzI^9z60zy!~&aROP zL*9|1=MqO1uPf}DXqs%Y7qt+>k3`*V%@ztoCa!2%Yd$Ut=QBanK72zA7I9*BZMOYtnIoQiL@l(p_t z4_CR1wl6RF3oS({3jp!<=n;3O04M5ucNQ;oMepf-Q<7&v5y4Hc@cQ%>*&#K@_0v5Z zt3%Ly3^%xrQ=aepI9(mP%rEh%wfmJsQ$?>kxg@JfdsX(O?jEhMKA>1dH>vOa`yw5> z44L6)L^qdUSYAjX$b4U{ZE0R5M0n>_^o0^9hRPq|i&t@MOkx@?WPT1O3CQ38<3dpx z(Ze}~V)QTY+GA9K+AfV2ME)ylv*vR;NUUU$7t~ zJVnR?e>+4$EvsAG(i7t8;C$J3ZFfbAhf_)D2r^rUlqRi?^2MdhBny-Piw5YxxKesb zpBGjeWMKR)tWStIvuX8w*d2WE%frR~O+pXd0ja71+1%Z*+dOZgR($>j1iKTrRX1~3 zgRWULJ1%A(Jz_ z5K6Qq8%Bcwoqa`(2G~Uo6#4vOebD}X+rs?Vp8jF(!D+}8&5N!FyADx&A9m|ZgRi2t zXKL|H^?UrZ(PDs$uh5hRS{bBWP?)%pzeUB?z zdVDwfWs;(smNv)7Fk_*D6~Zw$r4(eSd+T~?E>i4_s{f)FE3B=w=hC+~{+f#?CNApn z{~g~g0pD3xbMWfm*Vr@<{`8(J5!?Hiy7+?mLcmm-vQs_DztML9lvLgteOlCK(gnp)r+<+bMNp1&+ZiY2sj39HXn~;LzADNrxlsW zPTXN-FWyjhE78e}X4!*ORFqm=%3s^>=sU`^U())yG@<&c-n}qBCc)fM<2Yy~YqQ)H zht%bM+)?H;shMF`cBOvF+nng^t)NVMM2Jjnc zirg4G8|zz9xBoXC$5K5v>ce~pkczl)jDNNt=X_^PnNkHLy%tmkGql%i@O~|!+Lfa? zcZHyw|N1$B@q3gm&~ot;%M8o`{ReV8o?2^fGfQBy-qO`F5~JQ{u4|tybrd1oK5~p- zv`Eti>0Gv4vzC=uFXC86KTf*eEF;OYLN9syc)!LggC|Y3O6U=O+X!&Gz7OEwV@-V~ zYO>l7k{;dTQq|~9eOpl6E1zc9tdnsa&7cQ?r|#7JDBc9sYnW1!lh^8ACp={Xf>OVD zlcI54I?dvu?c&D4Sa2Pi{|E2{ui)+kyuk7$lCjnq>bs!kgiXL|T4jy7?WaCEhr~Akijb)-2qcwO1f{o7f}0q-1s!~GAK@u z0=@+syXn^m+SsqtQOP#ew}hb_AnIlYIR#67@YHu*JAa+Z@(w$R;zcO9H!BCQlhA2f z)p2&PiVM6(7tSj|)KR;|85;S0ucqN>4&5)2;@^#2$*;NEXEqn0Q-zx)QpBW3^o&AJePyvPtOZj92vIeK+E}tZIyQ$CflhZ~F00KIqL=R+q*E z;h{7Qm8gGF59ICYq&DuaX56jSurdujpk8;qQoW|dQ?t4klcKNkzOYWik(0pWVgb+t zP60oo#rSNA1R|#+h2RiGK4E^vt*Y=_QBuaO<~Y2A7y96~wR>1YJX{)HOgj0j=fHMt z_OhI?YE;Ms{m0DeZ;Tnv2t+uq?$^>vUHDgnK1nyY3<6Lcem2g>lxs_^C?XppiakI3 zE9(lULtmt~M#-g?@ZX22K3Mr7C1u>LW(i3Shv#P*M)~trvgQt=l{p4#+R7*N>bwV) zGCTS7uD_^Pq@ybfL_q;cu`YZztGoQRO_8&A(23;^!(%kc`q5G>JagNuSz~-?{{$<+Wt#{vRgD-WiWNsSLB}jT8-HWM|qvDBx8uiCs9Rqr(_IrIrYw360pFPki zYg*xs_*gJ=eu01m9D(wm3Ub?Xu=-HShg*#eJmyUIwrOLPDEXPPLjkNsrxCZjhnqz* zE*n)TQGk8`ZEYVrl@Utyq5L_()W%Ys_o534ebG6mD)$Yz5{6?!ic-}{GT_AGK< zd8Sa)vwt&yGZ~CaaM91rO3zjLS>kKRjz@SyQ=dV{SB>*>P%iF;@hW-#r)LtKmMT#U zG^}Wy^UyV>7Vn{$qq*y|P zyO+yTK~V({uyD$y@yx-LV;0yv^^7w2r@p26RqI5l?LY68V!!*grymMU;d|t9YSOC~ z3&y;sp6ZWvO$G?!41ICN7)A(Q4A2nf0ju+#aRN%z^l^$uO_$(Juwx= z&x=}lM`MkI6DWR)VFCa$KUTCI)E!ng3-R`oUjD7fjWv}&WH-HHL z)=UA&mwZqOol^p6Z$;D3%k)m0S}xwLYDP7R)7W`Yl6WKJM2R@~l0|>V%*zLze~%ME z4*y(BiSv?Trk$Be%*sm#sLA@MQNgqi9n6@kM~T}ww#aY1YgQbQVRAs1iQ#MRY$9nzoZN4`pL;YlL3wbI12U03w zyrX>0?1ZDiq&0nQi2svvJIisPd{1^aKhR(z3AAPoU+pV$K5cgj;V9X}add$HCS;Tq zTo{Y^SPFF!2agKbX|R^_s-5nb>-@^_4s@CKF~Fye5!kA$wP^0ChB)PkEp#U*`x*P^ zzv80fN}k#NC*cBRMVpe9mcPm<~jMJ5xUpkZCzfwI7eI2KtOt(u|K4H#PC&jZi5funo2iPwujL7Ozsv2+n_`c5Z{H4sTzE$9DVZhc9K6CBD3yKXKxVu5(^Yv_ek;+xJ1${l;XS?`r~XlSYEbJ)!&Eo?{eklJ5k1EQUW@M! zN1g-gIuAYh0NXLZr3Fx@53z?D`{J*9eXqKZ; zQ%R(Ps3^A`ENQx{K<$q`+=Mc>w6P0FhoxHI;Jux^Ah<8mDJ907}7WX)^#V#xS{w~ z`N)`E?#dtilTW*GH0mQE6EeZ{(KLEkiCY$eIX`_6qS;Tz{EcWVB;3esUjIq(3;2|I1Tg1c0RLoo6Du@i)pDR@nN_@vc{+ZIPt?4Iff~={j z-UMdPpVfaQgJ}cd(d(uRFh+L9?b)icLAG~!i31!DL+BJFkgnf)>>sHWQ_Lz4{lz|B zDp8v*8%{a8wuIIUztgCXd?F6LiLkFRtt}7W|J7<%=Y99=Nt{HtOIu|0s5Unyt3mFv1LnqBbMW!wj^dYgN8XZ4NQ6u+~76g**)8f^&(wE^-p7HRgaFU z0ioTZ3?NbtaIvM~kBl_O?tCF|^@2iQ;(QH>I6|D6kYjYw=r6Qhb4Ph<6FuF93F?k=-gr{Z5Cr`YG-7}H?KeYE2~!qYgL)xH z{gH*GeU|KRwR;GxyP2@F)M`r^0dlKQtb>c?u~&6OJb%PxP^BH2^oQ~e{eo-Q@h!() z_pzQCuVVrwDKvKGEtqcii3FI10IdvPuWSuU^Bx~lKDnGO=)U5OpDZfB*ej(K9z_ry zP;wkss$*VI7 zt4z?)gQT|KU@Exi?`#v8fG*|GyzKb~NCrqcHvjS{FNx7%WL>V>gTE+gdc-RE@C zU)!+j4RC_Q01rpjVF^STT|i3D=Y>~|F+yspZ^QVeyzP^=u=yPiD>G_EECh@?8vw%au&( zK?l{8MA)?c5O6g`XL6%4Y@~aJ7WR!3x=L7y0!$CcVLE{;BJgZ0Zv|+vNq{GS4&8-8 zwQK>9lDD>MBs`jW%)uA$dGdK9D-yxgR}M_1(QFNSGN`8NdG9RAl-Rq)XC7R5DGeo( z#@Bq$UbpYCeNZ$2w^SFwY0>BeVfS>b6snP#(*gq-7gwaov<2bt=?ukUS)+M}Cx8pX zQxqTIN_WPFb)7@JlCVGTEZy9Vug*4EI6UB)xu__KVk=4tks6q|oJdOIZxhBnw6C^v@%Q{OdC3F1`u0s8m=;2--WRf? zCoH0!B0IA1PQt3f9H;*1%r`$&$B71aN(=(9TkjhBXuZ0b8Oc3VL4(LdDB8#tcLedP zQ{m|HpPNloV3qgKq`m`TP-gBxU9({25c5l-$hk=0+^?L<-&3Pnbwz}Rk6=Sv972Fu ztA@pJk>HciAE>QENe4wuQiDNbMvOkEgmyQg4sid*X{V4o%$j>(-lS&8Yi1|ipSB^y z7X%b!=&8SUtm6?$BnM{IbK@CUcc|R$rI~4Y*;-1Ar5{c;+%k!dcoE6$|Fvqvkckp3 zk{SMKN-*`^^%cB|+D>!o0?EKGAL*68h3;H<+j)3c`6|wgk2Z3Q4Rj^_IIl`H^FC^xx2sDLEG9(qmo!FZElmEstgIy=e2{F{NdG)t;loZ}M{5twPAwo=2EK zvH&okRmbD69<|6Pt8K$hWr5G$MW?a5KW>3zPjsX<~g%-z?EVH7}c1-=mM`Hj~7WT*I{N0^7VRbTvl;3SR#mc^*zO_ZF_xPSE2 zy1A<71wTR%MUZ01Tr5QI`}F{*(B*4JvlB;1joat%FeNuq$4~`3i;?h8@1-nj4wQO$ zz?|xR3_3~-RRK^dX5LgC$7GJZ$x`%cl#U{NCn@8{V3saA1}*Iq2>uJy9t>a{LvIQD z&?;31)k~=k-V9sC#n&wv?3aq4zYpqHqTHYPk@ypg0&*`G!$(yOlRpTJ@xDsWk1_0U zb_O+Xm}E$B`ChpQBg2++$N65#I-2e?5H5san7i?n8Y=?xW|v>G2$LRGO{NXNZhlnc z`YKQ~J(2J|Y-y54JIG3p_0B6&CDuK8WHi28D4+(>E<3QD#;cs!Z?ob;5PCF7Q8xfW zl5~f|N>i1!(>wkni4>p4Ps-=&jd%U2I&&%35|rZp=R)6wjf^ zELWsSO}Ds_S)dv)pb2KnG-8h5N~Xb#s)ydt>@z5m1((oizy?*y&~m^7iYetUa}@D0 z(b~9)%%k$%R&77tuxXV1hUb>h`41F`P&Z((dGK#O*jwWeEzx9zmSJn92~CRe^6h-e z`e;<2;VWAwaOYi_5MD{Mvw&Vrt1R6U8e1CWi_RvK=|U$gGgmV+lm!iZ^qqBt6}|o~ zz97JOBJGb)9EH`!;u8!ME|AY9fp(BH;SJPjR%Hp`f7{kaz5q3mLH{O4>T8ayo~dT) z@rO+;ZP9`R9dW~cca-aNr8T>Eez95a-S&t)7_~D>s8~k-To|VlEL|&2Ck&(6Lx`<} zrc7zXC>2o+{CMJ}HG9!j~X` zs@3xE%u7?6g44=4t0a?-oBm(ZOupnm*9!73(LMyOr?zb}y6I55W=epMI&+5J$O!SD z8OaI)KUu4L$jqY01R*MCu3KLv^R0oKiMn?StHEoQc3M~BukJRJV24%k{T|&-TU;gorw+u< zu!dY=XFTFb*T3H({P{V?tT@*KOcs3xDor#&K^Q9fI%E>r^{5~Rj-l*X=ycx1aW1*% z;IMXzH)ny>a9G$|p~!a|$7oqPXd19Xl3%{+U)HANI&y% zdjxTuRSYbbsb!@MA|ykfs7&!XFRU7TKod0{uCH74b7#3a7RIYyj?zGHEoAZuu)woV z1X{u9*<*(hJw6?qqQz{x(ll2fRG~lJDDC@8f?Sbx+J`4V3`3KMvgGcI3*!stmqGtc zkL*rF{d?9Z9Wq_r%&kwozdoNIIX>b8`I090*7IIpYa8)M-xpmAJD1$bIK21 zL}aF5^~-q74uS)iHuI;b} z`Sez3^Uw9YHM{AJfl?n%rd?!ZqPfy)%p`b40kZP`!!78dr>^a=E_9Y@{rK^yE-Ih0 z$=xh;q)tuBd$@AnP(=~{w>il{Ry^NTrsW}iTu_{$P(;Kc!AEBL@S=S}`}G&;PkppF?slG7>1LOi!J85~kIBb* z?{@F+KD4-R-gxdKZh&}7*Vp?JSQv^}pJ6L^Wf-c!gvkS~gjIRqvRUmCLo9=Hp zT+QqOjw>(ak6|y8a}vs=0h|?OQ{SUb!UFvp>EN(h!&Q!hx`)FOwO&h>tZwfx;DvXkv|#a_Dh)hlcevje3LL% zGb7h@m0Y^AD}|92Fj+#&1%pz;M-w^*2JUp6Vm*|OXoi*U|CNO9AC_o$Ah{fBWwa*J zz$cN`x_XC^Y%^0g{ey>T3uHfi7AbFFWMTYS~q!ZiII-sSzH@eUqG{(ly3kaz}Vt^}Jfmz%)q{KCj;_4rlu7H`~NfeC284 zP=^YjfdiAC`(%v+aI{!<8AGi=Bpf<``-KgEpUve8zSB~Nftp07#PUG1mwpNkd3!Ksj9G<@NrF1%9&4J>TdPOTUjoINKPnxoikB zqRT_6vHU4AHj5%u><=Uk;%ql5E<~X~H{Ws8De$x<=!%>U$JwtGeU`|$9o)74f^~dc z75`J&>h{xTc`Z97B#rjsF#^x~2@4i+TC6eT?{tytU%*RITSx-59P+kS*$VNixdF5- zNkrY(P8X3b)NL6^>c?Cz2uqxm`n4Um3WL3mWLUmFlv+dC5lg>}j96qNe~^ZB{zj|I zzsjRQuTVigYFS_&;*5PYsf2P+&00URI~{3VWY|U(lBqG9@G0NIGQ!p(d3F(w$rm>> z&C?+{t{FII{E@C;3NY6Eo+DI^>xDaKZh3S)Mb4ONx#fejJDq=6hQQ6cUK#e3D}gm* z;UI`Xf^Z61b(dZkkJvOLu*2So(@Zmn#xC$t%{qvHwCploCn(2?nXl+wO{F+#kY?L7 z{7?;F?D42=vfHGH-C%{?2xNBwM;wp`L&B5Y@6egIaI0+v?O$j0l>^mVfnlP6n_yIl z4l>;C>ar5m3&Wl`5iSa_=)W%4h9Z;(+{;jsd6beGuOE5yN_TpKfo5!-Ma8GSma2>r zuH7_%xWS-_U^f+>>4G@;=pR-Y9SWmPWL2Ms@1WEHK=Ke7pIFul&WgyTewBX#B4}Uj zW7HTlHI7im$-f!+{$vTu2=OHy|CWfmA}HrC$LM>MaGY`{=uBE^^k(NAGq2^JCq@QB3S*a- zIeSv^V=5E$Ru}Zn&1EFd5-DQkL53dTpE{*y*kcr=vC8L`nO$DO3io+s#{4s$q; zIyChb?nIBSTyaIk5b)@2(N;R#Kn$w@xqsaG3F2T7K zl4(Lfx)bKeZUEcSqH!`=d-2$|kW?^9=YqPADmE4eFFHREg9UIKhc1O$912@V6056F zutCz)Vu{1I<7aR)fdL&_-lM+PftO#${ke~>%#T&76s@&M$AsUvPy2jXd= zr7W19K%FK=Fyn5j{rw`odaT0;+roM%IFk`oyH#sT(Q+MLq#Vc0VuOSncRnAI;K~$@ z)&1Q-sUO6?q!a-eV$sGqug5(R=+|N4=U;)l&b`jGs9xF`pv@-)CNMI2Q)hFnG&5`h z9sG2Fql$vdal2PH0DBGn{MeykoC~ z;JM%1U_XTk_Q1ygZyq6_7a!!hSk**UJO3;)0DZEgR+%rNO_!mI>E5p#yxhe7XdHG} zLeFsh@mwaceE$?3G!iH|D85Trl@9SYeTX99NFkb~=ce5b;g3LnrAF(YM=>~Hu8xb9 zO0FIicaZ{~jLIOu{B}*>K=|S><$k>JYP}x}KrK_pgiA<#30;yC0`|mq3@Ta+?TLXjNb7sJ`wVNAZjfmFI=um8e&36Q3dPR}JjSZQFAz)8d%A!FvA| z7=LLa#K%#w>$uh4X5@kA!KjWgqbo*e|DXg?3Z!zKIn2z4TjTD$(;c46&$IOsC4Se? zd(|wA5sU>fc~5Y{*nhjRkt>8!^ZpL18>C;hBgz$)eW}}`b6DBy2O0bt8!`bBFaLqA z@}WB)PVr2vT6pa2R|?JJ%mXjX5|B%Cxu*2UDAEUrNN(cZkJO2z(A-2%iA8p~**un5 zb~DRobTpxt84PS+oRVG|B)^ItJYl|!O=egg(S@#`ObvZln1@uCFy7QZ%G~xpHVw!b zao*&AGI|pM(|5b)d5xD_w;d#;1lWXi#F^HtmVpHF)2nz?ZDkc?A8S(hQt`&=EK0Im zT@L*32tNUj=OE{kW?_hWaK~~*T0)^|OU9YOUZkl5t1wFFsQL?keP2Plw+zWwkE!dm zKC7NzXy|f2EmPvZ54SFPI_r=9@ngiQwNj`id(u)S0IFPRQs0NVa&?g3*I37PWj455 zNT5TIl63EFRPPoLoAl{qDZ1N&H}MK~tZ{M^k`r(EDeVb8i{{7bG5-Vwvy^QZ=2A zAO<5XuVfY#8&4BbWARXoPzH9-xQB}+@<=WUVtT*Rj&*aFUT7D*zF$f2kc)v~`a!B> zmc-ktMQ84AM5R9(8)LtSn$?61MS%riAJn}j`~6x4NJ{Hw+dMB;`Q)?TXmPjgJmAZfls9S|wC?BG68ffI zX%5uAQmt615Ihbt5uJYHm5EACZj?>sr$``{q=PpvZw#bP7Q-8ah2y@51@cPzwa^MK z3?hqf)xFUw*oOe1&f9Fnn4)Y6Iy|cq?9^l6U>9~9HrIpow=6Rs0sRUB&~Z54)G=iu z+YOciov{(QG!@HK1UK&hhlz(d4ah$;2_&*hNrNQ{>z_VBYYwYy;VxmHNQ8B?Nj?>p z6{yt(g@$~7oHD(_3cPS7k|oAYS@+8%8NO>3VQPvizkxsz%1^o~Mf5$nl@BRj2rz+f zw|%d6B-1EQT^f0MMCZq@zdyK*+sZ)#+9%=9^9I#_lgyz17t~-W(6d2sD5VxO2mxXBqqqzE4uB zum-&n`X$S8m;U;9Rbm`L^6G~?k8$#q%;NL*TZFVB!sDM2%)aS)plbvUhIC%eO>giv zj)Pl=7-zDGj$$rSDlf9im4Ju_^^ic8FX^gPTk4|6mNaVnX&m;+W7v1@gu}FE4!%eB zoDw5L4$QjZ3ms&694Px0QCG{XlPwE^Rt{Mv@bCQ|isE_~nr`;C#ufb*LI=_pIL*(& zB>VFB`UpM}c+KP8U6hBYst~?-)mt@Bb%xwSDK?1FgLhs{(|IE6e#H6XLy*qaTiw!X zX@zWNSwQXgPc)@HtPfnIyk}O1kTB)=hiXHcwsU=KN3XChg;?BM8yJz=`fzujHOWZ? zz&V5*trbkoWzF&wZ{?>rG5*eYbmCN%G;>ox&z$F=gs%N@`eDZ`VYThx#9}2V>_5=L zDjt>Q!R7r^FZrlS)j8#NFzrqW#7QXcYBZVD?%`49ED-Y_2p#rm;JK!Z6A;bifh{B@ zsy*q#Lo0a+mrck>z7&qY##OvGbDRWy2_JZV)3E3FWQ5Y>GDO;}x9k8>f_`xHr zB6_I24FA&meO69ehCM57$0I}q2m}T`;03|tAL-?~Aw#xPd1ue2X(Tsw7?n<5AOC9!9E#~XnR_$jEDW4G7uv7|Ti9+= zRS3xA{j>s=&p(ss<7?m=oTV)uh>Af#1@G>U{=DELqPR{_PHhmu*hunp?!!&N-ix0g@;`>{E8y0e;I3&iNvh3~vqdZgFPOB4PT_aB?mv2nNL378aP z(A|6cH8j=CVC!y5`2Y0d(a?8PhSc43zgC4-y(Q&b|pf1|9Tl z{cLi`eB|m|Bexo{?i?wmvk)2bK?ByNML`WAIz7CSqUfs zA!NGM71zyq?l;-jQah+>eHP9#+179wBo`5MP&S-6&rNawxMZ~DjI}U3XLcnL6zIVe z)35xg%3x#;*%?Rt78F@;U&T{~s z$>M9caDXaGe{5NOoCh?znVjtk;HITk1Nba!_S6Bt-VHt2PL3ydf|6wI^6ee&;Y(w28k8H^&epAI6r;&$`KPyZ z)4J%#Eul09!?P8H&=WRguqWB28~J!!k2$QPTM4$lZNS2C_7lEyP%&E~#~v*9!Zo?= z3-*0h_Xi;^AeV06rsm>0t2;q_eOC;}=a-)T%S1he=oT5X|z6mou(K0LEb(4 z^v$G%)t#0lV(fjIwa+OdrHRIXC}!%*(`ZiyF6YGszBI@?EADcaTO#D+B}H`j>wueI zE!N=l1I!e}pAu)k^3sdge`R;$=g(UY+fwkUYiu7fi#~&s>`W$TbC!#u?4XUGp+}Ux za{65A4K0qWId<8I9D1Q8*=nDLIrZz>LU}{OM?{64O_QW$9rHAN5FMw$;S0>o$0lQ_ zf@Af)odqLhpuOnX(k$^OmC%|m}C8`m*ir44hDRLRa`(9hdn2Ozz zrBM^#M>QPZN)t%MUHWvz9?4?(J!cgS__YR*kz~_x!@=P_@U4%nDJr%>xU)w`!^oATD*~# zzNscR)qYo;CYZm<-Ux|zTf}#dSKVshk5NSCvfiLQdR8FtnvL}BB`64?l9e$jt>U}6 zVJ(((BT{5auH!M8A3%`V_B>QJOdr@Jz1HXXBy5lDpxvgF?jKc`xmxeeQL~A6qNoDh zk9g$$Ku>{2elS>V91!VRpno*rz-FMlxnA6vrbfkLI&9K&LriTRaq;;wn{5| z0lh54g|BgPD%X{+O;a-W^+=X<{jHL%V6kTruRck4^qaaX;;5En?Rq-`0NP3r6WZQ0|ORYwP=eP^w*peD(2Sg2OzE zqeTylY-qc~OOpKF^^&oM2AdME_A_^ipUP~ZQ^+B<{ z3mew9z8#vlZPSZNIh93^Hs)fN!XuwmqUNhkf8zFwbR48y#nI;tU+<(JwYv&jdLH=a zDLGL8v6acZvbX{7ycuM8aV`DDoA)=Z=(>+KH;g`}lN?V&%QJYi)B&+xoXI zwZv+_V{vI$^2@Afq`KfUlqnK^r;<-Sfw(^^uj9_;;3iCwnJoQ3G`Wy zlF!>Lu75q~#fv9w`=AT1S#TSFJX@(_{cn(ZbVJFa4m{Zuef3@IpQ^<>X^sXVAVdW%L2T%2{uHzt{Hc51}QepmOTyG10H$D2YgCf-5$wr>DEN7ffbng-i*My^e3_Lt5%+gL}J5HwA1 zOOt~y{hGu<9(N%>*T{&-QRW%6L*9&QS{mo-h(=?Sg+hQA-`cJX zuMWJ0eJ>;padovyEj0@Q6rc78EAyDwQy2M5No;xhCzekHRi!_-GAoObyfp-QI8XH^5-cqI+1Mgw+2SP{J>cO?Pl;L37X=8Vp` z*^cyt)!fqlJrX@xb>#*L3I~O*0QPvz zfLY*j(K3O{@L>=aLpF2OR>1e;aivze2j#K^*<;JNhRGR22O4SI{c+Rtf_8*tilZ`f zufRD_BtCZ84%zV_H;~;VD#~jeDG}S{f!K*P%jr0a9EI3~22od1f()29ec~e7zB)GO z{MT)yq>c4CXcrtV5;p_|^Bb&tfif?LpxbG9>&ANudOX5`lW@sykMB1@>E7ELn{)Z0 zH~PbP0lrkZ@CA&B13A=nF~Vid+W*bO#rQODe=9^RDYydHicwScdkWNF!`|Mdw@91b z=_j`L+Urfel!;$9-@CZ6X|%CqVvceCRIpw#wZx3dHf0C5-3DD>Gmz+Y*!#X=>3d64 z-p_mnxFQGEj_w$|v?MkO99$I3`6+kyvmeL(7A?#sC;Qim!n+bcxTDbF+?H_1EYN5d zTk-xzp6FP0Kx-vG`#0RxN2#+PpWom`T;kQtmUU>J7D6IiEvdF&8xf@7%ET2+__4kM zsLa~`GW@XO6`Kvn1AlZTiG=r}7te40H#iAo&R77$!S!iV9y_fya!aw!Wmdk&v;HdQ z!Fh6uTMXEpkRy$+LNjT@r7SG$5e&*)dfgeI{$2zr$iQAY8?=Q0m893Gmxu^2H--jJ zTMwoRz=Hs?H)JU2^sQoTkO8%NkgrMS2l?HT9-b0KliopxTR3(-=~ zMOO74N4LK^_Var^JKjGsDx9~c{*AW+gaS#Ds4Qt$<7Mnqi(!9>>fuVO!mNP(6N|Wt zEj&<7!8n^ur&rYKk6!sx<|3@aM^DdwjqKIernlNRJ6?e@mo|?*?cUu5L7D(-(1qq% zTqOI8x!m!m!Yv{EkkrD~&>FpCIC098$2Faq8Tu{L$ET)x3@+Vdp!&~&y2Zw*J)NvJWMhSz!f}q9g_`4Z^q*!u8Y!# zyxWotqLwEM`n5OfOpHSRbY9pWmb_%eY`8*hSavK7UgVsJu_xYP7ms6d2HLfeS+|}v zD%R1EnPz0zV4%e5Y>7CionNESKJ_YyL*t=2&|9q#pmyKy7vK1gVrIIXwUl~+71b=Z zwtrrR=7pMRvQy1wHKL-PBDpw4=VIqVX5tG@7)qX!qGePkIJhI z-KNBu8A3TXFf75TT?QJ~-gQk!FG3o6^khja&Uw5kin7Y=#JLjLBEFsWH6VBXa2w`B zkRK`9HbkVEY6+2_T=^1q*7)m{KN+>1<8fu*CDo7=DambT_HXcTi z8)Ld>xq^R+z|6T{E-p(y<@rK;0t;?F!u50%>Xw(( zep(_XkTp}K`tta;(R3Y;4V&_8zRO}@8^9g$3#AvU9QFzz$td@73tWaTj!&`{Rl)h& z0x)dT8Jt>Tb^NOtO3(5%9$@XQg;6$uonWV&Hj-_PacH{V<_WUU5zE`73l}ZT)%nPc zgp9om5NVv^#)l|CRS)rC;9{tY=a!>mW4+@hc9h~Dh*??dpXMwFIMdL|zrCBX?4G)*uVwhoU?}QL2HA17uerWMW5)rs zkTHLK*pFNhF4m5?_%HTEw!Qk1lTTzo;^F8;sKB1L`L$4y_4pEP)|4PfSLr7MA5Y#oKfFTG_Zf^34BtSLq9}m%8seH|RvX>w9 zPFb6_b^QxaS{IxGnoq~t+pv9E!hi()J$dOn`T?Ht`t8=NerLDY(G`5!OVUn*XNHTY zR+e8EzgFe*#}$t5(0xepnFKDyvfm8M#)Qh(Vsr%BFu$k0cPeX2n`XRV${X1JN1nQ0 zJ?H*M8)&9cv)}|fqojHVD3S*sUdzP?Hs9et3Hte`(q<9L@_6n&s#J#eY9g9-;~XG@ zf7Rc55_d~bE?eU>Ft_GKMO8uqsH*yJ9HM#TKSn!vF$yP!7CHn2tppCrw_hvWcxZ02 zXMc%HpSZCa{qkjq5b&XMjhLwCf1QS%0}9S@?(;HTsvXn{gLh8{;tZA5tIaBzg3Z)h z*#oqYLg0qaQ>K2gFUFM zLS|e}Ep4`_mEo~mqJ39i6A_A=M1lLx8$dn2yWtrZn|HBQuMBEXPKQ!T4hKHg`W>h@ zMgUY4jo|zV^mjWCQ5;?hh=(Xy&d6ktd57yT>;#o$g$U5MTU<{p(!r zbsj387y?O;G4&Q2_`Gt*fs{E`%Ed5fdHn#js{%C1gC>8;r^_0lKFqcC$qXxxT=}^VR*uK2DaKN+^k^#Z?*kfQ025-f3~eGZ#eMYpg zo}f-a{yxV?j9(46aBH@;83@YWVm#Ux&1I!6Pp5Vf&lyNA05?_-B9I5f!!71fDcq8+ zuHb3@YMGwSa@YVlDhR{o`amXI%=490fX}y1rY1iGmufopO`GM_UdT=I6w#?hpAU)>)_uA1s5?;S5a1}q2jz}-g4R?LkM{y z7fN#T9%|Kx_J0QvKGG^jyg_e1S#-lxu@0vv6BIRKe-*MwQ{pVrQq(SH>K|j5+10eKXAGYd-F)>OI2b`T zu|JQ#yv0>OFE)&a^tV@MXvfKtVJqf?gxAe?<}RnU`+IdI&O8l)RqSzty_KB|`gL3K zzC+0}y0=L5AeJkLkM+lMwm&MMmAyAF$cQs9MtOpHY5sztYE{Kq;Cc+~4gb1LUjJ*q z;*_K9rtvj{do1C2;Kb3#{^bGPME!`hjw62m_FC<6Vtf*$ZRaFR zKm`4G4OGs%`@bQ}_V7U^?_Y)q`2p95OYomQj~4^Q!3NHQDP>et!RO)UgX`SHUj3Ey zGL-Io=J1njq)=%2(+-yIdU$`+X9o+o$}lkv$x5X96~cawCg*i0LYJ z4pymAXrxQziB+DSaQTK4P5E^}_ec!5M*ozyBmc`eFGS z%fjnGz9Ks>_nrPyZ0g590UOv6hC3j?MJ{yps?L^q7KE5dmh|!nx^magBAJS;0{Usk zgsd|Mk3Z1xE;}!;rb&d%5I}+t#%pX`J)dtH@D`m;Zf;wGA4<`=y8Hyx4-thHnOoM0 zhHw~cuc9j&*_Q>HWdcC>e=E!AB;-?prNia?1&*zdr%qW%HCgG zNF_bbS09W}@bD6RU{4Scoys=S@V7xIjqbm+p6PkIwd-#)2H4P&@RXFnct{X}SZE(| zMYV<~<8Y*|d9t63c*(yW8ZgX`=3XUBy+59;TFV5)mB1tKdBdg(dKJMMJ-;cZyTQB< z+cKv$hvUi>Ww&7bJ;MHf2N;ll6mZ0)>&@;?6gD)&Yx~)|dabsBST*KEIA`G?i$;OL z$#|_>iq3l;`O&%}hM|Cm($m8Iv3=-vO_T8#gLnpaR^pj0{5)$0FZo*6kOqolFO$XV zK5i|$x`&T2lhY;|g+P{?5BNP9``{^h2*m#OZCf`v-v@d6){a_dL+CmW)RsBkbr&o! z(SGkOCRE<3nJ%!`@jt(BgWvlMp2b;^B0H&sFfXR&5%v|LE1GvO*<>3kSBpnB}l^fRs~yE;aFnY z#oXM&VQ*7JRK=ygEZ<+cTF#G%_ zI`7Fh^o_EWTIl#eMGg99eR)s40Gs+8T~K)EpV?n*rFw^!z|Oxd)86Wp>`>4JAiG)Wp}4Tb1av` zIAmNerFyWcmnwrh@%UEG{zZugwyaU|;|X~_XYU14nNd%9fB#nwB=LsW&}s?sZ$8Fu z_oeLX%DaO?uCCRmi(}#M-tsny&h_ZAsUI(w=5LZ-mdmugOCgRaCqs&PmDLEE*)mc+ z2=UMnMRrFy?00_2iOL;Pmk6Gn0AeS~2Z0&9l#?wMw(l z2;^hK$s+3xtYale2riu!Q^QgNF~w?tN%$h*QgKCW9O<+O<2}*SlSdRBvny zI6&f0&1844el0TaZP#$rlt<8y9IqLD`()({ZC%t3KW^6e9dXVB4Otd9HriAh4q15j zeU#apXTl=Tq<(1@-2HlCz* z&?C*~5$21oAGs1c=4r}+cTSoik5m^$WPk1m0Y$5?7a1p5v@?zdkshy1ubFE2402QJ z9)H|x0n(}HZ@O2x>xF!~Sb(rRowVN0E2a{UOwhk`kVaRVHq!@}hJxSWon*}`hQeW% zgU{oz7dFptI`NCd{FJ|?=mr)71C7S?c|tZEpEf%pa@zk%5*{V<&;p0~n&;W=eF9k; zzxHW%8&I%8I^ogwoe0A;+c%gf`8nKGrOWi)UlLRknGYcReMgmZkA4ium<Hh=a5_<)j+ z_bW2h{DhD!A9u7m3A+n@8$*or`MbZu4Cg9aPM^&YYwvsJAn47Md+mM3x;K)>m(_Ph zt*!g%Z1xn|-@c--eN7k2@skCfw@SY&41`=5q?|#ya*{G7l!H1zLNtxS5)IjB#Z?9E zq1p?v6#Y-)y7xMQ{*HHWej57d^4U9b1&I~_n7$8O6Q1dh^Q%sjDb_B-`9T{1f-9*J z39aPE!h0}ogfrr<;e6~rPcX==Cm?YnZGVTN>QSTmdwM`EL-H-#O4T9%8j~X(u@|5t zttQ%ZA=vF*g#t*~ggtK*yC^3>2w2;Y(QTm3@?$cMwzl_Eltl>!1TL12| z>W`sYF=hITs@Wj|_O5ij6&mk-=%vjSkIiE^j-QcN6cTljCjDR{?!kv@bnjROr|ADc zTBAAp2Nebx2Gb>iLZx=|mhWkSK-NNV7$@M8e}~b~x0l()|MJeZMgQCBDywD?IKFP_ z^Me)ZC$g8qOPpV;#L0y3_voVBVEybvN7VK+R*;=>OB^Fj_kQ#qgS*BeDaiQ!l)NaT zSY5}+enl^LCuWc2>i45pEs|Ddm9hDgT^YkP|Arqxj(EEA-Yy|s>brJ}nA;@eIE7dY zM$WxJK2n`qM`p&` zpT#L&y)G}WkMizA@a&e`CX89MC0f8H*4m}scFS^ljErOs$xu9fq_74^sGuL0>v;cp z(v|qZe2hn&jI1FbzGXFmu<}joF6kFhDVY|AS18 z=KLl%VK}w%mIN8d{8(T`J(oakroXNBu!n`DuBU6Q0ThkI;tK*iq&VyYa|1@fQ2hDJ z*bH67a~A)09yn@mAH>#>JTf3WiCNcIAiH#^1?m;41Tw)9hwVMK9~8HjW>nk?ub%s1 zc~{1AQ}ERqZXxcyVoeIg%sBAokmjH%QKE019ot!uy<4Ej;1d72`LKw=P@znljB_-< z^6-wI&Hhtf*m5G+7$c>WJl)iZ@8lPPDFON;5{ zo^;|WyD8mAORc`@IKuz1;l{%~>pazx|dh(-f0JK#MA88AOlsw+77An1)Q zGJbQzTFv7gxt-MNx=^@KEAjic~uawc+hYxU81jGzo+*_8TeH-w5f=&6n~SP9 zV2mC$1w+y#by+m59lO*b5Tlo783PkuD#Pl<_}e7ZDhwbmxw*LXVm^q2{6jWVwTT`3 z)T1(s->sJmn#F$PbLK@m8z5FH6qfTcWH0=iS>#YYTLWKY{fWFD7^p5`hSo3>h6Q~q zXDMb5L6ADuJlVmQrut_@;Wt_ykzF(4d|Dw4@^D91tl zpl$Q*nZS6j{evNyt1Y3;qIbYXcrJ8hT+)OpS5S{}J&n+-#4nHSPcC-zZ5IH*{Tz?y zH13|PT|COFfWX4eiX=)M%n!~w#H;gU$&6OYOh3ocCO zQ4te=!3gPD1KE)Oyy36#o^>2h(A^tkj;f7!^(Y?p;^`}}OPnFq|Nj|ayYTou^p%I^ zKksY-uRY2)<(c!YqMkcH2Yk`TZ`Hl5pK1KkyaGzTSBMrm8LOO57{&sB`ocT;GP;vU z+%OiNMH)=1e&B2`0-MpuS<;T;!{M4rW0^ya#nZ(!g}r6hO&WijC%Cd}i0|Bu9}=A< ze~j3eoaG??1ZM z%Eyn~g!8KEKu7#qDs4+Vgz%)ZhJ_1g$z0)Pz~#us`ATsnM{OUV-J?-)GLey1vH6!( zVQ3-R@dW4M#Z^7v#F9WHJe&80YwXvnNb%sMQ(~T^>FU0>O09_P6M2b(b!G&O0^hz> zx|1Pkv7z`SH3r`Haw&ae255lGR9`41QRylkyBA9FR{Alb0uK-ruSwgIY=#Les z34f+d+5U!0N1hNQ#n0aRzEza}+2}p&63RT(X0`}kj{;~WCCz>){0>%fNq<;*g||Yc zd&_DQv6Cj_^{4x)Ng}AiuLZzl^e(06_&7Ep(V~Snvh=sWh!wH{t=vnvO{Npc$YzLo zyAp5SPC@6H0flc0?M~o{Kk_|Dndug`ZwQ=9g2jdkC5K4<-mgL&6>m&+Lbme41(z6dc`1xDDeh^^#wsblw& z#~yzEk!kyDj398KLw-P-CqaQ&XA$@Yf8O@_3iP&zx1X>qszmr*0~sJgd#7I2Hlh}h z$bXSQy>qsQJk^l01Rs|12Blo!V&bQ6e2YzYe}F320HDW#vTL{Tc+d>zNeby|3vY_n zI392P=;vpj_=FYBl^T$da{!#MDTMG33_mRGgR=0bGYXyO70ITV?H~lVBdos5t9Pf2 z{SQPpAFaNY^m6J>FPdU-u>b0+3vvmq9=`o|EPJnzuT!8UstFglA$ z%CjpzW?E(1G?X?l`#@KVb5{gPMM`7rQzxh@G{E~&E@70HblMB&A5t$Ob>BOLBFNz* zW27d_>58d|*!W?+7^Ja;p_MT*W3J-=pLgz9A>W{eN5krp?KUrREDSf&AK2^9&}B{> zs;~EaFz!TskrG^RUyRZP0o8iimxYjk7WbW0dNmAU|qr^4HR z)!6s>yvPY*j=*(;yleU}eM`#0NTg7lyiu%T(SmG2H)+QJI_OkjmYBNB4(Ru`DY}|% z=Eyqi{R3a8`e3PxiSzRiE7xG#%uv3dVP#EwQ2xTA-P~m3d`*Jbj1`NCkIr?icIwF& zzSq6i$Obb}`tJ=jGf>l<*Z9QI>RLeIEpH<;K4G2(AJJSu=2=>COVjShbb*1 zsxC&y1XLnf6$*urz{g_-hwZQKZi)Sk1^Bmb&nmtv{2fyyF`@Z)fOa)SJEWf$Xn#1sfG9z1q+^ec7|#!9 z+&!uXElRxNdjCm{8hdB`=^JD{H)wM6{)#`BWEMpW4Xg$Dco)^t{d<;uAJ*^9*;;fJ z{f_)a;IG#1UHj{dlbXLo2|G~uj9xJPvN37h=NMU=KB=$2iVAyk6Xp^Jc#=!$SbqkbTSR&N!lantGolY} zk`nk5!+UFlyBMZN&#l_)`3KD?$VY60h8?F3vpv5q;Dbo)_NnvQ(GK&WM^zZ|sB{Vj zOvZM78GxJxn9)}a_(&Y`X=p&Umy$H$ z<$pyYz#xArcBIrwieN<@him4sd)NPj$Wj7~URSl~N27n`vd;5_Y)}4?ylkf7tbD)| zIQz?_SLL!mLHJ>%$X*FyfXDc;lhsNt<~2#@9fzc;gjRm7@4}~m?)-Sw zl9e9ayLMZfQChZDo&Bb36u$a(B1Rr| zIL_(^?3Y3)U;hWX(+#1Fh4b(UOJukA9>sLNM3KWpUsE49e^Zd0TBOCPr-JnCax`;Y z)3MkH7cLt~Jp&;0B}KnmSK0`}8a*GN`{K&UlDI*>4Pr%n!MuGZRjU_5PAm&LOd6X{ z2rNoe{})>w`RU$j>`n*l8(B1+zR}n3DIE^VB;l$jMe)~PBmPJ_$`Ypm-Q7M`qkU{c z)um0EO8b=zj|X#j5%^JgZRMI`iy=;^1RR04a#ek)swdO#>vMEey&+v46QbksEo*RD z6IIEmJRf{w2F)~j%j1#$Uwmp;YV*O#gcrB;oa4QzGd6FAFe_I-=pO?Z(FXb_T$sn$ z7p{zk{*wSD1RObB+G<&hz9}V*Z=Hf{uFDUrdl!3>XxT7gO3ZekVg@rCps+>`sA^c} z>dyudM?TwI5hqgDTZ8&DfoZTdpZ9T5uc%c+f-jDAq)@A^) z5q17Db3oj@cMy$+)!Z?zvVKP4!9GHy{|{uXriH2&HM~qV;MY8v0B{Ju^uh3uNQgNn zoY_)1b_pBf@2wc_boFs*$D)#bhL=!43)>h>i(16~zwg5tVyd-pHWj+C^GA$a%^aep z$`{twy>>so2IuYlo5>H34B^p3PNX$35;CE@1kndYkm~_w2{K0GZsF~}C51UGOe6Q! zy=?JMl8q`CGv^4GXvFS7#;?XM^trpRx=O;0EYR)Yh)ZaYwewr>9*I4=yh6Wywl!S` z!zKALzIibX7pl2n`G)XWgxXPGP%V457VD8Aw=)m!czJV|BM}ocOv6wVka2>`K7XQM z5y9R&1~sWgX{G-IskA-}x)ge?$Xz3q3@eYYTuknp+fneIRU%;5e&B@Mv(mJz4^}l* zf_;P$buJSZ2iPkr_FkFWDI^66S@B~Zte7`Yoim^&l?x&NmU|!PgS?o6^(Gg2SC&sJ zzL5becJKSoCOadbP@Y>2!%G!&7~Z81r;b(&kI#IPEn#pmI5*hKwK-_1mqUoZlqQCp zIJGQ)C@uN3*b&Rxu6r`Rc()U$b=sU25XT@p&11wDns2@mXVY@64|ttF?1)hA!BO}B zRWlX0Jo-ng*Q3yVl8Gr?_8Q^;2)SC6D8Zr6|NMR2wibp19(Yy@|V%O zqXx!JcP_-ms02pftl-b+6swknYf&7h1GBGbR?aTu34^;Hgl#H?Ke z-uS*(k-IsFJR-Z|1M2+McfIQE_5N_Iciz!-IOlP8LdY_n6`|*eak6Kt;K6UF9i&Sx z?Yaw~lcQ=xRiEH>TI?OpWH-2=(vcokVa?a>a)2X{R;7ba;_0eMY#b|Zsw$28t{bs| zwtr;nfSVn0;rk_$rb}m$%pm{f-EmF|HxPXkeYN#?u^uuJ=xvCQzXXAdm9SvVJJwcX zD6x!Vt&SHHMu2h{Ffn;L5%L-1)#FU1iPk7=Hb4mSq~OCM#wLA2Jt;OWW^OxQ_osB~ zVwGP-3Z|HZLT(GdEHiB!ZQ`__vnD{YVUYbI=1(qQJYCdn**yKeg5IAgb@%SvQCz3n zN0?t6W?01_{sasIBmCX4D-O6~(E8nPxjUSq9GR>7HOg0s*qqdX6{J8zXA%d85pf)# z87(n8WhbJqrVsp0Nw}JA<8v*6g64%<5eLL^-Q0vA(jK6JC~j2)l;XcwBL?iv!88$z zVr}qI458eJCpR1F0+mJ6PR8%s{(4t$Dt%M`fQG<|AFQV0;6dGDG?5Le{>=pD+XEo zOQf~dMtrO-xFsvEHuqha-Y~o(#NhZ@TrG2$9;AJ35XYMfNlTq8%NPIE**Mg-ElJ9+ z6X+OyElceN>g+pdf4pmJIeC3qN{_g~Fp?HnMiP^@vklXjJua8QCkVy1Hbr1xMBu`E zdCTdFwo2*H+zJ_nqQ}iYK+|{&pRgo!2Mi$PjJ>O~n9?-W1>KexF>Ivc#|#_vioKba zL@K23B3O+)_8A!dt1~l`AB)0bUj!1&{4xI5WLDBWHjAa zt*AFqP)PXYh-g%(QI| z1}0Sc(x%zgE@cHiqO9>A<-?tE*HcibrJ|lQT{WKk@zF>GD7nu}Ch%@%S~j}r`G34q zGHcEF!=wGmBz!?fvbz}Mz3i8eY*gY1CQJl(1y?_e>D{o9W-!Tq_(Ibt{LyY_bpo=m zM)vv-(N1yc2!j0aD1>%L?il13{q)aKIn+}4DVn-?Vj2DDp=?;+askx!;egYJO7$Tj z?swsCNM*-a?!|G+RSe_g#>B~Kq@{g0>6JW7Z6urgwvl7V6QjyO@M8L2KFD#-Mu?!t z=B+6d^V$p6xIkJN1(I2krG%C~9_e2q?b^Qs{q<&CCOv8(yjP@s%#7Y(-+U{$VvOn# z_8qoC?{jD9Hw05uQoxTpN5MwSnrofPN>{x!!A}<6Qc{2V5&QTk3C`JCX4=NQBl=4IOj&B$_#3yU{tHc_f z*4YWF#x8WwQZgfFjB|Xl&HL5^FkIA)VB2FSmjBWpM}GC8{Qjiv7(0yRk?P;L_(pqk z&;8YAuoH!sWfU4OqM=9#)A)E|g}GJ1x-ratQ_9y}RGTR%V`}ZM)t4W@BY)3KzzWE1 z>w>IBKrN|-8mVd7@xnPuSRh0AC!NhI4w0|)`%lCLzWvzE;hwD{g(YAS6`(3 zpMv2iSz}zktA!3={VgLrUTEf}MDFcZxL%TTxn{sf%fa+Y9 zk;23BX(iu^?+{0ZLGZPoKX3xigdHvt!p|bd`_AdxeU7Rw&6&q4^)t=xmoHz+^p+I| ztJTT@wyo;Rp+Bak*S*6smG3xrz2T3}n*BoZy&o_ngnuKegnSRO)r+~7o8H!rUSwO0 zlFVao_UnL@tA2g)UkP~bSq^+tuef-?X%crskmtK5BpDJn2M33Am!OmfkTk3;qR|hH%~I-!Tmbnp3PVXHph!`+gCr zbG+9qDGrV;vEwjehYLlFwMu~odmlQA>kM2-n9~PGN!aeQc4i)1(7le$dJd_uFL0-! zDFI`tpRY5GDE!7u9;f|w;ic^rL2@X-6I7Cojnkk@DLpR^M^gkbPK~^^}t9= zFk>kAg=z#{B)PeqV+>>!yuD#^okDN@@Yl$=n&sDk1RsJrVB_R0+x;QZnhuBoC;9&+ zvdA&<51GQJizjobBNh^+*EOP*0O!qK%JeHprxHWf0IJ;>^&(9ZYZUM3AUr%8>M}>> z42;5>uVI*p@}T0_SpboN&!!6D^P!Tz>7r=c=5pLu@5Ymyae_w*l5RnTH;g8u{ElaYcfISK@sTF=zH@7#nd1KR$pPkOU62kI(j5F&rsZnGH}bqI>F zH{@-RenOaKmGw?@WF9o}uS1O}xrKI+ue8vTX4q?o{~ki0Cx3!jG=ig&qw&-i5Q*qHcP zL58i@mT&ZHt*T3EDvN<5<|PB1BXR{39!=*ku2XlHbr7H`!9Y;U;rJ{nqV)p z-3vh!_Y0IXdZmlB2y+YlmcS)p>8z;#49c(5h@`zEgXN4nw}@#>i;fe-I?v@{9g(Gg zZv-Z|xkP|ccKj&&N`C4hgS8z(20e=dckEXvUd1CDWoI6Vyqqr|YC%@K;cm}*q8F0- zOk9oa?@PJTs4;e1^cyGdnqvz- z8!^z`Zf5V$8RwT6=cO{RkOW^K>o?71S82fJ;P*Dcu*sS0Lb309g13bNWf=7|(KJ+O4{D~~O=k(xu0aN@eE(%Z zykP6zGJKvsiUBw)ffx$z>b)`tiFWnmktJ+eNTaHD{J-Bp`_;L4u|b)irZHDYiq@{k z^ymhV3N;AT;y8O6X(9eYr+6`lIHUnLbGwRF)HK=Ehy6~%5-bz{ri-{r0=mQ4QZY#Ci*{*%M(EJC1^Jy-{*>QL&F?C&y3(79@TYmC56^}NN$3>vl`cd+M z-yQK{5f5vBIi?jPum%Y5#cchIEIRYzxyrQw656%emHZDSV)k3+X`Cth-b+XP^yc}4 z+@0xkBdGS{7ddl_lJNmhR08-x34PO+dCfCsJ%|=RBplV76kzp z5}~H%4}?lbquKy`aAh7Zi;|dHO7l9gIgb}N`@B-)J;E1Z;*|F!WhRlr7PU&p#bX*k zBCBg&u_h|5xPMs#(DN!5)`CajK8Rm0T|Op8%L2cae18#RpfetDwEfq*AGW-YT4-nMA$ph3^BYqa*rZ`#^JCshTZXsNhbCp@`s=4>%o*}Z8&Tv4M zqNgj>1&TDOxFmpxcyK$wHjm4 zzNCd8g?{Tdb~X4?$2-&3+lFe*o8o^Kl%ZM}QCs`PvFb-xMRC<*YTj8#w%D6;PwG7`+ZMv#x0X(XGW*bX(j5_w$8Di>`HfgU3w2HhNWlZF?J5= zALhQ=-MRf#(hmE^+Xb!=2K;i>$h2Rii_SS>(0wR}R}#Z~S-5)o{!LZmsNEm^#%zq# zf#_iH1y#S9UKCyc5Iv-}`kTAhfDsF6EW#b4zs}}4dkF-$oCzsnYN9{wumxzN^w{rh zvUqP^9@R9JakBU~^;zmFR%pTy(0X(394LS`NAqC0)987cW`Xe4w>pT6!y0Qxy)GvI zSr)!v{%KEi@eHT>L|nnxH6>2rRFgbV9M}ju6B&t%Tp#zhyy4E-B3Hj^H$j#5dT#Om zFMx?jXtnp~#m znUy$80C&(8Uz3vY`+x1h!RoJ@Gtg|V@15tAH2rYKrOQ*Ys=1q}O@(x?)#7LFN}Oa{*vKgj;lCiG0VEgz_$AUG zp)4BebWaOrJa9o4Of~(-Ns5U1GT~G?#up(YFy( z*V@I7q6*6()lH?M4% zsmb)HBDtnbVanWxdk<8VMCwjoty$CVwLlQTJ)pbB$t58Mqlj~OMfc$tIx+(c+X84t zb45-4)RBUrctaLbjO|3udiNtutT!mjbVI^(c(XSy?1aT?_hSa@p2jkg0MJ7%rgT`2 zB=K@El%Up+^8Ek8Oj0g0-(5oQ|5mTUrzneXayW;FAGC9qn)tikF5TtPhXBvA)!En- z^Wv_5TY{|}kcXa^Okd!Kz4;b4+Kq z>I@nmzb5AY;3^k4u7Yy(;!pB*_;0r7-(>HsT>7x`hdY&H^2LJ~IO{lM=Br+2%;3*R z@@0G^^EWSO$SKtI76ThQ>K`jehxxaoFnBWkAT5HO@*)VuI+(uv_Ru``_$veFU=lIM znMsNMYPpC-(aGt4D7Sl|ET%5`R-xFI9w2xcQh5)KN-u9V zbRMo7vs@piYAlZbn%K6H9j-RuoduK{FbBQ%>+oyj8d3^?#Bjs#w5Wdwn8>fau4vFL zk##8T?Iiuh0A4)Xyns;!5`9zm?Wk$e%`m?D4vo2qHEFjL*0B$@noj}^U)@l9mh=Xj zAy_`>7>&%2m!)(cSGLD7+!ag)-me$G=k9dlkDqvmojB*e%}K`hf1xli>Lj4gchvIl zWY<_pyIj``^$<$;euI#b`?dUd3H*}^po zkmy)%HY{mLk4h1z`!9S)iL?o1oNJ6L-+#1Wx<30muqV_XsKJPm(s-2J zLJWC_KZlj+u=wy6Ar8>nn9HKXduOBF8Oofj%>sD}LmdI{r&<@PUf#UWmaMx93$pH` zKe^&);x4LQ-F%?lS9w9cX;==^UIn@3a9QkO)aS@Qr9lEK9C)Es?3|`O)X;B~$*}p} z-?g>;{GI$||G^IHiwXRnPY!fLsuaEhy^6wG@FFIQOT@z>RN+`5O6t-jLoh0a9bFyH z+yOzjE)eXNdORjDv!I;3G$wkoFrME3=1{DG& z>a3XR`bJk2Iex4riBrRIz8MxzJ#nv=#z(tQH-H8A+YF&j38;AAX6D*$AEP;+MPU~_ z8;0(syB+8UE@)U?qIQsY>=JA3d9Rr7On2L zd)9yy)<*^N+?cw4jmG5&`tAzH%T(0808_uY_5gKU=G)ad@M%_Adq{gvN+jQ4c4Spnh>H8Zrb`?;ewNC4>oD?)&&cK z78dW8>pkem$L$ufJ1P-km-6M9;iVK_)pX0Z>4A39hjQLcT(S^@*0OCPfj{3%yl=0f zW@ro3ncOnf)-X#TMmKassNZFQU@Rcz=(XW#{ILTS#bCnOV%Odg< zgDb$a;K@7vS_Z{h;Q)&_l3RFg3>;alESh8N;@=Gl{BlS_%-Lxl(G0r>ZW^vCM$0ff zW{Wpp{A8vIFQH|4l4XTODWBUe<$gqKiCYBPR>Q16N$DD$62-|RYG}zjVrai`%ck)) zi0AyXFy<&1p{({DQ<$}xG;N~T?4dnmnXY|F1sJkX2~h}qM3K=ZLNTXu|7fn+zO*Kp z44S|`mAdijG8ubIlcnVG4Bqu#P^5-|r*Lsy6DDp~6$L=Y)_;S-*HYmU^lQE)t3Iy> z1#g?a<%$o?$EG5Us1b6O+-K|{3&!@RIb879B>fN*3(3_q%vI1(oPOqR&fNOisZ2i1 zyqRoQdabb*oicBhC>MLhzFYQn7M0irQFxxT8d>T?;=aO7zr8ye2MEo%MZBeK=Slpt zIA0C3B}$G}qJ7A?p6%_b&n01tC2?z8l`Qj6NSDQoKyG?G^LaPL}{wC z&sMC&I87qojW)xxpqxobBBfl^taXOT>=tqJH(udRj~?{`W4QRxW8r1O388g?rE@X% zBWK_qN{+2E(Gpule3qFFbbwH`-h9Dw)wnm~;;S4SVd?L_&5sEg?df#5($g$_PY>*m zU7^-tf!Va6&9BW_nlqQ4l;O0rGDuNfghfc6sqRU}&zspU<3C=4OWW)Iii*(7P{yKW zip%8AE#A-c*I<~QhKQzZtL@Me&l9x4h|Jd3?Q+CW&9t>jSNq^xQ_J5O;x3nO<(h#4mW}_Z(jFoazGO7%_~FFP)i@0YO#m) z)2P!4O-z5z7xIzb{l~$|^VY5_1Tl5qg8j#as~eTs%Z^gy!;)p&Bz`w;uOf@h8HfJcHG@TN!Jg%LVx%+2~lI0l}H~FD7Nu}&M z{jCLV$lvFK#53QvdrXPpZ@CgBaT_NS)|R)*8LH9~z{v&0VuPIktdV^JeGB`D<%(4g z8RRcIkzqAL_K~sZsifV{O6XQD!@n>2yR@N|5H~b?ieD|G2Ka&m{sS65r3)wZ_aGTe zZrQzs>7v`dSy73M2&U9B>%DT0t;Vc8%lALPoLENs7CrYZw=?ygySPxdp=TASl%sXt zM*#zaA`Q;F-b_VW5DLDqRTW!x-iqZWE&KuY7*J{I6q1&2!^4^?pUaec1uQ&|lC!lZ zdQ6?{6Xn$c7V-mrC)k;#k((dsdUOsP?n;?a-fpxMXNwc3n6+; z>>%D3c_w-V4bHx|mWt1wfQL%P1mA3@qS};<{B|wCfLFs-K0D%$ENe?H2QU2A8tiR< zRF#MOVUEgv{@wi-x4b*dEq+o=sU**WaQnEMS;X^rJH0NF$#(TzlPT3J`h9MPJb5lO z7-+>oz|TFhn_k;NFZBX1JKX(&cA*X#$U;i!Gg9a!IfbB-#^SxDKrgx~=8P9mtpPV^ zYyeEZAH;JfEv@Z3)S7yu4ORYjidfz@iWIltG($sVUq8z=OzoCwE`sg4&Gz7VUdU0- zQt*s+HqMkZN~TqkAh^BCzyX!3=Qtv=&sx(>_oAqk%R?~Ublx7YHoD<>{QcC^ugZ|~ zh?zLLzNo((PGu9+IRiGl(p;G+E>lo$G*4d*@T)|<}-E`yBrtsgH)wEuvYe_!oqQQgF(`UjoCcxG3y zk38+948&4}8!#i7{)oL28gz6~HG-J1lZQN)P0(IhF$1?vgECE9&_81gwjLb507Q=k zV^s#buDa9c@uh8_hD7I$0%V0@A)qsfnp@i23|-Tm+J+HSr)|$%6xOS1yJ)-YIPDc` z2DuG7n{4}Pu?Oc6o65@$P{nD;f*1$CXxv_&TA+L;A_Im(g{}I-511k4V<(%}RxAS5 z{AG~Ad_(1Yn?-`+r=I&MU7d1ev=q+U;xh1ch5>@IL<4IANyRU=b5b7s(?o`VX-${! z-cP1`ogAN{UHwK?aNAzh%_#X>*1Q*DEl)k)tk_|H?<)=EKtd1pX&Nx7M5`@Lw zMZJ_43Hwy4sXnlfLx8gtZUPktrPvw(LRZn5iQ zA>B7R9ZV8LT`SD!*iVn2nty+rE(sn_$e;em^rp#YVjl@AqU{-^IfbcLns(Pa2Zwh9 z+`#itlXuS$ZfyE~9vUluS}HDdD-cGG#2lRBY-%8R5_s->^?lRFb5Pnr5XAkDRyjfsPV1 zt$6d4NF8$1$FQpHelGLGFN5>la_1Z;j`rma<7RPNd;hSd_Zi!bBL7ws$wj={+A2}P z{EOzl-zjLzY4)&Dg*V0+1ByK_ReX>jx8$l8Qxn{$q2SbrUAFh^c>JM}e& z-j(b?{PFJfV%kMdJJ3ZXj#3xBilITkA@{oo?n0}~w2=H8V0eSoLA0>``Xnpsy;ln5 zSY$eMEc}m88E5AD_}WL*>@@WV;eBV?e6Pb?+I@uax%bH)s;yVEqMyi>nKf_~YUIez z{wj;hIUJzw0Aj!e0IP>yZrafcg=JO;k7VBN{sjgxDm*tZtU<7DWW5Xa^n`oW+JBT= zNO2=0L(lxaxTe?m%9PWI3RLFa>gIiP61{p~~PM(xksc4L5c)Mp}p+itG8Jkh&Cj4GN z3D;WX`9;B{>)lfKMiIZ0qnnd%*Uj6=^3}=o1mw*35}{<_d4VsTB4FNaG3`kX9x)TX zMC9wg_9Uk>acgV4vOlv!`MyMY=gxv$!Pz9G^gX)NE1}bBp(f8P8rlrSMyRTWPp8Dx z#;5c(5PM5j58NJVqGUsU`1>%>jDj@$u06QsfJk@u-_0@9iw5#cCxcw}m$yDe?@KPu z-1RKkD=nYfIezFZR+Ot|Z=JT;#47Vb*Wiq8|M|iHd)FVwdrj}$O)2leel`ydA&LE9k0xju>b| z)YfqUbYWhqb#eRNu2F;56G%wn7Pz)Ds<`b&sgT@E`#vd4+59uM%ahWD+o_n$jct8; z$#1g=C@B(GyFc;Tt{M;6=DA&YXlA|aQ@Cxo5eg2Xen~#Rn(rm@hK0w;CNxmOZf-Z*7Qk|D zC$9QJ4v@(GC6E^Y?@9OwyC_+bs(%cm9i6@MQlyt3qaqa~GS!y1jct^db@|5wIC3YB z&m|7^L-xb>+BUGL%~l!yKY#77u{+aw-=h|&+V&@PJPss2fP=LA`fU#cZ9tJqGXGFK zA>DaF^`h_J-Z}d9v}oUyGfV~4jF(%wF~rWWKIyy>YGn%2J2S`f<yr|7sHM4&q3?kYx}Y0FOBn2H<^yMK4}`~g?LuZd6{;n15OLjGKPYZ12H(jcBC zC_0Fw3qn_HlqwhcdFT;|u*Q!g%we{4h|>FLUgfk3f8f?+?2N8x4_9E|0pw(^#e1V%B{b(QA|)#f0(!hR52OophP%Km@A!tZ?FV4u(P zEo5O0X%AH}-EXVHGDGe1cdvFzFXU6d>LI68lLNmVY&-SU4ONwMXHu|IbSuahPat?J z%LOv7862M3^NQDx;2u3Wv^p84sIgcay|C-?OrA9$uRe~6=74V{yflV0ZDkiIH2KD8 zp}{4ypQdPzIdee+Z~WMi*@lhkbv&Q;r;Z8PD)pPmICc~*wjw8g;f-C$bezEInH~JJ z`I`kBnRf;A5r2fU-F-B>Y|DWh8QzFL?+k0nx0KiTjhCepehavfGNI384yD%VGBPXHOBgV%)+*ST1nXuwrw2dSX5Jg~%g{3vQS4&{7(h&F|ua2vQhuPk>X)l2~1wLT4d$$ZidvL_S9H?uw_lelW34( z?87Muf^?Z9cgj+5jvFd!3AL-&`Kydv9{1^L{Rf20TKoqbGr75{aej5u$?_&6f!t2I?qc|nqyl65#jiweDjH!4^JGG;YPFE<7wTIH$;`&nbU z549TF)QZBPhGXj1oQH!HMAb&1sP`2nl_L8(uZTOQJoK%-hn|go+>(vXt#bWijc08Y zWy3PTc$zZ`IpiK%fK`sn__iFFMDh8-^xJyCekgXNCq()+84IAU_EcD)*}ZRVO=<3t zl}yAKKcLVI5-7zddk|Nq?>WlqNr7O-NRN=`56*UIKe45#CUab&%g9Q7p=>q*3BxE7#oo#L%N}WIua`cvQxK3$M zb-UXF8y9fFXgFaivCzlWhuN;JEL9L_|Ny6Pwg3XIUZbx^>;Rl;CuI! z(ehUZ3@<&1>#jI{^yl3ivB0JA5w=?@yTQ#FSak={HQZJ;z!_eRQ2xzQIjlHk?1oO! zZfVQjObBbNDZyLKJrN!pScnp=IcUHhfsY5b90+r|L^UUKtG@TXIc#b9u!^ zErYc00b#lwSnwl&SflsC{gRcz`Vn%eJOydF!dW^QA#I&)zk-8;C~?QY1MuvwhMOQ*D+nz_}w$?wZC|IguR?hI?MaV`dA_ zrcm^qdB&eY=(%005T7)V6APKZe%4-2Ip5mxlzXnAb#q&hI?fG;Z{f>lif4IZ5AL-Ql2-2JTSP!ggQ*{!pk;v`)ruSnNk8MlEdahNK0 z*1Xy@hdLc)MF+#Qtc20=6e{LcY6&+jCB|IQLy>piEc!+`oHBh-ohDg1%e>+6UR|nD zu8^=q)Y3iJxMW)wOqA2u)Zq(FvN=y4vf4qG!sZah;hsj%wuH^|=#rdg3q19rs7poP zs7ILEH`brC2+L-mCFo8U4n^N@I5V4J{3e^dYtdF=&CuUp)g|OIJr7f*8oMk{a*EMq z@)_psPmX5jhor4n4y#N7UBRl;Ar?@D$wu0fSAgq*`ez0#N94Q%6S`FyID$M?Vk!Dd z>$CQX)#aOnV2oVLDhPpLq&~o6@Y6T`146*8c7a)6-}m)J%tHHRlCxk&M8e0{evi)F zrF5U08KK_TSRjC*L|DKX6$E!_)OnkH%^RfAOMH~9O4HCI;44Jw(rz7L#7+my6=>X- zS7cPcClj_|#9Qad`Kk>HxBXO4Tu&DSS;P~{F$h{&YJGb)MG7Fac6y0x#k|-3+ZnX- zPZd=@L+%x>j*&)Sy=6_xu%EtIG&@aOBKr&iUp~dfMAu zR0ToKUc&qj{)%LzD5-U0o(s%Sd(?D#;xk>O;aC>!Yx@SM!BH`Ao1X^TVbTz-EG#e(xL|nCbprz+o6JqnM zhA*h-KY)d;ZJO$rGd9~>1lW#{xcy({T_^6pwi{nwaq_x!z4~DnFK7Xmi9Q^)yj2P{ zj+7z-(4FL!-}di{$F<(*UJJS~zOt{QjZJh$o}ZGiMsbNzt>)~33{qxhdMSfBdce;{ zw6yXQacAK0uhJmttcVKq!+*mjlC8wT!(U#Q@Z7BNw>zL_5FS*tkyc!sSFqE!MM$oU z+XbQ2!*-DVA09G#!dm8-OOF+Nr>?IOH<#_q3}Z^nt!^zZr=-}?Ru|u>E{*}e&J)MY zE3C75-}m6>qyK)dNOs9a#SYM;!`Ez8oaVSXGe@Z6rom+{LT^6gXjzEq3GOX20G~4& z(Vnj;O80l=d~YuZ;0e?xsBS-s)pG_-i7b#`>kw<5}U6`+(!yLmkTked{ zTpg-W;p&`J+HDWyhQ!&{NLi{Fg36&V_M02WC+M%YP+@wc|Mw8Gf@(2xpd>PSIBsl> zMi;@1mibX|odJ=!CA(bdo}(>cEN4S^hnZoXh^7eXskzKQ_ULrA2PbC0M&C)Eemvr@ z#i!h!HF6v>1t6p~1`KmY-5~F#@;ZBmBcyA|Af6<|qex{oKSkjMfH*r2XJYV5-%uM{9SH>uYwKA4Jq?sRUBXJuupa&Y^q_t*PrgUO1VK9Y;JYTM?X z3fBRpS~_tqY{mYL>47O>2QGrpakPv!-Qdqi(zRT^-y}37&D4*2r!R?4M-b z%QkXrlL6N3rd)>vgS;0*SPvd>i#6OvXWRgF9>38M>(rY=I-EzHw`Pr)J`Z1&uAfjE zTxSMdFem)32r_^ST5AY#K{!T^^eA?*T!0nAOV)%CW)~%-CZrP}*xjc(GyCD;ZSh&d z47_BLi_i;0S&MGD{;?5?=$$sMdFyKjP#a698}3*R2tB_B$!wYY`?|rtU%Ep}Ja1{V zOarP)MA{rtouT8Zy7P3ubGxa3d)@Ks`2EXBso>I0!&#kyFS@HG#n2RP1A}f1WBeW5 zZs_oMt&7Mv-0b9Zx~?{&dtl&%R^c*nwn?Uv>w;9u$|vW#a>zaS7j^4M!$VQbUG*wC zdkzS}t8llm2_=yUX$=4-aoVJb2M?guol0}?r;eDaBA*7hgz^*`cx3PrWkjv=6^){J%vtz~@)pS^V0LBDvD$kYucP<*_+B0U=;H z6KZ}o7>5oSBoTFh0wTIt=ASQ53Lt_nzU#>yV*jk3tcebS)}cgtbH(Pf4k+VSqc_N< zJUlNvAG=#zwZDux_$bn*zDlNRPY&B~_hbIzF|m)?+s9F-zb9nyrxKBCL&&X4f!=Q4>uuKh zV16+CGML!LE84+yWr<$0u!q^X>`p6c6l4dhCHz!ML$m9mpXw%uwPSV{m$GR9XRpN{^Cq7kC@2bXA2o z2XdY&FL+X&`!Tc2MDb3~$jJe-pVx&5>X=m1l8{B!%KJAX#>2jhJ4RgZojxcN?7z)3f7C@4s0t+UYR&_c=`#g3Q9{m>#kXgIEM<$B#J$SdtxA?$Bzw2 z^WDLBkqIGAu?!5PPb4p8#b~VkqqJkW!I&3U2V;fEmON+>z3|F1wUJ+eTbRnqTeFx~ zyC{zfg}@9QYHtbUeGCmZI(% zUf{iWqdYXJe19X#PlT6xIJ?X}kGxNG;I73^fn!wA3L-eKmSC{4>rsBSIr0Ok&HQg^ z_)r;Os&vin4zI;R14Ty!>c)8$=72&0F**A}Q6~t$%V8uEu9^SrlwA=gQ zB3utNEqTv6fyA2qaEMkXOr?+gGb~?Lb>f<`CM&eWIIgnas)MSzLOB}Z$LTmc1vaT5 z@03gKFmA$3=510i0XyDk0xNu`(iJvIpKiD~w85#bL_a}^UiUwI3;tqjE#J+MO>35p zlOa?)T=|-wqXp;sTzz;$!{JcqBRei=U~nX?Vu2`DQomPxyI9KaQVv(Yq(&DXLGyI7 zo7++--;qUpd8Ic+Yy3c3G55yqAvXaJw~M|u(U3txyI61!!3494qZ*(U8cm%-8x|RgoVeK-*OVL^vdkGloH^yf+^SLP{EqA8E)mga#Z*i zMgC@@qu}8lx1s|_lGa$roDvhdsI?3 z@EWh@32iGNCrAH;NH5}2@v;@{=Cnu1=+epwtKPD|*FW&yZ=ilgc10crBWp(b0y5ja z(6ctxB=aB(TNOtVx>{Z3EWz<_mV7h9&`W^Z^hr~OiIi&gUPIb%dmL=~PG8U1d>B2F zE7$A_r)_8?m%rI^rHgPHOPdwy!9BD+EZKf%a%dX2v}W6wDRJw0x~1k$+7*8QTuD#D z&+*{9?I;iRZkAby9u-X%6~)W5v~J${XCRPR;t+6fkGS?vm1Re@$~!U%dj$|WPsumZ zO&B}5blBE$?S@*LoUeCfA6+*psB*#GIw^Td^1Ai3OJUeQ)nviiX%o?kF99~tZzsit ze!_xXVqZq5MSEHeDO_*v88j&DYXJBQ1I*^TZ;XALWSqFD0Od(;Lw};GmwxzquBVZ) z1HL-g7f~le`}>_ARL<=ac$8iq)wv&$CwYD5O~v8I_oLkH2IC+EJ;-mlvp|5l1!nMF zl3_K+| z7u`Nksms^d-69b;v{6c9(;iIzj;41N9O*c?niYiDz29U+4KEGZ;2wXs&S*&(x}n1L zwqN_nS~&=J09~YnYP}7`I3JgHddy-}o$Sn*78b6+DD8GKgpYB~HalpujbBs?TZ54r z{2uUnM)p+n8glSDkCw{?q~(k^#VQOuvUB*m87;v`_OiY7+X8{}h0Mb2=l{M`NdlFi z-Y)B?JQVl!`hLSX#boO#yv&e^88y#*KFySGGR@xt!3~j17<~7S5@yBQ|NSC^d0^2J z4zcq6M!uB?V?vyrT;-Ga-ZN|G#{+>sGwPUP6tPYu~IxB{z zl3qqAfcp5aaxJv&@=MVY_+IMqGU#G7%ZY<&f1uflTmHB^%oADKku*=8Wxe;g zsAwxT_yN5D-Q4p(m}3?{1OH?Ht)R$lQ7a@NA1FxjxG5jyTQbj{%YS$)Dp%s7N1Xhp7>^D7|H4q)69b~L4$uZLJ)jYFDd9-i+RBKj-3 z?4{h)kG@{YB}M`+Qli}~w$BLuydyLYiUq;Mp=)b) zDyz4z$WTCQQ+}(uX>F{qwJK24H|7SV#f?0e=EGg60Jf`6)<1Kl8msU$w<3!@FK{uV z1%O*GJbQ6-3q}o^oQqsq6FVr+CCemJxC%^JInC1Qp-jaQ7Dy^p(8@NDV6x&%2VHm- zG^ysl(z=*+eEZ%=JlNxo(T{f7^q+rGkT5ToT*MPuLMM&)9TQBtaEtX`8Y-Rpn;Rt? zmI7nn=>W97!iHoP6TR}U93`C}LM|;207kfMRQ&?;YuZhJw_6q(8&NXEh5XnL^=A)% z3}8pehr())3%=|_MFwdyhyriXK31YID8c{4MfH<`Ehckbp&_E{W+4$ZX z84FBWQK>VwBw{!Q?%=f=Fn5gbM*zq_-Lj!@WY}xeLOeEQj`>e@REKO@pXVGDYJnUo z)57QTYX{+Q#(Fpq90ZFB71!;hzsGwkI6{5kp&(}UvG>-X|$0~U*pWoT^90z?;TnU9NC#0d&n)Ot3w|n>O z%IO@XyV9RsSVa+~1qal+Xwrrt0dCY+t;mbf<<}x<+|RFEv}KgF(hDs7@cYep;Ag^P zPX*r&q__^&MEErR1Las>fC>~>>8>`H1z~z;Q>uM&94%=yZau_Y6`O#Bd#I)6-b77xT9mO)Vhv9SdFtYcn^v=m3JrUC; z^qybMI!et90E}L5UG#O|VEo?F`BkZi#}DyRl~TpxSQm=dyY1iVqJ{Z?&+$o-RkF-o?;+)ZqCW?LXAV~Jw=H5xil&cKtVARaQtJ7Bxb87#6 zH?>}~1GmKxRA+|WaZbwCxm8rOoS9YpK?WU$>)|cWI3d8r%HKe!uBlsKNW-j>zd|xiX73#*o>R?C+`|cp&`Pp+x01w=EF*I|_LusV*5ZxpZ0~ zdGa7-&8O5m4N@FD@k3wCrjj@z6dz*;aj;PMg#US3UCKE`K90p>q@1o|(|QeA*^AXR zK^m@u%coTP_=hy+*H;AJ?Ecca|MU1rdQDL{U?ZQLugr`}ov(tyuloXm7}w_-PJ}cH zNL=;0rNYg;G%uTt$qg*Nx4K~bO|`!&sHl!{F6|zZO9TwDmtdv!$=?2Bi`J4?nGo5b z&Q?6u!b`&$HDS{aE)CB73+qw={A7MP)3%NqhI9?;uE$Y9ffs3mt1IR0#&EPOY}qci z6L?f~dr)&}tCYLe-QwEh#?6?KVwEyPyvRV8s;5P#(zr}B6tMt%Gg64oX*=h3!=;=j z4ATSj^r{*kt9q=xVf_K$_Xq-O@eDaGDO!5Zw*8+V9R|+KM;;RTt{0s@HZANmR5?WH zOX0;fsWxj5l83e)5b|U_1D6WHN;f!J=qsY1^7rjZN7&v{efQk6P<=_KIj;p{OK!`_ z^ATMw^ho6z)x^2PUlLC|ZIi>~gIGy%(tR4V0-8lnz<&VKhCBI?RzU(1{4IYEpKwc` zS*SRh+4uR_#H@lq-P|9~SEsH8{5oOS4G+}-x*H`Sj-@;)|Gt>f_OBjr4UISd@VMh& zq4a@*Q4z@1j5!pm&h!qG~!ab0vr0+O7W(`MY&_dFVlbQ`cQ&(*03;o zgXE*zd}+5}Sm`>WtkxJyn)TQx4TGKXhpA;2Qx$K@Ob>>1JfGrF&c>XS)q2cIV5AU_ zIqu$Z^Q%nZV5{0N0^ynm(xYfnF*_CgDO#<+M0#ic409PsUZYc9-u{TPlh>*ZHVazF zf4Z&g^~LbrI(_%}`J~qV(wX4vm5|#Wr}JP|o5zpWccW|V-u|*ITD&QD){Gw)1#ur1 zBU(Hj{Mf4riIdH0r90(i_6fBvu=tF&WIu2?CQ}uKW#`W@zH%ylG#k7+>F6xMc>xGViQ0HLKcrhP_`KmWj{O;<(-y? zXhp4$%4SEeyThL#PLjB#F4|5%G_5}+?=q-mY)Qly(n%j|v(X8*kK&T_#kHNEc#sw7 zmqVBZrLy4KT*|`9@#3==i7N^FlC80tJ)uK<-gdmfQ@ks*?aI>UkyDsn$J^ioMmwFK z2}Q>7)G_F+Eq-Bd&L9N`YvAH`9Q+xUk}N}XS2eI?B^Yj3ja3JR^dR8`aILOE+Q0D2 ze1Ju$M8fTkv0cQ+7e*fIckjW_G6X{P14ZhzA4Vj|e59~}%ElxtckvvF(?TcYj?>^N z;iH2qjnWq9#0^sNB_!Po>N0nN$$QviIyoNB_;WW7=Oz{LO;P~Q3N-P$FIBy zmadb0vwJqostMDaz zlgweJ0>4pu-+~3Vb z@bCu08!9shymdO4Gtne!@ILeME%nvZxE4Rd{DeMfsQ!$esVYSAkuRTTdJMf}gyF=m zaZel@vXf?JE13$oX;plnie2Pyg@N^~g_?gxl>cNM+kMG)_X%R6xfcJeaIVVzyR3o6 zjQu_KMGc*x*6`p+(Dab><78l5RQk$LEO;Wi#yZ1Z=@} z-vuk>%HJ2;6l7P)`$_Di_YGBeIx^5s<4ndlYOEbM&Z}1RcNDT?-_SW#+zQA>kExX* zlBUXHWS^ZzB0rg|y|qje3+SyGG*?PHOEgk(I?c&sh9pcEH*-o`9RxIZVKS<+=1C+? zO&iL|awHcpBKDEFRSwM$(6!m?)d*Xge)PCbW4G)!RL$Vs)#JAw!GYb|@#NO-tx7Y| z&TX_@0dSgkHU03;61XgwwJ9m`sEC*fUyjE@(8cYu5y2uMc0coRR%O;wwJxEdF~gc@ zQiNbZD_xp^9SgQl@J+dmW(rrVS1N>$yP((nF88IAj?TDwmFn{$E*>6y2_D~<#B^2>?9O0IBp?25J z9#{3K_wivvX(0(~_NRh!euCa1{`v7J;}M4xQJC(=4E5#GOLY7vazS-{0FLc> zmho9Q61)l>b7!A_8nNuuk}W*@5NqmvG*H?w5~XW0bi*4~?|Yy&F|7B3)%>PKlcQD3%ho~%yi_8Ow7M6zQzfHr8E0p9p?ZRCY?+$P z{AmhVz@U6Gl*OJa22l*bKyV{*uG*_SF2M^0dH(?*!2(G{o+>QI%N3X%xdJ3D@4ml> ztyxdPsB>*Fzn7kHX4npXu}=Z|l>5&AnuD};<8&(P`lu5_7he6C^7!EA#gigDA@_N! z+)Dl=ukI8-7Y=c!S6A$?*RoY99)BsB^G_`?) zzCqEOdp}5|ICd-CfF5e}jNant8gwn92zp~l*y5tSHDh91MLH#(9~C57lkqmmcbipW zm_WH}t95GLLcGMYXclw`aMR7W_WlE|zW9?;BYB|Li?;dpVrG9*__b8WZrk_PF)5WB zeen1b2*J;w!@d6(*9rfAn8M%dSY!PB^$iXD_BZB^)|7WDmtUVzjzi9NDlU8P(*YbJ|D+kNM~YmJne5Ze_PmTbD#G zQ<_u8FvABhY8(;O+!~6}m`ooh1N1w%@^KFrv|g2I+bK;x)16z7%?O4p7nb>9`CHWz z`qA+P>&uQ)=$kcZBFrF^2UWi5_Ro4B5}eX6Ae>a5cfpqmXv>D`gNRI@Gwxp`uIxwc zXJ5c%_o;6|%tO-Jsn{YO%cr6uXCw2z^|qUseGIM$OmXWJ$~fjeo$Ev%HT1;kK>iyY zlz*9+jFVZKLF?*yPUp{v?A#nW%fiq#&W3;P0^{23i7C6EW~zW2SG}j=2W!MlMuT{7 z{@Ic)Ne==X1mDGsgHjNIh5t2tHxzoK;b>yD8+%-Z|NLOE;LUn$ zv!h`W1`M)EJmb3bppibJbDpjFl4Cv`Jcs=#!kU8nWf@ecCd zzhKqCj<*s$5`pL^lx5oN!wbcSezG4C%R8< zRZg_^$01OA4~JuXUYs&8;7M5FP7c*N-wYm$mOxKk3-j2-H=Ao27I?YG*sdM%7I|my zRcp=7@@eaP+H15MD@5B#dHV;6-fil4MG@X+8=l~z5TjoDD5#Gm3|h~9d{_40%`=5t z($4*{pFX%dt%wlGyH^gZ zv6qnMpP@C9lo6IE=_Q5ooTkdkN*u~T_zv|}Hv6EPH>-?>%fk!w3@Vh5+vs+4i&xY= zH1^7~T~#`)Nu$v#7F8g!(n$lefyw-!o^E0ITBXu4gX66NC5eb16q6MGDBupk7s^Vq9!Gy_CaPz=eeMRljcsHeQxFWe_zE zR?69bDyC>n2?tw8%xw-ib#p35oD+Atx~tYcE-w=gD90}tUt;|A^nV^)vMF`GgkcYS zy>5__V*n!Y`j*rROmI8j%U&fJxE-C?kDX7U6T8h=&!`U|lzZ{!HyY#v%L*VqL4vZH zg(l?cmRG=H2!&U(Z3a|FerU|oF#rN`W4iuFLL2f#j8+*iO~@uU1qk z`=Jn`)Q)8b60vmJ1861azkgUj4`t5$;&DRbB9LlfDL{d(R=KVaNccL1hRkQTf`Ms= z%xVt2L{2us-_%cb-~(X*QjV{>H3!O`2IKsyHba&u;)#|G8!KB^75{bx+t@ zBxG!qixhQ6H>dZBr(>p?t|#>4E9vxfx=(rmz5;XlATmu4iWXV3C~YG@71inII`95$fV(i_jO<_raM zAfAXnJ5SL`BAb9)DLJ z*31CWi(P=lM|RIz@ypxG0eUwVtayVUd}^V_AQ?$hpDO+P1?1!UW`#Ohi6l(oN7L-R z(}Vh5(@>e@6Fqs1V{bm z)1F8P$a_z9$iFXrj=}rbKKnO1^;f{KzhnDqvdR9hA2)@^_-dfN|1>NXvAR)@=kNyn zdrSWTTFiJztGsXpp~|%9nA#g%l0k+q;$u?m70|i_j@DV5<^0_DP1HkL4Lu6*&6KP+ z7!HKZTVi7|_noSCKOz~z5J+0IU=N&-oO`Ot6Jxia_E1@HCxn%C-#p*Lr|VnPwj^IY z2EOm^#i(`nd;4_Qe(Zqf%V2}TE75X32a!|y3l(4Ov|RS;kXla7XXrgsD*?CdgI<%?zE|u#GRxm=jxGUOv?j z#*{U%x#31`-IQ$2t+}RgRi)#K@mI(DnAnPnis*n75*f`sZ(Y1Ng)}eG$RfTDzIlGE z)FP#ZQ0*-0_2T*$(lWVj)$No>UNVLgVsa`%IR*udqvJrPOT1}vMsXI$xyWdYM@aG> z5;y`#yfI?6=MG5lIGBAbEVIz@6AUCNSq!Q`?!R8!kX-Y1 z1r_u5!~?Rp2{h-+cl5&NQTz|AV%_Y*L3eMb{I>5)f3ba(l z)Un5Bp3B;}_3~qZAx~SN#`;$ov90G@S*Z8S90o^;+oas(F8sO!FvfnXV{U@=8{p9$gWTe!+nPduTOt5pM(t#0XK7q@*AvdX`IO| zcTWzKjIl%n#Hl?rdNXd>4reQUz?SBzTyx$3MWy4k zD-IDlyqQm(>fp_nc3sKgJ;w^M3gS6}Z5(6OdUKD6G>)vp#mg-jHSt|!(F z;pT?9<4@hJj|$;JT1Q_q9;s+-ZlbI4d)l&SuYT0G_g?Fo=)R$Co=Z2wvklkB?6@|k zV~hCn5VCR3$bbIDiByqimCAApglZIf;N?}h+?@*cj(Fn6czqSSNMMfZ3x4QH!@0X^ zk99w=(IU*S$&_1%q^SQ@8dny08uZ~Dff~GaE7OtTzN&0XFZ~k(J(240nCWbP+DPQIqut|mkgx`Cz_Nv z=c#isHoU%W)?VzP$HqJKQ=VxzE%Qz{K|MIpISZ0I*RU;j1R~jl*I7V^2KsUraG_K@ z^t#_|B@1f`OwKy;;X!xq`+>h~X1T)$oOd(a9<`W<{kDOi(vIAd4>U|U-)y4FpxN3B`h#?E$s<9O5S&P_(K5K2GHbCH8U$z^kK zXAATw?Hhdv$g1qkg+@8_&0L9NV{vMnhL3vvQ0A*l-e;G%f)ryvU*|x9wlK>apKdBc zD@uT5lAPrArDnGCzjQuO2j1#UILNz{V*{ZgfFf7O%8*FsJ?UARR{@D*+b4lgu?Hx; zk7}Ms3Snfoyw%m96(*Y5}$+&{R0th{`Nfd10h}R@%J%$ZV;JMgH`Hwk2nWwBqEyHsD ze9#3=sGyt>M?v1KsQXlD6mf-=cN}C7Va95*%JEKEeAzucMOcuj80-K8zZ>S^rRUlZ{7e<0Lnrta7pHxpfeTRRQlA4oyX1WdQl)meZ_gtLDSxV zCTL)Z5XwuJ$>8H2)mv!ltV)s4)u)Qv?EYdm??)vF$K_Q9Rnecy~Ymi!#!$O!jhn82M5^F?aGOc26_X* zrw9O2(kpFaox|Rk2m`u?BoaDM6t*$XG^2&geKU;r6(WN9ka3pUN58EARwz}9la6{+ zzGRIK!ueDPW<_Mk#Z@&HCod(z@XKwEHJ{v7&LSZ4Wi z-#G14Mns4eoP^!;4^MgkVnrmRtTC4$=Od^dl;R}{V36Y-k7|`}8V&GUx5`f7!-CZl z%F~bD9I)s}=iE~PfNsbf@%*W&B&s$r+=uk3UP#Bw3|kIC-I7ftR}#aN>Wz{|y&xum zA(BrfW4Ad9-u{N6F|rnmf=7H*Eh@S!Y;wSoN$zUglEhgW9vCmqF~(>D1t?u!OtPuy z4QZ{~I{6Yu<;G7K;E#WLqvjWo`N#ll42}TztM>t;9!AqFZOV|@{HOyhL^)|+x#SMs z^rXi)GR81h85qHxn zTD`W0D0e{nk;z|_@%WCFkqy+A(+Puq@CG4wP6AdcX&##KfEDqk2l?NK|g9$4B>C-MIP3Uk~uoXnz33<7_h zG%A(O2s8jXiHJo_#P$^|kWCV#kC3OfdHiY^+DK#!rx-ncwKS49nTH)aiU4Rak(E#g zIn7U&RWXnVE7#k-MI5_BgSTULJw_-J?U6#9gMfaN0Q0e94d*I?I_@gpr!@>$5E*>Q zU5>5@cdJPT)NeUk_guHXp;};7b&bn3Y}>ufMA6ME zENu}bc@6#*XiY4IVo(`joo;gMDR$y!#BBJgGY|d39bsF zg~0@c9lsg?YGs(n+>$>YY2+sZ+rLn11xXMeRXD)*r*586=8^gJpbK#*F%6`v1KOlF zQaZZIa)e>A{OXiy+^{48OAL<`pr{Nv;P(cACEIasyWni2@(4X?ZOn={NN^)(w zTnGD@_4-p;k|0AiMtWn408NW45Ts|VLRLY6$s^O6u(3xRUTf|FzT+<==zS_{HbiDu OP5ZgXIKcL#2mjdvA#7y; literal 0 HcmV?d00001 diff --git a/tests/test_io_image.py b/tests/test_io_image.py new file mode 100644 index 00000000..d9f14c7d --- /dev/null +++ b/tests/test_io_image.py @@ -0,0 +1,163 @@ +import os +import warnings + +import numpy +import pytest +from rasterio.errors import NotGeoreferencedWarning + +from rio_tiler.errors import PointOutsideBounds, TileOutsideBounds +from rio_tiler.io.rasterio import ImageReader + +PREFIX = os.path.join(os.path.dirname(__file__), "fixtures") +NO_GEO = os.path.join(PREFIX, "no_geo.jpg") +GEO = os.path.join(PREFIX, "cog_nonearth.tif") + + +def test_non_geo_image(): + """Test COGReader usage with Non-Geo Images.""" + with pytest.warns() as w: + with ImageReader(NO_GEO) as src: + assert src.minzoom == 0 + assert src.maxzoom == 3 + assert len(w) == 1 + assert issubclass(w[0].category, NotGeoreferencedWarning) + + with warnings.catch_warnings(): + with ImageReader(NO_GEO) as src: + assert list(src.tms.xy_bounds(0, 0, 3)) == [0, 256, 256, 0] + assert list(src.tms.xy_bounds(0, 0, 2)) == [0, 512, 512, 0] + assert list(src.tms.xy_bounds(0, 0, 1)) == [0, 1024, 1024, 0] + assert list(src.tms.xy_bounds(0, 0, 0)) == [0, 2048, 2048, 0] + + img = src.tile(0, 0, 3) + assert img.mask.all() + + # Make sure no resampling was done at full resolution + data = src.dataset.read(window=((0, 256), (0, 256))) + numpy.testing.assert_array_equal(data, img.data) + + # Tile at zoom 0 should have masked part + img = src.tile(0, 0, 0) + assert not img.mask.all() + + with pytest.raises(TileOutsideBounds): + max_x_tile = src.dataset.width // 256 + 1 + max_y_tile = src.dataset.height // 256 + 1 + src.tile(max_x_tile, max_y_tile, 3) + + img = src.part((0, 256, 256, 0)) + data = src.dataset.read(window=((0, 256), (0, 256))) + numpy.testing.assert_array_equal(data, img.data) + + img = src.preview() + assert img.width == 1024 + assert img.height == 1024 + + pt = src.point(0, 0) + assert len(pt.mask) == 1 + assert pt.mask[0] == 255 + data = list(src.dataset.sample([(0, 0)]))[0] + numpy.testing.assert_array_equal(pt.data, data) + + pt = src.point(1999, 1999) + data = list(src.dataset.sample([(1999, 1999)]))[0] + numpy.testing.assert_array_equal(pt.data, data) + + with pytest.raises(PointOutsideBounds): + src.point(2000, 2000) + + poly = { + "coordinates": [ + [ + [-100.0, -100.0], + [1000.0, 100.0], + [500.0, 1000.0], + [-50.0, 500.0], + [-100.0, -100.0], + ] + ], + "type": "Polygon", + } + im = src.feature(poly) + assert im.data.shape == (3, 1100, 1100) + + +def test_with_geo_image(): + """Test ImageReader usage with Geo Images.""" + with ImageReader(GEO) as src: + assert src.minzoom == 0 + assert src.maxzoom == 2 + + assert list(src.tms.xy_bounds(0, 0, 2)) == [0, 256, 256, 0] + assert list(src.tms.xy_bounds(0, 0, 1)) == [0, 512, 512, 0] + assert list(src.tms.xy_bounds(0, 0, 0)) == [0, 1024, 1024, 0] + + img = src.tile(10, 12, 4) + assert img.mask.all() + # img should keep the geo information from the dataset + assert img.crs == src.dataset.crs + assert img.bounds != list(src.tms.xy_bounds(10, 12, 4)) + + img = src.tile(0, 0, 3) + assert not img.mask.any() + + # Make sure no resampling was done at full resolution + data = src.dataset.read(window=((0, 256), (0, 256))) + numpy.testing.assert_array_equal(data, img.data) + + # Tile at zoom 0 should have masked part + img = src.tile(0, 0, 0) + assert not img.mask.all() + + with pytest.raises(TileOutsideBounds): + max_x_tile = src.dataset.width // 256 + 1 + max_y_tile = src.dataset.height // 256 + 1 + src.tile(max_x_tile, max_y_tile, 2) + + img = src.part((0, 256, 256, 0)) + data = src.dataset.read(window=((0, 256), (0, 256))) + numpy.testing.assert_array_equal(data, img.data) + + img = src.preview() + assert img.width == 921 + assert img.height == 884 + # img should keep the geo information from the dataset + assert img.crs == src.dataset.crs + assert img.bounds != list(src.tms.xy_bounds(10, 12, 4)) + + pt = src.point(0, 0) + # pixel 0,0 is masked + assert len(pt.mask) == 1 + assert pt.mask[0] == 0 + + data = list(src.dataset.sample([(0, 0)]))[0] + numpy.testing.assert_array_equal(pt.data, data) + + pt = src.point(400, 800) + # pixel 400,800 has valid values + assert len(pt.mask) == 1 + assert pt.mask[0] == 255 + + pt = src.point(920, 883) + data = list(src.dataset.sample([(920, 883)]))[0] + numpy.testing.assert_array_equal(pt.data, data) + assert pt.crs == src.dataset.crs + assert pt.coordinates != [920, 883] + + with pytest.raises(PointOutsideBounds): + src.point(2000, 2000) + + poly = { + "coordinates": [ + [ + [-100.0, -100.0], + [1000.0, 100.0], + [500.0, 1000.0], + [-50.0, 500.0], + [-100.0, -100.0], + ] + ], + "type": "Polygon", + } + im = src.feature(poly) + assert im.data.shape == (1, 1100, 1100) diff --git a/tests/test_io_rasterio.py b/tests/test_io_rasterio.py index f34a0acc..70a637d5 100644 --- a/tests/test_io_rasterio.py +++ b/tests/test_io_rasterio.py @@ -232,10 +232,13 @@ def test_point_valid(): with Reader(COG_NODATA) as cog: pt = cog.point(lon, lat) assert len(pt.data) == 1 + assert len(pt.mask) == 1 assert pt.band_names == ["b1"] pt = cog.point(lon, lat, expression="b1*2;b1-100") assert len(pt.data) == 2 + assert len(pt.mask) == 1 + assert pt.mask[0] == 255 assert pt.band_names == ["b1*2", "b1-100"] with pytest.warns(ExpressionMixingWarning): @@ -258,6 +261,11 @@ def test_point_valid(): assert len(pt.data) == 2 assert pt.band_names == ["b1", "b1"] + pt = cog.point(-59.53, 74.03, indexes=(1, 1, 1)) + assert len(pt.data) == 3 + assert pt.mask[0] == 0 + assert pt.band_names == ["b1", "b1", "b1"] + def test_area_valid(): """Read part of an image.""" @@ -809,10 +817,10 @@ def test_nonearthbody(): assert cog.maxzoom == 24 # Warns because of zoom level in WebMercator can't be defined - with pytest.warns(UserWarning) as warnings: + with pytest.warns(UserWarning) as w: with Reader(COG_EUROPA, geographic_crs=EUROPA_SPHERE) as cog: assert cog.info() - assert len(warnings) == 2 + assert len(w) == 2 img = cog.read() assert numpy.array_equal(img.data, cog.dataset.read(indexes=(1,))) @@ -830,7 +838,7 @@ def test_nonearthbody(): lat = (cog.bounds[1] + cog.bounds[3]) / 2 assert cog.point(lon, lat, coord_crs=cog.crs).data[0] is not None - with pytest.warns(UserWarning) as warnings: + with pytest.warns(UserWarning): europa_crs = CRS.from_authority("ESRI", 104915) tms = TileMatrixSet.custom( crs=europa_crs, From f8e1071248293817261e0bdfa09550c136eb8b3a Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Tue, 18 Oct 2022 17:46:07 +0200 Subject: [PATCH 19/23] Xarray reader (#530) * sketch out Xarray support * Update rio_tiler/io/xarray.py Co-authored-by: Ryan Abernathey * read tile * assume crs is in the dataset * upside down * dependencies * cleanup * add more methods and cleanup * Update rio_tiler/io/xarray.py Co-authored-by: Tom Augspurger * enumerate from 1 * fix * add dataset_statistics and notebook * add XarrayReader in top level import * add tests * update notebook * update changelog Co-authored-by: Ryan Abernathey Co-authored-by: Tom Augspurger --- CHANGES.md | 38 +- .../Using-rio-tiler-XarrayReader.ipynb | 972 ++++++++++++++++++ pyproject.toml | 8 + rio_tiler/io/__init__.py | 1 + rio_tiler/io/xarray.py | 414 ++++++++ rio_tiler/models.py | 3 +- tests/test_io_xarray.py | 87 ++ 7 files changed, 1510 insertions(+), 13 deletions(-) create mode 100644 docs/src/examples/Using-rio-tiler-XarrayReader.ipynb create mode 100644 rio_tiler/io/xarray.py create mode 100644 tests/test_io_xarray.py diff --git a/CHANGES.md b/CHANGES.md index 22b04ffd..4b096aa1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,21 +1,38 @@ # 4.0.0 (TBD) +* add python 3.10 support * add `apply_expression` method in `rio_tiler.models.ImageData` class -* update `rio-tiler.reader.read/part` to avoid using WarpedVRT when no reprojection or nodata override is needed +* update `rio-tiler.reader.read/part` to avoid using WarpedVRT when no *reprojection* or *nodata override* is needed * add `rio_tiler.io.rasterio.ImageReader` to work either with Non-geo or Geo images in a Non-geo manner (a.k.a: in the pixel coordinates system) + ```python + with ImageReader("image.jpg") as src: + im = src.part((0, 100, 100, 0)) -```python -with ImageReader("image.jpg") as src: - im = src.part((0, 100, 100, 0)) - + with ImageReader("image.jpg") as src: + im = src.tile(0, 0, src.maxzoom) + print(im.bounds) -with ImageReader("image.jpg") as src: - im = src.tile(0, 0, src.maxzoom) - print(im.bounds) + >>> BoundingBox(left=0.0, bottom=256.0, right=256.0, top=0.0) + ``` ->> BoundingBox(left=0.0, bottom=256.0, right=256.0, top=0.0) -``` +* add `rio_tiler.io.xarray.XarrayReader` to work with `xarray.DataArray` + ```python + import xarray + from rio_tiler.io import XarrayReader + + with xarray.open_dataset( + "https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/noaa-coastwatch-geopolar-sst-feedstock/noaa-coastwatch-geopolar-sst.zarr", + engine="zarr", + decode_coords="all" + ) as src: + ds = src["analysed_sst"][:1] + ds.rio.write_crs("epsg:4326", inplace=True) + + with XarrayReader(ds) as dst: + img = dst.tile(1, 1, 2) + ``` + note: `xarray` and `rioxarray` optional dependencies are needed for the reader **breaking changes** @@ -140,7 +157,6 @@ with ImageReader("image.jpg") as src: data = cog.preview() ``` - # 3.1.6 (2022-07-22) * Hide `NotGeoreferencedWarning` warnings in `utils.render` and `utils.resize_array` diff --git a/docs/src/examples/Using-rio-tiler-XarrayReader.ipynb b/docs/src/examples/Using-rio-tiler-XarrayReader.ipynb new file mode 100644 index 00000000..0eb3085c --- /dev/null +++ b/docs/src/examples/Using-rio-tiler-XarrayReader.ipynb @@ -0,0 +1,972 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "45bf509c", + "metadata": {}, + "outputs": [], + "source": [ + "import xarray\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from rio_tiler.io.xarray import XarrayReader" + ] + }, + { + "cell_type": "markdown", + "id": "d2c1f9bd", + "metadata": {}, + "source": [ + "### daymet" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "feb70fe3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:                  (time: 1, y: 3728, x: 17268)\n",
+       "Coordinates:\n",
+       "    lambert_conformal_conic  int64 0\n",
+       "  * time                     (time) datetime64[ns] 1980-07-01T12:00:00\n",
+       "  * x                        (x) float64 -180.0 -180.0 -179.9 ... 180.0 180.0\n",
+       "  * y                        (y) float64 83.78 83.76 83.74 ... 6.126 6.105 6.084\n",
+       "Data variables:\n",
+       "    tmax                     (time, y, x) float32 ...\n",
+       "Attributes:\n",
+       "    Conventions:       CF-1.6\n",
+       "    Version_data:      Daymet Data Version 4.0\n",
+       "    Version_software:  Daymet Software Version 4.0\n",
+       "    citation:          Please see http://daymet.ornl.gov/ for current Daymet ...\n",
+       "    references:        Please see http://daymet.ornl.gov/ for current informa...\n",
+       "    source:            Daymet Software Version 4.0\n",
+       "    start_year:        1980
" + ], + "text/plain": [ + "\n", + "Dimensions: (time: 1, y: 3728, x: 17268)\n", + "Coordinates:\n", + " lambert_conformal_conic int64 ...\n", + " * time (time) datetime64[ns] 1980-07-01T12:00:00\n", + " * x (x) float64 -180.0 -180.0 -179.9 ... 180.0 180.0\n", + " * y (y) float64 83.78 83.76 83.74 ... 6.126 6.105 6.084\n", + "Data variables:\n", + " tmax (time, y, x) float32 ...\n", + "Attributes:\n", + " Conventions: CF-1.6\n", + " Version_data: Daymet Data Version 4.0\n", + " Version_software: Daymet Software Version 4.0\n", + " citation: Please see http://daymet.ornl.gov/ for current Daymet ...\n", + " references: Please see http://daymet.ornl.gov/ for current informa...\n", + " source: Daymet Software Version 4.0\n", + " start_year: 1980" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds = xarray.open_dataset(\n", + " \"https://pangeo.blob.core.windows.net/pangeo-public/daymet-rio-tiler/na-wgs84.zarr/\",\n", + " engine=\"zarr\",\n", + " decode_coords=\"all\",\n", + " consolidated=True,\n", + ")\n", + "ds" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cafd96de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'tmax' (time: 1, y: 3728, x: 17268)>\n",
+       "[64375104 values with dtype=float32]\n",
+       "Coordinates:\n",
+       "    lambert_conformal_conic  int64 0\n",
+       "  * time                     (time) datetime64[ns] 1980-07-01T12:00:00\n",
+       "  * x                        (x) float64 -180.0 -180.0 -179.9 ... 180.0 180.0\n",
+       "  * y                        (y) float64 83.78 83.76 83.74 ... 6.126 6.105 6.084\n",
+       "Attributes:\n",
+       "    cell_methods:  area: mean time: maximum within days time: mean over days\n",
+       "    coordinates:   lon lat\n",
+       "    long_name:     annual average of daily maximum temperature\n",
+       "    units:         degrees C
" + ], + "text/plain": [ + "\n", + "[64375104 values with dtype=float32]\n", + "Coordinates:\n", + " lambert_conformal_conic int64 0\n", + " * time (time) datetime64[ns] 1980-07-01T12:00:00\n", + " * x (x) float64 -180.0 -180.0 -179.9 ... 180.0 180.0\n", + " * y (y) float64 83.78 83.76 83.74 ... 6.126 6.105 6.084\n", + "Attributes:\n", + " cell_methods: area: mean time: maximum within days time: mean over days\n", + " coordinates: lon lat\n", + " long_name: annual average of daily maximum temperature\n", + " units: degrees C" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "da = ds[\"tmax\"]\n", + "da" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d29e0c33", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bounds=BoundingBox(left=-179.99998449579846, bottom=6.073484821356791, right=179.98170598363066, top=83.79467217916716) minzoom=1 maxzoom=6 band_metadata=[('b1', {'long_name': '24-hour day based on local time', 'standard_name': 'time'})] band_descriptions=[('b1', '1980-07-01T12:00:00.000000000')] dtype='float32' nodata_type='Nodata' colorinterp=None scale=None offset=None colormap=None attrs={'cell_methods': 'area: mean time: maximum within days time: mean over days', 'coordinates': 'lon lat', 'long_name': 'annual average of daily maximum temperature', 'units': 'degrees C'} height=3728 count=1 name='tmax' width=17268\n" + ] + } + ], + "source": [ + "da = ds[\"tmax\"]\n", + "with XarrayReader(da) as dst:\n", + " print(dst.info())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "93d11d9c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3LlzceaZZ2LHjh1Rm3379mH16tU48MADsf/+++Pss8/Grl27ojbPPPMMzjjjDMyYMQNz587FFVdcgWazOejBH6A05iQJZqgE01SCurKXY12Hg+6OEEJIBRiUcG3duhWrV6/GAw88gM2bN6PRaGD58uXYu3evb3PZZZfhBz/4Ab797W9j69atePbZZ3HWWWf5/Wma4owzzkBvby/uv/9+3Hbbbbj11ltx3XXXDXrwNaUxTVlvZwpBQ6ydlQotLkIImawoERmybfLCCy9g7ty52Lp1K0477TTs2bMHBx98MG6//Xb88R//MQDg17/+NY4++mhs27YNp5xyCu644w68733vw7PPPot58+YBAG6++WZcddVVeOGFF9DR0dHvebu7uzFr1ix07TgEcw6o4zXpxauSoje7lB4BekXj2EP/baiXRgghZBRxz/E9e/Zg5syZgzp2WDGuPXv2AADmzJkDANi+fTsajQaWLVvm2xx11FE49NBDsW3bNgDAtm3bcPzxx3vRAoAVK1agu7sbjz32WOl5enp60N3dHb0A4DXTwIvmNbwqdiZXAjvpuFc0GtUO3xFCCGnDkJ/uxhhceumlOPXUU3HccccBALq6utDR0YHZs2dHbefNm4euri7fJhQtt9/tK2PDhg2YNWuWfx1yyCEAgAYEvZK/XFKGgYIRNdRLI4QQMoEZcjr86tWr8eijj+K+++4byfGUsm7dOqxdu9Z/7+7uxiGHHIJeEdSRCxTT3wkhZPIzJOFas2YNfvjDH+Lee+/F61//er99/vz56O3txe7duyOra9euXZg/f75v89Of/jTqz2UdujZFOjs70dnZ2bK9IfaVgtYVIYRMFQblKhQRrFmzBt/97ndx1113YdGiRdH+k046CfV6HVu2bPHbduzYgWeeeQZLliwBACxZsgSPPPIInn/+ed9m8+bNmDlzJo455phBDV5gRSsV+yKEEDL5GZTFtXr1atx+++34/ve/jwMOOMDHpGbNmoXp06dj1qxZuPDCC7F27VrMmTMHM2fOxCc+8QksWbIEp5xyCgBg+fLlOOaYY/CRj3wEGzduRFdXF6655hqsXr261KrqC1Z9J4SQqceg0uGVKrdqbrnlFnz0ox8FYCcgX3755fjWt76Fnp4erFixAt/4xjciN+DTTz+NSy65BPfccw/2228/nH/++bjxxhtRqw1MR10a5QOPzsfiYxnXIoSQqjGcdPhhzeMaL4ZzwYQQQsafcZvHRQghhIw1FC5CCCGVgsJFCCGkUlC4CCGEVAoKFyGEkEpB4SKEEFIpKFyEEEIqBYWLEEJIpaBwEUIIqRQULkIIIZWCwkUIIaRSULgIIYRUCgoXIYSQSkHhIoQQUikoXIQQQioFhYsQQkiloHARQgipFBQuQgghlYLCRQghpFJQuAghhFQKChchhJBKQeEihBBSKShchBBCKgWFixBCSKWgcBFCCKkUFC5CCCGVgsJFCCGkUlC4CCGEVAoKFyGEkEpB4SKEEFIpKFyEEEIqBYWLEEJIpaBwEUIIqRQULkIIIZWCwkUIIaRSULgIIYRUCgoXIYSQSkHhIoQQUikoXIQQQioFhYsQQkiloHARQgipFBQuQgghlYLCRQghpFJQuAghhFQKChchhJBKQeEihBBSKShchBBCKgWFixBCSKWgcBFCCKkUFC5CCCGVgsJFCCGkUlC4CCGEVAoKFyGEkEpB4SKEEFIpKFyEEEIqBYWLEEJIpaBwEUIIqRQULkIIIZWCwkUIIaRSULgIIYRUCgoXIYSQSjEo4dqwYQNOPvlkHHDAAZg7dy7OPPNM7NixI2pz+umnQykVvT7+8Y9HbZ555hmcccYZmDFjBubOnYsrrrgCzWZz+FdDCCFk0lMbTOOtW7di9erVOPnkk9FsNnH11Vdj+fLl+NWvfoX99tvPt7vooovwmc98xn+fMWOG/5ymKc444wzMnz8f999/P5577jn86Z/+Ker1Or7whS+MwCURQgiZzCgRkaEe/MILL2Du3LnYunUrTjvtNADW4nrzm9+Mr3zlK6XH3HHHHXjf+96HZ599FvPmzQMA3HzzzbjqqqvwwgsvoKOjo9/zdnd3Y9asWdizZw9mzpw51OETQggZJ4bzHB9WjGvPnj0AgDlz5kTbv/nNb+Kggw7Ccccdh3Xr1uHVV1/1+7Zt24bjjz/eixYArFixAt3d3XjsscdKz9PT04Pu7u7oRQghZGoyKFdhiDEGl156KU499VQcd9xxfvuHP/xhHHbYYVi4cCEefvhhXHXVVdixYwe+853vAAC6uroi0QLgv3d1dZWea8OGDVi/fv1Qh0oIIWQSMWThWr16NR599FHcd9990faLL77Yfz7++OOxYMECLF26FE8++SSOOOKIIZ1r3bp1WLt2rf/e3d2NQw45ZGgDJ4QQUmmG5Cpcs2YNfvjDH+Luu+/G61//+j7bLl68GACwc+dOAMD8+fOxa9euqI37Pn/+/NI+Ojs7MXPmzOhFCCFkajIo4RIRrFmzBt/97ndx1113YdGiRf0e89BDDwEAFixYAABYsmQJHnnkETz//PO+zebNmzFz5kwcc8wxgxkOIYSQKcigXIWrV6/G7bffju9///s44IADfExq1qxZmD59Op588kncfvvteO9734sDDzwQDz/8MC677DKcdtppOOGEEwAAy5cvxzHHHIOPfOQj2LhxI7q6unDNNddg9erV6OzsHPkrJIQQMqkYVDq8Uqp0+y233IKPfvSj+O1vf4s/+ZM/waOPPoq9e/fikEMOwQc/+EFcc801kXvv6aefxiWXXIJ77rkH++23H84//3zceOONqNUGpqNMhyeEkGoznOf4sOZxjRcULkIIqTbDeY4POatwPHFay/lchBBSTdzzeyi2UyWF6+WXXwYApsQTQkjFefnllzFr1qxBHVNJV6ExBjt27MAxxxyD3/72t3QXluDmuvH+lMP70ze8P/3De9Q3/d0fEcHLL7+MhQsXQuvBzcyqpMWltcbrXvc6AOC8rn7g/ekb3p++4f3pH96jvunr/gzW0nJwPS5CCCGVgsJFCCGkUlRWuDo7O3H99ddz0nIbeH/6hvenb3h/+of3qG9G8/5UMjmDEELI1KWyFhchhJCpCYWLEEJIpaBwEUIIqRQULkIIIZWiksL19a9/HW94wxswbdo0LF68GD/96U/He0jjwg033AClVPQ66qij/P59+/Zh9erVOPDAA7H//vvj7LPPblnEc7Jx77334v3vfz8WLlwIpRS+973vRftFBNdddx0WLFiA6dOnY9myZXjiiSeiNi+99BLOO+88zJw5E7Nnz8aFF16IV155ZQyvYvTo7/589KMfbfk3tXLlyqjNZL0/GzZswMknn4wDDjgAc+fOxZlnnokdO3ZEbQbyf+qZZ57BGWecgRkzZmDu3Lm44oor0Gw2x/JSRo2B3KPTTz+95d/Qxz/+8ajNcO9R5YTr7//+77F27Vpcf/31+MUvfoETTzwRK1asiBamnEoce+yxeO655/zrvvvu8/suu+wy/OAHP8C3v/1tbN26Fc8++yzOOuuscRzt6LN3716ceOKJ+PrXv166f+PGjfjqV7+Km2++GQ8++CD2228/rFixAvv27fNtzjvvPDz22GPYvHkzfvjDH+Lee+/FxRdfPFaXMKr0d38AYOXKldG/qW9961vR/sl6f7Zu3YrVq1fjgQcewObNm9FoNLB8+XLs3bvXt+nv/1SapjjjjDPQ29uL+++/H7fddhtuvfVWXHfddeNxSSPOQO4RAFx00UXRv6GNGzf6fSNyj6RivP3tb5fVq1f772maysKFC2XDhg3jOKrx4frrr5cTTzyxdN/u3bulXq/Lt7/9bb/t8ccfFwCybdu2MRrh+AJAvvvd7/rvxhiZP3++fPGLX/Tbdu/eLZ2dnfKtb31LRER+9atfCQD52c9+5tvccccdopSSf/u3fxuzsY8FxfsjInL++efLBz7wgbbHTKX78/zzzwsA2bp1q4gM7P/U//k//0e01tLV1eXb/NVf/ZXMnDlTenp6xvYCxoDiPRIRede73iV//ud/3vaYkbhHlbK4ent7sX37dixbtsxv01pj2bJl2LZt2ziObPx44oknsHDhQhx++OE477zz8MwzzwAAtm/fjkajEd2ro446CoceeuiUvVdPPfUUurq6onsya9YsLF682N+Tbdu2Yfbs2Xjb297m2yxbtgxaazz44INjPubx4J577sHcuXNx5JFH4pJLLsGLL77o902l+7Nnzx4AwJw5cwAM7P/Utm3bcPzxx2PevHm+zYoVK9Dd3Y3HHntsDEc/NhTvkeOb3/wmDjroIBx33HFYt24dXn31Vb9vJO5RpYrs/vu//zvSNI0uGADmzZuHX//61+M0qvFj8eLFuPXWW3HkkUfiueeew/r16/HOd74Tjz76KLq6utDR0YHZs2dHx8ybNw9dXV3jM+Bxxl132b8ft6+rqwtz586N9tdqNcyZM2dK3LeVK1firLPOwqJFi/Dkk0/i6quvxqpVq7Bt2zYkSTJl7o8xBpdeeilOPfVUHHfccQAwoP9TXV1dpf++3L7JRNk9AoAPf/jDOOyww7Bw4UI8/PDDuOqqq7Bjxw585zvfATAy96hSwkViVq1a5T+fcMIJWLx4MQ477DD8wz/8A6ZPnz6OIyNV5ZxzzvGfjz/+eJxwwgk44ogjcM8992Dp0qXjOLKxZfXq1Xj00UejmDGJaXePwnjn8ccfjwULFmDp0qV48sknccQRR4zIuSvlKjzooIOQJElLFs+uXbswf/78cRrVxGH27Nl405vehJ07d2L+/Pno7e3F7t27ozZT+V656+7r38/8+fNbEn2azSZeeumlKXnfDj/8cBx00EHYuXMngKlxf9asWYMf/vCHuPvuu/H617/ebx/I/6n58+eX/vty+yYL7e5RGYsXLwaA6N/QcO9RpYSro6MDJ510ErZs2eK3GWOwZcsWLFmyZBxHNjF45ZVX8OSTT2LBggU46aSTUK/Xo3u1Y8cOPPPMM1P2Xi1atAjz58+P7kl3dzcefPBBf0+WLFmC3bt3Y/v27b7NXXfdBWOM/w84lfjd736HF198EQsWLAAwue+PiGDNmjX47ne/i7vuuguLFi2K9g/k/9SSJUvwyCOPROK+efNmzJw5E8ccc8zYXMgo0t89KuOhhx4CgOjf0LDv0RCTScaNv/u7v5POzk659dZb5Ve/+pVcfPHFMnv27ChDZapw+eWXyz333CNPPfWU/NM//ZMsW7ZMDjroIHn++edFROTjH/+4HHrooXLXXXfJz3/+c1myZIksWbJknEc9urz88svyy1/+Un75y18KALnpppvkl7/8pTz99NMiInLjjTfK7Nmz5fvf/748/PDD8oEPfEAWLVokr732mu9j5cqV8pa3vEUefPBBue++++SNb3yjnHvuueN1SSNKX/fn5Zdflk9+8pOybds2eeqpp+QnP/mJvPWtb5U3vvGNsm/fPt/HZL0/l1xyicyaNUvuueceee655/zr1Vdf9W36+z/VbDbluOOOk+XLl8tDDz0kd955pxx88MGybt268bikEae/e7Rz5075zGc+Iz//+c/lqaeeku9///ty+OGHy2mnneb7GIl7VDnhEhH52te+Joceeqh0dHTI29/+dnnggQfGe0jjwoc+9CFZsGCBdHR0yOte9zr50Ic+JDt37vT7X3vtNfmzP/sz+b3f+z2ZMWOGfPCDH5TnnntuHEc8+tx9990CoOV1/vnni4hNib/22mtl3rx50tnZKUuXLpUdO3ZEfbz44oty7rnnyv777y8zZ86UCy64QF5++eVxuJqRp6/78+qrr8ry5cvl4IMPlnq9LocddphcdNFFLT8KJ+v9KbsvAOSWW27xbQbyf+o3v/mNrFq1SqZPny4HHXSQXH755dJoNMb4akaH/u7RM888I6eddprMmTNHOjs75fd///fliiuukD179kT9DPcecVkTQgghlaJSMS5CCCGEwkUIIaRSULgIIYRUCgoXIYSQSkHhIoQQUikoXIQQQioFhYsQQkiloHARQgipFBQuQgghlYLCRQghpFJQuAghhFQKChchhJBK8f8DrW8dU/uBssAAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with XarrayReader(da) as dst:\n", + " img = dst.tile(1, 1, 2)\n", + "\n", + "plt.imshow(img.data_as_image());" + ] + }, + { + "cell_type": "markdown", + "id": "1c538213", + "metadata": {}, + "source": [ + "### noaa-coastwatch-geopolar-sst" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8f90e288", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bounds=BoundingBox(left=-180.00000610436345, bottom=-89.99999847369712, right=180.00000610436345, top=89.99999847369712) minzoom=0 maxzoom=2 band_metadata=[('b1', {'axis': 'T', 'comment': 'Nominal time of Level 4 analysis', 'long_name': 'reference time of sst field', 'standard_name': 'time'})] band_descriptions=[('b1', '2002-09-01T12:00:00.000000000')] dtype='float32' nodata_type='Nodata' colorinterp=None scale=None offset=None colormap=None attrs={'comment': 'Analysed SST for each ocean grid point', 'long_name': 'analysed sea surface temperature', 'reference': 'Fieguth,P.W. et al. \"Mapping Mediterranean altimeter data with a multiresolution optimal interpolation algorithm\", J. Atmos. Ocean Tech, 15 (2): 535-546, 1998. Fieguth, P. Multiply-Rooted Multiscale Models for Large-Scale Estimation, IEEE Image Processing, 10(11), 1676-1686, 2001. Khellah, F., P.W. Fieguth, M.J. Murray and M.R. Allen, \"Statistical Processing of Large Image Sequences\", IEEE Transactions on Geoscience and Remote Sensing, 12 (1), 80-93, 2005. Maturi, E., A. Harris, J. Mittaz, J. Sapper, G. Wick, X. Zhu, P. Dash, P. Koner, \"A New High-Resolution Sea Surface Temperature Blended Analysis\", Bulleting of the American Meteorological Society, 98 (5), 1015-1026, 2017.', 'source': 'STAR-ACSPO_GAC, STAR-ACSPO_H-8, STAR-Geo_SST, UKMO-OSTIA', 'standard_name': 'sea_surface_foundation_temperature', 'units': 'kelvin', 'valid_max': 4000, 'valid_min': -200} height=3600 count=1 name='analysed_sst' width=7200\n" + ] + }, + { + "data": { + "image/png": "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QvT9CSGEN73pTeFnf/Znq8ccS/fnkUceCQDCLbfcEkKY7536kz/5k9A0Tdi/f39q8+EPfzicdNJJYW1t7bm9gOdA9D0KIYS/83f+Tvgn/+SfVI85HPdoU2lc6+vruPXWW3H55ZenbU3T4PLLL8eePXuO4MiOnNx1113YsWMHzjnnHLzxjW/Evn37AAC33noruq4T9+rlL385zjzzzGP2Xt1zzz3Yv3+/uCcnn3wyLrnkknRP9uzZg1NOOQU/8RM/kdpcfvnlaJoGX/va157zMR8Jufnmm7F161acd955uO666/Doo4+mfcfS/Xn88ccBAKeeeiqA+d6pPXv24MILL8Tpp5+e2lx55ZV44okncPvttz+Ho39uRN8jko9//OM47bTTcMEFF+CGG27AgQMH0r7DcY82VZLd//pf/yv6vhcXDACnn346vve97x2hUR05ueSSS/Cxj30M5513Hh5++GF84AMfwE/91E/hO9/5Dvbv34/l5WWccsop4pjTTz8d+/fvPzIDPsJC1209P7Rv//792Lp1q9i/tLSEU0899Zi4b1dddRVe//rX4+yzz8bevXvx3ve+F1dffTX27NmDtm2Pmfvjvcc73vEOvOY1r8EFF1wAAHO9U/v37zefL9p3NIl1jwDgF37hF3DWWWdhx44d+Na3voX3vOc9uPPOO/GpT30KwOG5R5sKuBYi5eqrr06fX/GKV+CSSy7BWWedhf/wH/4DjjvuuCM4soVsVnnDG96QPl944YV4xStegXPPPRc333wzLrvssiM4sudWdu/eje985zvCZ7wQKbV7xP2dF154IbZv347LLrsMe/fuxbnnnntYzr2pTIWnnXYa2rYtWDzf//73sW3btiM0quePnHLKKfjhH/5h3H333di2bRvW19fx2GOPiTbH8r2i6x57frZt21YQfabTKX7wgx8ck/ftnHPOwWmnnYa7774bwLFxf66//np89rOfxZ/92Z+JAofzvFPbtm0zny/ad7RI7R5ZcskllwCAeIYO9R5tKuBaXl7GRRddhC9+8Ytpm/ceX/ziF7Fr164jOLLnhzz11FPYu3cvtm/fjosuugiTyUTcqzvvvBP79u07Zu/V2WefjW3btol78sQTT+BrX/tauie7du3CY489hltvvTW1uemmm+C9Ty/gsSQPPPAAHn30UWzfvh3A0X1/Qgi4/vrr8elPfxo33XQTzj77bLF/nndq165d+Pa3vy3A/fOf/zxOOukknH/++c/NhTyLMuseWXLbbbcBgHiGDvkeHSSZ5IjJH/3RH4WVlZXwsY99LNxxxx3hrW99azjllFMEQ+VYkV/91V8NN998c7jnnnvCX/zFX4TLL788nHbaaeGRRx4JIYTwtre9LZx55pnhpptuCt/4xjfCrl27wq5du47wqJ9defLJJ8M3v/nN8M1vfjMACP/6X//r8M1vfjPcd999IYQQ/vk//+fhlFNOCZ/5zGfCt771rfCzP/uz4eyzzw7PPPNM6uOqq64Kr3rVq8LXvva18OUvfzm87GUvCz//8z9/pC7psMrY/XnyySfDr/3ar4U9e/aEe+65J3zhC18IP/7jPx5e9rKXhdXV1dTH0Xp/rrvuunDyySeHm2++OTz88MPp34EDB1KbWe/UdDoNF1xwQbjiiivCbbfdFj73uc+FF73oReGGG244Epd02GXWPbr77rvDBz/4wfCNb3wj3HPPPeEzn/lMOOecc8JrX/va1MfhuEebDrhCCOF3f/d3w5lnnhmWl5fDT/7kT4avfvWrR3pIR0R+7ud+Lmzfvj0sLy+HM844I/zcz/1cuPvuu9P+Z555JvzKr/xK+KEf+qFw/PHHh7//9/9+ePjhh4/giJ99+bM/+7MAoPj3pje9KYQQKfH/7J/9s3D66aeHlZWVcNlll4U777xT9PHoo4+Gn//5nw8veMELwkknnRT+8T/+x+HJJ588Aldz+GXs/hw4cCBcccUV4UUvelGYTCbhrLPOCm95y1uKReHRen+s+wIgfPSjH01t5nmn7r333nD11VeH4447Lpx22mnhV3/1V0PXdc/x1Tw7Muse7du3L7z2ta8Np556alhZWQkvfelLw7vf/e7w+OOPi34O9R4typosZCELWchCNpVsKh/XQhaykIUsZCEL4FrIQhaykIVsKlkA10IWspCFLGRTyQK4FrKQhSxkIZtKFsC1kIUsZCEL2VSyAK6FLGQhC1nIppIFcC1kIQtZyEI2lSyAayELWchCFrKpZAFcC1nIQhaykE0lC+BayEIWspCFbCpZANdCFrKQhSxkU8kCuBaykIUsZCGbSv5/Xfbewpnna04AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with xarray.open_dataset(\n", + " \"https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/noaa-coastwatch-geopolar-sst-feedstock/noaa-coastwatch-geopolar-sst.zarr\",\n", + " engine=\"zarr\",\n", + " decode_coords=\"all\"\n", + ") as src:\n", + " \n", + " ds = src[\"analysed_sst\"][:1]\n", + " \n", + " # the SST dataset do not have a CRS info\n", + " # so we need to add it to `virtualy` within the Xarray DataArray\n", + " ds.rio.write_crs(\"epsg:4326\", inplace=True)\n", + " \n", + " with XarrayReader(ds) as dst:\n", + " print(dst.info())\n", + " img = dst.tile(1, 1, 2)\n", + "\n", + " plt.imshow(img.data_as_image())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4c3f03f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "py39", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "vscode": { + "interpreter": { + "hash": "2590a9e34ee6c8bdce5141410f2a072bbabd2a859a8a48acdaa85720923a90ef" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pyproject.toml b/pyproject.toml index 6856d248..1522029e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,10 +39,18 @@ test = [ "pytest-asyncio", "pytest-benchmark", "pytest-cov", + + # XarrayReader + "xarray", + "rioxarray", ] dev = [ "pre-commit", ] +xarray = [ + "xarray", + "rioxarray", +] docs = [ "nbconvert", "mkdocs", diff --git a/rio_tiler/io/__init__.py b/rio_tiler/io/__init__.py index 02ed733e..76e4bf57 100644 --- a/rio_tiler/io/__init__.py +++ b/rio_tiler/io/__init__.py @@ -3,6 +3,7 @@ from .base import BaseReader, MultiBandReader, MultiBaseReader # noqa from .rasterio import Reader from .stac import STACReader # noqa +from .xarray import XarrayReader # noqa # Keep Compatibility with <4.0 COGReader = Reader diff --git a/rio_tiler/io/xarray.py b/rio_tiler/io/xarray.py new file mode 100644 index 00000000..528892f8 --- /dev/null +++ b/rio_tiler/io/xarray.py @@ -0,0 +1,414 @@ +"""rio_tiler.io.xarray: Xarray Reader.""" +from __future__ import annotations + +import warnings +from typing import Any, Dict, List, Optional + +import attr +from morecantile import Tile, TileMatrixSet +from rasterio.crs import CRS +from rasterio.enums import Resampling +from rasterio.features import is_valid_geom +from rasterio.rio.overview import get_maximum_overview_level +from rasterio.transform import from_bounds, rowcol +from rasterio.warp import calculate_default_transform +from rasterio.warp import transform as transform_coords + +from rio_tiler.constants import WEB_MERCATOR_TMS, WGS84_CRS +from rio_tiler.errors import PointOutsideBounds, RioTilerError, TileOutsideBounds +from rio_tiler.io.base import BaseReader +from rio_tiler.models import BandStatistics, ImageData, Info, PointData +from rio_tiler.types import BBox + +try: + import xarray +except ImportError: # pragma: nocover + xarray = None # type: ignore + +try: + import rioxarray +except ImportError: # pragma: nocover + rioxarray = None # type: ignore + + +@attr.s +class XarrayReader(BaseReader): + """Xarray Reader. + + Attributes: + dataset (xarray.DataArray): Xarray DataArray dataset. + tms (morecantile.TileMatrixSet, optional): TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. + geographic_crs (rasterio.crs.CRS, optional): CRS to use as geographic coordinate system. Defaults to WGS84. + + Examples: + >>> ds = xarray.open_dataset( + "https://pangeo.blob.core.windows.net/pangeo-public/daymet-rio-tiler/na-wgs84.zarr", + engine="zarr", + decode_coords="all", + consolidated=True, + ) + da = ds["tmax"] + + with XarrayReader(da) as dst: + img = dst.tile(...) + + """ + + input: xarray.DataArray = attr.ib() + + tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) + geographic_crs: CRS = attr.ib(default=WGS84_CRS) + + _minzoom: int = attr.ib(init=False, default=None) + _maxzoom: int = attr.ib(init=False, default=None) + + _dims: List = attr.ib(init=False, factory=list) + + def __attrs_post_init__(self): + """Set bounds and CRS.""" + assert xarray is not None, "xarray must be installed to use XarrayReader" + assert rioxarray is not None, "rioxarray must be installed to use XarrayReader" + + self.bounds = tuple(self.input.rio.bounds()) + self.crs = self.input.rio.crs + + self._dims = [ + d + for d in self.input.dims + if d not in [self.input.rio.x_dim, self.input.rio.y_dim] + ] + + def _dst_geom_in_tms_crs(self): + """Return dataset info in TMS projection.""" + if self.crs != self.tms.rasterio_crs: + dst_affine, w, h = calculate_default_transform( + self.crs, + self.tms.rasterio_crs, + self.input.rio.width, + self.input.rio.height, + *self.bounds, + ) + else: + dst_affine = list(self.input.rio.transform()) + w = self.input.rio.width + h = self.input.rio.height + + return dst_affine, w, h + + def get_minzoom(self) -> int: + """Define dataset minimum zoom level.""" + if self._minzoom is None: + # We assume the TMS tilesize to be constant over all matrices + # ref: https://github.com/OSGeo/gdal/blob/dc38aa64d779ecc45e3cd15b1817b83216cf96b8/gdal/frmts/gtiff/cogdriver.cpp#L274 + tilesize = self.tms.tileMatrix[0].tileWidth + + try: + dst_affine, w, h = self._dst_geom_in_tms_crs() + + # The minzoom is defined by the resolution of the maximum theoretical overview level + # We assume `tilesize`` is the smallest overview size + overview_level = get_maximum_overview_level(w, h, minsize=tilesize) + + # Get the resolution of the overview + resolution = max(abs(dst_affine[0]), abs(dst_affine[4])) + ovr_resolution = resolution * (2**overview_level) + + # Find what TMS matrix match the overview resolution + self._minzoom = self.tms.zoom_for_res(ovr_resolution) + + except: # noqa + # if we can't get min/max zoom from the dataset we default to TMS maxzoom + warnings.warn( + "Cannot determine maxzoom based on dataset information, will default to TMS maxzoom.", + UserWarning, + ) + self._minzoom = self.tms.maxzoom + + return self._minzoom + + def get_maxzoom(self) -> int: + """Define dataset maximum zoom level.""" + if self._maxzoom is None: + # TODO: Get transform from the data and figure the MaxZoom + # self._minzoom = self.tms.zoom_for_res(resolution) + try: + dst_affine, _, _ = self._dst_geom_in_tms_crs() + + # The maxzoom is defined by finding the minimum difference between + # the raster resolution and the zoom level resolution + resolution = max(abs(dst_affine[0]), abs(dst_affine[4])) + self._maxzoom = self.tms.zoom_for_res(resolution) + + except: # noqa + # if we can't get min/max zoom from the dataset we default to TMS maxzoom + warnings.warn( + "Cannot determine maxzoom based on dataset information, will default to TMS maxzoom.", + UserWarning, + ) + self._maxzoom = self.tms.maxzoom + + return self._maxzoom + + @property + def minzoom(self): + """Return dataset minzoom.""" + return self.get_minzoom() + + @property + def maxzoom(self): + """Return dataset maxzoom.""" + return self.get_maxzoom() + + def info(self) -> Info: + """Return xarray.DataArray info.""" + bands = [str(band) for d in self._dims for band in self.input[d].values] + metadata = [band.attrs for d in self._dims for band in self.input[d]] + + meta = { + "bounds": self.geographic_bounds, + "minzoom": self.minzoom, + "maxzoom": self.maxzoom, + "band_metadata": [(f"b{ix}", v) for ix, v in enumerate(metadata, 1)], + "band_descriptions": [(f"b{ix}", v) for ix, v in enumerate(bands, 1)], + "dtype": str(self.input.dtype), + "nodata_type": "Nodata" if self.input.rio.nodata is not None else "None", + "name": self.input.name, + "count": self.input.rio.count, + "width": self.input.rio.width, + "height": self.input.rio.height, + "attrs": self.input.attrs, + } + return Info(**meta) + + def statistics( + self, + categorical: bool = False, + categories: Optional[List[float]] = None, + percentiles: List[int] = [2, 98], + hist_options: Optional[Dict] = None, + max_size: int = 1024, + **kwargs: Any, + ) -> Dict[str, BandStatistics]: + """Return bands statistics from a dataset.""" + raise NotImplementedError + + def tile( + self, + tile_x: int, + tile_y: int, + tile_z: int, + tilesize: int = 256, + resampling_method: Resampling = "nearest", + ) -> ImageData: + """Read a Web Map tile from a dataset. + + Args: + tile_x (int): Tile's horizontal index. + tile_y (int): Tile's vertical index. + tile_z (int): Tile's zoom level index. + tilesize (int, optional): Output image size. Defaults to `256`. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + + Returns: + rio_tiler.models.ImageData: ImageData instance with data, mask and tile spatial info. + + """ + if not self.tile_exists(tile_x, tile_y, tile_z): + raise TileOutsideBounds( + f"Tile {tile_z}/{tile_x}/{tile_y} is outside bounds" + ) + + tile_bounds = self.tms.xy_bounds(Tile(x=tile_x, y=tile_y, z=tile_z)) + + # Create source array by clipping the xarray dataset to extent of the tile. + ds = self.input.rio.clip_box(*tile_bounds, crs=self.tms.rasterio_crs) + ds = ds.rio.reproject( + self.tms.rasterio_crs, + shape=(tilesize, tilesize), + transform=from_bounds(*tile_bounds, height=tilesize, width=tilesize), + resampling=Resampling[resampling_method], + ) + + # Forward valid_min/valid_max to the ImageData object + minv, maxv = ds.attrs.get("valid_min"), ds.attrs.get("valid_max") + stats = None + if minv is not None and maxv is not None: + stats = ((minv, maxv),) * ds.rio.count + + band_names = [str(band) for d in self._dims for band in self.input[d].values] + + return ImageData( + ds.data, + bounds=tile_bounds, + crs=self.tms.rasterio_crs, + dataset_statistics=stats, + band_names=band_names, + ) + + def part( + self, + bbox: BBox, + dst_crs: Optional[CRS] = None, + bounds_crs: CRS = WGS84_CRS, + resampling_method: Resampling = "nearest", + ) -> ImageData: + """Read part of a dataset. + + Args: + bbox (tuple): Output bounds (left, bottom, right, top) in target crs ("dst_crs"). + dst_crs (rasterio.crs.CRS, optional): Overwrite target coordinate reference system. + bounds_crs (rasterio.crs.CRS, optional): Bounds Coordinate Reference System. Defaults to `epsg:4326`. + resampling_method (rasterio.enums.Resampling, optional): Rasterio's resampling algorithm. Defaults to `nearest`. + + Returns: + rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. + + """ + dst_crs = dst_crs or bounds_crs + ds = self.input.rio.clip_box(*bbox, crs=bounds_crs) + + if dst_crs != self.crs: + dst_transform, w, h = calculate_default_transform( + self.crs, + dst_crs, + ds.rio.width, + ds.rio.height, + *ds.rio.bounds(), + ) + ds = ds.rio.reproject( + dst_crs, + shape=(h, w), + transform=dst_transform, + resampling=Resampling[resampling_method], + ) + + # Forward valid_min/valid_max to the ImageData object + minv, maxv = ds.attrs.get("valid_min"), ds.attrs.get("valid_max") + stats = None + if minv is not None and maxv is not None: + stats = ((minv, maxv),) * ds.rio.count + + band_names = [str(band) for d in self._dims for band in self.input[d].values] + + return ImageData( + ds.data, + bounds=ds.rio.bounds(), + crs=ds.rio.crs, + dataset_statistics=stats, + band_names=band_names, + ) + + def preview( + self, + max_size: int = 1024, + height: Optional[int] = None, + width: Optional[int] = None, + ) -> ImageData: + """Return a preview of a dataset. + + Args: + max_size (int, optional): Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. + height (int, optional): Output height of the array. + width (int, optional): Output width of the array. + + Returns: + rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. + + """ + raise NotImplementedError + + def point( + self, + lon: float, + lat: float, + coord_crs: CRS = WGS84_CRS, + ) -> PointData: + """Read a pixel value from a dataset. + + Args: + lon (float): Longitude. + lat (float): Latitude. + coord_crs (rasterio.crs.CRS, optional): Coordinate Reference System of the input coords. Defaults to `epsg:4326`. + + Returns: + PointData + + """ + ds_lon, ds_lat = transform_coords(coord_crs, self.crs, [lon], [lat]) + + if not ( + (self.bounds[0] < ds_lon[0] < self.bounds[2]) + and (self.bounds[1] < ds_lat[0] < self.bounds[3]) + ): + raise PointOutsideBounds("Point is outside dataset bounds") + + x, y = rowcol(self.input.rio.transform(), ds_lon, ds_lat) + + band_names = [str(band) for d in self._dims for band in self.input[d].values] + + return PointData( + self.input.data[:, y[0], y[0]], + coordinates=(lon, lat), + crs=coord_crs, + band_names=band_names, + ) + + def feature( + self, + shape: Dict, + dst_crs: Optional[CRS] = None, + shape_crs: CRS = WGS84_CRS, + resampling_method: Resampling = "nearest", + ) -> ImageData: + """Read part of a dataset defined by a geojson feature. + + Args: + shape (dict): Valid GeoJSON feature. + dst_crs (rasterio.crs.CRS, optional): Overwrite target coordinate reference system. + shape_crs (rasterio.crs.CRS, optional): Input geojson coordinate reference system. Defaults to `epsg:4326`. + + Returns: + rio_tiler.models.ImageData: ImageData instance with data, mask and input spatial info. + + """ + if not dst_crs: + dst_crs = shape_crs + + if "geometry" in shape: + shape = shape["geometry"] + + if not is_valid_geom(shape): + raise RioTilerError("Invalid geometry") + + ds = self.input.rio.clip([shape], crs=shape_crs) + + if dst_crs != self.crs: + dst_transform, w, h = calculate_default_transform( + self.crs, + dst_crs, + ds.rio.width, + ds.rio.height, + *ds.rio.bounds(), + ) + ds = ds.rio.reproject( + dst_crs, + shape=(h, w), + transform=dst_transform, + resampling=Resampling[resampling_method], + ) + + # Forward valid_min/valid_max to the ImageData object + minv, maxv = ds.attrs.get("valid_min"), ds.attrs.get("valid_max") + stats = None + if minv is not None and maxv is not None: + stats = ((minv, maxv),) * ds.rio.count + + band_names = [str(band) for d in self._dims for band in self.input[d].values] + + return ImageData( + ds.data, + bounds=ds.rio.bounds(), + crs=ds.rio.crs, + dataset_statistics=stats, + band_names=band_names, + ) diff --git a/rio_tiler/models.py b/rio_tiler/models.py index 4fe5a718..1dc314ef 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -168,7 +168,7 @@ def _validate_coordinates(self, attribute, value): @band_names.default def _default_names(self): - return [f"{ix + 1}" for ix in range(self.count)] + return [f"b{ix + 1}" for ix in range(self.count)] @mask.default def _default_mask(self): @@ -509,7 +509,6 @@ def render( data = self.data.copy() mask = self.mask.copy() - datatype_range = self.dataset_statistics or (dtype_ranges[str(data.dtype)],) if not colormap: diff --git a/tests/test_io_xarray.py b/tests/test_io_xarray.py new file mode 100644 index 00000000..c4f1cf1b --- /dev/null +++ b/tests/test_io_xarray.py @@ -0,0 +1,87 @@ +"""tests rio_tiler.io.xarray.XarrayReader""" + +import os +from datetime import datetime + +import numpy +import xarray + +from rio_tiler.io import XarrayReader + +PREFIX = os.path.join(os.path.dirname(__file__), "fixtures") + +planet = os.path.join(PREFIX, "PLANET_SCOPE_3D.nc") + + +def test_xarray_reader(): + """test XarrayReader.""" + arr = numpy.random.randn(1, 33, 35) + data = xarray.DataArray( + arr, + dims=("time", "y", "x"), + coords={ + "x": list(range(-170, 180, 10)), + "y": list(range(-80, 85, 5)), + "time": [datetime(2022, 1, 1)], + }, + ) + data.attrs.update({"valid_min": arr.min(), "valid_max": arr.max()}) + + data.rio.write_crs("epsg:4326", inplace=True) + with XarrayReader(data) as dst: + info = dst.info() + assert info.minzoom == 0 + assert info.maxzoom == 0 + assert info.band_metadata == [("b1", {})] + assert info.band_descriptions == [("b1", "2022-01-01T00:00:00.000000000")] + assert info.height == 33 + assert info.width == 35 + assert info.count == 1 + assert info.attrs + + with XarrayReader(data) as dst: + img = dst.tile(0, 0, 0) + assert img.count == 1 + assert img.width == 256 + assert img.height == 256 + assert img.band_names == ["2022-01-01T00:00:00.000000000"] + assert img.dataset_statistics == ((arr.min(), arr.max()),) + + img = dst.part((-160, -80, 160, 80)) + assert img.count == 1 + assert img.band_names == ["2022-01-01T00:00:00.000000000"] + + pt = dst.point(0, 0) + assert pt.count == 1 + assert pt.band_names == ["2022-01-01T00:00:00.000000000"] + assert pt.coordinates + + feat = { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-92.46093749999999, 72.91963546581484], + [-148.0078125, 33.137551192346145], + [-143.08593749999997, -28.613459424004414], + [43.9453125, -47.04018214480665], + [142.734375, -12.897489183755892], + [157.5, 68.13885164925573], + [58.71093750000001, 74.95939165894974], + [-40.42968749999999, 75.14077784070429], + [-92.46093749999999, 72.91963546581484], + ] + ], + }, + } + img = dst.feature(feat) + assert img.count == 1 + assert img.band_names == ["2022-01-01T00:00:00.000000000"] + + img = dst.feature(feat, dst_crs="epsg:3857") + assert img.count == 1 + assert img.band_names == ["2022-01-01T00:00:00.000000000"] + assert img.crs.to_epsg() == 3857 + print(img) From ebce5ba661295c9ff5b3dcf34d2caede48aed124 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Wed, 19 Oct 2022 10:09:06 +0200 Subject: [PATCH 20/23] add migration docs --- .github/workflows/deploy_mkdocs.yml | 1 + .gitignore | 2 +- CHANGES.md | 2 +- CONTRIBUTING.md | 1 + docs/mkdocs.yml | 1 + docs/src/v4_migration.md | 261 ++++++++++++++++++++++++++++ 6 files changed, 266 insertions(+), 2 deletions(-) create mode 100644 docs/src/v4_migration.md diff --git a/.github/workflows/deploy_mkdocs.yml b/.github/workflows/deploy_mkdocs.yml index 81a01ebb..336a99d1 100644 --- a/.github/workflows/deploy_mkdocs.yml +++ b/.github/workflows/deploy_mkdocs.yml @@ -46,6 +46,7 @@ jobs: rio_tiler.io.base \ rio_tiler.io.rasterio \ rio_tiler.io.stac \ + rio_tiler.io.xarray \ rio_tiler.mosaic.methods.base \ rio_tiler.mosaic.methods.defaults \ rio_tiler.mosaic.reader \ diff --git a/.gitignore b/.gitignore index 5f96ea0b..87350fa2 100644 --- a/.gitignore +++ b/.gitignore @@ -108,4 +108,4 @@ tests/benchmarks/data/* tests/fixtures/mask* .vscode/settings.json -docs/api* +docs/src/api/* diff --git a/CHANGES.md b/CHANGES.md index 4b096aa1..5615dfdc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -118,7 +118,7 @@ # now with rasterio.open("cog.tif") as src:: - v, band_names = rio_tiler.reader.point(10.20, -42) + v = rio_tiler.reader.point(src, (10.20, -42)) print(v) >>> PointData( data=array([3744], dtype=uint16), diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ffac0b0b..f2c1e08d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -58,6 +58,7 @@ pdocs as_markdown \ rio_tiler.io.base \ rio_tiler.io.rasterio \ rio_tiler.io.stac \ + rio_tiler.io.xarray \ rio_tiler.mosaic.methods.base \ rio_tiler.mosaic.methods.defaults \ rio_tiler.mosaic.reader \ diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 0289ac90..4d27f1b9 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -64,6 +64,7 @@ nav: - rio_tiler.utils: api/rio_tiler/utils.md - Migration from v1.0 to v2.0: 'v2_migration.md' - Migration from v2.0 to v3.0: 'v3_migration.md' + - Migration from v3.0 to v4.0: 'v4_migration.md' - Development - Contributing: 'contributing.md' - Release Notes: 'release-notes.md' diff --git a/docs/src/v4_migration.md b/docs/src/v4_migration.md new file mode 100644 index 00000000..273ac877 --- /dev/null +++ b/docs/src/v4_migration.md @@ -0,0 +1,261 @@ + +# Breaking changes + +`rio-tiler` version 4.0 introduced [many breaking changes](release-notes.md). This +document aims to help with migrating your code to use `rio-tiler` 4.0. + +## Python >=3.8 + +As for rasterio, we removed python 3.7 support (https://github.com/rasterio/rasterio/issues/2445) + +## *COG*Reader -> **Reader** + +Because the main reader will not only work with COG but most of GDAL supported raster, we choose to rename it to `Reader`. + +```python +# before +from rio_tiler.io import COGReader +from rio_tiler.io.cogeo import COGReader + +# now +from rio_tiler.io import Reader +from rio_tiler.io.rasterio import Reader +``` + +Note: We created `rio_tiler.io.COGReader` alias to `Reader` for compatibility. + +## rio_tiler.io.cogeo -> rio_tiler.io.**rasterio** + +Reader's submodule now reflect the backend they use (rasterio, xarray, stac, ...) + +```python +# before +from rio_tiler.io.cogeo import COGReader + +# now +from rio_tiler.io.rasterio import Reader +``` + +## MultiBaseReader **Expressions** + +We updated the `expression` format for `MultiBaseReader` (e.g STAC) to include **band names** and not only the asset name + +```python +# before +with STACReader("stac.json") as stac: + stac.tile(701, 102, 8, expression="green/red") + +# now +with STACReader("stac.json") as stac: + stac.tile(701, 102, 8, expression="green_b1/red_b1") +``` + +In addition we also removed `asset_expression` option in `MultiBaseReader`. This can be achieved directly using expression. + +```python +# before +with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: + img = stac.tile( + 145, + 103, + 8, + tilesize=256, + assets=["B01", "B02"], + asset_expression={ + "B01": "b1+500", # add 500 to the first band + "B02": "b1-100", # substract 100 to the first band + } + ) + +# now +with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: + img = stac.tile( + 145, + 103, + 8, + tilesize=256, + expression="B01_b1+500;B02_b1-100", + ) +``` + +## No more GCPCOGReader + +`rio_tiler.io.Reader` will now recognize if the files has internal GCPS. + +```python +# before +from rio_tiler.io import GCPCOGReader + +with GCPCOGReader("my_tif_with_gcps.tif") as src: + pass + +# now +from rio_tiler.io import Reader + +with Reader("my_tif_with_gcps.tif") as src: + pass +``` + +## **PointData** object + +As for method returning `images`, methods returning point values (`Reader.point()`) now return a `PointData` object. + +```python +# before +with COGReader("cog.tif") as cog: + print(cog.point(10.20, -42.0)) + >>> [0, 0, 0] + +# now +with Reader("cog.tif") as cog: + print(cog.point(10.20, -42.0)) + >>> PointData( + data=array([3744], dtype=uint16), + mask=array([255], dtype=uint8), + band_names=['b1'], + coordinates=(10.20, -42), + crs=CRS.from_epsg(4326), + assets=['cog.tif'], + metadata={} + ) +``` + +## Low-level reader methods return ImageData and PointData objects + +`rio_tiler.reader.read` and `rio_tiler.readers.part` now return `ImageData` object instead of `Tuple[ndarray, ndarray]`. + +```python +from rio_tiler.reader import read, part, point +from rio_tiler.models import ImageData, PointData + +# before +with rasterio.open("image.tif") as src: + data, mask = read(src) + pts = point(10.20, -42.0) + print(pts) + >>> [0, 0, 0] + +# now +with rasterio.open("image.tif") as src: + img = read(src) + assert isinstance(img, ImageData) + + pts = point(src, (10.20, -42.0)) + assert isinstance(pts, PointData) + print(pts) + >>> PointData( + data=array([3744], dtype=uint16), + mask=array([255], dtype=uint8), + band_names=['b1'], + coordinates=(10.20, -42), + crs=CRS.from_epsg(4326), + assets=['cog.tif'], + metadata={} + ) +``` + +## **Reader** options + +We removed `nodata`, `unscale`, `resampling_method`, `vrt_options` and `post_process` options to `rio_tiler.io.Reader` init method and replaced with a global `options`: +```python +# before +with COGReader("cog.tif", nodata=1, resampling_method="bilinear") as cog: + data = cog.preview() + +# now +with Reader(COGEO, options={"nodata": 1, "resampling_method": "bilinear"}) as cog: + data = cog.preview() +``` + +## Base classes **minzoom** and **maxzoom** + +We moved min/max zoom attribute from the `SpatialMixin` to the base classes definition directly. This means that each class should now take care of the definition of those two variables. + +```python +# before +@attr.s +class BandFileReader(MultiBandReader): + """Test MultiBand""" + + input: str = attr.ib() + tms: morecantile.TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) + + reader: Type[BaseReader] = attr.ib(init=False, default=Reader) + reader_options: Dict = attr.ib(factory=dict) + + def __attrs_post_init__(self): + ... + +# now +@attr.s +class BandFileReader(MultiBandReader): + """Test MultiBand""" + + input: str = attr.ib() + tms: morecantile.TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) + + reader: Type[BaseReader] = attr.ib(init=False, default=Reader) + reader_options: Dict = attr.ib(factory=dict) + + minzoom: int = attr.ib() + maxzoom: int = attr.ib() + + @minzoom.default + def _minzoom(self): + return self.tms.minzoom + + @maxzoom.default + def _maxzoom(self): + return self.tms.maxzoom + + def __attrs_post_init__(self): + ... +``` + +# New Features + +## Non-Geo reader + +Because not all raster are geo-referenced, we added `rio_tiler.io.ImageReader` to allow opening and reading non-geo images. All methods are returning data in the pixel coordinate system. + +```python +with ImageReader("image.jpg") as src: + info = src.info() + + stats = src.statistics() + + # Part of the image (Origin is top-lef, coordinates should be in form of (left, bottom, right, top)) + im = src.part((0, 100, 100, 0)) + + # 256x256 Tile (Origin of the TMS is top-lef) + im = src.tile(0, 0, src.maxzoom) + + # read pixel x=10, y=5 (Origin is top-left) + pt = src.point(10, 5) +``` + +## Xarray reader + +We added an *optional* xarray compatible reader in rio-tiler v4.0. The reader takes a xarray.DataArray as input which should have a CRS and geo-spatial variables (x,y or longitude,latitude). + +```python +import rioxarray +import xarray +from rio_tiler.io import XarrayReader + +with xarray.open_dataset( + "https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/noaa-coastwatch-geopolar-sst-feedstock/noaa-coastwatch-geopolar-sst.zarr", + engine="zarr", + decode_coords="all" +) as src: + ds = src["analysed_sst"][:1] + # the SST dataset do not have a CRS info + # so we need to add it to `virtualy` within the Xarray DataArray + ds.rio.write_crs("epsg:4326", inplace=True) + + with XarrayReader(ds) as dst: + print(dst.info()) + img = dst.tile(1, 1, 2) +``` + +Note: Users might experience some really bad performance depending on the chunking of the original zarr. From c6c4e666a54e060a2afcd8fac90365f2d8a574b3 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Wed, 19 Oct 2022 11:17:58 +0200 Subject: [PATCH 21/23] update readme --- README.md | 54 ++++++++++++++++++++++++++++++++-------- rio_tiler/io/__init__.py | 2 +- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a86573e9..2d56649a 100644 --- a/README.md +++ b/README.md @@ -47,16 +47,16 @@ data and metadata from any raster source supported by Rasterio/GDAL. This includes local and remote files via HTTP, AWS S3, Google Cloud Storage, etc. -At the low level, `rio-tiler` is *just* a wrapper around the [rasterio.vrt.WarpedVRT](https://github.com/rasterio/rasterio/blob/5b76d05fb374e64602166d6cd880c38424fad39b/rasterio/vrt.py#L15) class, which can be useful for doing re-projection and/or property overriding (e.g nodata value). +At the low level, `rio-tiler` is *just* a wrapper around the [rasterio](https://github.com/rasterio/rasterio) and [GDAL](https://github.com/osgeo/gdal) libraries. ## Features - Read any dataset supported by GDAL/Rasterio ```python - from rio_tiler.io import COGReader + from rio_tiler.io import Reader - with COGReader("my.tif") as image: + with Reader("my.tif") as image: print(image.dataset) # rasterio opened dataset img = image.read() # similar to rasterio.open("my.tif").read() but returns a rio_tiler.models.ImageData object ``` @@ -64,9 +64,9 @@ At the low level, `rio-tiler` is *just* a wrapper around the [rasterio.vrt.Warpe - User friendly `tile`, `part`, `feature`, `point` reading methods ```python - from rio_tiler.io import COGReader + from rio_tiler.io import Reader - with COGReader("my.tif") as image: + with Reader("my.tif") as image: img = image.tile(x, y, z) # read mercator tile z-x-y img = image.part(bbox) # read the data intersecting a bounding box img = image.feature(geojson_feature) # read the data intersecting a geojson feature @@ -76,9 +76,9 @@ At the low level, `rio-tiler` is *just* a wrapper around the [rasterio.vrt.Warpe - Enable property assignment (e.g nodata) on data reading ```python - from rio_tiler.io import COGReader + from rio_tiler.io import Reader - with COGReader("my.tif") as image: + with Reader("my.tif") as image: img = image.tile(x, y, z, nodata=-9999) # read mercator tile z-x-y ``` @@ -107,14 +107,46 @@ At the low level, `rio-tiler` is *just* a wrapper around the [rasterio.vrt.Warpe ) ``` +- [Xarray](https://xarray.dev) support + + ```python + import xarray + from rio_tiler.io import XarrayReader + + ds = xarray.open_dataset( + "https://pangeo.blob.core.windows.net/pangeo-public/daymet-rio-tiler/na-wgs84.zarr/", + engine="zarr", + decode_coords="all", + consolidated=True, + ) + da = ds["tmax"] + with XarrayReader(da) as dst: + print(dst.info()) + img = dst.tile(1, 1, 2) + ``` + *Note: The XarrayReader needs optional dependencies to be installed `pip install rio-tiler["xarray"]`.* + +- Non-Geo Image support + + ```python + from rio_tiler.io import ImageReader + + with ImageReader("image.jpeg") as src: + im = src.tile(0, 0, src.maxzoom) # read top-left `tile` + im = src.part((0, 100, 100, 0)) # read top-left 100x100 pixels + pt = src.point(0, 0) # read pixel value + ``` + + *Note: `ImageReader` is also compatible with proper geo-referenced raster datasets.* + - [Mosaic](https://cogeotiff.github.io/rio-tiler/mosaic/) (merging or stacking) ```python - from rio_tiler.io import COGReader + from rio_tiler.io import Reader from rio_tiler.mosaic import mosaic_reader def reader(file, x, y, z, **kwargs): - with COGReader(file) as image: + with Reader(file) as image: return image.tile(x, y, z, **kwargs) img, assets = mosaic_reader(["image1.tif", "image2.tif"], reader, x, y, z) @@ -124,11 +156,11 @@ At the low level, `rio-tiler` is *just* a wrapper around the [rasterio.vrt.Warpe ```python import morecantile - from rio_tiler.io import COGReader + from rio_tiler.io import Reader # Use EPSG:4326 (WGS84) grid wgs84_grid = morecantile.tms.get("WorldCRS84Quad") - with COGReader("my.tif", tms=wgs84_grid) as cog: + with Reader("my.tif", tms=wgs84_grid) as cog: img = cog.tile(1, 1, 1) ``` diff --git a/rio_tiler/io/__init__.py b/rio_tiler/io/__init__.py index 76e4bf57..43b6c801 100644 --- a/rio_tiler/io/__init__.py +++ b/rio_tiler/io/__init__.py @@ -1,7 +1,7 @@ """rio-tiler.io""" from .base import BaseReader, MultiBandReader, MultiBaseReader # noqa -from .rasterio import Reader +from .rasterio import ImageReader, Reader # noqa from .stac import STACReader # noqa from .xarray import XarrayReader # noqa From ca45c7063fd737ebc568ad2cbc3214a6530383cf Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Wed, 19 Oct 2022 14:57:09 +0200 Subject: [PATCH 22/23] update notebooks --- docs/mkdocs.yml | 3 +- .../src/examples/Using-nonEarth-dataset.ipynb | 35 +-- .../examples/Using-rio-tiler-STACReader.ipynb | 32 ++- .../src/examples/Using-rio-tiler-mosaic.ipynb | 16 +- docs/src/examples/Using-rio-tiler.ipynb | 248 +++++++++++++----- docs/src/examples/Using-tms.ipynb | 93 +++++-- 6 files changed, 290 insertions(+), 137 deletions(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 4d27f1b9..a269cc9d 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -51,8 +51,9 @@ nav: - rio_tiler.models: api/rio_tiler/models.md - rio_tiler.io: - rio_tiler.io.base: api/rio_tiler/io/base.md - - rio_tiler.io.cogeo: api/rio_tiler/io/cogeo.md + - rio_tiler.io.rasterio: api/rio_tiler/io/rasterio.md - rio_tiler.io.stac: api/rio_tiler/io/stac.md + - rio_tiler.io.xarray: api/rio_tiler/io/xarray.md - rio_tiler.mosaic: - rio_tiler.mosaic.reader: api/rio_tiler/mosaic/reader.md - rio_tiler.mosaic.methods: diff --git a/docs/src/examples/Using-nonEarth-dataset.ipynb b/docs/src/examples/Using-nonEarth-dataset.ipynb index 070abace..48e287cf 100644 --- a/docs/src/examples/Using-nonEarth-dataset.ipynb +++ b/docs/src/examples/Using-nonEarth-dataset.ipynb @@ -21,7 +21,7 @@ "# Requirements\n", "\n", "To be able to run this notebook you'll need the following requirements:\n", - "- rio-tiler~= 3.0\n", + "- rio-tiler~=4.0\n", "- ipyleaflet\n", "- matplotlib" ] @@ -44,14 +44,14 @@ "outputs": [], "source": [ "%pylab inline\n", - "from rio_tiler.io import COGReader\n", + "from rio_tiler.io import Reader\n", "\n", "# In order to fully work, we'll need to build a custom TileMatrixSet\n", "from morecantile import TileMatrixSet\n", "from pyproj import CRS\n", "\n", "# For this DEMO we will use this file\n", - "src_path = \"https://asc-jupiter.s3-us-west-2.amazonaws.com/europa/galileo_voyager/controlled_mosaics/11ESCOLORS01-02_GalileoSSI_Equi-cog.tif\"" + "src_path = \"https://raw.githubusercontent.com/cogeotiff/rio-tiler/master/tests/fixtures/cog_nonearth.tif\"" ] }, { @@ -60,12 +60,12 @@ "metadata": {}, "outputs": [], "source": [ - "\n", "# Let's first try with default\n", - "# We should see 2 different warnings here\n", - "# - UserWarning: Cannot dertermine min/max zoom based on dataset informations: We cannot get default Zooms in WebMercator projection\n", + "# We should see 3 different warnings here\n", "# - UserWarning: Cannot dertermine bounds in WGS84: There is no existing transformation to WGS84\n", - "with COGReader(src_path) as cog:\n", + "# - UserWarning: Cannot dertermine minzoom based on dataset informations: We cannot get default Zooms in WebMercator projection\n", + "# - UserWarning: Cannot dertermine maxzoom based on dataset informations: We cannot get default Zooms in WebMercator projection\n", + "with Reader(src_path) as cog:\n", " print(cog.info().json())" ] }, @@ -75,7 +75,6 @@ "metadata": {}, "outputs": [], "source": [ - "\n", "# Create a CUSTOM TMS using the europa ESRI:104915 projection\n", "europa_crs = CRS.from_authority(\"ESRI\", 104915)\n", "europa_tms = TileMatrixSet.custom(\n", @@ -85,8 +84,8 @@ "# Use Custom TMS instead of Web Mercator\n", "# We should see 2 different warnings here\n", "# - UserWarning: Could not create coordinate Transformer from input CRS to WGS84: This is from morecantile. It means some methods won't be available but we can ignore. \n", - "# - UserWarning: Cannot dertermine bounds in WGS84: Same as before. the `cog.geographic` property will return default (-180.0, -90.0, 180.0, 90.0)\n", - "with COGReader(src_path, tms=europa_tms) as cog:\n", + "# - UserWarning: Cannot dertermine bounds in WGS84: Same as before. the `cog.geographic_bounds` property will return default (-180.0, -90.0, 180.0, 90.0)\n", + "with Reader(src_path, tms=europa_tms) as cog:\n", " print(cog.info().json())\n", " img = cog.preview()\n", " imshow(img.data_as_image())" @@ -95,20 +94,22 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "# Read a Tile\n", "from rasterio.warp import transform_bounds\n", "\n", - "with COGReader(src_path, tms=europa_tms) as cog:\n", + "with Reader(src_path, tms=europa_tms) as cog:\n", " # get dataset bounds in TMS's CRS projection\n", " bounds_in_tms = transform_bounds(cog.crs, europa_tms.rasterio_crs, *cog.bounds)\n", " tile = cog.tms._tile(bounds_in_tms[0], bounds_in_tms[1], cog.minzoom)\n", " print(tile)\n", "\n", " img = cog.tile(tile.x, tile.y, tile.z)\n", - " imshow(img.data_as_image())\n" + " imshow(img.data_as_image())" ] }, { @@ -150,7 +151,7 @@ "from tornado.httpserver import HTTPServer\n", "from tornado.concurrent import run_on_executor\n", "\n", - "from rio_tiler.io import COGReader\n", + "from rio_tiler.io import Reader\n", "from rio_tiler.errors import TileOutsideBounds\n", "from rio_tiler.profiles import img_profiles\n", "\n", @@ -195,7 +196,7 @@ " def _get_tile(self, z, x, y):\n", "\n", " try:\n", - " with COGReader(self.url, tms=europa_tms) as cog:\n", + " with Reader(self.url, tms=europa_tms) as cog:\n", " data = cog.tile(x, y, z)\n", " except TileOutsideBounds:\n", " raise web.HTTPError(404)\n", @@ -267,7 +268,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -281,7 +282,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/src/examples/Using-rio-tiler-STACReader.ipynb b/docs/src/examples/Using-rio-tiler-STACReader.ipynb index 43169315..6354400e 100644 --- a/docs/src/examples/Using-rio-tiler-STACReader.ipynb +++ b/docs/src/examples/Using-rio-tiler-STACReader.ipynb @@ -53,7 +53,7 @@ "source": [ "from rio_tiler.io import STACReader\n", "from rio_tiler.profiles import img_profiles\n", - "from rio_tiler.models import ImageData, Metadata" + "from rio_tiler.models import ImageData" ] }, { @@ -191,10 +191,10 @@ "source": [ "fig, axs = plt.subplots(1, 4, sharey=True, tight_layout=True, dpi=150)\n", "\n", - "axs[0].plot(meta[\"B01\"][\"1\"].histogram[1][0:-1], meta[\"B01\"][\"1\"].histogram[0])\n", - "axs[1].plot(meta[\"B02\"][\"1\"].histogram[1][0:-1], meta[\"B02\"][\"1\"].histogram[0])\n", - "axs[2].plot(meta[\"B03\"][\"1\"].histogram[1][0:-1], meta[\"B03\"][\"1\"].histogram[0])\n", - "axs[3].plot(meta[\"B04\"][\"1\"].histogram[1][0:-1], meta[\"B04\"][\"1\"].histogram[0])" + "axs[0].plot(meta[\"B01\"][\"b1\"].histogram[1][0:-1], meta[\"B01\"][\"b1\"].histogram[0])\n", + "axs[1].plot(meta[\"B02\"][\"b1\"].histogram[1][0:-1], meta[\"B02\"][\"b1\"].histogram[0])\n", + "axs[2].plot(meta[\"B03\"][\"b1\"].histogram[1][0:-1], meta[\"B03\"][\"b1\"].histogram[0])\n", + "axs[3].plot(meta[\"B04\"][\"b1\"].histogram[1][0:-1], meta[\"B04\"][\"b1\"].histogram[0])" ] }, { @@ -256,11 +256,12 @@ "outputs": [], "source": [ "# The sentinel data is stored as UInt16, we need to do some data rescaling to display data from 0 to 255\n", - "print(img.data.min(), img.data.max())\n", + "print(img.data.min(), img.data.max())x\n", + "\n", + "img.rescale(in_range=((0, 10000),))\n", + "print(img.min(), img.max())\n", "\n", - "image = img.post_process(in_range=((0, 10000),))\n", - "image = image.data_as_image()\n", - "print(image.min(), image.max())\n", + "image = img.data_as_image()\n", "imshow(image)" ] }, @@ -279,14 +280,16 @@ "source": [ "with STACReader(src_path) as stac:\n", " # By default `preview()` will return an array with its longest dimension lower or equal to 1024px\n", - " img = stac.preview(expression=\"(B08-B04)/(B08+B04)\", max_size=256)\n", + " img = stac.preview(expression=\"(B08_b1-B04_b1)/(B08_b1+B04_b1)\", max_size=256)\n", " print(img.data.shape)\n", " # learn more about the ImageData model https://cogeotiff.github.io/rio-tiler/models/#imagedata\n", " assert isinstance(img, ImageData)\n", "\n", "# NDVI data range should be between -1 and 1\n", - "image = img.post_process(in_range=((-1,1),))\n", - "image = image.data_as_image()\n", + "print(img.data.min(), img.data.max())\n", + "\n", + "img.rescale(in_range=((-1,1),))\n", + "image = img.data_as_image()\n", "imshow(image)" ] }, @@ -303,7 +306,8 @@ "hash": "e5a596c8625da0593f23bdd5ea51ce5c4572779fa5edc69fb6a18fc94feb7fb6" }, "kernelspec": { - "display_name": "Python 3.8.2 64-bit", + "display_name": "Python 3 (ipykernel)", + "language": "python", "name": "python3" }, "language_info": { @@ -316,7 +320,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/src/examples/Using-rio-tiler-mosaic.ipynb b/docs/src/examples/Using-rio-tiler-mosaic.ipynb index 00732e40..ce25ebe0 100755 --- a/docs/src/examples/Using-rio-tiler-mosaic.ipynb +++ b/docs/src/examples/Using-rio-tiler-mosaic.ipynb @@ -35,12 +35,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Requirements\n", + "#### Requirements\n", "\n", "To be able to run this notebook you'll need the following requirements:\n", "- rasterio\n", "- ipyleaflet\n", - "- rio-tiler~= 3.0" + "- rio-tiler~= 4.0" ] }, { @@ -65,7 +65,7 @@ "\n", "import morecantile\n", "\n", - "from rio_tiler.io import COGReader, STACReader\n", + "from rio_tiler.io import Reader, STACReader\n", "from rio_tiler.mosaic import mosaic_reader\n", "from rio_tiler.mosaic.methods import defaults\n", "from rio_tiler.mosaic.methods.base import MosaicMethodBase\n", @@ -269,7 +269,7 @@ "outputs": [], "source": [ "def tiler(asset, *args, **kwargs):\n", - " with COGReader(asset) as cog:\n", + " with Reader(asset) as cog:\n", " return cog.tile(*args, **kwargs)" ] }, @@ -423,7 +423,7 @@ "# Because we need to use multiple STAC assets, it's easier to use the STACReader\n", "def custom_tiler(asset, *args, **kwargs):\n", " with STACReader(asset) as stac:\n", - " return stac.tile(*args, expression=\"(B08-B04)/(B08+B04)\")\n", + " return stac.tile(*args, expression=\"(B08_b1-B04_b1)/(B08_b1+B04_b1)\")\n", "\n", "tile = tiles[0]\n", "\n", @@ -465,7 +465,7 @@ "def custom_tiler(asset, *args, **kwargs):\n", " with STACReader(asset) as stac:\n", " img = stac.tile(*args, assets=\"visual\")\n", - " ndvi = stac.tile(*args, expression=\"(B08-B04)/(B08+B04)\")\n", + " ndvi = stac.tile(*args, expression=\"(B08_b1-B04_b1)/(B08_b1+B04_b1)\")\n", " return ImageData(numpy.concatenate((img.data, ndvi.data)), img.mask, crs=img.crs, bounds=img.bounds)" ] }, @@ -552,7 +552,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -566,7 +566,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/src/examples/Using-rio-tiler.ipynb b/docs/src/examples/Using-rio-tiler.ipynb index 472f8bcd..d7cfd44f 100644 --- a/docs/src/examples/Using-rio-tiler.ipynb +++ b/docs/src/examples/Using-rio-tiler.ipynb @@ -33,7 +33,7 @@ "# Requirements\n", "\n", "To be able to run this notebook you'll need the following requirements:\n", - "- rio-tiler~= 3.0" + "- rio-tiler~= 4.0" ] }, { @@ -52,7 +52,7 @@ "outputs": [], "source": [ "import morecantile\n", - "from rio_tiler.io import COGReader\n", + "from rio_tiler.io import Reader\n", "from rio_tiler.profiles import img_profiles\n", "from rio_tiler.models import ImageData" ] @@ -61,14 +61,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Data\n", - "\n", - "For this demo we will use some NAIP data hosted on Azure.\n", - "\n", - "https://azure.microsoft.com/fr-fr/services/open-datasets/catalog/naip/\n", - "\n", - "\n", - "The data is similar to the data hosted on [AWS](https://registry.opendata.aws/naip/), but using the one on Azure is easier because it offers direct `http` access without needing an AWS account." + "\n" ] }, { @@ -78,7 +71,7 @@ "outputs": [], "source": [ "# For this DEMO we will use this file\n", - "src_path = \"https://naipblobs.blob.core.windows.net/naip/v002/al/2019/al_60cm_2019/30087/m_3008701_ne_16_060_20191115.tif\"" + "src_path = \"https://data.geo.admin.ch/ch.swisstopo.swissalti3d/swissalti3d_2019_2573-1085/swissalti3d_2019_2573-1085_0.5_2056_5728.tif\"" ] }, { @@ -87,7 +80,7 @@ "source": [ "## rio_tiler.io.COGReader\n", "\n", - "In `rio-tiler` 2.0 we introduced COGReader, which is a python class providing usefull methods to read and inspect any GDAL/rasterio raster dataset.\n", + "In `rio-tiler` 2.0 we introduced COGReader (renamed Reader in 4.0), which is a python class providing usefull methods to read and inspect any GDAL/rasterio raster dataset.\n", "\n", "Docs: [https://cogeotiff.github.io/rio-tiler/readers/#cogreader](https://cogeotiff.github.io/rio-tiler/readers/#cogreader) " ] @@ -98,7 +91,7 @@ "metadata": {}, "outputs": [], "source": [ - "?COGReader" + "?Reader" ] }, { @@ -120,7 +113,7 @@ "source": [ "# As for Rasterio, using context manager is a good way to \n", "# make sure the dataset are closed when we exit.\n", - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " print(\"rasterio dataset:\")\n", " print(cog.dataset)\n", " print()\n", @@ -152,12 +145,12 @@ }, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " meta = cog.statistics(max_size=256)\n", "\n", " assert isinstance(meta, dict)\n", " print(list(meta))\n", - " print(meta[\"1\"].dict())" + " print(meta[\"b1\"].dict())" ] }, { @@ -173,18 +166,8 @@ "metadata": {}, "outputs": [], "source": [ - "fig, axs = plt.subplots(1, 4, sharey=True, tight_layout=True, dpi=150)\n", - "# Red (index 1)\n", - "axs[0].plot(meta[\"1\"].histogram[1][0:-1], meta[\"1\"].histogram[0])\n", - "\n", - "# Green (index 2)\n", - "axs[1].plot(meta[\"2\"].histogram[1][0:-1], meta[\"2\"].histogram[0])\n", - "\n", - "# Blue (index 3)\n", - "axs[2].plot(meta[\"3\"].histogram[1][0:-1], meta[\"3\"].histogram[0])\n", - "\n", - "# NIR (index 4)\n", - "axs[3].plot(meta[\"4\"].histogram[1][0:-1], meta[\"4\"].histogram[0])" + "# Band 1\n", + "plot(meta[\"b1\"].histogram[1][0:-1], meta[\"b1\"].histogram[0])" ] }, { @@ -202,7 +185,7 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " # By default `preview()` will return an array with its longest dimension lower or equal to 1024px\n", " data = cog.preview()\n", " print(data.data.shape)\n", @@ -228,14 +211,17 @@ }, "outputs": [], "source": [ - "print(f\"width: {img.width}\")\n", - "print(f\"height: {img.height}\")\n", - "print(f\"bands: {img.count}\")\n", - "print(f\"crs: {img.crs}\")\n", - "print(f\"bounds: {img.bounds}\")\n", + "print(f\"width: {data.width}\")\n", + "print(f\"height: {data.height}\")\n", + "print(f\"bands: {data.count}\")\n", + "print(f\"crs: {data.crs}\")\n", + "print(f\"bounds: {data.bounds}\")\n", + "print(f\"metadata: {data.metadata}\")\n", + "print(f\"assets: {data.assets}\")\n", + "print(f\"dataset stats: {data.dataset_statistics}\") # If stored in the original dataset\n", "\n", - "print(type(img.data))\n", - "print(type(img.mask))" + "print(type(data.data))\n", + "print(type(data.mask))" ] }, { @@ -248,22 +234,54 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "# Rasterio doesn't use the same axis order than visualization libraries (e.g matplotlib, PIL)\n", "# in order to display the data we need to change the order (using rasterio.plot.array_to_image).\n", "# the ImageData class wraps the rasterio function in the `data_as_image()` method.\n", - "print(type(img))\n", - "print(img.data.shape)\n", + "print(type(data))\n", + "print(data.data.shape)\n", "\n", - "image = img.data_as_image()\n", + "image = data.data_as_image()\n", "# data_as_image() returns a numpy.ndarray\n", "print(type(image))\n", "print(image.shape)\n", "\n", - "# Use only the first 3 bands (RGB)\n", - "imshow(image[:,:,0:3])" + "imshow(image)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi Spectral Data\n", + "\n", + "For this demo we will use some High resolution RGB-Nir data hosted on [AWS](https://registry.opendata.aws/nj-imagery/).\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "src_path = \"https://njogis-imagery.s3.amazonaws.com/2020/cog/I7D16.tif\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with Reader(src_path) as cog:\n", + " info = cog.info()\n", + " print(\"rio-tiler dataset info:\")\n", + " print(cog.info().dict(exclude_none=True))" ] }, { @@ -272,9 +290,23 @@ "metadata": {}, "outputs": [], "source": [ - "# Display NRG image\n", - "# The NAIP imagery has 4 bands Red, Green, Blue, NIR\n", - "imshow(image[:,:,[3,0,1]])" + "with Reader(src_path) as cog:\n", + " meta = cog.statistics()\n", + "\n", + "print(list(meta))\n", + " \n", + "fig, axs = plt.subplots(1, 4, sharey=True, tight_layout=True, dpi=150)\n", + "# Red (index 1)\n", + "axs[0].plot(meta[\"b1\"].histogram[1][0:-1], meta[\"b1\"].histogram[0])\n", + "\n", + "# Green (index 2)\n", + "axs[1].plot(meta[\"b2\"].histogram[1][0:-1], meta[\"b2\"].histogram[0])\n", + "\n", + "# Blue (index 3)\n", + "axs[2].plot(meta[\"b3\"].histogram[1][0:-1], meta[\"b3\"].histogram[0])\n", + "\n", + "# Nir (index 3)\n", + "axs[3].plot(meta[\"b4\"].histogram[1][0:-1], meta[\"b4\"].histogram[0])" ] }, { @@ -292,11 +324,13 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", - " # Return only the last band\n", + "with Reader(src_path) as cog:\n", + " # Return only the third band\n", " nir_band = cog.preview(indexes=4)\n", " print(nir_band.data.shape)\n", - " print(nir_band.data.dtype)" + " print(nir_band.data.dtype)\n", + "\n", + "imshow(nir_band.data_as_image())" ] }, { @@ -305,7 +339,23 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", + " # Return only the third band\n", + " nrg = cog.preview(indexes=(4,3,1))\n", + " \n", + " # Data is in Uint16 so we need to rescale\n", + " nrg.rescale(((nrg.data.min(), nrg.data.max()),))\n", + "\n", + "imshow(nrg.data_as_image())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with Reader(src_path) as cog:\n", " # Apply NDVI band math\n", " # (NIR - RED) / (NIR + RED)\n", " ndvi = cog.preview(expression=\"(b4-b1)/(b4+b1)\")\n", @@ -313,8 +363,8 @@ " print(ndvi.data.dtype)\n", " print(\"NDVI range: \", ndvi.data.min(), ndvi.data.max())\n", "\n", - "image = ndvi.post_process(in_range=((-1,1),))\n", - "imshow(image.data[0])" + "ndvi.rescale(in_range=((-1,1),))\n", + "imshow(ndvi.data_as_image())" ] }, { @@ -332,7 +382,7 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " print(f\"Bounds in dataset CRS: {cog.bounds}\")\n", " print(f\"Bounds WGS84: {cog.geographic_bounds}\")\n", " print(f\"MinZoom (WebMercator): {cog.minzoom}\")\n", @@ -351,7 +401,7 @@ "print(repr(tms))\n", "\n", "# Get the list of tiles for the COG minzoom \n", - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " tile_cover = list(tms.tiles(*cog.geographic_bounds, zooms=cog.minzoom))\n", "\n", "print(f\"Nb of Z{cog.minzoom} Mercator tiles: {len(tile_cover)}\")\n", @@ -364,11 +414,14 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " img_1 = cog.tile(*tile_cover[0])\n", + " img_1.rescale(((0, 40000),))\n", " print(img_1.data.shape)\n", "\n", " img_2 = cog.tile(*tile_cover[1])\n", + " img_2.rescale(((0, 40000),))\n", + "\n", " print(img_2.data.shape)" ] }, @@ -396,12 +449,12 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " ndvi = cog.tile(*tile_cover[0], expression=\"(b4-b1)/(b4+b1)\")\n", " print(ndvi.data.shape)\n", "\n", - "image = ndvi.post_process(in_range=((-1,1),))\n", - "imshow(image.data[0])" + "ndvi.rescale(in_range=((-1,1),))\n", + "imshow(ndvi.data[0])" ] }, { @@ -419,9 +472,9 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " # By default `part()` will read the highest resolution. We can limit this by using the `max_size` option.\n", - " img = cog.part((-87.92238235473633, 30.954131465929947, -87.87843704223633, 30.97996389724008), max_size=1024)\n", + " img = cog.part((-74.30680274963379, 40.60748547709819, -74.29478645324707, 40.61567903099978), max_size=1024)\n", " print(img.data.shape)\n", " print(img.bounds)\n", " print(img.crs)" @@ -433,6 +486,8 @@ "metadata": {}, "outputs": [], "source": [ + "img.rescale(((0, 40000),))\n", + "\n", "imshow(img.data_as_image()[:,:,0:3])" ] }, @@ -451,8 +506,8 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", - " values = cog.point(-87.92238235473633, 30.954131465929947)\n", + "with Reader(src_path) as cog:\n", + " values = cog.point(-74.30680274963379, 40.60748547709819)\n", "print(values)" ] }, @@ -471,7 +526,61 @@ "metadata": {}, "outputs": [], "source": [ - "feat = {\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-87.91989326477051,30.977388327504983],[-87.92341232299805,30.9747390975502],[-87.92015075683594,30.97282571907513],[-87.91723251342773,30.971869015455276],[-87.9192066192627,30.96914603729001],[-87.92032241821289,30.965466213678003],[-87.91869163513184,30.960093416531947],[-87.91577339172363,30.957885330068873],[-87.91028022766113,30.95700208119036],[-87.90839195251465,30.955971613842785],[-87.91105270385741,30.954646710918635],[-87.91508674621582,30.954793923262105],[-87.92135238647461,30.953321789618688],[-87.92126655578612,30.947506639952913],[-87.92324066162108,30.94353152388283],[-87.9224681854248,30.9393353886492],[-87.92109489440918,30.936832343075928],[-87.92075157165527,30.9326359137502],[-87.91646003723145,30.934034743992026],[-87.91534423828124,30.937494920341457],[-87.91611671447754,30.941764752554082],[-87.91053771972656,30.943973211611713],[-87.91414260864258,30.948242754412334],[-87.91671752929688,30.949862186261473],[-87.91191101074219,30.949494135978654],[-87.90899276733398,30.950377454275596],[-87.90349960327147,30.95045106376507],[-87.90298461914062,30.953174575006617],[-87.89912223815918,30.953763432093723],[-87.89543151855469,30.953027360167685],[-87.89122581481934,30.955529981576515],[-87.89551734924316,30.959651803323208],[-87.89912223815918,30.960903035444577],[-87.90238380432129,30.95979900795299],[-87.90633201599121,30.96053502769875],[-87.9082202911377,30.963479049959364],[-87.91345596313477,30.964877428739207],[-87.91259765625,30.967306143211744],[-87.9085636138916,30.965466213678003],[-87.90547370910643,30.96553981154008],[-87.90667533874512,30.96885165662014],[-87.90684700012207,30.97039714501039],[-87.89517402648926,30.972972903396382],[-87.89328575134277,30.97643166961476],[-87.8957748413086,30.979080852589725],[-87.89852142333984,30.977093972252376],[-87.90006637573242,30.97643166961476],[-87.9019546508789,30.978712914907245],[-87.90633201599121,30.97805062350409],[-87.90461540222168,30.975107050552193],[-87.90521621704102,30.97422396096446],[-87.90796279907227,30.976358080149122],[-87.90976524353026,30.976063721719164],[-87.90907859802245,30.973856004558257],[-87.9111385345459,30.974076778572197],[-87.91379928588867,30.975769362381378],[-87.9177474975586,30.97643166961476],[-87.91929244995116,30.977314738776947],[-87.91989326477051,30.977388327504983]]]}}" + "feat = {\n", + " \"type\": \"Feature\",\n", + " \"properties\": {},\n", + " \"geometry\": {\n", + " \"type\": \"Polygon\",\n", + " \"coordinates\": [\n", + " [\n", + " [\n", + " -74.30384159088135,\n", + " 40.614245638811646\n", + " ],\n", + " [\n", + " -74.30680274963379,\n", + " 40.61121586776988\n", + " ],\n", + " [\n", + " -74.30590152740477,\n", + " 40.608967884350946\n", + " ],\n", + " [\n", + " -74.30272579193115,\n", + " 40.60748547709819\n", + " ],\n", + " [\n", + " -74.29875612258911,\n", + " 40.60786015456402\n", + " ],\n", + " [\n", + " -74.2960524559021,\n", + " 40.61012446497514\n", + " ],\n", + " [\n", + " -74.29478645324707,\n", + " 40.61390357476733\n", + " ],\n", + " [\n", + " -74.29882049560547,\n", + " 40.61515780103489\n", + " ],\n", + " [\n", + " -74.30294036865233,\n", + " 40.61567903099978\n", + " ],\n", + " [\n", + " -74.3035626411438,\n", + " 40.61502749290829\n", + " ],\n", + " [\n", + " -74.30384159088135,\n", + " 40.614245638811646\n", + " ]\n", + " ]\n", + " ]\n", + " }\n", + "}" ] }, { @@ -480,7 +589,7 @@ "metadata": {}, "outputs": [], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " # we use the feature to define the bounds and the mask\n", " # but we use `dst_crs` options to keep the projection from the input dataset\n", " # By default `feature()` will read the highest resolution. We can limit this by using the `max_size` option.\n", @@ -498,15 +607,9 @@ }, "outputs": [], "source": [ + "img.rescale(((0, 40000),))\n", "imshow(img.data_as_image()[:,:,0:3])" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -514,7 +617,8 @@ "hash": "e5a596c8625da0593f23bdd5ea51ce5c4572779fa5edc69fb6a18fc94feb7fb6" }, "kernelspec": { - "display_name": "Python 3.8.2 64-bit", + "display_name": "Python 3 (ipykernel)", + "language": "python", "name": "python3" }, "language_info": { @@ -527,7 +631,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/src/examples/Using-tms.ipynb b/docs/src/examples/Using-tms.ipynb index 7e88260c..5cb3a94e 100644 --- a/docs/src/examples/Using-tms.ipynb +++ b/docs/src/examples/Using-tms.ipynb @@ -21,13 +21,13 @@ "# Requirements\n", "\n", "To be able to run this notebook you'll need the following requirements:\n", - "- rio-tiler~= 3.0\n", + "- rio-tiler~= 4.0\n", "- ipyleaflet" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -59,22 +59,17 @@ "source": [ "## Data\n", "\n", - "For this demo we will use some NAIP data hosted on Azure.\n", - "\n", - "https://azure.microsoft.com/fr-fr/services/open-datasets/catalog/naip/\n", - "\n", - "\n", - "The data is similar to the data hosted on [AWS](https://registry.opendata.aws/naip/), but using the one on Azure is easier because it offers direct `http` access without needing an AWS account." + "For this demo we will use some High resolution RGB-Nir data hosted on [AWS](https://registry.opendata.aws/nj-imagery/)." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# For this DEMO we will use this file\n", - "src_path = \"https://naipblobs.blob.core.windows.net/naip/v002/al/2019/al_60cm_2019/30087/m_3008701_ne_16_060_20191115.tif\"" + "src_path = \"https://njogis-imagery.s3.amazonaws.com/2020/cog/I7D16.tif\"" ] }, { @@ -88,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -100,7 +95,7 @@ "from tornado.httpserver import HTTPServer\n", "from tornado.concurrent import run_on_executor\n", "\n", - "from rio_tiler.io import COGReader\n", + "from rio_tiler.io import Reader\n", "from rio_tiler.errors import TileOutsideBounds\n", "from rio_tiler.profiles import img_profiles\n", "\n", @@ -137,7 +132,7 @@ " def _get_tile(self, tms, z, x, y):\n", "\n", " try:\n", - " with COGReader(self.url, tms=morecantile.tms.get(tms)) as cog:\n", + " with Reader(self.url, tms=morecantile.tms.get(tms)) as cog:\n", " img = cog.tile(x, y, z, indexes=(1,2,3))\n", " except TileOutsideBounds:\n", " raise web.HTTPError(404)\n", @@ -169,11 +164,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Supported TMS:\n", + "- LINZAntarticaMapTilegrid | urn:ogc:def:crs:EPSG::5482\n", + "- EuropeanETRS89_LAEAQuad | urn:ogc:def:crs:EPSG::3035\n", + "- CanadianNAD83_LCC | urn:ogc:def:crs:EPSG::3978\n", + "- UPSArcticWGS84Quad | urn:ogc:def:crs:EPSG::5041\n", + "- NZTM2000 | urn:ogc:def:crs:EPSG::2193\n", + "- NZTM2000Quad | urn:ogc:def:crs:EPSG::2193\n", + "- UTM31WGS84Quad | urn:ogc:def:crs:EPSG::32631\n", + "- UPSAntarcticWGS84Quad | urn:ogc:def:crs:EPSG::5042\n", + "- WorldMercatorWGS84Quad | urn:ogc:def:crs:EPSG::3395\n", + "- WGS1984Quad | urn:ogc:def:crs:EPSG::4326\n", + "- WorldCRS84Quad | urn:ogc:def:crs:OGC::CRS84\n", + "- WebMercatorQuad | urn:ogc:def:crs:EPSG::3857\n" + ] + } + ], "source": [ "print(\"Supported TMS:\")\n", "for name, tms in morecantile.tms.tms.items():\n", @@ -189,15 +204,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'bounds': BoundingBox(left=-74.3095632062702, bottom=40.603994417539994, right=-74.29151245384847, top=40.61775082944064), 'minzoom': 14, 'maxzoom': 19, 'band_metadata': [('b1', {}), ('b2', {}), ('b3', {}), ('b4', {})], 'band_descriptions': [('b1', ''), ('b2', ''), ('b3', ''), ('b4', '')], 'dtype': 'uint16', 'nodata_type': 'None', 'colorinterp': ['red', 'green', 'blue', 'undefined'], 'driver': 'GTiff', 'count': 4, 'overviews': [2, 4, 8, 16], 'width': 5000, 'height': 5000}\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7b640ef0c2b34a37902653915778514d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Map(center=[40.610872623490316, -74.30053783005934], controls=(ZoomControl(options=['position', 'zoom_in_text'…" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "with COGReader(src_path) as cog:\n", + "with Reader(src_path) as cog:\n", " info = cog.info()\n", + " \n", "print(info.dict(exclude_none=True))\n", "\n", - "m = Map(center=(30.96, -87.90), zoom=info.minzoom, basemap={})\n", + "bounds = info.bounds\n", + "center = ((bounds[1] + bounds[3]) / 2, (bounds[0] + bounds[2]) / 2)\n", + "m = Map(center=center, zoom=info.minzoom, basemap={})\n", "\n", "layer = TileLayer(\n", " url=\"http://127.0.0.1:8080/tiles/WebMercatorQuad/{z}/{x}/{y}\",\n", @@ -224,11 +265,13 @@ }, "outputs": [], "source": [ - "with COGReader(src_path, tms=morecantile.tms.get(\"WorldCRS84Quad\")) as cog:\n", + "with Reader(src_path, tms=morecantile.tms.get(\"WorldCRS84Quad\")) as cog:\n", " info = cog.info()\n", "print(info.dict(exclude_none=True))\n", "\n", - "m = Map(center=(30.96, -87.90), zoom=info.minzoom, basemap={}, crs=projections.EPSG4326)\n", + "bounds = info.bounds\n", + "center = ((bounds[1] + bounds[3]) / 2, (bounds[0] + bounds[2]) / 2)\n", + "m = Map(center=center, zoom=info.minzoom, basemap={}, crs=projections.EPSG4326)\n", "\n", "layer = TileLayer(\n", " url=\"http://127.0.0.1:8080/tiles/WorldCRS84Quad/{z}/{x}/{y}\",\n", @@ -242,7 +285,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -259,7 +302,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -273,7 +316,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.9.13" } }, "nbformat": 4, From 61e6216595b8267b9677efb772c05f6ed42cc711 Mon Sep 17 00:00:00 2001 From: vincentsarago Date: Thu, 20 Oct 2022 00:57:02 +0200 Subject: [PATCH 23/23] update docs --- README.md | 4 +- docs/src/advanced/custom_readers.md | 60 +-- docs/src/advanced/dynamic_tiler.md | 8 +- docs/src/advanced/feature.md | 16 +- docs/src/advanced/tms.md | 8 +- docs/src/advanced/zonal_stats.md | 6 +- docs/src/colormap.md | 15 +- docs/src/intro.md | 89 ++-- docs/src/models.md | 188 ++++++- docs/src/mosaic.md | 4 +- docs/src/readers.md | 779 ++++++++++++++++++++++------ docs/src/supported_format.md | 13 +- docs/src/v4_migration.md | 65 +++ rio_tiler/io/xarray.py | 2 - rio_tiler/models.py | 6 +- 15 files changed, 985 insertions(+), 278 deletions(-) diff --git a/README.md b/README.md index 2d56649a..3d450bdf 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ At the low level, `rio-tiler` is *just* a wrapper around the [rasterio](https:// ) ``` -- [Xarray](https://xarray.dev) support +- [Xarray](https://xarray.dev) support **(>=4.0)** ```python import xarray @@ -126,7 +126,7 @@ At the low level, `rio-tiler` is *just* a wrapper around the [rasterio](https:// ``` *Note: The XarrayReader needs optional dependencies to be installed `pip install rio-tiler["xarray"]`.* -- Non-Geo Image support +- Non-Geo Image support **(>=4.0)** ```python from rio_tiler.io import ImageReader diff --git a/docs/src/advanced/custom_readers.md b/docs/src/advanced/custom_readers.md index b105043d..2507909d 100644 --- a/docs/src/advanced/custom_readers.md +++ b/docs/src/advanced/custom_readers.md @@ -1,7 +1,7 @@ `rio-tiler` provides multiple [abstract base classes](https://docs.python.org/3.7/library/abc.html) from which it derives its -main readers: [`COGReader`](../readers.md#cogreader) and +main readers: [`Reader`](../readers.md#reader) and [`STACReader`](../readers.md#stacreader). You can also use these classes to build custom readers. @@ -16,8 +16,6 @@ Main `rio_tiler.io` Abstract Base Class. - **input**: Input - **tms**: The TileMatrixSet define which default projection and map grid the reader uses. Defaults to WebMercatorQuad. -- **minzoom**: Dataset's minzoom. Not in the `__init__` method. -- **maxzoom**: Dataset's maxzoom. Not in the `__init__` method. - **bounds**: Dataset's bounding box. Not in the `__init__` method. - **crs**: dataset's crs. Not in the `__init__` method. - **geographic_crs**: CRS to use as geographic coordinate system. Defaults to WGS84. Not in the `__init__` method. @@ -45,13 +43,7 @@ Abstract methods, are method that **HAVE TO** be implemented in the child class. - **point**: reads pixel value for a specific point (`List`) - **feature**: reads data for a geojson feature (`rio_tiler.models.ImageData`) -Example: [`COGReader`](../readers.md#cogreader) - -### **AsyncBaseReader** - -Equivalent of `BaseReader` for async-ready readers (e.g [aiocogeo](https://github.com/geospatial-jeff/aiocogeo)). The `AsyncBaseReader` has the same attributes/properties/methods as the `BaseReader`. - -see example of reader built using `AsyncBaseReader`: https://github.com/cogeotiff/rio-tiler/blob/832ecbd97f560c2764818bca30ca95ef25408527/tests/test_io_async.py#L49 +Example: [`Reader`](../readers.md#reader) ### **MultiBaseReader** @@ -69,7 +61,7 @@ from typing import Dict, Type import attr from morecantile import TileMatrixSet from rio_tiler.io.base import MultiBaseReader -from rio_tiler.io import COGReader, BaseReader +from rio_tiler.io import Reader, BaseReader from rio_tiler.constants import WEB_MERCATOR_TMS from rio_tiler.models import Info @@ -81,7 +73,7 @@ class AssetFileReader(MultiBaseReader): # because we add another attribute (prefix) we need to # re-specify the other attribute for the class - reader: Type[BaseReader] = attr.ib(default=COGReader) + reader: Type[BaseReader] = attr.ib(default=Reader) reader_options: Dict = attr.ib(factory=dict) tms: TileMatrixSet = attr.ib(default=WEB_MERCATOR_TMS) @@ -111,30 +103,30 @@ class AssetFileReader(MultiBaseReader): # we have a directoty with "scene_b1.tif", "scene_b2.tif" with AssetFileReader(input="my_dir/", prefix="scene_") as cr: print(cr.assets) - >>> ['b1', 'b2'] + >>> ['band1', 'band2'] - info = cr.info(assets=("b1", "b2")) + info = cr.info(assets=("band1", "band2")) # MultiBaseReader returns a Dict assert isinstance(info, dict) print(list(info)) - >>> ['b1', 'b2'] + >>> ['band1', 'band2'] - assert isinstance(info["b1"], Info) - print(info["b1"].json(exclude_none=True)) + assert isinstance(info["band1"], Info) + print(info["band1"].json(exclude_none=True)) >>> { 'bounds': [-11.979244865430259, 24.296321392464325, -10.874546803397614, 25.304623891542263], 'minzoom': 7, 'maxzoom': 9, - 'band_metadata': [('1', {})], - 'band_descriptions': [('1', '')], + 'band_metadata': [('b1', {})], + 'band_descriptions': [('b1', '')], 'dtype': 'uint16', 'nodata_type': 'Nodata', 'colorinterp': ['gray'] } - img = cr.tile(238, 218, 9, assets=("b1", "b2")) + img = cr.tile(238, 218, 9, assets=("band1", "band2")) print(img.assets) - >>> ['my_dir/scene_b1.tif', 'my_dir/scene_b2.tif'] + >>> ['my_dir/scene_band1.tif', 'my_dir/scene_band2.tif'] # Each assets have 1 bands, so when combining each img we get a (2, 256, 256) array. print(img.data.shape) @@ -199,24 +191,24 @@ class BandFileReader(MultiBandReader): # we have a directoty with "scene_b1.tif", "scene_b2.tif" with BandFileReader(input="my_dir/", prefix="scene_") as cr: print(cr.bands) - >>> ['b1', 'b2'] + >>> ['band1', 'band2'] - print(cr.info(bands=("b1", "b2")).json(exclude_none=True)) + print(cr.info(bands=("band1", "band2")).json(exclude_none=True)) >>> { 'bounds': [-11.979244865430259, 24.296321392464325, -10.874546803397614, 25.304623891542263], 'minzoom': 7, 'maxzoom': 9, - 'band_metadata': [('b1', {}), ('b2', {})], - 'band_descriptions': [('b1', ''), ('b2', '')], + 'band_metadata': [('band1', {}), ('band2', {})], + 'band_descriptions': [('band1', ''), ('band2', '')], 'dtype': 'uint16', 'nodata_type': 'Nodata', 'colorinterp': ['gray', 'gray'] } - img = cr.tile(238, 218, 9, bands=("b1", "b2")) + img = cr.tile(238, 218, 9, bands=("band1", "band2")) print(img.assets) - >>> ['my_dir/scene_b1.tif', 'my_dir/scene_b2.tif'] + >>> ['my_dir/scene_band1.tif', 'my_dir/scene_band2.tif'] print(img.data.shape) >>> (2, 256, 256) @@ -227,7 +219,7 @@ Note: [`rio-tiler-pds`][rio-tiler-pds] readers are built using the `MultiBandRea [rio-tiler-pds]: https://github.com/cogeotiff/rio-tiler-pds -## Custom COGReader subclass +## Custom Reader subclass The example :point_down: was created as a response to https://github.com/developmentseed/titiler/discussions/235. In short, the user needed a way to keep metadata information from an asset within a STAC item. @@ -239,12 +231,12 @@ But rio-tiler has been designed to be easily customizable. import attr from rasterio.io import DatasetReader from rio_tiler.io.stac import fetch, _to_pystac_item -from rio_tiler.io import COGReader +from rio_tiler.io import Reader import pystac @attr.s -class CustomSTACReader(COGReader): - """Custom COG Reader support.""" +class CustomSTACReader(Reader): + """Custom Reader support.""" # This will keep the STAC item info within the instance item: pystac.Item = attr.ib(default=None, init=False) @@ -279,7 +271,7 @@ In this `CustomSTACReader`, we are using a custom path `schema` in form of `{ite 1. Parse the input path to get the STAC url and asset name 2. Fetch and parse the STAC item 3. Construct a new `input` using the asset full url. -4. Fall back to the regular `COGReader` initialization (using `super().__attrs_post_init__()`) +4. Fall back to the regular `Reader` initialization (using `super().__attrs_post_init__()`) ## Simple Reader @@ -298,7 +290,7 @@ from morecantile import TileMatrixSet from rio_tiler.constants import BBox, WEB_MERCATOR_TMS @attr.s -class Reader(BaseReader): +class SimpleReader(BaseReader): input: DatasetReader = attr.ib() @@ -355,6 +347,6 @@ class Reader(BaseReader): ) with rasterio.open("file.tif") as src: - with Reader(src) as cog: + with SimpleReader(src) as cog: img = cog.tile(1, 1, 1) ``` diff --git a/docs/src/advanced/dynamic_tiler.md b/docs/src/advanced/dynamic_tiler.md index 8e6d5d2a..896de250 100644 --- a/docs/src/advanced/dynamic_tiler.md +++ b/docs/src/advanced/dynamic_tiler.md @@ -20,7 +20,7 @@ your own API. ### Requirements -- `rio-tiler ~= 3.0` +- `rio-tiler ~= 4.0` - `fastapi` - `uvicorn` @@ -49,7 +49,7 @@ from starlette.requests import Request from starlette.responses import Response from rio_tiler.profiles import img_profiles -from rio_tiler.io import COGReader +from rio_tiler.io import Reader app = FastAPI( @@ -75,7 +75,7 @@ def tile( url: str = Query(..., description="Cloud Optimized GeoTIFF URL."), ): """Handle tile requests.""" - with COGReader(url) as cog: + with Reader(url) as cog: img = cog.tile(x, y, z) content = img.render(img_format="PNG", **img_profiles.get("png")) return Response(content, media_type="image/png") @@ -90,7 +90,7 @@ def tilejson( tile_url = request.url_for("tile", {"z": "{z}", "x": "{x}", "y": "{y}"}) tile_url = f"{tile_url}?url={url}" - with COGReader(url) as cog: + with Reader(url) as cog: return { "bounds": cog.geographic_bounds, "minzoom": cog.minzoom, diff --git a/docs/src/advanced/feature.md b/docs/src/advanced/feature.md index 391151e5..98877862 100644 --- a/docs/src/advanced/feature.md +++ b/docs/src/advanced/feature.md @@ -1,12 +1,12 @@ ![](https://user-images.githubusercontent.com/10407788/105767632-3f959e80-5f29-11eb-9331-969f3f53111e.png) -Starting with `rio-tiler` v2, a `.feature()` method exists on `rio-tiler`'s readers (e.g `COGReader`) which enables data reading for GeoJSON defined (polygon or multipolygon) shapes. +Starting with `rio-tiler` v2, a `.feature()` method exists on `rio-tiler`'s readers (e.g `Reader`) which enables data reading for GeoJSON defined (polygon or multipolygon) shapes. ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import ImageData -with COGReader("my-tif.tif") as cog: +with Reader("my-tif.tif") as cog: # Read data for a given geojson polygon img: ImageData = cog.feature(geojson_feature, max_size=1024) # we limit the max_size to 1024 ``` @@ -15,12 +15,12 @@ Under the hood, the `.feature` method uses `GDALWarpVRT`'s `cutline` option and the `.part()` method. The below process is roughly what `.feature` does for you. ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.utils import create_cutline from rasterio.features import bounds as featureBounds -# Use COGReader to open and read the dataset -with COGReader("my_tif.tif") as cog: +# Use Reader to open and read the dataset +with Reader("my_tif.tif") as cog: # Create WTT Cutline cutline = create_cutline(cog.dataset, feat, geometry_crs="epsg:4326") @@ -36,8 +36,8 @@ Another interesting fact about the `cutline` option is that it can be used with ```python bbox = featureBounds(feat) -# Use COGReader to open and read the dataset -with COGReader("my_tif.tif") as cog: +# Use Reader to open and read the dataset +with Reader("my_tif.tif") as cog: # Create WTT Cutline cutline = create_cutline(cog.dataset, feat, geometry_crs="epsg:4326") diff --git a/docs/src/advanced/tms.md b/docs/src/advanced/tms.md index 8d4e6b72..0e29d34a 100644 --- a/docs/src/advanced/tms.md +++ b/docs/src/advanced/tms.md @@ -6,12 +6,12 @@ Starting with rio-tiler 2.0, we replaced [`mercantile`][mercantile] with [_`more ```python import morecantile -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rasterio.crs import CRS from pyproj import CRS as projCRS # By default we use WebMercator TMS -with COGReader("my.tif") as cog: +with Reader("my.tif") as cog: img = cog.tile(1, 1, 1) assert img.crs == CRS.from_epsg(3857) # default image output is the TMS crs (WebMercator) @@ -34,7 +34,7 @@ for name, tms in morecantile.tms.tms.items(): # Use EPSG:4326 (WGS84) grid wgs84_grid = morecantile.tms.get("WorldCRS84Quad") -with COGReader("my.tif", tms=wgs84_grid) as cog: +with Reader("my.tif", tms=wgs84_grid) as cog: img = cog.tile(1, 1, 1) assert img.crs == CRS.from_epsg(4326) @@ -43,7 +43,7 @@ extent = [-948.75, -543592.47, 5817.41, -3333128.95] # From https:///epsg.io/30 epsg3031TMS = morecantile.TileMatrixSet.custom( extent, projCRS.from_epsg(3031), identifier="MyCustomTmsEPSG3031" ) -with COGReader("my.tif", tms=epsg3031TMS) as cog: +with Reader("my.tif", tms=epsg3031TMS) as cog: img = cog.tile(1, 1, 1) assert img.crs == CRS.from_epsg(3031) ``` diff --git a/docs/src/advanced/zonal_stats.md b/docs/src/advanced/zonal_stats.md index 2ff5e911..39e33eb4 100644 --- a/docs/src/advanced/zonal_stats.md +++ b/docs/src/advanced/zonal_stats.md @@ -12,8 +12,8 @@ from rio_tiler.models import BandStatistics from geojson_pydantic.features import Feature, FeatureCollection from geojson_pydantic.geometries import Polygon -class COGReader(io.COGReader): - """Custom COGReader with zonal_statistics method.""" +class Reader(io.Reader): + """Custom Reader with zonal_statistics method.""" def zonal_statistics( self, @@ -49,7 +49,7 @@ class COGReader(io.COGReader): geojson = FeatureCollection(features=[geojson]) for feature in geojson: - # Get data overlapping with the feature (using COGReader.feature method) + # Get data overlapping with the feature (using Reader.feature method) data = self.feature( feature.dict(exclude_none=True), max_size=max_size, diff --git a/docs/src/colormap.md b/docs/src/colormap.md index 9799c63b..ffaf69e0 100644 --- a/docs/src/colormap.md +++ b/docs/src/colormap.md @@ -8,26 +8,25 @@ to `rio_tiler.utils.render`: ```python from rio_tiler.colormap import cmap -from rio_tiler.io import COGReader +from rio_tiler.io import Reader # Get Colormap # You can list available colormap names with `cmap.list()` cm = cmap.get("cfastie") -with COGReader( - "s3://landsat-pds/c1/L8/015/029/LC08_L1GT_015029_20200119_20200119_01_RT/LC08_L1GT_015029_20200119_20200119_01_RT_B8.TIF", - nodata=0, -) as cog: - img = cog.tile(150, 187, 9) +with Reader( + "https://sentinel-cogs.s3.amazonaws.com/sentinel-s2-l2a-cogs/29/R/KH/2020/2/S2A_29RKH_20200219_0_L2A/B01.tif", +) as src: + img = src.tile(239, 220, 9) # Rescale the data linearly from 0-10000 to 0-255 - image_rescale = img.post_process( + img.rescale( in_range=((0, 10000),), out_range=((0, 255),) ) # Apply colormap and create a PNG buffer - buff = image_rescale.render(colormap=cm) # this returns a buffer (PNG by default) + buff = img.render(colormap=cm) # this returns a buffer (PNG by default) ``` The `render` method accept colormap in form of: diff --git a/docs/src/intro.md b/docs/src/intro.md index 490dbea1..0049cbc6 100644 --- a/docs/src/intro.md +++ b/docs/src/intro.md @@ -1,20 +1,24 @@ ## Read data +`rio-tiler` has **Readers** classes which have methods to access data in `Tile`, `Part` (bbox), `Feature` (GeoJSON), `Point` (lon, lat) or as a whole. + +Here is a quick overview of how to use rio-tiler's main reader `rio_tiler.io.rasterio.Reader`: + ```python -from rio_tiler.io import COGReader -from rio_tiler.models import ImageData +from rio_tiler.io import Reader +from rio_tiler.models import ImageData, PointData tile_x = 691559 tile_y = 956905 tile_zoom = 21 -with COGReader( +with Reader( "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" -) as cog: +) as dst: # Read data for a slippy map tile - img = cog.tile(tile_x, tile_y, tile_zoom, tilesize=256) - assert isinstance(img, ImageData) + img = dst.tile(tile_x, tile_y, tile_zoom, tilesize=256) + assert isinstance(img, ImageData) # Image methods return data as rio_tiler.models.ImageData object print(img.data.shape) >>> (3, 256, 256) @@ -22,68 +26,68 @@ with COGReader( >>> (256, 256) # Read the entire data - img = cog.read() + img = dst.read() print(img.data.shape) >>> (3, 11666, 19836) # Read part of a data for a given bbox (we use `max_size=1024` to limit the data transfer and read lower resolution data) - img = cog.part([-61.281, 15.539, -61.279, 15.541], max_size=1024) + img = dst.part([-61.281, 15.539, -61.279, 15.541], max_size=1024) print(img.data.shape) >>> (3, 1024, 1024) # Read data for a given geojson polygon (we use `max_size=1024` to limit the data transfer and read lower resolution data) - img = cog.feature(geojson_feature, max_size=1024) + img = dst.feature(geojson_feature, max_size=1024) # Get a preview (size is maxed out to 1024 by default to limit the data transfer and read lower resolution data) - img = cog.preview() + img = dst.preview() print(img.data.shape) >>> (3, 603, 1024) # Get pixel values for a given lon/lat coordinate - values = cog.point(-61.281, 15.539) - print(values) + values = dst.point(-61.281, 15.539) + assert isinstance(img, PointData) # Point methods return data as rio_tiler.models.PointData object + print(values.data) >>> [47, 62, 43] - - # You can also use the `old style` notation - data, mask = cog.tile(691559, 956905, 21, tilesize=256) - print(data.shape) - >>> (3, 256, 256) - print(mask.shape) - >>> (256, 256) ``` -The `COGReader` class has other interesting features, please see [User Guide - Readers](readers.md). +The `rio_tiler.io.rasterio.Reader` class has other interesting features, please see [User Guide - Readers](readers.md). ## Render the data as an image (PNG/JPEG) ```python -with COGReader( +with Reader( "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" -) as cog: - img = cog.tile(691559, 956905, 21, tilesize=256) - buff = img.render() # this returns a buffer (PNG by default) +) as dst: + img = dst.tile(691559, 956905, 21, tilesize=256) + + # Encode the data in PNG (default) + buff = img.render() + + # Encode the data in JPEG + buff = img.render(img_format="JPEG") ``` ## Rescale non-byte data and/or apply colormap ```python -with COGReader( - "s3://landsat-pds/c1/L8/015/029/LC08_L1GT_015029_20200119_20200119_01_RT/LC08_L1GT_015029_20200119_20200119_01_RT_B8.TIF", - nodata=0, -) as cog: - img = cog.tile(150, 187, 9) +from rio_tiler.colormap import cmap + +# Get Colormap +cm = cmap.get("viridis") + +with Reader( + "https://sentinel-cogs.s3.amazonaws.com/sentinel-s2-l2a-cogs/29/R/KH/2020/2/S2A_29RKH_20200219_0_L2A/B01.tif", +) as dst: + img = dst.tile(239, 220, 9) # Rescale the data from 0-10000 to 0-255 - image_rescale = img.post_process( + img.rescale( in_range=((0, 10000),), out_range=((0, 255),), ) - # Get Colormap - cm = cmap.get("viridis") - # Apply colormap and create a PNG buffer - buff = image_rescale.render(colormap=cm) # this returns a buffer (PNG by default) + buff = img.render(colormap=cm) # this returns a buffer (PNG by default) ``` ## Use creation options to match `mapnik` defaults. @@ -91,10 +95,10 @@ with COGReader( ```python from rio_tiler.profiles import img_profiles -with COGReader( +with Reader( "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" -) as cog: - img = cog.tile(691559, 956905, 21, tilesize=256) +) as dst: + img = dst.tile(691559, 956905, 21, tilesize=256) options = img_profiles.get("webp") @@ -119,16 +123,15 @@ with open("my.png", "wb") as f: You can also export image data to a numpy binary format (`NPY`). ```python -with COGReader( - "s3://landsat-pds/c1/L8/015/029/LC08_L1GT_015029_20200119_20200119_01_RT/LC08_L1GT_015029_20200119_20200119_01_RT_B8.TIF", - nodata=0, -) as cog: - img = cog.tile(150, 187, 9) +with Reader( + "https://sentinel-cogs.s3.amazonaws.com/sentinel-s2-l2a-cogs/29/R/KH/2020/2/S2A_29RKH_20200219_0_L2A/B01.tif", +) as dst: + img = dst.tile(239, 220, 9) buff = img.render(img_format="npy") npy_tile = numpy.load(BytesIO(buff)) - assert npy_tile.shape == (2, 256, 256) # mask is appened to the end of the data + assert npy_tile.shape == (2, 256, 256) # mask is added to the end of the data buff = img.render(img_format="npy", add_mask=False) diff --git a/docs/src/models.md b/docs/src/models.md index f0ec045a..dc6423c4 100644 --- a/docs/src/models.md +++ b/docs/src/models.md @@ -14,6 +14,7 @@ This class has helper methods like `render` which forward internal data and mask - **crs**: coordinate reference system for the data ([rasterio.crs.CRS](https://github.com/rasterio/rasterio/blob/master/rasterio/crs.py#L21), optional) - **metadata**: additional metadata (dict, optional) - **band_names**: image band's names +- **dataset_statistics**: Dataset's min/max values (list of (min,max), optional) ```python import numpy @@ -30,7 +31,7 @@ print(ImageData(d, m)) bounds=None, crs=None, metadata={}, - band_names=['1', '2', '3'], + band_names=['b1', 'b2', 'b3'], ) ``` @@ -76,7 +77,7 @@ print(image.shape) >>> (256, 256, 3) ``` -- **post_process()**: Apply rescaling or/and rio-color formula to the data array. Returns a new ImageData instance. +- **post_process**: Apply rescaling or/and rio-color formula to the data array. Returns a new ImageData instance. ```python import numpy @@ -116,6 +117,80 @@ image = img.post_process( assert isinstance(image, ImageData) ``` +- **rescale()**: linear rescaling of the data in place + +!!! info "New in version 3.1.5" + +```python +import numpy +from rio_tiler.models import ImageData + +d = numpy.random.randint(0, 3000, (3, 256, 256)) +m = numpy.zeros((256, 256)) + 255 + +img = ImageData(d, m) + +print(img.data.dtype) +>>> 'int64' + +print(img.data.max()) +>>> 2999 + +# rescale and apply rio-color formula +img.rescale(in_range=((0, 3000),),) +print(img.data.max()) +>>> 254 + +print(img.data.dtype) +>>> 'uint8' +``` + +- **apply_color_formula()**: Apply `rio-color`'s color formula in place + +!!! info "New in version 3.1.5" + +```python +import numpy +from rio_tiler.models import ImageData + +d = numpy.random.randint(0, 3000, (3, 256, 256)) +m = numpy.zeros((256, 256)) + 255 + +img = ImageData(d, m) + +print(img.data.dtype) +>>> 'int64' + +img.apply_color_formula("Gamma RGB 3.1") +print(img.data.dtype) +>>> 'uint8' +``` + +- **apply_expression()**: Apply band math expression + +!!! info "New in version 4.0" + +```python +import numpy +from rio_tiler.models import ImageData + +d = numpy.random.randint(0, 3000, (3, 256, 256)) +m = numpy.zeros((256, 256)) + 255 + +img = ImageData(d, m) +print(img.band_names) +>>> ["b1", "b2", "b3"] # Defaults + +ratio = img.apply_expression("b1/b2") # Returns a new ImageData object +assert isinstance(ratio, ImageData) + +print(ratio.band_names) +>>> ["b1/b2"] + +print(ratio.data.shape) +>>> (1, 256, 256) +``` + - **render()**: Render the data/mask to an image buffer (forward data and mask to rio_tiler.utils.render). ```python @@ -165,14 +240,91 @@ print(get_meta(buf)) Note: Starting with `rio-tiler==2.1`, when the output datatype is not valid for a driver (e.g `float` for `PNG`), `rio-tiler` will automatically rescale the data using the `min/max` value for the datatype (ref: https://github.com/cogeotiff/rio-tiler/pull/391). + +## PointData + +!!! info "New in version 4.0" + +#### Attributes + +- **data**: point array (numpy.ndarray) +- **mask**: gdal/rasterio mask array (numpy.ndarray) +- **assets**: assets list used to create the data array (list, optional) +- **coordinates**: Coordinates of the point (Tuple[float, float], optional) +- **crs**: coordinate reference system for the data ([rasterio.crs.CRS](https://github.com/rasterio/rasterio/blob/master/rasterio/crs.py#L21), optional) +- **metadata**: additional metadata (dict, optional) +- **band_names**: values band's names + +```python +import numpy +from rio_tiler.models import PointData + +d = numpy.zeros((3)) +m = numpy.zeros((1), dtype="uint8") + 255 + +print(PointData(d, m)) +>>> PointData( + data=array([0., 0., 0.]), + mask=array([255]), + assets=None, + coordinates=None, + crs=None, + metadata={}, + band_names=['b1', 'b2', 'b3'], +) +``` + +#### Properties + +- **count**: number of bands in the data array (int) + +#### Methods + +- **as_masked()**: Return the data array as a `numpy.ma.MaskedArray` + +```python +import numpy +from rio_tiler.models import PointData + +d = numpy.zeros((3)) +m = numpy.zeros((1), dtype="uint8") + 255 + +masked = PointData(d, m).as_masked() +print(type(masked)) +>>> numpy.ma.core.MaskedArray +``` + +- **apply_expression()**: Apply band math expression + +```python +import numpy +from rio_tiler.models import PointData + +d = numpy.random.randint(0, 3000, (3)) +m = numpy.zeros((1), dtype="uint8") + 255 + +pts = PointData(d, m) +print(pts.band_names) +>>> ["b1", "b2", "b3"] # Defaults + +ratio = pts.apply_expression("b1/b2") # Returns a new PointData object +assert isinstance(ratio, PointData) + +print(ratio.band_names) +>>> ["b1/b2"] + +print(ratio.count) +>>> 1 +``` + ## Others -Readers methods (`info`, `metadata` and `stats`) returning metadata like results return [pydantic](https://pydantic-docs.helpmanual.io) models to make sure the values are valids. +Readers methods returning metadata like results (`info()` and `statistics()`) return [pydantic](https://pydantic-docs.helpmanual.io) models to make sure the values are valids. ### Info ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import Info # Schema @@ -308,10 +460,10 @@ print(Info.schema()) } # Example -with COGReader( +with Reader( "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" -) as cog: - info = cog.info() +) as src: + info = src.info() print(info["nodata_type"]) >>> "None" @@ -324,8 +476,8 @@ print(info.json(exclude_none=True)) 'bounds': [-61.287001876638215, 15.537756794450583, -61.27877967704677, 15.542486503997608], 'minzoom': 16, 'maxzoom': 22, - 'band_metadata': [('1', {}), ('2', {}), ('3', {})], - 'band_descriptions': [('1', ''), ('2', ''), ('3', '')], + 'band_metadata': [('b1', {}), ('b2', {}), ('b3', {})], + 'band_descriptions': [('b1', ''), ('b2', ''), ('b3', '')], 'dtype': 'uint8', 'nodata_type': 'None', 'colorinterp': ['red', 'green', 'blue'], @@ -337,12 +489,12 @@ print(info.json(exclude_none=True)) } ``` -Note: starting with `rio-tiler>=2.0.8`, additional metadata can be set (e.g. driver, count, width, height, overviews in `COGReader.info()`) +Note: starting with `rio-tiler>=2.0.8`, additional metadata can be set (e.g. driver, count, width, height, overviews in `Reader.info()`) ### BandStatistics ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import BandStatistics # Schema @@ -441,19 +593,19 @@ print(BandStatistics.schema()) } # Example -with COGReader( +with Reader( "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" -) as cog: - stats = cog.statistics() - assert isinstance(stats["1"], BandStatistics) +) as src: + stats = src.statistics() + assert isinstance(stats["b1"], BandStatistics) -print(stats["1"]["min"]) +print(stats["b1"]["min"]) >>> 0.0 -print(stats["1"].min) +print(stats["b1"].min) >>> 0.0 -print(stats["1"].json(exclude_none=True)) +print(stats["b1"].json(exclude_none=True)) >>> { "min": 0, "max": 255, diff --git a/docs/src/mosaic.md b/docs/src/mosaic.md index 8fa6bce6..f0b579d8 100644 --- a/docs/src/mosaic.md +++ b/docs/src/mosaic.md @@ -53,14 +53,14 @@ Returns: ### Examples ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.mosaic import mosaic_reader from rio_tiler.mosaic.methods import defaults from rio_tiler.models import ImageData def tiler(src_path: str, *args, **kwargs) -> ImageData: - with COGReader(src_path) as cog: + with Reader(src_path) as cog: return cog.tile(*args, **kwargs) mosaic_assets = ["mytif1.tif", "mytif2.tif", "mytif3.tif"] diff --git a/docs/src/readers.md b/docs/src/readers.md index b23a2f6b..e97588b9 100644 --- a/docs/src/readers.md +++ b/docs/src/readers.md @@ -1,16 +1,16 @@ -`rio-tiler`'s COGReader and STACReader are built from its abstract base classes (`AsyncBaseReader`, `BaseReader`, `MultiBandReader`, `MultiBaseReader`). Those Classes implements defaults interfaces which helps the integration in broader application. To learn more about `rio-tiler`'s base classes see [Base classes and custom readers](advanced/custom_readers.md) +`rio-tiler`'s Reader are built from its abstract base classes (`BaseReader`, `MultiBandReader`, `MultiBaseReader`). Those Classes implements defaults interfaces which helps the integration in broader application. To learn more about `rio-tiler`'s base classes see [Base classes and custom readers](advanced/custom_readers.md) -## rio_tiler.io.COGReader +## rio_tiler.io.rasterio.Reader -The `COGReader` is designed to work with simple raster datasets (e.g COG, GeoTIFF, ...). +The `Reader` is designed to work with simple raster datasets (e.g COG, GeoTIFF, ...). The class is derived from the `rio_tiler.io.base.BaseReader` base class. ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader -COGReader.__mro__ ->>> (rio_tiler.io.cogeo.COGReader, +Reader.__mro__ +>>> (rio_tiler.io.rasterio.Reader, rio_tiler.io.base.BaseReader, rio_tiler.io.base.SpatialMixin, object) @@ -21,29 +21,30 @@ COGReader.__mro__ - **input** (str): filepath - **dataset** (rasterio dataset, optional): rasterio opened dataset - **tms** (morecantile.TileMatrixSet, optional): morecantile TileMatrixSet used for tile reading (defaults to WebMercator) -- **minzoom** (int, optional): dataset's minimum zoom level (for input tms) -- **maxzoom** (int, optional): dataset's maximum zoom level (for input tms) +- **geographic_crs** (rasterio.crs.CRS, optional): CRS to use to calculate the geographic bounds (default to WGS84) - **colormap** (dict, optional): dataset's colormap +- **options** (rio_tiler.reader.Options, optional): Options to forward to rio_tiler.reader functions (e.g nodata, vrt_options, resampling) #### Properties - **bounds**: dataset's bounds (in dataset crs) - **crs**: dataset's crs - **geographic_bounds**: dataset's bounds in WGS84 - +- **minzoom**: dataset minzoom (in TMS) +- **maxzoom**: dataset maxzoom (in TMS) ```python -from rio_tiler.io import COGReader - -with COGReader("myfile.tif") as cog: - print(cog.dataset) - print(cog.tms.identifier) - print(cog.minzoom) - print(cog.maxzoom) - print(cog.bounds) - print(cog.crs) - print(cog.geographic_bounds) - print(cog.colormap) +from rio_tiler.io import Reader + +with Reader("myfile.tif") as src: + print(src.dataset) + print(src.tms.identifier) + print(src.minzoom) + print(src.maxzoom) + print(src.bounds) + print(src.crs) + print(src.geographic_bounds) + print(src.colormap) >> WebMercatorQuad @@ -60,51 +61,53 @@ EPSG:32620 - **read()**: Read the entire dataset ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import ImageData -with COGReader("myfile.tif") as cog: - img = cog.read() +with Reader("myfile.tif") as src: + img = src.read() assert isinstance(img, ImageData) - assert img.crs == cog.dataset.crs + assert img.crs == src.dataset.crs assert img.assets == ["myfile.tif"] - assert img.width == cog.dataset.width - assert img.height == cog.dataset.height - assert img.count == cog.dataset.count + assert img.width == src.dataset.width + assert img.height == src.dataset.height + assert img.count == src.dataset.count # With indexes -with COGReader("myfile.tif") as cog: - img = cog.read(indexes=1) # or cog.read(indexes=(1,)) +with Reader("myfile.tif") as src: + img = src.read(indexes=1) # or src.read(indexes=(1,)) assert img.count == 1 + assert img.band_names == ["b1"] # With expression -with COGReader("myfile.tif") as cog: - img = cog.read(expression="B1/B2") +with Reader("myfile.tif") as src: + img = src.read(expression="b1/b2") assert img.count == 1 + assert img.band_names == ["b1/b2"] ``` - **tile()**: Read map tile from a raster ```python from rio_tiler.contants import WEB_MERCATOR_CRS -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import ImageData -with COGReader("myfile.tif") as cog: - # cog.tile(tile_x, tile_y, tile_z, **kwargs) - img = cog.tile(1, 2, 3, tilesize=256) +with Reader("myfile.tif") as src: + # src.tile(tile_x, tile_y, tile_z, **kwargs) + img = src.tile(1, 2, 3, tilesize=256) assert isinstance(img, ImageData) assert img.crs == WEB_MERCATOR_CRS assert img.assets == ["myfile.tif"] # With indexes -with COGReader("myfile.tif") as cog: - img = cog.tile(1, 2, 3, tilesize=256, indexes=1) +with Reader("myfile.tif") as src: + img = src.tile(1, 2, 3, tilesize=256, indexes=1) assert img.count == 1 # With expression -with COGReader("myfile.tif") as cog: - img = cog.tile(1, 2, 3, tilesize=256, expression="B1/B2") +with Reader("myfile.tif") as src: + img = src.tile(1, 2, 3, tilesize=256, expression="B1/B2") assert img.count == 1 # Using buffer @@ -112,14 +115,14 @@ with COGReader("myfile.tif") as cog: # ref: # - https://github.com/cogeotiff/rio-tiler/issues/365 # - https://github.com/cogeotiff/rio-tiler/pull/405 -with COGReader("myfile.tif") as cog: +with Reader("myfile.tif") as src: # add 0.5 pixel on each side of the tile - img = cog.tile(1, 2, 3, tile_buffer=0.5) + img = src.tile(1, 2, 3, buffer=0.5) assert img.width == 257 assert img.height == 257 # add 1 pixel on each side of the tile - img = cog.tile(1, 2, 3, tile_buffer=1) + img = src.tile(1, 2, 3, buffer=1) assert img.width == 258 assert img.height == 258 ``` @@ -127,40 +130,40 @@ with COGReader("myfile.tif") as cog: - **part()**: Read a raster for a given bounding box (`bbox`). By default the bbox is considered to be in WGS84. ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import ImageData -with COGReader("myfile.tif") as cog: - # cog.part((minx, miny, maxx, maxy), **kwargs) - img = cog.part((10, 10, 20, 20)) +with Reader("myfile.tif") as src: + # src.part((minx, miny, maxx, maxy), **kwargs) + img = src.part((10, 10, 20, 20)) assert isinstance(img, ImageData) assert img.crs == WGS84_CRS assert img.assets == ["myfile.tif"] assert img.bounds == (10, 10, 20, 20) -# Pass bbox in WGS84 (default) but return data in the input COG CRS -with COGReader("myfile.tif") as cog: - img = cog.part((10, 10, 20, 20), dst_crs=cog.dataset.crs) - assert img.crs == cog.dataset.crs +# Pass bbox in WGS84 (default) but return data in the input dataset CRS +with Reader("myfile.tif") as src: + img = src.part((10, 10, 20, 20), dst_crs=src.dataset.crs) + assert img.crs == src.dataset.crs # Limit output size -with COGReader("myfile.tif") as cog: - img = cog.part((10, 10, 20, 20), max_size=2000) +with Reader("myfile.tif") as src: + img = src.part((10, 10, 20, 20), max_size=2000) # With indexes -with COGReader("myfile.tif") as cog: - img = cog.part((10, 10, 20, 20), indexes=1) +with Reader("myfile.tif") as src: + img = src.part((10, 10, 20, 20), indexes=1) # With expression -with COGReader("myfile.tif") as cog: - img = cog.part((10, 10, 20, 20), expression="B1/B2") +with Reader("myfile.tif") as src: + img = src.part((10, 10, 20, 20), expression="b1/b2") ``` - **feature()**: Read a raster for a geojson feature. By default the feature is considered to be in WGS84. ```python from rio_tiler.constants import WGS84_CRS -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import ImageData feat = { @@ -180,83 +183,87 @@ feat = { }, } -with COGReader("myfile.tif") as cog: - # cog.part(geojson_feature, **kwargs) - img = cog.feature(feat) +with Reader("myfile.tif") as src: + # src.part(geojson_feature, **kwargs) + img = src.feature(feat) assert isinstance(img, ImageData) assert img.crs == WGS84_CRS assert img.assets == ["myfile.tif"] assert img.bounds == (-55.61, 72.36, -53.83, 73.05) # bbox of the input feature -# Pass bbox in WGS84 (default) but return data in the input COG CRS -with COGReader("myfile.tif") as cog: - img = cog.feature(feat, dst_crs=cog.dataset.crs) - assert img.crs == cog.dataset.crs +# Pass bbox in WGS84 (default) but return data in the input dataset CRS +with Reader("myfile.tif") as src: + img = src.feature(feat, dst_crs=src.dataset.crs) + assert img.crs == src.dataset.crs # Limit output size -with COGReader("myfile.tif") as cog: - img = cog.feature(feat, max_size=2000) +with Reader("myfile.tif") as src: + img = src.feature(feat, max_size=2000) # Read high resolution -with COGReader("myfile.tif") as cog: - img = cog.feature(feat, max_size=None) +with Reader("myfile.tif") as src: + img = src.feature(feat, max_size=None) # With indexes -with COGReader("myfile.tif") as cog: - img = cog.feature(feat, indexes=1) +with Reader("myfile.tif") as src: + img = src.feature(feat, indexes=1) # With expression -with COGReader("myfile.tif") as cog: - img = cog.feature(feat, expression="B1/B2") +with Reader("myfile.tif") as src: + img = src.feature(feat, expression="b1/b2") ``` - **preview()**: Read a preview of a raster ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import ImageData -with COGReader("myfile.tif") as cog: - img = cog.preview() +with Reader("myfile.tif") as src: + img = src.preview() assert isinstance(img, ImageData) # With indexes -with COGReader("myfile.tif") as cog: - img = cog.preview(indexes=1) +with Reader("myfile.tif") as src: + img = src.preview(indexes=1) # With expression -with COGReader("myfile.tif") as cog: - img = cog.preview(expression="B1+2,B1*4") +with Reader("myfile.tif") as src: + img = src.preview(expression="b1+2;b1*4") ``` -- **point()**: Read the pixel values of a raster for a given `lon, lat` coordinates. By default the coordinates are considered to be in WGS84. +- **point()**: Read the pixel values of a raster for a given `lon, lat` coordinates. By default the coordinates are considered to be in WGS84. ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader +from rio_tiler.models import PointData -with COGReader("myfile.tif") as cog: - # cog.point(lon, lat) - print(cog.point(-100, 25)) +with Reader("myfile.tif") as src: + # src.point(lon, lat) + pt = src.point(-100, 25) + assert isinstance(pt, PointData) # With indexes -with COGReader("myfile.tif") as cog: - print(cog.point(-100, 25, indexes=1)) +with Reader("myfile.tif") as src: + pt = src.point(-100, 25, indexes=1) + print(pt.data) >>> [1] # With expression -with COGReader("myfile.tif") as cog: - print(cog.point(-100, 25, expression="B1+2,B1*4")) +with Reader("myfile.tif") as src: + pt = src.point(-100, 25, expression="b1+2;b1*4") + print(pt.data) >>> [3, 4] ``` - **info()**: Return simple metadata about the dataset ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader from rio_tiler.models import Info -with COGReader("myfile.tif") as cog: - info = cog.info() +with Reader("myfile.tif") as src: + info = src.info() assert isinstance(info, Info) print(info.dict(exclude_none=True)) @@ -264,8 +271,8 @@ print(info.dict(exclude_none=True)) "bounds": [-119.05915661478785, 13.102845359730287, -84.91821332299578, 33.995073647795806], "minzoom": 3, "maxzoom": 12, - "band_metadata": [["1", {}]], - "band_descriptions": [["1", ""]], + "band_metadata": [["b1", {}]], + "band_descriptions": [["b1", ""]], "dtype": "int8", "colorinterp": ["palette"], "nodata_type": "Nodata", @@ -285,21 +292,21 @@ print(info.dict(exclude_none=True)) - **statistics()**: Return image statistics (Min/Max/Stdev) ```python -from rio_tiler.io import COGReader +from rio_tiler.io import Reader -with COGReader("myfile.tif") as cog: - stats = cog.statistics() +with Reader("myfile.tif") as src: + stats = src.statistics() assert isinstance(stats, dict) # stats will be in form or {"band": BandStatistics(), ...} print(stats) >>> { - '1': BandStatistics(...), - '2': BandStatistics(...), - '3': BandStatistics(...) + 'b1': BandStatistics(...), + 'b2': BandStatistics(...), + 'b3': BandStatistics(...) } -print(stats["1"].dict()) +print(stats["b1"].dict()) >>> { "min": 1, "max": 7872, @@ -322,16 +329,16 @@ print(stats["1"].dict()) "percentile_2": 1 } -with COGReader("myfile_with_colormap.tif") as cog: - stats = cog.statistics(categorical=True, categories=[1, 2]) # we limit the categories to 2 defined value (defaults to all dataset values) +with Reader("myfile_with_colormap.tif") as src: + stats = src.statistics(categorical=True, categories=[1, 2]) # we limit the categories to 2 defined value (defaults to all dataset values) assert isinstance(stats, dict) print(stats) >>> { - '1': BandStatistics(...) + 'b1': BandStatistics(...) } # For categorical data, the histogram will represent the density of EACH value. -print(stats["1"].dict()) +print(stats["b1"].dict()) >>> { ... "histogram": [ @@ -344,7 +351,7 @@ print(stats["1"].dict()) #### Read Options -`COGReader` accepts several input options which will be forwarded to the `rio_tiler.reader.read` function (low level function accessing the data), those options can be set as reader's attribute or within each method calls: +`Reader` accepts several input options which will be forwarded to the `rio_tiler.reader.read` function (low level function accessing the data), those options can be set as reader's attribute or within each method calls: - **nodata**: Overwrite the nodata value (or set if not present) - **unscale**: Apply internal rescaling factors @@ -353,16 +360,16 @@ print(stats["1"].dict()) - **post_process**: Function to apply after the read operations ```python -with COGReader("my_cog.tif", nodata=0) as cog: - cog.tile(1, 1, 1) +with Reader("my_cog.tif", options={"nodata": 0}) as src: + src.tile(1, 1, 1) # is equivalent to -with COGReader("my_cog.tif") as cog: - cog.tile(1, 1, 1, nodata=0) +with Reader("my_cog.tif") as src: + src.tile(1, 1, 1, nodata=0) ``` -## rio_tiler.io.STACReader +## rio_tiler.io.stac.STACReader In `rio-tiler` v2, we added a `rio_tiler.io.STACReader` to allow tile/metadata fetching of assets withing a STAC item. @@ -385,11 +392,12 @@ STACReader.__mro__ - **tms** (morecantile.TileMatrixSet, optional): morecantile TileMatrixSet used for tile reading (defaults to WebMercator) - **minzoom** (int, optional): dataset's minimum zoom level (for input tms) - **maxzoom** (int, optional): dataset's maximum zoom level (for input tms) +- **geographic_crs** (rasterio.crs.CRS, optional): CRS to use to calculate the geographic bounds (default to WGS84) - **include_assets** (set, optional): Set of assets to include from the `available` asset list - **exclude_assets** (set, optional): Set of assets to exclude from the `available` asset list - **include_asset_types** (set, optional): asset types to consider as valid type for the reader - **exclude_asset_types** (set, optional): asset types to consider as invalid type for the reader -- **reader** (BaseReader, optional): Reader to use to read assets (defaults to COGReader) +- **reader** (BaseReader, optional): Reader to use to read assets (defaults to rio_tiler.io.rasterio.Reader) - **reader_options** (dict, optional): Options to forward to the reader init - **fetch_options** (dict, optional): Options to pass to the `httpx.get` or `boto3` when fetching the STAC item @@ -430,7 +438,7 @@ EPSG:4326 #### Methods -The `STACReader` has the same methods as the `COGReader` (defined by the BaseReader/MultiBaseReader classes). +The `STACReader` has the same methods as the `Reader` (defined by the BaseReader/MultiBaseReader classes). !!! Important - Most of `STACReader` methods require to set either `assets=` or `expression=` option. @@ -461,7 +469,7 @@ print(img.assets) 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/34/S/GA/2020/3/S2A_34SGA_20200318_0_L2A/B02.tif', ] print(img.band_names) ->>> ['B01_1', 'B02_1'] +>>> ['B01_b1', 'B02_b1'] # Using `expression=` with STACReader(stac_url, exclude_assets={"thumbnail"}) as stac: @@ -470,26 +478,10 @@ with STACReader(stac_url, exclude_assets={"thumbnail"}) as stac: 103, 8, tilesize=256, - expression="B01/B02", + expression="B01_b1/B02_b1", ) assert img.count == 1 - -# Using `assets=` + `asset_expression` (apply band math in an asset) -with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: - img = stac.tile( - 145, - 103, - 8, - tilesize=256, - assets=["B01", "B02"], - asset_expression={ - "B01": "b1+500", # add 500 to the first band - "B02": "b1-100", # substract 100 to the first band - } - ) - assert img.count == 2 - # Using `assets=` + `asset_indexes` (select a specific index in an asset) with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: img = stac.tile( @@ -548,17 +540,17 @@ with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: assert img.count == 2 # each assets have one band ``` -- **point()**: Read the pixel values for assets for a given `lon, lat` coordinates. By default the coordinates are considered to be in WGS84. +- **point()**: Read the pixel values for assets for a given `lon, lat` coordinates. By default the coordinates are considered to be in WGS84. ```python with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: # stac.point(lon, lat, assets=?, expression=?, asset_expression=?, asset_indexes=?, **kwargs) data = stac.point(24.1, 31.9, assets=["B01", "B02"]) -print(data) +print(data.data) >>> [ - [3595], # values for B01 - [3198] # values for B02 + 3595, # values for B01 + 3198 # values for B02 ] ``` @@ -577,8 +569,8 @@ print(info["B01"].json(exclude_none=True)) "bounds": [23.106076243528157, 31.505173744374172, 24.296464503939948, 32.519334871696195], "minzoom": 8, "maxzoom": 11, - "band_metadata": [["1", {}]], - "band_descriptions": [["1", ""]], + "band_metadata": [["b1", {}]], + "band_descriptions": [["b1", ""]], "dtype": "uint16", "nodata_type": "Nodata", "colorinterp": ["gray"], @@ -603,9 +595,9 @@ print(list(stats)) >>> ["B01", "B02"] print(list(stats["B01"])) ->>> ["1"] # B01 has only one band entry "1" +>>> ["b1"] # B01 has only one band entry "1" -print(stats["B01"]["1"].json(exclude_none=True)) +print(stats["B01"]["b1"].json(exclude_none=True)) { "min": 283.0, "max": 7734.0, @@ -640,11 +632,11 @@ with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: # stats will be in form or {"band": BandStatistics(), ...} print(list(stats)) ->>> ["B01_1", "B02_1"] +>>> ["B01_b1", "B02_b1"] -assert isinstance(stats["B01_1"], BandStatistics) +assert isinstance(stats["B01_b1"], BandStatistics) -print(info["B01_1"].json(exclude_none=True)) +print(info["B01_b1"].json(exclude_none=True)) { "min": 283.0, "max": 7734.0, @@ -669,16 +661,511 @@ print(info["B01_1"].json(exclude_none=True)) with STACReader(stac_url, exclude_assets={"thumbnail"},) as stac: # stac.statistics(assets=?, asset_expression=?, asset_indexes=?, **kwargs) - stats = stac.merged_statistics(expression=["B01/B02"], max_size=128) + stats = stac.merged_statistics(expression=["B01_b1/B02_b1"], max_size=128) print(list(stats)) ->>> ["B01/B02"] +>>> ["B01_b1/B02_b1"] -assert isinstance(stats["B01/B02"], BandStatistics) +assert isinstance(stats["B01_b1/B02_b1"], BandStatistics) ``` ### STAC Expression -When using `expression`, the reader might consider assets as `1 band` data. Expression using multi bands are not supported (e.g: `asset1_b1 + asset2_b2`). +When using `expression`, the user will need to explicitly pass the band number to use within the asset e.g: `asset1_b1 + asset2_b2`. + + +## rio_tiler.io.rasterio.ImageReader + +The `Reader` is designed to work with simple raster datasets in their pixel coordinates. + +The class is derived from the `rio_tiler.io.rasterio.Reader` class. +```python +from rio_tiler.io import ImageReader + +ImageReader.__mro__ +>>> (rio_tiler.io.rasterio.ImageReader, + rio_tiler.io.rasterio.Reader, + rio_tiler.io.base.BaseReader, + rio_tiler.io.base.SpatialMixin, + object) +``` + +#### Attributes + +- **input** (str): filepath +- **dataset** (rasterio dataset, optional): rasterio opened dataset +- **colormap** (dict, optional): dataset's colormap +- **options** (rio_tiler.reader.Options, optional): Options to forward to rio_tiler.reader functions (e.g nodata, vrt_options, resampling) + +#### Properties + +- **bounds**: dataset's bounds (in dataset crs) +- **transform**: dataset Affine transform (in pixel coordinates) +- **minzoom**: dataset minzoom +- **maxzoom**: dataset maxzoom + +```python +from rio_tiler.io import ImageReader + +with ImageReader("image.jpg") as src: + print(src.dataset) + print(src.minzoom) + print(src.maxzoom) + print(src.transform) + print(src.bounds) + print(src.colormap) + +>> +0 +3 +Affine(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) +(0, 2000, 2000, 0) +{} +``` + +#### Methods + +- **read()**: Read the entire dataset + +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import ImageData + +with ImageReader("image.jpeg") as src: + img = src.read() + assert isinstance(img, ImageData) + assert not img.crs + assert img.assets == ["image.jpeg"] + assert img.width == src.dataset.width + assert img.height == src.dataset.height + assert img.count == src.dataset.count + +# With indexes +with ImageReader("image.jpeg") as src: + img = src.read(indexes=1) # or src.read(indexes=(1,)) + assert img.count == 1 + assert img.band_names == ["b1"] + +# With expression +with ImageReader("image.jpeg") as src: + img = src.read(expression="b1/b2") + assert img.count == 1 + assert img.band_names == ["b1/b2"] +``` + +- **tile()**: Read tile from the image + +For ImageReader we are using a custom `LocalTileMatrixSet` constructed from the dataset width and height. The origin is the Top-Left of the image. + +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import ImageData + +with ImageReader("image.jpeg") as src: + # src.tile(tile_x, tile_y, tile_z, **kwargs) + img = src.tile(0, 0, src.maxzoom) + assert isinstance(img, ImageData) + assert not img.crs + assert img.bounds == (0, 256, 256, 0) + + img = src.tile(0, 0, src.minzoom) + assert isinstance(img, ImageData) + assert img.bounds[0] == 0 + assert img.bounds[3] == 0 + +# With indexes +with ImageReader("image.jpeg") as src: + img = src.tile(1, 2, 3, tilesize=256, indexes=1) + assert img.count == 1 + +# With expression +with ImageReader("image.jpeg") as src: + img = src.tile(1, 2, 3, tilesize=256, expression="B1/B2") + assert img.count == 1 +``` + +- **part()**: Read an image for a given bounding box (`bbox`). The origin is the Top-Left of the image. -If assets have difference number of bands and the `asset_indexes` is not specified the process will fail because it will try to apply an expression using arrays of different sizes. +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import ImageData + +with ImageReader("image.jpeg") as src: + # src.part((left, bottom, right, top), **kwargs) + img = src.part((0, 256, 256, 0)) # read the top-left 256x256 square of the image + assert isinstance(img, ImageData) + assert img.assets == ["myfile.tif"] + assert img.bounds == (0, 256, 256, 0) + +# Limit output size +with ImageReader("image.jpeg") as src: + img = src.part((0, 256, 256, 0), max_size=50) + +# With indexes +with ImageReader("image.jpeg") as src: + img = src.part((0, 256, 256, 0), indexes=1) + +# With expression +with ImageReader("image.jpeg") as src: + img = src.part((0, 256, 256, 0), expression="b1/b2") +``` + +- **feature()**: Read an image for a geojson feature. In the pixel coordinate system. + +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import ImageData + +feat = { + "coordinates": [ + [ + [-100.0, -100.0], + [1000.0, 100.0], + [500.0, 1000.0], + [-50.0, 500.0], + [-100.0, -100.0], + ] + ], + "type": "Polygon", +} + +with ImageReader("image.jpeg") as src: + # src.part(geojson_feature, **kwargs) + img = src.feature(feat) + assert isinstance(img, ImageData) + assert img.assets == ["image.jpeg"] + assert img.bounds == (-100.0, 1000.0, 1000.0, -100.0) # bbox of the input feature + +# Limit output size +with ImageReader("image.jpeg") as src: + img = src.feature(feat, max_size=100) + +# Read high resolution +with ImageReader("image.jpeg") as src: + img = src.feature(feat, max_size=None) + +# With indexes +with ImageReader("image.jpeg") as src: + img = src.feature(feat, indexes=1) + +# With expression +with ImageReader("image.jpeg") as src: + img = src.feature(feat, expression="b1/b2") +``` + +- **preview()**: Read a preview of a raster + +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import ImageData + +with ImageReader("image.jpeg") as src: + img = src.preview() + assert isinstance(img, ImageData) + +# With indexes +with ImageReader("image.jpeg") as src: + img = src.preview(indexes=1) + +# With expression +with ImageReader("image.jpeg") as src: + img = src.preview(expression="b1+2;b1*4") +``` + +- **point()**: Read the pixel values of a raster for a given `x, y` coordinates. The origin is the Top-Left of the image. + +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import PointData + +with ImageReader("image.jpeg") as src: + # src.point(x, y) + pt = src.point(0, 0) # pixel at the origin + assert isinstance(pt, PointData) + +# With indexes +with ImageReader("image.jpeg") as src: + pt = src.point(0,0 , indexes=1) + print(pt.data) +>>> [1] + +# With expression +with ImageReader("image.jpeg") as src: + pt = src.point(0, 0, expression="b1+2;b1*4") + print(pt.data) +>>> [3, 4] +``` + +- **info()**: Return simple metadata about the dataset + +```python +from rio_tiler.io import ImageReader +from rio_tiler.models import Info + +with ImageReader("image.jpeg") as src: + info = src.info() + assert isinstance(info, Info) + +print(info.dict(exclude_none=True)) +>>> { + "bounds": [0, 4000, 4000, 0], + "minzoom": 0, + "maxzoom": 3, + "band_metadata": [["b1", {}]], + "band_descriptions": [["b1", ""]], + "dtype": "int8", + "colorinterp": ["palette"], + "nodata_type": "Nodata", + "colormap": { + "0": [0, 0, 0, 0], + "1": [0, 61, 0, 255], + ... + }, + "driver": "GTiff", + "count": 1, + "width": 4000, + "height": 4000, + "overviews": [2, 4, 8], +} +``` + +- **statistics()**: Return image statistics (Min/Max/Stdev) + +```python +from rio_tiler.io import ImageReader + +with ImageReader("image.jpeg") as src: + stats = src.statistics() + assert isinstance(stats, dict) + +# stats will be in form or {"band": BandStatistics(), ...} +print(stats) +>>> { + 'b1': BandStatistics(...), + 'b2': BandStatistics(...), + 'b3': BandStatistics(...) +} + +print(stats["b1"].dict()) +>>> { + "min": 1, + "max": 7872, + "mean": 2107.524612053134, + "count": 1045504, + "sum": 2203425412, + "std": 2271.0065537857326, + "median": 2800, + "majority": 1, + "minority": 7072, + "unique": 15, + "histogram": [ + [...], + [...] + ], + "valid_percent": 100, + "masked_pixels": 0, + "valid_pixels": 1045504, + "percentile_98": 6896, + "percentile_2": 1 +} +``` + + + + + + + +## rio_tiler.io.xarray.XarrayReader + +The `Reader` is designed to work with xarray.DataReader with full geo-reference metadata (CRS) and variables (X,Y) + +The class is derived from the `rio_tiler.io.base.BaseReader` class. +```python +from rio_tiler.io.xarray import XarrayReader + +XarrayReader.__mro__ +>>> (rio_tiler.io.xarray.XarrayReader, + rio_tiler.io.base.BaseReader, + rio_tiler.io.base.SpatialMixin, + object) +``` + +#### Attributes + +- **input** (xarray.DataArray): Xarray DataArray +- **tms** (morecantile.TileMatrixSet, optional): morecantile TileMatrixSet used for tile reading (defaults to WebMercator) +- **geographic_crs** (rasterio.crs.CRS, optional): CRS to use to calculate the geographic bounds (default to WGS84) + +#### Properties + +- **bounds**: dataset's bounds (in dataset crs) +- **crs**: dataset's crs +- **geographic_bounds**: dataset's bounds in WGS84 +- **minzoom**: dataset minzoom (in TMS) +- **maxzoom**: dataset maxzoom (in TMS) + + +```python +import numpy +import xarray +from datetime import datetime +from rio_tiler.io.xarray import XarrayReader + +arr = numpy.random.randn(1, 33, 35) +data = xarray.DataArray( + arr, + dims=("time", "y", "x"), + coords={ + "x": list(range(-170, 180, 10)), + "y": list(range(-80, 85, 5)), + "time": [datetime(2022, 1, 1)], + }, +) +data.attrs.update({"valid_min": arr.min(), "valid_max": arr.max()}) +data.rio.write_crs("epsg:4326", inplace=True) + +with XarrayReader(data) as src: + print(src.input) + print(src.tms.identifier) + print(src.minzoom) + print(src.maxzoom) + print(src.bounds) + print(src.crs) + print(src.geographic_bounds) + +>> +WebMercatorQuad +0 +0 +(-175.0, -82.5, 175.0, 82.5) +EPSG:4326 +(-175.0, -82.5, 175.0, 82.5) +``` + +#### Methods + +- **tile()**: Read map tile from a raster + +```python +from rio_tiler.contants import WEB_MERCATOR_CRS +from rio_tiler.io import XarrayReader +from rio_tiler.models import ImageData + +with XarrayReader(data) as src: + # src.tile(tile_x, tile_y, tile_z, tilesize, resampling_method) + img = src.tile(1, 2, 3) + assert isinstance(img, ImageData) + assert img.crs == WEB_MERCATOR_CRS +``` + +- **part()**: Read a DataArray for a given bounding box (`bbox`). By default the bbox is considered to be in WGS84. + +```python +from rio_tiler.io import XarrayReader +from rio_tiler.models import ImageData + +with XarrayReader(data) as src: + # src.part((minx, miny, maxx, maxy), dst_crs, bounds_crs, resampling_method) + img = src.part((10, 10, 20, 20)) + assert isinstance(img, ImageData) + assert img.crs == WGS84_CRS + assert img.bounds == (10, 10, 20, 20) + +# Pass bbox in WGS84 (default) but return data in the input dataset CRS +with XarrayReader(data) as src: + img = src.part((10, 10, 20, 20), dst_crs=src.dataset.crs) + assert img.crs == src.dataset.crs +``` + +- **feature()**: Read a DataArray for a geojson feature. By default the feature is considered to be in WGS84. + +```python +from rio_tiler.constants import WGS84_CRS +from rio_tiler.io import XarrayReader +from rio_tiler.models import ImageData + +feat = { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-54.45, 73.05], + [-55.05, 72.79], + [-55.61, 72.46], + [-53.83, 72.36], + [-54.45, 73.05], + ] + ], + }, +} + +with XarrayReader(data) as src: + # src.part(geojson_feature, **kwargs) + img = src.feature(feat) + assert isinstance(img, ImageData) + assert img.crs == WGS84_CRS + assert img.bounds == (-55.61, 72.36, -53.83, 73.05) # bbox of the input feature + +# Pass bbox in WGS84 (default) but return data in the input dataset CRS +with XarrayReader(data) as src: + img = src.feature(feat, dst_crs=src.dataset.crs) + assert img.crs == src.dataset.crs +``` + +- **point()**: Read the pixel values of a DataArray for a given `lon, lat` coordinates. By default the coordinates are considered to be in WGS84. + +```python +from rio_tiler.io import XarrayReader +from rio_tiler.models import PointData + +with XarrayReader(data) as src: + # src.point(lon, lat, coord_crs) + pt = src.point(-100, 25) + assert isinstance(pt, PointData) +``` + +- **info()**: Return simple metadata about the DataArray + +```python +from rio_tiler.io import XarrayReader +from rio_tiler.models import Info + +with XarrayReader(data) as src: + info = src.info() + assert isinstance(info, Info) + +print(info.json(exclude_none=True)) +>>> { + "bounds": [-175.0, -82.5, 175.0, 82.5], + "minzoom": 0, + "maxzoom": 0, + "band_metadata": [["b1", {}]], + "band_descriptions": [["b1", "2022-01-01T00:00:00.000000000"]], + "dtype": "float64", + "nodata_type": "None", + "width": 35, + "attrs": { + "valid_min": -3.148671506292848, + "valid_max": 4.214148915352746 + }, + "count": 1, + "height": 33 +} +``` + +- **preview()**: + +!!! Important + + Not Implemented + + +- **statistics()**: + +!!! Important + + Not Implemented +``` diff --git a/docs/src/supported_format.md b/docs/src/supported_format.md index 1bd88d39..84d3442b 100644 --- a/docs/src/supported_format.md +++ b/docs/src/supported_format.md @@ -1,7 +1,7 @@ `rio-tiler` can work with all raster formats supported by [GDAL](https://gdal.org). That's being said, `rio-tiler` works better with data format that supports **partial reading**, like [Cloud Optimized GeoTIFF](http://cogeo.org). -On interesting feature of Cloud Optimized GeoTIFF is the internal overviews which enable fast preview of the data. For example, when using the `COGReader.preview` method, rio-tiler will only fetch the internal overviews instead of the whole data, to be able to construct the output array. Doing this reduce the amount of data transfer and thus increase the process speed. +On interesting feature of Cloud Optimized GeoTIFF is the internal overviews which enable fast preview of the data. For example, when using the `Reader.preview` method, rio-tiler will only fetch the internal overviews instead of the whole data, to be able to construct the output array. Doing this reduce the amount of data transfer and thus increase the process speed. ### VRT @@ -11,3 +11,14 @@ GDAL's [Virtual format](https://gdal.org/drivers/raster/vrt.html#raster-vrt) is Map Tile reading from VRT might not be efficient if overviews are not present, because GDAL will try to open a lot of files. ![](img/vrt_tile.png) + + +### Xarray + +!!! info "New in version 4.0" + +When `xarray` and `rioxarray` are installed in your environment, you can use `rio_tiler.io.XarrayReader` to read `xarray.DataArray` using the *usual* rio-tiler's Readers methods (`part()`, `tile()`, `feature()`). + +!!! warnings + - Datarray must be fully geo-referenced with a CRS and X,Y variables (longitude, latitude) + - Performance is largely dependant on the chunking of the array diff --git a/docs/src/v4_migration.md b/docs/src/v4_migration.md index 273ac877..4e57670e 100644 --- a/docs/src/v4_migration.md +++ b/docs/src/v4_migration.md @@ -36,6 +36,42 @@ from rio_tiler.io.cogeo import COGReader from rio_tiler.io.rasterio import Reader ``` +## **Band names** + +Band names are now prefixed with `b` (e.g `b1`, `b2`) + +```python +# before +with COGReader( + "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" +) as src: + stats = src.statistics() + print(list(stats)) + >>> ["1", "2", "3"] + + info = src.info() + print(info.band_metadata) + >>> [("1", {}), ("2", {}), ("3", {})] + + print(info.band_descriptions) + >>> [("1", ""), ("2", ""), ("3", "")] + +# now +with Reader( + "http://oin-hotosm.s3.amazonaws.com/5a95f32c2553e6000ce5ad2e/0/10edab38-1bdd-4c06-b83d-6e10ac532b7d.tif" +) as src: + stats = src.statistics() + print(list(stats)) + >>> ["b1", "b2", "b3"] + + info = src.info() + print(info.band_metadata) + >>> [("b1", {}), ("b2", {}), ("b3", {})] + + print(info.band_descriptions) + >>> [("b1", ""), ("b2", ""), ("b3", "")] +``` + ## MultiBaseReader **Expressions** We updated the `expression` format for `MultiBaseReader` (e.g STAC) to include **band names** and not only the asset name @@ -259,3 +295,32 @@ with xarray.open_dataset( ``` Note: Users might experience some really bad performance depending on the chunking of the original zarr. + +## Dataset Statistics + +Starting with rio-tiler 4.0, if the input dataset has [`statistics`](https://gdal.org/user/raster_data_model.html#raster-band) (e.g `STATISTICS_MINIMUM`, `STATISTICS_MAXIMUM`) within its metadata, rio-tiler will try to use it to rescale automatically the output image. + +```python +from rio_tiler.io import Reader + +with Reader("https://data.geo.admin.ch/ch.swisstopo.swissalti3d/swissalti3d_2019_2573-1085/swissalti3d_2019_2573-1085_0.5_2056_5728.tif") as src: + info = src.info() + print(info.band_metadata) + >>> [('b1', + {'STATISTICS_COVARIANCES': '10685.98787505646', + 'STATISTICS_EXCLUDEDVALUES': '-9999', + 'STATISTICS_MAXIMUM': '2015.0944824219', + 'STATISTICS_MEAN': '1754.471184271', + 'STATISTICS_MINIMUM': '1615.8128662109', + 'STATISTICS_SKIPFACTORX': '1', + 'STATISTICS_SKIPFACTORY': '1', + 'STATISTICS_STDDEV': '103.37305197708'})] + + img = src.preview() + # The min/max statistics are saved within every output image object + print(img.dataset_statistics) + >>> [(1615.8128662109, 2015.0944824219)] + + buffer = img.render() + >>> rio-tiler/rio_tiler/models.py:516: InvalidDatatypeWarning: Invalid type: `float32` for the `PNG` driver. Data will be rescaled using min/max type bounds or dataset_statistics. +``` diff --git a/rio_tiler/io/xarray.py b/rio_tiler/io/xarray.py index 528892f8..4842b098 100644 --- a/rio_tiler/io/xarray.py +++ b/rio_tiler/io/xarray.py @@ -129,8 +129,6 @@ def get_minzoom(self) -> int: def get_maxzoom(self) -> int: """Define dataset maximum zoom level.""" if self._maxzoom is None: - # TODO: Get transform from the data and figure the MaxZoom - # self._minzoom = self.tms.zoom_for_res(resolution) try: dst_affine, _, _ = self._dst_geom_in_tms_crs() diff --git a/rio_tiler/models.py b/rio_tiler/models.py index 1dc314ef..3e20b236 100644 --- a/rio_tiler/models.py +++ b/rio_tiler/models.py @@ -514,14 +514,14 @@ def render( if not colormap: if img_format in ["PNG"] and data.dtype not in ["uint8", "uint16"]: warnings.warn( - f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds.", + f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds or dataset_statistics.", InvalidDatatypeWarning, ) data = rescale_image(data, mask, in_range=datatype_range) elif img_format in ["JPEG", "WEBP"] and data.dtype not in ["uint8"]: warnings.warn( - f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds.", + f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds or dataset_statistics.", InvalidDatatypeWarning, ) data = rescale_image(data, mask, in_range=datatype_range) @@ -532,7 +532,7 @@ def render( "uint16", ]: warnings.warn( - f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds.", + f"Invalid type: `{data.dtype}` for the `{img_format}` driver. Data will be rescaled using min/max type bounds or dataset_statistics.", InvalidDatatypeWarning, ) data = rescale_image(data, mask, in_range=datatype_range)