from rio_tiler.io import COGReader from rio_tiler.errors import InvalidColorMapName import numpy as np from .custom_colormaps_helper import custom_colormaps from app.raster_utils import extension_for_export_format, ZOOM_EXTRA_LEVELS from .hsvblend import hsv_blend from .hillshade import LightSource from .formulas import lookup_formula, get_algorithm_list from .tasks import TaskNestedView from rest_framework import exceptions from rest_framework.response import Response from worker.tasks import export_raster, export_pointcloud from django.utils.translation import gettext as _ for custom_colormap in custom_colormaps: colormap = colormap.register(custom_colormap) def get_zoom_safe(src_dst): minzoom, maxzoom = src_dst.spatial_info["minzoom"], src_dst.spatial_info[ "maxzoom"] if maxzoom < minzoom: maxzoom = minzoom return minzoom, maxzoom def get_tile_url(task, tile_type, query_params): url = '/api/projects/{}/tasks/{}/{}/tiles/{{z}}/{{x}}/{{y}}.png'.format( task.project.id, task.id, tile_type) params = {}
from rio_tiler.colormap import cmap, parse_color from rio_tiler.errors import MissingAssets, MissingBands from .custom import cmap as custom_colormap from .custom import tms as custom_tms from .utils import get_hash from fastapi import Query from starlette.requests import Request ################################################################################ # CMAP AND TMS Customization tms = tms.register([custom_tms.EPSG3413, custom_tms.EPSG6933]) cmap = cmap.register({"above": custom_colormap.above_cmap}) ################################################################################ # DO NOT UPDATE # Create ENUMS with all CMAP and TMS for documentation and validation. ColorMapName = Enum( # type: ignore "ColorMapName", [(a, a) for a in sorted(cmap.list())]) ResamplingName = Enum( # type: ignore "ResamplingName", [(r.name, r.name) for r in Resampling]) WebMercatorTileMatrixSetName = Enum( # type: ignore "WebMercatorTileMatrixSetName", [("WebMercatorQuad", "WebMercatorQuad")]) TileMatrixSetName = Enum( # type: ignore "TileMatrixSetName", [(a, a) for a in sorted(tms.list())]) async def request_hash(request: Request) -> str:
from rio_tiler.io.cogeo import tile as cogeoTiler from rio_tiler.profiles import img_profiles from rio_tiler.reader import multi_point from rio_tiler.utils import geotiff_options, render from rio_tiler_mosaic.methods import defaults from rio_tiler_mosaic.mosaic import mosaic_tiler from cogeo_mosaic import version as mosaic_version from cogeo_mosaic.backends import MosaicBackend from cogeo_mosaic.backends.utils import get_hash from cogeo_mosaic.mosaic import MosaicJSON from cogeo_mosaic_tiler import custom_cmaps, custom_methods from cogeo_mosaic_tiler.ogc import wmts_template from cogeo_mosaic_tiler.utils import _aws_head_object, _get_layer_names, _postprocess cmap.register("custom_above", custom_cmaps.above_cmap) session = boto3_session() s3_client = session.client("s3") aws_session = AWSSession(session=session) PIXSEL_METHODS = { "first": defaults.FirstMethod, "highest": defaults.HighestMethod, "lowest": defaults.LowestMethod, "mean": defaults.MeanMethod, "median": defaults.MedianMethod, "stdev": defaults.StdevMethod, "bdix_stdev": custom_methods.bidx_stddev, } app = API(name="cogeo-mosaic-tiler")
from titiler.api.utils import get_hash from titiler.custom import cmap as custom_colormap from titiler.custom import tms as custom_tms from fastapi import Query from starlette.requests import Request ################################################################################ # CMAP AND TMS Customization morecantile.tms.register(custom_tms.EPSG3413) # REGISTER CUSTOM TMS # # e.g morecantile.tms.register(custom_tms.my_custom_tms) cmap.register("above", custom_colormap.above_cmap) # REGISTER CUSTOM COLORMAP HERE # # e.g cmap.register("customRed", custom_colormap.custom_red) ################################################################################ # DO NOT UPDATE # Create ENUMS with all CMAP and TMS for documentation and validation. ColorMapNames = Enum("ColorMapNames", [(a, a) for a in sorted(cmap.list())]) # type: ignore TileMatrixSetNames = Enum( "TileMatrixSetNames", [(a, a) for a in sorted(morecantile.tms.list())]) # type: ignore ResamplingNames = Enum("ResamplingNames", [(r.name, r.name) for r in Resampling]) # type: ignore
directory=str(resources_files(__package__) / "templates")) # colors from https://daac.ornl.gov/ABOVE/guides/Annual_Landcover_ABoVE.html above_cmap = { 1: [58, 102, 24, 255], # Evergreen Forest 2: [100, 177, 41, 255], # Deciduous Forest 3: [177, 177, 41, 255], # Shrubland 4: [221, 203, 154, 255], # Herbaceous 5: [218, 203, 47, 255], # Sparely Vegetated 6: [177, 177, 177, 255], # Barren 7: [175, 255, 205, 255], # Fen 8: [239, 255, 192, 255], # Bog 9: [144, 255, 255, 255], # Shallows/Littoral 10: [29, 0, 250, 255], # Water } cmap = cmap.register({"above": above_cmap}) ColorMapName = Enum( # type: ignore "ColorMapName", [(a, a) for a in sorted(cmap.list())]) # CUSTOM TMS for EPSG:3413 EPSG3413 = morecantile.TileMatrixSet.custom( (-4194300, -4194300, 4194300, 4194300), CRS.from_epsg(3413), identifier="EPSG3413", matrix_scale=[2, 2], ) # CUSTOM TMS for EPSG:6933 # info from https://epsg.io/6933 EPSG6933 = morecantile.TileMatrixSet.custom(