Домашнее задание. Средняя температура за лето
20 января 2018
Посчитать среднюю температуру за лето 2017, найти самый холодный и самый тёплый дни. Подсчитать число дождливых дней.
Исходные данные
Данные о погоде за лето находятся в файле weather.csv (https://anhel.in/files/weather2017.csv). Они получены с метеостанции в Огурцово и охватывают период с 1 июня 2017 по 31 августа 2017 (источник: сайт http://rp5.ru). Файл текстовый, в кодировке UTF-8. Он содержит таблицу наблюдений погоды в следующем формате.
- Одно наблюдение — одна строка файла.
- В день делается несколько наблюдений, в разное время.
- Столбцы таблицы разделяются символом «;» (точка с запятой).
- Кроме этого, каждое значение взято в кавычки («"»).
- Строки файла, начинающиеся с символа «#» в первой позиции — комментарии. Они не содержат информации и должны быть проигнорированы.
Скачайте этот файл и поместите в одну папку с вашим скриптом.
Поля таблицы
Повторюсь, поля разделены точкой с запятой, а значение каждого поля взято в кавычки. Это довольно важно: в некоторых полях может попадаться символ «;» (точка с запятой) прямо в середине поля. Именно поэтому каждое поле взято в кавычки. То есть просто разбить прочитанную строку по разделителю «;» недостаточно. Кроме того, у всех чисел с плавающей точкой разделитель целой и дробной части — точка («.»), а не запятая, как в нашей стране принято.
- Дата и время наблюдения. Формат «ДД.ММ.ГГГГ ЧЧ:ММ» (например, "01.07.2017 16:00"), время новосибирское.
- T. Температура воздуха в момент наблюдения на высоте 2 м над землёй, в °С. Число с плавающей точкой, разделитель целой и дробной части — точка, «.» (например, "17.0").
- Po. Атмосферное давление, в мм. ртутного столба. Число с плавающей точкой.
- P. Атмосферное давление, приведённое к среднему уровню моря, в мм. рт. ст. Число с плавающей точкой.
- Pa. Барическая тенденция, то есть изменения давления за последние три часа, в мм. рт.ст. Число с плавающей точкой.
- U. Относительная влажность воздуха на выстоте 2 м над землёй, в %. Целое число.
- DD. Направление ветра на высоте 10-12 м, усреднённое за последние 10 минут. Строка.
- Ef. Скорость ветра на высоте 10-12 м, усреднённая за последние 10 минут, в м/с. Целое число.
- ff10. Максимальный порыв ветра на высоте 10-12 м за последние 10 минут, в м/с. Целое число.
- ff3. Максимальный порыв ветра на высоте 10-12 метров между наблюдениями, в м/с. Целое число.
- N. Общая облачность. Строка.
- WW. Текущая погода, сообщаемая с метеостанции. Строка.
- W1. Прошедшая погода между сроками наблюдения 1. Строка.
- W2. Прошедшая погода между сроками наблюдения 2. Строка.
- Tn. Минимальная тем пература за прошедший период, в °С. Число с плавающей точкой.
- Tx. Максимальная температура за прошедший период, в °С. Число с плавающей точкой.
- Cl. Описание облачности (слоистые, кучевые облака). Строка.
- Nh. Количество наблюдаемых облаков Cl, в %. Строка.
- H. Высота основания самых низких облаков, м. Строка.
- Cm. Описание облачности (высококучевые и высокослоистые облака). Строка.
- Ch. Описание облачности (перистые, перисто-кучевые и перисто-слоистые облака). Строка.
- VV. Горизонтальная дальность видимости, в км. Число с плавающей точкой.
- Td. Температура точки росы на высоте 2 м от земли, в °С. Число с плавающей точкой.
- RRR. Количество осадков за сутки. Заносится один раз в сутки. Число, либо строка (типа «Осадков нет», «Следы осадков» и т.д.), либо пустая строка (если в этом наблюдении эту информацию не заносили).
- tR. Период времени, за которые накоплено указанное число осадков, в часах. Целое число, либо пустая строка, если поле RRR в этой строке пустое.
- E. Состояние поверхности почвы (без учёта снега и льда). Строка.
- Tg. Минимальная температура поверхности почвы за ночь, в °С. Число с плавающей точкой.
- E’. Состояние поверхности почвы с учётом снега и льда. Строка.
- sss. Высота снежного покрова, в см. Целое число.
Откройте файл в любом текстовом редакторе с поддержкой кодировки UTF-8 и посмотрите на формат своими глазами.
Задача
Необходимо открыть файл, прочитать его по строкам, каждую строку разбить на поля по разделителю «;», убрать кавычки вокруг значени поля, и извлечь значения полей «Дата и время», «T» и «RRR».
Затем нужно вычислить среднее значение температуры по каждому дню и за весь период (методом среднего арифметического). Сохранить даты самого тёплого и самого холодного дня. Так же необходимо посчитать, сколько было дождливых дней (в такие дни в поле RRR написано что угодно, кроме "Осадков нет").
Результаты нужно вывести на экран с сопроводительными надписями, напрмер:
Средняя температура = 21.0 градусов, дождливых дней было 28. Самый тёплый день: 18.06.2017, самый холодный: 27.08.2017
Что понадобится
- Открытие файла (open)
- Цикл for
- Работа со строками: split, find, преобразование типов
- Работа со списками.