def point( self, lon: float, lat: float, threads=MAX_THREADS, reverse: bool = False, **kwargs: Any, ) -> List[Dict]: """Get Point value from multiple observation.""" assets = self.assets_for_point(lon, lat) if not assets: raise NoAssetFoundError(f"No assets found for point ({lon},{lat})") if reverse: assets = list(reversed(assets)) def _reader(asset: str, lon: float, lat: float, **kwargs) -> Dict: with self.reader(asset, **self.reader_options) as src_dst: return src_dst.point(lon, lat, **kwargs) tasks = create_tasks(_reader, assets, threads, lon, lat, **kwargs) return [{ "asset": asset, "values": pt } for pt, asset in filter_tasks( tasks, allowed_exceptions=(PointOutsideBounds, ))]
def tile( # type: ignore self, x: int, y: int, z: int, reverse: bool = False, **kwargs: Any, ) -> Tuple[ImageData, List[str]]: """Get Tile from multiple observation.""" mosaic_assets = self.assets_for_tile(x, y, z) if not mosaic_assets: raise NoAssetFoundError(f"No assets found for tile {z}-{x}-{y}") if reverse: mosaic_assets = list(reversed(mosaic_assets)) def _reader(asset: str, x: int, y: int, z: int, **kwargs: Any) -> ImageData: with self.reader(asset, **self.reader_options) as src_dst: return src_dst.tile(x, y, z, **kwargs) return mosaic_reader(mosaic_assets, _reader, x, y, z, **kwargs)
def point( self, lon: float, lat: float, reverse: bool = False, **kwargs: Any, ) -> List: """Get Point value from multiple observation.""" mosaic_assets = self.assets_for_point(lon, lat) if not mosaic_assets: raise NoAssetFoundError(f"No assets found for point ({lon},{lat})") if reverse: mosaic_assets = list(reversed(mosaic_assets)) def _reader(asset: str, lon: float, lat: float, **kwargs) -> Dict: with self.reader(asset, **self.reader_options) as src_dst: return src_dst.point(lon, lat, **kwargs) if "allowed_exceptions" not in kwargs: kwargs.update({"allowed_exceptions": (PointOutsideBounds,)}) return list(multi_values(mosaic_assets, _reader, lon, lat, **kwargs).items())