From e284fa85be5d5d5a7a9f797239a399e1bd8872ca Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Mon, 4 May 2026 15:44:38 +0300 Subject: [PATCH] =?UTF-8?q?feat(cuod):=20+=204=20=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=D0=B0=20mission,=20instrum?= =?UTF-8?q?ent,=20processing=5Flevel,=20data=5Fformat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Греет Альтум-интеграцию (заказ съёмки) и любых других consumer'ов ДЗЗ. Манифест cuod 1.0.0 → 1.1.0. Existing справочники (spacecraft, satellite_type, ground_station) не тронуты — их schemaVersion остался 1.0.0. Схемы: - mission: программа/семейство КА (Ресурс-П, Канопус-В, Sentinel и т.д.) - instrument: бортовой сенсор с m2m связью со spacecraft и cascade в data_format/processing_level через supported_*_codes - processing_level: L0...L4 с sort_order для упорядочивания - data_format: GeoTIFF/NITF/COG/SAFE/... с MIME + расширением Везде x-id-source=code (auto businessKey), x-unique=true на code. Поля name/description везде x-localized RU+EN. Сидинг (35 записей): - mission: 9 (российские + Sentinel + Terra/Aqua) - instrument: 10 (Геотон-Л1, КШМСА, ГСА-2, ПСС-В, МСУ-МР, МСУ-ГС, Кондор SAR, MODIS, C-SAR, MSI) - processing_level: 8 (L0/L1A/L1B/L1C/L2A/L2B/L3/L4) - data_format: 8 (GEOTIFF, COG, NITF, JPEG2000, NETCDF, HDF5, SAFE, KMZ) Cross-refs работают: mission.spacecraft_codes и instrument.spacecraft_codes ссылаются на existing spacecraft businessKeys; instrument.supported_*_codes — на новые data_format/processing_level. Импортер CuodBundleImporter идемпотентен — на ребуте поднимет всё, существующее не тронет. --- .../bundles/cuod/data_format.schema.json | 48 +++++ .../bundles/cuod/instrument.schema.json | 77 +++++++ .../main/resources/bundles/cuod/manifest.json | 34 +++- .../bundles/cuod/mission.schema.json | 58 ++++++ .../bundles/cuod/processing_level.schema.json | 45 +++++ .../cuod/records/data_format.records.json | 114 +++++++++++ .../cuod/records/instrument.records.json | 191 ++++++++++++++++++ .../bundles/cuod/records/mission.records.json | 137 +++++++++++++ .../records/processing_level.records.json | 106 ++++++++++ 9 files changed, 809 insertions(+), 1 deletion(-) create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/data_format.schema.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/instrument.schema.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/mission.schema.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/processing_level.schema.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/data_format.records.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/instrument.records.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/mission.records.json create mode 100644 ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/processing_level.records.json diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/data_format.schema.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/data_format.schema.json new file mode 100644 index 0000000..ede0a43 --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/data_format.schema.json @@ -0,0 +1,48 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://ordinis.nstart.cloud/schemas/cuod/data_format/1.0.0", + "title": "Data Format (формат файлов)", + "description": "Формат поставки данных — GeoTIFF, NITF, JPEG2000, COG, NetCDF и т.д.", + "type": "object", + "required": ["code", "name", "mime_type", "file_extension", "status"], + "additionalProperties": false, + "x-id-source": "code", + "properties": { + "code": { + "type": "string", + "description": "Код формата. Например GEOTIFF, NITF, JPEG2000.", + "pattern": "^[A-Z][A-Z0-9_]{1,31}$", + "x-unique": true + }, + "name": { + "type": "object", + "x-localized": true, + "description": "Человеко-читаемое наименование", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string", "minLength": 1 } + }, + "required": ["ru-RU"] + }, + "description": { + "type": "object", + "x-localized": true, + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string" } + } + }, + "mime_type": { + "type": "string", + "description": "MIME-тип файла", + "pattern": "^[a-z0-9.+-]+/[a-z0-9.+-]+$" + }, + "file_extension": { + "type": "string", + "description": "Расширение файла, начинается с точки", + "pattern": "^\\.[a-zA-Z0-9]{1,16}$" + }, + "status": { + "type": "string", + "enum": ["active", "archived"] + } + } +} diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/instrument.schema.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/instrument.schema.json new file mode 100644 index 0000000..85a02d4 --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/instrument.schema.json @@ -0,0 +1,77 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://ordinis.nstart.cloud/schemas/cuod/instrument/1.0.0", + "title": "Instrument (бортовой сенсор)", + "description": "Конкретный сенсор/полезная нагрузка на борту КА. Один прибор может летать на нескольких бортах (many-to-many со spacecraft).", + "type": "object", + "required": ["code", "name", "type", "status"], + "additionalProperties": false, + "x-id-source": "code", + "properties": { + "code": { + "type": "string", + "description": "Код прибора. UPPER кириллицу транслитерируем; разрешены буквы, цифры, _ и -.", + "pattern": "^[A-Z][A-Z0-9_\\-]{1,63}$", + "x-unique": true + }, + "name": { + "type": "object", + "x-localized": true, + "description": "Наименование прибора", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string", "minLength": 1 } + }, + "required": ["ru-RU"] + }, + "description": { + "type": "object", + "x-localized": true, + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string" } + } + }, + "spacecraft_codes": { + "type": "array", + "description": "businessKey'и КА с этим прибором (many-to-many)", + "items": { "type": "string" }, + "uniqueItems": true + }, + "type": { + "type": "string", + "description": "Тип сенсора. UI использует для фильтрации.", + "enum": ["optical", "sar", "infrared", "multispectral", "hyperspectral", "thermal", "lidar", "radiometer"] + }, + "spatial_resolution_m": { + "type": "number", + "description": "Лучшее пространственное разрешение, метры", + "minimum": 0 + }, + "swath_km": { + "type": "number", + "description": "Ширина полосы захвата, километры", + "minimum": 0 + }, + "spectral_bands": { + "type": "array", + "description": "Спектральные каналы прибора", + "items": { "type": "string" }, + "uniqueItems": true + }, + "supported_format_codes": { + "type": "array", + "description": "businessKey'и из data_format — какие форматы поддерживает выгрузка", + "items": { "type": "string" }, + "uniqueItems": true + }, + "supported_level_codes": { + "type": "array", + "description": "businessKey'и из processing_level — какие уровни обработки доступны", + "items": { "type": "string" }, + "uniqueItems": true + }, + "status": { + "type": "string", + "enum": ["active", "archived", "planned"] + } + } +} diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/manifest.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/manifest.json index e547f75..7aedc50 100644 --- a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/manifest.json +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/manifest.json @@ -2,7 +2,7 @@ "bundle": "cuod", "displayName": "ЦУОД ДЗЗ", "description": "Bundle справочников для Центра Управления Обработкой Данных ДЗЗ. Anchor v1.", - "version": "1.0.0", + "version": "1.1.0", "supportedLocales": ["ru-RU", "en-US"], "defaultLocale": "ru-RU", "dictionaries": [ @@ -29,6 +29,38 @@ "scope": "PUBLIC", "schemaResource": "ground_station.schema.json", "schemaVersion": "1.0.0" + }, + { + "name": "mission", + "displayName": "Миссии / программы", + "description": "Программы ДЗЗ — Ресурс-П, Канопус-В, Sentinel и т.д. Группируют семейства КА.", + "scope": "PUBLIC", + "schemaResource": "mission.schema.json", + "schemaVersion": "1.0.0" + }, + { + "name": "instrument", + "displayName": "Инструменты съёмки", + "description": "Полезная нагрузка / сенсоры на борту КА (Геотон-Л1, MODIS, C-SAR, ...)", + "scope": "PUBLIC", + "schemaResource": "instrument.schema.json", + "schemaVersion": "1.0.0" + }, + { + "name": "processing_level", + "displayName": "Уровни обработки", + "description": "Стандартные уровни обработки L0-L4 по NASA/ESA", + "scope": "PUBLIC", + "schemaResource": "processing_level.schema.json", + "schemaVersion": "1.0.0" + }, + { + "name": "data_format", + "displayName": "Форматы данных", + "description": "Форматы поставки растровых продуктов (GeoTIFF, COG, NITF, NetCDF и т.д.)", + "scope": "PUBLIC", + "schemaResource": "data_format.schema.json", + "schemaVersion": "1.0.0" } ] } diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/mission.schema.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/mission.schema.json new file mode 100644 index 0000000..6a16d78 --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/mission.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://ordinis.nstart.cloud/schemas/cuod/mission/1.0.0", + "title": "Mission (программа / семейство КА)", + "description": "Программа ДЗЗ — например Ресурс, Канопус, Sentinel. Группирует семейство spacecraft, общие цели и задачи.", + "type": "object", + "required": ["code", "name", "status"], + "additionalProperties": false, + "x-id-source": "code", + "properties": { + "code": { + "type": "string", + "description": "Код программы. UPPER_SNAKE_CASE.", + "pattern": "^[A-Z][A-Z0-9_]{1,63}$", + "x-unique": true + }, + "name": { + "type": "object", + "x-localized": true, + "description": "Краткое наименование программы для UI", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string", "minLength": 1 } + }, + "required": ["ru-RU"] + }, + "description": { + "type": "object", + "x-localized": true, + "description": "Развёрнутое описание программы", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string" } + } + }, + "spacecraft_codes": { + "type": "array", + "description": "businessKey'и из spacecraft, входящих в эту программу", + "items": { "type": "string" }, + "uniqueItems": true + }, + "operator": { + "type": "object", + "x-localized": true, + "description": "Оператор программы", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string" } + } + }, + "country": { + "type": "string", + "description": "ISO 3166-1 alpha-2 код страны", + "pattern": "^[A-Z]{2}$" + }, + "status": { + "type": "string", + "enum": ["active", "archived", "planned"] + } + } +} diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/processing_level.schema.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/processing_level.schema.json new file mode 100644 index 0000000..7890bf5 --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/processing_level.schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://ordinis.nstart.cloud/schemas/cuod/processing_level/1.0.0", + "title": "Processing Level (уровень обработки)", + "description": "Уровень обработки данных ДЗЗ — L0 raw → L4 derived products. Стандарт NASA/ESA + ГОСТ.", + "type": "object", + "required": ["code", "name", "sort_order", "status"], + "additionalProperties": false, + "x-id-source": "code", + "properties": { + "code": { + "type": "string", + "description": "Код уровня обработки. Например L0, L1A, L2.", + "pattern": "^L[0-9][A-Z]?$", + "x-unique": true + }, + "name": { + "type": "object", + "x-localized": true, + "description": "Краткое наименование уровня", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string", "minLength": 1 } + }, + "required": ["ru-RU"] + }, + "description": { + "type": "object", + "x-localized": true, + "description": "Подробное описание содержания уровня", + "patternProperties": { + "^[a-z]{2}-[A-Z]{2}$": { "type": "string" } + } + }, + "sort_order": { + "type": "integer", + "description": "Порядок отображения для упорядочивания L0 → L1 → L2 → ...", + "minimum": 0, + "x-unique": true + }, + "status": { + "type": "string", + "enum": ["active", "archived"] + } + } +} diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/data_format.records.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/data_format.records.json new file mode 100644 index 0000000..79455ce --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/data_format.records.json @@ -0,0 +1,114 @@ +[ + { + "businessKey": "GEOTIFF", + "data": { + "code": "GEOTIFF", + "name": { "ru-RU": "GeoTIFF", "en-US": "GeoTIFF" }, + "description": { + "ru-RU": "Растровый формат TIFF с привязкой к географическим координатам. Стандарт OGC.", + "en-US": "Georeferenced TIFF raster format. OGC standard." + }, + "mime_type": "image/tiff", + "file_extension": ".tif", + "status": "active" + } + }, + { + "businessKey": "COG", + "data": { + "code": "COG", + "name": { "ru-RU": "Cloud-Optimized GeoTIFF", "en-US": "Cloud-Optimized GeoTIFF" }, + "description": { + "ru-RU": "Профиль GeoTIFF с внутренней тайловой организацией для эффективного чтения по диапазонам байт через HTTP.", + "en-US": "GeoTIFF profile with internal tiling for efficient HTTP byte-range reads." + }, + "mime_type": "image/tiff", + "file_extension": ".tif", + "status": "active" + } + }, + { + "businessKey": "NITF", + "data": { + "code": "NITF", + "name": { "ru-RU": "NITF", "en-US": "NITF" }, + "description": { + "ru-RU": "National Imagery Transmission Format — стандарт NATO для ДЗЗ-снимков.", + "en-US": "National Imagery Transmission Format — NATO imagery standard." + }, + "mime_type": "application/octet-stream", + "file_extension": ".ntf", + "status": "active" + } + }, + { + "businessKey": "JPEG2000", + "data": { + "code": "JPEG2000", + "name": { "ru-RU": "JPEG 2000", "en-US": "JPEG 2000" }, + "description": { + "ru-RU": "Wavelet-сжатие, поддерживает геопривязку через GMLJP2/GeoJP2.", + "en-US": "Wavelet compression, supports georeferencing via GMLJP2/GeoJP2." + }, + "mime_type": "image/jp2", + "file_extension": ".jp2", + "status": "active" + } + }, + { + "businessKey": "NETCDF", + "data": { + "code": "NETCDF", + "name": { "ru-RU": "NetCDF-4", "en-US": "NetCDF-4" }, + "description": { + "ru-RU": "Самоописываемый формат для научных массивов, базируется на HDF5. CF-conventions для климатических данных.", + "en-US": "Self-describing scientific array format on top of HDF5. CF conventions for climate data." + }, + "mime_type": "application/x-netcdf", + "file_extension": ".nc", + "status": "active" + } + }, + { + "businessKey": "HDF5", + "data": { + "code": "HDF5", + "name": { "ru-RU": "HDF5", "en-US": "HDF5" }, + "description": { + "ru-RU": "Иерархический формат для больших научных датасетов. Используется для гиперспектральных и L2-продуктов.", + "en-US": "Hierarchical format for large scientific datasets. Used for hyperspectral and L2 products." + }, + "mime_type": "application/x-hdf5", + "file_extension": ".h5", + "status": "active" + } + }, + { + "businessKey": "SAFE", + "data": { + "code": "SAFE", + "name": { "ru-RU": "SAFE", "en-US": "SAFE" }, + "description": { + "ru-RU": "Standard Archive Format for Europe — пакет ESA для Sentinel-продуктов (zip с XML-манифестом и tiff'ами).", + "en-US": "Standard Archive Format for Europe — ESA Sentinel product package (zip with XML manifest and TIFFs)." + }, + "mime_type": "application/zip", + "file_extension": ".zip", + "status": "active" + } + }, + { + "businessKey": "KMZ", + "data": { + "code": "KMZ", + "name": { "ru-RU": "KMZ", "en-US": "KMZ" }, + "description": { + "ru-RU": "Сжатый KML для отображения растровых наложений в Google Earth и QGIS.", + "en-US": "Zipped KML for raster overlays in Google Earth and QGIS." + }, + "mime_type": "application/vnd.google-earth.kmz", + "file_extension": ".kmz", + "status": "active" + } + } +] diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/instrument.records.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/instrument.records.json new file mode 100644 index 0000000..8737ce2 --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/instrument.records.json @@ -0,0 +1,191 @@ +[ + { + "businessKey": "GEOTON-L1", + "data": { + "code": "GEOTON-L1", + "name": { "ru-RU": "Геотон-Л1", "en-US": "Geoton-L1" }, + "description": { + "ru-RU": "Оптико-электронный комплекс высокого разрешения для КА Ресурс-П: панхром 1 м, мультиспектр 3-4 м, 5 каналов VNIR.", + "en-US": "High-resolution optoelectronic payload on Resurs-P: 1 m PAN, 3-4 m multispectral, 5 VNIR bands." + }, + "spacecraft_codes": [], + "type": "optical", + "spatial_resolution_m": 1.0, + "swath_km": 38, + "spectral_bands": ["PAN", "B", "G", "R", "RE", "NIR"], + "supported_format_codes": ["GEOTIFF", "COG", "JPEG2000"], + "supported_level_codes": ["L1A", "L1B", "L1C", "L2A"], + "status": "active" + } + }, + { + "businessKey": "KSHMSA", + "data": { + "code": "KSHMSA", + "name": { "ru-RU": "КШМСА (Комплекс широкозахватной мультиспектральной съёмки)", "en-US": "KShMSA (Wide-swath multispectral imager)" }, + "description": { + "ru-RU": "Широкозахватный мультиспектральный сенсор Ресурс-П: 4 канала VNIR, разрешение 60-120 м, полоса 441 км.", + "en-US": "Wide-swath multispectral sensor on Resurs-P: 4 VNIR bands, 60-120 m resolution, 441 km swath." + }, + "spacecraft_codes": [], + "type": "multispectral", + "spatial_resolution_m": 60, + "swath_km": 441, + "spectral_bands": ["B", "G", "R", "NIR"], + "supported_format_codes": ["GEOTIFF", "COG"], + "supported_level_codes": ["L1A", "L1B", "L1C", "L2A", "L3"], + "status": "active" + } + }, + { + "businessKey": "GSA-2", + "data": { + "code": "GSA-2", + "name": { "ru-RU": "ГСА-2", "en-US": "GSA-2" }, + "description": { + "ru-RU": "Гиперспектральный сенсор для Ресурс-П: 96-216 каналов в диапазоне 400-1100 нм, разрешение 25-30 м.", + "en-US": "Hyperspectral sensor on Resurs-P: 96-216 channels in 400-1100 nm, 25-30 m resolution." + }, + "spacecraft_codes": [], + "type": "hyperspectral", + "spatial_resolution_m": 25, + "swath_km": 25, + "supported_format_codes": ["GEOTIFF", "HDF5", "NETCDF"], + "supported_level_codes": ["L1A", "L1B", "L2A"], + "status": "active" + } + }, + { + "businessKey": "PSS-V", + "data": { + "code": "PSS-V", + "name": { "ru-RU": "ПСС-В (Панхроматическая съёмочная система)", "en-US": "PSS-V Panchromatic imager" }, + "description": { + "ru-RU": "Панхроматический сенсор Канопус-В: разрешение 2,1 м, полоса 23 км.", + "en-US": "Panchromatic sensor on Kanopus-V: 2.1 m resolution, 23 km swath." + }, + "spacecraft_codes": [], + "type": "optical", + "spatial_resolution_m": 2.1, + "swath_km": 23, + "spectral_bands": ["PAN"], + "supported_format_codes": ["GEOTIFF", "COG"], + "supported_level_codes": ["L1A", "L1B", "L1C"], + "status": "active" + } + }, + { + "businessKey": "MSU-MR", + "data": { + "code": "MSU-MR", + "name": { "ru-RU": "МСУ-МР (Многозональное сканирующее устройство малого разрешения)", "en-US": "MSU-MR low-resolution scanner" }, + "description": { + "ru-RU": "Многозональный сканер Метеор-М: 6 каналов VIS-TIR, разрешение 1 км, полоса 2900 км.", + "en-US": "Multi-band scanner on Meteor-M: 6 VIS-TIR bands, 1 km resolution, 2900 km swath." + }, + "spacecraft_codes": [], + "type": "multispectral", + "spatial_resolution_m": 1000, + "swath_km": 2900, + "spectral_bands": ["VIS", "NIR", "SWIR", "TIR"], + "supported_format_codes": ["GEOTIFF", "NETCDF", "HDF5"], + "supported_level_codes": ["L1A", "L1B", "L2A", "L3"], + "status": "active" + } + }, + { + "businessKey": "MSU-GS", + "data": { + "code": "MSU-GS", + "name": { "ru-RU": "МСУ-ГС", "en-US": "MSU-GS" }, + "description": { + "ru-RU": "Многозональное сканирующее устройство геостационарного наблюдения для Электро-Л: 10 каналов VIS/IR, диск Земли каждые 15-30 минут.", + "en-US": "Multi-band scanner for Elektro-L geostationary platform: 10 VIS/IR bands, full disk every 15-30 minutes." + }, + "spacecraft_codes": [], + "type": "multispectral", + "spatial_resolution_m": 1000, + "swath_km": 22000, + "spectral_bands": ["VIS", "NIR", "MWIR", "TIR"], + "supported_format_codes": ["GEOTIFF", "NETCDF", "HDF5"], + "supported_level_codes": ["L1A", "L1B", "L2A"], + "status": "active" + } + }, + { + "businessKey": "KONDOR-FKA-SAR", + "data": { + "code": "KONDOR-FKA-SAR", + "name": { "ru-RU": "РЛК Кондор-ФКА", "en-US": "Kondor-FKA SAR" }, + "description": { + "ru-RU": "Радиолокатор синтезированной апертуры S-диапазона на КА Кондор-ФКА: разрешение от 1 м, полоса 10-120 км.", + "en-US": "S-band SAR on Kondor-FKA: 1 m best resolution, 10-120 km swath." + }, + "spacecraft_codes": ["2024-149E"], + "type": "sar", + "spatial_resolution_m": 1, + "swath_km": 10, + "spectral_bands": ["S_BAND"], + "supported_format_codes": ["GEOTIFF", "NITF", "HDF5"], + "supported_level_codes": ["L1A", "L1B", "L1C", "L2A"], + "status": "active" + } + }, + { + "businessKey": "MODIS", + "data": { + "code": "MODIS", + "name": { "ru-RU": "MODIS", "en-US": "MODIS" }, + "description": { + "ru-RU": "Moderate Resolution Imaging Spectroradiometer на Terra/Aqua: 36 каналов VIS-TIR, разрешение 250/500/1000 м.", + "en-US": "Moderate Resolution Imaging Spectroradiometer on Terra/Aqua: 36 VIS-TIR channels at 250/500/1000 m." + }, + "spacecraft_codes": ["1999-068A"], + "type": "multispectral", + "spatial_resolution_m": 250, + "swath_km": 2330, + "spectral_bands": ["VIS", "NIR", "SWIR", "MWIR", "LWIR", "TIR"], + "supported_format_codes": ["HDF5", "NETCDF", "GEOTIFF"], + "supported_level_codes": ["L1A", "L1B", "L2A", "L2B", "L3", "L4"], + "status": "active" + } + }, + { + "businessKey": "C-SAR", + "data": { + "code": "C-SAR", + "name": { "ru-RU": "C-SAR (Sentinel-1)", "en-US": "C-SAR (Sentinel-1)" }, + "description": { + "ru-RU": "C-band SAR на Sentinel-1: разрешение 5x20 м (IW), полоса 250 км. Открытые данные.", + "en-US": "C-band SAR on Sentinel-1: 5x20 m (IW), 250 km swath. Open data." + }, + "spacecraft_codes": ["2014-016A"], + "type": "sar", + "spatial_resolution_m": 5, + "swath_km": 250, + "spectral_bands": ["C_BAND"], + "supported_format_codes": ["SAFE", "GEOTIFF", "COG"], + "supported_level_codes": ["L1A", "L1B", "L1C", "L2A"], + "status": "active" + } + }, + { + "businessKey": "MSI-S2", + "data": { + "code": "MSI-S2", + "name": { "ru-RU": "MSI (Sentinel-2)", "en-US": "MSI (Sentinel-2)" }, + "description": { + "ru-RU": "Multispectral Instrument Sentinel-2: 13 каналов VNIR/SWIR, разрешение 10/20/60 м, полоса 290 км.", + "en-US": "Sentinel-2 Multispectral Instrument: 13 VNIR/SWIR bands at 10/20/60 m, 290 km swath." + }, + "spacecraft_codes": ["2015-028A"], + "type": "multispectral", + "spatial_resolution_m": 10, + "swath_km": 290, + "spectral_bands": ["B", "G", "R", "RE", "NIR", "SWIR"], + "supported_format_codes": ["SAFE", "GEOTIFF", "COG", "JPEG2000"], + "supported_level_codes": ["L1A", "L1B", "L1C", "L2A", "L3"], + "status": "active" + } + } +] diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/mission.records.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/mission.records.json new file mode 100644 index 0000000..d74a6ec --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/mission.records.json @@ -0,0 +1,137 @@ +[ + { + "businessKey": "RESURS_P", + "data": { + "code": "RESURS_P", + "name": { "ru-RU": "Ресурс-П", "en-US": "Resurs-P" }, + "description": { + "ru-RU": "Российская программа оптического ДЗЗ среднего и высокого разрешения. Mass-class — большие КА на ССО.", + "en-US": "Russian optical Earth observation programme, mid-to-high resolution. Heavy buses on SSO." + }, + "spacecraft_codes": [], + "operator": { "ru-RU": "Роскосмос / РКЦ Прогресс", "en-US": "Roscosmos / RSC Progress" }, + "country": "RU", + "status": "active" + } + }, + { + "businessKey": "KANOPUS_V", + "data": { + "code": "KANOPUS_V", + "name": { "ru-RU": "Канопус-В", "en-US": "Kanopus-V" }, + "description": { + "ru-RU": "Малые КА оперативного мониторинга техногенных и природных катастроф, картографирование.", + "en-US": "Small satellites for rapid monitoring of man-made and natural disasters, mapping." + }, + "spacecraft_codes": [], + "operator": { "ru-RU": "Роскосмос / ВНИИЭМ", "en-US": "Roscosmos / VNIIEM" }, + "country": "RU", + "status": "active" + } + }, + { + "businessKey": "KONDOR_FKA", + "data": { + "code": "KONDOR_FKA", + "name": { "ru-RU": "Кондор-ФКА", "en-US": "Kondor-FKA" }, + "description": { + "ru-RU": "Российская программа радиолокационного наблюдения Земли S-диапазона, всепогодные снимки.", + "en-US": "Russian S-band radar Earth observation programme, all-weather imaging." + }, + "spacecraft_codes": ["2024-149E"], + "operator": { "ru-RU": "Роскосмос / НПО Машиностроения", "en-US": "Roscosmos / NPO Mashinostroyeniya" }, + "country": "RU", + "status": "active" + } + }, + { + "businessKey": "ELEKTRO_L", + "data": { + "code": "ELEKTRO_L", + "name": { "ru-RU": "Электро-Л", "en-US": "Elektro-L" }, + "description": { + "ru-RU": "Геостационарная гидрометеорологическая программа. Многоспектральная съёмка диска Земли каждые 15-30 минут.", + "en-US": "Geostationary meteorological programme. Multi-spectral full-disk imaging every 15-30 minutes." + }, + "spacecraft_codes": [], + "operator": { "ru-RU": "Росгидромет / НПО Лавочкина", "en-US": "Roshydromet / Lavochkin Association" }, + "country": "RU", + "status": "active" + } + }, + { + "businessKey": "METEOR_M", + "data": { + "code": "METEOR_M", + "name": { "ru-RU": "Метеор-М", "en-US": "Meteor-M" }, + "description": { + "ru-RU": "Российская гидрометеорологическая полярная программа. Глобальное покрытие 1-2 раза в сутки.", + "en-US": "Russian polar meteorological programme. Global coverage 1-2 times per day." + }, + "spacecraft_codes": [], + "operator": { "ru-RU": "Росгидромет / ВНИИЭМ", "en-US": "Roshydromet / VNIIEM" }, + "country": "RU", + "status": "active" + } + }, + { + "businessKey": "ARKTIKA_M", + "data": { + "code": "ARKTIKA_M", + "name": { "ru-RU": "Арктика-М", "en-US": "Arktika-M" }, + "description": { + "ru-RU": "Высокоэллиптическая орбита (Молния) для непрерывного мониторинга Арктики и северных широт.", + "en-US": "Highly elliptical Molniya orbit for continuous Arctic and high-latitude monitoring." + }, + "spacecraft_codes": [], + "operator": { "ru-RU": "Росгидромет / НПО Лавочкина", "en-US": "Roshydromet / Lavochkin Association" }, + "country": "RU", + "status": "active" + } + }, + { + "businessKey": "SENTINEL_1", + "data": { + "code": "SENTINEL_1", + "name": { "ru-RU": "Sentinel-1", "en-US": "Sentinel-1" }, + "description": { + "ru-RU": "C-band SAR-программа Copernicus, всепогодная радиолокация, открытые данные.", + "en-US": "Copernicus C-band SAR programme, all-weather radar, open data." + }, + "spacecraft_codes": ["2014-016A"], + "operator": { "ru-RU": "ESA / Copernicus", "en-US": "ESA / Copernicus" }, + "country": "FR", + "status": "active" + } + }, + { + "businessKey": "SENTINEL_2", + "data": { + "code": "SENTINEL_2", + "name": { "ru-RU": "Sentinel-2", "en-US": "Sentinel-2" }, + "description": { + "ru-RU": "Multispectral imaging для Copernicus, 13 каналов VNIR/SWIR, разрешение 10/20/60 м.", + "en-US": "Copernicus multispectral imaging, 13 VNIR/SWIR bands at 10/20/60 m." + }, + "spacecraft_codes": ["2015-028A"], + "operator": { "ru-RU": "ESA / Copernicus", "en-US": "ESA / Copernicus" }, + "country": "FR", + "status": "active" + } + }, + { + "businessKey": "TERRA_AQUA", + "data": { + "code": "TERRA_AQUA", + "name": { "ru-RU": "Terra / Aqua (EOS)", "en-US": "Terra / Aqua (EOS)" }, + "description": { + "ru-RU": "Платформы NASA EOS с MODIS-сенсором для глобального мониторинга суши, атмосферы и океана.", + "en-US": "NASA EOS platforms carrying MODIS for global land, atmosphere, and ocean monitoring." + }, + "spacecraft_codes": ["1999-068A"], + "operator": { "ru-RU": "NASA", "en-US": "NASA" }, + "country": "US", + "status": "active" + } + } +] diff --git a/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/processing_level.records.json b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/processing_level.records.json new file mode 100644 index 0000000..bed9e4e --- /dev/null +++ b/ordinis-cuod-bundle/src/main/resources/bundles/cuod/records/processing_level.records.json @@ -0,0 +1,106 @@ +[ + { + "businessKey": "L0", + "data": { + "code": "L0", + "name": { "ru-RU": "Сырые данные", "en-US": "Raw data" }, + "description": { + "ru-RU": "L0 — поток с борта без какой-либо обработки. Содержит служебные кадры и недекодированные пакеты CCSDS.", + "en-US": "L0 — raw downlink stream with no processing. Contains housekeeping frames and undecoded CCSDS packets." + }, + "sort_order": 0, + "status": "active" + } + }, + { + "businessKey": "L1A", + "data": { + "code": "L1A", + "name": { "ru-RU": "Декодированные кадры", "en-US": "Decoded frames" }, + "description": { + "ru-RU": "L1A — служебная информация отделена, спектральные кадры разобраны, без радиометрической коррекции.", + "en-US": "L1A — housekeeping stripped, spectral frames decoded, no radiometric correction." + }, + "sort_order": 10, + "status": "active" + } + }, + { + "businessKey": "L1B", + "data": { + "code": "L1B", + "name": { "ru-RU": "Радиометрически скорректированный", "en-US": "Radiometrically corrected" }, + "description": { + "ru-RU": "L1B — применена радиометрическая калибровка, значения в физических единицах (W/(m²·sr·μm)).", + "en-US": "L1B — radiometric calibration applied, values in physical units (W/(m²·sr·μm))." + }, + "sort_order": 20, + "status": "active" + } + }, + { + "businessKey": "L1C", + "data": { + "code": "L1C", + "name": { "ru-RU": "Геометрически скорректированный (TOA)", "en-US": "Geometrically corrected (TOA)" }, + "description": { + "ru-RU": "L1C — ортотрансформирован к картографической проекции, отражение на верхней границе атмосферы (TOA reflectance).", + "en-US": "L1C — orthorectified to map projection, top-of-atmosphere reflectance." + }, + "sort_order": 30, + "status": "active" + } + }, + { + "businessKey": "L2A", + "data": { + "code": "L2A", + "name": { "ru-RU": "Поверхностное отражение", "en-US": "Surface reflectance" }, + "description": { + "ru-RU": "L2A — атмосферная коррекция применена, значения отражения подстилающей поверхности (BOA).", + "en-US": "L2A — atmospheric correction applied, bottom-of-atmosphere surface reflectance." + }, + "sort_order": 40, + "status": "active" + } + }, + { + "businessKey": "L2B", + "data": { + "code": "L2B", + "name": { "ru-RU": "Тематические продукты", "en-US": "Thematic products" }, + "description": { + "ru-RU": "L2B — производные индексы (NDVI, NDWI, LAI и т.д.) на единичный снимок.", + "en-US": "L2B — derived indices (NDVI, NDWI, LAI etc.) per single scene." + }, + "sort_order": 50, + "status": "active" + } + }, + { + "businessKey": "L3", + "data": { + "code": "L3", + "name": { "ru-RU": "Сводные продукты", "en-US": "Aggregated products" }, + "description": { + "ru-RU": "L3 — мозаики, временные композиты, агрегированные сводки на регулярной сетке.", + "en-US": "L3 — mosaics, time composites, aggregated grids." + }, + "sort_order": 60, + "status": "active" + } + }, + { + "businessKey": "L4", + "data": { + "code": "L4", + "name": { "ru-RU": "Производные модели", "en-US": "Derived model products" }, + "description": { + "ru-RU": "L4 — продукты ассимиляции и моделирования (например прогноз биомассы, climate reanalysis).", + "en-US": "L4 — assimilation and modelled products (e.g. biomass forecast, climate reanalysis)." + }, + "sort_order": 70, + "status": "active" + } + } +]