From 1fe63d311e3c11395ea71f123905154f4b654296 Mon Sep 17 00:00:00 2001 From: Vincent Sarago Date: Wed, 27 Sep 2023 22:10:40 +0200 Subject: [PATCH] add more colormaps (#641) * add more colormaps * update tests --- CHANGES.md | 16 + docs/scripts/colormap_thumb.py | 28 +- docs/src/api/rio_tiler/errors.md | 131 +- docs/src/api/rio_tiler/expression.md | 4 +- docs/src/api/rio_tiler/io/base.md | 364 +- docs/src/api/rio_tiler/io/cogeo.md | 758 ---- docs/src/api/rio_tiler/io/stac.md | 105 +- docs/src/api/rio_tiler/models.md | 3317 ++++++++++++++--- docs/src/api/rio_tiler/mosaic/methods/base.md | 28 +- .../api/rio_tiler/mosaic/methods/defaults.md | 198 +- docs/src/api/rio_tiler/mosaic/reader.md | 40 +- docs/src/api/rio_tiler/profiles.md | 10 +- docs/src/api/rio_tiler/reader.md | 304 +- docs/src/api/rio_tiler/tasks.md | 23 +- docs/src/api/rio_tiler/utils.md | 59 +- docs/src/colormap.md | 1 + docs/src/img/colormaps_for_oceanography.png | Bin 0 -> 73309 bytes docs/src/img/custom.png | Bin 19369 -> 19368 bytes docs/src/img/cyclic.png | Bin 18597 -> 18537 bytes docs/src/img/diverging.png | Bin 45574 -> 45152 bytes docs/src/img/miscellaneous.png | Bin 65615 -> 64899 bytes .../img/perceptually_uniform_sequential.png | Bin 31306 -> 31187 bytes docs/src/img/qualitative.png | Bin 42708 -> 43011 bytes docs/src/img/sequential.png | Bin 62388 -> 59129 bytes docs/src/img/sequential_(2).png | Bin 56524 -> 55966 bytes rio_tiler/cmap_data/__init__.py | 20 +- rio_tiler/cmap_data/algae.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/algae_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/amp.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/amp_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/balance.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/balance_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/brbg_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/curl.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/curl_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/deep.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/deep_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/delta.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/delta_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/dense.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/dense_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/diff.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/diff_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/haline.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/haline_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/ice.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/ice_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/matter.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/matter_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/oxy.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/oxy_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/phase.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/phase_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/piyg_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/prgn_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/rain.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/rain_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/rdbu_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/rdgy_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/rdylbu_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/rdylgn_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/solar.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/solar_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/spectral_r.npy | Bin 1152 -> 1152 bytes rio_tiler/cmap_data/speed.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/speed_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/tarn.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/tarn_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/tempo.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/tempo_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/thermal.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/thermal_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/topo.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/topo_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/turbid.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/turbid_r.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/turbo.npy | Bin 0 -> 1152 bytes rio_tiler/cmap_data/turbo_r.npy | Bin 0 -> 1152 bytes rio_tiler/colormap.py | 2 +- tests/test_cmap.py | 18 +- 80 files changed, 3531 insertions(+), 1895 deletions(-) delete mode 100644 docs/src/api/rio_tiler/io/cogeo.md create mode 100644 docs/src/img/colormaps_for_oceanography.png create mode 100644 rio_tiler/cmap_data/algae.npy create mode 100644 rio_tiler/cmap_data/algae_r.npy create mode 100644 rio_tiler/cmap_data/amp.npy create mode 100644 rio_tiler/cmap_data/amp_r.npy create mode 100644 rio_tiler/cmap_data/balance.npy create mode 100644 rio_tiler/cmap_data/balance_r.npy create mode 100644 rio_tiler/cmap_data/curl.npy create mode 100644 rio_tiler/cmap_data/curl_r.npy create mode 100644 rio_tiler/cmap_data/deep.npy create mode 100644 rio_tiler/cmap_data/deep_r.npy create mode 100644 rio_tiler/cmap_data/delta.npy create mode 100644 rio_tiler/cmap_data/delta_r.npy create mode 100644 rio_tiler/cmap_data/dense.npy create mode 100644 rio_tiler/cmap_data/dense_r.npy create mode 100644 rio_tiler/cmap_data/diff.npy create mode 100644 rio_tiler/cmap_data/diff_r.npy create mode 100644 rio_tiler/cmap_data/haline.npy create mode 100644 rio_tiler/cmap_data/haline_r.npy create mode 100644 rio_tiler/cmap_data/ice.npy create mode 100644 rio_tiler/cmap_data/ice_r.npy create mode 100644 rio_tiler/cmap_data/matter.npy create mode 100644 rio_tiler/cmap_data/matter_r.npy create mode 100644 rio_tiler/cmap_data/oxy.npy create mode 100644 rio_tiler/cmap_data/oxy_r.npy create mode 100644 rio_tiler/cmap_data/phase.npy create mode 100644 rio_tiler/cmap_data/phase_r.npy create mode 100644 rio_tiler/cmap_data/rain.npy create mode 100644 rio_tiler/cmap_data/rain_r.npy create mode 100644 rio_tiler/cmap_data/solar.npy create mode 100644 rio_tiler/cmap_data/solar_r.npy create mode 100644 rio_tiler/cmap_data/speed.npy create mode 100644 rio_tiler/cmap_data/speed_r.npy create mode 100644 rio_tiler/cmap_data/tarn.npy create mode 100644 rio_tiler/cmap_data/tarn_r.npy create mode 100644 rio_tiler/cmap_data/tempo.npy create mode 100644 rio_tiler/cmap_data/tempo_r.npy create mode 100644 rio_tiler/cmap_data/thermal.npy create mode 100644 rio_tiler/cmap_data/thermal_r.npy create mode 100644 rio_tiler/cmap_data/topo.npy create mode 100644 rio_tiler/cmap_data/topo_r.npy create mode 100644 rio_tiler/cmap_data/turbid.npy create mode 100644 rio_tiler/cmap_data/turbid_r.npy create mode 100644 rio_tiler/cmap_data/turbo.npy create mode 100644 rio_tiler/cmap_data/turbo_r.npy diff --git a/CHANGES.md b/CHANGES.md index c0dfd730..e041866c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -31,6 +31,22 @@ * add `rio_tiler.utils.get_coverage_array` method to create a `coverage %` array +* add `cmocean` colormaps + + + +* allow uppercase in `cmap.get` method + + ```python + from rio_tiler.colormap import cmap + + # Before + cm = cmap.get("greys") + + # Now + cm = cmap.get("Greys") + ``` + # 6.1.0 (2023-09-15) * add `width`, `height` and `count` properties in `MosaicMethodBase` diff --git a/docs/scripts/colormap_thumb.py b/docs/scripts/colormap_thumb.py index 9dfc2b8d..8241ba92 100644 --- a/docs/scripts/colormap_thumb.py +++ b/docs/scripts/colormap_thumb.py @@ -21,7 +21,6 @@ ( "Sequential", [ - "Greys", "Purples", "Blues", "Greens", @@ -118,6 +117,32 @@ "gist_ncar", ], ), + ( + "Colormaps for oceanography", + [ + "thermal", + "haline", + "solar", + "ice", + "oxy", + "deep", + "dense", + "algae", + "matter", + "turbid", + "speed", + "amp", + "tempo", + "rain", + "phase", + "topo", + "balance", + "delta", + "curl", + "diff", + "tarn", + ], + ), ] @@ -170,6 +195,7 @@ def main(): out_path = ( Path(__file__).parents[0] / ".." + / "src" / "img" / (cmap_category.replace(" ", "_").lower() + ".png") ) diff --git a/docs/src/api/rio_tiler/errors.md b/docs/src/api/rio_tiler/errors.md index 10fd572e..bdc8b7a4 100644 --- a/docs/src/api/rio_tiler/errors.md +++ b/docs/src/api/rio_tiler/errors.md @@ -41,6 +41,44 @@ def with_traceback( ``` +Exception.with_traceback(tb) -- + +set self.__traceback__ to tb and return self. + +### AssetAsBandError + +```python3 +class AssetAsBandError( + /, + *args, + **kwargs +) +``` + +#### Ancestors (in MRO) + +* rio_tiler.errors.RioTilerError +* builtins.Exception +* builtins.BaseException + +#### Class variables + +```python3 +args +``` + +#### Methods + + +#### with_traceback + +```python3 +def with_traceback( + ... +) +``` + + Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self. @@ -160,10 +198,10 @@ Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self. -### IncorrectTileBuffer +### InvalidAssetName ```python3 -class IncorrectTileBuffer( +class InvalidAssetName( /, *args, **kwargs @@ -198,10 +236,10 @@ Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self. -### InvalidAssetName +### InvalidBandName ```python3 -class InvalidAssetName( +class InvalidBandName( /, *args, **kwargs @@ -236,10 +274,10 @@ Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self. -### InvalidBandName +### InvalidBufferSize ```python3 -class InvalidBandName( +class InvalidBufferSize( /, *args, **kwargs @@ -385,6 +423,44 @@ def with_traceback( ``` +Exception.with_traceback(tb) -- + +set self.__traceback__ to tb and return self. + +### InvalidExpression + +```python3 +class InvalidExpression( + /, + *args, + **kwargs +) +``` + +#### Ancestors (in MRO) + +* rio_tiler.errors.RioTilerError +* builtins.Exception +* builtins.BaseException + +#### Class variables + +```python3 +args +``` + +#### Methods + + +#### with_traceback + +```python3 +def with_traceback( + ... +) +``` + + Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self. @@ -461,6 +537,44 @@ def with_traceback( ``` +Exception.with_traceback(tb) -- + +set self.__traceback__ to tb and return self. + +### InvalidPointDataError + +```python3 +class InvalidPointDataError( + /, + *args, + **kwargs +) +``` + +#### Ancestors (in MRO) + +* rio_tiler.errors.RioTilerError +* builtins.Exception +* builtins.BaseException + +#### Class variables + +```python3 +args +``` + +#### Methods + + +#### with_traceback + +```python3 +def with_traceback( + ... +) +``` + + Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self. @@ -637,17 +751,20 @@ class RioTilerError( * rio_tiler.errors.InvalidFormat * rio_tiler.errors.TileOutsideBounds -* rio_tiler.errors.IncorrectTileBuffer +* rio_tiler.errors.InvalidBufferSize * rio_tiler.errors.PointOutsideBounds * rio_tiler.errors.InvalidBandName * rio_tiler.errors.InvalidColorMapName * rio_tiler.errors.InvalidAssetName +* rio_tiler.errors.InvalidExpression * rio_tiler.errors.MissingAssets * rio_tiler.errors.MissingBands * rio_tiler.errors.InvalidMosaicMethod * rio_tiler.errors.ColorMapAlreadyRegistered * rio_tiler.errors.EmptyMosaicError * rio_tiler.errors.InvalidColorFormat +* rio_tiler.errors.AssetAsBandError +* rio_tiler.errors.InvalidPointDataError #### Class variables diff --git a/docs/src/api/rio_tiler/expression.md b/docs/src/api/rio_tiler/expression.md index e0acb7af..b15a43f6 100644 --- a/docs/src/api/rio_tiler/expression.md +++ b/docs/src/api/rio_tiler/expression.md @@ -12,9 +12,9 @@ None ```python3 def apply_expression( blocks: Sequence[str], - bands: Sequence[Union[str, int]], + bands: Sequence[str], data: numpy.ndarray -) -> numpy.ndarray +) -> numpy.ma.core.MaskedArray ``` diff --git a/docs/src/api/rio_tiler/io/base.md b/docs/src/api/rio_tiler/io/base.md index 990bf3d9..322c3746 100644 --- a/docs/src/api/rio_tiler/io/base.md +++ b/docs/src/api/rio_tiler/io/base.md @@ -4,242 +4,38 @@ rio_tiler.io.base: ABC class for rio-tiler readers. None -## Classes - -### AsyncBaseReader - -```python3 -class AsyncBaseReader( - input: Any, - tms: morecantile.models.TileMatrixSet = -) -``` - -#### Ancestors (in MRO) - -* rio_tiler.io.base.SpatialMixin - -#### Instance variables - -```python3 -geographic_bounds -``` - -return bounds in WGS84. - -#### Methods - - -#### feature - -```python3 -def feature( - self, - shape: Dict, - **kwargs: Any -) -> Coroutine[Any, Any, rio_tiler.models.ImageData] -``` - - -Read a Dataset for a GeoJSON feature. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| shape | dict | Valid GeoJSON feature. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### info - -```python3 -def info( - self -) -> Coroutine[Any, Any, rio_tiler.models.Info] -``` - - -Return Dataset's info. - -**Returns:** - -| Type | Description | -|---|---| -| rio_tile.models.Info | Dataset info. | - - -#### part - -```python3 -def part( - self, - bbox: Tuple[float, float, float, float], - **kwargs: Any -) -> Coroutine[Any, Any, rio_tiler.models.ImageData] -``` - - -Read a Part of a Dataset. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| bbox | tuple | Output bounds (left, bottom, right, top) in target crs. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### point - -```python3 -def point( - self, - lon: float, - lat: float, - **kwargs: Any -) -> Coroutine[Any, Any, List] -``` - - -Read a value from a Dataset. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| lon | float | Longitude. | None | -| lat | float | Latitude. | None | - -**Returns:** - -| Type | Description | -|---|---| -| list | Pixel value per bands/assets. | - - -#### preview +## Variables ```python3 -def preview( - self, - **kwargs: Any -) -> Coroutine[Any, Any, rio_tiler.models.ImageData] -``` - - -Read a preview of a Dataset. - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### statistics - -```python3 -def statistics( - self, - **kwargs: Any -) -> Coroutine[Any, Any, Dict[str, rio_tiler.models.BandStatistics]] -``` - - -Return bands statistics from a dataset. - -**Returns:** - -| Type | Description | -|---|---| -| Dict[str, rio_tiler.models.BandStatistics] | bands statistics. | - - -#### tile - -```python3 -def tile( - self, - tile_x: int, - tile_y: int, - tile_z: int, - **kwargs: Any -) -> Coroutine[Any, Any, rio_tiler.models.ImageData] -``` - - -Read a Map tile from the Dataset. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| tile_x | int | Tile's horizontal index. | None | -| tile_y | int | Tile's vertical index. | None | -| tile_z | int | Tile's zoom level index. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and tile spatial info. | - - -#### tile_exists - -```python3 -def tile_exists( - self, - tile_x: int, - tile_y: int, - tile_z: int -) -> bool +WGS84_CRS ``` - -Check if a tile intersects the dataset bounds. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| tile_x | int | Tile's horizontal index. | None | -| tile_y | int | Tile's vertical index. | None | -| tile_z | int | Tile's zoom level index. | None | - -**Returns:** - -| Type | Description | -|---|---| -| bool | True if the tile intersects the dataset bounds. | +## Classes ### BaseReader ```python3 class BaseReader( input: Any, - tms: morecantile.models.TileMatrixSet = + tms: morecantile.models.TileMatrixSet = rio_tiler.models.ImageData ``` @@ -301,8 +96,7 @@ Return Dataset's info. ```python3 def part( self, - bbox: Tuple[float, float, float, float], - **kwargs: Any + bbox: Tuple[float, float, float, float] ) -> rio_tiler.models.ImageData ``` @@ -328,9 +122,8 @@ Read a Part of a Dataset. def point( self, lon: float, - lat: float, - **kwargs: Any -) -> List + lat: float +) -> rio_tiler.models.PointData ``` @@ -347,15 +140,14 @@ Read a value from a Dataset. | Type | Description | |---|---| -| list | Pixel value per bands/assets. | +| rio_tiler.models.PointData | PointData instance with data, mask and spatial info. | #### preview ```python3 def preview( - self, - **kwargs: Any + self ) -> rio_tiler.models.ImageData ``` @@ -373,8 +165,7 @@ Read a preview of a Dataset. ```python3 def statistics( - self, - **kwargs: Any + self ) -> Dict[str, rio_tiler.models.BandStatistics] ``` @@ -395,8 +186,7 @@ def tile( self, tile_x: int, tile_y: int, - tile_z: int, - **kwargs: Any + tile_z: int ) -> rio_tiler.models.ImageData ``` @@ -451,7 +241,9 @@ Check if a tile intersects the dataset bounds. ```python3 class MultiBandReader( input: Any, - tms: morecantile.models.TileMatrixSet = , + tms: morecantile.models.TileMatrixSet = rio_tiler.models.ImageData ``` @@ -559,7 +351,7 @@ def part( self, bbox: Tuple[float, float, float, float], bands: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, + expression: Optional[str] = None, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -591,9 +383,9 @@ def point( lon: float, lat: float, bands: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, + expression: Optional[str] = None, **kwargs: Any -) -> List +) -> rio_tiler.models.PointData ``` @@ -613,7 +405,7 @@ Read a pixel values from multiple bands. | Type | Description | |---|---| -| list | Pixel value per bands. | +| None | PointData | #### preview @@ -622,7 +414,7 @@ Read a pixel values from multiple bands. def preview( self, bands: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, + expression: Optional[str] = None, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -651,11 +443,11 @@ Read and merge previews from multiple bands. def statistics( self, bands: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, + expression: Optional[str] = None, categorical: bool = False, - categories: Union[List[float], NoneType] = None, - percentiles: List[int] = [2, 98], - hist_options: Union[Dict, NoneType] = None, + categories: Optional[List[float]] = None, + percentiles: Optional[List[int]] = None, + hist_options: Optional[Dict] = None, max_size: int = 1024, **kwargs: Any ) -> Dict[str, rio_tiler.models.BandStatistics] @@ -693,7 +485,7 @@ def tile( tile_y: int, tile_z: int, bands: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, + expression: Optional[str] = None, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -752,7 +544,9 @@ Check if a tile intersects the dataset bounds. ```python3 class MultiBaseReader( input: Any, - tms: morecantile.models.TileMatrixSet = , + tms: morecantile.models.TileMatrixSet = rio_tiler.models.ImageData ``` @@ -811,7 +605,6 @@ Read and merge parts defined by geojson feature from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.feature` method. | None | **Returns:** @@ -853,13 +646,12 @@ Return metadata from multiple assets. def merged_statistics( self, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, categorical: bool = False, - categories: Union[List[float], NoneType] = None, - percentiles: List[int] = [2, 98], - hist_options: Union[Dict, NoneType] = None, + categories: Optional[List[float]] = None, + percentiles: Optional[List[int]] = None, + hist_options: Optional[Dict] = None, max_size: int = 1024, **kwargs: Any ) -> Dict[str, rio_tiler.models.BandStatistics] @@ -875,7 +667,6 @@ Return array statistics for multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | categorical | bool | treat input data as categorical data. Defaults to False. | False | | categories | list of numbers | list of categories to return value for. | None | | percentiles | list of numbers | list of percentile values to calculate. Defaults to `[2, 98]`. | `[2, 98]` | @@ -895,7 +686,8 @@ Return array statistics for multiple assets. ```python3 def parse_expression( self, - expression: str + expression: str, + asset_as_band: bool = False ) -> Tuple ``` @@ -910,9 +702,9 @@ def part( self, bbox: Tuple[float, float, float, float], assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -928,7 +720,6 @@ Read and merge parts from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.part` method. | None | **Returns:** @@ -946,11 +737,11 @@ def point( lon: float, lat: float, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any -) -> List +) -> rio_tiler.models.PointData ``` @@ -965,14 +756,13 @@ Read pixel value from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.point` method. | None | **Returns:** | Type | Description | |---|---| -| list | Pixel values per assets. | +| None | PointData | #### preview @@ -981,9 +771,9 @@ Read pixel value from multiple assets. def preview( self, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -998,7 +788,6 @@ Read and merge previews from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.preview` method. | None | **Returns:** @@ -1014,8 +803,8 @@ Read and merge previews from multiple assets. def statistics( self, assets: Union[Sequence[str], str] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_expression: Optional[Dict[str, str]] = None, **kwargs: Any ) -> Dict[str, Dict[str, rio_tiler.models.BandStatistics]] ``` @@ -1048,9 +837,9 @@ def tile( tile_y: int, tile_z: int, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -1068,7 +857,6 @@ Read and merge Wep Map tiles from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.tile` method. | None | **Returns:** @@ -1110,7 +898,7 @@ Check if a tile intersects the dataset bounds. ```python3 class SpatialMixin( - tms: morecantile.models.TileMatrixSet = + tms: morecantile.models.TileMatrixSet = , - minzoom: int = None, - maxzoom: int = None, - geographic_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - colormap: Dict = None, - nodata: Union[float, int, str, NoneType] = None, - unscale: Union[bool, NoneType] = None, - resampling_method: Union[rasterio.enums.Resampling, NoneType] = None, - vrt_options: Union[Dict, NoneType] = None, - post_process: Union[Callable[[numpy.ndarray, numpy.ndarray], Tuple[numpy.ndarray, numpy.ndarray]], NoneType] = None -) -``` - -#### Attributes - -| Name | Type | Description | Default | -|---|---|---|---| -| input | str | Cloud Optimized GeoTIFF path. | None | -| dataset | rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT | Rasterio dataset. | None | -| bounds | tuple | Dataset bounds (left, bottom, right, top). | None | -| crs | rasterio.crs.CRS | Dataset CRS. | None | -| tms | morecantile.TileMatrixSet | TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. | `WebMercatorQuad` | -| minzoom | int | Set minzoom for the tiles. | None | -| maxzoom | int | Set maxzoom for the tiles. | None | -| geographic_crs | rasterio.crs.CRS | CRS to use as geographic coordinate system. Defaults to WGS84. | WGS84 | -| colormap | dict | Overwrite internal colormap. | None | -| nodata | int or float or str | Global options, overwrite internal nodata value. | None | -| unscale | bool | Global options, apply internal scale and offset on all read operations. | None | -| resampling_method | rasterio.enums.Resampling | Global options, resampling method to use for read operations. | None | -| vrt_options | dict | Global options, WarpedVRT options to use for read operations. | None | -| post_process | callable | Global options, Function to apply after all read operations. | None | - -#### Ancestors (in MRO) - -* rio_tiler.io.base.BaseReader -* rio_tiler.io.base.SpatialMixin - -#### Descendants - -* rio_tiler.io.cogeo.GCPCOGReader - -#### Instance variables - -```python3 -geographic_bounds -``` - -return bounds in WGS84. - -#### Methods - - -#### close - -```python3 -def close( - self -) -``` - - -Close rasterio dataset. - - -#### feature - -```python3 -def feature( - self, - shape: Dict, - dst_crs: Union[rasterio.crs.CRS, NoneType] = None, - shape_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - max_size: Union[int, NoneType] = None, - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read part of a COG defined by a geojson feature. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| shape | dict | Valid GeoJSON feature. | None | -| dst_crs | rasterio.crs.CRS | Overwrite target coordinate reference system. | None | -| shape_crs | rasterio.crs.CRS | Input geojson coordinate reference system. Defaults to `epsg:4326`. | `epsg:4326` | -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. | None | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Options to forward to the `COGReader.part` method. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### get_zooms - -```python3 -def get_zooms( - self, - tilesize: int = 256 -) -> Tuple[int, int] -``` - - -Calculate raster min/max zoom level for input TMS. - - -#### info - -```python3 -def info( - self -) -> rio_tiler.models.Info -``` - - -Return COG info. - - -#### part - -```python3 -def part( - self, - bbox: Tuple[float, float, float, float], - dst_crs: Union[rasterio.crs.CRS, NoneType] = None, - bounds_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - indexes: Union[int, Sequence, NoneType] = None, - expression: Union[str, NoneType] = None, - max_size: Union[int, NoneType] = None, - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read part of a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| bbox | tuple | Output bounds (left, bottom, right, top) in target crs ("dst_crs"). | None | -| dst_crs | rasterio.crs.CRS | Overwrite target coordinate reference system. | None | -| bounds_crs | rasterio.crs.CRS | Bounds Coordinate Reference System. Defaults to `epsg:4326`. | `epsg:4326` | -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. | None | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.part` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### point - -```python3 -def point( - self, - lon: float, - lat: float, - coord_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - **kwargs: Any -) -> List -``` - - -Read a pixel value from a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| lon | float | Longitude. | None | -| lat | float | Latitude. | None | -| coord_crs | rasterio.crs.CRS | Coordinate Reference System of the input coords. Defaults to `epsg:4326`. | `epsg:4326` | -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.point` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| list | Pixel value per band indexes. | - - -#### preview - -```python3 -def preview( - self, - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - max_size: int = 1024, - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Return a preview of a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. | 1024 | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.preview` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### read - -```python3 -def read( - self, - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read the COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.read` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### statistics - -```python3 -def statistics( - self, - categorical: bool = False, - categories: Union[List[float], NoneType] = None, - percentiles: List[int] = [2, 98], - hist_options: Union[Dict, NoneType] = None, - max_size: int = 1024, - **kwargs: Any -) -> Dict[str, rio_tiler.models.BandStatistics] -``` - - -Return bands statistics from a dataset. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| categorical | bool | treat input data as categorical data. Defaults to False. | False | -| categories | list of numbers | list of categories to return value for. | None | -| percentiles | list of numbers | list of percentile values to calculate. Defaults to `[2, 98]`. | `[2, 98]` | -| hist_options | dict | Options to forward to numpy.histogram function. | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. | 1024 | -| kwargs | optional | Options to forward to `self.preview`. | None | - -**Returns:** - -| Type | Description | -|---|---| -| Dict[str, rio_tiler.models.BandStatistics] | bands statistics. | - - -#### tile - -```python3 -def tile( - self, - tile_x: int, - tile_y: int, - tile_z: int, - tilesize: int = 256, - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - tile_buffer: Union[float, int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read a Web Map tile from a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| tile_x | int | Tile's horizontal index. | None | -| tile_y | int | Tile's vertical index. | None | -| tile_z | int | Tile's zoom level index. | None | -| tilesize | int | Output image size. Defaults to `256`. | `256` | -| indexes | int or sequence of int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| tile_buffer | int or float | 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). | None | -| kwargs | optional | Options to forward to the `COGReader.part` method. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and tile spatial info. | - - -#### tile_exists - -```python3 -def tile_exists( - self, - tile_x: int, - tile_y: int, - tile_z: int -) -> bool -``` - - -Check if a tile intersects the dataset bounds. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| tile_x | int | Tile's horizontal index. | None | -| tile_y | int | Tile's vertical index. | None | -| tile_z | int | Tile's zoom level index. | None | - -**Returns:** - -| Type | Description | -|---|---| -| bool | True if the tile intersects the dataset bounds. | - -### GCPCOGReader - -```python3 -class GCPCOGReader( - input: str, - src_dataset: Union[rasterio.io.DatasetReader, rasterio.io.DatasetWriter, rasterio.io.MemoryFile, rasterio.vrt.WarpedVRT] = None, - tms: morecantile.models.TileMatrixSet = , - minzoom: int = None, - maxzoom: int = None, - geographic_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - colormap: Dict = None, - nodata: Union[float, int, str, NoneType] = None, - unscale: Union[bool, NoneType] = None, - resampling_method: Union[rasterio.enums.Resampling, NoneType] = None, - vrt_options: Union[Dict, NoneType] = None, - post_process: Union[Callable[[numpy.ndarray, numpy.ndarray], Tuple[numpy.ndarray, numpy.ndarray]], NoneType] = None -) -``` - -#### Attributes - -| Name | Type | Description | Default | -|---|---|---|---| -| input | str | Cloud Optimized GeoTIFF path. | None | -| src_dataset | rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT | Rasterio dataset. | None | -| tms | morecantile.TileMatrixSet | TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. | `WebMercatorQuad` | -| minzoom | int | Overwrite Min Zoom level. | None | -| maxzoom | int | Overwrite Max Zoom level. | None | -| colormap | dict | Overwrite internal colormap. | None | -| nodata | int or float or str | Global options, overwrite internal nodata value. | None | -| unscale | bool | Global options, apply internal scale and offset on all read operations. | None | -| resampling_method | rasterio.enums.Resampling | Global options, resampling method to use for read operations. | None | -| vrt_options | dict | Global options, WarpedVRT options to use for read operations. | None | -| post_process | callable | Global options, Function to apply after all read operations. | None | -| dataset | rasterio.vrtWarpedVRT | Warped VRT constructed with dataset GCPS info. **READ ONLY attribute**. | None | - -#### Ancestors (in MRO) - -* rio_tiler.io.cogeo.COGReader -* rio_tiler.io.base.BaseReader -* rio_tiler.io.base.SpatialMixin - -#### Instance variables - -```python3 -geographic_bounds -``` - -return bounds in WGS84. - -#### Methods - - -#### close - -```python3 -def close( - self -) -``` - - -Close rasterio dataset. - - -#### feature - -```python3 -def feature( - self, - shape: Dict, - dst_crs: Union[rasterio.crs.CRS, NoneType] = None, - shape_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - max_size: Union[int, NoneType] = None, - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read part of a COG defined by a geojson feature. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| shape | dict | Valid GeoJSON feature. | None | -| dst_crs | rasterio.crs.CRS | Overwrite target coordinate reference system. | None | -| shape_crs | rasterio.crs.CRS | Input geojson coordinate reference system. Defaults to `epsg:4326`. | `epsg:4326` | -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. | None | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Options to forward to the `COGReader.part` method. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### get_zooms - -```python3 -def get_zooms( - self, - tilesize: int = 256 -) -> Tuple[int, int] -``` - - -Calculate raster min/max zoom level for input TMS. - - -#### info - -```python3 -def info( - self -) -> rio_tiler.models.Info -``` - - -Return COG info. - - -#### part - -```python3 -def part( - self, - bbox: Tuple[float, float, float, float], - dst_crs: Union[rasterio.crs.CRS, NoneType] = None, - bounds_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - indexes: Union[int, Sequence, NoneType] = None, - expression: Union[str, NoneType] = None, - max_size: Union[int, NoneType] = None, - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read part of a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| bbox | tuple | Output bounds (left, bottom, right, top) in target crs ("dst_crs"). | None | -| dst_crs | rasterio.crs.CRS | Overwrite target coordinate reference system. | None | -| bounds_crs | rasterio.crs.CRS | Bounds Coordinate Reference System. Defaults to `epsg:4326`. | `epsg:4326` | -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. | None | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.part` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### point - -```python3 -def point( - self, - lon: float, - lat: float, - coord_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - **kwargs: Any -) -> List -``` - - -Read a pixel value from a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| lon | float | Longitude. | None | -| lat | float | Latitude. | None | -| coord_crs | rasterio.crs.CRS | Coordinate Reference System of the input coords. Defaults to `epsg:4326`. | `epsg:4326` | -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.point` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| list | Pixel value per band indexes. | - - -#### preview - -```python3 -def preview( - self, - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - max_size: int = 1024, - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Return a preview of a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. | 1024 | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.preview` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### read - -```python3 -def read( - self, - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read the COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| indexes | sequence of int or int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| kwargs | optional | Options to forward to the `rio_tiler.reader.read` function. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and input spatial info. | - - -#### statistics - -```python3 -def statistics( - self, - categorical: bool = False, - categories: Union[List[float], NoneType] = None, - percentiles: List[int] = [2, 98], - hist_options: Union[Dict, NoneType] = None, - max_size: int = 1024, - **kwargs: Any -) -> Dict[str, rio_tiler.models.BandStatistics] -``` - - -Return bands statistics from a dataset. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| categorical | bool | treat input data as categorical data. Defaults to False. | False | -| categories | list of numbers | list of categories to return value for. | None | -| percentiles | list of numbers | list of percentile values to calculate. Defaults to `[2, 98]`. | `[2, 98]` | -| hist_options | dict | Options to forward to numpy.histogram function. | None | -| max_size | int | Limit the size of the longest dimension of the dataset read, respecting bounds X/Y aspect ratio. Defaults to 1024. | 1024 | -| kwargs | optional | Options to forward to `self.preview`. | None | - -**Returns:** - -| Type | Description | -|---|---| -| Dict[str, rio_tiler.models.BandStatistics] | bands statistics. | - - -#### tile - -```python3 -def tile( - self, - tile_x: int, - tile_y: int, - tile_z: int, - tilesize: int = 256, - indexes: Union[Sequence[int], int, NoneType] = None, - expression: Union[str, NoneType] = None, - tile_buffer: Union[float, int, NoneType] = None, - **kwargs: Any -) -> rio_tiler.models.ImageData -``` - - -Read a Web Map tile from a COG. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| tile_x | int | Tile's horizontal index. | None | -| tile_y | int | Tile's vertical index. | None | -| tile_z | int | Tile's zoom level index. | None | -| tilesize | int | Output image size. Defaults to `256`. | `256` | -| indexes | int or sequence of int | Band indexes. | None | -| expression | str | rio-tiler expression (e.g. b1/b2+b3). | None | -| tile_buffer | int or float | 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). | None | -| kwargs | optional | Options to forward to the `COGReader.part` method. | None | - -**Returns:** - -| Type | Description | -|---|---| -| rio_tiler.models.ImageData | ImageData instance with data, mask and tile spatial info. | - - -#### tile_exists - -```python3 -def tile_exists( - self, - tile_x: int, - tile_y: int, - tile_z: int -) -> bool -``` - - -Check if a tile intersects the dataset bounds. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| tile_x | int | Tile's horizontal index. | None | -| tile_y | int | Tile's vertical index. | None | -| tile_z | int | Tile's zoom level index. | None | - -**Returns:** - -| Type | Description | -|---|---| -| bool | True if the tile intersects the dataset bounds. | \ No newline at end of file diff --git a/docs/src/api/rio_tiler/io/stac.md b/docs/src/api/rio_tiler/io/stac.md index 705c173b..727d7441 100644 --- a/docs/src/api/rio_tiler/io/stac.md +++ b/docs/src/api/rio_tiler/io/stac.md @@ -10,9 +10,28 @@ None DEFAULT_VALID_TYPE ``` +```python3 +WGS84_CRS +``` + ## Functions +### aws_get_object + +```python3 +def aws_get_object( + bucket: str, + key: str, + request_pays: bool = False, + client: 'boto3_session.client' = None +) -> bytes +``` + + +AWS s3 get object content. + + ### fetch ```python3 @@ -48,17 +67,18 @@ A LRU cache is set on top of this function. class STACReader( input: str, item: Union[NoneType, Dict, pystac.item.Item] = None, - tms: morecantile.models.TileMatrixSet = , - minzoom: int = None, - maxzoom: int = None, + tms: morecantile.models.TileMatrixSet = , + include_assets: Optional[Set[str]] = None, + exclude_assets: Optional[Set[str]] = None, + include_asset_types: Set[str] = {'image/tiff; profile=cloud-optimized; application=geotiff', 'image/tiff; application=geotiff', 'image/x.geotiff', 'image/tiff; application=geotiff; profile=cloud-optimized', 'image/vnd.stac.geotiff; cloud-optimized=true', 'application/x-hdf', 'image/jp2', 'application/x-hdf5', 'image/tiff'}, + exclude_asset_types: Optional[Set[str]] = None, + reader: Type[rio_tiler.io.base.BaseReader] = , reader_options: Dict = NOTHING, - fetch_options: Dict = NOTHING + fetch_options: Dict = NOTHING, + ctx: Any = ) ``` @@ -68,14 +88,15 @@ class STACReader( |---|---|---|---| | input | str | STAC Item path, URL or S3 URL. | None | | item | dict or pystac.Item, STAC | Stac Item. | None | +| tms | morecantile.TileMatrixSet | TileMatrixSet grid definition. Defaults to `WebMercatorQuad`. | `WebMercatorQuad` | | minzoom | int | Set minzoom for the tiles. | None | | maxzoom | int | Set maxzoom for the tiles. | None | | geographic_crs | rasterio.crs.CRS | CRS to use as geographic coordinate system. Defaults to WGS84. | WGS84 | -| include | set of string | Only Include specific assets. | None | -| exclude | set of string | Exclude specific assets. | None | +| include_assets | set of string | Only Include specific assets. | None | +| exclude_assets | set of string | Exclude specific assets. | None | | include_asset_types | set of string | Only include some assets base on their type. | None | | exclude_asset_types | set of string | Exclude some assets base on their type. | None | -| reader | rio_tiler.io.BaseReader | rio-tiler Reader. Defaults to `rio_tiler.io.COGReader`. | `rio_tiler.io.COGReader` | +| reader | rio_tiler.io.BaseReader | rio-tiler Reader. Defaults to `rio_tiler.io.Reader`. | `rio_tiler.io.Reader` | | reader_options | dict | Additional option to forward to the Reader. Defaults to `{}`. | `{}` | | fetch_options | dict | Options to pass to `rio_tiler.io.stac.fetch` function fetching the STAC Items. Defaults to `{}`. | `{}` | @@ -90,7 +111,7 @@ class STACReader( geographic_bounds ``` -return bounds in WGS84. +Return dataset bounds in geographic_crs. #### Methods @@ -102,9 +123,9 @@ def feature( self, shape: Dict, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -120,7 +141,6 @@ Read and merge parts defined by geojson feature from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.feature` method. | None | **Returns:** @@ -162,13 +182,12 @@ Return metadata from multiple assets. def merged_statistics( self, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, categorical: bool = False, - categories: Union[List[float], NoneType] = None, - percentiles: List[int] = [2, 98], - hist_options: Union[Dict, NoneType] = None, + categories: Optional[List[float]] = None, + percentiles: Optional[List[int]] = None, + hist_options: Optional[Dict] = None, max_size: int = 1024, **kwargs: Any ) -> Dict[str, rio_tiler.models.BandStatistics] @@ -184,7 +203,6 @@ Return array statistics for multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | categorical | bool | treat input data as categorical data. Defaults to False. | False | | categories | list of numbers | list of categories to return value for. | None | | percentiles | list of numbers | list of percentile values to calculate. Defaults to `[2, 98]`. | `[2, 98]` | @@ -204,7 +222,8 @@ Return array statistics for multiple assets. ```python3 def parse_expression( self, - expression: str + expression: str, + asset_as_band: bool = False ) -> Tuple ``` @@ -219,9 +238,9 @@ def part( self, bbox: Tuple[float, float, float, float], assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -237,7 +256,6 @@ Read and merge parts from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.part` method. | None | **Returns:** @@ -255,11 +273,11 @@ def point( lon: float, lat: float, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any -) -> List +) -> rio_tiler.models.PointData ``` @@ -274,14 +292,13 @@ Read pixel value from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.point` method. | None | **Returns:** | Type | Description | |---|---| -| list | Pixel values per assets. | +| None | PointData | #### preview @@ -290,9 +307,9 @@ Read pixel value from multiple assets. def preview( self, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -307,7 +324,6 @@ Read and merge previews from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.preview` method. | None | **Returns:** @@ -323,8 +339,8 @@ Read and merge previews from multiple assets. def statistics( self, assets: Union[Sequence[str], str] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_expression: Optional[Dict[str, str]] = None, **kwargs: Any ) -> Dict[str, Dict[str, rio_tiler.models.BandStatistics]] ``` @@ -357,9 +373,9 @@ def tile( tile_y: int, tile_z: int, assets: Union[Sequence[str], str] = None, - expression: Union[str, NoneType] = None, - asset_indexes: Union[Dict[str, Union[Sequence[int], int]], NoneType] = None, - asset_expression: Union[Dict[str, str], NoneType] = None, + expression: Optional[str] = None, + asset_indexes: Optional[Dict[str, Union[Sequence[int], int]]] = None, + asset_as_band: bool = False, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -377,7 +393,6 @@ Read and merge Wep Map tiles from multiple assets. | assets | sequence of str or str | assets to fetch info from. | None | | expression | str | rio-tiler expression for the asset list (e.g. asset1/asset2+asset3). | None | | asset_indexes | dict | Band indexes for each asset (e.g {"asset1": 1, "asset2": (1, 2,)}). | None | -| asset_expression | dict | rio-tiler expression for each asset (e.g. {"asset1": "b1/b2+b3", "asset2": ...}). | None | | kwargs | optional | Options to forward to the `self.reader.tile` method. | None | **Returns:** diff --git a/docs/src/api/rio_tiler/models.md b/docs/src/api/rio_tiler/models.md index f62ef24a..b4a8bdf9 100644 --- a/docs/src/api/rio_tiler/models.md +++ b/docs/src/api/rio_tiler/models.md @@ -6,6 +6,10 @@ None ## Variables +```python3 +WGS84_CRS +``` + ```python3 dtype_ranges ``` @@ -13,17 +17,56 @@ dtype_ranges ## Functions +### masked_and_3d + +```python3 +def masked_and_3d( + array: numpy.ndarray +) -> numpy.ma.core.MaskedArray +``` + + +Makes sure we have a 3D array and mask + + +### rescale_image + +```python3 +def rescale_image( + array: numpy.ma.core.MaskedArray, + in_range: Sequence[Tuple[Union[float, int], Union[float, int]]], + out_range: Sequence[Tuple[Union[float, int], Union[float, int]]] = ((0, 255),), + out_dtype: Union[str, numpy.number] = 'uint8' +) -> numpy.ma.core.MaskedArray +``` + + +Rescale image data in-place. + + ### to_coordsbbox ```python3 def to_coordsbbox( bbox -) -> Union[rasterio.coords.BoundingBox, NoneType] +) -> Optional[rasterio.coords.BoundingBox] ``` Convert bbox to CoordsBbox nameTuple. + +### to_masked + +```python3 +def to_masked( + array: numpy.ndarray +) -> numpy.ma.core.MaskedArray +``` + + +Makes sure we have a MaskedArray. + ## Classes ### BandStatistics @@ -31,7 +74,7 @@ Convert bbox to CoordsBbox nameTuple. ```python3 class BandStatistics( __pydantic_self__, - **data: Any + **data: 'Any' ) ``` @@ -39,12 +82,15 @@ class BandStatistics( * rio_tiler.models.RioTilerBaseModel * pydantic.main.BaseModel -* pydantic.utils.Representation #### Class variables ```python3 -Config +model_config +``` + +```python3 +model_fields ``` #### Static methods @@ -54,265 +100,237 @@ Config ```python3 def construct( - _fields_set: Union[ForwardRef('SetStr'), NoneType] = None, - **values: Any + _fields_set: 'set[str] | None' = None, + **values: 'Any' ) -> 'Model' ``` -Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. - -Default values are respected, but no other validation is performed. -Behaves as if `Config.extra = 'allow'` was set since it adds all passed values #### from_orm ```python3 def from_orm( - obj: Any + obj: 'Any' ) -> 'Model' ``` -#### parse_file +#### model_construct ```python3 -def parse_file( - path: Union[str, pathlib.Path], - *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False +def model_construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' ) -> 'Model' ``` +Creates a new instance of the `Model` class with validated data. - -#### parse_obj +Creates a new model setting `__dict__` and `__pydantic_fields_set__` from trusted or pre-validated data. +Default values are respected, but no other validation is performed. +Behaves as if `Config.extra = 'allow'` was set since it adds all passed values -```python3 -def parse_obj( - obj: Any -) -> 'Model' -``` +**Parameters:** - +| Name | Type | Description | Default | +|---|---|---|---| +| _fields_set | None | The set of field names accepted for the Model instance. | None | +| values | None | Trusted or pre-validated data dictionary. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A new instance of the `Model` class with validated data. | -#### parse_raw +#### model_json_schema ```python3 -def parse_raw( - b: Union[str, bytes], - *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False -) -> 'Model' +def model_json_schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + schema_generator: 'type[GenerateJsonSchema]' = , + mode: 'JsonSchemaMode' = 'validation' +) -> 'dict[str, Any]' ``` +Generates a JSON schema for a model class. - -#### schema +**Parameters:** -```python3 -def schema( - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}' -) -> 'DictStrAny' -``` +| Name | Type | Description | Default | +|---|---|---|---| +| by_alias | None | Whether to use attribute aliases or not. | None | +| ref_template | None | The reference template. | None | +| schema_generator | None | To override the logic used to generate the JSON schema, as a subclass of +`GenerateJsonSchema` with your desired modifications | None | +| mode | None | The mode in which to generate the schema. | None | - +**Returns:** + +| Type | Description | +|---|---| +| None | The JSON schema for the given model class. | -#### schema_json +#### model_parametrized_name ```python3 -def schema_json( - *, - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}', - **dumps_kwargs: Any -) -> 'unicode' +def model_parametrized_name( + params: 'tuple[type[Any], ...]' +) -> 'str' ``` +Compute the class name for parametrizations of generic classes. - -#### update_forward_refs +This method can be overridden to achieve a custom naming scheme for generic BaseModels. -```python3 -def update_forward_refs( - **localns: Any -) -> None -``` +**Parameters:** - -Try to update ForwardRefs on fields based on this Model, globalns and localns. +| Name | Type | Description | Default | +|---|---|---|---| +| params | None | Tuple of types of the class. Given a generic class +`Model` with 2 type variables and a concrete model `Model[str, int]`, +the value `(str, int)` would be passed to `params`. | None | - -#### validate +**Returns:** -```python3 -def validate( - value: Any -) -> 'Model' -``` +| Type | Description | +|---|---| +| None | String representing the new class where `params` are passed to `cls` as type variables. | - +**Raises:** -#### Methods +| Type | Description | +|---|---| +| TypeError | Raised when trying to generate concrete names for non-generic models. | -#### copy +#### model_rebuild ```python3 -def copy( - self: 'Model', +def model_rebuild( *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - update: 'DictStrAny' = None, - deep: bool = False -) -> 'Model' + force: 'bool' = False, + raise_errors: 'bool' = True, + _parent_namespace_depth: 'int' = 2, + _types_namespace: 'dict[str, Any] | None' = None +) -> 'bool | None' ``` -Duplicate a model, optionally choose which fields to include, exclude and change. +Try to rebuild the pydantic-core schema for the model. + +This may be necessary when one of the annotations is a ForwardRef which could not be resolved during +the initial attempt to build the schema, and automatic rebuilding fails. **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| include | None | fields to include in new model | None | -| exclude | None | fields to exclude from new model, as with values this takes precedence over include | None | -| update | None | values to change/add in the new model. Note: the data is not validated before creating -the new model: you should trust this data | None | -| deep | None | set to `True` to make a deep copy of the model | None | +| force | None | Whether to force the rebuilding of the model schema, defaults to `False`. | None | +| raise_errors | None | Whether to raise errors, defaults to `True`. | None | +| _parent_namespace_depth | None | The depth level of the parent namespace, defaults to 2. | None | +| _types_namespace | None | The types namespace, defaults to `None`. | None | **Returns:** | Type | Description | |---|---| -| None | new model instance | - - -#### dict - -```python3 -def dict( - self, - *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False -) -> 'DictStrAny' -``` - - -Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. +| None | Returns `None` if the schema is already "complete" and rebuilding was not required. +If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`. | -#### json +#### model_validate ```python3 -def json( - self, +def model_validate( + obj: 'Any', *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - encoder: Union[Callable[[Any], Any], NoneType] = None, - models_as_dict: bool = True, - **dumps_kwargs: Any -) -> 'unicode' + strict: 'bool | None' = None, + from_attributes: 'bool | None' = None, + context: 'dict[str, Any] | None' = None +) -> 'Model' ``` -Generate a JSON representation of the model, `include` and `exclude` arguments as per `dict()`. - -`encoder` is an optional function to supply as `default` to json.dumps(), other arguments as per `json.dumps()`. - -### Bounds - -```python3 -class Bounds( - __pydantic_self__, - **data: Any -) -``` - -#### Ancestors (in MRO) +Validate a pydantic model instance. -* rio_tiler.models.RioTilerBaseModel -* pydantic.main.BaseModel -* pydantic.utils.Representation +**Parameters:** -#### Descendants +| Name | Type | Description | Default | +|---|---|---|---| +| obj | None | The object to validate. | None | +| strict | None | Whether to raise an exception on invalid fields. | None | +| from_attributes | None | Whether to extract data from object attributes. | None | +| context | None | Additional context to pass to the validator. | None | -* rio_tiler.models.SpatialInfo +**Returns:** -#### Class variables +| Type | Description | +|---|---| +| None | The validated model instance. | -```python3 -Config -``` +**Raises:** -#### Static methods +| Type | Description | +|---|---| +| ValidationError | If the object could not be validated. | -#### construct +#### model_validate_json ```python3 -def construct( - _fields_set: Union[ForwardRef('SetStr'), NoneType] = None, - **values: Any +def model_validate_json( + json_data: 'str | bytes | bytearray', + *, + strict: 'bool | None' = None, + context: 'dict[str, Any] | None' = None ) -> 'Model' ``` -Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. +Validate the given JSON data against the Pydantic model. -Default values are respected, but no other validation is performed. -Behaves as if `Config.extra = 'allow'` was set since it adds all passed values +**Parameters:** - -#### from_orm +| Name | Type | Description | Default | +|---|---|---|---| +| json_data | None | The JSON data to validate. | None | +| strict | None | Whether to enforce types strictly. | None | +| context | None | Extra variables to pass to the validator. | None | -```python3 -def from_orm( - obj: Any -) -> 'Model' -``` +**Returns:** - +| Type | Description | +|---|---| +| None | The validated Pydantic model. | + +**Raises:** + +| Type | Description | +|---|---| +| ValueError | If `json_data` is not a JSON string. | #### parse_file ```python3 def parse_file( - path: Union[str, pathlib.Path], + path: 'str | Path', *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False ) -> 'Model' ``` @@ -323,7 +341,7 @@ def parse_file( ```python3 def parse_obj( - obj: Any + obj: 'Any' ) -> 'Model' ``` @@ -334,12 +352,12 @@ def parse_obj( ```python3 def parse_raw( - b: Union[str, bytes], + b: 'str | bytes', *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False ) -> 'Model' ``` @@ -350,9 +368,9 @@ def parse_raw( ```python3 def schema( - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}' -) -> 'DictStrAny' + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}' +) -> 'typing.Dict[str, Any]' ``` @@ -363,10 +381,10 @@ def schema( ```python3 def schema_json( *, - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}', - **dumps_kwargs: Any -) -> 'unicode' + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + **dumps_kwargs: 'Any' +) -> 'str' ``` @@ -376,24 +394,43 @@ def schema_json( ```python3 def update_forward_refs( - **localns: Any -) -> None + **localns: 'Any' +) -> 'None' ``` -Try to update ForwardRefs on fields based on this Model, globalns and localns. #### validate ```python3 def validate( - value: Any + value: 'Any' ) -> 'Model' ``` +#### Instance variables + +```python3 +model_computed_fields +``` + +Get the computed fields of this model instance. + +```python3 +model_extra +``` + +Get extra fields set during validation. + +```python3 +model_fields_set +``` + +Returns the set of fields that have been set on this model instance. + #### Methods @@ -403,31 +440,44 @@ def validate( def copy( self: 'Model', *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - update: 'DictStrAny' = None, - deep: bool = False + include: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + exclude: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + update: 'typing.Dict[str, Any] | None' = None, + deep: 'bool' = False ) -> 'Model' ``` -Duplicate a model, optionally choose which fields to include, exclude and change. +Returns a copy of the model. + +!!! warning "Deprecated" + This method is now deprecated; use `model_copy` instead. + +If you need `include` or `exclude`, use: + +```py +data = self.model_dump(include=include, exclude=exclude, round_trip=True) +data = {**data, **(update or {})} +copied = self.model_validate(data) +``` **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| include | None | fields to include in new model | None | -| exclude | None | fields to exclude from new model, as with values this takes precedence over include | None | -| update | None | values to change/add in the new model. Note: the data is not validated before creating -the new model: you should trust this data | None | -| deep | None | set to `True` to make a deep copy of the model | None | +| include | None | Optional set or mapping +specifying which fields to include in the copied model. | None | +| exclude | None | Optional set or mapping +specifying which fields to exclude in the copied model. | None | +| update | None | Optional dictionary of field-value pairs to override field values +in the copied model. | None | +| deep | None | If True, the values of fields that are Pydantic models will be deep copied. | None | **Returns:** | Type | Description | |---|---| -| None | new model instance | +| None | A copy of the model with included, excluded and updated fields as specified. | #### dict @@ -436,18 +486,16 @@ the new model: you should trust this data | None | def dict( self, *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False -) -> 'DictStrAny' + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False +) -> 'typing.Dict[str, Any]' ``` -Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. #### json @@ -456,249 +504,2030 @@ Generate a dictionary representation of the model, optionally specifying which f def json( self, *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - encoder: Union[Callable[[Any], Any], NoneType] = None, - models_as_dict: bool = True, - **dumps_kwargs: Any -) -> 'unicode' + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + encoder: 'typing.Callable[[Any], Any] | None' = PydanticUndefined, + models_as_dict: 'bool' = PydanticUndefined, + **dumps_kwargs: 'Any' +) -> 'str' ``` -Generate a JSON representation of the model, `include` and `exclude` arguments as per `dict()`. -`encoder` is an optional function to supply as `default` to json.dumps(), other arguments as per `json.dumps()`. - -### ImageData + +#### model_copy ```python3 -class ImageData( - data: numpy.ndarray, - mask: numpy.ndarray = NOTHING, - assets: Union[List, NoneType] = None, - bounds=None, - crs: Union[rasterio.crs.CRS, NoneType] = None, - metadata: Union[Dict, NoneType] = NOTHING, - band_names: Union[List[str], NoneType] = NOTHING -) +def model_copy( + self: 'Model', + *, + update: 'dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' ``` -#### Attributes + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#model_copy + +Returns a copy of the model. + +**Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| data | numpy.ndarray | pixel values. | None | -| mask | numpy.ndarray | rasterio mask values. | None | -| assets | list | list of assets used to construct the data values. | None | -| bounds | BoundingBox | bounding box of the data. | None | -| crs | rasterio.crs.CRS | Coordinates Reference System of the bounds. | None | -| metadata | dict | Additional metadata. Defaults to `{}`. | `{}` | -| band_names | list | name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. | `["1", "2", "3"]` for 3 bands image | +| update | None | Values to change/add in the new model. Note: the data is not validated +before creating the new model. You should trust this data. | None | +| deep | None | Set to `True` to make a deep copy of the model. | None | -#### Static methods +**Returns:** + +| Type | Description | +|---|---| +| None | New model instance. | -#### create_from_list +#### model_dump ```python3 -def create_from_list( - data: Sequence[ForwardRef('ImageData')] -) +def model_dump( + self, + *, + mode: "Literal['json', 'python'] | str" = 'python', + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'dict[str, Any]' ``` -Create ImageData from a sequence of ImageData objects. +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump + +Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| data | sequence | sequence of ImageData. | None | +| mode | None | The mode in which `to_python` should run. +If mode is 'json', the dictionary will only contain JSON serializable types. +If mode is 'python', the dictionary may contain any Python objects. | None | +| include | None | A list of fields to include in the output. | None | +| exclude | None | A list of fields to exclude from the output. | None | +| by_alias | None | Whether to use the field's alias in the dictionary key if defined. | None | +| exclude_unset | None | Whether to exclude fields that are unset or None from the output. | None | +| exclude_defaults | None | Whether to exclude fields that are set to their default value from the output. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None` from the output. | None | +| round_trip | None | Whether to enable serialization and deserialization round-trip support. | None | +| warnings | None | Whether to log warnings when invalid fields are encountered. | None | -#### Instance variables +**Returns:** -```python3 -count -``` +| Type | Description | +|---|---| +| None | A dictionary representation of the model. | -Number of band. + +#### model_dump_json ```python3 -height +def model_dump_json( + self, + *, + indent: 'int | None' = None, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'str' ``` -Height of the data array. + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump_json -```python3 -transform -``` +Generates a JSON representation of the model using Pydantic's `to_json` method. -Returns the affine transform. +**Parameters:** -```python3 -width -``` +| Name | Type | Description | Default | +|---|---|---|---| +| indent | None | Indentation to use in the JSON output. If None is passed, the output will be compact. | None | +| include | None | Field(s) to include in the JSON output. Can take either a string or set of strings. | None | +| exclude | None | Field(s) to exclude from the JSON output. Can take either a string or set of strings. | None | +| by_alias | None | Whether to serialize using field aliases. | None | +| exclude_unset | None | Whether to exclude fields that have not been explicitly set. | None | +| exclude_defaults | None | Whether to exclude fields that have the default value. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None`. | None | +| round_trip | None | Whether to use serialization/deserialization between JSON and class instance. | None | +| warnings | None | Whether to show any warnings that occurred during serialization. | None | -Width of the data array. +**Returns:** -#### Methods +| Type | Description | +|---|---| +| None | A JSON string representation of the model. | -#### as_masked +#### model_post_init ```python3 -def as_masked( - self -) -> numpy.ma.core.MaskedArray +def model_post_init( + self, + _BaseModel__context: 'Any' +) -> 'None' ``` -return a numpy masked array. +Override this method to perform additional initialization after `__init__` and `model_construct`. - -#### data_as_image +This is useful if you want to do some validation that requires the entire model to be initialized. -```python3 +### Bounds + +```python3 +class Bounds( + __pydantic_self__, + **data: 'Any' +) +``` + +#### Ancestors (in MRO) + +* rio_tiler.models.RioTilerBaseModel +* pydantic.main.BaseModel + +#### Descendants + +* rio_tiler.models.SpatialInfo + +#### Class variables + +```python3 +model_config +``` + +```python3 +model_fields +``` + +#### Static methods + + +#### construct + +```python3 +def construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' +) -> 'Model' +``` + + + + +#### from_orm + +```python3 +def from_orm( + obj: 'Any' +) -> 'Model' +``` + + + + +#### model_construct + +```python3 +def model_construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' +) -> 'Model' +``` + + +Creates a new instance of the `Model` class with validated data. + +Creates a new model setting `__dict__` and `__pydantic_fields_set__` from trusted or pre-validated data. +Default values are respected, but no other validation is performed. +Behaves as if `Config.extra = 'allow'` was set since it adds all passed values + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| _fields_set | None | The set of field names accepted for the Model instance. | None | +| values | None | Trusted or pre-validated data dictionary. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A new instance of the `Model` class with validated data. | + + +#### model_json_schema + +```python3 +def model_json_schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + schema_generator: 'type[GenerateJsonSchema]' = , + mode: 'JsonSchemaMode' = 'validation' +) -> 'dict[str, Any]' +``` + + +Generates a JSON schema for a model class. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| by_alias | None | Whether to use attribute aliases or not. | None | +| ref_template | None | The reference template. | None | +| schema_generator | None | To override the logic used to generate the JSON schema, as a subclass of +`GenerateJsonSchema` with your desired modifications | None | +| mode | None | The mode in which to generate the schema. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The JSON schema for the given model class. | + + +#### model_parametrized_name + +```python3 +def model_parametrized_name( + params: 'tuple[type[Any], ...]' +) -> 'str' +``` + + +Compute the class name for parametrizations of generic classes. + +This method can be overridden to achieve a custom naming scheme for generic BaseModels. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| params | None | Tuple of types of the class. Given a generic class +`Model` with 2 type variables and a concrete model `Model[str, int]`, +the value `(str, int)` would be passed to `params`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | String representing the new class where `params` are passed to `cls` as type variables. | + +**Raises:** + +| Type | Description | +|---|---| +| TypeError | Raised when trying to generate concrete names for non-generic models. | + + +#### model_rebuild + +```python3 +def model_rebuild( + *, + force: 'bool' = False, + raise_errors: 'bool' = True, + _parent_namespace_depth: 'int' = 2, + _types_namespace: 'dict[str, Any] | None' = None +) -> 'bool | None' +``` + + +Try to rebuild the pydantic-core schema for the model. + +This may be necessary when one of the annotations is a ForwardRef which could not be resolved during +the initial attempt to build the schema, and automatic rebuilding fails. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| force | None | Whether to force the rebuilding of the model schema, defaults to `False`. | None | +| raise_errors | None | Whether to raise errors, defaults to `True`. | None | +| _parent_namespace_depth | None | The depth level of the parent namespace, defaults to 2. | None | +| _types_namespace | None | The types namespace, defaults to `None`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | Returns `None` if the schema is already "complete" and rebuilding was not required. +If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`. | + + +#### model_validate + +```python3 +def model_validate( + obj: 'Any', + *, + strict: 'bool | None' = None, + from_attributes: 'bool | None' = None, + context: 'dict[str, Any] | None' = None +) -> 'Model' +``` + + +Validate a pydantic model instance. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| obj | None | The object to validate. | None | +| strict | None | Whether to raise an exception on invalid fields. | None | +| from_attributes | None | Whether to extract data from object attributes. | None | +| context | None | Additional context to pass to the validator. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The validated model instance. | + +**Raises:** + +| Type | Description | +|---|---| +| ValidationError | If the object could not be validated. | + + +#### model_validate_json + +```python3 +def model_validate_json( + json_data: 'str | bytes | bytearray', + *, + strict: 'bool | None' = None, + context: 'dict[str, Any] | None' = None +) -> 'Model' +``` + + +Validate the given JSON data against the Pydantic model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| json_data | None | The JSON data to validate. | None | +| strict | None | Whether to enforce types strictly. | None | +| context | None | Extra variables to pass to the validator. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The validated Pydantic model. | + +**Raises:** + +| Type | Description | +|---|---| +| ValueError | If `json_data` is not a JSON string. | + + +#### parse_file + +```python3 +def parse_file( + path: 'str | Path', + *, + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False +) -> 'Model' +``` + + + + +#### parse_obj + +```python3 +def parse_obj( + obj: 'Any' +) -> 'Model' +``` + + + + +#### parse_raw + +```python3 +def parse_raw( + b: 'str | bytes', + *, + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False +) -> 'Model' +``` + + + + +#### schema + +```python3 +def schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}' +) -> 'typing.Dict[str, Any]' +``` + + + + +#### schema_json + +```python3 +def schema_json( + *, + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + **dumps_kwargs: 'Any' +) -> 'str' +``` + + + + +#### update_forward_refs + +```python3 +def update_forward_refs( + **localns: 'Any' +) -> 'None' +``` + + + + +#### validate + +```python3 +def validate( + value: 'Any' +) -> 'Model' +``` + + + +#### Instance variables + +```python3 +model_computed_fields +``` + +Get the computed fields of this model instance. + +```python3 +model_extra +``` + +Get extra fields set during validation. + +```python3 +model_fields_set +``` + +Returns the set of fields that have been set on this model instance. + +#### Methods + + +#### copy + +```python3 +def copy( + self: 'Model', + *, + include: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + exclude: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + update: 'typing.Dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' +``` + + +Returns a copy of the model. + +!!! warning "Deprecated" + This method is now deprecated; use `model_copy` instead. + +If you need `include` or `exclude`, use: + +```py +data = self.model_dump(include=include, exclude=exclude, round_trip=True) +data = {**data, **(update or {})} +copied = self.model_validate(data) +``` + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| include | None | Optional set or mapping +specifying which fields to include in the copied model. | None | +| exclude | None | Optional set or mapping +specifying which fields to exclude in the copied model. | None | +| update | None | Optional dictionary of field-value pairs to override field values +in the copied model. | None | +| deep | None | If True, the values of fields that are Pydantic models will be deep copied. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A copy of the model with included, excluded and updated fields as specified. | + + +#### dict + +```python3 +def dict( + self, + *, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False +) -> 'typing.Dict[str, Any]' +``` + + + + +#### json + +```python3 +def json( + self, + *, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + encoder: 'typing.Callable[[Any], Any] | None' = PydanticUndefined, + models_as_dict: 'bool' = PydanticUndefined, + **dumps_kwargs: 'Any' +) -> 'str' +``` + + + + +#### model_copy + +```python3 +def model_copy( + self: 'Model', + *, + update: 'dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#model_copy + +Returns a copy of the model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| update | None | Values to change/add in the new model. Note: the data is not validated +before creating the new model. You should trust this data. | None | +| deep | None | Set to `True` to make a deep copy of the model. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | New model instance. | + + +#### model_dump + +```python3 +def model_dump( + self, + *, + mode: "Literal['json', 'python'] | str" = 'python', + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'dict[str, Any]' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump + +Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| mode | None | The mode in which `to_python` should run. +If mode is 'json', the dictionary will only contain JSON serializable types. +If mode is 'python', the dictionary may contain any Python objects. | None | +| include | None | A list of fields to include in the output. | None | +| exclude | None | A list of fields to exclude from the output. | None | +| by_alias | None | Whether to use the field's alias in the dictionary key if defined. | None | +| exclude_unset | None | Whether to exclude fields that are unset or None from the output. | None | +| exclude_defaults | None | Whether to exclude fields that are set to their default value from the output. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None` from the output. | None | +| round_trip | None | Whether to enable serialization and deserialization round-trip support. | None | +| warnings | None | Whether to log warnings when invalid fields are encountered. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A dictionary representation of the model. | + + +#### model_dump_json + +```python3 +def model_dump_json( + self, + *, + indent: 'int | None' = None, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'str' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump_json + +Generates a JSON representation of the model using Pydantic's `to_json` method. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| indent | None | Indentation to use in the JSON output. If None is passed, the output will be compact. | None | +| include | None | Field(s) to include in the JSON output. Can take either a string or set of strings. | None | +| exclude | None | Field(s) to exclude from the JSON output. Can take either a string or set of strings. | None | +| by_alias | None | Whether to serialize using field aliases. | None | +| exclude_unset | None | Whether to exclude fields that have not been explicitly set. | None | +| exclude_defaults | None | Whether to exclude fields that have the default value. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None`. | None | +| round_trip | None | Whether to use serialization/deserialization between JSON and class instance. | None | +| warnings | None | Whether to show any warnings that occurred during serialization. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A JSON string representation of the model. | + + +#### model_post_init + +```python3 +def model_post_init( + self, + _BaseModel__context: 'Any' +) -> 'None' +``` + + +Override this method to perform additional initialization after `__init__` and `model_construct`. + +This is useful if you want to do some validation that requires the entire model to be initialized. + +### ImageData + +```python3 +class ImageData( + array: numpy.ndarray, + cutline_mask: Optional[numpy.ndarray] = None, + *, + assets: Optional[List] = None, + bounds=None, + crs: Optional[rasterio.crs.CRS] = None, + metadata: Optional[Dict] = NOTHING, + band_names: List[str] = NOTHING, + dataset_statistics: Optional[Sequence[Tuple[float, float]]] = None +) +``` + +#### Attributes + +| Name | Type | Description | Default | +|---|---|---|---| +| array | numpy.ma.MaskedArray | image values. | None | +| assets | list | list of assets used to construct the data values. | None | +| bounds | BoundingBox | bounding box of the data. | None | +| crs | rasterio.crs.CRS | Coordinates Reference System of the bounds. | None | +| metadata | dict | Additional metadata. Defaults to `{}`. | `{}` | +| band_names | list | name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. | `["1", "2", "3"]` for 3 bands image | +| dataset_statistics | list | dataset statistics `[(min, max), (min, max)]` +Note: `mask` should be considered as `PER_BAND` so shape should be similar as the data | None | + +#### Static methods + + +#### create_from_list + +```python3 +def create_from_list( + data: Sequence[ForwardRef('ImageData')] +) -> 'ImageData' +``` + + +Create ImageData from a sequence of ImageData objects. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| data | sequence | sequence of ImageData. | None | + + +#### from_array + +```python3 +def from_array( + arr: numpy.ndarray +) -> 'ImageData' +``` + + +Create ImageData from a numpy array. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| arr | numpy.ndarray | Numpy array or Numpy masked array. | None | + + +#### from_bytes + +```python3 +def from_bytes( + data: bytes +) -> 'ImageData' +``` + + +Create ImageData from bytes. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| data | bytes | raster dataset as bytes. | None | + +#### Instance variables + +```python3 +count +``` + +Number of band. + +```python3 +data +``` + +Return data part of the masked array. + +```python3 +height +``` + +Height of the data array. + +```python3 +mask +``` + +Return Mask in form of rasterio dataset mask. + +```python3 +transform +``` + +Returns the affine transform. + +```python3 +width +``` + +Width of the data array. + +#### Methods + + +#### apply_color_formula + +```python3 +def apply_color_formula( + self, + color_formula: Optional[str] +) +``` + + +Apply color-operations formula in place. + + +#### apply_colormap + +```python3 +def apply_colormap( + self, + colormap: Union[Dict[int, Tuple[int, int, int, int]], Sequence[Tuple[Tuple[Union[float, int], Union[float, int]], Tuple[int, int, int, int]]]] +) -> 'ImageData' +``` + + +Apply colormap to the image data. + + +#### apply_expression + +```python3 +def apply_expression( + self, + expression: str +) -> 'ImageData' +``` + + +Apply expression to the image data. + + +#### as_masked + +```python3 +def as_masked( + self +) -> numpy.ma.core.MaskedArray +``` + + +return a numpy masked array. + + +#### clip + +```python3 +def clip( + self, + bbox: Tuple[float, float, float, float] +) -> 'ImageData' +``` + + +Clip data and mask to a bbox. + + +#### data_as_image + +```python3 def data_as_image( self -) -> numpy.ndarray +) -> numpy.ndarray +``` + + +Return the data array reshaped into an image processing/visualization software friendly order. + +(bands, rows, columns) -> (rows, columns, bands). + + +#### get_coverage_array + +```python3 +def get_coverage_array( + self, + shape: Dict, + shape_crs: rasterio.crs.CRS = CRS.from_epsg(4326), + cover_scale: int = 10 +) -> numpy.ndarray[typing.Any, numpy.dtype[numpy.floating]] +``` + + +cover_scale: int, optional + +Scale used when generating coverage estimates of each + raster cell by vector feature. Coverage is generated by + rasterizing the feature at a finer resolution than the raster then using a summation to aggregate + to the raster resolution and dividing by the square of cover_scale + to get coverage value for each cell. Increasing cover_scale + will increase the accuracy of coverage values; three orders + magnitude finer resolution (cover_scale=1000) is usually enough to + get coverage estimates with <1% error in individual edge cells coverage + estimates, though much smaller values (e.g., cover_scale=10) are often + sufficient (<10% error) and require less memory. + +Note: code adapted from https://github.com/perrygeo/python-rasterstats/pull/136 by @sgoodm + + +#### post_process + +```python3 +def post_process( + self, + in_range: Optional[Sequence[Tuple[Union[float, int], Union[float, int]]]] = None, + out_dtype: Union[str, numpy.number] = 'uint8', + color_formula: Optional[str] = None, + **kwargs: Any +) -> 'ImageData' +``` + + +Post-process image data. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| in_range | tuple | input min/max bounds value to rescale from. | None | +| out_dtype | str | output datatype after rescaling. Defaults to `uint8`. | `uint8` | +| color_formula | str | color-ops formula (see: https://github.com/vincentsarago/color-ops). | None | +| kwargs | optional | keyword arguments to forward to `rio_tiler.utils.linear_rescale`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| ImageData | new ImageData object with the updated data. | + + +#### render + +```python3 +def render( + self, + add_mask: bool = True, + img_format: str = 'PNG', + colormap: Union[Dict[int, Tuple[int, int, int, int]], Sequence[Tuple[Tuple[Union[float, int], Union[float, int]], Tuple[int, int, int, int]]], NoneType] = None, + **kwargs +) -> bytes +``` + + +Render data to image blob. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| add_mask | bool | add mask to output image. Defaults to `True`. | `True` | +| img_format | str | output image format. Defaults to `PNG`. | `PNG` | +| colormap | dict or sequence | RGBA Color Table dictionary or sequence. | None | +| kwargs | optional | keyword arguments to forward to `rio_tiler.utils.render`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| bytes | image. | + + +#### rescale + +```python3 +def rescale( + self, + in_range: Sequence[Tuple[Union[float, int], Union[float, int]]], + out_range: Sequence[Tuple[Union[float, int], Union[float, int]]] = ((0, 255),), + out_dtype: Union[str, numpy.number] = 'uint8' +) +``` + + +Rescale data in place. + + +#### resize + +```python3 +def resize( + self, + height: int, + width: int, + resampling_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'gauss', 'rms'] = 'nearest' +) -> 'ImageData' +``` + + +Resize data and mask. + + +#### statistics + +```python3 +def statistics( + self, + categorical: bool = False, + categories: Optional[List[float]] = None, + percentiles: Optional[List[int]] = None, + hist_options: Optional[Dict] = None, + coverage: Optional[numpy.ndarray] = None +) -> Dict[str, rio_tiler.models.BandStatistics] +``` + + +Return statistics from ImageData. + +### Info + +```python3 +class Info( + __pydantic_self__, + **data: 'Any' +) +``` + +#### Ancestors (in MRO) + +* rio_tiler.models.SpatialInfo +* rio_tiler.models.Bounds +* rio_tiler.models.RioTilerBaseModel +* pydantic.main.BaseModel + +#### Class variables + +```python3 +model_config +``` + +```python3 +model_fields +``` + +#### Static methods + + +#### construct + +```python3 +def construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' +) -> 'Model' +``` + + + + +#### from_orm + +```python3 +def from_orm( + obj: 'Any' +) -> 'Model' +``` + + + + +#### model_construct + +```python3 +def model_construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' +) -> 'Model' +``` + + +Creates a new instance of the `Model` class with validated data. + +Creates a new model setting `__dict__` and `__pydantic_fields_set__` from trusted or pre-validated data. +Default values are respected, but no other validation is performed. +Behaves as if `Config.extra = 'allow'` was set since it adds all passed values + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| _fields_set | None | The set of field names accepted for the Model instance. | None | +| values | None | Trusted or pre-validated data dictionary. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A new instance of the `Model` class with validated data. | + + +#### model_json_schema + +```python3 +def model_json_schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + schema_generator: 'type[GenerateJsonSchema]' = , + mode: 'JsonSchemaMode' = 'validation' +) -> 'dict[str, Any]' +``` + + +Generates a JSON schema for a model class. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| by_alias | None | Whether to use attribute aliases or not. | None | +| ref_template | None | The reference template. | None | +| schema_generator | None | To override the logic used to generate the JSON schema, as a subclass of +`GenerateJsonSchema` with your desired modifications | None | +| mode | None | The mode in which to generate the schema. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The JSON schema for the given model class. | + + +#### model_parametrized_name + +```python3 +def model_parametrized_name( + params: 'tuple[type[Any], ...]' +) -> 'str' +``` + + +Compute the class name for parametrizations of generic classes. + +This method can be overridden to achieve a custom naming scheme for generic BaseModels. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| params | None | Tuple of types of the class. Given a generic class +`Model` with 2 type variables and a concrete model `Model[str, int]`, +the value `(str, int)` would be passed to `params`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | String representing the new class where `params` are passed to `cls` as type variables. | + +**Raises:** + +| Type | Description | +|---|---| +| TypeError | Raised when trying to generate concrete names for non-generic models. | + + +#### model_rebuild + +```python3 +def model_rebuild( + *, + force: 'bool' = False, + raise_errors: 'bool' = True, + _parent_namespace_depth: 'int' = 2, + _types_namespace: 'dict[str, Any] | None' = None +) -> 'bool | None' +``` + + +Try to rebuild the pydantic-core schema for the model. + +This may be necessary when one of the annotations is a ForwardRef which could not be resolved during +the initial attempt to build the schema, and automatic rebuilding fails. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| force | None | Whether to force the rebuilding of the model schema, defaults to `False`. | None | +| raise_errors | None | Whether to raise errors, defaults to `True`. | None | +| _parent_namespace_depth | None | The depth level of the parent namespace, defaults to 2. | None | +| _types_namespace | None | The types namespace, defaults to `None`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | Returns `None` if the schema is already "complete" and rebuilding was not required. +If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`. | + + +#### model_validate + +```python3 +def model_validate( + obj: 'Any', + *, + strict: 'bool | None' = None, + from_attributes: 'bool | None' = None, + context: 'dict[str, Any] | None' = None +) -> 'Model' +``` + + +Validate a pydantic model instance. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| obj | None | The object to validate. | None | +| strict | None | Whether to raise an exception on invalid fields. | None | +| from_attributes | None | Whether to extract data from object attributes. | None | +| context | None | Additional context to pass to the validator. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The validated model instance. | + +**Raises:** + +| Type | Description | +|---|---| +| ValidationError | If the object could not be validated. | + + +#### model_validate_json + +```python3 +def model_validate_json( + json_data: 'str | bytes | bytearray', + *, + strict: 'bool | None' = None, + context: 'dict[str, Any] | None' = None +) -> 'Model' +``` + + +Validate the given JSON data against the Pydantic model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| json_data | None | The JSON data to validate. | None | +| strict | None | Whether to enforce types strictly. | None | +| context | None | Extra variables to pass to the validator. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The validated Pydantic model. | + +**Raises:** + +| Type | Description | +|---|---| +| ValueError | If `json_data` is not a JSON string. | + + +#### parse_file + +```python3 +def parse_file( + path: 'str | Path', + *, + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False +) -> 'Model' +``` + + + + +#### parse_obj + +```python3 +def parse_obj( + obj: 'Any' +) -> 'Model' +``` + + + + +#### parse_raw + +```python3 +def parse_raw( + b: 'str | bytes', + *, + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False +) -> 'Model' +``` + + + + +#### schema + +```python3 +def schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}' +) -> 'typing.Dict[str, Any]' +``` + + + + +#### schema_json + +```python3 +def schema_json( + *, + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + **dumps_kwargs: 'Any' +) -> 'str' +``` + + + + +#### update_forward_refs + +```python3 +def update_forward_refs( + **localns: 'Any' +) -> 'None' +``` + + + + +#### validate + +```python3 +def validate( + value: 'Any' +) -> 'Model' +``` + + + +#### Instance variables + +```python3 +model_computed_fields +``` + +Get the computed fields of this model instance. + +```python3 +model_extra +``` + +Get extra fields set during validation. + +```python3 +model_fields_set +``` + +Returns the set of fields that have been set on this model instance. + +#### Methods + + +#### copy + +```python3 +def copy( + self: 'Model', + *, + include: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + exclude: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + update: 'typing.Dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' +``` + + +Returns a copy of the model. + +!!! warning "Deprecated" + This method is now deprecated; use `model_copy` instead. + +If you need `include` or `exclude`, use: + +```py +data = self.model_dump(include=include, exclude=exclude, round_trip=True) +data = {**data, **(update or {})} +copied = self.model_validate(data) +``` + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| include | None | Optional set or mapping +specifying which fields to include in the copied model. | None | +| exclude | None | Optional set or mapping +specifying which fields to exclude in the copied model. | None | +| update | None | Optional dictionary of field-value pairs to override field values +in the copied model. | None | +| deep | None | If True, the values of fields that are Pydantic models will be deep copied. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A copy of the model with included, excluded and updated fields as specified. | + + +#### dict + +```python3 +def dict( + self, + *, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False +) -> 'typing.Dict[str, Any]' +``` + + + + +#### json + +```python3 +def json( + self, + *, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + encoder: 'typing.Callable[[Any], Any] | None' = PydanticUndefined, + models_as_dict: 'bool' = PydanticUndefined, + **dumps_kwargs: 'Any' +) -> 'str' +``` + + + + +#### model_copy + +```python3 +def model_copy( + self: 'Model', + *, + update: 'dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#model_copy + +Returns a copy of the model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| update | None | Values to change/add in the new model. Note: the data is not validated +before creating the new model. You should trust this data. | None | +| deep | None | Set to `True` to make a deep copy of the model. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | New model instance. | + + +#### model_dump + +```python3 +def model_dump( + self, + *, + mode: "Literal['json', 'python'] | str" = 'python', + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'dict[str, Any]' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump + +Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| mode | None | The mode in which `to_python` should run. +If mode is 'json', the dictionary will only contain JSON serializable types. +If mode is 'python', the dictionary may contain any Python objects. | None | +| include | None | A list of fields to include in the output. | None | +| exclude | None | A list of fields to exclude from the output. | None | +| by_alias | None | Whether to use the field's alias in the dictionary key if defined. | None | +| exclude_unset | None | Whether to exclude fields that are unset or None from the output. | None | +| exclude_defaults | None | Whether to exclude fields that are set to their default value from the output. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None` from the output. | None | +| round_trip | None | Whether to enable serialization and deserialization round-trip support. | None | +| warnings | None | Whether to log warnings when invalid fields are encountered. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A dictionary representation of the model. | + + +#### model_dump_json + +```python3 +def model_dump_json( + self, + *, + indent: 'int | None' = None, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'str' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump_json + +Generates a JSON representation of the model using Pydantic's `to_json` method. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| indent | None | Indentation to use in the JSON output. If None is passed, the output will be compact. | None | +| include | None | Field(s) to include in the JSON output. Can take either a string or set of strings. | None | +| exclude | None | Field(s) to exclude from the JSON output. Can take either a string or set of strings. | None | +| by_alias | None | Whether to serialize using field aliases. | None | +| exclude_unset | None | Whether to exclude fields that have not been explicitly set. | None | +| exclude_defaults | None | Whether to exclude fields that have the default value. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None`. | None | +| round_trip | None | Whether to use serialization/deserialization between JSON and class instance. | None | +| warnings | None | Whether to show any warnings that occurred during serialization. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A JSON string representation of the model. | + + +#### model_post_init + +```python3 +def model_post_init( + self, + _BaseModel__context: 'Any' +) -> 'None' +``` + + +Override this method to perform additional initialization after `__init__` and `model_construct`. + +This is useful if you want to do some validation that requires the entire model to be initialized. + +### PointData + +```python3 +class PointData( + array: numpy.ndarray, + *, + band_names: List[str] = NOTHING, + coordinates: Optional[Tuple[float, float]] = None, + crs: Optional[rasterio.crs.CRS] = None, + assets: Optional[List] = None, + metadata: Optional[Dict] = NOTHING +) +``` + +#### Attributes + +| Name | Type | Description | Default | +|---|---|---|---| +| array | numpy.ma.MaskedArray | pixel values. | None | +| band_names | list | name of each band. Defaults to `["1", "2", "3"]` for 3 bands image. | `["1", "2", "3"]` for 3 bands image | +| coordinates | tuple | Point's coordinates. | None | +| crs | rasterio.crs.CRS | Coordinates Reference System of the bounds. | None | +| assets | list | list of assets used to construct the data values. | None | +| metadata | dict | Additional metadata. Defaults to `{}`. | `{}` | + +#### Static methods + + +#### create_from_list + +```python3 +def create_from_list( + data: Sequence[ForwardRef('PointData')] +) +``` + + +Create PointData from a sequence of PointsData objects. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| data | sequence | sequence of PointData. | None | + +#### Instance variables + +```python3 +count +``` + +Number of band. + +```python3 +data +``` + +Return data part of the masked array. + +```python3 +mask +``` + +Return Mask in form of rasterio dataset mask. + +#### Methods + + +#### apply_expression + +```python3 +def apply_expression( + self, + expression: str +) -> 'PointData' +``` + + +Apply expression to the image data. + + +#### as_masked + +```python3 +def as_masked( + self +) -> numpy.ma.core.MaskedArray ``` -Return the data array reshaped into an image processing/visualization software friendly order. +return a numpy masked array. -(bands, rows, columns) -> (rows, columns, bands). +### RioTilerBaseModel + +```python3 +class RioTilerBaseModel( + __pydantic_self__, + **data: 'Any' +) +``` + +#### Ancestors (in MRO) + +* pydantic.main.BaseModel + +#### Descendants + +* rio_tiler.models.Bounds +* rio_tiler.models.BandStatistics + +#### Class variables + +```python3 +model_config +``` + +```python3 +model_fields +``` + +#### Static methods -#### post_process +#### construct ```python3 -def post_process( - self, - in_range: Union[Sequence[Tuple[Union[float, int], Union[float, int]]], NoneType] = None, - out_dtype: Union[str, numpy.number] = 'uint8', - color_formula: Union[str, NoneType] = None, - **kwargs: Any -) -> 'ImageData' +def construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' +) -> 'Model' ``` -Post-process image data. + + +#### from_orm + +```python3 +def from_orm( + obj: 'Any' +) -> 'Model' +``` + + + + +#### model_construct + +```python3 +def model_construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' +) -> 'Model' +``` + + +Creates a new instance of the `Model` class with validated data. + +Creates a new model setting `__dict__` and `__pydantic_fields_set__` from trusted or pre-validated data. +Default values are respected, but no other validation is performed. +Behaves as if `Config.extra = 'allow'` was set since it adds all passed values **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| in_range | tuple | input min/max bounds value to rescale from. | None | -| out_dtype | str | output datatype after rescaling. Defaults to `uint8`. | `uint8` | -| color_formula | str | rio-color formula (see: https://github.com/mapbox/rio-color). | None | -| kwargs | optional | keyword arguments to forward to `rio_tiler.utils.linear_rescale`. | None | +| _fields_set | None | The set of field names accepted for the Model instance. | None | +| values | None | Trusted or pre-validated data dictionary. | None | **Returns:** | Type | Description | |---|---| -| ImageData | new ImageData object with the updated data. | +| None | A new instance of the `Model` class with validated data. | -#### render +#### model_json_schema ```python3 -def render( - self, - add_mask: bool = True, - img_format: str = 'PNG', - colormap: Union[Dict[int, Tuple[int, int, int, int]], Sequence[Tuple[Tuple[Union[float, int], Union[float, int]], Tuple[int, int, int, int]]], NoneType] = None, - **kwargs -) -> bytes +def model_json_schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + schema_generator: 'type[GenerateJsonSchema]' = , + mode: 'JsonSchemaMode' = 'validation' +) -> 'dict[str, Any]' ``` -Render data to image blob. +Generates a JSON schema for a model class. **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| add_mask | bool | add mask to output image. Defaults to True. | True | -| img_format | str | output image format. Defaults to PNG. | PNG | -| colormap | dict or sequence | RGBA Color Table dictionary or sequence. | None | -| kwargs | optional | keyword arguments to forward to `rio_tiler.utils.render`. | None | +| by_alias | None | Whether to use attribute aliases or not. | None | +| ref_template | None | The reference template. | None | +| schema_generator | None | To override the logic used to generate the JSON schema, as a subclass of +`GenerateJsonSchema` with your desired modifications | None | +| mode | None | The mode in which to generate the schema. | None | **Returns:** | Type | Description | |---|---| -| bytes | image. | +| None | The JSON schema for the given model class. | -### Info + +#### model_parametrized_name ```python3 -class Info( - __pydantic_self__, - **data: Any -) +def model_parametrized_name( + params: 'tuple[type[Any], ...]' +) -> 'str' ``` -#### Ancestors (in MRO) + +Compute the class name for parametrizations of generic classes. -* rio_tiler.models.SpatialInfo -* rio_tiler.models.Bounds -* rio_tiler.models.RioTilerBaseModel -* pydantic.main.BaseModel -* pydantic.utils.Representation +This method can be overridden to achieve a custom naming scheme for generic BaseModels. -#### Class variables +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| params | None | Tuple of types of the class. Given a generic class +`Model` with 2 type variables and a concrete model `Model[str, int]`, +the value `(str, int)` would be passed to `params`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | String representing the new class where `params` are passed to `cls` as type variables. | + +**Raises:** + +| Type | Description | +|---|---| +| TypeError | Raised when trying to generate concrete names for non-generic models. | + + +#### model_rebuild ```python3 -Config +def model_rebuild( + *, + force: 'bool' = False, + raise_errors: 'bool' = True, + _parent_namespace_depth: 'int' = 2, + _types_namespace: 'dict[str, Any] | None' = None +) -> 'bool | None' ``` -#### Static methods + +Try to rebuild the pydantic-core schema for the model. + +This may be necessary when one of the annotations is a ForwardRef which could not be resolved during +the initial attempt to build the schema, and automatic rebuilding fails. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| force | None | Whether to force the rebuilding of the model schema, defaults to `False`. | None | +| raise_errors | None | Whether to raise errors, defaults to `True`. | None | +| _parent_namespace_depth | None | The depth level of the parent namespace, defaults to 2. | None | +| _types_namespace | None | The types namespace, defaults to `None`. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | Returns `None` if the schema is already "complete" and rebuilding was not required. +If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`. | -#### construct +#### model_validate ```python3 -def construct( - _fields_set: Union[ForwardRef('SetStr'), NoneType] = None, - **values: Any +def model_validate( + obj: 'Any', + *, + strict: 'bool | None' = None, + from_attributes: 'bool | None' = None, + context: 'dict[str, Any] | None' = None ) -> 'Model' ``` -Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. +Validate a pydantic model instance. -Default values are respected, but no other validation is performed. -Behaves as if `Config.extra = 'allow'` was set since it adds all passed values +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| obj | None | The object to validate. | None | +| strict | None | Whether to raise an exception on invalid fields. | None | +| from_attributes | None | Whether to extract data from object attributes. | None | +| context | None | Additional context to pass to the validator. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The validated model instance. | + +**Raises:** + +| Type | Description | +|---|---| +| ValidationError | If the object could not be validated. | -#### from_orm +#### model_validate_json ```python3 -def from_orm( - obj: Any +def model_validate_json( + json_data: 'str | bytes | bytearray', + *, + strict: 'bool | None' = None, + context: 'dict[str, Any] | None' = None ) -> 'Model' ``` +Validate the given JSON data against the Pydantic model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| json_data | None | The JSON data to validate. | None | +| strict | None | Whether to enforce types strictly. | None | +| context | None | Extra variables to pass to the validator. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | The validated Pydantic model. | + +**Raises:** + +| Type | Description | +|---|---| +| ValueError | If `json_data` is not a JSON string. | #### parse_file ```python3 def parse_file( - path: Union[str, pathlib.Path], + path: 'str | Path', *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False ) -> 'Model' ``` @@ -709,7 +2538,7 @@ def parse_file( ```python3 def parse_obj( - obj: Any + obj: 'Any' ) -> 'Model' ``` @@ -720,12 +2549,12 @@ def parse_obj( ```python3 def parse_raw( - b: Union[str, bytes], + b: 'str | bytes', *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False ) -> 'Model' ``` @@ -736,9 +2565,9 @@ def parse_raw( ```python3 def schema( - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}' -) -> 'DictStrAny' + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}' +) -> 'typing.Dict[str, Any]' ``` @@ -749,10 +2578,10 @@ def schema( ```python3 def schema_json( *, - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}', - **dumps_kwargs: Any -) -> 'unicode' + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + **dumps_kwargs: 'Any' +) -> 'str' ``` @@ -762,24 +2591,43 @@ def schema_json( ```python3 def update_forward_refs( - **localns: Any -) -> None + **localns: 'Any' +) -> 'None' ``` -Try to update ForwardRefs on fields based on this Model, globalns and localns. #### validate ```python3 def validate( - value: Any + value: 'Any' ) -> 'Model' ``` +#### Instance variables + +```python3 +model_computed_fields +``` + +Get the computed fields of this model instance. + +```python3 +model_extra +``` + +Get extra fields set during validation. + +```python3 +model_fields_set +``` + +Returns the set of fields that have been set on this model instance. + #### Methods @@ -789,31 +2637,44 @@ def validate( def copy( self: 'Model', *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - update: 'DictStrAny' = None, - deep: bool = False + include: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + exclude: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + update: 'typing.Dict[str, Any] | None' = None, + deep: 'bool' = False ) -> 'Model' ``` -Duplicate a model, optionally choose which fields to include, exclude and change. +Returns a copy of the model. + +!!! warning "Deprecated" + This method is now deprecated; use `model_copy` instead. + +If you need `include` or `exclude`, use: + +```py +data = self.model_dump(include=include, exclude=exclude, round_trip=True) +data = {**data, **(update or {})} +copied = self.model_validate(data) +``` **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| include | None | fields to include in new model | None | -| exclude | None | fields to exclude from new model, as with values this takes precedence over include | None | -| update | None | values to change/add in the new model. Note: the data is not validated before creating -the new model: you should trust this data | None | -| deep | None | set to `True` to make a deep copy of the model | None | +| include | None | Optional set or mapping +specifying which fields to include in the copied model. | None | +| exclude | None | Optional set or mapping +specifying which fields to exclude in the copied model. | None | +| update | None | Optional dictionary of field-value pairs to override field values +in the copied model. | None | +| deep | None | If True, the values of fields that are Pydantic models will be deep copied. | None | **Returns:** | Type | Description | |---|---| -| None | new model instance | +| None | A copy of the model with included, excluded and updated fields as specified. | #### dict @@ -822,18 +2683,16 @@ the new model: you should trust this data | None | def dict( self, *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False -) -> 'DictStrAny' + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False +) -> 'typing.Dict[str, Any]' ``` -Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. #### json @@ -842,92 +2701,183 @@ Generate a dictionary representation of the model, optionally specifying which f def json( self, *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - encoder: Union[Callable[[Any], Any], NoneType] = None, - models_as_dict: bool = True, - **dumps_kwargs: Any -) -> 'unicode' + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + encoder: 'typing.Callable[[Any], Any] | None' = PydanticUndefined, + models_as_dict: 'bool' = PydanticUndefined, + **dumps_kwargs: 'Any' +) -> 'str' +``` + + + + +#### model_copy + +```python3 +def model_copy( + self: 'Model', + *, + update: 'dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' ``` -Generate a JSON representation of the model, `include` and `exclude` arguments as per `dict()`. +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#model_copy + +Returns a copy of the model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| update | None | Values to change/add in the new model. Note: the data is not validated +before creating the new model. You should trust this data. | None | +| deep | None | Set to `True` to make a deep copy of the model. | None | + +**Returns:** -`encoder` is an optional function to supply as `default` to json.dumps(), other arguments as per `json.dumps()`. +| Type | Description | +|---|---| +| None | New model instance. | -### NodataTypes + +#### model_dump ```python3 -class NodataTypes( - /, - *args, - **kwargs -) +def model_dump( + self, + *, + mode: "Literal['json', 'python'] | str" = 'python', + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'dict[str, Any]' ``` -#### Ancestors (in MRO) + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump -* builtins.str -* enum.Enum +Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. -#### Class variables +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| mode | None | The mode in which `to_python` should run. +If mode is 'json', the dictionary will only contain JSON serializable types. +If mode is 'python', the dictionary may contain any Python objects. | None | +| include | None | A list of fields to include in the output. | None | +| exclude | None | A list of fields to exclude from the output. | None | +| by_alias | None | Whether to use the field's alias in the dictionary key if defined. | None | +| exclude_unset | None | Whether to exclude fields that are unset or None from the output. | None | +| exclude_defaults | None | Whether to exclude fields that are set to their default value from the output. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None` from the output. | None | +| round_trip | None | Whether to enable serialization and deserialization round-trip support. | None | +| warnings | None | Whether to log warnings when invalid fields are encountered. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A dictionary representation of the model. | + + +#### model_dump_json ```python3 -Alpha +def model_dump_json( + self, + *, + indent: 'int | None' = None, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'str' ``` -```python3 -Empty -``` + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump_json + +Generates a JSON representation of the model using Pydantic's `to_json` method. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| indent | None | Indentation to use in the JSON output. If None is passed, the output will be compact. | None | +| include | None | Field(s) to include in the JSON output. Can take either a string or set of strings. | None | +| exclude | None | Field(s) to exclude from the JSON output. Can take either a string or set of strings. | None | +| by_alias | None | Whether to serialize using field aliases. | None | +| exclude_unset | None | Whether to exclude fields that have not been explicitly set. | None | +| exclude_defaults | None | Whether to exclude fields that have the default value. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None`. | None | +| round_trip | None | Whether to use serialization/deserialization between JSON and class instance. | None | +| warnings | None | Whether to show any warnings that occurred during serialization. | None | -```python3 -Internal -``` +**Returns:** -```python3 -Mask -``` +| Type | Description | +|---|---| +| None | A JSON string representation of the model. | -```python3 -Nodata -``` + +#### model_post_init ```python3 -name +def model_post_init( + self, + _BaseModel__context: 'Any' +) -> 'None' ``` -```python3 -value -``` + +Override this method to perform additional initialization after `__init__` and `model_construct`. -### RioTilerBaseModel +This is useful if you want to do some validation that requires the entire model to be initialized. + +### SpatialInfo ```python3 -class RioTilerBaseModel( +class SpatialInfo( __pydantic_self__, - **data: Any + **data: 'Any' ) ``` #### Ancestors (in MRO) +* rio_tiler.models.Bounds +* rio_tiler.models.RioTilerBaseModel * pydantic.main.BaseModel -* pydantic.utils.Representation #### Descendants -* rio_tiler.models.Bounds -* rio_tiler.models.BandStatistics +* rio_tiler.models.Info #### Class variables ```python3 -Config +model_config +``` + +```python3 +model_fields ``` #### Static methods @@ -937,266 +2887,237 @@ Config ```python3 def construct( - _fields_set: Union[ForwardRef('SetStr'), NoneType] = None, - **values: Any + _fields_set: 'set[str] | None' = None, + **values: 'Any' ) -> 'Model' ``` -Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. - -Default values are respected, but no other validation is performed. -Behaves as if `Config.extra = 'allow'` was set since it adds all passed values #### from_orm ```python3 def from_orm( - obj: Any + obj: 'Any' ) -> 'Model' ``` -#### parse_file +#### model_construct ```python3 -def parse_file( - path: Union[str, pathlib.Path], - *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False +def model_construct( + _fields_set: 'set[str] | None' = None, + **values: 'Any' ) -> 'Model' ``` +Creates a new instance of the `Model` class with validated data. - -#### parse_obj +Creates a new model setting `__dict__` and `__pydantic_fields_set__` from trusted or pre-validated data. +Default values are respected, but no other validation is performed. +Behaves as if `Config.extra = 'allow'` was set since it adds all passed values -```python3 -def parse_obj( - obj: Any -) -> 'Model' -``` +**Parameters:** - +| Name | Type | Description | Default | +|---|---|---|---| +| _fields_set | None | The set of field names accepted for the Model instance. | None | +| values | None | Trusted or pre-validated data dictionary. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A new instance of the `Model` class with validated data. | -#### parse_raw +#### model_json_schema ```python3 -def parse_raw( - b: Union[str, bytes], - *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False -) -> 'Model' +def model_json_schema( + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + schema_generator: 'type[GenerateJsonSchema]' = , + mode: 'JsonSchemaMode' = 'validation' +) -> 'dict[str, Any]' ``` +Generates a JSON schema for a model class. - -#### schema +**Parameters:** -```python3 -def schema( - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}' -) -> 'DictStrAny' -``` +| Name | Type | Description | Default | +|---|---|---|---| +| by_alias | None | Whether to use attribute aliases or not. | None | +| ref_template | None | The reference template. | None | +| schema_generator | None | To override the logic used to generate the JSON schema, as a subclass of +`GenerateJsonSchema` with your desired modifications | None | +| mode | None | The mode in which to generate the schema. | None | - +**Returns:** + +| Type | Description | +|---|---| +| None | The JSON schema for the given model class. | -#### schema_json +#### model_parametrized_name ```python3 -def schema_json( - *, - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}', - **dumps_kwargs: Any -) -> 'unicode' +def model_parametrized_name( + params: 'tuple[type[Any], ...]' +) -> 'str' ``` +Compute the class name for parametrizations of generic classes. - -#### update_forward_refs +This method can be overridden to achieve a custom naming scheme for generic BaseModels. -```python3 -def update_forward_refs( - **localns: Any -) -> None -``` +**Parameters:** - -Try to update ForwardRefs on fields based on this Model, globalns and localns. +| Name | Type | Description | Default | +|---|---|---|---| +| params | None | Tuple of types of the class. Given a generic class +`Model` with 2 type variables and a concrete model `Model[str, int]`, +the value `(str, int)` would be passed to `params`. | None | - -#### validate +**Returns:** -```python3 -def validate( - value: Any -) -> 'Model' -``` +| Type | Description | +|---|---| +| None | String representing the new class where `params` are passed to `cls` as type variables. | - +**Raises:** -#### Methods +| Type | Description | +|---|---| +| TypeError | Raised when trying to generate concrete names for non-generic models. | -#### copy +#### model_rebuild ```python3 -def copy( - self: 'Model', +def model_rebuild( *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - update: 'DictStrAny' = None, - deep: bool = False -) -> 'Model' + force: 'bool' = False, + raise_errors: 'bool' = True, + _parent_namespace_depth: 'int' = 2, + _types_namespace: 'dict[str, Any] | None' = None +) -> 'bool | None' ``` -Duplicate a model, optionally choose which fields to include, exclude and change. +Try to rebuild the pydantic-core schema for the model. + +This may be necessary when one of the annotations is a ForwardRef which could not be resolved during +the initial attempt to build the schema, and automatic rebuilding fails. **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| include | None | fields to include in new model | None | -| exclude | None | fields to exclude from new model, as with values this takes precedence over include | None | -| update | None | values to change/add in the new model. Note: the data is not validated before creating -the new model: you should trust this data | None | -| deep | None | set to `True` to make a deep copy of the model | None | +| force | None | Whether to force the rebuilding of the model schema, defaults to `False`. | None | +| raise_errors | None | Whether to raise errors, defaults to `True`. | None | +| _parent_namespace_depth | None | The depth level of the parent namespace, defaults to 2. | None | +| _types_namespace | None | The types namespace, defaults to `None`. | None | **Returns:** | Type | Description | |---|---| -| None | new model instance | - - -#### dict - -```python3 -def dict( - self, - *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False -) -> 'DictStrAny' -``` - - -Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. +| None | Returns `None` if the schema is already "complete" and rebuilding was not required. +If rebuilding _was_ required, returns `True` if rebuilding was successful, otherwise `False`. | -#### json +#### model_validate ```python3 -def json( - self, +def model_validate( + obj: 'Any', *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - encoder: Union[Callable[[Any], Any], NoneType] = None, - models_as_dict: bool = True, - **dumps_kwargs: Any -) -> 'unicode' + strict: 'bool | None' = None, + from_attributes: 'bool | None' = None, + context: 'dict[str, Any] | None' = None +) -> 'Model' ``` -Generate a JSON representation of the model, `include` and `exclude` arguments as per `dict()`. - -`encoder` is an optional function to supply as `default` to json.dumps(), other arguments as per `json.dumps()`. - -### SpatialInfo - -```python3 -class SpatialInfo( - __pydantic_self__, - **data: Any -) -``` - -#### Ancestors (in MRO) +Validate a pydantic model instance. -* rio_tiler.models.Bounds -* rio_tiler.models.RioTilerBaseModel -* pydantic.main.BaseModel -* pydantic.utils.Representation +**Parameters:** -#### Descendants +| Name | Type | Description | Default | +|---|---|---|---| +| obj | None | The object to validate. | None | +| strict | None | Whether to raise an exception on invalid fields. | None | +| from_attributes | None | Whether to extract data from object attributes. | None | +| context | None | Additional context to pass to the validator. | None | -* rio_tiler.models.Info +**Returns:** -#### Class variables +| Type | Description | +|---|---| +| None | The validated model instance. | -```python3 -Config -``` +**Raises:** -#### Static methods +| Type | Description | +|---|---| +| ValidationError | If the object could not be validated. | -#### construct +#### model_validate_json ```python3 -def construct( - _fields_set: Union[ForwardRef('SetStr'), NoneType] = None, - **values: Any +def model_validate_json( + json_data: 'str | bytes | bytearray', + *, + strict: 'bool | None' = None, + context: 'dict[str, Any] | None' = None ) -> 'Model' ``` -Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. +Validate the given JSON data against the Pydantic model. -Default values are respected, but no other validation is performed. -Behaves as if `Config.extra = 'allow'` was set since it adds all passed values +**Parameters:** - -#### from_orm +| Name | Type | Description | Default | +|---|---|---|---| +| json_data | None | The JSON data to validate. | None | +| strict | None | Whether to enforce types strictly. | None | +| context | None | Extra variables to pass to the validator. | None | -```python3 -def from_orm( - obj: Any -) -> 'Model' -``` +**Returns:** - +| Type | Description | +|---|---| +| None | The validated Pydantic model. | + +**Raises:** + +| Type | Description | +|---|---| +| ValueError | If `json_data` is not a JSON string. | #### parse_file ```python3 def parse_file( - path: Union[str, pathlib.Path], + path: 'str | Path', *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False ) -> 'Model' ``` @@ -1207,7 +3128,7 @@ def parse_file( ```python3 def parse_obj( - obj: Any + obj: 'Any' ) -> 'Model' ``` @@ -1218,12 +3139,12 @@ def parse_obj( ```python3 def parse_raw( - b: Union[str, bytes], + b: 'str | bytes', *, - content_type: 'unicode' = None, - encoding: 'unicode' = 'utf8', - proto: pydantic.parse.Protocol = None, - allow_pickle: bool = False + content_type: 'str | None' = None, + encoding: 'str' = 'utf8', + proto: '_deprecated_parse.Protocol | None' = None, + allow_pickle: 'bool' = False ) -> 'Model' ``` @@ -1234,9 +3155,9 @@ def parse_raw( ```python3 def schema( - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}' -) -> 'DictStrAny' + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}' +) -> 'typing.Dict[str, Any]' ``` @@ -1247,10 +3168,10 @@ def schema( ```python3 def schema_json( *, - by_alias: bool = True, - ref_template: 'unicode' = '#/definitions/{model}', - **dumps_kwargs: Any -) -> 'unicode' + by_alias: 'bool' = True, + ref_template: 'str' = '#/$defs/{model}', + **dumps_kwargs: 'Any' +) -> 'str' ``` @@ -1260,24 +3181,43 @@ def schema_json( ```python3 def update_forward_refs( - **localns: Any -) -> None + **localns: 'Any' +) -> 'None' ``` -Try to update ForwardRefs on fields based on this Model, globalns and localns. #### validate ```python3 def validate( - value: Any + value: 'Any' ) -> 'Model' ``` +#### Instance variables + +```python3 +model_computed_fields +``` + +Get the computed fields of this model instance. + +```python3 +model_extra +``` + +Get extra fields set during validation. + +```python3 +model_fields_set +``` + +Returns the set of fields that have been set on this model instance. + #### Methods @@ -1287,31 +3227,44 @@ def validate( def copy( self: 'Model', *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - update: 'DictStrAny' = None, - deep: bool = False + include: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + exclude: 'AbstractSetIntStr | MappingIntStrAny | None' = None, + update: 'typing.Dict[str, Any] | None' = None, + deep: 'bool' = False ) -> 'Model' ``` -Duplicate a model, optionally choose which fields to include, exclude and change. +Returns a copy of the model. + +!!! warning "Deprecated" + This method is now deprecated; use `model_copy` instead. + +If you need `include` or `exclude`, use: + +```py +data = self.model_dump(include=include, exclude=exclude, round_trip=True) +data = {**data, **(update or {})} +copied = self.model_validate(data) +``` **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| include | None | fields to include in new model | None | -| exclude | None | fields to exclude from new model, as with values this takes precedence over include | None | -| update | None | values to change/add in the new model. Note: the data is not validated before creating -the new model: you should trust this data | None | -| deep | None | set to `True` to make a deep copy of the model | None | +| include | None | Optional set or mapping +specifying which fields to include in the copied model. | None | +| exclude | None | Optional set or mapping +specifying which fields to exclude in the copied model. | None | +| update | None | Optional dictionary of field-value pairs to override field values +in the copied model. | None | +| deep | None | If True, the values of fields that are Pydantic models will be deep copied. | None | **Returns:** | Type | Description | |---|---| -| None | new model instance | +| None | A copy of the model with included, excluded and updated fields as specified. | #### dict @@ -1320,18 +3273,16 @@ the new model: you should trust this data | None | def dict( self, *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False -) -> 'DictStrAny' + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False +) -> 'typing.Dict[str, Any]' ``` -Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. #### json @@ -1340,20 +3291,152 @@ Generate a dictionary representation of the model, optionally specifying which f def json( self, *, - include: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - exclude: Union[ForwardRef('AbstractSetIntStr'), ForwardRef('MappingIntStrAny')] = None, - by_alias: bool = False, - skip_defaults: bool = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - encoder: Union[Callable[[Any], Any], NoneType] = None, - models_as_dict: bool = True, - **dumps_kwargs: Any -) -> 'unicode' + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + encoder: 'typing.Callable[[Any], Any] | None' = PydanticUndefined, + models_as_dict: 'bool' = PydanticUndefined, + **dumps_kwargs: 'Any' +) -> 'str' +``` + + + + +#### model_copy + +```python3 +def model_copy( + self: 'Model', + *, + update: 'dict[str, Any] | None' = None, + deep: 'bool' = False +) -> 'Model' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#model_copy + +Returns a copy of the model. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| update | None | Values to change/add in the new model. Note: the data is not validated +before creating the new model. You should trust this data. | None | +| deep | None | Set to `True` to make a deep copy of the model. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | New model instance. | + + +#### model_dump + +```python3 +def model_dump( + self, + *, + mode: "Literal['json', 'python'] | str" = 'python', + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'dict[str, Any]' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump + +Generate a dictionary representation of the model, optionally specifying which fields to include or exclude. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| mode | None | The mode in which `to_python` should run. +If mode is 'json', the dictionary will only contain JSON serializable types. +If mode is 'python', the dictionary may contain any Python objects. | None | +| include | None | A list of fields to include in the output. | None | +| exclude | None | A list of fields to exclude from the output. | None | +| by_alias | None | Whether to use the field's alias in the dictionary key if defined. | None | +| exclude_unset | None | Whether to exclude fields that are unset or None from the output. | None | +| exclude_defaults | None | Whether to exclude fields that are set to their default value from the output. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None` from the output. | None | +| round_trip | None | Whether to enable serialization and deserialization round-trip support. | None | +| warnings | None | Whether to log warnings when invalid fields are encountered. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A dictionary representation of the model. | + + +#### model_dump_json + +```python3 +def model_dump_json( + self, + *, + indent: 'int | None' = None, + include: 'IncEx' = None, + exclude: 'IncEx' = None, + by_alias: 'bool' = False, + exclude_unset: 'bool' = False, + exclude_defaults: 'bool' = False, + exclude_none: 'bool' = False, + round_trip: 'bool' = False, + warnings: 'bool' = True +) -> 'str' +``` + + +Usage docs: https://docs.pydantic.dev/2.2/usage/serialization/#modelmodel_dump_json + +Generates a JSON representation of the model using Pydantic's `to_json` method. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| indent | None | Indentation to use in the JSON output. If None is passed, the output will be compact. | None | +| include | None | Field(s) to include in the JSON output. Can take either a string or set of strings. | None | +| exclude | None | Field(s) to exclude from the JSON output. Can take either a string or set of strings. | None | +| by_alias | None | Whether to serialize using field aliases. | None | +| exclude_unset | None | Whether to exclude fields that have not been explicitly set. | None | +| exclude_defaults | None | Whether to exclude fields that have the default value. | None | +| exclude_none | None | Whether to exclude fields that have a value of `None`. | None | +| round_trip | None | Whether to use serialization/deserialization between JSON and class instance. | None | +| warnings | None | Whether to show any warnings that occurred during serialization. | None | + +**Returns:** + +| Type | Description | +|---|---| +| None | A JSON string representation of the model. | + + +#### model_post_init + +```python3 +def model_post_init( + self, + _BaseModel__context: 'Any' +) -> 'None' ``` -Generate a JSON representation of the model, `include` and `exclude` arguments as per `dict()`. +Override this method to perform additional initialization after `__init__` and `model_construct`. -`encoder` is an optional function to supply as `default` to json.dumps(), other arguments as per `json.dumps()`. \ No newline at end of file +This is useful if you want to do some validation that requires the entire model to be initialized. \ No newline at end of file diff --git a/docs/src/api/rio_tiler/mosaic/methods/base.md b/docs/src/api/rio_tiler/mosaic/methods/base.md index 9f0f0f91..f4e8904a 100644 --- a/docs/src/api/rio_tiler/mosaic/methods/base.md +++ b/docs/src/api/rio_tiler/mosaic/methods/base.md @@ -26,8 +26,22 @@ class MosaicMethodBase( * rio_tiler.mosaic.methods.defaults.MeanMethod * rio_tiler.mosaic.methods.defaults.MedianMethod * rio_tiler.mosaic.methods.defaults.StdevMethod -* rio_tiler.mosaic.methods.defaults.LastBandHigh -* rio_tiler.mosaic.methods.defaults.LastBandLow +* rio_tiler.mosaic.methods.defaults.LastBandHighMethod +* rio_tiler.mosaic.methods.defaults.LastBandLowMethod + +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` #### Instance variables @@ -35,13 +49,13 @@ class MosaicMethodBase( data ``` -Return data and mask. +Return data. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -51,15 +65,15 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: numpy.ma.core.MaskedArray ) ``` -Fill mosaic tile. +Fill mosaic array. **Parameters:** | Name | Type | Description | Default | |---|---|---|---| -| tile | numpy.ma.ndarray | data | None | \ No newline at end of file +| array | numpy.ma.ndarray | data | None | \ No newline at end of file diff --git a/docs/src/api/rio_tiler/mosaic/methods/defaults.md b/docs/src/api/rio_tiler/mosaic/methods/defaults.md index f2468de7..e7775cc1 100644 --- a/docs/src/api/rio_tiler/mosaic/methods/defaults.md +++ b/docs/src/api/rio_tiler/mosaic/methods/defaults.md @@ -19,19 +19,33 @@ class FirstMethod( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return data. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -41,12 +55,12 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Add data to tile. +Add data to the mosaic array. ### HighestMethod @@ -61,19 +75,33 @@ class HighestMethod( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return data. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -83,17 +111,17 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Add data to tile. +Add data to the mosaic array. -### LastBandHigh +### LastBandHighMethod ```python3 -class LastBandHigh( +class LastBandHighMethod( ) ``` @@ -103,19 +131,33 @@ class LastBandHigh( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return data. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -125,17 +167,17 @@ Check if the tile filling is done. ```python3 def feed( self, - tile: numpy.ma.core.MaskedArray + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Add data to tile. +Add data to the mosaic array. -### LastBandLow +### LastBandLowMethod ```python3 -class LastBandLow( +class LastBandLowMethod( ) ``` @@ -145,19 +187,33 @@ class LastBandLow( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return data. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -167,12 +223,12 @@ Check if the tile filling is done. ```python3 def feed( self, - tile: numpy.ma.core.MaskedArray + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Add data to tile. +Add data to the mosaic array. ### LowestMethod @@ -187,19 +243,33 @@ class LowestMethod( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return data. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -209,18 +279,18 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Add data to tile. +Add data to the mosaic array. ### MeanMethod ```python3 class MeanMethod( - enforce_data_type=True + enforce_data_type: bool = True ) ``` @@ -229,19 +299,37 @@ class MeanMethod( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +enforce_data_type +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return Mean of the data stack. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -251,18 +339,18 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: numpy.ma.core.MaskedArray ) ``` -Add data to tile. +Add array to the stack. ### MedianMethod ```python3 class MedianMethod( - enforce_data_type=True + enforce_data_type: bool = True ) ``` @@ -271,19 +359,37 @@ class MedianMethod( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +enforce_data_type +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return Median of the data stack. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -293,18 +399,18 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Create a stack of tile. +Add array to the stack. ### StdevMethod ```python3 class StdevMethod( - enforce_data_type=True + ) ``` @@ -313,19 +419,33 @@ class StdevMethod( * rio_tiler.mosaic.methods.base.MosaicMethodBase * abc.ABC +#### Class variables + +```python3 +cutline_mask +``` + +```python3 +exit_when_filled +``` + +```python3 +mosaic +``` + #### Instance variables ```python3 data ``` -Return data and mask. +Return STDDEV of the data stack. ```python3 is_done ``` -Check if the tile filling is done. +Check if the mosaic filling is done. #### Methods @@ -335,9 +455,9 @@ Check if the tile filling is done. ```python3 def feed( self, - tile + array: Optional[numpy.ma.core.MaskedArray] ) ``` -Add data to tile. \ No newline at end of file +Add array to the stack. \ No newline at end of file diff --git a/docs/src/api/rio_tiler/mosaic/reader.md b/docs/src/api/rio_tiler/mosaic/reader.md index 9629c698..af564537 100644 --- a/docs/src/api/rio_tiler/mosaic/reader.md +++ b/docs/src/api/rio_tiler/mosaic/reader.md @@ -13,6 +13,44 @@ MAX_THREADS ## Functions +### mosaic_point_reader + +```python3 +def mosaic_point_reader( + mosaic_assets: Sequence, + reader: Callable[..., rio_tiler.models.PointData], + *args: Any, + pixel_selection: Union[Type[rio_tiler.mosaic.methods.base.MosaicMethodBase], rio_tiler.mosaic.methods.base.MosaicMethodBase] = , + chunk_size: Optional[int] = None, + threads: int = 40, + allowed_exceptions: Tuple = (,), + **kwargs +) -> Tuple[rio_tiler.models.PointData, List] +``` + + +Merge multiple assets. + +**Parameters:** + +| Name | Type | Description | Default | +|---|---|---|---| +| mosaic_assets | sequence | List of assets. | None | +| reader | callable | Reader function. The function MUST take `(asset, *args, **kwargs)` as arguments, and MUST return a PointData object. | None | +| args | Any | Argument to forward to the reader function. | None | +| pixel_selection | MosaicMethod | Instance of MosaicMethodBase class. Defaults to `rio_tiler.mosaic.methods.defaults.FirstMethod`. | `rio_tiler.mosaic.methods.defaults.FirstMethod` | +| chunk_size | int | Control the number of asset to process per loop. | None | +| threads | int | Number of threads to use. If <= 1, runs single threaded without an event loop. By default reads from the MAX_THREADS environment variable, and if not found defaults to multiprocessing.cpu_count() * 5. | None | +| allowed_exceptions | tuple | List of exceptions which will be ignored. Note: `PointOutsideBounds` is likely to be raised and should be included in the allowed_exceptions. Defaults to `(TileOutsideBounds, )`. | `(TileOutsideBounds, )` | +| kwargs | optional | Reader callable's keywords options. | None | + +**Returns:** + +| Type | Description | +|---|---| +| tuple | PointData and assets (list). | + + ### mosaic_reader ```python3 @@ -21,7 +59,7 @@ def mosaic_reader( reader: Callable[..., rio_tiler.models.ImageData], *args: Any, pixel_selection: Union[Type[rio_tiler.mosaic.methods.base.MosaicMethodBase], rio_tiler.mosaic.methods.base.MosaicMethodBase] = , - chunk_size: Union[int, NoneType] = None, + chunk_size: Optional[int] = None, threads: int = 40, allowed_exceptions: Tuple = (,), **kwargs diff --git a/docs/src/api/rio_tiler/profiles.md b/docs/src/api/rio_tiler/profiles.md index b1d4f410..2cbd51b6 100644 --- a/docs/src/api/rio_tiler/profiles.md +++ b/docs/src/api/rio_tiler/profiles.md @@ -114,7 +114,7 @@ D.keys() -> a set-like object providing a view on D's keys def pop( self, key, - default= + default= ) ``` @@ -292,7 +292,7 @@ D.keys() -> a set-like object providing a view on D's keys def pop( self, key, - default= + default= ) ``` @@ -470,7 +470,7 @@ D.keys() -> a set-like object providing a view on D's keys def pop( self, key, - default= + default= ) ``` @@ -648,7 +648,7 @@ D.keys() -> a set-like object providing a view on D's keys def pop( self, key, - default= + default= ) ``` @@ -826,7 +826,7 @@ D.keys() -> a set-like object providing a view on D's keys def pop( self, key, - default= + default= ) ``` diff --git a/docs/src/api/rio_tiler/reader.md b/docs/src/api/rio_tiler/reader.md index 3c9d431c..9870398f 100644 --- a/docs/src/api/rio_tiler/reader.md +++ b/docs/src/api/rio_tiler/reader.md @@ -4,6 +4,12 @@ rio-tiler.reader: low level reader. None +## Variables + +```python3 +WGS84_CRS +``` + ## Functions @@ -13,16 +19,23 @@ None def part( src_dst: Union[rasterio.io.DatasetReader, rasterio.io.DatasetWriter, rasterio.vrt.WarpedVRT], bounds: Tuple[float, float, float, float], - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, - padding: int = 0, - dst_crs: Union[rasterio.crs.CRS, NoneType] = None, - bounds_crs: Union[rasterio.crs.CRS, NoneType] = None, - minimum_overlap: Union[float, NoneType] = None, - vrt_options: Union[Dict, NoneType] = None, - max_size: Union[int, NoneType] = None, - **kwargs: Any -) -> Tuple[numpy.ndarray, numpy.ndarray] + height: Optional[int] = None, + width: Optional[int] = None, + max_size: Optional[int] = None, + dst_crs: Optional[rasterio.crs.CRS] = None, + bounds_crs: Optional[rasterio.crs.CRS] = None, + indexes: Union[Sequence[int], int, NoneType] = None, + minimum_overlap: Optional[float] = None, + padding: Optional[int] = None, + buffer: Optional[float] = None, + force_binary_mask: bool = True, + nodata: Union[float, int, str, NoneType] = None, + vrt_options: Optional[Dict] = None, + resampling_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'gauss', 'rms'] = 'nearest', + reproject_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'sum', 'rms'] = 'nearest', + unscale: bool = False, + post_process: Optional[Callable[[numpy.ma.core.MaskedArray], numpy.ma.core.MaskedArray]] = None +) -> rio_tiler.models.ImageData ``` @@ -34,21 +47,27 @@ Read part of a dataset. |---|---|---|---| | src_dst | rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT | Rasterio dataset. | None | | 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. | None | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| padding | int | Padding to apply to each edge of the tile when retrieving data to assist in reducing resampling artefacts along edges. Defaults to `0`. | `0` | +| height | int | Output height of the image. | None | +| width | int | Output width of the image. | None | +| max_size | int | Limit output size image if not width and height. | None | | dst_crs | rasterio.crs.CRS | Target coordinate reference system. | None | | bounds_crs | rasterio.crs.CRS | Overwrite bounds Coordinate Reference System. | None | +| indexes | sequence of int or int | Band indexes. | None | | minimum_overlap | float | Minimum % overlap for which to raise an error with dataset not covering enough of the tile. | None | +| padding | int | Padding to apply to each bbox edge. Helps reduce resampling artefacts along edges. Defaults to `0`. | `0` | +| buffer | float | Buffer to apply to each bbox edge. Defaults to `0.`. | `0.` | +| nodata | int or float | Overwrite dataset internal nodata value. | None | | vrt_options | dict | Options to be passed to the rasterio.warp.WarpedVRT class. | None | -| max_size | int | Limit output size array if not width and height. | None | -| kwargs | optional | Additional options to forward to `rio_tiler.reader.read`. | None | +| resampling_method | RIOResampling | RasterIO resampling algorithm. Defaults to `nearest`. | `nearest` | +| reproject_method | WarpResampling | WarpKernel resampling algorithm. Defaults to `nearest`. | `nearest` | +| unscale | bool | Apply 'scales' and 'offsets' on output data value. Defaults to `False`. | `False` | +| post_process | callable | Function to apply on output data and mask values. | None | **Returns:** | Type | Description | |---|---| -| tuple | Data (numpy.ndarray) and Mask (numpy.ndarray) values. | +| None | ImageData | ### point @@ -59,13 +78,14 @@ def point( coordinates: Tuple[float, float], indexes: Union[Sequence[int], int, NoneType] = None, coord_crs: rasterio.crs.CRS = CRS.from_epsg(4326), - masked: bool = True, + force_binary_mask: bool = True, nodata: Union[float, int, str, NoneType] = None, + vrt_options: Optional[Dict] = None, + resampling_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'gauss', 'rms'] = 'nearest', + reproject_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'sum', 'rms'] = 'nearest', unscale: bool = False, - resampling_method: rasterio.enums.Resampling = 'nearest', - vrt_options: Union[Dict, NoneType] = None, - post_process: Union[Callable[[numpy.ndarray, numpy.ndarray], Tuple[numpy.ndarray, numpy.ndarray]], NoneType] = None -) -> List + post_process: Optional[Callable[[numpy.ma.core.MaskedArray], numpy.ma.core.MaskedArray]] = None +) -> rio_tiler.models.PointData ``` @@ -79,50 +99,18 @@ Read a pixel value for a point. | coordinates | tuple | Coordinates in form of (X, Y). | None | | indexes | sequence of int or int | Band indexes. | None | | coord_crs | rasterio.crs.CRS | Coordinate Reference System of the input coords. Defaults to `epsg:4326`. | `epsg:4326` | -| masked | bool | Mask samples that fall outside the extent of the dataset. Defaults to `True`. | `True` | | nodata | int or float | Overwrite dataset internal nodata value. | None | -| unscale | bool | Apply 'scales' and 'offsets' on output data value. Defaults to `False`. | `False` | -| resampling_method | rasterio.enums.Resampling | Rasterio's resampling algorithm. Defaults to `nearest`. | `nearest` | | vrt_options | dict | Options to be passed to the rasterio.warp.WarpedVRT class. | None | +| resampling_method | RIOResampling | RasterIO resampling algorithm. Defaults to `nearest`. | `nearest` | +| reproject_method | WarpResampling | WarpKernel resampling algorithm. Defaults to `nearest`. | `nearest` | +| unscale | bool | Apply 'scales' and 'offsets' on output data value. Defaults to `False`. | `False` | | post_process | callable | Function to apply on output data and mask values. | None | **Returns:** | Type | Description | |---|---| -| list | Pixel value per band indexes. | - - -### preview - -```python3 -def preview( - src_dst: Union[rasterio.io.DatasetReader, rasterio.io.DatasetWriter, rasterio.vrt.WarpedVRT], - max_size: int = 1024, - height: int = None, - width: int = None, - **kwargs: Any -) -> Tuple[numpy.ndarray, numpy.ndarray] -``` - - -Read decimated version of a dataset. - -**Parameters:** - -| Name | Type | Description | Default | -|---|---|---|---| -| src_dst | rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT | Rasterio dataset. | None | -| max_size | int | Limit output size array if not width and height. Defaults to `1024`. | `1024` | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | -| kwargs | optional | Additional options to forward to `rio_tiler.reader.read`. | None | - -**Returns:** - -| Type | Description | -|---|---| -| tuple | Data (numpy.ndarray) and Mask (numpy.ndarray) values. | +| None | PointData | ### read @@ -130,17 +118,20 @@ Read decimated version of a dataset. ```python3 def read( src_dst: Union[rasterio.io.DatasetReader, rasterio.io.DatasetWriter, rasterio.vrt.WarpedVRT], - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, + dst_crs: Optional[rasterio.crs.CRS] = None, + height: Optional[int] = None, + width: Optional[int] = None, + max_size: Optional[int] = None, indexes: Union[Sequence[int], int, NoneType] = None, - window: Union[rasterio.windows.Window, NoneType] = None, + window: Optional[rasterio.windows.Window] = None, force_binary_mask: bool = True, nodata: Union[float, int, str, NoneType] = None, + vrt_options: Optional[Dict] = None, + resampling_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'gauss', 'rms'] = 'nearest', + reproject_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'sum', 'rms'] = 'nearest', unscale: bool = False, - resampling_method: rasterio.enums.Resampling = 'nearest', - vrt_options: Union[Dict, NoneType] = None, - post_process: Union[Callable[[numpy.ndarray, numpy.ndarray], Tuple[numpy.ndarray, numpy.ndarray]], NoneType] = None -) -> Tuple[numpy.ndarray, numpy.ndarray] + post_process: Optional[Callable[[numpy.ma.core.MaskedArray], numpy.ma.core.MaskedArray]] = None +) -> rio_tiler.models.ImageData ``` @@ -151,19 +142,192 @@ Low level read function. | Name | Type | Description | Default | |---|---|---|---| | src_dst | rasterio.io.DatasetReader or rasterio.io.DatasetWriter or rasterio.vrt.WarpedVRT | Rasterio dataset. | None | -| height | int | Output height of the array. | None | -| width | int | Output width of the array. | None | +| dst_crs | rasterio.crs.CRS | Target coordinate reference system. | None | +| height | int | Output height of the image. | None | +| width | int | Output width of the image. | None | +| max_size | int | Limit output size image if not width and height. | None | | indexes | sequence of int or int | Band indexes. | None | | window | rasterio.windows.Window | Window to read. | None | -| force_binary_mask | bool | Cast returned mask to binary values (0 or 255). Defaults to `True`. | `True` | | nodata | int or float | Overwrite dataset internal nodata value. | None | -| unscale | bool | Apply 'scales' and 'offsets' on output data value. Defaults to `False`. | `False` | -| resampling_method | rasterio.enums.Resampling | Rasterio's resampling algorithm. Defaults to `nearest`. | `nearest` | | vrt_options | dict | Options to be passed to the rasterio.warp.WarpedVRT class. | None | +| resampling_method | RIOResampling | RasterIO resampling algorithm. Defaults to `nearest`. | `nearest` | +| reproject_method | WarpResampling | WarpKernel resampling algorithm. Defaults to `nearest`. | `nearest` | +| force_binary_mask | bool | Cast returned mask to binary values (0 or 255). Defaults to `True`. | `True` | +| unscale | bool | Apply 'scales' and 'offsets' on output data value. Defaults to `False`. | `False` | | post_process | callable | Function to apply on output data and mask values. | None | **Returns:** | Type | Description | |---|---| -| tuple | Data (numpy.ndarray) and Mask (numpy.ndarray) values. | \ No newline at end of file +| None | ImageData | + +## Classes + +### Options + +```python3 +class Options( + /, + *args, + **kwargs +) +``` + +#### Ancestors (in MRO) + +* builtins.dict + +#### Methods + + +#### clear + +```python3 +def clear( + ... +) +``` + + +D.clear() -> None. Remove all items from D. + + +#### copy + +```python3 +def copy( + ... +) +``` + + +D.copy() -> a shallow copy of D + + +#### fromkeys + +```python3 +def fromkeys( + iterable, + value=None, + / +) +``` + + +Create a new dictionary with keys from iterable and values set to value. + + +#### get + +```python3 +def get( + self, + key, + default=None, + / +) +``` + + +Return the value for key if key is in the dictionary, else default. + + +#### items + +```python3 +def items( + ... +) +``` + + +D.items() -> a set-like object providing a view on D's items + + +#### keys + +```python3 +def keys( + ... +) +``` + + +D.keys() -> a set-like object providing a view on D's keys + + +#### pop + +```python3 +def pop( + ... +) +``` + + +D.pop(k[,d]) -> v, remove specified key and return the corresponding value. + +If key is not found, default is returned if given, otherwise KeyError is raised + + +#### popitem + +```python3 +def popitem( + self, + / +) +``` + + +Remove and return a (key, value) pair as a 2-tuple. + +Pairs are returned in LIFO (last-in, first-out) order. +Raises KeyError if the dict is empty. + + +#### setdefault + +```python3 +def setdefault( + self, + key, + default=None, + / +) +``` + + +Insert key with a value of default if key is not in the dictionary. + +Return the value for key if key is in the dictionary, else default. + + +#### update + +```python3 +def update( + ... +) +``` + + +D.update([E, ]**F) -> None. Update D from dict/iterable E and F. + +If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] +If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v +In either case, this is followed by: for k in F: D[k] = F[k] + + +#### values + +```python3 +def values( + ... +) +``` + + +D.values() -> an object providing a view on D's values \ No newline at end of file diff --git a/docs/src/api/rio_tiler/tasks.md b/docs/src/api/rio_tiler/tasks.md index 98537f48..7f2bddf6 100644 --- a/docs/src/api/rio_tiler/tasks.md +++ b/docs/src/api/rio_tiler/tasks.md @@ -38,7 +38,7 @@ Create Future Tasks. ```python3 def filter_tasks( tasks: Sequence[Tuple[Union[concurrent.futures._base.Future, Callable], Any]], - allowed_exceptions: Union[Tuple, NoneType] = None + allowed_exceptions: Optional[Tuple] = None ) -> Generator ``` @@ -67,7 +67,7 @@ def multi_arrays( reader: Callable[..., rio_tiler.models.ImageData], *args: Any, threads: int = 40, - allowed_exceptions: Union[Tuple, NoneType] = None, + allowed_exceptions: Optional[Tuple] = None, **kwargs: Any ) -> rio_tiler.models.ImageData ``` @@ -76,6 +76,23 @@ def multi_arrays( Merge arrays returned from tasks. +### multi_points + +```python3 +def multi_points( + asset_list: Sequence, + reader: Callable[..., rio_tiler.models.PointData], + *args: Any, + threads: int = 40, + allowed_exceptions: Optional[Tuple] = None, + **kwargs: Any +) -> rio_tiler.models.PointData +``` + + +Merge points returned from tasks. + + ### multi_values ```python3 @@ -84,7 +101,7 @@ def multi_values( reader: Callable, *args: Any, threads: int = 40, - allowed_exceptions: Union[Tuple, NoneType] = None, + allowed_exceptions: Optional[Tuple] = None, **kwargs: Any ) -> Dict ``` diff --git a/docs/src/api/rio_tiler/utils.md b/docs/src/api/rio_tiler/utils.md index 07288974..ca6dc3e5 100644 --- a/docs/src/api/rio_tiler/utils.md +++ b/docs/src/api/rio_tiler/utils.md @@ -4,22 +4,13 @@ rio_tiler.utils: utility functions. None -## Functions - - -### aws_get_object +## Variables ```python3 -def aws_get_object( - bucket: str, - key: str, - request_pays: bool = False, - client: = None -) -> bytes +WEB_MERCATOR_CRS ``` - -AWS s3 get object content. +## Functions ### create_cutline @@ -58,8 +49,9 @@ Ref: https://gdal.org/api/gdalwarp_cpp.html?highlight=vrt#_CPPv415GDALWarpOption def get_array_statistics( data: numpy.ma.core.MaskedArray, categorical: bool = False, - categories: Union[List[float], NoneType] = None, - percentiles: List[int] = [2, 98], + categories: Optional[List[float]] = None, + percentiles: Optional[List[int]] = None, + coverage: Optional[numpy.ndarray[Any, numpy.dtype[numpy.floating]]] = None, **kwargs: Any ) -> List[Dict[Any, Any]] ``` @@ -72,30 +64,17 @@ Calculate per band array statistics. | Name | Type | Description | Default | |---|---|---|---| | data | numpy.ma.MaskedArray | input masked array data to get the statistics from. | None | -| categorical | bool | treat input data as categorical data. Defaults to False. | False | +| categorical | bool | treat input data as categorical data. Defaults to `False`. | `False` | | categories | list of numbers | list of categories to return value for. | None | | percentiles | list of numbers | list of percentile values to calculate. Defaults to `[2, 98]`. | `[2, 98]` | +| coverage | numpy.array | Data coverage fraction. | None | | kwargs | optional | options to forward to `numpy.histogram` function (only applies for non-categorical data). | None | **Returns:** | Type | Description | |---|---| -| None | list of dict | - - -### get_bands_names - -```python3 -def get_bands_names( - indexes: Union[Sequence[int], NoneType] = None, - expression: Union[str, NoneType] = None, - count: Union[int, NoneType] = None -) -> List[str] -``` - - -Define bands names based on expression, indexes or band count. +| list | list of array statistics (dict) | ### get_overview_level @@ -138,8 +117,8 @@ Freely adapted from https://github.com/OSGeo/gdal/blob/41993f127e6e1669fbd9e9447 def get_vrt_transform( src_dst: Union[rasterio.io.DatasetReader, rasterio.io.DatasetWriter, rasterio.vrt.WarpedVRT], bounds: Tuple[float, float, float, float], - height: Union[int, NoneType] = None, - width: Union[int, NoneType] = None, + height: Optional[int] = None, + width: Optional[int] = None, dst_crs: rasterio.crs.CRS = CRS.from_epsg(3857), window_precision: int = 6 ) -> Tuple[affine.Affine, int, int] @@ -249,6 +228,18 @@ def non_alpha_indexes( Return indexes of non-alpha bands. +### normalize_bounds + +```python3 +def normalize_bounds( + bounds: Tuple[float, float, float, float] +) -> Tuple[float, float, float, float] +``` + + +Return BBox in correct minx, miny, maxx, maxy order. + + ### pansharpening_brovey ```python3 @@ -276,7 +267,7 @@ Original code from https://github.com/mapbox/rio-pansharpen ```python3 def render( data: numpy.ndarray, - mask: Union[numpy.ndarray, NoneType] = None, + mask: Optional[numpy.ndarray] = None, img_format: str = 'PNG', colormap: Union[Dict[int, Tuple[int, int, int, int]], Sequence[Tuple[Tuple[Union[float, int], Union[float, int]], Tuple[int, int, int, int]]], NoneType] = None, **creation_options: Any @@ -306,7 +297,7 @@ def resize_array( data: numpy.ndarray, height: int, width: int, - resampling_method: rasterio.enums.Resampling = 'nearest' + resampling_method: Literal['nearest', 'bilinear', 'cubic', 'cubic_spline', 'lanczos', 'average', 'mode', 'gauss', 'rms'] = 'nearest' ) -> numpy.ndarray ``` diff --git a/docs/src/colormap.md b/docs/src/colormap.md index ffaf69e0..79dded5c 100644 --- a/docs/src/colormap.md +++ b/docs/src/colormap.md @@ -133,6 +133,7 @@ data, mask = apply_cmap(data, cmap) ![](img/cyclic.png) ![](img/qualitative.png) ![](img/miscellaneous.png) +![](img/colormaps_for_oceanography.png) ### References diff --git a/docs/src/img/colormaps_for_oceanography.png b/docs/src/img/colormaps_for_oceanography.png new file mode 100644 index 0000000000000000000000000000000000000000..8643671dd282337a72ece8cc242086cd1b378dd8 GIT binary patch literal 73309 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 ZvwZ1*T=zA#eU1vtC94+4E!=YGe*ioqooxUB literal 0 HcmV?d00001 diff --git a/docs/src/img/custom.png b/docs/src/img/custom.png index 82e668aa898269c0fea4822c7aee5ced4af87c71..efe52a9649f01d13252e8cd947747f384d6a9f12 100644 GIT binary patch literal 19368 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%0D*!(83UJk(NnCxy_4|&z1d7Cye9*aT#9}e ziYJ>hvV8dZF?SZTFOMjJ8kmo46;uTKZ}0B>87hs2O$4@9gF?dkifF%W+;|ZjfSo3e zHV`X`=s=Zk3^SXWon0FC8K3Oz_os?TB*m_zFQ*YH$I0hHpAK{C-Y!d=>SNfX{)%+9Vw@uK_R)Onb-x!916dB1at8(pHBuJpbU^cUG zBS=-IaSvl@ad?Sa7FAdk+R`Y?j!>NfR}EC!3un)sec|;pC^)}m3X?H`?P-E(C8hQ# z4CG@*UygfAjNT^!qWkxMBR)C+U^Vo%IK&t92xo8}!nW*%O;iWfX#(%-FAF?EqKEyJz zKq1bVKv)&C?S2Hr&@rL8ysd7uGq1go6}@uh%A=NT5^(HJ1N&dJv3V2bI$H8)VDt6V zzV@ZXOt@(;j~G@M)g@@4B>KfFq6d$od%s#v1En+%%E`&u42+j5f_WaZ?)V@v3>91x zOHS3qB(B(tBOXejSQB!Ik#NCX7M%7fh9$s$GJW^=8ZlJ5=Bq}rDpBl;LL`t1d82qw zQC2s?Y~&KX80UKEjcTda6`(wj?TF-upWBnB&Is2vKfuMG#w%d`%0ky|Mhw|M?#VU)grndf(5-f@_5* z`+4F2beeXVUwoupPtAUu+_PA(%D*RnY2w*A*~X*Az%eY7Ft!!EyUi8PtNXX`kxKNy?mE!nZ! z#YmuHWRK_+!)^YU)MOVsb4n|_p>x0GgT#d+d}B@n!=0`bgBqO0-Nu=@mQ(gprXho! z^Nn{x=wfa9X4KZO&Q5JneCXrMjGhOQWrmLj!oUsaVB2{3^ z0A`-^mYfXmVi#5U>Iw$}FMk#g(5u>Zu}&LiLbR0IEGZ43&-IUm+g`2NvUfi^!%+*Q zVsbjY#Mu{Ml^sQz5RKn?VLOzB=YUeBb5-TB*)O79A(;VE$EWf!Yq^qq6-qaU%#E?7L>J1eSLghLM-U-^p>te0g#$J}?ljQUad~ zbDPuvYwO42bpCpCHRwjMD~%bM59N7NFkGqG-rWR&wY$$HLOUT;7f`z&;h+OG{O6X} z>eu#$6~FltFp3D|S)E)5`@DLDJ0%uiuDv44=79sU;A~z~mf2lffk4m0et``T3b|7x4oDgw8E2AjfkYz-Y)_svLJ|GQo{^Zzg8&+wlP_?g z5Q5zAPa`TZKr11g;Kz+4?!euI$dGs*vKB7hQB|mowIY>wpY-P|MDTpWF%EdivAOI9+a3{wmH*M9eL#DPLdsn?$ApD z-e4ff>u1-+d9zOE1^|sOH}c)4kZ;MaF;AB=+nnRMjY;1Jz--oDzNw<&ElkI=#^GT& z)+Pg_&kU_En?O`b&Ig$=#PmmB{*_on0*2_JQtcV&R-(GFRn#H7aLxfEXGvTHh^@(` zTKW%WGyc?Zx*?Y|FkrT4&mL&x)yde!{5_xe{?uhQUAKI_Bt;giZOH8T{q>MSGY8R^ z?ef}S3%#)6Nr3Q}W5$alCw&3WJp4uv{F8;{`z+5KmaMqLq-ZiE@A;RA3ds3@KXuvU zrMsbPdnd) z$Jnn~yVhplteq}fPkmUoRY6`>R{hrHo74{9PkFb8;WnzB(rBhG`qU?Of8Cw*pUCtM zDAgSYoNq{O)@k*i`?jLU&fhALc+SBgL%%+3EJvhp^60&>Qx{xyw3a{h z#~e`YoeYqX*3vAo}ND3p$LhX7lQGVw}bD+Vfg$9Ax^78Rp1`WA=zN-HKT~< zeVyFKs86QmP1>6;x7}qz%+dr#LyT(wK`z%HHzRrdS@!MSJA0IhaM~W713$8zzZL^S zOu$x}IXayFPf$=C*h-ceU58CJ2VMq8^6guhtAZ2@%g&vQ>b&ebuMwCcsYF#vrp7czZ8V)iCs zDfsL!sN@ll+DNWd88u}B&V4+nF+tH%a|1_c8{eV)k&tU)9T)TR&^`N|g`#Xk?h6oj z{M|YMBk)P5CRFM~q=b2;q}qD2Pn|qDj;=xi(Q=B4^$=i=AyF#hf^c4&W9Npb=xALk zQxVobgIEo{l@SvS`rci}%xl(EVpG2Yh3*nxL`Fje>#n;ZblE*X7Q$&3r#H^%c`T$8 zb>;iaPsw+wXiw4p&0s3^9UmXoM#wNDK_?4q5Xq8yq9dX1it=~y-3K{0MTI2Qi74j4 z(8S`xaMwXy9ESnI_HEw*O=ijQe=a6z$D)?0n?^IANc_qeMe$?s z`nB9shP^xmVgDWc{V$ksT5E}MfX#9?hQ9cYMdnh*%1fOpb(6=Z7Iq)3->Na^|0ZK~ z?)IH#4^ADlbu#k)Z6Z;!Y;#Zc`Op8i&|rUa>hI`y%gf~71=|_6_bACD6yxQ0;+&H> ziBpj;X^`=s-~G^Ej%oaxekk<*(4&s?KgAD9QSICRn4tZ?k^h(Vdrx{xYA)aKwrFT6 zA6AI^Ef#zfVjjF(US(10@cE-fNqLL#aX*Jr!!;R!F&m$Gr^Jl-P5xfmq)}+L%D}eW zB2b`a^PEI@wJF16W=&dxujIaJ7Q@EWGHWlPt1orL}@z=S$U*_ z?JKLo%pa6592rdurYEK)tj}Bs)i-V4!{u!+Rr+R9^lr0AvuhJCFU^(n+VvoMO-Kmk zoY|0NW?FONpaaA4+|t3ZK(@;P&8s$yx$g2Q%`&?&^Zw4I^DX~S-e*oq6h?GssVR9y zwTiX5v70^EeXDF{wMOBVgp@t)mrc!PHl}e3NEF%Urdz&FPwu)DwK8$AE}PFfY*>q- zna#y@r8Fb0C+qR;?@}8-9i5WEr>W9zO?WYDNFAaH{FPJ$kdf$#}6f2BrNgTWz!*_sllrA0~{BeKL ze1&zGzJ~Z*R-Mo}_HEZ@T#gpyiDVQV4{tKBb09yFQeL$(VN6Tk*1fKi>2AQ%^~_0T ztA4J_<;N6*t>=5^Gv&5NPajRK4G}YsGO$CJ|MJl{Tix^1jE(lh{xquqEtmw z!&Hrmb)`;5lF13y&tt~E&}ME)giM{`Sgk=nC%mxE<)B{uyZUs`SoYm|ugPII^7Zdo z$t;xQ-EhlMI*=zhIHYFf%LjoTavlB$y;I}MhThwDE^lzWTe7EH9*(qm!g z^5D<_oW2Wy8AKae_3QdCkb9tyXS>qEq&;+#^CyFdS^^hUY*13g?fvme^y+8vb$4T%Z zB+3%GB+1&?ER8IZfFR>*BKkk0QikgSN;C@sRgiFdE5wIu(9a)Ub6=j4uS+24HyO1* ztqr;aQvnGH65k-(Hiq=U3(yrMT_%rCXyn+%{Edt8nFXd&Wftq&@Fm z$&y%v`BIC>cr`mY-iP*2GJ5K|PG|Is9|=D0LvWyT0v+{2p}U*v92_0HuSF|V0Xt>` zW^s5!-18}BJ30f#L#x&M4Kv*?Kfa#ekZ@E28K^?=`WVuROibC*`RBu>5_5-g&S7Nj zo9XI%%sI46hS?>6fwvyK^c-MFWNp;)lTn70C}lK=Qnfg91WEinPSx!|j$Dj7M9w;b zpYq^XEIB_3xIXqs2dPqv!UYEdLqlHVs-S|YK=HbO#EZeTYeqP9L*_B<^4pdEG-+In z`1d$M22L%Dq`NwLCHis{iER^WjL^KA?t1$v-TEM>M6BiR1LrJBeV>eg7|A0L zy^kE=ZKES0hKT}gPK2E5wlGoeF3ugLSpN6T@-L4FD+ufe>kRzZn*O?CrDy9oYTHVzE zv`gMXBxHazvgDzsCY???<-RyglNNJWBq}d?(uhQi$@0O77pGR6w`5huIQhR{X^n8_oYFUWxoB0^4I;WI&XUss(Pkq9?5fn!V$v+Dz8tH_Maxc zE@dcYJ=se-L+3Mrx8f1qI=ucA@5O{qnS|Oxf;2EeQcA7hOfo5fq)0%k@WuR&NZBLl zB*?ntDroclFWR0QVn-p|WMLv8%eV{{YE2uef@vG%>5+}YVB zdpatxRPs18t-hU?thxt{^5?@EQ%{W1YI7alR zD(Eb)V#1tx6vKVeHeLk8Ba1C_h8SF(bTEfK2k57i5|AS4&5)EP z5S+*(vMP{cj$;41&iO{#zivv=zt?GxwcIj^dx=uC{g?U7HMAnY8+e-!=Wn1mSCi}} z&TkumGW$d#F9$Wba^$Ng7BelY<)n9R>8bp0v5o;+>}kz|Ga1zW8d;ag0m0TK{waHl zx4csxp~D_MuI;&GI|T|KJ9YsG9~uRYqOv1HX45?6N|&-606jwU`lr=G9d>-d{OCCt zkXZwIDs{UGXKZmCGHXx^JubZarzBq}JwUMoX*hwk`vs+t=ml{IzW5}u*cL2IY7yZZ zcBZesfBgh^;at1MIz4z0O8DqLtO&Oq!WL#ZnOBnbg*m=c9`CP?@h0Q|iC6|W$(!au ztYheKLzYI{?lwz=K8y(qA;%$|C&CtYOsA!7OS!(qUWx z0Y#lzJ~0@)YLdUgQ02SY@_2Cn<`*^=8Zc^pJQWPQNGr2J{*XbWP)O5EYQ33Kac z2%RGFEn>H+cgppPiLeRV3P@5vs*3--1E!*tFyS0n?m^eFN2Ewr1+EDYI`m;2^s?uhd<4&CzQJOiM_66-pJi(#c=+< z&tAFU&a+1gxRXv{A9MK2cp%@#KS%UFaq7^)AJ)q^K*Wk7*Z>uXThiZfje3PP~W z0XQ!BjN^|VG>-pR6OT5P=XG%&oyDs6bULSU&65g$X>hqK37}VuDe;V{{iE7Xw`@;o+E#-Vfa&X#+vc*{xrmC?ZpRVM6E^25M&RwDZ(ZBK-WIHU_dD#1n%!--}BJA>(nq zEWkRwx;z5+6^Dt4FuI;UtdrF8PCaSfQ$HJ3CK^3!`S>-EpdY`EiAge!D_wMVfzEc}#YrX{u#Lkh1QQ$@gV`yIGZTw(9$xcdcBWnP?tnZf7rizG7+X`U z0_W~PLqwHyNZ1Y-h(x$Bek5B0HTlJ>DuKfodl(@kj7i)09?~#TS%`v!0yhB_h-H@i zO$da>mKq<;TU`D1EA`4yW2+yvOmDSN@ScsIQpTtFGMtQr&HNmimpF5-rZ)0r2hRQa zsmfyJ;9H@wnwz77lSkXCIIn7mGaMMl8(T89y4R(DkfQgDH_hs~ujDf|pqCu|s4;oa zHbmd+$Y7vfLyNmq>3mVhBQx8jQqek*c%_lXgol2UX5hZzPhwhKEustzvId9QwVL^7 z923Sg{L<-yEya!9)w&v@-D7_osdkO-{{G9QtF|7wQLPr{nOZchS;Ihj9_4)tr%^!9 zx+mJj2CK@r_&?Zm-2G)+L3+;&$1z&eEt`Xbbt6Nam(Q_px>h0mX*TroW4@VRwe(A= z&nFzetw?H4bi1AC#z*5}H8RhvFn=)S+OApud13lDt&Av1nmIf7l=bmwCn*=dZ$cTa zOeLeHj10-KTlZ4@8b<98l-5VR;m@|DAMwbT6X|?8H+hm)H_u1SOmY2~{W#G)&@X$y zZ#b8|bm~gjq{Kq2H~meT*4@%7ok_}=|NScuY|E%oC1d`{|8J0GK}+s8oOH49mNKqw zCKavKO^s%LWAAJ@HR-&j?7e*waF$8HRqF-_b%YBo^AHUh0mR9-$U#@@LyobO4X?fwA4TZw`iTr<^d6k_69z0 zgI6yb9l}St+%VjpquQEbp{k}9?8_#}oztEWmyj)!l$2!L5dZwGYNA#P$NHeURHIsc z*E!4cq5=ZS_wV123ffAc9E+sk_pkH?xXe zHET`JJG*;5-l<}3;Vk!yi)&Vj&xT6Ob#2fyFmMs*Yf91$<~Q;`cq#aGx>@UBTBDX? zh@cs_b#zcscj3b{$8nwWF2hYpQGv90mE1Gy@XjAR#a(9ldqXT#WMm!~<&^8!ZWd~L zu`oTvB`B!UQxZ^H{p!43*N1gSwevL$DnhNiHIsBaThh(AJ|E+@TVN=}>rO9CR*JUl zq^zS*xINbX2)!UD*We@6@rGLLCz>uLB{lHeAiVnPs$DTab>e|wi*YDpSn;xh=FB^EI zdbZOe@!x;{m3@31&+OX1R#FeW*xav*I*i(;KJoXTnyi%M;^wZ1IpMZ2Ro#+iQlG3> z>Myqqzy6bn{Q9l+3JMDRc7saiMUNc0xH@0yv6G%&`L$yJmuiFm0a+PNas28BgSHJ= zqZhY?I$dk0KKK^1d1$1WG;*tyS@)FC3%%QJHSt6Gopym%j{S(jxpQ|XCMI^WvL<9^ zo~VDTEbGH0py22@cc7f((4q5OstI-B;x4vJb5z1&2?ZXzF_wB4p9f@J>A-Ffcka zl)12|XfW6$;mT0MyN5dy-yFw_n>HV35wX31r$2b`KtV$zR4v0?^JP$Vgs6jDY2eY? ze>QBg9d6?F^zSlMo%rm#=Ba6UOX`Dtiqe5d>3r9*O|RVV~{7M6FP(@$QXKQHP2@XleP_cl&$ax<%1lU0G%@ z^El(R#cnw6oDY*$Wr&E~TitN>{Q?5@BXiS3jeGK(r;p#hef#2MyyQRs{Bur0!GC;Z zaV(@aCOSGhtZ%SbQwx`Nd^BfFVm~KmNzc;1|NcguZqyd42ovqAw;E_ldZlY#?8~zG z^D*zqzREp3`ExI~v9XQWvSGIu4L7II7K&JP|7+FhHoF@e%tj;;JNulqb+W1x{ds%) z^zrXrY)qS(_$^)H_wV2D(`uemJ~!VNAzmbA)9cM^-ge@ZOaLc0RqFitJ-S8SyuPgB zgUaFg;ZNop5;RSw`l~;WWHqN6DN;i$^2a&DZ!kt@ktT72@$TdBaC2`afs%W^zT7)K zmgdG;``E;t>lk@;{@upPI?7)>Gt#<8)PDHzQ`~fQ?-29sZ||E;J$rxq?KeiOm%z## zl`gTPu_MpLM^)Rc-mo?O-8N?C;ThKp7ccU6IQ6k4dN^pfxzjRm^ZWbzhmP()eE4gB zV`4;-!2IZa^Ji;OvMJDdS-Hk=GN-i>at{vC$Flc+v1EsMW`^9HzDm-h86YPE44IZ zZmKgU#k@VcUTi51z; z%#(Jf<>qkq>{&+1<*6sdZe_s&rE%0NKVvkqtXZk+DY>5yd{|on>_^3%c*$Jd>X%Z^ zKR<4|)QSNTi%-Y7ckijl$jAjWH@hESx0$tPD}Vd;ExC2Xv%ASuaO3a4%lHr5=L~Eg zSQ@ElGEG0-s$UTri`~n~!&8}bR76Bg+pi$%1@UW>_bFx&y(!@jEGOT7a`h&^z zV7<)6i&KMnd+tW!Nydc_=>15voqjtR?k|Ck=gF znu#ilgzHt@BP?V9>DvAMh9jK?+BUsq)odP1d!8#XMN$B)JoC!$#xh^ z!0SFw7cyQ@{{|afS_*l`Eh0oFcW3fBPe$iFGeEE@x!)W~7&3oQr z#adDf{M?tu&xc94snvMOYAsF;yt2rjKZkzLku*E|b-!PKyF;gdne2rNmuE-Y>Dky4 z@qR}06FumjPhPF&jO8n4n72=r@)S6_IZdF->M|^}Sx#7(|$1+nJE2b>+&HmJEvs_qp$zYUeGBSsV@v3tuD6UelpH zs;x}}O*7V{F#*#*{PvwYX>N=5)=u}ZLF z7*?G`zmk!buFiFuw4E8gCe6ToKEEeWoqWbO%5f@k)RDF<#SNRb)Xh)!v9xwmsrC78 zE(Z=C+JwJXphVf87&_=1b1G!~-w^?-AjUHlYC804b8igri}?AKYc9rnj2gIPaeJWf7%uD*{5WUd$((K$mo0)z7S= z_GP5?a?Efg=62irPEVF<$CA2>iO|D+s75i?hGyFhF&R{b+c9~}{rv80g)LU}@1Hx` zR=5pr-eipMSjno!jn8n}K*>E%z+6`W;FQk79s7ZrCr zC?{@y-CEnWiOscYWRBd7AaVDJZ-=;x8IDkT83G&PuTkyUu&a6L53=vZK(%#|*2kp` zXj#wC?m5D-|GY1Mp5Myy;vST*R=J(ZS-!tMKRd4XfI}ZM@^L^wkD$uOmp<&eU+!(= zE_PO@l$Dn9ZQrrulCDA7v+sg_*yX{a^t%}u`_n&MJ!bDdUK6xfcdgGwgbirfT!d|+ z@)db;pds$Q@(9V!)QF|U&4Euhu{wU(Cc1a;N3)OR3-i*)%`?CMp3w({=?iE|R~t&O z*+A3npzD6j!pTizn<-tQjecT)l9``g$HauR=*@FH1=u*Iso#oyp-^^CMpm{K1FXmJ z(7}U)7~Bq`hd4Q9*xaTb4{R@Y=x{0?a+8?&y5G3^rDrQIkY)kZZl$Mk$04~oWmU}{ zYdPR6^So)5^DZMTY0lPo9C|DfL zd8-ih;MFo_c?dTf_XB_*ld+CG-*+AUy_rDll02IyhTP)6ujLvICk#2zyHf0KYpC1?%ThgB~f-U=MPGP(i(4BiR)sEt?>+L4N|VIt|mSE)$%7= z9z%3EIkpKaj;pFd(<7~oLs=VX|ME|@?ve4c0W5t9MBv06^ytxb;|%n)ku!TW%2Oob zU%lDIqc!YkmeR~`+4VuEIJd62qg8`bH6i}>YxcxmPcN?!nv@)ev4(MKv3P~7jLbx4 zO?8<4NDKXdt0CH%>Nsu1!&Zx+Hw^rh7u0IQwXF{lUXV3ndkT;{2*e7VxP*&HGWfM~@j3F}3nQj+# z^GYA7W3BSZ*Ik3LpjShKaf#gaWw(p9{8hPfCeS1+Qx$4MbjKdtV8oAAA5T1bV9&bq z$ZdwgC^5fWVXtVpu(trt(_@|5PYzzHLFL+_j`Z~PIfaB&(E_3)Zp(#>4Jga`*JWDi zCKd}C)qJV5Pxl|MKF?;Co8CIIP^!K15>GS!@%8b-RIU8<;#h%8o+RaD^_tc&$1`-m z<-9L5N7O}`qUG7nMAG$AM?Ub=h2 z`8fVKAKxV@4($m`!Hy6OPNg?pwG#2%(@sAsbp6Dmx9vaYm^M-U+@`O>NnDVdJK?Kt zm>V~MRAXFXzVSkyr2A54^u^~d_nx`iPq>+@Yc6)h>q^Ph+>43%zuzjQU!$z6#&vHV z$L6^&FDR6}{&Dfyu~U=1<%%F9p}Y3XjJC%a)keo^7r4K@mJ*E}|M{W+`HzcS3(gi& zLs88QE&>ZrZjY5OR2D?_X45N~# z9BKvbd6-?%@$pBRN9=ds{XWMr_j8B#gSvcI!H$HxZkQZt*aAR}vVa|)3x2HPZ+Qxq z6tHhIa9^UWs6`w?LXAUW6w2tv0DB@_1U&@B2x-Z0<6pII$a8V98|%>Aw1v3}A2c2? z!33twW9307JAV$=qfI^Ap# zL2tyCpkY_9?AvH$WF(Q-d7JL|`=SY@S#b`pg+Su)-6VBFir|w{tz`2@?goY@FP}CZVx! zF;OYj|93jp_>Hu?3~bqgN)(_IHQE5RUpHo${kSD41$atC3xllH zR{q0FPRHQ`M${r7t;%*ZjDfZz6-gP*rqNynbN*hodSRP3USsQ4_-XWY6r?Gs>dwjB zG^5&siN)p}xy^M6+6DQQiw}K$8_Y7=qcJknK%Z4FSFLg@g@`#NSB_ICo@+Dea92_> zE8n{^7pjj?D&Ub$p_s=?ZtciM)sm(0Vm7VBVfAcVqofHd{igRfjKMixnJvGPh?rIo zv!MNp;F~l|W6?yL5CN0G)~hS8!3&~i7_?ol3_lC1P2xGR3hbx`j-onQ5iTBw0un_F zYgD;-@nVuS2UmRDT(0Ik(Uta%*#L!W`7J{pxHJM#yUVG-pU@$w2$j_xKyZ&$kFTe! zc&-1NLOHn(JEiu~-ZRW2dDfiU3nmRN}8* zd95K9s~i_dO^Z9UUVSX5cSP}q%T#|Pq$lB)v4YinT-=aV2L|*s@coIFqiU&_v4Qeh z46gBC|3CptIMHH}JAN*S%~=5@Dqz-9S50aG2w%LSw4|h_V0GEzyeL0^-B7(j!W8CO zo%_(cjNIT^2oRine6`j2(+%nm1I}O5Sq^K>aY!r{Mn6USbyND`#;uuM*CV-pr|r+K zQ*M*xLcaD;g#d)_>>Cr({y4Vp+w|-<$_JOV(Q^b)=6bf06)rA&AUeb~nz?=gS|7Gj3pkU}7I~&f0ya8^$mZZGmcvx;^Y>mUvE)pEV6wh@|yc^?$h zGplpOlFTC?KAaSv>$+1|^6E&|%EHhkGx?yt2uTmEJDccKFj*hZ8Zq7_x=@DHLT;`Y z^uH2YR{ZyERc(=cgoIhPSESG)_nhBe05{b#V|hyEv%?hh#j9t}oioN;Me7s~*2gKw z$g$)t48}!!?YkO=2@Mu~1^c`n<&;5Z4Xs599iMpwd$T__CS1YX+&nS~S|N%!EENo> zmWEf=ezYwXt zPwtC}o>I}49S1K~VHboYB(#BN1E%R`%WL3WE=isB5P${+AW&Yt0yVIX5Rh3tQP;Wm zq{*PhON~~=XWL%wI;wV}#iSwr3g*Jo;9xbw;epy1yRp34V46$xTq^wH_tW2iNAtTc zIo76wjH{E9uI=vmIy&W|1F{4~ zD8zkb-eBWzza8f1Pra~sL^UB4ggp+(&=_>tb3s1zL?o(96QkG8G)^(bm({WBpVPXl z(6WeFiS-W3Uz(83;8MdKdIzp?5+KpqGzXS zZ2$f<@{-G`;che61S~oG9{&z?AM@4rBba`BT1AM>=@y*{2V?`E(fo@I(zruj>^r|c^hCSTqZ$49!~yJPo%x!8zCq>s zig2?c-1pX;Wb9&T2I{_2yQl9HxZx@&o&lqY)qdBA9i z#bLf$#hc6ZxR!U=pl{VP%zc$Lpb#noQbV=apJv{!#>>lFQd&y90@BZkdJB3&1U4qV z!-p>rb)BfgVJECUZA+006Ul}YMxKfuWmp+5zJR8EX=4UJEp+d9U%2x|TQd?_-RExP zfi(GZ$4j_%{j-T5RY&l``1m-HlSqT?|HuXkR{M}A|LQ)crw4d)f8HL*cLWAWmYDys zgZwfyoGbeJ(Sqh}Z-6gE-80Dja$6XPk)w4C&&5?ZLq$k~xLzNtcphR?J?LN}c6rq6 z*M=RrPSImoFdf`5RJdt<@7^#RZOaN4bx0tB3#b}u^8(DB2lwt>R#6EgehpgiSEawb zF~QK0hiz6UltX_3_GH?2fB93l>>2MlOUw6rzk&ZjT5Za-de!QdJJVvKRrppd?QN3# zva>E3wj;5zv7S2IYN>B7%xk%fq!mHAXzz6aBBEvwB}_7wUemgJgE2+F{P?HOpYtkW zv7SXJcQJPrpak18qCXdp&(n+!W%Y$m8v9Pq;ibL~EjyWj8=b>?xh*U)37HQI_Cl}r z2^KJMX5oR1{S2S0SR+sP&^xk3pY>Cm!ek>P+`NJQ{Hz{MIPG$9zf$Sd7w%HQUm51H zL}k-rivwX}w9jdO1IDM@S`~Rlb4}(%V?1~AiDJY$^yN+1yhSQaHp;OAr%Bl$O zmn-5+p;Tu6#t47K2i2{%3Nn%k(O(>x^{r-3da*F>v2%ZpGtH{U$5;8$3D45u5Df(JH?JuQh$&Jcho@pg6la(tz>NHr1F-nzt@+$-M zKcFym#|Wk-^jy zR4xJ8o%n&JW1%Qa>|s@CqhyY16rsnz)h~M%3EFTN`Uuq>jpVICgqsQ>a0AJ9l#}C4 ze|;_tyAAx>rDSaU7VtD0n0IJyoO=APGxVHFm$AcfOZ2mc>lskr0B$YsZ`^?#lK?dw zJ^m6(N(mb8gMdl2=LC!+(p5{oe!UEZ;^oViN>MWO7za(d{|xAS15qsr;7T*7WMz?b z*ZBDH;{zWbWxV92S@F-Fljh~Y0#IH^=lb;N(@qA47-$D^S6-bne`uIs+L9`*o^DzV zDje|S$txH_^$D8lL}0eG{3+$gPyuuyL#!x>=}*JM$<-AW7RD0nu(*h;pjfvh~U^^_NeYZIIDfxb);Q2O%BxI7njIKFPNy&@hi z`I_Thvoi4A|M!C-HyFvTuH4OWzs3OKy9Q(?)6jnCW@?P{>SAy+xR{CCJ)Ux|q9sR-uK;)7QpbIHw`2 zUL9!fsgwGUZ+3g?NQ3+A)ph@cwWPUqSdk$1z6cL3;;ur$fcS;~vARuF*T|I{%xC$r zh^D71{#tJLwS~zg1qVgh7_&1fj3hRI)t{eQw^a{NgO9ne;Kt{>M*UTh5PJOCg;z3C zp_h|Qz$9Y(Ci+r{O3T37Qz(}yXPcAYYD+8Ng#?@?Zo-ZUv_4m;i~Ae%>sJyeu#@$O zA;d17W?auXStz;ogIltm>;EnxW}&PU+9kl{=u9*U=Ygo8IxuY_cEB`w z;O$+9R6raq!5G+w)rR1r zVsM4lG7|6s!g*<>V41=8oDBK-`A_B7|HHw-L5z_f z-<}9qb)O~D0>e?dwZ*@jeueVofL=x`0oZs8dH>fYiFqn?Vn1)8?IytBU=g-HOB@{- z5eKBv6zgG@9gzO)Mc0UrS(oc%b16)uej6X`gK-gvSKGF2BdF3G)C<5&9zr4!oY8ux zKn+OcIQImoDgoqgW|L@p+6j6o0P0SZFR0LPbgw`H#RQ9kM;8?xP0A7-I?$*CQbIsL zKorox(9iFm$q>_W9yn0@?B2aUB7Ez$S0)&ihqPDy*`ddtLasoOI7tX2l!pinjbwBZ zX@VbMS~)@ET1K1oL;3MvwIgWrqWFRW|qmfr}9xr4dMk5jn zai{M5?!TgX63VcpX^L^p>-$h1-_X!=?i?KI$jf1M?%z8-+OAHV&2Wzur_H;Mf0;V@ z7(l-t7wf+!WmVA>sJv4%s(NvXNzy$R%$eE*C-9Q=YL4U$%ovT{exC^Ug>P4u2-`=I z7!6uLf*;N5V@0XT60eeA!gklmavGX$Ri?GO_soj!q{eZ8O~?h=>>Th%BU~q>BfGWp zA*WDQ+liP&1jrQ8yjc87Yr$=WS62>UY++7(Q@do`luHQ+zB&%F*G7W%c+N6 zx(4cl%A2_$9)5l$(4a@Q-}8>BrS`wR=LoR?* z*`FQvYEUPJgv0O#f3LlPd0W3@d%oM^!}JJXFtjtd|FkrSfRRIq1zOm3O1RJU@cN6J zF!!GIrkga%p|AL}i!b!Qk^zj!w4$cMFhn>=J2jNH1&9+InVsAL&+vn$%ilccHmdRv zVU9xiLA`q;^Cr!%R+@xVE@_w9(Rz~KK^`fwC_>z&p>E5TEe*&n2tZjF0Uw5?Sr1X< zfb@+UHwLRB@7(=s_e;^S+*;eQ5B^ZVR9-u69FzXl!XNpq|9hzf(={MCm@}k2`uk@u z6A;sEcwswt?0EI)(bi^DK`4yp#}m4GKFpKo3P_PLWUpXxm-Ikx&9?wfLwN6Ccyh#m zMw!Z@K`5J=n%*z)0?{rWl74b97En;DJZJE2oQxRB6Csc_Lw5EPk35j%^Rxdqy>s(!NkXFE?fDv=~P1V&Z($vsrffp05E`mPeYvn%a z|0K>J;4))M8ZBvSOoFCw2x?a z-G^CN;nb;K?MQ57L&Pl9a_rxc-A{Nh8n{2Vm{cZQT&=ty#AvShiA~%i0hgni*-DL? z4q@l~Sl_{@834Ud0rj&V>v#uUcmTgz4S!m|w*PXXAN|^=&a}Ra;-KHU^#xKEDoD}P zmp$hTfB^*=E%mHUtEnJiql6FJAxcJMc*p}nK1NONBMGvH+n4FBo6$-rYO#!@!NSZ) z9CUU1776__#=O;)MHzYdM!rh1R|eruMb(W-y62B-}k%W}i?=hH8%0$+ZKq*fff5TY!gO%nB9!fnB@=C$-fYv)R@%`mcL zhG?6F*pT+q)peb`I?^r9M1s{XXDZgqt`GxLSy&iK6u`Bi4as2rRYB9BH3vL<_C|Cx z^9%`uAaE1+{{8#YlZ31Qb{N9HA*_!YeoN{`O7m2u$BH7RwKMF6ddybxKCl-^Fl~8Z z+HSVpVTkG{Nm6g2y}ugr2bz;lgTZA9XwdSTwV&3&xR{3QmBXUTc(-;0^*Y#DP_QsN zHfE=#LPU;(^5Mf)p>fRdgayJ0PWw8)wl250_N;0BO!-jwk>=#DOZaa`W!L-{8NYIUo7Vi$Vr{vsr_f$4Ux=?B7#$0drmnj)w-%p=`% z7TvX}*IKhAiYkxliw(K@ndJEGbM1n$4Th`_rc2$PPeMk*bIR&`xePg*Nm=-bwwMjb^IhV+^GjG>5~;u9AkN zFP4mxPNTlBDQrV7CyVmIQ;BS&1YH00+Uqn7ll8Cy5{<4OAO950#?f*18Q( zA3b^jYhkUYAsaef!j;$$Uv5g|7fiO)qv0I+&2kBxwZsW}*8bj}ii}wV7=0bEgo% zRmOwU@Hvd2AgN_qMj|B|1vII5^X40v10n$H9C=Sx=fN(f%lIluuxbJ802x#SQ%oNE z@Kg488d(aM;k6K2$R~UYlZtf4G-!NoXkjEL$8H3HaRJPyebnSXtrd}lwM%c*_Nd3G zovKrmj|FKHfw?uBzi3Xd#K00blgI-PV8Mn%5w0)cOBt^$%@cG1o(uOb9?r~8lYj$j zANr?7Jmp_m&_JTF*1uC1Do)>Ho*7w{3E_muW@_M!Bm~i#V>|E?1i|?0qrD|%Wp$k^ zGeVd}%lPIYbMaf*AZ{YF zLQH2~#=THPIoho*&vM}o`-#sy%ZE9l!^ZaOwt7G*2qKX#&XugmkDJ(@J@A-^FgScw zQ^=&@2nz<*S(_$iR6dtueHM4P>6(2)q)~mSs)> zi4-X2DgV8K83j%T*^2v^`-QC)7q%GRk~y2$xLF8Bo-l( z_{q!zaV+XISn9(7MJp)V#d_M{SFWrM$ZQ8uv5(%q_`6ZHSqPDeq~yddt9jfhyWXATg2^V)#zSof8Q+;Mr)76Y+sJOn3h>91M#AZT()|`R&GAG83 zglW$S`Qih}{3bCaby;!DwJ3Vu4q^zJNm@JlLJ2xVbIbCZbA*_xsbH&A#cNZ}`_xbW z`B|aVx~+xwFisK|HQPNZ1D5LTp(~GM0`5k1Yte-J$|3=&Td(zzs_-){hH)d?+wP(N zJXQ5~s6Oe~2F~rB(Bva@&Pz#2`;+L1y#}0Wc`F`I5ChUg^j4wh284wj{pPBH4cL?U z+dMX!U5+0>$O)}QXVd>hh##1tAfgR#9mZypya`bcqLni_yy;H|KVEy#p zp_6#T-fsDMvuF70rLH@4U;z23!`RT!(9^u6f5IfZ;7^dxxv{T2@HoBRURs=h@RN%UDh_&3-1?{dpbiR5YhAMcPiiQ`#)~Dbgzd->V z2>+$t{iFk$-p*@3e3i6+vS1L^(Yu}k^pehob+XYYQQwJaQcJj`XFu@| z;O4SSCT0(ErkOUcjU1BZ23*(p@Ifke_F&ZTc1POZV0W|C`pNoIacX7nBRDoh5`l*Gj-`zE{ zr)A&J+#e<$??bXa2HM{{5a_k?(>j0JORdE-;Yo7(9r3B4-lgQw#U6>(?PH6s;a=(O zZ51>89X08`mFZt5PjnPJZd|kxD?3_e;m|o|B4#4mSUi_i=xq=-mSpD89?_>8FD83L ze)8S2XA5ihwN`uiW&F{%$W$rPVYwr*D*s4QyiI_?{FtTIEiZT3*3rn$8o^x)Ge>?? zA(lG%`rpva%NE-9elQU``AbylnkfG7A@679$NqYi`sCMTP%N$9um3;AB~C?!QEt`n z4b|C~?)qGp+Eq5z8pd~EZ+UK}YOMSKHP?dH3uv2riy{~w2TLoW6%1Coyde*9~Twtsl zcca*fYj|3iV*E^OC|}@;hHR_YibkaSWLCgqn~IUS+h!)6*Vtz5M2fA4C;!SA(U>$! z3>BMndK6|Rp*T6Q{)pM6V@_13`ACL(pL$W>v&vk`=QcLOXH?G%+^zKM%PhFRSa;w3 zjWK_kVSz;;WB=`mBg+l*qpheX$4A1ee-Am_PBZ%^)YOvhx=C%8VOLjnr-)#aNJDbs zy^|&d0_jnj{fiCG@oklK89izXlWpmDe&n+}GV?X4@)a;5e&E_}j{ zqqH%~x*~gwXQyPN+hW`9+2ulW^+`#Kfy&8zvysyDFUjipV-rU@y*w9aeHN zbC+5+Zz$8=cQ-1G!Sv7T^S;ThEHZ+!VzTOYeJ5tJLcQ=|!_obJ9A0 zrm`2FS@EQ12{TIF(|)gMsNL{Ug4HA>iiPp!{Fvdb`L3q*8{7snt}PxN`SADTeWtC~ zeJspECR0Xvj(u6uwjY|iwVt{mK5JJ=`*Qy6+h^K))#k1`_0uJNNpauxPlKyi+MV|F z4QD>JjaD+rn|E&t%@txKpV!;LP#1CDiGw;+JQDGBtvL_bwr>9oa92+ zhRAN*k{Y`*5maD^V=Jt)9!%u%THxpPa{|ATMmCd}<9i}};cAE4vTTS+OAh{&hl{uNtRVFN61pwN z-+!M>%$;~ZxCurkIju_KAgI1C4herBZ^pEK^{AIpP&K z9#IF(Er2r??a+R4Mk$%B8924HKS?_i?RJucu*l`Y2OxGE;@qV_tSt3OCaYT;e)MR; zsyn=allWmHq}M61a6{zJNQkjA=|2F~bN!1QICSNVoZxhmuAlG&>k3nxJ|ih4lnP5L_Is}*!PY@GDJdxeI7vX< zFr1yhX``rw?7_FkotQ)Ci4u8reimt3Vqo~@1I-U1IH-zSNuX>*_b)QUMK?>a?FR4k zZ3NS|6y`<%3GKmm26(RfF!M_1>asTcp;Or9HX)w@tPMC zONd`AoUbNuE#sDvD!kEP;VVvH_nO$Z+-YQtNueW@ye{s*$Ch$<~9DVcDL$lha- zTdlM-S%^>!b5MUi!Z3q4h!k6Jgk@74@tjnG5HM&3dt{)ekHQjvh{;^*nq4Jlu|sYb zhQU^K7Po*q=Fh$J9<+n}ePabUz=+}xDqR74KUL$o>B`k>V;(_ch;U)s1R&o<(q$Wy zZ|mX!vPQ>j#dD+`NxQ*e&dWGh3gO%i@gd?|_`e27&7&0^p-^bX$iEAa6XpRB@6zVQ zhpgyb^pS(oOgNQ94hZaGQVjIHQ~y%x;nSd?L()WJD7Av-8!h``tr96{^!;aXut_OS z<*0PcD?f?1IN3m)DspBGCs|9K_6V6jwT(QamMbLg&o#5lS#hwGd>b6kamg-KeU5CepDNFIgc>|lDaNFqn=uhhTy zunO3Tb?aCeo#fIB9MzKXufvfxqKwNG2Sib?r`Zju6b~Vbn8_0I^yv>p)3wF6?D@`m zOYXN#n@r#`F&(>p3*0l3NGZVR{^XoFJk*clT@MhrDb8Iw?Uz$}ChvQ!<1=mM)YcKX zMJ($ZSR28k9zm-j1ziEF1slgaRDb3>AYjL{QwTBzR11Rj^PJhp>8)1npW$vDP3dMK zm}BhlTQE@EaMBHjwXKBnd5JeRzM#d&Z6rMfQicyB?`d3O zpl#$cK93dGcIZgPh_UMiH1>RHULK40Ohk!rVVc>l<}C3dGR528daRSgVGlbKUWtL0 zN3t#OO1_$BlpgyFiT=!j$Qz92lSi(KP5=0Ef5%{LjGr7*kXUOs=q+%0tVCmQc@Cz6 z>W}+=HS!BPDeW|W{iRgkz6|+}%?Ke(5o8EJHoG%7b>cGL`Rv;^R~E9p-7YR*W-RS?K7k>^pPH$}XZRRiUutSm2loxdLJ^;1(!G4#NC8u;6ZO zZA}Cy;nDWlh}EU@usx?vB*wFP-R9blG)J#}e2n|rP5rsrniH`#u0)X1Rhj3Y&n$cK z(cq5K-KYOjW4}QAC#@&rDQWeyt8b)IYm{jo*1CMXfIt0pjTs5<8 zISw8?xKHPMUkA|;uDny(zpopvm4@vwVxz@%b#+JQnJ)pam}!PVD~oKxjbBacY|q{@ z`7oqhy^^7pgQ&7ED2_XvU0l=)BeSxy7}?nT?%f0H72LNkIwpn+mYS|I~zoF1WF} z*iqZIjW?)U=xIqjUVz|X@!h+%++(F3C+32i8~BeM+ln(M)rS1tVCdVnCBfagihnRb z-2>LEMSF*cm{@L?%?MIGt%H3kj4UiZP!^@W_++#T(*Dz)xu@|4_<0gm>fSxZ-Mfv- zUGkBhEF0+~74dLKL&q9}4cQ@7gyw z?dY{N)H{Km&)ED!NCu3Y~6Qp z2^u)>i4)J7?K2WSL+n5jWxB+qf#HLB<| z9q)z}`W4ZYf}654wwE~%SY-vKj&XC_eHD_C&Y!B3Rh5ZyKAvIPYRx|XBV{TuSyT08 zX=d$;bUx3uoGI%enWqzz(jKM$nL{hR%b_ck@&~TPIhzUYP#vl_)hI1WnQmsU=sgtI z%+RY5QJNkR8)aoDJ?>~H@~!fKRr>ODy6a3+@Efg4Gf7D~o5pNrljPudw|9^CRO-JR2;z8Sf>juK|AA?cTjvNQa9 zYxAFEj<|*-D6g!{KJE2)Jt{PMe<@QeWF%3`>_^czj>G=it!+!gN?vYHP6%tBv(EM& zOj~kQU$vPZpB`9R@~7Iae5*C{SJW^M?bUyhKlp7vAuyD#b;4|9ayIec{LR@5!RPZr z#qaa`X9l`)UTO`puom$?d|>&2RchMU);`|=N&AK7mKDnjHAbspz2Uuk!nmaej;+qD zSnr}9T!>)H@CgtcwSFfntuY{-f4;Q2kVBbMvq#oQ;y#yn^M*7HxkY*E@KVh}72r?ZC%mPW%IU)u=KGm@acID@t#dH*kT|zZ3y)pAdE?90H0Lf!y0bzWzp{@T zqkrW||BwHvV$9FvBP#wU>5*MCmK*;j-|T$$D`fhA?VnAZCk`KFep9TxW*kXN$(>C& Ief{?T1MO2Bh5!Hn diff --git a/docs/src/img/cyclic.png b/docs/src/img/cyclic.png index 249af0f8dc4ec8000fb571bca7260317977f7961..3b0debf210838785f967c569c110d56a0d1758ab 100644 GIT binary patch literal 18537 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 literal 18597 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 diff --git a/docs/src/img/diverging.png b/docs/src/img/diverging.png index 912a377152148dd7379b4b02185b32eb9f3f858a..07f26ce080209ce2feff63bbe2baffed3554522e 100644 GIT binary patch literal 45152 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 E3%OTC%>V!Z literal 45574 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 diff --git a/docs/src/img/miscellaneous.png b/docs/src/img/miscellaneous.png index ff4b8c95fcc95e1b5539d3d8d504c88959febf11..cafd800f1a69db66bacc972d45b89eedda4d0652 100644 GIT binary patch literal 64899 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

~I(%`_+|5(}htU@j1*kF6$Y9hI* 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 I>w(k%0o02jnE(I) literal 65615 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 Y=(t6#j~)cY(>G&i?AeyK<>2Z61qKLRO8@`> diff --git a/docs/src/img/perceptually_uniform_sequential.png b/docs/src/img/perceptually_uniform_sequential.png index f839cdee45a0cc22a14a495f4656640cd5320926..5367917fa84f082345995eeccc84ac5f1c024a9d 100644 GIT binary patch literal 31187 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 diff --git a/docs/src/img/qualitative.png b/docs/src/img/qualitative.png index eeb772f8a10694187250475a8c4e9b81ee8ff4d4..5eeabe4c904eba434b42a50a97e3aa4e11fa4eab 100644 GIT binary patch literal 43011 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 Qb=jpHV>&wG+u7g!9~a7hXaE2J literal 42708 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 UxZG{FTrkxH<1eBt<8 diff --git a/docs/src/img/sequential.png b/docs/src/img/sequential.png index f2ec3835fcad8d550eaee0a33190111ee17b41a1..4190502777f3d2c861b5d7d411177a1e7e3f7089 100644 GIT binary patch literal 59129 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­dEU$r*$N#>y^@h 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 U?>rktUz*!Wj}{xl=YqWSruDnmQz(>8 z)U&4)D3rDM_6Pl+e#HO2UG)3|{}Zu2t!AreWoYYg`I-Sm?y~Jwb1PeOlPi1e4X)Xk zSXm129OV(<+G}iUd(}pim)GKdy@1E+nh|d$XHFg72@0ik z1NGGJN{%4|9Y&5yjk8lDU6DWhvF0cC>q@KWtDjPL{u24y{yMRru88zqytsw^FX;;x zU)?yn<>%91)@)m~f&I7BCw_ioo6q%YSpUs>(?vXTEAT>>fCnaWG(d{Z@lVw`dTV-fyjBPnLHM?B9P<%9G(JGpnS#)^<*nimVX^7V%i;i9Y&JM_%r5;hgRC_seV7todN! z9}p0`FgMlz@zsrUXU|@^a^=~dH*Rd-y*s|xdryK^&NcZGe%o&sPMvn;)lsTtm6OcI$Ntc;U9jDa zKmXjeV@LGlU|WKWKTo`3j6B2XpB;U6>Nx)HFx>f=tzd2_Pw1h?y3H&NX$IvP_JbM= zBPFcS_Kb1r>CrllpVn?-mC!0IEM$1cfBE$qx3Nm$T(`NbPPZxTO}mbqh&uQ9n&nA+ zaMD={A|=7=Ohl*4@Nv12W3`3~`;s_SlZ_WqnX9*^=%%NR`Tc;CdMho z1o`AS3@5K+b*-@&`LdQ%C9!69qMx1G7_VIaT+MW;TE6F<40L7#SI%S3TxZSK!vjxR7(LXB!h!;#hCBS-Br~Yr2tdTvf7m zUPH9po`uOat9Y%Pw2l`#PCeTz1Nfv6Nq7JHtENAtD0yzUsH?06TgGAEs-Gwn{tR2X zLi(5Rl$4ZC_c@D#@j4j}tru5sTMV`5L}Z#ZbMW&k;IUQ4UHJ40Ynvxkdhx-72Y0=_ zAKUUi5Wf2HglFs8wQEgYUSGAF@5;@_HTa0d_*Xa9^?xaQNQ)FOs){`yE-~BfD>)#M zosI?TYfSLp!K;%P8OercbP<>D;Ch8Tz7K16Q7HPx10PZiOJw}GYTK-eERN0`qPn}g z_qApw?BG&+^6Me_Z$19HRYONs`Hmt+f^{}C@}F8+k$}h%9+<0%u#6 zMM9VRT;;%wTWxKvMwWS?RH`?VNZt5suvKAgpnwsR={gFf-FMAi3gxU(b=YxH=kZwj z^aE*@i@q$!L;504-PzjLRaBH9^@Dg5Vy7Z3P{eimYM#Z{%HSA$O#Img`x(417P>kW zOm(^#_A<#)vMf7VZQF)B@*Ixp6>s!x#Uf7~Ad6gg=gu8Iv7wr$H-h)C8ud*noP9r@ zYuS;@U{Uj_yL2ExQUk;cVTh{(a*_-m25u0i+bGi3gCT;C6 z>(4}7beSBeU0j%ZeEI`1|j_b6k9Ovno{V5H)&9^qI6TOOT)mjg5}*XnlV9Mr)Qu zFt>HIf#B{;mnlo;V^>e~R);rF^fzzcwJUc0c8*w`0_S+8I9k11XTFnS(ZXb~e8{n< zh?;~Gf2`(EPm3fQuzODklZ2}pA0OXcUtd)uv6ClH%69dxUc3H<=Q%`0HH@l4 zY9Di|Dy8XDH?fGTA)nZ{=^&%-5w>hVCa^_ojZ*39~b zf92n`kwY^pu{G1o$euG-z_R_t(+?li7G`?GMLibtxBmL8a^%@9)OZFK4@P8zFsShYy!c*GjW8$~^k*!Q~=$89zb!fFrLQr-rm6YK;X+h$=PZ+LL;~#z6g-uuNuj}68IM{mBbJlLWdU~Y0enKxrJn4sZ47<9VdYSd!+}`A^qoX5K z60ewu7uftoo%t4{Is$r4{yhuF{v_vugT(igMMTRztUlZ zr9X{!g-azdAZ~C2Z~lGni@UvJ8mhYG#`DTqq(}tW)SJqI!_x zF!14WK59ObyYKw`yw{d3TkPjDL;A5ty^cGNUp4kRap;fQKFs_>=p$;qtN?4&gxkz%}_K7DH6y@7#2Xs9)_yy3jQexy`$GSWfuy`8+R zp{jV|A&Zv6mhB&=vB&iLjtBD_-0kogxid zO$9v2rqUUf9U8z*lx3nv!*a)Ci8KnFGXc=7GKar>(YNbwlEV(?7t<|rcgr-cJ&DvO>NFau zlA@Dj(_3YN$Z(#e$7qX6s!pSbjepSdr6VAsZT9WkXWEh$g)H}sWPyGAe%H)0uk9>w zVW%R!*52PI^@v7$_EgGKRJC@|5$i1YPplX?6 zYeZL1`bsXw{(j>}I*@`x%ZI>Jr!m9&egcx7YVr%1)jm6ISh87i{<-4do};FbJ>~u~ zG#{4Z@g9pa(pWG%b=SHA?NUXnqw>m6POL)VIoFt=s)`~3a1xEcF~x^4bQI4cKKidDA=CU2$ zyY~bhw=(kdwqJgE0w`)S(bp){JI z+=Zuqnl>jVy?@M^0L(BtI$HPc-p=iN_9S4J1}yTl6uRZHc+6W{w4}X@la`+U{${f? zAfLYA?wOkrbGZ&;qk6u_qjlY9P9y3npBDk}#{p>( zXiV2KHjV}0iMzX=twx8s{Zu^lv9@ zWpVxfd$*=lfdP3kOd2_t%kjcWOHU5PXfJDeT@+)dJ;};mUS5Klht*I~Z;|Vac;zb`s}eKhU(g~ zHm(a#u2;7GQJ<_u3eCAGl_!>!KE7IW2@fPlUp1WRzo&DVl1iIeR;(|Bcxca#~_EJky z1oFf*;Iz^7@w+}gLMjO=m0Y*6H`}~g0=Hkso)PZPLmn&+2nev90HQN+?e-R~OIqJn z;F8@~$SoNY$GPM@Ibb4g^Hnx?7X8lAxv&_E;92*^WNooGe7q<)=3Rva>cMylZ`H7! zBiOnho|iBYN28Hz4-g^f$EjMC*zw?iw0WTsIvD|XB#~mh5}%etthPuu7OP@5Ox!80 zQpj&uy{~!+RY8CHIEsw0#Nu?fp+&rEilwZqY{l~>q>vytznJskma^y0rR}Z;9P&ag z70NPet}<+=eB>ex++L|e=fg5)#0wjApCu?K7&3|4#-e!df1^8T9;aJW7?%Q6w(ESD zxJkC0tgKfmU|6)hRnda|?FmvnCoAHS#CA^&b(p0O0~hmlFm;4dWP`bW)5wVJ5ZUED z73TkV(#aDjAw#2iR7D%b0l0mS#pKdNvu<#vQ*Wq4VpC<=nkNFZhY!8c^B$e($S_e1 zo=6v1^#aH>y)Z^L@N-%r_r!2lmwBQmtNRDKgb$O*m8KFjPg*;=kZmfrR^YMiVq~OW zoqP1?(Z*^`i61{k_)4U;pi;~~?uRmQO>Rd4rbc>h4>zh9_=n9lq z$FX%QoGUbr!hhO(qHg=(V6w=ta`zw#p{=;Xkd~*tp+(J; zKS*<2KZ3F(m)#$gdG*stg5PZCi}zT?%7=;y&AB5Ml~Qz$=ka}cg#2Lg?(X*JZeNMn z(jlfum+VqG;6mH^O5v_=*b@xiGbr(vm4PqN?i_h1A+=%Y=N2)orJ{b6HJgdP#B?PJiBzUfoyDTa*|R z=KTKCBx8q8p;0wUdI?3)qE#s+fAnspJCJQewZvS-KzoKsJ(JIy-Q^NS6#-9a>@uz9 zV@;Y?aqbJV(cL7=A@wqN??h9;TR8o?&ths)He5pc^t~OK8Z2A4Udht4L%Y0w2Uo0m zx?xLx)DmgqaJzCP$%~AmRbs;d#gcY?kL-s#2d`@0c=bfY=4&i6qe}nu^tAEhK#QT6 zV0F+@&NoH(>N>+%cI^0im5K7vbft|aYyfH(X)94V8!Z=*`jfPB6i_AVik23v(v6DL zHJ)GkgKmd_AlurryRSaRmu`3RbZ=rfp&l01BvO4=N$!7!I0kvzNnf`Z0;C!6{a^wi8goWiNH z(Tiw(E$?)X)9VdOCbympOtokeIzBg$ZrDpWnsqFWFX@HrxBd3y^{oxTK1=9QxJvx{ z(Dd>ZF#PmW&4*OI^me0Gwp?4@xNm1q4%|5uRBA2Mx(3la2eE4<w(D2%Y(>vr{E3eXxbgMVQ*k|a z8TY>yhqlx#LL zb^6Sm;*32;ZZkdpK@x7F!LF368|+ts7G^MOf05e4D**6R-;|`838KwyX<;hYelSRV z0f;04$rhO_pk-!y+A&>OD&4TME=0tJpV_}BDHugTQ0Ck*8%--P3WOj8v!gG{qS}&U z6GNW}I%@W%ySsfUH%j{tdg)+N)xeh^A*ZkLYc8m;v$LD@HN-hjbvV?!?O-NI!u+rI zg&EX+RC#viK@sdq7N;*;LM1&qZIeN01RZy=_nV!Vni4K3#LD>1p0oS-a#d7hWPnf7 zV0>R95_tW1u12P*kkw#D!;{~CNbe@l=VHVebss63R6>Qqc2Ge`V@D^fN!!|LV0g=j zL)wEy?O>fiebs~TeE{P1gb2HNbB*Wh`SQTwECCN)@#&8@3`-c3^j+yu{<3-8z<1wn z?bNBs8!k*hS&swAA`BjfYVyGM0Lp#!L=v-sDmm8-2nmTcu?A3QywxlvN|SFC1Z3cX z0&f`?9j%Mjk z23~1lM+!ituQy96@QeEr{w4R6UwYla`bd|A5Uo%1Gh^TlZlFKBEZQ8e%z66E8PQPL ztVcp7^!V-f{HT5W2Jc@)c4bIzu9L{C+u}EoPGie54}Pr1I$nJQXJLYr&AF>^>{s>A+kZ;?TVSF#KuWCAQeK+;FqvuA5aibp#T2a;#~rcKIS zg>IRSBUd_JSiku+vg#${a*~wUc39yQtNZlj+;u%*o!bYpB+4eTy)+K);#Pfl?BR#^ zvI_(EJBA;`%zSxxo-mH}sYOLaKW=78MBteLEr5Nl0s4DPqwNPxG5b*E%;xXaKbwSa zIap>s7F3bzJP|Ky*QcMQkcdmc(|^2r_3E^CkJeq>-PK&>Z!PS{`v)A__-|Jn^cOH) zzS}p=&CPLq*CI+w&$#q?g`K14%7q)?SIFf1oHE*!OE;Z52 zg1tL{PcH+pXGgC)jRuPT9_?xZh?H25rA5M?3!2oiA*@B1)=`fAsd*h#uMElQ*loEC ztPXm@AP7Y=kT254GpXXP94OGrq_ECB7tV_O*JSxbI@`GZEfq4(WwhiOrTQ7&ag z8N;Ch**?6)#Zlp_-@&RhdKHG%p;`saR04vzPqysr+V zwof$kFIJ?re}AK#w;^W1>At<*Pts~l*_ksB1g!Os`X#=7;6D%4Xqe~a%P3I%^h*~= zHU5ITt${_nTpqWNUDH1I=(nd5ZnMU-E3j5*RM=o6l zem_*7gI!7%oJTY2P?Sdz+TDJdyBT;#KT4UgbYlf*&s_QhN?~a3JJG>2;tEYdjc50G z+762i#`ZU-1iSH&CrfJ?o&++fJHD>*V%5O7`HX`MAV?@n3ffHP(XvAmc%0E~19V_8 z+gwS?^V@{$zA93_#=qxAT>%Odw1WB(bTfAI)7Jjp!#zC)S&F@^9`m1ScwW#luJxSr zEJ>BMT?9N}$dt(wE%!qw8mOb2?^yfEKIcx)pjqHTRQrzd#}YotK6kymY@N6QKMfD3 zfG7?2nHp^Kk8=-m`pTFta_iO-j^{n|22r_pnA4XUNu0y>hF?M!deN>|stfc5LsP z(cyc*ANtN(R8urkxemjYqTmaPv=_zIC^I{MK0%?}msbhfLN%;#^4LLV7G8?NUYu(1Wd)& znLvZU=MIg@A1Nn@L>dVVt&8jgLT4!sLe?RqQM%D@jY*oSgz#6*h9DBJoZv@yeD&wr z*@5)xkln+;46SJfGPezG{J4p~?W|s1B(=53qo{I`umCZZOU~b4ts|6A{Rq&brA==! zNHHSa0hnBiU0P-tHwu}5c+#xnQW>ZD$3q$|q|hf>i8NKpVqma%SPu;Lo~5bp=Q;p9 zrGQ2}-QegI!>EGH5!A_6uq1CR4#@>Yk_N_B3;ApTpio^S$?YM`FU=<8gx`+ry)B?fQe*)jXCK9NgwdN`&Ts{k_6G7M;><&`LaeW34up;;~RZ zFx_Glt_;XtDfIB59KVa~Nj%hgx39+^r+0zmu`>Jk@(;u6HFkcr#trr7C6nI1J(XaG z7WJrU!*A(rWzyce9}nd`Z%)=0aJl{TfSy%nev7Tv^Gm-&7I=N<+p3qME6p{5_Ru^M zK&M^6qe`DUv4~dqTWSeQJviseDoxE-dPjCGbL5(zbzDbIL#+5PH29LJJ|JhJ(0m85 zOVoi5YXajgR|5X?f+quW2KpphJ1pt=P~Na97!ul02aWz0cF?!Dm@t0k;jSWGz@*CW zjCzOULoVQvj6;%(b~*Tr8=E4hL zOP|Q@a!(-b*C)+1=2|o*>AEz@#c4eVj0fK6*Z44tH2{!cv3NTKm^uh#GOT{*b@%SI z*bdyAT(~B6J^Bxz*Yv?1wE+RUARyJ+4)i@X{^O57Wbw{Q_!9*T-fv59t1aLuYVR1G4U36Wsai z^gRND(ZB@Kbcu$Xs#lU>(<|@kVCB~HSalrgNU+MwP!XFmcvDq~GNhf{4!8!$;_JRR zV^q%&eE#^vBQS)_xuL2wV4@fl{vefmTpAf?k)IW@8)OiFxifHaoaE*JbLJiCA!Hpmy zsAA6ug`Mu-gH%B}Sm((Wqn_bmD|?w9#6TrY-Dh-as`-U=w=8Fdf`Y<$yG^wTyagoD zL*lcA5=OXTL(X6D$fLI$IHPZEpG*o6AsjMZ(*fQEWG-py1zsuwElS#qn35$xf2F4< z*XB*sb&jgxw$hE9a?hcy&4B(`-;Pfq@J=pNR2d3M6R2HuT6?vN+_gOxCj7Ikx-6ZC zj7b6<5a8mHCGcT!Vc0_^*IzK?$mKr`!CfFxD}fYm_TD4BjhUH9hym=r5DbQD4y<81 zYE;EE*pe;{eDKhAn3Z9-pz*T!3J|`22UBZ2iz4%^7PpmD0)TDde+ z?U8Zm)oQze4;KyIKdJ@GMRZ)E^hYZffDUX#Bg^d0W2T`PEn8c(IKc}_=^`RhAn65E zm49%@=^kGWgLQ?#Y<2XLvEXhw$#ge2H)T91lKSzWur#-9yNfpwadQ^fs&ebi(|5Pk zdMu8y#&oZPy#kEYj>3gW%?Lcviwe<;+aTIammLZ}Cf- zCBAK;>FJOwY^Q zPl2IG721YSH2PFGVe~cTnZsV4>7-PB1FCXJJb7z9BX);b<}j|#sBcaU>_|5(G0e`a zt6pAgU%e3~0eWqOCw5^b9y6NCmro!6P9u?8F!ME7)baZh9rqan&k`3%9=1qP3+UbK zjO+gdJqcRYT?4p?Xjj2@Km72+1Y*4J&1T7rS*|FED+RbdQtAKv^G_xpvE>HNeZe`Q zT5D`%q?V`%z^?|Tc7AM)AbiLU2ZIY$#c(R?Ig(2}(DE!a;*QykFO{H}G=l7n1|8jp z4p9kWQ2pR9A<9UJ&ETVyb8YDx%aJxoZ(s&|>kOo!Et5(Yj4Vv-3IH@0lQc5MiYr{?mNy;y-UVeH)VdtssQA4BS7aFJ3gD}&_-Yz^s# zmqQfn+K`P72v~opwpSjUZLv)(gYvBJgKtv`Uw^E0^bnif)=CvP-Bh* zZd&^EbsiLgELb$uS-=VQjc9(j1v>||6Mii+l-1W`K8Ei^ioCA%y1ZNl)lQJvW4u=S z9F=OVcWTNNJz2E3Gtz_X=w`}w@#TJua{rzM>p=@+4VvwXqp=P%Tlw;^h>{JpT z#L$*q`~!s&vV3`zQiH|0uBD(b84>q+NAy+Y7ODAA-J(Z;cZNrM)mOtH+1ovY>!45q z5-vvE#zW~II>JUJ)EC5sc4p9lrK?qlVUB#Uc#+1Ce0_Yi@k~VRx1qhue}f-u^MClF zWvd-|$-n;QfB%QBFmhgRhu7$9Yj^uL86C+gxzuCVLcslKwlnM67iK$|3?)lcRonP$ ziFr6wzk4V-HDfWZdw1L2Ln)OVEdRqhXy*|Z*ZT3s??2wySMLUO;tamW&a~FPw6ZoV*Z;X_ z|Gf2zl8#lBWTId?c&@zeK4uQ`QOT}7{Ox5>b`umTBoI?DH>SC=lNUU_HR-^86avFxWk zvG_`W@*sf;9#YWSH7Lynq7Fa?gbmswWL|?^kOJjLLqZ~O>02RcR1ieSmK?ZRDnmpR zNyjW?*&d6u7HO7^<;a9c(J@1`1xWJ5YDWxx!kvy%=(f`Kl%SxDmmcu_jfaOvyXE?- z9|R36c6AiGX~M2z+L{s9=w1~rnSz~0r4jM{`gKa49`*w^+Wd{}*GrWNqlW$8A7~VI zQAz0$!1__hWO%(CZ5tzF99mB9`i1I10co&tD#)LN!5sXMDg{>#AlQAj!*E>y8kaw} zP*9+u$BKl{!~}!@DVz2~?Qwux{b-m}V7z6c;ys8&H&9%cZghSD_}cl?t)1|ch>~~g zavk$V;!8#*B0Li<5}@ig2-2pKSiww^HmE9kFdpJ-W+x{W_>{D?*~sU2eQnt(bS*Wt z0AdBqG;dKLg&4YGG)N#~0+6370x?ID5a5y@T?ljsG6ozy;~)+D@GyWb@|0jbNzd9W zG5rKIRMf|hA8i-x0T`jn<)gQYhegE%8Yj79$P-D$Tj2;m;#Kz*AN`B2h5MIFk@nj4 z6!CY4`20{4kYkHB&Qaxrni5pc18rUX=C*w4l$mwp+R^4Ta?SY1U;XqNynPniVRrV@ zpdu=imI#|U?6G9#H!m{*!Zk<-4Y7!})7i6UZ5eNwjr z*q68vCMsYc98_UVc!wf>LLlZPGX*V}%L3|+ql*DX{eFCqGTuBjNWI^U6#=oQFo2g+speqRriaC zh-j;Wf`Y;lfm=2m?kr$zqLw!mGuJJ#@3A-x?}n(u5En839?`t~;>x@A1a@rAURufg z{bworRm;A$xaPcj`Nt201*}iXfs3rM?BO8<3pXyZ)L1ZxeQo{0e*PvWl3x%$XwBn?=8P8#jkYtUe!B3KK8Ns zK!)&&l;63}MxC1)7A}BACA-mC%zohN%!kg-&fWa_f3cagq#5M8FXW=hNdZm9xber} zJuxfqL{{`lPVH$8&`rd`%$8}@B@uIyM(F%Noi0ckrUfty8kSGL@!ahH>QW6J?0C`A z!g-`2S|n_OL1rV+samJfwYZc+s&@2*#OO0-hD-)K{ zbsf2-lBo88yIVC*;WSFf12(*^JV@aOZ@;cY_Dcy?hjo<5?XWU|$T30J)7O$71ET*K z!Dcr$OVnVS9;OnQtVDD^?*zPz*eVgyFf73dYD)#`QNl8kjSn117J&#>S>`P?Za%MF zd?!hVRTXxelggnG`4=oHf!um4a}(9Sul^Oh?T9wWyfWZhUo@e%d7NJd4@mQ%`NzP%veD{#x zE7o6*AvtBe5Gx#TwHm8y*LDjD@8!v{UmOa%cgSOCtgSs=K*B|@W$rOMZ*|9mk&r+S z_b?avw+|oc^&0Q_nEG+KUQtFj3awgoEe`Y{33g)5Dg@cRJYjLhhba!3 zAW!(%@_XDjx=&eiEe;Hu6yWPoF^4X;O6%0CwK_SALFo6(<#s2u0OH-=9HH=mSuPH7jfj(|LqSMz03v3q!GRx zx&DW6YUS5IzWRSbrPAYGXY`Vf0|0)R02aJ=pae2W+PjVsgIW%F2eL{QIENSRgEF#uWj4@eqB8Z-cb- zsB#)Gud*G6Z+cw35U46WYtnv|yu7^1sZ%#a?FVA970auu&qG>>*T{?~dlw);mvASI z=b6n==A&)m^kNqD7(E44lC@0wj3C_G_ZN-6=fs7MqVos)QThJA#*UK~Gl_4=7!3>= z@i2g4KnUXBwk=yOHyz|`-mrYXCorZk^B$(%26WEo)T(TUup92)y{iB)M#37cj6wV` zl&b`=n63Fv=`AymT>3B!LZG1gOwZ0iFuCyBme+}g)JDndymk9_AB;_?TNlD5+!CAQ z&Yi16!DXYukfIRCZy;-cwY>mtw?32DBZvW&cuSFZoMCz*#W>HJ%s>!mQyHmkufw~1 zq4z!RQz{M-CKCB8khYvOi`*BKo}K!c`M9$Z718eW{(6J+Kx&CnhVeymt9YOLj~4!ZB41e9C}Vei{`Fvhr3scSo)Bk> z>V*9TW+gH>2&2={v%X$lk8F8UGeM==_TY7OunEP%6BtyrcHKJ8W5?8hUIjymGbFk= z+hF?pCj#=pkrFD>n^{cgjkB)X#ACKNGAq-R6s+EYS``bD=AnyqEqegHkE*PE0Jb-L9cZO@RPCOCz!ROJ~h%*CTe8V2l z35*Aq6lP{-=x_nj*cQ+ewZfoT8E|_e;}t+u&O^zhYe!Qod6x3^2jGbsv}WubGM4I! zAnHK6@+s=wynXu|Z4tB^9aKhO-vKdiRMolyqhZ2D(ckan)&OC^Mx|RVRhAO|{`1?P z2|WPg8i5+ns2;cF9nJPwT2v{&_StzQMbF<@b4lWtJ$uaHg%Yawx_RrCfvFdWD;XNt z%XmVoWBr-|#Np7sAGfHLgqDH>PD(bD&U`2Od&O$9Jbf0Wkb!CR~?VBOdlN+^-n~J6dAO;=OzK6cI_pH~<@gYFSyCP>GDJ zY=(MRkXOZ7d98muqP2*W`4c z#YZUzHvi~7)?PLhqqPgeh^3$cf*!uHJ*S&+L z0xsEK3@7|L&`OyitwGkj2Yb#l(jQ@qk*$j*Ys|LNg=}(AMo(V_tvATg1Jot|@jSbJ zKR+(@{XoI5k$mZ`#Pl`Z{*u6N+zT=1pwm8tnFCxFmA~!NG0tnFE03E}Exq~(Yb?=K z?cklQ%q76J?cpwioU3WHP=q|al8aoN{1RU3uRAskEL4P zg7C!TC2Ai*zJ=NoojLvgc=Jd8Mx0hvmP0RaRe);8+ zGnQ`9oKceSz{*fj(N+L`1gNZ5f$$5UQTbf1Z|EhhB8=IXbih1!_=Nv{W*CHrqB54xZ1sQJxKR~<@ zkJtz|iX3;;YzZM4sDqBM91=nHw%xl;cNd|PA04sokhXjK*Onj%3?N+DsbFqNv(X4P zqFEIcftc%IJq0}@L)@GvrKHgL9mbsISrj!z@NSs~jGx+T4vyJ(1p&T z0N~yPVIfQ70u8!IGCcpH+wXBN&#__L6kWmDTnCqHC|^lU!n-zVytw+51wJj(F_1Y< zxcL*1ubH{EbCsYgSyR14tP7Uc{KVo*?w2!X@e#H#;1vKj5S&5CrL9|^LD4h?X+f3) zBRQt=;k7<57|Eam6td*+->(t@mB1N*1$ZeVAVQEq5LUPG2Mo-jk+(PPG5k=1az2hg zkGJkF#!NHKUv<)5a2?2HXA6rl-wZO2@W1Z|(lrCM_vQT~aqDh8qq*5qs!-s{+n*{! z#Z)0g)uW5;V3yCKBSy%`DL#;33P_3$4rc>D_w^ghbng{r?u}L(owc^S`|d$E+QpX7 zL(^$v1(h;34inbyVR>I#XYyQl!sc_Tt!%2RrU$$YhE@IY#T}%JZ44J@oQ6cUoR{}` z-1c?oy<-S7XH3_S%@qk6umSnZty`#7 zS8(c*j@)98fBy<>OuLP0FbdO{dgU*N4jnQh3?H)gayKl(sNqA57>@!1exo{n4K!+J z^0xcO#$0c{n&vBuaatG^RDqWoBB{TUIbr0I);xz4Y~u)^vU4;HE2Y4t|3XBgnR@P= z0*C`loF;*oQpNyRAsd}+71WJ(rck??iNDiI^Zr!<)l3i@kovPVP8gvuDq??c5my zk&Vnk!vaW96yfk-*3zG2$gc|G)4P38HsGUe9>_S5f>i@rfUg)@5?JV!T)K#AueI&+ zWNE@bb`#IQYA-EbG)D$MpZM@~sAH|owU~GFt}A_C_V8UgRgCv*H0dSoXkWLmc5t1U z5v%5TDIzS9N73Z19vTV7BMZ*s?6$T~3~}cjt&@L&XPdmMOGVttVrcTY?N2#6j*c(j zl&SYPySM`5(VeYS74hBwMgR2APAlNmw}HY}E5C+T@c(Wvb(QtTtNTViHi}$M3m?)d zX#V~)MVngsgC}$J1}ZYDhZfWL3&lz%Ge*!CrMt}MOH8$I3(xBfYEG7OU)0JSYt0iA zIzQW<=aL*Yo`bH+;azG}{&=Xvj{l@_`4799fB7K;gjDa1Ki)uI?jE|Za?>Bz5FZTr zy1ovh(b?-a6Q1Qh*dmADR({S>1`2(z)dw)Ic~UDsI&tv%zcyU|{D>p0IafdZ3BDo% z6=iuM7{jTAVOpL_gHJ-Xx*K>zz|72Q=SO%9Q0QU_OODA|FsIwLZHoj;4j#pxSTKpt zSaG2t6>)b-)L+!TRnpH|{~b{~k$e?EZK#|$aUBGEBJp7Zhh>VD0CfahAsjI=Cp4<+ z5}gT7jz{o~kO2+2CfWuh5NWNjj|4IKODG^kH$p&R zmp1{OR#tUkU#X_(G}cB)PoTsR(*@Ktb-%9<)QM@K({)S^g}*)rn;Mgu>KgfusfuJ~ zQU=p^N_gi+Q5ap5)vpOOVhSY#jyB?2AWRl~>5+%R9A76AIf7s!`0vd?WRkYayjTFk zy;KFHkOmO6p1mtiYINP!>oYI$NPtBTDUMpfNd*xi{9np8A&=pPc^J3&=FJvN=yo{ibr^&2+S!w@w7Zl~_qT>r=n%t5xuzI&vCT6p*l zxHi6m#o2x`RLMrhE=kV*SfkToeazV~RK_HYz`X_@97P$yM~59o_^~jqowTNCn24(Gi9PL* zLVP{&muMuB3JE)f4rz^g_rQPx^;U~F|NEaoLKe$YoTL_z;S`k=OzX`Ok2v^mV`P4n zU#~B>du51W01MmS+?Vg}e$n@hCpJ5PY+t6aAo=K{r|KCTgyGl_BbR#>^+JxjsL*5+ z`VtT0=|s;~-^FKiW{mP7V-x)Vh;g^1d;S|Y%-6{QE0Hdoyv*9K{^p{0ZoSSze7I!7o{gMOq0*1C zaSria(Xb1Els3d3Z`qk27$=b?(`Pe_E!$A!;gK*w^lkflY21hrKXj^!)>=5)1Hx)E z4qYH950n4fF>#+*QTNxD1F}63x-4=>36cayN_(-e(nqREudaFXuDCczN7(#BjbX?0 z=g(!m`5eDrqSk>JQI1n!CysH#@BsJmH->XYRTbe@A;D*9q^PA{iO1<3Qf_!@^HXO+ z0FX&9;sYRT5B`aalS2C=WbbYmsN#lZ#(L{BJzxz{N;j0FE@jtBYsB>egc8e|=(b;% zA5*EvS&H)uxDx_(+VV~drf1)WkEe}Hd>}^y)J~w)Od$OwPE{ZufU(QqL5Yxu3cbUn zKm;D}dJHzr;6=*#3^`0+kqhgXW$gIONhNeS8#zhfF0yT?Buq0Hd*-H+MxmZ_>v9@6 zu?U`7{VS}jAZ$26UG(O7Uj1;dZ(OQyAn{M8``3=)N{%n=ul3kB}lkNBr1u~i-9huMM zKqd+$?9Q4eo|vxtPdh(1*aW~8f1L#l6wqj6+wEO(E_4Y^Wrd|@7CD`Q1TMSY5R9C4 z1-cjw6ShQ|WuvruWs+xnTESo#cbaprfP z5=y7pFIamG8hIVGf?{pO@>FUq+P9>p<@T}dYUtxfkJzZNNBE(<@h94heU&5a$!yygbhW&rvsuyl`1Du{P&ahFD9FbQvaz%;#9cOh|cI5WhE+L_T z{7*1HSWS8tXKieV^t76q3-$ewDaz?1gHG^o63&6D;OOXhTaO9+7SiX{mH_NDoIF#u zlaVnnSsaG(182NQQf2O|E-x?7s2he2u@NN{A%zjnC}@E@Pj6a&0^-|A?+;BMmE4bw zoO45>6M;aWF*)T1R<#CnPo#1w?vb{tMCTJvroG51OJrIRZWuC{_S?aOX9)d=^dCj$ zJ7{DGA1q;G;sT;s-W~DJVO-P3 z;LKB!e1R4eKl3DHvrl2x94BnhBH>=^!+iP-p);?R|#N%V)zsTEOeq`kux4tV&FR>Cm~o!9H>dFCLAG*I(}?KtVh3Gst~e# z3wu2-t-U015rh^Y(a8E^J8^(j0fvf2r6Y(1OAvz&Kd3K8LbxUj5oru+gXD<=zT(di zl7zs-5Dk1{7ZX&Hu)$dAIC8}l(DJq$F}IR+Cu{*6o=#3Vi+VGdI9(RsIt%hpW+5qi zfFU8qfO=wX&apA7pJxuu<3_4z#Ai1axHyngUrTDg3iS$9lB!_yTMf|%)=ZZzz!lTGt0RD@RQRrhU z!@>j9{j$Y+zpglDvK)f*47PUabY)aC>lsD6*-!aD9_bLtit&ax71q(+JCV~HJ>7o1 zIp5x5bgZ{7w7Ih*)v2zxv%_X0vf7Qbr#{?0QN#J^YO8*tlFvqA-bW=~i{OYdCq!id z&b49hshS~;C}?$BB$+^9FZ)}ZmLxnnKo)O;*u=sApjABvTE8(3p|t>~k{{bYDsS9# zrb)O;`(ebQMFK|`SJo~+?d$nB^B5r1o|{K;!;fQ$;1W}f&Hr5D+2HRxd&J;g1SkV!*zl>sfb|%_(2ko zayj882HsFX>z-z?t}_t>X#d{++Cur}SipcbA-Ev0$3QYF?dsA62d)fdiWsBGDG@wg z?RIx}aK~d}<{OR)L7}c}XC`OKf!Wpr1pO5bg=TPxM?uaycz)i2B0xOb9n7~CKRj81 zsxM9sX$-AZ`w4wnt+DOw`PRn2BY1}Kzuo2T%A@=+vrBB#a{Kae1`)P=2^7a8|JMBd zpZ}1kAn=FLh4v+-5O;l{`Z#YIx0fS~Xu_-W1^kGc)0szA8 z9x`o#jn2;{X8rjlIi?Gvmqdd>3--|0cShA31nRQW7jwD9x4&%cQX{VA4j}mDhRO5u z-`1#gu=;GkG=mDVs%%-&A3v;v_UKNI5+gMg#DWR>MRMp}M)qfbdCU>+2} zL$WRCKI2UyBR?RiX_3I3I4AFIT)=Y1IkAW#I2K+ZA*d6V-`p1J7aiSL0F)~#i2C5L z+yx=N$T)`ER7VVn8MIl^lHfUMk?^@2eJJ_<=?y!T*v9CS-AcHl2EZV;)R~pgcn<4_ zcqc%nYzmHGyPTd}aE(eNyADxu9v?FDIMR4O%w9(Z>&)bEw#V&W9P`2jzY7Q%(mx~) zB%~D5h$hkW^lu9k@uK~7tgNlA%`$YSuIohzAGAnZtr=KuRFeAtH97rTL~SfttGWWY z-}x0t{(yWTBpH>ug36OjcYa=8iZAEcD4#~^l0V3tJ^Ng}StsWJ3B@H$ zw9q245zL?(5Lp+Mm86e=!S;vtcF&H+1^+=@p&$hwv2m+CKLLqv8L1kI7%so-$DFg2 z*WIX(<>R7u%3(*La+Quc!tYdz^<}4`&}C^1le6zYrgSW#kBvm@OPwvMJfX1E2HAt0 zPnEE5h5I5_2^LdXd@Tw*l=jZap43d@+H29Bq~rAgi~b0*#SCrXnW9O?Iwl>;Ag@@0a`u9 zHVAHwbW;fzfX6QxC0vF^P6m@^aXJNGPblJmOlp~t6iHeisgcGtbEi&Dx z`Wy|!M-+0n0mqr;55Mn0aQ@yy+hCLe4pzY+;3J&mg=jRzG`OK1sS4E#EoQKp8ElHStJu@GeA!PX~+ls-WY}B^whXhYeKvm^YzAQV z`M!k7d6I!?kt?dpIMG+BG)R9YiYtT&#Rc}qu4&*!{`Lo|G&0QTJZ>B+=>c0sC_vy-}xqiHTwU?_N(Ty>aN{B`DbFunmG;-b;hN+ilys!kchC(+N zoFVY8vi2O32RXt(K3pOR>KO50!c7jJZFHX0N}N0WggD|vB51%^XObTVCbUQ&@#<3P zt5|*^v{)oF478_LOC+Ffzc{>qWwmxb!1EcwQM-gfBYqo5I$)G+F;Bl82cKZln$&w- z;{o23b~~f|@bGYQ&K&F!8ieu7d$Yn6IC;G?9(-y{5fAG*SMrYnGO6-Hb;4aN?^bu%RGKv(l=R@~a2o7j4nE{I)Nx!DDnf5> zPTuDa3Och@Vw?`#c7IPAd{iKV_RC-YZi4y`en?J1zCQQ-=M^_xnD6%ME5Eob9ISl% zKLeCw(2^n&M~bvyj(9;%zj6&VM;-LcOFmJxL%&4B~SiP z%hvNkIxcfI+0zc$O!-4o#nocXoil1$3!&wGF5N?BRt2&;>TXutKJ^oa?&%%sn&T=l z;tTOlZ|)p%9Pp`h8U8-4p2NWCV_`MKQ?x_gXL!`?vYxqwL)C=8f6>?uk7g&4mZE}L zdbxlk1e&UfX?lNe*a&w?)vQZ!W=?PBh()7A?+2epV)y=sYv8+ug@p&=koy$(^1@wr z{Wp`_e=r8}pV{H`vtN zHUYyV)D}H-iU}7&#Yt)^#C?FNDx9mBfB`9@nd6M=Z#Ck?ZBGOif`OrP6E8kG`DG~- z{%fff`}y_x<&(jO7*=1sh5bZ~MKoKObO>68%|P|G9S&0>=Tc!hL4y9Cj2e)MH6R$q ztO+#K5M3s4#fEB@M|QDM$?ZU0oPgqt#MChRg8%F<;w63N>3&c^1G zUA3QM+DL0#c;36Byq=GCMZ)f#Ig?c-pZkWjRJ!&!=(_Y9jK1%4F|!UymQ-gFo9Q$X zk+}CMKcryNr$o=eywkg4!e^u;Lv8fGxv&EfzfVgrDr1{atLp?NBI5h{%w z>J9u=N6w5vktLICI0i8dguz6i3KB5# zfe{4Gb2d_$fvzfMgI9WVaX2VH@zo_$9z~MliXcuH+M)N4CM6E@UgTg!C?{mP!To^ikM@=&-9jU?XQM?UrzL%$@0kVn)1sxXEV-RWjScm~5QE-ch8Gw))7} zf=FA~_Uk5``bkAvwu3fZ97kMistcMW$`jbsRvBk{HJ(rp4Nn@*@41ja<>M3nxc~mA z50hW3*1xP^b*aITbdJ{+9PkDVQ~nc=HFAvR^9xs3cXYSK4_Bo!A11o&rw8QtCLRL3 zH|%VJb&mY`rlp;h@nlX&ykcgBvON+E=QQDiC3qxoe zl(bn&5v5MsX*H;%jnk%13)&oYiuS$x`8uC`@9VmMGvDjF=6gNv`=6hO>+zV2oby@V z@7L?Oy;8HBfPUPL1K-vROC~1_`igM&FpFFX1c9+QU_I^t-q1TwYHBoRZ2!SaVO~Sc z#Y2|)4vsAPzPV;`h6`kQfIx$SwhxS(< zSaAdZn~q>(SBW-Yt!?EsyHS?_%gvpfH*uE2JyZqTQhL%J#Z#$?o4%Dp`G^T#EUXi! zEXKV7#&1=|fcAY~PtZ6Kh6c4l-WIk^DIp5)+ve}Vt85b+=0WJ`S~oW}MF1WROvrr- zxAuWmr?4ckQk?befn17qBNa~S4xSWfUX@3JXlr-uZqW;@6Yn?PgJ)2ya}usNldfNy zrS#2t7+4Wb4M=86!j&+HdGN7Yfqq$cziv3**6be?WaWe+hQR7%Qb@RxjQUT`g(LQQTsp=K?J{!P5>YDiKwE5w^dF+x^;>>iHCoip4L zeS7UZD^_~7a>98zY}-|xDR?w*8=hr8Ta9uQg2QBhGC)mwDym!;HtsvO8ha|bYIs990SeYAE$ z>O&rPnWrKHFW1>!4iPmCF*%KvRxb-5ZW204l%7`Q>vrzCa$PO zN#rhiBWnnqKBfi7(38$JcuVxpVq&x4;3CdWpm37 z;_q5$`)1~W6JdBFWkEFnX{Wf_J%|#aLK5uEo8`hhwOHAjb4(?y4l93m4@_cMxl}fp>(Qu*u zpkY&k$w>FR2*sj7fPJc~>LOx7-LjMBsW!J+moA>0-lGSY#tx$B-!{_iXUyF(pjw>m{j%`f zl{?+t7nb)I9Ubg`lTez;bvW*1wJ)<=Wxj1nztK!{epyePd|YI+sfu6AW&OmY$xD2O z^du{<1#aqE9;m7^;#e2n7qnj0d9DZV=El@I6_tGhAM|Gm0z&T(w|HoZE|}hGvl13L z@wh{&_U`*~%v=^Vht75D3O-k47(82&=&^{ehY!LV0K(7n)%e5aOZ z-_nYnLf#33>QK?JVYRbUX1U9qjHrRa%BBq-Jcs`|rfl*(fOC@-voSCu&}!~tvDx?A zJbjPRmGk_ke{jddch=Ub2askgS{WH=lPLq9ij#@IFd)S zRNYE6cHXR6=I=IQTnmTnqo^--5IKpo8H$5}bcc8ny=xT23{Rvi^u(}5kjGE&9b+>( zAsI5}S9cLwMv{;c9aGFBtp*q?QYDeI$YZFh91O_dz6NAIm0;>ZK_SBGN!i;E*?IyN zT8MZa3q8?s-lN47+GRqF@e31Xu58a?dfp9R!|oZ=gju2gffBen7B0ML$25@?~1Xjp$q=X(# zxQ7Ca9snuXWy_Xn4^d7kxZOE^dt;0YQJZqYu*6r0nlVMB*r7;mDYjjpoznKd*Q)zKH1W0SBt$!LX`9RMI1`rk>Tc1^#8!FQ-+*cHA@di*zmp)m< zoZo)>2uMQtW-fPjhfA?gctiGYpE818r&7MBJ*8*Hc1_JhJzIdQ9C89S;|g8|jaeMa z90Qd~?Fr{X3jF7ieS{MR9ZWhBH*792#d*CneFKiF@P_>_zaL03ET0ck_}t@dHHI9D z&Lx=K#)qlv>X*~c;_*@4V+0Bf_p9NDt#jJDy2Q*qL6-b<{hy7opC@H8@JRaIXo4dFm!WGd$#J(-KOjzDBPf|Lii14W4vyRWKP=#feC$;c&2ASFVH#&u{NRC ztRCfeTRlWJWJ3mERT6vnM;0I4^mW`Rp2{-uKm9F`pp}`7BU4Dhv}h;qBBBB<&`#hg zxJ3R^^yk{BVyfo}M?N5_2nb>fG)6p;~C2pRxd3UPEe;lx(Kgpxo@qW;yCJRsa7D<=-MHpE^H! z{1~qCj-e?J#m~(`uZ4ew?)>HAeJ!RCmhjD*s3HESf6Jr!hfHH1;9&_HlLs4=8*4^& z1M-)$V*M|9n7a*3_c`p-$desTgKaW%mY$ljo1!RRO*O}_N|hX!M4y)Qs`NTvN^J@W ze8b*nrs8MHo0L=d_NAzN$t3!F2!!wV5zx0@GNLJ@0O1>jYLDyWKgMqi7B;o>^s{Xc z6)<{g{}l842Xye*?*H1M=Q^Ke_S*xq{)mOX>YMtBMEf;#lgX;1qU_Uun!1sVhPI0` z(qTp;;{hgL;k61UJslcF8j}U=si1Q97iUqj3eQJN(dPa-vuO_ty9Z`H=^?{feB{_a$J=}-NiE~gl3OhOk1%cnDxu}2f& z!G2FUIndr?9fU~X48E@f%gW?|t9YCBZfc5+AjEF^%v{dL){Bb4lS@#7Rw< zFoBef02BP8MgM~IxX#gF^!3G5v?Q=lKEUdiQ!i|nGQ$&O5!t1>&{DkvD?Fzg{Q49~ z4mD70?Ey3*cMpeu$qUTn!3PdeL1M1?FE*9SF+#< z<6iy45D%!`R-`ZebEU8qbGRd~=6D}V1vzxhDCubFv!iOjClT)VH#V{X0iU7&TPovuKF#Ay`DY8xM*$;S`v zK`RZg%nurD17L6Ti@D)qKNo&JZ_fhQoOYqyyze&^4m=K~Erj7M)V*Jx={2(beCS00 za{JSdCxf`UZPGw$#%Bm5xq-5n%^{&}!U&n2Q2<3xm?{4J6Bt5qEEQtKNN|FjFmicO z1OU8^@i0)~amu-&4jG{d7xNXeZgP`v+JAwroa!dvk)?pG9YNfBK-h3w zaNzKvL#vOLL{1ijpw2R@waD|CA=j94o%>zo-e2*=D>qllF(mXtM3=~6xgw<+-T?}T zWbqM{d7T8)$8X)bW!-%xF%62L=r2mL0JoaD&PQl9w-w}joa#LBvHX^U0w}r(LMAFB zQj&aZ-%a6J&}rdWkE_hVLnAG$S@sx829qDJDtwJf2|79!xwP+<0c;5Z9(+mrAX9W~ zIQ!|sDjPg8WcMy@CuSa%EGG>5%&57>=b$HngLSL3CmIGyj+9~n*4l@fd(zE9^-;qi z)ZMcX^XM0?2~3Z~m(aE}IGzw6>q6fT;B+1W1|+P7(sO{{>_TBiB3wE5MslVQ*ycW%R!IvCnZb6fa2zRG%1}?{zTlba!23g?ad^+( zf#M~_4FY6hfIkvu1k~&r*>yqj(gY=rLDE-D)%RW=b*>ym3gcvNU-6vdf&f~05W^)<5}-`B&8imaYw-BQ|}e^eW4CvM8LHuiH@?lLFbZlPcIlTITYM``_lu^ zld68t)YH6qNfM7mMjl;zJz(DbM$I*z)TAJGKJ;*??~APgy=v*D2Nke z3Gb&Xg=f4TFe(tCcSyl41@*t9=&O7=96$tg{%^1BGomO-3Z5b-A39iA#3=%aR(x1y znm%JT=P=VztjI*?oplV+D!6WLzu5hPXikbJrgSQpDTMCh{hYs;dydz$ZfzE)+;@4N ziCs&BNo_@qde)nlH(hMbZbWWZY1?KU-+~&pDr|SL(mjQS_96;&ShdD;%5Zf(l2C5< z@~`M!Fx6{)6uW9YW}4+b5(hrmSy_@VFZx1`kZ0cEcJY!!(ff6yY&8@)NiLB zO!)jaHchbnQ_J1q$~in>qVM?OK7qGJZ`6zl8VhHs{vRU4GeW&z#osOA2XKg2LLPj) zleFD}@1|sYVl%K4(U1y=XGtEJmX>^pSu=EV6dr1LlIP8k=OdkSVS%8!Z&{S8IWI*m zRbr$zcC&-in8J`)>7vRBYd03DY1cKqs@>5VLfow|_$$M8PFr$pGL>7#TBUCY%rT$! zYUJ^#FHUt=ZB`w3(hBC#BzB6Uqv`+r(~-N4ls%WcD`m$od~3_gn|>01f_KZK|7=~` zdie7Nrk++0WRmW+Ww%$&(>Ib!lILzX*r&LuyT8!hZITg&AGo>CN(6TrU}39gBU_#D z^w5a#+4Aw*2aFouJ7;s2o)2wqv{AX<(6nx9dJnHJrRiC(RY{UypHXP)+>sFHfhz9o zoi-`m_?y(5Rnuzwg64*{xzBuO9$Q7sHk&KI^W|SkRQbbd{V)EZ?s04o>6nE`axmz{ z>ak?gt_sx>g^Ixi$GoNx4lT9*d7AZjI~L*I3xQt1V{jLw2hA3x z1S47%NsS`H0&oj@K@#s#(j9R@sHHHQjXykBPKa_vY`MlZf+Hg#BZ6;3Y1IPK6eUt} z^@Rvb6~UQ$uqj`Jii2E*T8K@>uZ3Rk$sQg&S|4AN?v;{doT*ewLPbpOC=||S`twkn z?M10diIrD_5%_eALh1nH|3EY)X%AN_-vPoE92%ErtR8%x>!mMd00-EsSq?V_h z$gD6(cEN&X<6XFNXh_1@nxktey1+08c&fUD#Xr(f;~K7k4unL&XV08@fn7ZwkQUj9 zFq_mWF-HkTK;%Wgr3D;yHSKJ~Q_}c0DIqBuk$~pf`Su15Nl2Cg0CAL0jIkxlaI1j_ zQQ3~%k%Cx448Y26!)cd8rxpp&!vi_4RJ2P8p+M1wKaiwFiB7FP2zGD~GXFsY7~yk= zx<{~8a3Ea?3c82cb~N?cY$z067Mi5Xh>1t(hum9v?hH?~1zHHv=!CyOi0qN_c#C4x zaWdLt`Fs)#;Xx{1UMzl;CFTI<;j19vM0gzXgL`Gj=%optaclgbp$d?$+)Y8vs8)ZI zq8Yv@Mw9?pzN_MKA<|ojOp1a;M9w@RQyns0#3|^9RiIyRg$&%|26tINm54gXj=xgwjfy zh5MA(9lN{Pbafe;IB6Ep(<{KPOVv@^mcXjb;^QH`SB7>c5HGt`0#jFNAXaa3JmzD< z0>Suj2#@MexaWri8r8jRz}al(q8`_S@Y7EUs^h%)OEC!>k*aXX zB;%Xn-A4~GVy=fXr+IJ9fiV$RjYe}xRSU*pHef9Adq^Q5>*;c%G+k&FDAO`X1!SH0_FnI2zYxW_u5y7nt%3iM%N2`(H0sbuDDFJQANbx~O5z~d z&1hal<@+}PnQ53Pk)o9O4&ILvHBiAx2gGo=24l==?WmaPY(u`tVxn(xT~b$mBfe9= zg&v!Fzm84&|NCPdaE6h(xZk9AUngH?58yc9Ol4uhjon2p{{D} zkE0;#*XX^j0S>_!3t-0A}kK2IpEZj zRYs4*812t`K;vZ~FYf!*qWedOd|3)v@plmsbUO~HB#T3GNZ7pO37j3DCN@@<#tOi9y? z4TfTZIbnbf@^YF+)VF{xxJLvw64#KQyakvirC5>84_g<#vm`3VtpT0>Dq1#WGiu@0 z;6aIg#>{9UN@=YVr@A9j0-FE@dsx?I7~%km(b3YwfP*NnzQHg@8$c8)(Zp8tt=Dw= zP3xhQG!woPOSBNo4h>A#bAiS-0h3l}0&2xHXPa`wl-$>i{T`VpFYrXJ z!Q4pXsjhmQLRry!BDJRc___F|Z}?(@Mpy?N>#z6+|Qsov2(mbSdVZH!$!T5Sg1YD5l2hc@tpmH3<1v-WKFCI=h$j1IlX&@6kli%?au zAa29KuLHfsSLm;%6aN*0Hh&aTXTDgY`@o;`z3)dVQ#+Dnn!85o+78azHGQ+T?2AXz zSq4u%zO(+292THgu`9NOuNiI{9JhHxqGW;cDmiWb`e@UmWox@;nJGsjWKT--9yZz=7!>k=IXdNiffi#O&GQ zG?>GD_)z9!0`zAyUx_}IIB_x8glj#w=Z3ZMv+#IZLAF)JaPe#B+Z3bF?ulG++ z^(MJgI-kkKyv007$~eHbKxPq?H$)6lR^Q9D$N^q*iA<}SOnK zaR!#yz6tal4b_iAp;U>%SbI~k8NbUM8HyoI4UKvh8X#JhRGG9TMGZk=ow`IbC=zwO z1->MuHKln2cb)i-9gqnEVoLfR9LGLVkyux*mWDwN`+k4s$iT+*t}^|*$SRc*mz~(@ z)YM04(Se~EUM5WrCBfjob%*pIzRPJUutdxpC2~=2ASl`+K#gd$8e%(J z50q&IdHy4dF}5hKTxoL4qe+UoqBc}dDCckE;!+#s+LqpfL~G%P1aX_-%|E|N;&mcw zl1BZ(ycq~IfwX@c2X$}+RJm8SACjh_bvjv@2821Hd_mO)I3A;s@16DHQSqUoZI2tO z*+g|x_J#SDNwp?QLd;s=IEwD&V~0#lWqK^F&$J|dxJa@nvP@yKp)C&fiGTt#wmUx9 zC_nl{71Whe4kuOFvwy0js4Y%Ba!n!}$OE?Il5DLm=m_~3!}CnF@ob60m@PMml)x#4 zP%}V2Y*kgkK>@b+%LmM)Z=vFya@eKlg8WuOxYq|qq2``)7zts1<M4g&ciAL3=xjJ{uCT98{J46@ond>wPK2RsnVOm* z-gQdKqUoAci|Fa;JyxGi>B<+K1?1!L-9W>rsoMcS*r`_5=AV7HR zTot#>-rhc_5FksvRZ@yi4%qQ1`kM)=8#o!GtyJ=bpi6SeXWM@-k=v_VT z?Z@MCu&{$VDd_@p2Q@4XD0P&4a=j(agA*tE<%)-e zz~5e0B#4&0ZauJbQ*`$2Oxt|JtHW7pM!On&8mqPhX3EE;CpRgIEPKKS)6&cM-8GjR zio(~{y4g0Fg%zbIl^=!2T+b+VX`=O&+ihu8a!q!hEo4spU)bLn07T-mEo1&CC4;Va z($^BNHk)yiRx#h4b#B$aS`Gc{-#n&9Q^LFF>h?s{d}V?9^qz*QZTeNpO9C?zM^@J# zwdxSM*D*i?OfZjcQx=iL9UnwTML&EZbb`!kyMIrSLD6PLCeor87|q z0P-Ue?P0D<+NrUBcW-`Lv{h3R^$gWLC`yuwnRWKTrZHchqC608#l3UqCfi0ZH|f=y zKPkIT?8V|_suWOyz01AMr7d>WS6|%-3YwRy3?E=@d;lmD)6A#{iKcGW_U)I&BX7vg z572G;ym@3Gu|P@`wJL_S__~1YOQ_U|ivcC(x6)w*dF>6VJ;Y}rE0yN+QvL$aO0t8J zr2&F-`(yE8X!-J9a;PgJhX}SgZAjXJ3K>b;vn3O~-;=eI#X)-1O?+}i7H~Fe7Y|67 zDauAu@FXW^)-qopWOuP9QFuKpDv==dn(<~+T`>cd3kK-KYSmRfd-jYE`T2F?bbtqJ z+qttG-5W`KDd-=g5@{F?D5Q7x_bAXC>v$;yR`>9^LWuMwbH5Vbi`i^Ev>FwD`VUg! z7NZsnn!ti(HUlQrsP?F^s#Qi6w-0MVRpDz?cIBux=%ne@hZumI&EQVMV1?d?PX9R| zG;w4J06q>CD+E_!`Q;<1M2d9{Ap*xk^wBU+AEO;nLWY9!u_#U07AEcW}%uS`>EO|D|)QHccvjDXtl|jEk913MM?zn zt&x74$`3d^9kHXbIS^GMIrebyI=e^w4BShCk{-L<-WeK=^N?M!LJKCkSUD%KbNeYD zAI}A)NRVEDw(`dxs3QPiD7>KB`k=)UC6J(*AyBikr60bhxDiYUFyahVcv1-+7Z*2O zQZgDNu=`F`(`|vDY5DM?^mN)k9uPqP5EeXUU=S4eq)^C)Ljcg$6`)# zVy}M`NNt+IB4vTCupgIg-h}|D`1cMn3-Qyb<1|hL-x`o;45=uGd61Ykpr_o_sn?gb zjyQwci^7}HmrZ_LbS*3b4=1h3kiv(tEi5cJ(S|9_+kwh0k3n2++k!j%^fVb|0$HX5M^Z6#qfzmUEhrOh+G%WKgM}C2Q zfBXUF6L!9tcA)oD0q%!UWnj_+x_VX0gc+kG*tWXXV9BLB8Y26mLzkn~su^7GdKi5v z0$a5K>qxVZ>Gm88pj1U@g@2E_H_vvf@V%GLI(&J?Fj{@^3XD~o2t=E6`uu`%k>`p@lwqLBMnC}mk-@A zEmwK!wlyPdr{>yd;h2zMbDec*2{Dmq1(NE~U58Kzs^oa2#y8Il<`&p>)x8;l=%=A3z}9`0s#H8pWkiDtazPV7$Py+qi7k7 zog8Y1{X)z;)qz&*7!yz5e2QE$Q2cNY&uGcdY+ z;76e4Ba$1;IM&)dG*}clc#&9${9iGuQ14v<`DWY-0ZZcjl+?;Qxs5qLDQ0=7B=Kh^ zMFj{t6NVzb-FLXSc5S1=b}vEl^2}+&RsGMZPF}0sJMbo?mX)?Ty)E3@6WhDmSBklV z?!q1u&z3TyCp{TbUPS}#1Fb%G`ks=5g#)ftGizPeX3I4W_7=`EuF{e1FATgQ<9zJ@ zdKGmw*Gf4sJ$O`9=l$mQIo`~>@mIl{kHsAWIQix}30hJG8JF1>wTb6*%>+dSu|DZu z7YY)0I2%99jK5!9oO3f$pp(PTs`PQN$xXHN-;g>Sm)8A#f$`6ofobVZ#?Oir%vAlY ztA254N)mPT-2S{7=v2>>L~fUVLxS7-1xe*b`8hYG%0t?mzA6)gQhmXmO&;zdO!av5 z*UskpboSq4Lmz7-^sf?6FUF4^Rr;~m@ywJvIc*{0y&h%Y4#8PEf@wB6!6 zr{#Bb^bxM1SUJ*z5#C$u1dWO|P;^sOIXU(xpG~I0vh%v{pfv)1Mc{Gc+@k#a5<}~nOCFJALfslq1E!^}d*1h;Bj}{bW?QQ>m zCZ-S9Og}he>LLnx>6C~kz-ebwU3aBVpYG-Q%8qJR1yMi}4I^p-l4gASwY3shC15C4v-6D)u0X5*jP(o4uu<71_Xp2GAwRLpSq{v0e&qSO`|3(3ESB0Vt^2#wy6--8$y-22Vx_d zM*-!X?jeNFaVf|Fk5_nj_#Na?I1OQb?p+uHXc7X+W5L8&?Y&+|myKV5`AcgAESs?3Brg=pwZ`{9m;#v5l$rZ+94olbKo=T$@;4J6B%q- zKHjIjUdf*(*EcpzJFvFW?S!Yon9rVhQ_+mdmJ^02a7J>kGr$oNGVv2u4b7V|VxLnW zx`ZOL!V57&lpxMQuIGrm52_HP-^;!y005Z5a;*!@LdKJkxS3Bm^ztz-q|K88 zU06W)>?@URHy~!Dw*2HrxMLyx{CXrDH5{*DI~eBX=f|f-!va&BSZ?TSm@%|rC9{2N ze5WPx>Dh%nH|Ez!GUeUFuO@oSa48?mCAeooW;7;O>KZLjb1ktDfHAHY6n%Y|Ii%^I zj?=iThq@psZ5TV#q$*N4qQ$u)MeM((z@{qsMSBVWkG>3rmQj#u9O^sMvgJuthg^Pc zLrZ}-pEtG(F^pPBP?DlbzmXPgEt!zSs4}$oP5mVa=GHTN4kA` zUrZAp$aV3#QU?IX&tevh&iw3)Z^F<4H3^jQ7@?ewv)b7G@-T<~teF^gv;Zyrm}RpG zf8a0GB@&dkez%x+nDSzvJ^mr11Fmz7#TH>Y2lS$N6I$h&)<-{*d_SXPz> z6kL=FkBE?4zrON*mq6X~iAi_$N0P*ZD+1S*RkJb2OmI6@vB9{qtW|h;SBZ7hVc{WB zmP%56bpkuY&`ZzA?M9>G@3lK>jPO(Dv$(-|%B{ciIt1PQZrXnn?^cHd72LUm4{KEOb1JEn(!qM(V{LUU!mc$aH2&YlHH1Z1rBQbF#^{OvZGOSoeFaHW# zv`%rDaO^|=@;S{)FaM7ML6moM!#ZbAfsvPO z@~1ED(ylf&O?x%+dfF>aU?|(W`bgXBzC6D4L+}{P`}fBb*}o17{Rt+*eE9#Db@Q!o zI-Q%PEdFbm>q2bqVLiVq(2TiT>QvYV4|$*o43SfZOHK|lVW2tbGyK+KC#wK ziFpMPWjfx;KbAKw>N$kj1v!b4ZNY+OIex!ds`5@Ro0js%co+4yV4q~4#%Mv{{G6bK zf+UX#O|ACo&H^{3jr(|lFB)&A&)PVvud&X?ZED6o^-P_8ebZOA=6=|w9WDJ;PyLB- z*>cXWZuT1%j!kbPXw&@lb+YJ)3NRJ=jQ)KQ2skt zf7cS=+|Nvua!r(6mY+tF1bYhTI-@*h8J<0NoJQ~8T3W0qP#FXO)>-GuGArdMY5?C< zz?T)2I067z-WoBln|9u2faF&lG7^uL_9CtX+Ycv+ z^g}bQo*9?-)Mb_q7)9yR(5J^VF!jW_^J5pfZ>iyS5cY6dWPcbybBvVi^5r|Q5I;*2 zQRp8qAvTS9Xe)Ia9aC`P6P)fjecSZCXtp>(p{4$FF^4PEChfzP2obxz-I#eSjei*P zrTSt7rUF)G@Hn*9ah8`tLZVS0ZA)?5VodZA&sakKskS%bU&3it6{-I*){53&+!tq?Nwqr!#3+- zxkB?)p^Lj9bqBpPi9WFHMxw`r;CvgD@FjreNtMP9CD;@24Kyj2BwgQr%i`l%bi^U= zKRrV{8PhV4Ng(1tKv-XT4nDOcG-5??ow^OM+KNw}W|I!a)u822~xZ2I>eT zO*wD4YG9B|w_sfThAy;za#deqGGLh0>E!`b*k-fYYzMC~S@n3Y3BSdYdxhaR;kw?R z#XJI50A-4D)6@3FsrwXl4|^qwk^mk<4!?~9?%#^{qcQeLG+%pO^^O1H8z~lc=uAqK zt_C$q4usv>+LL0h-K%tCcFp~4-Krs9p1`;Ix+0tJ$Y8E;jkQO@Jg|H(!hFCQ&XA}=89B!8odb_ zEoqGWPWw!cpgNz*cxp``QRi8O>JKtK!c!l-ZJHP{h$|u`^xB*WC`b3KP2#wRxY1;+ z;EyPLqR=ulVy}j}@7dF*&(R{>he4fAgG1CIRRiGa14z%6l(Re%6ct&dQ!uFG(W6Hg zUlWNowiz%LMXjI{#cy&}@9#f0RYQEjzb(K*$>MEJg@K?M%}_C(yDJ#O+4b9RY4$!p z^G;?~eSZMY65d7v2e{O0@fqGyQbC*_vd zpt9PgY8@uh?MFVJj{mAAk7+B#->l(DYkWn`_!UVH%JHBgoJx>Tv|PdlXf#$sK0$eg zsT-2r``R}b<{%6hx1#)S6TZGzm=cI0dT(kK+uuhlKZ_3j!bM=6q+*qXlo;Q922(yK z_fRlFqA%C2q7{VY5tm2zMGcueoW^3{%oIBZISD~>)$6FybD-RDL`28Cz2Aa&yrB!C z;fZQFD7d6qqdawJsK@Vp-%+q4}i8;=JDlZJzz9mINGadv9{d)2rra^Tb ziN}k@htR_|Z}`!4iKc?Urp}+fA;BJ0E7B}npxCpN2hhHL`SJo0kHm;uQ*`RNYI$0m zI4*Y$8YGN6i+t`N{xa{lpTLZBsh$QiOs_TdSl2->s#?J==Y|Dv2fC>%j-oijAI&GP z??6n9wy%1BB$@eu0Yg#jN;5tvxB!E#ce=tTCC!349+sHMy|r^~lD`AoL2U=gL-7DZ zdtPf_0XDpJFUEHGt8~Ilh5Z)1u0KWL()ZzkNd=6T0GOZRvq|!S=O+T|S4#R8@lk6z z5&TG*u;`uT1w;$sb$W~?JBjK}c>#zNkPW+UG^%5~y81xNDv$08^S!zS` z*fD0z$tdnr1a)DO%Pxr9Y2rEFR@}!;pskC689er@C9xJ;vShessI+p{h%DS8f}y7yVsvsO}e)H^S|4tn&9Y{HjjcQ(kS3Vs1~Y z#0RD0^6Yi3p>J!Ze)ZR=&yU6Mzf(vu8;QgxtDth>CS77~oP^ef|5%MqN-l{uSz9GN z>jA+N>yeWWm0N8FZk}r@;GI{dj?u1&AWPwgXYG}fifihvB#hZ*TRRBZbRFhrI9)KU zxLR9YX4CVyw%e=C!zDHHaE0V#!rJXiE^Sxd zS;%;p-kbhIdvjR{VmYON?XW4mcVa;D>(fzeFxTo&J1H63vdBI~yBU(nXbcZ+FBIT_ zB`&zT09y;ya+okgj04m>WFDYke`v+(1xw-Yzbe zEGQbi`Q*=|2wUhZ%o4m%B2sZhavur@^z`gr(~TK57EqkgZd5u94IQ*5?pCU% z&T3+?5REy2zBRt>6bYy*;gimTBw^^O#o^8ZS`Bc*%RgW}ZVqv4-32U>#sN{) zO`QXPsAb|TYAGU0Iau+eQOPCu&SH{nx2?f@Ht{v^r=lKDHHK9~yp@Et%n9glW|k6o04IPK2tIOfNa!CL2de5d1G?==S_622-_EiX~W}xpdA|FpJkM@ize*_CO_#cWyoA z?9k>09Qg=Vdg_iS{Dst~=m+axagaF7eYeWuR094!dH|2uY7fHHk-{7>5%H6jumt?gio$+8&UslG5LZ zmPira4wUctbhI$_{jXh1#y$}D0Uv5_x4BK4T;Z=Jz zb;Zz-mD5$L#35^}mu{}AZG$yIf+Muu%<37;0QmU9$MgN5;S=km9SUy>r`%3;m~pUm zto5wAN;RcW?qOk;!NfIQyPD*(y9W9zMVXz-fOqZ@>M0n$Ld;;iY6DkfhogyB*0)WD%1@1U6oFbAJI1x=XS#BzzVfX*r{i zjvX7*1{o^3-e{YpcM`PXZmjTK7_2uvas(whkx%qiBTE1R9xVtTRwEMh}b0b24blJ=4^Fa zpsuC#VA4cWq6T6;b^-Wmn7m2MH-LA%P2DOMAZ@Id!G)O3E=i)OXsslqDIf=a3(zd8 z+vjxy!6_Gq_%2SCCK3 zBO1|n`1F2EgAxxm!^curL*7aX2>}K{ka;NvwNmFtflv^rLTsc?QD>wzdz^rc^gE*T zFxxJilut?3PJw8lJ0Tn+DLVB<>b*4ng|~YF2bPIQTyB zdKz<0vt%Lv+k?n0#7k83q10)hDLIc1*S+m!9?`f0=wS+KG{nTRQ2=#*NrSunXn%&~+;)0?oR(eoIkj0Xsski9xOe%QekVBdSW z%yY1pK$B*4y`!ivIj#d zKA{g6$>|zX*m=uMm)O+;p<)iZL;}6b z3BxU_kxW>2F%yV>CAMD9?S-Vdzq$>6$oc@96^f7{{3eq ze>z)o?Xg!H_@F$f0dAa@Bv)n^(!r^{herk|lTKD_T=%?h%+2MPGVR1SfM9NU4v5y~ zeX@d(0xay(wN9oV@)KdSrvz3kImauypI%(-H@bLkMsx8#5(bFy4Nr>y zK^7)LKPdupAx%C0vXvGmK!f`ld+`9@t6= zfg$ez)%cVig*7QH$RgJVnnT=qX%>|7S}=x?mY!l#AkGUO#!S;Ycoa$5g5FadlVrdR zR-P|TwAN=4xd@1Hfh=;_M|T(yAKM&vh|lU_&xbF+JaPG->;3)XIzuQEo;E;??QraT zy9*h;mC-v;`O+6+g;c9uNuUeW^57m^@ul|-hM_;j2r~}i1&;8}CCHQ7#Ivtq7O~z`vXC5~HXpoIR1}gwQ9p8t-*vHM&*f>?xyLsb@VTCt|f+e%;%*Pj3^Ukht{wdMNP9zyn zR1w>GNa5tQ%*c)zb^RV5*vMT2tp%AX$w%9|Yvrr1W+pemuj=NSK?!Ot7F|gM4Q!gG6s3_d3I3sb(|Npyzg+3OtNfiGxFMa z$tOAV($xZk*2dPts=h3r6sN$Nkf*3U7iA`{l|MFaT3L{_%9{?Q8svBPCL9#LO5;qB1eJdK@dMf z5H3{gQe;7ot1?!=dVDtqUIBBgun=QVtpmCFdcTr_b!z20Loz+E#L==C!*>ZW9eynm_;p8 zW+~E-H17zwAd??53Bd2{e~0l2AhjZbf`Z%!u5Dj}bb*{WH7uH`byu!l)qPdRob0pD zTF2;aK}EKSP6<%W(F*@7SHh_rL-R}NA7Tz8wg?0LK%rQoz||Qb5C0`88u)2FO1P`1wh{Mq30KBq4Z_d$f&tp`vd{=zbOiiW0~IclrqB z$YHyeLC!B$T~}PfE|5na}Epw!|>cJKh0XmtrTP7>i^soVszgDw?`bx>2L z4x@Q1K?;c+>nK0$3{4k>6dry}7NjLFNH>DkjqDz{dZj?=4wlwhDKk=^On9)Up2UC) z!ZrZhzoWwkT4a#RnL73l0qavJe#8Zmql@!3QR`uo)?&sVbmKn$83rR!hj|?vKA%OIh}N zDCQnvg{NIi%*>W8TJ-3sF_6{om7DCPM4-Te&b_pw>S z9h}Wu2j6TqOf4{uHE3%7y-Sc)l^_1JEj6%1;Gs2S_@uhpsmG^LKJ-mU>Ql=kk5yKM zJuAnp^A*?(j87@AX?^_0WOz~0-oNoCDH+*CS1;~RQSo!ysBzX!v^gmA>F8!#+p{Af>=1AH>Z17H58(B1lPHZrC z@>gQ>A(jY7p9*)fLM?p&5{6;a+((!g;xL_g+*}j;{g{~n)JhMJ*%dsjC`zjIn3xKU z3>k@Us<1qW>BhLA*M6aBAoUfNAKyp0BrIq~xhY8@F=y~7URtuF{XEb}h)1@I-Il4n zC^e*67;~^QBP-K@`f+iyiRDqV154@)v`g_=(cmhQK>-BOCf?@DQZxEFR^m0sI}KlM zfC{$-G;$S6t6|C)L6%M}SH(>$aC8#lk^H;P@7($T7JIp1#B!w%) z@>T1;3P);mb9AaE7HaPFg;=2?agU}8HZeX5jf(HbJb%@$ezF^J8D#BxoVYpNqz5=g z8F+)$2OoV3_8mcno_w$2js>&=<2Z_`rUOx$r}hck2aS%d(Re7{&_LVx9#jrogOF@i zxujnlgfZ;ji*(G)%wA7pO6#ZN{Uzoa0DF;-f!g3rymf1O^M-Gwq<$bofK-cQ`c83T zHG>g2Tv}N1$r|^~SheBAP+&pfXMH34DO9ReU%v;aaa?zh!WrT3sXG?LKbFQkHMTb- zjvPY(nBSXHv^K2|s^M|!!ZSaMJq4U&LRzB7gUugF=(DE7Hvt0gLl-E`!X+-p)>SQ8 zhiBZc91WiHOB=|cb*!zgoT_6E-+j_JjbC7Rd2yWvf`f(N<4R*_7!;(w8`^(`tEx(J zW~M-^u5VP19d(&skNqoLucRhLS=_rc`0k+txCN0s$$zH^%*@T3eH1eu z9Q_)EC&WW64&qHN*?xduX$RHxL5;h@x6PpG=k218hcdoLLjDtq;>6NBA4A1)QTe19 z!0Z&70Y195K^w51*eD9G+4G*ggIqLZa6=72k!mDn1V};Yil?V8D8n1OyeET(yVE3_ z(oA#%eu#1LEh8;9DN7oCG4M*myJzEVP|MU6Q2YX}>mA(tk6RlqpBy?$XqNV8dZv@@ zgsKlzQH*iH6hc{aZ*PGRP?G1Zd3i9I~ruko+`2#9GyiP4Ej4(olGL^8$=nU9GN>BI~d8^Ub+%KGYISj=Idh^sP zY`Zy_{EinbhEmXQz~q5z7(SHsa??km&aegHh3<&&Y+WaJbcpv@-iTJr>AQOc5sZjxO<_yKtf#AA}1-p6UNS`mr zv^ykascfoQ`}_)So+VZu%72{iTy+B#043%DjncxJREjuwVkR?(x&z7I)HXZRYnV5T zp_ox<>HttV_j*q@UV*8Q6hT2Lm)M30R3o?y(hyn>5Kk!yx@8BsBLUNxl&(dk3ao`# zMWXiMh@zW??vK=NiMF-Tz* zwFqleLNAy0+P{A`QNYu5@!Ca@cl(zPa6n`%R6`&KNK1w#)a5 zqL)IReU*Q0k9(c6s?|tAsj^LZO>O$HCpy86OIHT+stT%uc^xpWiV~fR?E+%Pm)p*A zSmnPcv(2W^w&%Mp=dYZd1=WhzxbA1&S{KDscNaY1y(*giYJ*LxXu;bJHc8e42kn%+ zE;cQDR5fl+%)0W{i+w@!*r^K^W~Fy8Dm1R|J8L%t+<$Ff>m41LT?iK<$U&Ngy{X%t zQNT*PpFYvs^oRZXuRUJcg;$(LVv;sZ$^uBZbO5u*N}T;_>KNI@OSWIVj>6|1tb&yL zwFmRdXtpA$y(z|!a1)LrbU1f#U5yHvgkg!0@5eltTmiENY^_ZzYA`SYV!`s(jAJ#F z8Uh|RU*t)uWgspqO&E+`D@98}eldl9gPYz-5H{WcnxBUMB-tX(V5MQPP+!(Ig*;Tn zyGSs-$PWdk&Q&AezbrZN(KUqS!$aR~QEAGPx#fwFO-&&26o*v8stS z(FLYnvn=I43@em1b-tW=!}dFS?$EwePOEKLoBOVfNaA8VMKqHWPI&PID?m+s-TI({$!85U z6E%}~c#gteTXUlB3)EJHuic>mLz#r%q^%=e6FNGwPg8Cg+5p;m&_Yp8%IkIi)wlag zi7L21(ohs=N-69TyAB1vfH>Op(}l;txhPDA(sr=MqYExW;}}C2JgS>117LG>%Pzs& z&%$Jr7|O9E`52fmzj;h6C?yN_?7CGlDlbXT-h=QkPLz%vM$juva45*oFT;_ zq<*w$?hS=Hlw911ReFxsA_hw*iF-92*1?=X7XUhAUD3w`P8yvB1t0oPhxLU3KqCk( zL@|-ng1C=g$zck7f46OVmmfS14G%^@hui@B_vCJ-)ckeFG$zfIe~v*Wofrs9iEa}= zKQ=gHO<)1}qp*pIRvU|7A+5w+5u}}eh0ODVy=R$rXY2o@uZY!f*)zjNVzjs z8^1TTFw}^rr2;|N14RM3O2EUB@PU+;G!g`NL?yot`imE+Bd80fbqZV0HP4YD=X8+X zq&N|eQk=K$dGyPx@DF4 zQ8>-0D>Nz&1G6@>T{`A4E^<#NrjKm?M5^1-qYYHlq5=`bSm zX|pFi;IzD_Pqpya%L|Z-5NFV6FgtO`>c`mmWzp$7s&*FEDGaFQM#y+f;@2v-n$LB1 zu$F9VYwQo|a_)Kga=!lB^2WGKpM)zXyk<2!xLWxhvj&RJ?d}X#eAiUDwYKl(u;l7W=bB;e>k}JxHgSqf3hNTLrDRqg z+blGG!t-#omV9e`xvQ@~)%#2jHi|6)K5`tn~!Muz)xB{^_b17e)E_w zv#2N|qA|=eYyG~S^1S1eL^Q|QxytTzbmp+@Y3tKp%rz6jZ`bmm8ie=!nR#HZ9dqV8 zZ>4$4^VPq6VxmMZ#FVDl^ngqeoOY3iOq)}}HQ#x9vzBoGcX6nbIAPcmRjtZlCW6@O z_k*KJp*KN{ccW9&H3GYO=4noM6;Z+ zh`@UP!%9`L#}6(0#45#AtBTuG@U5BxBj@VlecjxKqd|DWQ|INB&UVSkRo#NM0etei zxS0D@i;j2#ZfWU0AzpN@x4f2p_}(QXB`0`kwrtC6u#uAB#TstNMAtjlJ~n{b_2e_A zPrAGu#N54hBLz3Sec-FFYYZU|NInM1vF~uUc_tm*+~eRW@DdeSRF$raw$BwTX`Ah0 zjMo`W^vi~IOr;R=Q2L>a4up08oqe!U@1QmMB+Z=M^QTXpq7ccxL>5%%TO-qC61|l`RDHOFAmv4t>TrZ25UKStg+HH*Q zs(C$o^pxOE$$AFGH4(~E)c(=h4#j7?j^VJwcz zAf@Awx)@{4i-j9#zr*_aE}pRkdCOIO@?}s3x+CbV=2wFj#N78^lbuF@XyY52SI!wnH*3au$*w7Uu@3!lg&^oS6H;!jn3d=9Ulwjn|vvn`ytp z+j3XKgNC01@kFHDW}3t~JlvBhNciX^r~Pt%GqNtquE;y%pY67 z1#1+MfmFY^0*4a4A*W+c<_ICHOKXS03zlL@14MZpB?dKFc#QLs?ql&phuOB8p++V4 zfw`4l1lbDJ24LG)gTw_)|060MZIJG?c#&{|m`b8Kqdeh`qVk8bx?o$~2efAoehzQ) zJ)qPiUMUAahTsWpe-*eZ^dLwn2B{tmfy!NQNeC?_2%YenIw-RUPW`x}j==Q0{Q6P2z-`DwC$nw9!*->|+MN{sfu+^%!JJ(tNvAp{$ z@fg|K-ajejTPeG#GK;WQ{$Er|GcU%U3Z9w2{-1}RGJEs?G#u>@GhqK60UpyBNPIHj Zwe-=c%&_q{{pbW)n>Bxk{{Fzv{|h00A}s&_ literal 56524 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 R;{w`9e!B40o*i!=`4eI6!6*O# diff --git a/rio_tiler/cmap_data/__init__.py b/rio_tiler/cmap_data/__init__.py index f1ae681a..9aa3abcb 100644 --- a/rio_tiler/cmap_data/__init__.py +++ b/rio_tiler/cmap_data/__init__.py @@ -4,13 +4,21 @@ # Using this script: import numpy as np import matplotlib.cm as cm +import cmocean -def generate_maps() -> None: - x = np.linspace(0, 1, 256) - for name, colormap in cm.cmap_d.items(): - cmap_vals = colormap(x)[:, :] - cmap_uint8 = (cmap_vals * 255).astype('uint8') - np.save(f'{name.lower()}.npy', cmap_uint8) +x = np.linspace(0, 1, 256) +for name, colormap in cm.cmap_d.items(): + cmap_vals = colormap(x)[:, :] + cmap_uint8 = (cmap_vals * 255).astype('uint8') + np.save(f'{name.lower()}.npy', cmap_uint8) + +# cmap from cmocean (https://matplotlib.org/cmocean/) +for name, colormap in cmocean.cm.cmap_d.items(): + if name in cm.cmap_d.keys(): + continue + cmap_vals = colormap(x)[:, :] + cmap_uint8 = (cmap_vals * 255).astype('uint8') + np.save(f'{name.lower()}.npy', cmap_uint8) Additional colormaps: - cfastie: http://publiclab.org/notes/cfastie/08-26-2014/new-ndvi-colormap diff --git a/rio_tiler/cmap_data/algae.npy b/rio_tiler/cmap_data/algae.npy new file mode 100644 index 0000000000000000000000000000000000000000..ea6ea27e5e409c731daa66e8a729567c9bf7371c GIT binary patch literal 1152 zcmbWr>08Zt0ETh%Mued{+s_y>x%^=ej;Gp1VvF8Lo?dqhDsfY;}Us9B)#4+pBXjCaYcS z)ro1QHKy3qrD>)FqooJNCYz0-o0DSGjp94Hd3d_myF0nqZ?ONLvwr$dFHipN;qhM& z==-yqM}OSo;qP7a{?G+tt6$X9^m!duUewa~qJ~SKo#x`Fr?~J*HRnD) zNyA4csDFNpv(JxG`{5C4J~+gg_YZRF*#WAbRZ{h|f|F17ar|*P$NI`R+P805hEq95|aS;&n-f-mxTUlegd z>`WBPW};l`gEGcq2FfME;_0Xs2@AbZMGFhOP(^tm&7byKD*t_ zPC?QL;ciG_Lg-|q5FvPyFcE345HtZPPzZ2En&X1xZ{dtITkso?G|LIeSD5LD%Ev;D zYQ{KJ(*M4QMiplG1+1y@=0$apD0Wif!y^iWG;g9 ea6!Uuyx^q5&QXc2T7m62!9k9VgAALoGX4eKY)=#b literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/algae_r.npy b/rio_tiler/cmap_data/algae_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..84a19c9620990321b41923707d91b92e363084b2 GIT binary patch literal 1152 zcmbWr>08Zt0ETh%MwG2O+s{~zA*WQ9REQ|4lsa1_Aw;J_Dd#AnvQuP9vSld|l~PDW zM1<57lVxViW;U~%eR*}y_l*Bwp6mL&c299>j6j**bLS`9|#_BL{NVeAm(PR53eOQJy#()f zP)-{8#^h0`rU*VxsHToaHBIo<2+l~;g&8hLeuDoPq?xWr0ak8EvxGo*q@b}#!NTlu zNFi3^kwPaR%@M*pkirG+L?oS{_k6?Pg=F+biVz|vAw>yuC;vwkJq6V~A;t&Qd||;< zlnaH}X($(2`J!Cxi(<)i6mi1R8OWCj@q)<@d4eCZ1b<|SLefkemkTQba9AlM3n{a( zUu6}@pj06(kb$d%7-$Y+fJImnO#gHtV>bQPzG1g61iQ=-Y}X4LLg||&WQWoxN7y(A zn@z%It1xV~gwcDeuua$=PVXJU&TwpUg*;)GmOfUywe-!`V!KD!tHW-ej(+=f^e@mc z@PLj%f_nA>e!zffaKJ7D6kd39E`mTQv{; zg&2(0^NFaLPgKnUqAxBarZ$!ZwTpKmyuW>PtsKrD;g3= zZb&4hF^SZs<)k&O#C$Co%k>n}n^%$1oXWZzX=L79&4v~;SuGZFZl$yFb_SbU*RrK` z9oz0?vifzpUWu%SswPucGmbYOZ}*!}YIfY5uy7 z8?P?W^6Cn=zNzQ-w+*y@*T~)Pn`rytI`@8T=KfDNX@A|q!`HXz__>wNU+&QLYa89a c-Q&^k4|x1XJ3W7P@Z_&fp8nm%vwynz7heod6aWAK literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/amp.npy b/rio_tiler/cmap_data/amp.npy new file mode 100644 index 0000000000000000000000000000000000000000..1b4c096136fed172057cc44dfff3435583c18a6a GIT binary patch literal 1152 zcmbWrd0WkS0ETh%XQ^ZC>u~Tpn+a3IV9KOXl#*!~g%)+9kemupWC?{SiY#Rpp~jM> zjW+H3zA5c1V_v~M-+2r3T-WE1=Z>>?wsUa(Zrs6fM^!%BAa9*&wOkbzVyrTft9(BsS2mATb-^-W29>#jR8SCj{w7Zkht`0^z+Zp-P#&Aaq!|lxsw>C1=(!fx2J%dfP z3^vv<&``xdT_ppx<@DE-(O+FcUsW-El|}TG7t&i+KyPUtJtevH6u+mZD2MLCY`P0F z`JA7@=e)Ok&V57IhjhAfUeT5Pg3hexbY`Z}nUTt;chC6r<_R6IQ|L&4M8~US+Fw4P z{l$ISpWme|?GA0Jw`qHpMC;Q;TA$pYHRU=jj}vG~zDmo(c$y!?(R}|h&G%wyx*J2& zor^TxxwT-G~PT%!;LdET#uyT+9~Q2PEvm*g8KO5)Wsd6?s6ElmyS{!8%k}= zVQMZOqUJ&fHRpq=j@D5fb%5$~fmEFhpek}7Rj2n*dCH&4lYUg5*hNKzFBQjqs0jC_ zJZvZBM?EP!;z3!cJ7tHrQ+j9{r6F#V25+S#=nqPCE|eT_qBziz;(*^N+UG#g-pv&4 zvFD?|9UuK{Dcog4q3=ctwbm5)SW)1;o_w$0$oI4)-@}4D_g~4|v6kFz=H$AWk?XpK z4_jCB!DSWioqy)N(@Jt2SCF&Clx&CPWN%(Zw!H~in~ce_{fSJQrDSegLWcEXGOUbv zw_dRPk+@zz4ao3$EVo2z+krY3!jiuBb=Uab;VDtWm=!3$GinS$pg5`P&BOC{2l zNTe>7cxEIll6b0-c%qg_QAs>jNIa5+g%ZgNBp%L}cp#U!KTpBExeD&iQE+Frg4?qc z+?uH*X@-(S;pTKDH>N4MHdRH!6ctw|tGFV>Pf`;%QOzYG_Iouk!k@y$32M$y&=4)t z5G9-y&IpmhY2l=BLWnTba7+jn!enZW2%*AZ;h+#AQxPoagabmLOi6&SPuMF{;4kyQ=A7Q6#0bYWqY(DP74q>}Yj+@|WIFGG{b8!)z4S&E%a5S957Qw+_Hk$=I xgIR1cn2D`mGkyje1ncqBu^K;(_4?DW)St>a{V7-oYxO2$E|}>};upP%{0kO3hM)id literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/amp_r.npy b/rio_tiler/cmap_data/amp_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..9fad99d9d7af398eed86c5f0c2d82d3a8f7d3424 GIT binary patch literal 1152 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 diff --git a/rio_tiler/cmap_data/curl.npy b/rio_tiler/cmap_data/curl.npy new file mode 100644 index 0000000000000000000000000000000000000000..8c809092e0e5b80dba662ed4af4a9421cca21045 GIT binary patch literal 1152 zcmbV}`#08i0LR;}JE!LMxIE9ZrM33VrqfMkmD5$3`^f$B{XBS(O8Aq8M z${{hj>7sN`lO`n!nG&fiWwy4?&TF3E4y-}?7L1E*Ia)TdATYr>x0Vo{=N+&f6mp~M*K`7jUQMhYRc!nVN z4n^*}3AukbCemh1LR!?0*%;W5Y}Vljx+q93hAFJ>!x+BkIM;?Ye= zKqqmUq;2S=B%+(P9o_Wp=w&8hkd=fiCmEyMWaN1%D0inYdrvB#7Njz-Fcq_XX_yzK zv9LG|i;{G#O4C_!AcK`<8Layu6Wc?XI8^MwrE&)wtFrJql8s+=Hd0LvLA5&xJ(|nr zW4nl|&qLdgPkiGZwm0o1^>_gpCkx3wwU6B9BJ$4^Q*gF~edkLlZaGNlg)+)o%c;0j zLDiK?s;?fV_F6UdH)?6TS;vW6^_>3cN6y}EqNU>`tv{dUO6OUwcb%v0{zclmFL9^m zDtCLYbN^8r5Bl4AIM6}=U?+n^_jvN;0ndhe86D~4#q-CEj}0;La+t~SQKnwM;N6>X z-cL^O_tfNnynj2vUlZf}IX=d_mm~Z!_LSd82ALY}=eMC=CI`ED+uy~TM|YU$Y3Fr! z8^3m4W4!Y+uR1RBs{K4K+nRZC<0NBOn;5&?!1LBRMq6qaJ$HnW=1QKOI>fW%Wehi# z^0dB~r*->zQd7uK^Z#@(1uI-^3k6QQ9aJeb>I!L)0FxD^yg zn>vu20cx)Msk!E(=8Bi#vWKA6O>p5mL5s8CoTK23y`cG9iBlUSPS{8^t(9n8Ezz)2 z;+VDI=n6s2GC{SK;IO5j(n3(NL{Pp+P_{sDV7{QlT=4yug8gQKLY1K4b3y)Rg1otc z+&O}5Q;8k3B{DvdNL5NCD*{NA2asUm&(>*Tjs1u+@@0#m58;O1gvz|o$UF%&@IW$f z$KSvWAAMIm^<8k+cg9uE5obMn9QEw5)3wD`cRe;b>sX_+hE+PNu>Q!J<+GM!HR~HJ LXMW9+nM?TxX_=aP literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/curl_r.npy b/rio_tiler/cmap_data/curl_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..9afefb36bc18a275e7f6fc0d713bc75229337614 GIT binary patch literal 1152 zcmbV}=~L8o0Eg{uGaA=&>~4vfZ4{0d5}^z#hr}TSB7(s0yTAe>_i~8bAc}}GsKKD5 z3@U>M23~lec#9#1$fcshEhvc+WjW0g^(XY1d0u>;x6j@+-fkYgAIwOak*W&OXoKTb z)~2eo#6>D|Q&nh8d_ufBT8fDe(fsQj)sb4wwAY5KV>Q$Ni^WSV%}p)L%uUlx|K~nj zGIJ@GGrz`a);BDhwG5k&Y*?YQf>k=JaL}>GN!Jl)T_@c1oN?E4!Bfu-Z+&-s^gZy? z_awl;3(3HnAcJ*iWIlw+))QgqOO&A>F-9ARH})sNB!J{;QsjZ8DFVq*N@RZ`kvm%= z&r~9Rj-X(!pzt$6(dU9X8?F=ONSs?OQU9&P1sB03H$j8D;L3M`MlZqjb%Gn~1-Jav-1b*< zH&9KJI*5D0K{RWExgQ=vOGF3{A~m$egz_*hj5cjJkCHahzBz)9)J=4zN70oPO;=7V z-Fb05-mc|IK_X8JlX+T{LQioj&-SJBtR$1?WjXX7*h=rgZTwQPgTBK%>8sjJe|0ef zC-yQ>Q^H_v8AGSb89H}};rdEOE*)j0p_&(sCm6kciqV^OjNLiQ%cgo>HDBgc%T>l( zuk&l$EnastG11k`n22llvlcpgnrVO1 z#KZ2}Jm|VfbH_EB+OKlE?J_r7FVgt)c^X>Ia`Ap0=YRTu?=l8S2;ls6uv>`FN$4F}kBxs0NVr4(K$A-{efdFS?!eYTj4(?x8l+f7pKF0`i# ziK!`I)5#r#9nUBD*mk7qZTMH^vHoZtYY%V5qcRuQid>uyX@-&G_=xGzti%UR1R*ONj7FlFGvWPeg!(%ZDjln1+8snfSOhhCm(kA2q z5y&@eMD81g!Y34kw+4k*2nx?&6dpk+*Qimt3Y5-)D4haOuJ%XaumOdgABvT}C~SRD z*sMdb+#9*|TI5z<$SplFvGBlTu{$OU*I>NB4deN)7=Pu0k(o0_Dklu*t;TS!BeFRT M$Y$GP@Ub2L07|f$djJ3c literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/deep.npy b/rio_tiler/cmap_data/deep.npy new file mode 100644 index 0000000000000000000000000000000000000000..90c21fcbb5469df945591cda9e7c73b412701647 GIT binary patch literal 1152 zcmbWr`&-U;9LI6{b$^1*)@Iu+ozuDQ!#ABsNr{qlF40N{(Te7fBuNsT%l#>-NRmX7 zgk;Uk%nUQb%x2~^!*D(K_Al&pU5_7L&&uHNppeLSCge`Y*Ci%pCuHe7EOZ6S9dy9{ z>Z2oEdDPG4hljcJS05K29OA-*Ue5n{kn#IHjNL!L=pWsj{=J)#d;1x_*Tv9p`xv~t zkAb^;>HoEpzB?WC-tM61c01j-+Ufdb51pd@W*cokx6yiIH%c`B)Jo&^R_d>{QhTk1 z>Z>hO{n$d~6-9+8|3Oi9SyB4EqC^y5QWSlsSa;FPns3b%id7fP!U;wEkRtB5B6d&_b4;;l zKoNaZvG9oKS416FEa+229#TZ~ii3*zJ&Jh;M7JV*zvxoT-KPlKD>@aS9irXLoIRpV z>^2k9Dq76UR>HiC;9a6wH0>g&QPejxt4`F4nq~s4#m*)IcQi4xN^BREP0ZNV$czfH zwUK~wv8924vIhJ&i&C+v0l$)Z{5Fc>dVDvCqB?xn*Wt5HtQBi&nf}(7qOcb4)nZi* z-UTAR2JH)xCstNtS|M`9a*?wWW46c=nPQp9*nuHkd@j<&Qn928L#jxrLZ2*>MB;Yz z2_jy^iP%c?F=CO377Mqbj}i++WCex@F<*pl#V}Wdm177k$2eyT#t<>P3}f(SOhKiX zW^KY0Sb}NhMoa<4X#N|}{EEJIj|`0N=^_n-+Y$_}sTf>R(7Pm|cTPa>6pz=mSP_G#V>F%)QFz!d5D~cB&BNU` z95>rA+-yQ|wGP3>Dp&;JJT(w!%b7S?2H-TspJ_T@96$3B-Z*@!;qZwO`^g6ECVOG` ru_v}4xnpDDCS0-p&>5=_oUoeY$ka&=SiWzM<$JbFnP`J$)C4yq;yD;UQs>?~KbCm#0fg&Pp`vysdPrmOJb0 ztaK?E=4^9(dTfR{Dfw-m9-o$#EIn&+{IX>E)-G=Dc2=%7c2=vc{^#D+jkm*kygfGW zIbid?6O$)6V>`hG+Yel^`_K)0D-Yp`!$)2?e(ZzeL|>dH8gTx^i1Vi!E|dI(KT~wm zaJ3G=)g}-(n;_gK2jgxVB0}-73&YcXHl7Z1@Nx*p%W)pwP7xvsALnR%Tw?H@5-Z}+ zyC$G_OGNLUjKO^o29Hz>o=Y%#rHOQm-WiyDGBNpPVbW)d95lm9G-EEBDGyCsh32;g zZE8N6e*xOGwPHQm^g^_N4VVIpFa>SI6ub%3jLn!riZO<6!8o%7W7t-Vv$kTGy$!=0 zF?TzLa529WLqsY1ND;LIeY990V#?4j6tN;s#P39(AQDBANG?a8QjTGfNEJ)O(h3Y| z;&YK+fiXiYtHhWo%p$82Q?^)Mg(*j@s6tyQa;wq4sKzf(tP-omni{6&i!Vh%4gPPf zt;K&`Ez{PELb0Ka=|y6r*i=Wr=3N97i!HkdED>A9wt7C>E=t9YdVcuUN?Y#=`2W7V^Kf zP$1S_vrzb*qUgF})Ax#EQF24E?FU8aO+}d~|FM~>Tg}wmZl>;b3-xzeX#A-Kb$2%{ zqV?xi+U~W|@yj0eiLU!?bU$dL=RrG%AGXu`YX`@N_R=@h$*JEuIWxSEbHn?&@Ou~i ze{?Z0a)7~+Zm#@!kgKCTTpK;a^}h~tY w85%pq@Yrca{yD?w^Rqm9agHZ1&hzZ$MaKT^=lQEkynH>ttJjx#^Jb9$0O3BHg#Z8m literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/delta.npy b/rio_tiler/cmap_data/delta.npy new file mode 100644 index 0000000000000000000000000000000000000000..b59d7deec96318e75f86f583e5beae025fb25b9c GIT binary patch literal 1152 zcmbW$`(Mom9LI6{A&ewloO3#-I(0gi&N)a5$)&k9kC0_+m`hF3tR<&3i%g@@LMBVn zy^b!rsEFi}rIkvO;rvDy!bvp-VpVr06d*p3RoZuCm*$E-%~@;MH! zVK|O6pm2-A$vqn7gcy_)V^Mj;q4JDJHF+1Rse4d*?L#p=8ONC^ILtnP{rjod`5eS{ zp1?N^*#~Jz7p5ciPse7FV2NO91~$tD0U1a?%|sd`Se1z^Bn#P^ENnxwunWt^K3rhP zMjn}iLsSlq8*)*6m5bBHJXA4xsJ}L%i8bQ9)rdCk5c=(h7!{w-n1p;>b`>yocLC$} z6ymq@K z()m;DuRlZTPiM(!tR?5dIgHJ96tFs zm-l)7XD@Hx^zzT&&Affxz+bQGc=O^cubS+}(A64*2e<{!V3VHUx$nW>FdD5N6 z<9jJQyt9w~TZ#O3BY|J9ZRf$&Z|H5`Oix=h-L32CYFWqKrZ2dCA%vR^L0qp7ptJ51 zI?jDed+kClo$=-3DIc0^ylJeSLH&to)Kz&>du$@7E8RF*;llCqQ5-GPQeLX2v_wHs zv7G!OTk;B}WEF@>&$lM^kR{1^<|O5sk(gu3&g>!V$Qn#s#vo$T2eLWMgy@4Ne0jix zh!hjT_YWjAc@QB#3??|~T>|$GW!d+pEJ-xOfA?_wc8$O{!4jYEtniK>$;|B{yuOt% zWt$BiTV;%owZ(Od9b-1j(Zx8R+31KeS|Qw>6ZTO`Wb0K(BGic1X|M{{U=ikwd8ih% zHCl#!ro(i#j-kPNhO86>>KVF1uw0MnQo#~E!xrf=^Vc){Lp|nxIz}weVKHBa>?w1kGBV^ec7HV~9){>%G$uwG8lF5>E z)ajy&E-Fe2Sz5>?xyz-MZ00&FW3$)3`xo|kJf4ro=kxyI^V8>(KJTNs^B29-FQ#9d zI@Ayy5~ZFXQ?Fk;TCJCOi6BQh>Y*kdK;lF%VaCo#q$fLu8BMri=argAn%RF55 zvUu75tU)4$B_bDVL@FD^8WCcx7_r_C$w+%7ZVpJ?osf7)k$B3GjCDplUXFO80`X)Q zL{pWB-cw;aLyhfB4K_X+tY^Do?W@IVjuy*#I)=~JVd1Z1*oS(|1N01CsAtGxL7<+& zO9jjH3jJkEf!NyVoy=2Bc)|BD#{g9Rj4^wsim%J1V^gfI9lUD)1h%R*G{D6@KjFK z&!DZrhjWd-TsY=ON7Di>pZJ)o&7W|+C5W4?q1-wh#+@@?&~#H3i=*b^XgeGub(&Y=H+qz zdezL^*RA~XcN=ft^z!=8Ui$j(@#19y0}i>Ih;Z>8*f3ngby zQrOl^-suzUJ=H|kPsiESa*Xtojimk9z}6E-*mAs{&BqS2v9XTz4YjPRKg62D2Z^k! zA^cDcVF#-Tt*#=ds){9*2Ut{ofPk_C_?K4VS6s=Qq6%ggR^XFgfw!rg={e<0GnO$W zyNpR$`wTqCr1|U}Z3;*qh Vt#S_5irHAnXJRRvj)in8{{loFd+`7O literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/dense.npy b/rio_tiler/cmap_data/dense.npy new file mode 100644 index 0000000000000000000000000000000000000000..12dc6a78ab90419226d089f0c580fea0059ee8e9 GIT binary patch literal 1152 zcmbWr>tBv{0LO8Ax(7Nr&1Rb64jEY@5pqZoBGQ~{byrHK`*dAbNlt}gN`@S>q9KPx za|}zQ5IIw+e%Dn|PXEDYzx@mQzFzMK-%sKEB_RtVzUt-Zm0^l8Tca(eN$#d~b}y5s zyD2usVzWdguTHVVnE&guqt;r@vRmV$QqA&vj2rLc>Fzzk(>>Guf9~tfFJCY|e?~}c zpFYw0@e?f{KGM|lfj82t?jBye@8Q|IZk~2^)7bf*M^Zz_J02MCsMouw6J6A{cX6k^ zlbW_ps#`m`^|phXEge)fcW|xQ;A)e>=tGPv+kr$RdaLg(CboiopL%Ae|- zdLlU4C@7OoJQkEb5|lIujy)6Js=fH`=x!-ULETmsZiQ26-fEgE`fEYv_r~k$C@i`Z^yQ^4O@{-(KX6%_#MiY+oH#js&eT_qTg~Kk{UZPlEpje)xq)92yP?DdbBt1c0+lZR@ z7+qwCP3?x982qOHD*w(1Vr${Ms4x6zhYqea|8TXqvI z{07?6DzqinQNymHF1~`g=rU^PCDetLs0%KlhFn0MSAjbBJWB96l%TUHbIMTyPovB} zg)-|;95c&s%s7rCpcKdS6718CVV_!z-Tw%-DTlF5K8Vfl0Jcd*Sbg_lowyh4ggsb% z3bBkYAk90Uw4Z+?ZQM>$z4D}7QpRp0WlRpqKV_3VdNWC$n@Ae9fwd#Eq)ZY=WRU2Q zPJ&4#VYtGYVRp$%{7?&VKc*5lB$?PDNtk~~#O$6x%;0#U2gefqy_sJJMH4kBipcLG zrB$r{b_J^jE@$Py2v&R(E-hvGfG~a;u!xBMp)Bjafbf1HEbTXsCH;a4>l?)4zJV<2 zGmFqZGg;UtfCX;TneR505I2A3xlLxSs~^Fxz67~WWRB|u0$s*4%f*|SF5{Tt;zfY- oSf)FVVVd)3{GC0S;xvlMP9yPi^1#>0#Khjinb3O}KD~$XFK9ErQvd(} literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/dense_r.npy b/rio_tiler/cmap_data/dense_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..43b1df707e97d33ca08566aca96002c72adf50bb GIT binary patch literal 1152 zcmbWr>0eEG0LO9jbRKB4jTxgcxR#7%3Xu?5Qe;gNEmJosZTH-J&p8s2wKSr}zGN(o zwMLo}$z+Yl5|UDW=Tvt7gU|ftUzqRf^?vaE6wF;55*q$hH)ppDOPp1SwOJ;3TGlv5 zTf96i@u@buEhZ%@)fQ*{ug{2CrC4QG5@OP<@(&r~GuF$~d#IOZrsx0M*JHa6WL)<_ zjPE`eUl$7#U54Q2GK@(s!|`|ZVv6esrn-(Kz;zVU+(t9qZ47~K-pq9KVV3(iX1k9k z$laGY?h^_2@FT>-pSd2BnddQ;&>jKI?=hVPJpx(Sb0&*=&Sr71AeQtBCahNoOMA~F zy!U*5>9c@{K8slP%@Qe$<$c46>>EMUx66qBE>emnre6%d_KPLX1kmo94@hRkfD~5zm`1`t8!HDXl7qy-Dv1`2q#>(G8k)hXVVTl8l80xJ?6rZE5!s~t zw29P_n@JtDm9)`0QZDIZ@<{*rH`2ZHvH9%8Hnsp|Tp`N%-6+0$uus^Bed2!Xeh08m zI)uajFpkMZIHnxMIrSLMfa5r)oxnN07&Y)u)ETEyXP!ZwbryB@dDNg1v^k|{!57d% z%FyOrL<=oPn_q#ppb~B2CA39V=!>tQFR4ZkyNbTF20i>5dPFVyvg_!}Z=grsM31_K z9(@}<<_=nH9a`L7H0wRI_Je)4W7L!vaw$~^* zQm(XJpyWwAqIn{#PtAg!PUX5VKH9`JAf}OR3UDpMLHw3@m6zskw*n3;B?~Y)9 zo#3E!=&s<%JwZ{u;OKq9u?K?V4T6&o1;vj9r=-)51!tcaoNF{Fd1_Gl%;3UvgEFbS z$)w_iNoBK1)k~AhEhg119n`dTaP3tGwQZf;Xz%3a>rQUJ?xId~ao6ag-h9J@jyE)P uzU7hhr0X4xZ{G3j?R%Quy{Gy82VP38A3oCd@e}QzJ|RAT#*{k0eBob-xxZ5Y literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/diff.npy b/rio_tiler/cmap_data/diff.npy new file mode 100644 index 0000000000000000000000000000000000000000..67851ac042d51cd0bab319689fd37dfc9810d850 GIT binary patch literal 1152 zcmbWr={FS!0EY4A%d~5gYATU*$sNfcBg06P5#5kNlI2Ra%e5q1vXmvsmdFx0x5cPb zN{p0@aSS0!QldpnP$$Je_-Boo)7OY+jftQ$myFI;WMHHUg8i>slZ4@5FNHj zAXE`}OQfMv_dqv^)Jy!2Te|y)h`)M>k9&~#>(|iLHxR1mX$nLPzMb_cM*J`kaUgpH0tY}y;l z4^C3_okQ5XKNKU^FpS;8F*z8)&mKqF>KVy4aTJ!`(d_Vv!TNA4HhyvJ@;}b*z z3G4|@WUn*{r_htQgeT*ABn7vlskld`;TfHdIOa5mj%DB*cLx9XECLg<2};UAdh#rx z$$5mQo+BbHpUCv{L}wHdd!~rEtP^g;)swlp4lM5BMDXXle{Mub)H)^K{?l@H@2+nyGJWp`odjhs}TTsHL6e*2lE8b<+Cy3GJQTbaXwXtGkz;r+qx@eZlj- zm-P1!@aokduU`)_H1w8tZ{IWgewdLDBYYegW&Gn9lVjt^CnlJloa8ULoKI77K2J^Y zW%|G5eEHWV`79sj)8rV_uyv{6TML6HgyE(%sfTS8F{TEw!{a*U;8fO>5&#S{~e>`FTVTNTUAKS^#blx=22ad%dM+fR9!y94cTd~m8bD*Sqc@UC%96Q z$fcrqWap1jo*zTmxhP7{Mo^LyPH|Q!g_*$=WJt(Q4x37XNgiY* zxN-WpE2rXINQ-qMCEAhXCG==jKXw5@ib1rHcb5LDB Qn>FgQP*$7CsmKL7v# literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/diff_r.npy b/rio_tiler/cmap_data/diff_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..e6e06ee21230411247f687ca4b8ad65b4ac54351 GIT binary patch literal 1152 zcmbWr={pn%0LSt6&33DFZx=~J&8jTbPL`FB6-iP^8fGR%hM6(BlcOBTRVgWvN5`y6 z5otwO>zUP|OFE=W$}wzu{ax*!u)pW|zW9A|UAMTnd3`rZJt|rtktzce0+E3rCVYiJ zXdsZu6)J@|#80k}NWZy*I9Mqiab=)5R66oa%q>?64J=HB2C)YJbK~YN{GRznqgh}) z2E)Z;F)|s4vFUgOODA9|oXAo$J%r2jFk3N+<>r$yx0r&3r9LZHO=b1!X^2GAShHq2 zzgW${#(E~UHnXs^orV3{**LEI0Vn%8I6KT?!}__nI?cn)c|PtN=HubA0MCsEY;!Zj z+ue}un-{Xf!-$=pi}2rSjAWYtnYRgnK1)#=%H;QldRbjqxNs&WpqGJ{&pV zOJ<@U*~$Lo9F%Z0MaJ>8K=KX;aWZ2s`I&MGvcou&qoVMrnxf+o6rYHuaLQQGF$!n(_i}T|Yx@Wf65%=eTpT zl*XD1H2tBW`F0sC^;gk0T%)zAlDo~-+;6F&O6CDr#;>BYvub#Hj z`RqPj&)azW@-go_+v)D=py%yNKELmzx4Vn}o_FXzePFQnBSU?k_%hJTu&$5c!2!Mw z>i9bJt-=2q9vtM$i2b9}F*GoMuD_pw-ah(1_wu>t6Fnb$=>E{n`*$CB^X46|U%%ni zt1e!==;T?)OP;nr=kb#c+8(uYzwHTkA3Q>P?;$O%4`|ljqp{^KcbfmEu1QO6Lkl(a z%~aR@$&K1ZDsDAUezTq{RktattVL6Ci;LH4D7{)u$>l1F%PKjmso>1TYZRO>C%^Ox zc_o)QR$NAIk%sKTOJttDKt{oN((_A6JyF7;ymKTSDk` zMKW8$lGrRyWK&228-owv5)_Z~?l{&5#^NB0VVyLZwEK}>q&Iqjh)QEh;S+!k- zrMHrwycDe18pbluP=p?GmTV5eWYb=Z-GVW44Z_f64-1?FnfKc+=B$@7+d;}KdkHh` z{Fz}ZW`>O))2)4(X63_FkvIB3Z$p2TCsQmvm~7$BBy%_Pmb;>7=EB4uotd!IiSee6 Tj5D!k>|#5{EV5p@tE>>l%jMk7xXCI41x(?Hw(T~Z9*-+?hQgC%4tm~Jz7x8 zT2V}IWA==8d}emw?b(T!+>YGK&MY50o(elNeeKMcV`sXb9glgPObh75eL)9q3p;QP zY{z9$JI;#_Fl9*_lb5zJY1w`zE^ozYWh)a_?PGjU3*%M`YnvGx+>GP8CLGuA#UVrp zZNy=NuxSqtn}sb6IBXTR)#I?e9>*PZIPR=tY*;O0chxd3Tu{|8KB9&Rf>WdoC$)`< zQ8p$;S2Hy*kR-EIlxFlF{eJ;_0TatyT$rjvGEKEza;E`q?B}+FmJ;Th5 zOfxgH1g(izbtXK8S=lD!IYO=puiYlR^Gx{Uzc9PNgrZPFQ6!-(mhdeRN+n(s=9CHL z5`GmzrNmsl#Js8({0$QRMu`APV!lZ*8(ClxtVR|-S8e2Vn^0pUuvVxuvZ!8YF!IJ8 z!>GlL1{Uu%u%t<7Ht=Rk6-)OCtyL`BFSJ#${D6McigrCKI`pjUtYnp4c&n12w}pch ztbV70HHU08m9xgA6I?O4v<(QxigJQwaJaOrL$ zJp;+~4y4d`FOB|t>0G&=$<_N=Tz{bB#)BMgJxvBkcWfC3_dR9@#Aua xey-%{ke=Zo10zo)etlx*x2INqe`e#4XSMt}T*qI-4gCE}Bmayv@$X0r{{b$fe|P`@ literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/haline_r.npy b/rio_tiler/cmap_data/haline_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..5b54d11e251621c8217da2a3c155b57247bf1e08 GIT binary patch literal 1152 zcmbWr`BT(&0LF3qwE=I8Ltue$ITjKXHAoT_y^ho-2MQ8V2qJW(Abx;i#IHA;Mk74EAQvQ>@>S%K_-?&W`{+xTa? zg};Ak;;*R&{+z1kj~8|P{-TE8o>%efGd7#7mil&W?Kbbts1;qG^}eDnl!x8ILos^i{}w79`!<jiftrv6>?vlhRt)P)uSutxxxrAGpP%5#!L@1Vctw_RkMxlgDfrKJo z$dho+)!~#g%Q0JrLzWJCrjVgyS-K8;wT@Q>JC%^8$2L`uO^O~_vL5TCSyqXaSSD1m zG`m$UWuw=iLwfl$ZAX?s#zRf&7!ax7KRETH7p3OWxg;kNC>QB z?qMOI4&y`h7$2<1=)e(-{Du7u80{1GHe$3#*wuuQpWxe!@lIh!3v;)(GH;u(rH%PM zZ7kS)l!cqxS+t>@#oos-S>M4DuMSMt9mmYG6LXJFEY@~mxuy#%_in6Lc4Omaz;?L- zJ68kt3IofW49Fb}ILHk++IQn**M+lfCkmSmTx9LIShwL~)q<;KlhA0LO9naj(6jNb4v%l@m#&`AG?h2I-2B#z98qG)Ol$D|>XauA42%Orj(W zNm6M_WS5mavhU+{zy5{$emtH(ykAKkKJH#qerXfkCRQG-j0jT6ZDsO5qK3*9GWo19 zRir8))IUrWto+$W2h5L9NB%TQz=b*Ne98)oIs3 zL(-S_9X09DNsEr1wdvGFm(E@F=+aF_*Y5gs>tR6m9s}vo(~zEOMyT~NrdMwhdaEl? zS2smNV+eivn9;YdIhvZo=%;CkRzEAWw5-wAwn0b74qY94^mGL>JxBV>oY0p!qu<{J z1N~79Fc`x?16K?OxFH`n4!NN_Muwgk%e^o$nuv+9H-n6QP?$`{bdWEmim41X^<#+X zbj$|(V>VRFr zHg+-C+QnjPABU~OQtU)Lc8<%jAF%>^r&W>!?48%(FmfFZF6(g^wGoHWn-F8RAY2m> zW0MeWTM^^7BgXGQxbH-G>_T|{gYZg5OxTT>xEJBQ4>4&!!sh^D@7a6zVBI7qoHs#^IIS-F5d3Yw~Gwz;Gc4Z znTJaVNG&1oNC`n{R|!6P73Hx~W*skO_Q_J_oVrFx`ZeaBE@NIs84J#o5t>;}*x7Qz z&sDH6s{&Pa1(D~k6P0tF=nIuB%B>{kViimBs))_6BCepCrG?eRU#ekQQ4K3D*Rt|T zEeR#HtiD>u+R{4KUAw`CvKwqFt7mh0J&6@JNxFWMZIumduWDdt^(}VQ+#|In{q=V^c=HY^4R=Ysb&s^$_c+#gpA&Z;aO&O&ZEcV zHa#J)`6&gDpHcYaIYm!fD1O#L$@3SKw!Eb5#VaaazNYfk8>(KvrRL2$>fXMm{@n)} r-hbrwhgKRtwsN=i6Zb!T=HcfrG=2F>^Ve@Y`SzV>-+$2Z<6r&*(C3j% literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/ice_r.npy b/rio_tiler/cmap_data/ice_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..9af8a519d50be18ba6d38c42be44cd5c91c34af1 GIT binary patch literal 1152 zcmbWr_czyj0LSs}xwpNCN=n~|FQTN#d|M?YBXUCt<=YM+4VT;A%T;o_+DTGT2?-e? zNrXgJN=tia-}Ahm{)PKG=kdeq8SUim=;HZHhp-Oea(_k0ykNPhO#a7;v2tCRe12eX zXs};^PhhaW;%B$>TNiNX@$sRKI;s<(qd@ynajht2dOrd`;<#SCq89 zr1<#@3ZJ!6@U)G*C(p@!{EVE|r(`{PLgvHAWVE!B_Mny2=0{v?dPquR3(1mm4G&1F zZzl166A5)q#Md@*;$8#CY8p6tx1Ph*^~6=(=U`E!CDm-XQO)M!DmE5XvEh0Z>k2Aan_o#}-W?)x?+|{if;Bl6tj?}r zWmY+1SIb$Ed7IEHw+YTDV|jWRL1|?KUcN;@>MfRCDrL#VQWjq*Wl_pa7AD_h!TA#A zpDjU=RD%DR8_Y|*!Q9iu_$3tMd#V_p_#)<Kaaab8y^~!?fL!UD-J7 z%x3Bi$+j$}Y|X-ci)8avCU3fm-NsDpHe@nsy=2`LCa#tIc?H|Z3~VDZunAAcW=%TQ zt0k+_uwI#lRoG>$R!Blqu?&#}OM)(88F&d1a1pUgvh)ICiDYpKVo@?;fn@%9ghJwf z4l(a6Vy?t53E_JNF((n>eHt-aGAjY$bqe7bkMKB&n0W%>ejG957{cu+!u1GZ`XPi% z9K!h@gwsKUV=Q9Y0fa*gV(LD`lxT!~6k_sTEbMk;F=-bT6L(-?yB%|zt(aSHmTbb@ zY6E7L>oF5+F|~-q)I0)Hvv5qzR%2qi3S*NnjEzH?Fd;;;93!JZ3=IP?9KV$D;}%O6 zG0tEC24fW%==(EPe=hoCe9<56!x%kpM(fQ&PuB~*Q6A{(%w&|dJ388K=xDj3Eq6gn z(;2y@BXSJ~G)GQFL*1T{>XT7dn}phkiKxkJ7$LJpHr$fosshzv<_sHV#?YZAsHhmD zGQ@}>%7!Q_k7Mv)0|pJ!XW+mwC@JYNKuMSW19a%uUz@)DwCK}Uliqza=+#G^p1sxR q(Mv}6p2O+ZLzS-Ghtj2+3Z1(u)2Yi~$v`@GR^qo#{rRr~jOC?Y*0-|32oRYlC2 z+9x7X6_J_iDsb6zthuiAjQ@I~Jv%=`dVZEYFGGI!sJ=0gs^}h(s$$ju-0L0B_R!I= zn~tY-bUdl0)f zLfVflp#A7P+K-gcet0hJhe~NXIES|HN@zPUo3{PMwC$Tk+uoV9?wLXB?&-AFO{2B8 zkd|FjX{jloWoJGu+g-G5n?m!}JesR>X|BqldCO#)HfPhcNo<%z)B1_LS~r1LYqEH? zdOVFQGij{MpmBv*p3ci&57ZNjQ>*P?L8EKCZ285M3DgkIs6PT{6j;ZLxxsqQ#_9QGkbyG;4V?bW zz^MU7evUPAvcHiN{Zjc+9RD}-ACPPM3d&%u{s z^Scff4V!2rMmXoDov8Z^{Nx4`g7It;AK+G3q zT^-DQ!$GMi5wk^cxPzi_J2S;}F-;VP+b9ULkuO|fR`Nuy$O%g$TTJR=VWP+q-I{*Lx literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/matter_r.npy b/rio_tiler/cmap_data/matter_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..bda329433e36a8a861192b42a77fc76539c03d15 GIT binary patch literal 1152 zcmbWr`(Mom9LI6{b-zUE!feZKVQpm9T&6@qp?uH1bL!kGA(c~d4Y@X3q$^Z2zYg$&a^sH2CX0rSNLqkFX{euSv`se!p&%Hj_V-!O? z!U*yRXK2sS1ow;}q~{nydyQpSuSkZA5uW21=^4c+&+&wLP9WTCA`xPYS2Sb2Vu7TChm?l#F5||-oinKn7q>GF`W-^6CWc9I-Epqx=nA_LNJh4D5 z6uEtEEPlhr5|JmCiRJxltn6oJl~^tE-?Xzv6o|EN*;y|NMbX=KHi%+T;%{f8*xcXF z7E#*Y#rKtMAN_BvhU1IkD3pL`affi~9S*ROirv5`S zUk94mC-#4o$TuG+azGp$oWQq35;!Cd2PN?RP!mT!F>y55#Iax_KZF=L9%|&or}6wa zES{6%)Nlhok1%k0q=7S^={Y+}&o5zm&V}nZKU&AH5jrl6(Q?nyTUtMW_^RYZUHi74GVUUg1xJ!abuf zDcny`_{%IT3JgBo(v)weX^n-Z0xK`qiuE>L z7TRepN}_o~GR?)JB!yR-rtxZXDz8eX)3S92E!$?&QkF)`jx<_#&Z4zEoz{vBS}QYY ztC~$)wS%_ZS+vz;)3#?0?X@|y*UhE9eje?6=hLxo0Ui4n(QzP`j)RNo_-+XuhnCWL zIFHUF%ji71oX%q_=sdoPt`n>2`YE5Tlb_RdY7Jed3+Ott4(HkRIL{U0JYR(K!WTF% z7UR5Bg7eBoTvs>Yy0!(^^-^3nw&J?E9oMZgT(@`NzOxhe-E!RbDsbPg#QmTO_rq%3 bk9Og1sGhK literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/oxy.npy b/rio_tiler/cmap_data/oxy.npy new file mode 100644 index 0000000000000000000000000000000000000000..89e6e4eb9043cdc68a5c18c90fc91063b36a381e GIT binary patch literal 1152 zcmbWvhffrC7{+m%lsiVjv`L$4w57u$DNUOg@-uFq~=Y+ZKZcE1()3^1ZNIqKmm;A<@H1u$Jm$E7%DRQUja>7wJp53T}c- zYKW)A5N|;)_(_cL7XpPKAw*{_p@KqC3K2r2juHD`G$Klf5qq4DAqRzc@qbu!Ch8iH zq;Ej7fj%ildZez^ryN%%(1kvz{=7RD=RCk_w2#O+8P@h zYiw<8u(z|r-rf!e2YVbH9B^`S#M#*i7iVW&U0iT;bH&}w4G(vBJUra-l*#b&^u)`{ z6K`)XeB^R`eB}80`rzm5i@(1g0RjF51_Tfk7|7neK?DcyB_ueQ(2x+q!a`Amg`rd^ zP%0IKhwmdIJe|Q3nnX9VJ9Z5gQXjTx=|Hak0e5A0#0@oo_N} zvdGRpK~7FKxw$#y<>iupGLQWHlN1!>bLvz9XHK8y?3pv1J1d+!OJU(p6crUxTwKKY z;$lil&Qn@iLRncU7cP`hUj8!|%gecRv7F17E>cl(naauvs;VlfuCC%rO$}GC)Nt+U z6>4j*QCC+>eSIC*uh-Mi@C%KN4cxfV$W5WS=_W1BO|-T&)7siXTidU+x3|&J(ax<~ z9dvfyrmL%y?(Qz`-07yL=QnzLd$@bIhrYgE`uqDB7`VsaU_V1c13Y*z#PINa9zJ}) z$jC5bVnPfwvzO*1p2Lam-fqfw*PYM7hTvam4E;^G32mlk>Q zc!}lZC#~9}d|MF(#PZ>}DaN+UqPAomQXYrX0^Q-2}ul&H=^0&-A z`I@<<&(SV?igx}J(Z3U|`eU>+JJ71Oqn+A@W^yZ<@hxb^K0-74A?o1|P~SI0J!Ho0 z;QP$pGiA2Vl$qYm%=DO`y7L~Yu1%;qH!*$tU8dXLVXEzIrdoxTw|LZK%%dA`GTA6J iyun2MMkeYuGG4oZ@oO6xt69%j^?F9D)-hVKj(-6MysvWr literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/oxy_r.npy b/rio_tiler/cmap_data/oxy_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..8a3cd34da7418daa7bee05c529acff6e9f1a7a69 GIT binary patch literal 1152 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 T$^X#o%Ky{t%>UH05dv=lr1ew` diff --git a/rio_tiler/cmap_data/rain.npy b/rio_tiler/cmap_data/rain.npy new file mode 100644 index 0000000000000000000000000000000000000000..c4e1a231846ffe5487064df36c39587a157c3efb GIT binary patch literal 1152 zcmbWri(Aci0LO8A$lVxY=91GnzvEzS=DOsX2vKrLlFCu1`|o$^oJzV-B8iY%N(j}g zxm1$enw8s35|Zdbx>$)l+duH$*YoTz*ynj(&*%Ak(w$wMT--nF71=9B=W8(gm~^%( zU2McOowZ8mXEcSI^oqC9Lm5w)WXn);8TT3%-&5gWm zddb_y23lX$)7ntSn-@=cU0=)V=QXs{Rnzk9A#f3@an-eUjAOr%ll#y2`UW`>lYdxAJ)M>uG8$ za(P^FlA4>xd356#)z`E65ORKrC%Z77tiqjS{=9<>A^mI|X~LnOVo5EC9UDfuxZ=SP#27tNl$?IfOw zBH?rtJ5O&T?$kD7Pel@)8%b1d1d%5r2p3Ez!U;Pbj`6q|Imb+Jj)}lyCj5_uVaN`{ zCo2qnRw&*_L-7!M8PplVOg5Y(!(E6nUX9sX|K#gK}wQQ?~zgMma$A!7$=O`r7$`{VN|@r z$eju!b|?%NhQ%oija3*DqcAvHVbFGk0Z|J5KiQ_xFH)gzgn~u5jD=aIk4XrV=^ZK< z|D%YOg^&<>2Ma+V^a&IK1pg2${DQGC1k+dO=Nn9apCATo74$(2+!Dkf??4871v11l zkk2;g z)>+Rur!9gLysFr$QwPX`k_U@<`Z$xb;EOJA$a08kJ zuEKhx`RkD833JyX*{(sFhtd}Bvvjl01JEh=7S-+Tm30D64NI#>Mt;#Af zdb*Xh$|}HMj56vJAA`|f|EVw4g+=N`j||d<>&2fuWA+?t)vPJjswCC_+%QWM8!S!d zqBaxEZBbjyLp@PY*`cwVk47zM?9oUI&}bJTO%kjYAx&P4G{pgFs_@McBx^^cZ@1{lOK~?7 z)K!P+Djg#vJ>xv}e7QD&v0ed;Sr^C`-hqr>AIPW;L43Y3 zh>@Fu8L>H-;Xc6(^9^CBPS_H{5Wf%x`-d_}AIiW_0zw%O7{-7gAvlcwAwsASCde}V z6~XYIaG3!Sf>CB*q!1-DC|Y4~jKYvuAx>eaFnp`Rhx8)@Mr|VM~#H$8XSR}dCZ6=dcrpqT$Sg`=Ur{1iKP8fVHi;Y|_vdZo35Sc5IZ~WL{x2yUFWF9k zaPr&^PM=Gq@O&yo=XY}U!cK}ycTrNB#<`1WT)4QKi5BwV??hqB8VlwZl<`qjNu zUd`lY**>bu_H*l67Pqe*pt?MpyX6PDe?5l>6}ddD$m5U7Lp-iL!jl_Ed3y60&#F%F zysCf~znd%spWde7*&Q05-=p!x0~%jGr0LZonra@?{Q4=)wa;m(dr9k?8d~4g(pLY5 zwuZN~H`deM)JR8j6P+zBbhftA)z(gTdk24ZbkWn%3RaNibv(#E+jG<{7thKalOV@Suea|oq jjN`~OP0aJmvMj9Y%C>Fn`;K#t<2X3alk2*iyM6C}Rv%So delta 146 zcmV~$VFrXi0Dw`u|2oc)*-WHFCUdE}!7h=KNXbYtD(Mn?jy=Y=?-gF*z1>R)f$#fB zDG7oAr4(Tp5=9Yl9FrsoX_}H{8Cq-dJjWRG`IV-sD(bqXX&TzLrRzHSzGoN)#&Kkt iCgyp@TFbI5tn13QZ8+!H_nq@Rxvq=*zK`Saef|MREmbQ3 diff --git a/rio_tiler/cmap_data/rdylbu_r.npy b/rio_tiler/cmap_data/rdylbu_r.npy index b63b5547793f8bfd070812b320d7ca2b321d039f..b9313c10bb39be07e00c4adfd021d01e2df5bf31 100644 GIT binary patch delta 20 ccmZqRY~b8*jgj%);C08)zwW&i*H delta 20 ccmZqRY~b8*jgj%~;C08)hqW&i*H diff --git a/rio_tiler/cmap_data/rdylgn_r.npy b/rio_tiler/cmap_data/rdylgn_r.npy index 16de8b83d431bf61f5d74c42a56e35767b0ad250..d529f666a544f828a23bc36e7d4184c1cf147c33 100644 GIT binary patch delta 106 zcmV-w0G0oM34jT(v;keG*=ql(+H3!-+im}?+;0D`+;9J}-Esf3-g5u7-*f-B;C27G z;dcMK;&=bO;&}hR<9h$W4X2z>V*H%>xKW* M?1%r=vk?Ms0(mM+?f?J) delta 106 zcmV-w0G0oM34jT(v;keF*=ql&+H3!-+im}>+;0D_+;9J|-Esf3-g5u6-*f-A;B^1F z;dcMK;&=bN;&}hQ<9h$V4X2z>V*H$>xKW* M?1%r_g?Y^MU=f{$c6;>ASc2XNl}!g32N@#CMvo2Ky#2Ql^i)j z5l}#o`TbsX)m2wrU3GPJ&))qDz3v`Ayq>kWQ*y@Vy)mR}NVU7rQ(jQ!jxmXIY6Gzv192K7@meDZS`&#PNoOKiXC_5&CRJ}CO=K7>WE!kw8LecCu|^v?CL6h8 zoXO4vvz>`zlG(vzi-W0RnwV~Nk|$<}nKmc0#B4Fw?jm2z69o=e5qEPN1YW_OgC+GsO-qD}0LF|jY! zL|vSby3s~H6#L_i97r&5FwwxFBr!(M;bc8WQuG`Z$5M41OVe>YUB`(G9VaujoXQf} zT28;E<;++OXL2;0&DC&joQC@GYU(GbIX_X&g-K$vnvbTaxHwfzQ*mj!ipzQ8Z53B$ zsA!m}&@fBkw(EGdL+sSiyh~5>Zc(e}`5pt$_Zn!~XQZW0>^IVS zz(ngo6K#jgv>g^lEW9`>j$3(oLY%bm@|2DC)8ee1_H%YR>K$~P7Z;p#UUboUNn9Sv zt1F_xpI2A?>AL2o>$9 zeIlAh(fc%nzGtF2l)jcQ`dY*2ZwsgYg=mkUzax_V&PWEjq8R9oX5h8xjbWfKmcf28 z7{{P@G=o0zMLdIF#^e1e0q@s|c)t56O6cOu_q8D!!k^FKPIGO~?0} X_&o#PADQ_66n|ym`#T%oKiT{XZm3dY literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/solar_r.npy b/rio_tiler/cmap_data/solar_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..f8141cbd53cb9e658d27da1793ff24780a200700 GIT binary patch literal 1152 zcmbWr_j8j40LF3r)gSX_zVDmlP4Yro2$Z(zri1QQTK1^S(56%<6w(3G0@eE1i9?mj;}-}=JI1>=g|7*sQ;)>-1MEcQ7Q z6=z*_q|>E1ODlX;KF^}r6}}Sh>z?f?uk^B4mU$L?`NN`OVqJnLCW+C)TCW1fHPZy` z(h)P-4x7<>NJi^H87&7SwCtyS5?<^T@nVmN=6VyFchgQ2nsyk`wB3m3+i0r+&$iHJ z1DzVHss-Gw zqDldu`2^fqLKOlU7irMAP=nj$v_OMf^XVN8J}uMW<~%ADaKlR_0jhhN-A=s;H)_Au4>d zgcc80Q9%o-Tvf4v<~vlB(L5@(tMF1W&9$lU&>WhjI53lD&~&QtlJpW1 W^&%2#8Hga2scFw2K)y>k5Xd* literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/spectral_r.npy b/rio_tiler/cmap_data/spectral_r.npy index 246c5ae46b6e8f5fadbd363898686a558478e8ca..e51f877e358b5a5d275934680d8814a2636dbd31 100644 GIT binary patch delta 15 XcmZqRY~b85fstv-mCchF-!TCIEbayL delta 15 XcmZqRY~b85fstwQ<;{~A-!TCIEa3(6 diff --git a/rio_tiler/cmap_data/speed.npy b/rio_tiler/cmap_data/speed.npy new file mode 100644 index 0000000000000000000000000000000000000000..eb8e92dfc5c1d54d42b46b70e3be140175bdfd48 GIT binary patch literal 1152 zcmbWy`9BwS9KiARgCqCx<@@~#eVyMkE0HN{O?S!6N?9|LBa;x)fth6{Y8I-sB#AO+ zl1ZxRHfcK6y$&7Ioo=1$wU0;t!QPL@^N08Ar}w)!aN3lh(0BT!^-EVqMW;k2D~BtT z8S{rIbqZxnVsdJ7L_&CCa#VC*9~Tjy5-oa4Y(!GD*j1k1!*mKSwN8<#_@86+=5;4; zUUl&A%XVJBXyf&>1H9_p$IGXCc=@E27ms)G{9y~vA2jpqeiOYtjr87Y;OX6Zp4_hE z$*o!*->l}*jZHkdUdhAm3Lac5=fTx7?q4aT=kgkQx>j@V(n{`LEauLI72G*r$nA5> zxOFz4n`iR4c{-OHr*gP{GMnxbS#%8^tqcP7*IXA)h96S&k7 z&&5M=Txg%o`9GrhyDgG)2O~IpAe=J?!Z^KuCa3nz;N;#APVAY=@!i23YYpOPYamB{ z51@0`Bo6PKK*x@89NIC4_7;EIwvXaq^GNnL`>}7^2=+Glvb)KL*5AC@)i{)$jh?h@ z9nAIy54JVvXxgHsv0lyAdKFuKb*H}0mAX0?YJYK}rdC09ts|Rj9H^?XXXDRyR8-3; zua;7_*_L&iZCJZW!kQ{8R##cFs?vgzN^^=fnz5q7l)?%VmTxeoV1p6)<^9Q9Z%FQX z19Hj?SW>1>_BwsCO7+Ps)gxoA9*c#AKk1RSMvqh>nF_R-PG~ZmP^CNLzSsq~MJ~83a>aR}D~bhf3`}#wVZJ-|f?cW-d5RKQvJ%^Q zDr}NeND@_8C#tbZP-8h)jYYf$^En#K;xw3ksl_x_i^=S_jAOJIN9!<-(qR-S%n~Am zFGLF$J{Q7-&vcmdnJIj#!!%Twp~Gyt5Te6;nlM%PM2AJN7K@LySOy6nX|W0vrf9GZ z5GHGoOzNXXGEt4q1Yx|mdz=c}vBDVf$7m%|f8j%Sq@#on+>nhF-giajCya1GHeB#^ zM*g1QtWQAr8m~+arHh@ECx6kR39epp_%j$dIW8l@yuM7OA@p OQa8a>g4D%Yu;M@9^->)G literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/speed_r.npy b/rio_tiler/cmap_data/speed_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..697e6bf475170e2e5fb01194d8e21d8da0003d61 GIT binary patch literal 1152 zcmbWx`#%+S9LMqY19HDR=g8&g;2h_iOrlnqHQh^QO{$rhT(T|*Dap(r?DKd$fB3w9dKU)Fm=-wuodL-MQk9WWi4h6P zQF7(-#Y2@^xiUH~At@m|HY_e7GOE8%2w#vGC3<2^czl%jRi56%wQ?^vtvpTsKhHp- zut1`)MB;3P#Kjtkt2I)k4N{c^shbq3TF}UlYHg7X5!?qMd)E$`hcMJ0nWqD?VS<3)ixi@SXbnbl-!hKTVEm;9lX+@P=c_SWpvHWm8y2x{SjLHc zabj=03Y$eLqzOu7iArpfl-MnH#a?hsc0s@r@lLGwm3iIS8K>w)lQ)%a|+~epyn+ekWmkwuFf* zZJ4~$nyEQf_^+}eV3j3-t1XzGYfezE8NuJ1F*DDU*?A^}{9sIIz7b(Uc!42v3Ji!W z)F-+~pO~V7%v&>%`D^u9D8v=(vPek$QHP`w9g>BmKk2Y+oes-|wDmfquh%7GgD#n+ zx~wSGBWt4`*&7Fvvq_&-n+?d_Y)D?25&31t6l^h}Xsan}x0+GB&76{L7OdND#fEZg zO3Q87R3V|PLdKS#ZP`|7M|q_^6;%#YR>`UQ#fj=_1vS;q?D*A{T{S9dYuu>Yp<(w< zEqivl)3D2feYKu6)()fTH*faWjo@J2NSb$#=1{#4hwFW5-7|)^20xDM9Y_1#2^`%w ziH^o89Q)m$<4pmaXbR-y{^^`L5X9+&!JKKH#o0q4oNEc?d`lP?4u|u1YXlenh~iS) zTrMA($CdU4bRLbR^Urv$b|i4^SQ6KdFX6_C6#hAx%FVyhxOpm_TcFuiJ`J*~sbl3CZaRV=(Hu9>ciC51K@Vd8|zUM9Uy=>** OS8cp`-Oii74*mlg3{o8c literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/tarn.npy b/rio_tiler/cmap_data/tarn.npy new file mode 100644 index 0000000000000000000000000000000000000000..23dd7d1f47ad1d5192d47595e66d71ff739c0614 GIT binary patch literal 1152 zcmbV=`#04G0KnUCJ-A=JM4{_>(WOW#tEShihp5C<#^qkGyt+4!xG2JiD0+z$BgQIA z)2eB`V_7Ptk`&X!Bzbjuoby>bXMe#y=X`$nd~#Q5D2#1eI+ zjYKMz_=hXEC}m;Z;YzvU-~Y8NM5XxrRe`by#pgD+onb<$wwHyYS4AH&=g8q8a%$pU8)3ta@3xN70FdMwMg0ZPBAM9Rg)C=7}7HzGd3 zm~DY3BnO$08f;4XCNnZaBxHx0vpdX!yl_kQM_7`-c^ZXEDMwURlx(r4EOI&(Q8rXX z+j1giCO>br<8U2*R`K`e&ZxB8)|sfSWEYx-iP(PX>Fvht%!#FYyBULPho3|nkk6~(93NK5UW}G*WQ^qoG|WBG UH1j}YvJR2aS_JWG1OpfT0dUIcQvgdLWo)}ElHAx_B`*kXaB)I&-41>^Uhnn-pR%Ni&4>|;v_P;(oZ3=7fV!8 zRuZXL;vb>dqVNg#icrYp|MstaLY4B7t_<{vl#hHf>)Ccvv8}mO954Q#8!H$%BZ$`^ zGFpeoWIgKB+)y)fXPm_*#!5XHW9iA5S>G|*+KbV)-i)#HVeH%y_P&gp?~B?(Khzh= z5G|1*ES00N+#gK`f5xu}V1i>H6P<#XxH^bQF2QK64PmltC{s3sqU{!jwtF}_n^n4ZQ%arK*Z^0li3WMNi3_@d=8Xk){A{N8VTQO2@!#FAq)0j9Uu`0~B zshF;c$1))vtHcCsw8 z#=JB<_od;zKOMiqodg`nAh;-#u;N`rmh3`Vnnm>CY_^u|MpeFt#EKk}kLHqkd@t#h zd1Ri*C%bANIVbm%ce;T6)rA~5bAaNSB1(TgNLg($6~B~l{Co)~E*|1!T`AR<4pVda z2(?$rIDf62U$1}9Z#OHrR)36}4aaG?T}fl(30j(}Xl*`4+ns72-L2vAy;?fjF7W(e z9bN5L=zemYmmT%IdfrG+S2Mlct@OQoK>zE<4D@y|*w@8S{|i12^ziBZ8$N&NXLx9U zzdsI+`0$^h_Y4odV|d^#pZk0H)c1;yz1v?nkI=!t|_^YLko~8@DZmi{1Lk%x(ou>Q7kNkPHlCH}~>AX}%=fzTnMPW$ zDJelFBn6rfA7D(JzY(!=L!xA26n;~Q^fe&NN1tGCeFD7nkbCOl>!E|!CT%=6PGO__ zWZb^h!qsgOYd1{9*>wV|){SSyT1_0*XtK;jgT>AQ3!OyFU!~4GM>XtLj>F~~HLM-f zn6+FT%Vi>FED<4HBw+ECfcXLevo8fC^8`%iYG7igfw8RyMm7S5RsvIJ3K+}~(3cA6 USqSKuiO`-VVv4CcTE^=915BuregFUf literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/tempo.npy b/rio_tiler/cmap_data/tempo.npy new file mode 100644 index 0000000000000000000000000000000000000000..270f62d081ff56690e2af231380f259cccf631fa GIT binary patch literal 1152 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 literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/thermal_r.npy b/rio_tiler/cmap_data/thermal_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..ce532a9b7f18567b85decf9c5c8949b72a789b8b GIT binary patch literal 1152 zcmbWy=~LBZ7{+m%z|8ihnx>|ShV+OM;rWRK$iDCU4#AOgSOgDn*hDq~*>?{6nq^sz zj*ewnS&oinWm#4_mRV*Q3W^{*zW8?cFZ9fOUOe~A^IX?$42ld4iM?+{;ffNKR+pDz zP}!TQN((lsEX`D@*@k?BMxT^z(CYr1dug)rbTZFN*W~ErzD{kk+0ty2g{4`U+5bGN z$Cl%`u^7wE`54CMqM4Y9Vq!XqTT_wTo{V7fRydR6VcfYH%AK(grmhDw{dW-4*8;hF zRs0da%oTrTF8eY2t1q*ce3-i^E_gHllNa;nJ(>T(lZA60EPU(E;#u*v8;fULS^83( zc46t1IO)vt3GtZ|%g4nh;+P}%J`zX82V1yzL>v}}#6fXD>=*Bfed2AgSG+0q$eU3y z?8x$v{52r@MXzM^IJ49xnMTR)bY-z!`n0*T&>|h1rEimH@M5mso4Gn4W@~(z+3m+n zwLf>O0+`+<`&R@rRUX2fvQQ>V!?;}%&aIu1OcX~kz9X8OMKRncjAN`Io`3QaxSpTL zUwKJfGbHn8u7;~QTlqal%av>$zv)xCtWV>Y?de>~%HU#FCKocZ_&IYsKW@`=J|mm& zGjceWp38UX2F|AC@l9GjU!@jsCbf_+bVZ!j?ckJl2Pd_~oJiTp=P4x|-&)G2;$ux2 z$28@9sHxy+as}@v@8U>OC5OeK*Q+=v4kT8yU%Z#Nn|%p2yd(C;*YH++Eqmf>c_Xfl zk=QzhW9u1=sb@g+MK{nZdZHTX62{0zIwG5Bk7%M*w1hX)EE>a_X$WhfF0_SOQ4`Wi zwWtbir820Mil8>i1KTJQB?0a16vh7S6!~>fC<=T#$rA>jPIA1BWDC8Qku1+HGQ~EJ zZqnVmNptTZ)vX7uTQ4cDy=YweNOtZc$+@3Ir+yL~2Z$4~TLy`C7$nMJhzR>3!tI6# zwHqe*wPAv6M+gvpn@8~#-ZrCn3inN;xC&=w6i4Bpj9{k>V=HXbgQ(R5SS$TlDZOk^ zy0K7mHZN}bP>>Rg^s>v>$A z#bX;YcywbLk63GY*m^4uStqgj)kG1;gH|!DvWjBWD-k?k87hKVxgk*avvR#Jrt7^h iweY}nottpMRON)p+AYE!lQnjjyljh!xefQ5EBp(sagXQ# literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/topo.npy b/rio_tiler/cmap_data/topo.npy new file mode 100644 index 0000000000000000000000000000000000000000..dc8d57f2ca7bf416f9701ca01f431df9a4b0fc39 GIT binary patch literal 1152 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 C*oxNx literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/turbid.npy b/rio_tiler/cmap_data/turbid.npy new file mode 100644 index 0000000000000000000000000000000000000000..ce9e3d2d27ae20016bee060cf17b2b105e17225f GIT binary patch literal 1152 zcmbWr_dnHp0LSs}ulHZ5%PHd+$3F9Wj=jmsmNJiokVC^NZ5fGZAR;a8sXdH}qBKy_ zka*nrxa;TF{q!%~_v7*W;r(g~j}41V{9)0CMP>3#qbZ|EF3IHOB`$J>OrBLxR9uvn zpHfhiY5d*;((+73(M{QDg+}phTvcj?Olhl-RmlG5eq8vsmxX^$GynG~=Knguw?BKB z`=gt=-@EwwTPI(C?O^toc4mKWcW-wv^=2DWudA4PwUx>7N+w@aFfmrn#AqpR zpKs>vvrW7i*~pvW5?((o=JjI}uZGt1YOs*;fda<+^BI4X$IFMgynK+ui~DPNaW|W> zJ6Vj~HZpoElhK|d*cQUW z)?gkS3F5)wAnqRu}x?zIGPui2lw2mHCycg|G^(p8kkqCHQd zO=!)PIFci*l{hRM%9c2|MxrH4qFFd#lxWJ7Xv~n`RlV7wS@V)TQXCU9F== z*t<$cb+V2o>)vV&Bt2~v_3sKh8_ z1}Mq!cOzX$^K&CrNbz-LwT~;Sgk*0Ql7vJr7ZN;Oi1&0R&cm5lA;#T_XoC|ggebiu zkwS#zNVw!cn9hOaS_eY43PLmrf`uTpJ%K8F0#tVREA8+TeBEsEaka%;@N%)iQ}A$> z-lA*9N l$KKK$I}3AcEzGc4W`=y}Pgo09vL#rWFTuimG0V&r^B-s#b1eV> literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/turbid_r.npy b/rio_tiler/cmap_data/turbid_r.npy new file mode 100644 index 0000000000000000000000000000000000000000..33385c09ea70e001ad0a5aa6dd8bf6dae275f941 GIT binary patch literal 1152 zcmbWr_dnHp0LSs}ulHZ5%gH*%v7PljHrXo~DUmp`LPmC>6e)_5CTYw?OIhLPtxZm=ExQNjav2!`(m_I zZPKz|IIvkub*z>e;ouf6wQ*Vw35Vl_ty=05BO6T|?@9L&FS?I<@ub00tTaYy1aDyK^l7 literal 0 HcmV?d00001 diff --git a/rio_tiler/cmap_data/turbo.npy b/rio_tiler/cmap_data/turbo.npy new file mode 100644 index 0000000000000000000000000000000000000000..29c4031efbf8f2c275f26e373dea60d271bfbfba GIT binary patch literal 1152 zcmbV=`&Z2e0Kk23B6$o$H<3%$t*Q06?^`O>{T}1wWDZB$jK+1^5m6YX!^YMzW+(5% zIIOL+rh^XJs%f1(LZf+=TBRhSlHT`r@Avyz`xo{(=kvqob8x}pxcCHN$mStms8?Cj zR;H@WD)shFA?g5?dUZL>Uyi}YiqSV2lYc7afUSfD?I1k#Yr=JVnQh1GW;tv3ztF%P04-tf<7YvKn!9 z9b!@g;+iJJwa*dPw;-mqB5rC&-0}u-TNh$_58{qK#II~vcH6OJII!$-61z_#X1_#q zrp%m!GEqllB9F;LoRA4WDG_$siRnit#-APNf3c(e)rKawkC5}d1m$%Tc&U?F`5nAl z(2ieGE527=@=nQfd`h1&{aPcc8&B}QRm;@!8m8Q-!mHvTlkeTf^Fam5M}MKLx{XJ5 z86Gv)@Te`tqyA5n4OdV$7UJ3TJCmQ~&)B%P~2c6H*kX zqzKM9XY-RYjBJOQ9EXYA0R!jk2J&orF4}bD_vrMO#5NtcGJof@upXt?=W z!|iqrcUrYnywY;7Ma#n%Ix3rWJZ{oa^Hfh=gPte#dKzmDG}Rbrer)7Lm64W5MqWKI z(RR;7dxeRPJ0{+go9Vh~ru&AOo@-|MO3n0_n6MR_u>Ub=p^<^#3^*aO|AH zK)Q;7ZPT!S?u~8Z6#6%K(Z6moeQT8TCV9|fokaJ_iFB=)KG*IQua}Oceeqkg zeK3Ys@uPVeH=36Dqj>)QNSZ}=nqu8~8a;xBC^zaO+^7p5&OheiR2zp;r5{G6)|H2$ zuG|lHJO$1v z1#%||i zr>e~=b^4|db%08}a$V}i)TFhE>rz)(|8p^Eb(-~!r==vVx4wD5P@O(NrS%U`WvKpV zZrfZGWVkB$a+re5;R0DB1a^-U*y|>cJxbufXo16H1dfgsI6h9`?LqZ_o_ZzwnXhf+CfD7OM#_&dmj zJHf8hgt}6zb)`-}jC$iR{xJ{dVfb(wBS+8_HG;>{BWa0sqg8a{>HDK-n?IW8abtK9 zKZchdjHM&tEnY1dN9Tv*>00(S-ODG^lRSxD>ty;;-05GXWMJ)71~zzL+vth?b1w$B zO=mDeg=5D|96P;ne&d64moL&DHPZKfNc;Se4$eY85`cUx5c$M=$ftska)Oa^Ly+=9 zkxpxHp3&kwr^9hxkK=-Y!QTwnON`k6Fkve-F;HfrzuZjk6*E28%yeHj^SaVZXO)SL zY7;MSn|N{8MB69W~E%+-}oS{X$Ds zyOx_B8m_<6aJ5sz`GW@X942xdW`1&p zampFN2`Q3eQWQtzXb#G;?2|?I%5&K*&nHWcBU6rNhrEb%c`;k$rEHWxW`mT-8tGF$ zldM>sDI_^pv&^xMrH)h*1~;?NzLhw8I`eEh5C?V=-JiwmzHbTZ{SISqHoBezgmxV! z==D(oI*;T3>Llup9DH8pGP6Ao)$@G3+RifVSpgocg-m@?#FUobQ8t&LY`TPd ColorMapType: dict: colormap dictionary. """ - cmap = self.data.get(name, None) + cmap = self.data.get(name.lower(), None) if cmap is None: raise InvalidColorMapName(f"Invalid colormap name: {name}") diff --git a/tests/test_cmap.py b/tests/test_cmap.py index 8c30ffaf..56a2f322 100644 --- a/tests/test_cmap.py +++ b/tests/test_cmap.py @@ -14,11 +14,13 @@ InvalidFormat, ) +colormap_number = 211 + def test_get_cmaplist(monkeypatch): """Should work as expected return all rio-tiler colormaps.""" monkeypatch.delenv("COLORMAP_DIRECTORY", raising=False) - assert len(DEFAULT_CMAPS_FILES) == 167 + assert len(DEFAULT_CMAPS_FILES) == colormap_number def test_cmapObject(monkeypatch): @@ -26,25 +28,25 @@ def test_cmapObject(monkeypatch): monkeypatch.delenv("COLORMAP_DIRECTORY", raising=False) cmap = colormap.cmap - assert len(cmap.list()) == 167 + assert len(cmap.list()) == colormap_number with pytest.raises(InvalidColorMapName): cmap.get("something") # `register()` returns a new ColorMaps Objects without modifying the original cmap.register({"empty": colormap.EMPTY_COLORMAP}) - assert len(cmap.list()) == 167 - assert len(DEFAULT_CMAPS_FILES) == 167 + assert len(cmap.list()) == colormap_number + assert len(DEFAULT_CMAPS_FILES) == colormap_number # check new cmap is registered and it didn't affect the original Dict new_cmap = cmap.register({"empty": colormap.EMPTY_COLORMAP}) - assert len(DEFAULT_CMAPS_FILES) == 167 - assert len(cmap.list()) == 167 - assert len(new_cmap.list()) == 168 + assert len(DEFAULT_CMAPS_FILES) == colormap_number + assert len(cmap.list()) == colormap_number + assert len(new_cmap.list()) == colormap_number + 1 # register multiple cmap new_cmap = cmap.register({"empty": colormap.EMPTY_COLORMAP, "empty2": "fake.npy"}) - assert len(new_cmap.list()) == 169 + assert len(new_cmap.list()) == colormap_number + 2 with pytest.raises(ColorMapAlreadyRegistered): new_cmap.register({"empty": colormap.EMPTY_COLORMAP})