search icon search icon ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

Инженерный тур. 1 этап

Задача 1.1.(4 балла)
Работа с картами
Тема: изучение топонимов

Условие

Сколько Шаров можно найти у берегов архипелага Новая Земля?

В качестве ответа укажите количество без пробелов.

Решение

Слово «Шар» заимствовано из финно-угорских языков и у местных народов имело значение «Морской пролив».

Пролив Маточки Шар разделяет о. Северный и о. Южный.

Пролив Костин Шар разделяет о. Южный и о. Междушарий.

Полярная стация Маточкин Шар.

Ответ

3.

Задача 1.2.(10 баллов)
Перепроецирование координат
Темы: перепроецирование координат, разграфка и номенклатура топографических карт

Условие

Даны координаты точки в проекции МСК-83 (7 зона): \(X=1226978{,834}\); \(Y=7147751{,886}\).

Определите, на какой лист топографической карты масштаба \(1:200000\) попадает эта точка.

В качестве ответа укажите номенклатуру листа топографической карты. При записи номенклатуры листа не допускаются пробелы.

Полезная ссылка: http://irkipedia.ru/content/topograficheskie_karty_razgrafka_i_nomenklatura.

Решение

Разграфка — это система деления карт на отдельные листы, номенклатура — это правила нумерации отдельных листов в рамках разграфки. Разграфка и номенклатура обеспечивают систематизацию отдельных листов топографических карт. Зная координаты объекта и необходимый масштаб, можно определить номер листа.

Чтобы определить, на какой лист топографической карты попадает точка, необходимо рассчитать ее координаты в геодезической системе координат Пулково 1942, так как нарезка топографических карт на листы выполняется по параллелям и меридианам именно этой системы координат.

Пересчет можно выполнить, создав пользовательские проекции.

Согласно принятому подходу к разграфке и номенклатуре топографических карт (1.1), заданная точка попадает на лист R-41-XIX, XX.

Рис. 1.1.

Ответ

R-41-XIX, XX.

Задача 1.3.(10 баллов)
Решение навигационных задач
Тема: проложение маршрута по азимуту и расстоянию

Условие

Судно начало движение из порта города Мурманска, прошло вниз по Кольскому заливу и вышло в открытое море. Северо-западнее острова Кильдин от точки с координатами \(69{,}401983°\) с. ш. и \(34{,}041164°\) в. д. (система координат WGS-84) судно начало двигаться по азимуту \(84°\), оно прошло \(547{,}8\) морские мили (см. таблицу). Изменения направления судна приведены в таблице 1. После прохождения всех отрезков судно дошло до бухты и встало на рейд.

В качестве ответа запишите название бухты в именительном падеже без пробелов.

Построение линий по азимуту и расстояниям необходимо выполнять в проекции WGS-84 / World Mercator (EPSG:3395). Обратите внимание на то, что эта проекция является конформной при мелких масштабах картографирования, что позволяет использовать ее для решения навигационных задач.

Комментарий: если по вашим расчетам судно пришло в бухту Солнечная, то в качестве ответа нужно указать «Солнечная». Для решения задачи воспользуйтесь плагином Azimuth and Distance.

Номер отрезка Азимут, ° Расстояние, морские мили
1 84 547,8
2 83 358,2
3 95 391,5
4 50 1430,9
5 127 480,6
6 95 27

Решение

Решать задачу необходимо по следующему плану:

  1. Создать слой с точкой, координаты которой указаны в задании. Это можно сделать разными способами, например, через инструмент «добавить слой из текста с разделителями».
  2. Создать линейный слой в проекции WGS-84 / World Mercator (EPSG:3395).
  3. Перевести морские мили в метры.
  4. Запустить плагин Azimuth and Distance.
  5. Каждая строка таблицы — это прямолинейный отрезок маршрута судна. Чтобы выполнить построение этих отрезков, в диалоговом окне инструмента необходимо последовательно вводить следующие параметры:

    • Starting point — точка, от которой начинается построение прямолинейного отрезка. Для первого отрезка — это точка из условия, для последующих — конечная точка предыдущего отрезка.
    • Azimuth — значение угла из второго столбца таблицы.
    • Distance — расстояние из третьего столбца таблицы, переведенное в метры.

Ответ

Слободская.

Задача 1.4.(10 баллов)
Дешифрирование динамики
Темы: многозональные снимки, синтез цветных изображений, визуальное дешифрирование

Условие

Покровное оледенение образуется там, где снеговая линия опускается до уровня низменностей. Движение льда, как правило, происходит от центра к периферии со скоростью от нескольких сантиметров до нескольких километров в год. Если край ледника заканчиваются в море, происходит его раскалывание и образование айсбергов.

Рис. 1.2. Снимок, полученный 16 августа 1995 года

Даны фрагменты снимков, полученных съемочными системами Landsat (номер миссии определите самостоятельно):

Необходимо оценить суммарное изменение площади ледовых языков (1 и 2 на рис. 1.2). Боковые ледовые языки в суммарной площади учитывать не нужно. Площадь должна быть рассчитана в проекции UTM.

В качестве ответа запишите суммарную площадь изменений ледовых языков в квадратных километрах с точностью до третьего знака после запятой. Если произошло сокращение площади ледника, поставьте перед значением знак минус «\(-\)» без пробела, если произошло увеличение площади, укажите только ее значение без дополнительных знаков.

Решение

Для корректной векторизации динамики ледовых языков необходимо выполнить синтез цветных изображений.

Исходя из даты съемки, можно сделать вывод о номере миссии, для того чтобы соотнести номер канала и диапазон видимого и ближнего инфракрасного спектров.

В 1995 году снимки получены съемочной системой Landsat-5.

В 2023 году снимки получены съемочной системой Landsat-8,9.

Синтез каналов 1995 2023
Красный, зеленый, синий
Коротковолновый инфракрасный, ближний инфракрасный, красный
Синтез разновременных снимков (синий канал)

Ответ

\(-32{,}612 \pm 0{,}5\).

Задача 1.5.(10 баллов)
Дешифрирование радиолокационных снимков
Тема: дешифрирование радиолокационных снимков

Условие

Дан фрагмент снимка (рис. 1.3), полученного съемочной системой Sentinel-1 14 августа 2024, и его описание. Необходимо заполнить пробелы или определить, какой цифрой на снимке отмечен описываемый объект.

За каждый правильный ответ начисляется 1 балл, за неправильные ответы баллы не вычитаются.

«На снимок попадают острова архипелага А (заполнить самостоятельно). Акватория Б (заполните самостоятельно) моря, которая отображена на снимке, практически полностью свободна ото льда, небольшие по площади ледовые поля В (выберите цифру, которая соответствует описываемому объекту на снимке) есть в проливе между островами архипелага. В акватории моря Г (заполните самостоятельно) дешифрируются разреженные и редкие льды Д (выберите цифру, которая соответствует описываемому объекту на снимке).

Дешифрируются области ветрового волнения Е (выберите цифру, которая соответствует описываемому объекту на снимке) и области штиля Ж (выберите цифру, которая соответствует описываемому объекту на снимке).

Рис. 1.3. Фрагмент космического снимка

Скопление айсбергов З (выберите цифру, которая соответствует описываемому объекту на снимке) спровоцировано сходом покровного ледника И (выберите цифру, которая соответствует описываемому объекту на снимке).

Визуально определяются покровные ледники К (выберите цифру, которая соответствует описываемому объекту на снимке) и области, свободные ото льда и снега Л (выберите цифру, которая соответствует описываемому объекту на снимке)».

Решение

  1. Из задачи следует, что на снимке представлены острова архипелага. Они имеют достаточно большую площадь, так как занимают всю сцену. В августе на окружающей острова акватории еще есть лед. При сопоставлении снимка с любыми доступными картографическими материалами можно сделать вывод о том, что на нем отображены острова архипелага Северная Земля, берега которых выходят к Карскому морю и морю Лаптевых (1.4).
  2. Яркость объектов на радиолокационных снимках определяется их шероховатостью, геометрией и диэлектрической проницаемостью. Области штиля на море имеют свойства гладкой поверхности, которая провоцирует зеркальное отражение радиоволн в сторону, противоположную радиоприемнику, за счет чего они имеют минимальную яркость (черный цвет) на снимке. Ветровое волнение на радиолокационном снимке проявляется как чередование светлых и темных полос.

    Рис. 1.4. Фрагмент карты

  3. Выполнить дешифрирование покровного оледенения и территорий острова, которые свободны ото льда, можно, сопоставив иллюстрацию со снимками на доступных веб-картографических сервисах.
  4. По условию известно, что сход покровного ледника спровоцировал образование айсбергов, поэтому можно сделать вывод о том, что край ледника доходит до моря, где происходит образование айсбергов за счет разрушения льда.
  5. Определить, где на сцене небольшие по площади ледовые поля и разреженные и редкие льды, можно по яркости, рисунку на снимке, а также исходя из описания в задаче. Известно, что небольшие ледовые поля зафиксированы в акватории, практически полностью свободной ото льда, это акватория Карского моря.

Ответ

А — Северная Земля (1 балл), Б — Карского (1 балл), В — 7 (1 балл), Г — Лаптевых (1 балл), Д — 4 (1 балл), Е — 6 (1 балл), Ж — 3 (1 балл), З — 8 (1 балл), И — 1 (1 балл), К — 2 (1 балл), Л — 5 (1 балл).

Задача 1.6.(10 баллов)
Написание программы для расчета индекса NDWI
Тема: автоматизированный расчет индекса NDWI

Условие

Индексные изображения широко применяются для классификации отображенных на оптических снимках объектов и изучения их состояния. Для выявления водоемов на снимках может быть использован нормализованный разностный водный индекс (\(\mathrm{NDWI}\)).

На языке Python напишите программный код для расчета индекса \(\mathrm{NDWI}\) для фрагмента спутникового снимка, полученного съемочной системой Sentinel-2.

Расчет индекса \(\mathrm{NDWI}\) должен выполняться согласно формуле \eqref{eq:aks_0106}: \[\mathrm{NDWI} = \frac{(\mathrm{Green} - \mathrm{NIR})}{(\mathrm{Green} + \mathrm{NIR})}, \label{eq:aks_0106}\] где \(\mathrm{Green}\) — зеленый канал снимка (Band 3), \(\mathrm{NIR}\) — ближний инфракрасный канал снимка (Band 8).

Входные данные и функциональные требования

Каналы фрагмента снимка, для которого выполняется расчет индекса, хранятся в zip-архиве images.zip. Каждый канал сохранен в файл формата TIFF с расширением *.tiff (тип данных Byte — 8-битное беззнаковое целое). При этом название файла оканчивается цифрой, соответствующей номеру содержащегося в файле канала (например, файл с названием Channel_3.tiff будет содержать третий канал снимка).

На вход программы передается путь к zip-архиву images.zip. Архив может содержать как нужные, так и не нужные для расчета индекса \(\mathrm{NDWI}\) каналы снимка. Кроме того, необходимые для расчета каналы могут отсутствовать в zip-архиве. Если zip-архив не содержит необходимые для расчета индекса \(\mathrm{NDWI}\) каналы (один или оба), программа должна вывести в консоль число \(999.99\) (разделитель целой и дробной части — точка) и завершить работу.

Если zip-архив содержит необходимые для расчета индекса \(\mathrm{NDWI}\) каналы, для фрагмента снимка должен быть выполнен расчет индекса \(\mathrm{NDWI}\), после чего должно быть найдено его среднее значение. Среднее значение индекса, округленное до сотых, должно быть выведено в консоль (разделитель целой и дробной части — точка), после чего программа должна завершить работу.

Решение

Ниже представлено решение на языке Python.

Python
import numpy as np
from PIL import Image
from numpy import asarray
from zipfile import ZipFile
import os

channel3 = ""
channel8 = ""

ZipFile("images.zip").extractall("images")

for file in os.listdir("D:/imp/images"):
    filename = os.fsdecode(file)
    if filename.endswith("3.tiff"): 
        channel3 = ./images/" + filename
    if filename.endswith("8.tiff"): 
        channel8 = "./images/" + filename 


if (channel3 == "" or channel8 == ""):
    print(999.99)
else:        
    img3 = Image.open(channel3)
    img8 = Image.open(channel8)

    img3data = asarray(img3)
    img8data = asarray(img8)

    divisible = np.subtract(img3data, img8data, dtype = np.float64) 
    divider   = np.add(img3data, img8data, dtype = np.float64)
    ndwi      = np.divide(divisible, divider, dtype = np.float64)

    print(np.round(np.mean(ndwi), 2))

Ответ

\(-0{,}65\). Данные, используемые для проверки: https://disk.yandex.ru/d/7w8dg4f5ZxCkjQ/data.

Задача 1.7.(10 баллов)
Написание программы для автоматизированного дешифрирования водных объектов
Тема: автоматизированный расчет индекса NDWI

Условие

Автоматизированное определение границ водной поверхности на спутниковом снимке может быть выполнено путем пороговой обработки индексного изображения. В результате на его основе формируется бинарная маска — растр, ячейки которого содержат только два различных значения (например, 0 либо 1). В процессе пороговой обработки значение каждого пикселя изображения сравнивается с пороговым значением, после чего пикселю присваивается новое значение (например, 0 для пикселей, значения которых ниже порогового, и 1 для всех остальных).

В рамках данной задачи необходимо написать программный код для формирования бинарной маски на основе растра, полученного в результате расчета индекса \(\mathrm{NDWI}\) для фрагмента снимка. В качестве порогового значения установите значение \(-0{,}5\) (пиксели, значения которых больше или равны пороговому, соответствуют водной поверхности). Ячейкам растра, в границах которых находится водная поверхность, при формировании маски должно быть присвоено значение 1, всем остальным — значение 0.

Входные данные и функциональные требования

Дан растр, полученный в результате расчета индекса \(\mathrm{NDWI}\) для фрагмента спутникового снимка. Растр сохранен в файл NDWI.tiff (формат TIFF, тип данных Float32 — 32-битное с плавающей точкой). Путь к растру NDWI.tiff передается на вход программы. На основе данного растра необходимо сформировать бинарную маску, выполнив классификацию пикселей на основе их значений. Количество пикселей бинарной маски, имеющих значение 0, должно быть выведено в консоль, после чего программа должна завершить работу.

Решение

Ниже представлено решение на языке Python.

Python
import numpy as np
from PIL import Image
from numpy import as array

ndwiImg = Image.open("NDWI.tiff")
ndwiData = asarray(ndwiImg)
watermask = np.where(ndwi >= -0.5, 1, 0)
print(np.count_nonzero(watermask == 0))

Ответ

17938. Данные, используемые для проверки: https://disk.yandex.ru/d/7w8dg4f5ZxCkjQ/data.

Задача 1.8.(10 баллов)
Написание программы для автоматизированного расчета площади водных объектов
Тема: автоматизированный расчет площади объектов

Условие

Необходимо написать программный код для расчета площади водной поверхности на фрагменте снимка с использованием бинарной маски водной поверхности. Ячейки бинарной маски, в границах которых находится водная поверхность, содержат значение 1, все остальные — 0.

Входные данные и функциональные требования

Дан растр, полученный в результате формирования бинарной маски на основе индексного изображения. Растр сохранен в файл watermask.tiff (формат TIFF, тип данных Int32 — 32-битное целое со знаком). Путь к растру watermask.tiff передается на вход программы. На основе растра watermask.tiff программа должна выполнить расчет площади водной поверхности (расчет площади выполняется в проекции снимка, на основе которого была сформирована маска). Значение площади в квадратных километрах, округленное до сотых, должно быть выведено в консоль (разделитель целой и дробной части — точка), после чего программа должна завершить работу.

Решение

Ниже представлено решение на языке Python.

Python
import numpy as np
from PIL import Image
from numpy import as array

watermaskImg = Image.open("watermask.tiff") 
watermaskData = asarray(watermaskImg) 
print(np.round(np.count_nonzero(watermaskData == 1) / 10000, 2))

Ответ

\(0{,}29\). Данные, используемые для проверки: https://disk.yandex.ru/d/7w8dg4f5ZxCkjQ/data.

Задача 1.9.(15 баллов)
Написание программы для автоматизированного дешифрирования мутности приповерхностных вод
Тема: автоматизированный расчет индекса NDTI

Условие

Уменьшение прозрачности воды в связи с наличием органических и неорганических взвешенных веществ характеризует нормализованный разностный индекс мутности (\(\mathrm{NDTI}\)). Значения этого индекса колеблются в диапазоне от \(-1\) до \(1\), — чем выше значение, тем более вода мутная.

Необходимо написать программный код для расчета соотношения площади замутненных и незамутненных приповерхностных вод в границах фрагмента снимка. Определение того, является ли вода мутной, должно осуществляться на основе индекса \(\mathrm{NDTI}\). Мутной воде на индексном изображении соответствуют пиксели с положительными значениями. Для определения границ водной поверхности на фрагменте снимка должна использоваться бинарная маска водной поверхности.

Индекса \(\mathrm{NDTI}\) рассчитывается по формуле \eqref{eq:aks_0109}: \[\mathrm{NDTI} = \frac{(\mathrm{Red} - \mathrm{Green})}{(\mathrm{Red} + \mathrm{Green})}, \label{eq:aks_0109}\] где \(\mathrm{Red}\) — красный канал снимка (Band 4), \(\mathrm{Green}\) — зеленый канал снимка (Band 3).

Входные данные и функциональные требования

Каналы фрагмента снимка, для которого выполняется расчет индекса, хранятся в zip-архиве images2.zip. Каждый канал сохранен в файл формата TIFF с расширением *.tiff (тип данных Byte — 8-битное беззнаковое целое). При этом название файла оканчивается цифрой, соответствующей номеру содержащегося в файле канала (например, файл с названием Channel_3.tiff будет содержать третий канал снимка). Кроме того, zip-архив содержит бинарную маску водной поверхности, сохраненную в файл watermask.tiff (формат TIFF, тип данных Int32 — 32-битное целое со знаком). Ячейки бинарной маски, в границах которых находится водная поверхность, содержат значение 1, все остальные — 0.

На вход программы передается путь к zip-архиву images2.zip. Архив может содержать как нужные, так и ненужные для расчета индекса \(\mathrm{NDTI}\) каналы снимка. Кроме того, необходимые для расчета каналы могут отсутствовать в zip-архиве. Если zip-архив не содержит необходимые для расчета индекса \(\mathrm{NDTI}\) каналы (один или оба), программа должна вывести в консоль число \(999.99\) (разделитель целой и дробной части — точка) и завершить работу.

Программа должна выполнить расчет соотношения площади замутненных приповерхностных вод на фрагменте снимка к площади незамутненных вод (расчет площади выполняется в проекции снимка). Полученное значение, округленное до тысячных, должно быть выведено в консоль (разделитель целой и дробной части — точка), после чего программа должна завершить работу.

Решение

Ниже представлено решение на языке Python.

Python
import numpy as np
from PIL import Image
from numpy import asarray
from zipfile import ZipFile
import os

channel3 = ""
channel4 = ""

watermaskImg = Image.open("watermask.tiff") 
watermaskData = asarray(watermaskImg) 

ZipFile("images2.zip").extractall("images2")

for file in os.listdir("./images2"):
    filename = os.fsdecode(file)
    if filename.endswith("3.tiff"): 
        channel3 = "./images2/" + filename
    if filename.endswith("4.tiff"): 
        channel4 = "./images2/" + filename 

if (channel3 == "" or channel4 == ""):
    print(999.99)
else:        
    img3 = Image.open(channel3)
    img4 = Image.open(channel4)

    img3data = asarray(img3)
    img4data = asarray(img4)

    divisible = np.subtract(img4data, img3data, dtype = np.float64) 
    divider   = np.add(img4data, img3data, dtype = np.float64)
    ndti      = np.divide(divisible, divider, dtype = np.float64)
    ndti_cut = np.multiply(watermaskData, ndti)

    clearWaterArea = np.count_nonzero(watermaskData == 1) 
    muddyWaterArea = np.count_nonzero(ndti_cut > 0) 

    print(np.round(muddyWaterArea/clearWaterArea, 3))

Ответ

\(0{,}284\). Данные, используемые для проверки: https://disk.yandex.ru/d/7w8dg4f5ZxCkjQ/data.

text slider background image text slider background image
text slider background image text slider background image text slider background image text slider background image