Инженерный тур. 1 этап
Сколько Шаров можно найти у берегов архипелага Новая Земля?
В качестве ответа укажите количество без пробелов.
Слово «Шар» заимствовано из финно-угорских языков и у местных народов имело значение «Морской пролив».
Пролив Маточки Шар разделяет о. Северный и о. Южный.
Пролив Костин Шар разделяет о. Южный и о. Междушарий.
Полярная стация Маточкин Шар.
3.
Даны координаты точки в проекции МСК-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.

R-41-XIX, XX.
Судно начало движение из порта города Мурманска, прошло вниз по Кольскому заливу и вышло в открытое море. Северо-западнее острова Кильдин от точки с координатами \(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 |
Решать задачу необходимо по следующему плану:
- Создать слой с точкой, координаты которой указаны в задании. Это можно сделать разными способами, например, через инструмент «добавить слой из текста с разделителями».
- Создать линейный слой в проекции
WGS-84 / World Mercator (EPSG:3395). - Перевести морские мили в метры.
- Запустить плагин
AzimuthandDistance. Каждая строка таблицы — это прямолинейный отрезок маршрута судна. Чтобы выполнить построение этих отрезков, в диалоговом окне инструмента необходимо последовательно вводить следующие параметры:
Starting point— точка, от которой начинается построение прямолинейного отрезка. Для первого отрезка — это точка из условия, для последующих — конечная точка предыдущего отрезка.Azimuth— значение угла из второго столбца таблицы.Distance— расстояние из третьего столбца таблицы, переведенное в метры.
Слободская.
Покровное оледенение образуется там, где снеговая линия опускается до уровня низменностей. Движение льда, как правило, происходит от центра к периферии со скоростью от нескольких сантиметров до нескольких километров в год. Если край ледника заканчиваются в море, происходит его раскалывание и образование айсбергов.

Даны фрагменты снимков, полученных съемочными системами Landsat (номер миссии определите самостоятельно):
- 16 августа 1995 (ссылка для скачивания: https://disk.yandex.ru/d/7w8dg4f5ZxCkjQ/1995.rar);
- 29 августа 2023 (ссылка для скачивания: https://disk.yandex.ru/d/7w8dg4f5ZxCkjQ/2023.rar).
Необходимо оценить суммарное изменение площади ледовых языков (1 и 2 на рис. 1.2). Боковые ледовые языки в суммарной площади учитывать не нужно. Площадь должна быть рассчитана в проекции UTM.
В качестве ответа запишите суммарную площадь изменений ледовых языков в квадратных километрах с точностью до третьего знака после запятой. Если произошло сокращение площади ледника, поставьте перед значением знак минус «\(-\)» без пробела, если произошло увеличение площади, укажите только ее значение без дополнительных знаков.
Для корректной векторизации динамики ледовых языков необходимо выполнить синтез цветных изображений.
Исходя из даты съемки, можно сделать вывод о номере миссии, для того чтобы соотнести номер канала и диапазон видимого и ближнего инфракрасного спектров.
В 1995 году снимки получены съемочной системой Landsat-5.
В 2023 году снимки получены съемочной системой Landsat-8,9.
| Синтез каналов | 1995 | 2023 |
|---|---|---|
| Красный, зеленый, синий | ![]() |
![]() |
| Коротковолновый инфракрасный, ближний инфракрасный, красный | ![]() |
![]() |
| Синтез разновременных снимков (синий канал) | ![]() |
|
\(-32{,}612 \pm 0{,}5\).
Дан фрагмент снимка (рис. 1.3), полученного съемочной системой Sentinel-1 14 августа 2024, и его описание. Необходимо заполнить пробелы или определить, какой цифрой на снимке отмечен описываемый объект.
За каждый правильный ответ начисляется 1 балл, за неправильные ответы баллы не вычитаются.
«На снимок попадают острова архипелага А (заполнить самостоятельно). Акватория Б (заполните самостоятельно) моря, которая отображена на снимке, практически полностью свободна ото льда, небольшие по площади ледовые поля В (выберите цифру, которая соответствует описываемому объекту на снимке) есть в проливе между островами архипелага. В акватории моря Г (заполните самостоятельно) дешифрируются разреженные и редкие льды Д (выберите цифру, которая соответствует описываемому объекту на снимке).
Дешифрируются области ветрового волнения Е (выберите цифру, которая соответствует описываемому объекту на снимке) и области штиля Ж (выберите цифру, которая соответствует описываемому объекту на снимке).
Скопление айсбергов З (выберите цифру, которая соответствует описываемому объекту на снимке) спровоцировано сходом покровного ледника И (выберите цифру, которая соответствует описываемому объекту на снимке).
Визуально определяются покровные ледники К (выберите цифру, которая соответствует описываемому объекту на снимке) и области, свободные ото льда и снега Л (выберите цифру, которая соответствует описываемому объекту на снимке)».
- Из задачи следует, что на снимке представлены острова архипелага. Они имеют достаточно большую площадь, так как занимают всю сцену. В августе на окружающей острова акватории еще есть лед. При сопоставлении снимка с любыми доступными картографическими материалами можно сделать вывод о том, что на нем отображены острова архипелага Северная Земля, берега которых выходят к Карскому морю и морю Лаптевых (1.4).
Яркость объектов на радиолокационных снимках определяется их шероховатостью, геометрией и диэлектрической проницаемостью. Области штиля на море имеют свойства гладкой поверхности, которая провоцирует зеркальное отражение радиоволн в сторону, противоположную радиоприемнику, за счет чего они имеют минимальную яркость (черный цвет) на снимке. Ветровое волнение на радиолокационном снимке проявляется как чередование светлых и темных полос.
Рис. 1.4. Фрагмент карты- Выполнить дешифрирование покровного оледенения и территорий острова, которые свободны ото льда, можно, сопоставив иллюстрацию со снимками на доступных веб-картографических сервисах.
- По условию известно, что сход покровного ледника спровоцировал образование айсбергов, поэтому можно сделать вывод о том, что край ледника доходит до моря, где происходит образование айсбергов за счет разрушения льда.
- Определить, где на сцене небольшие по площади ледовые поля и разреженные и редкие льды, можно по яркости, рисунку на снимке, а также исходя из описания в задаче. Известно, что небольшие ледовые поля зафиксированы в акватории, практически полностью свободной ото льда, это акватория Карского моря.
А — Северная Земля (1 балл), Б — Карского (1 балл), В — 7 (1 балл), Г — Лаптевых (1 балл), Д — 4 (1 балл), Е — 6 (1 балл), Ж — 3 (1 балл), З — 8 (1 балл), И — 1 (1 балл), К — 2 (1 балл), Л — 5 (1 балл).
Индексные изображения широко применяются для классификации отображенных на оптических снимках объектов и изучения их состояния. Для выявления водоемов на снимках может быть использован нормализованный разностный водный индекс (\(\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.
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.
Автоматизированное определение границ водной поверхности на спутниковом снимке может быть выполнено путем пороговой обработки индексного изображения. В результате на его основе формируется бинарная маска — растр, ячейки которого содержат только два различных значения (например, 0 либо 1). В процессе пороговой обработки значение каждого пикселя изображения сравнивается с пороговым значением, после чего пикселю присваивается новое значение (например, 0 для пикселей, значения которых ниже порогового, и 1 для всех остальных).
В рамках данной задачи необходимо написать программный код для формирования бинарной маски на основе растра, полученного в результате расчета индекса \(\mathrm{NDWI}\) для фрагмента снимка. В качестве порогового значения установите значение \(-0{,}5\) (пиксели, значения которых больше или равны пороговому, соответствуют водной поверхности). Ячейкам растра, в границах которых находится водная поверхность, при формировании маски должно быть присвоено значение 1, всем остальным — значение 0.
Дан растр, полученный в результате расчета индекса \(\mathrm{NDWI}\) для фрагмента спутникового снимка. Растр сохранен в файл NDWI.tiff (формат TIFF, тип данных Float32 — 32-битное с плавающей точкой). Путь к растру NDWI.tiff передается на вход программы. На основе данного растра необходимо сформировать бинарную маску, выполнив классификацию пикселей на основе их значений. Количество пикселей бинарной маски, имеющих значение 0, должно быть выведено в консоль, после чего программа должна завершить работу.
Ниже представлено решение на языке 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, все остальные — 0.
Дан растр, полученный в результате формирования бинарной маски на основе индексного изображения. Растр сохранен в файл watermask.tiff (формат TIFF, тип данных Int32 — 32-битное целое со знаком). Путь к растру watermask.tiff передается на вход программы. На основе растра watermask.tiff программа должна выполнить расчет площади водной поверхности (расчет площади выполняется в проекции снимка, на основе которого была сформирована маска). Значение площади в квадратных километрах, округленное до сотых, должно быть выведено в консоль (разделитель целой и дробной части — точка), после чего программа должна завершить работу.
Ниже представлено решение на языке 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.
Уменьшение прозрачности воды в связи с наличием органических и неорганических взвешенных веществ характеризует нормализованный разностный индекс мутности (\(\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.
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.







