@maptiler/weather
Version:
Weather layers for MapTiler Cloud and MapTiler SDK
212 lines (211 loc) • 5.82 kB
TypeScript
import { UsedRgbChannel } from '../utils';
export declare const WeatherVariableID: {
GFS_TEMPERATURE_2M: string;
GFS_PRESSURE_MSL: string;
GFS_PRECIPITATION_1H: string;
GFS_FROZEN_PRECIPITATION_PERCENT: string;
GFS_WIND_10M: string;
GFS_RADAR_COMPOSITE: string;
GFS_CLOUD_COVER_TOTAL: string;
};
export type WeatherVariableIDValue = (typeof WeatherVariableID)[keyof typeof WeatherVariableID];
/**
* Extent of the area being covered. Usually in the unit if the CRS.
*/
export type Bounds = [number, number, number, number];
/**
* Tileset matrix details for a specific zoom level
*/
export type MatrixSetItem = {
/**
* Specific zoom level of a given tileset
*/
zoom_level: number;
/**
* Dimensions of the matrix in tiles along the horizontal axis
*/
matrix_width: number;
/**
* Dimensions of the matrix in tiles along the vertical axis
*/
matrix_height: number;
/**
* Number of tiles along the horizontal axis
*/
tile_width: number;
/**
* Number of tiles along the vertical axis
*/
tile_height: number;
/**
* Number of pixel of each tile along the vertical axis
*/
pixel_x_size: number;
/**
* Number of pixel of each tile along the horizontal axis
*/
pixel_y_size: number;
};
/**
* Collection of tile matrix details per zoom level
*/
export type TileMatrixSet = {
/**
* Geographic exten of the tileset in the unit of projection (Mercator)
*/
bounds: Bounds;
/**
* Matrix details per zoom level
*/
items: Array<MatrixSetItem>;
};
export type SpatialReferenceSystem = {
/**
* Name of the defining authority, eg. `"EPSG"`
*/
auth_name: string;
/**
* ID given by the defining authority, eg. `"3587"`
*/
auth_srid: string;
/**
* "Well Known Text" to describe the current spatial reference system (aka. CRS)
*/
wkt: string;
};
export type Keyframe = {
/**
* Tileset id. Also used to form the URL of it
*/
id: string;
/**
* Timestamp as ISO8601 date format
*/
timestamp: string;
};
/**
* Details about a specific weather variable
*/
export type WeatherVariable = {
/**
* Version of the specification
*/
"@version": string;
/**
* Geographical extent of the tileset representing the bounds (in Mercator units)
*/
bounds: Bounds;
/**
* Type of tileset
*/
type: "mtpkg" | "virtual" | "mbtiles" | "geopackage";
/**
* The type of tile
*/
tile_type: "raster" | "raster-dem" | "vector" | "terrain";
/**
* Description of the tile matrix at each zoom level
*/
tile_matrix_set: TileMatrixSet;
/**
* Encoding type of each individual tile
*/
tile_format: "jpeg" | "png" | "webp" | "pbf" | "quantized-mesh-1.0";
/**
* Description of the tileset's spatial reference system (aka. CRS)
*/
spatial_ref_sys: SpatialReferenceSystem;
metadata: {
/**
* Format of the tile
*/
format: "jpeg" | "png" | "webp" | "pbf" | "quantized-mesh-1.0";
/**
* TODO
*/
scheme: string;
/**
* TODO
*/
title: string;
/**
* Bounds in WGS84
*/
bounds: Bounds;
/**
* Center of the bounds
*/
center: Array<number>;
/**
* Minimal zoom level this tileset contains. Cannot be lower than 0, but could be higher
*/
minzoom: number;
/**
* Maximal zool level this tileset contains. Cannot be higher than 22, but mostl likely lower
*/
maxzoom: number;
/**
* Factor of `256` reprensting the size of raster tiles. (`1` means tiles are 256x256px, `2` means 512x512px)
* The scale is received as a string.
*/
scale?: number;
/**
* Description of the weather variable
*/
weather_variable: {
/**
* Human friendly name of the weather variable (eg. "Temperature")
*/
name: string;
/**
* Human friendly description of this weather variable
*/
description: string;
/**
* Attribution to credit the source for this weather data
*/
attribution: string;
/**
* Identifier of this weather variable
*/
variable_id: WeatherVariableIDValue;
/**
* Information to decode the values of this specific weather variable
*/
decoding: {
/**
* The minimum value in real world unit. This is mapped to the 0 in the uint8 range.
*/
min: number;
/**
* The minimum value in real world unit. This is mapped to the 255 in the uint8 range.
*/
max: number;
/**
* Channel or combination of image channels that is/are used to encode this weather variable within each tile's pixel.
*/
channels: UsedRgbChannel;
};
/**
* Real world unit used for this variable
*/
unit: string;
/**
* Release data of the dataset.
* Date in ISO8601 format.
*/
release_timestamp: string;
/**
*
*/
timestamp: string;
};
};
/**
* Tileset per time tick
*/
keyframes: Array<Keyframe>;
};
export type WeatherPayload = {
variables: Array<WeatherVariable>;
};