Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №1756226
А
Аноним
07 октября 2024 15:38 · публичный вопрос
А
Аноним

Осуществление мониторинга водных объектов позволяет своевременно выявить негативные процессы, влияющие на качество воды и общее состояние водоемов, и прогнозировать их развитие. В…

Запрос пользователя

Осуществление мониторинга водных объектов позволяет своевременно выявить негативные процессы, влияющие на качество воды и общее состояние водоемов, и прогнозировать их развитие. В рамках заданий 6-9 Вам необходимо исследовать водные объекты, отображенные на фрагменте снимка, полученного съемочной системой Sentinel-2. Целью задания является определение площади загрязнения приповерхностных вод водных объектов взвешенными веществами. Вам потребуется написать программный код для выполнения следующих задач: Расчет индекса NDWI и определение его среднего значения в границах фрагмента снимка (задание 6). Формирование бинарной маски водной поверхности на основе индексного изображения (задание 7). Расчет площади водной поверхности на фрагменте снимка с использованием бинарной маски (задание 8). Расчет индекса NDTI в границах водной поверхности и определение соотношения площади замутненных приповерхностных вод и общей площади водоема

Ответ нейросети
07 октября 2024 15:38

Отличный вопрос! Давайте разберем ваши задания по этапам и проследим, как можно написать код для выполнения указанных задач на основе данных спутникового наблюдения. Мы будем использовать библиотеки Python, такие как NumPy и Rasterio, для обработки растровых данных.

Задание 6: Расчет индекса NDWI и определение его среднего значения

Индекс NDWI (Normalized Difference Water Index) можно рассчитать по формуле:

\[ NDWI = \frac{(Green - NIR)}{(Green + NIR)} \]

где Green - отражение в зеленом канале, а NIR - отражение в ближнем инфракрасном канале.

import rasterio
import numpy as np

# Открываем растровый файл
with rasterio.open('path_to_your_image.tif') as src:
    green_channel = src.read(3)  # Замените 3 на номер зеленого канала
    nir_channel = src.read(4)     # Замените 4 на номер NIR канала

# Расчет NDWI
ndwi = (green_channel - nir_channel) / (green_channel + nir_channel)

# Определение среднего значения NDWI
mean_ndwi = np.mean(ndwi)
print(f'Среднее значение NDWI: {mean_ndwi}')

Задание 7: Формирование бинарной маски водной поверхности

Создадим бинарную маску на основе рассчитанного значения NDWI. Обычно значение NDWI выше 0 указывает на наличие воды.

# Формирование бинарной маски
binary_mask = ndwi > 0

# Сохранение бинарной маски
with rasterio.open('binary_mask.tif', 'w', **src.meta) as dst:
    dst.write(binary_mask.astype(rasterio.uint8), 1)

Задание 8: Расчет площади водной поверхности

Теперь, используя бинарную маску, можем рассчитать площадь-воду.

# Определяем площадь водной поверхности
water_area_pixels = np.sum(binary_mask)  # Количество пикселей воды
pixel_area = src.transform[0] * src.transform[5]  # Площадь одного пикселя
water_area = water_area_pixels * pixel_area

print(f'Площадь водной поверхности: {water_area} квадратных единиц')

Задание 9: Расчет индекса NDTI и соотношение площади замутненных приповерхностных вод

Индекс NDTI (Normalized Difference Turbidity Index) позволяет оценить мутность воды. Формула:

\[ NDTI = \frac{(SWIR - Green)}{(SWIR + Green)} \]

где SWIR - отражение в длинноволновом инфракрасном канале.

# Чтение канала SWIR
with rasterio.open('path_to_your_image.tif') as src:
    swir_channel = src.read(5)  # Замените 5 на номер SWIR канала

# Расчет NDTI
ndti = (swir_channel - green_channel) / (swir_channel + green_channel)

# Определение площади замутненных вод
turbid_water_mask = ndti > 0  # Применяем порог для мутной воды
turbid_area_pixels = np.sum(turbid_water_mask)

# Соотношение площадей
ratio = turbid_area_pixels / water_area_pixels if water_area_pixels > 0 else 0

print(f'Соотношение площади замутненных приповерхностных вод к общей площади водоема: {ratio}')

Эти кодовые блоки помогут вам выполнить каждую задачу, исследуя водные объекты на основе спутниковых снимков. Убедитесь, что вы заменили указанные номера каналов на правильные согласно вашему изображению. Успехов в ваших исследованиях!