openapi: 3.1.0 info: title: measurements description: 'HTTP-сервис измерений по GeoTIFF-растрам (DEM/thermal), читаемым напрямую из S3/MinIO через GDAL. Все эндпоинты — POST под префиксом `/api`. `path` в теле запроса указывается в формате `:<путь/к/файлу.tif>`; система координат задаётся строкой `proj` (proj4). Пустой `proj` означает, что точки уже в системе координат растра. Аутентификация (JWT в заголовках `authorization`/`identity`) включается переменной `AUTH=1`.' version: 0.0.1 paths: /api/point: post: summary: Height/temperature at a single point description: Возвращает высоту (h) и/или температуру (t) в одной точке по DEM/термо-растру из S3. operationId: point_api_point_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TiffPoint' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: anyOf: - type: number - type: 'null' type: object title: Response Point Api Point Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/points: post: summary: Height/temperature at multiple points description: 'Батч-версия /point: массив высот/температур для списка точек.' operationId: points_api_points_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TiffPoints' required: true responses: '200': description: Successful Response content: application/json: schema: items: additionalProperties: anyOf: - type: number - type: 'null' type: object type: array title: Response Points Api Points Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/profile: post: summary: Elevation profile along a polyline description: Профиль высот вдоль ломаной; между вершинами добавляются промежуточные точки. operationId: profile_api_profile_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TiffProfile' required: true responses: '200': description: Successful Response content: application/json: schema: items: additionalProperties: anyOf: - type: number - type: 'null' type: object type: array title: Response Profile Api Profile Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/volume: post: summary: Volume inside a polygon description: Объём внутри полигона. mode=cv2 (по умолчанию) или pillow (DEM-режим, требует > 2 точек). operationId: volume_api_volume_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TiffVolume' required: true responses: '200': description: Successful Response content: application/json: schema: anyOf: - additionalProperties: type: number type: object - type: 'null' title: Response Volume Api Volume Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/multiple: post: summary: Volume difference between two DEMs description: Разница объёмов между master- и slave-растром в пределах полигона. operationId: multiple_api_multiple_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TiffMultiple' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: type: number type: object title: Response Multiple Api Multiple Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/transform: post: summary: GeoTIFF affine transform description: Возвращает 6 коэффициентов GDAL GeoTransform растра. operationId: transform_api_transform_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Tiff' required: true responses: '200': description: Successful Response content: application/json: schema: prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 title: Response Transform Api Transform Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/info: post: summary: GeoTIFF metadata description: Метаданные растра (размер, проекция, geotransform и т.п.). operationId: info_api_info_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Tiff' required: true responses: '200': description: Successful Response content: application/json: schema: type: object title: Response Info Api Info Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/statistics: post: summary: Raster min/max statistics description: Пара (min, max) значений растра. operationId: statistics_api_statistics_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Tiff' required: true responses: '200': description: Successful Response content: application/json: schema: prefixItems: - type: number - type: number type: array maxItems: 2 minItems: 2 title: Response Statistics Api Statistics Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/bounds: post: summary: Tile bounds by zoom range description: Границы тайлов (XYZ) для диапазона zoom_from..zoom_to. operationId: bounds_api_bounds_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Tiff' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: items: items: type: integer type: array type: array type: object title: Response Bounds Api Bounds Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError Tiff: properties: path: type: string title: Path zoom_to: type: integer title: Zoom To default: 21 zoom_from: type: integer title: Zoom From default: 14 type: object required: - path title: Tiff TiffMultiple: properties: master_path: type: string title: Master Path slave_path: type: string title: Slave Path proj: type: string title: Proj default: '' points: items: prefixItems: - type: number - type: number type: array maxItems: 2 minItems: 2 type: array title: Points type: object required: - master_path - slave_path - points title: TiffMultiple example: - master_path: geotiff_dems/NTG030521_DEM.tif points: - - 37.34743572357015 - 55.68881158675471 - - 37.347128864435845 - 55.6888704629146 - - 37.34719182945381 - 55.68896771656465 - - 37.34732057806979 - 55.688942063559054 proj: +proj=tmerc +lat_0=0 +lon_0=60.05 +k=1 +x_0=1500000 +y_0=-5911057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs slave_path: geotiff_dems/NTG030521_DEM.tif TiffPoint: properties: altitude_path: anyOf: - type: string - type: 'null' title: Altitude Path temperature_path: anyOf: - type: string - type: 'null' title: Temperature Path proj: type: string title: Proj default: '' point: prefixItems: - type: number - type: number type: array maxItems: 2 minItems: 2 title: Point type: object required: - point title: TiffPoint example: - altitude_path: geotiff_dems/ALTITUDE_DEM.tif point: - 59.95821631734607 - 57.9660901731621 proj: +proj=tmerc +lat_0=0 +lon_0=60.05 +k=1 +x_0=1500000 +y_0=-5911057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs temperature_path: geotiff_dems/THERMAL_DEM.tif - point: - 1494214.348999979 - 516505.3900003205 proj: '' temperature_path: geotiff_dems/THERMAL_DEM.tif - altitude_path: geotiff_dems/ALTITUDE_DEM.tif point: - 1494214.348999979 - 516505.3900003205 proj: '' TiffPoints: properties: altitude_path: anyOf: - type: string - type: 'null' title: Altitude Path temperature_path: anyOf: - type: string - type: 'null' title: Temperature Path proj: type: string title: Proj default: '' points: items: prefixItems: - type: number - type: number type: array maxItems: 2 minItems: 2 type: array title: Points type: object required: - points title: TiffPoints example: - altitude_path: geotiff_dems/ALTITUDE_DEM.tif points: - - 59.95821631734607 - 57.9660901731621 - - 59.95452603553467 - 57.96567474229709 - - 59.95563056285039 - 57.966613723012216 proj: +proj=tmerc +lat_0=0 +lon_0=60.05 +k=1 +x_0=1500000 +y_0=-5911057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs temperature_path: geotiff_dems/THERMAL_DEM.tif - points: - - 1494221.1549999786 - 516495.86600015266 - - 1494214.348999979 - 516505.3900003205 proj: '' temperature_path: geotiff_dems/THERMAL_DEM.tif TiffProfile: properties: path: type: string title: Path proj: type: string title: Proj default: '' points: items: prefixItems: - type: number - type: number type: array maxItems: 2 minItems: 2 type: array title: Points type: object required: - path - points title: TiffProfile example: - path: geotiff_dems/NTG030521_DEM.tif points: - - 59.95821631734607 - 57.9660901731621 - - 59.95452603553467 - 57.96567474229709 proj: +proj=tmerc +lat_0=0 +lon_0=60.05 +k=1 +x_0=1500000 +y_0=-5911057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs - path: geotiff_dems/BLG_080122_DEM.tif points: - - 3334617.713961677 - 590691.7743950449 - - 3334977.6348458366 - 590688.296080064 TiffVolume: properties: path: type: string title: Path proj: type: string title: Proj default: '' level: anyOf: - type: number - type: 'null' title: Level points: items: prefixItems: - type: number - type: number type: array maxItems: 2 minItems: 2 type: array title: Points mode: allOf: - $ref: '#/components/schemas/VolumeMode' default: cv2 type: object required: - path - points title: TiffVolume example: - path: geotiff_dems/NTG030521_DEM.tif points: - - 59.95821631734607 - 57.9660901731621 - - 59.95452603553467 - 57.96567474229709 - - 59.95563056285039 - 57.966613723012216 proj: +proj=tmerc +lat_0=0 +lon_0=60.05 +k=1 +x_0=1500000 +y_0=-5911057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs - mode: pillow path: geotiff_dems/NTG030521_DEM.tif points: - - 1494221.1549999786 - 516495.86600015266 - - 1494214.348999979 - 516505.3900003205 proj: '' ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError VolumeMode: type: string enum: - cv2 - pillow title: VolumeMode