Задание посвящено работе с данными содержания озона в атмосфере Земли за несколько десятилетий.
Вам нужно проанализировать данные в формате NetCDF, нарисовать график и вывести статистическую информацию в файл формата CSV.
Программа должна быть представлена в файле ozon.py, график в файле ozon.png и выходные результаты в файле ozon.csv.
Файл с исходными данными в репозиторий класть ненужно.
Дедлайн 29 января 2026 в 23:55
Вы должны сделать следующее:
-
Загрузить файл с данными: https://yadi.sk/d/mTqYv4rF34drlQ (464 МБ). Не кладите файл в репозиторий, он очень большой. Информацию о данных смотрите на сайте http://www.temis.nl/protocols/O3global.php (возможно, потребуется VPN). По временной шкале данные начинаются с января 1960 года.
-
В файле
ozon.pyнаходится заготовка программы, принимающая в качестве аргумента командной строки имя файла в формате CSV, содержащего долготы и широты в градусах. По умолчанию используется файлcoords.csv:> python3 ozon.py my_coords.csvДля задания аргументов командной строки в Spyder используйте меню "Запуск" -> "Настройки для файла..." (
Ctrl+F6) -> "Опции командной строки"Для каждой пары координат из входного файла код в
ozon.pyдолжен рассчитать так называемые описательные статистики для содержания озона. Зависимость содержания озона от координат и времени нужно извлечь из файлаMSR-2.nc. Выходной файлozon.csvдолжен содержать следующие колонки:longitude— долгота в градусах,latitude— широта в градусах,min— минимальное содержание озона для этих координат,mean— среднее содержание озона,max— максимальное содержание озона,q25— 25% квартиль содержания озона,q50— медиану содержания озона,q75— 75% квартиль содержания озона,jan_min— минимальное содержание озона для этих координат (только для всех январей),jan_mean— среднее содержание озона (только для всех январей),jan_max— максимальное содержание озона (только для всех январей),jan_q25— 25% квартиль содержания озона (только для всех январей),jan_q50— медиану содержания озона (только для всех январей),jan_q75— 75% квартиль содержания озона (только для всех январей),jul_min— минимальное содержание озона для этих координат (только для всех июлей),jul_mean— среднее содержание озона (только для всех июлей),jul_max— максимальное содержание озона (только для всех июлей),jul_q25— 25% квартиль содержания озона (только для всех июлей),jul_q50— медиану содержания озона (только для всех июлей),jul_q75— 75% квартиль содержания озона (только для всех июлей).
Одновременно с этим, программа должна сохранять файл
ozon.pngс одним графиком, представляющим собой диаграмму типа «ящик с усами» для содержания озона во всех заданных местах. Цвета и оформление графика остаются на ваше усмотрение, но график должен быть понятным (не забудьте подписать оси).Программа
ozon.pyдолжна корректно работать для любых входных файлов в требуемом формате, а не только для файлаcoords.csv, приведённого в качестве примера. -
Задание со звёздочкой (на бонусные баллы). Напишите вспомогательную программу
geocode.py. Программа принимает на вход CSV файл, содержащий одну колонку с географическими названиями, на выходе сохраняет файлcoords.csvсодержащий две колонки: долготу и широту. Используйте пакет geopy чтобы преобразовать строки с географическими названиями в соответствующие им координаты.