Применение языка программирования R в деятельности общественной организации. Благодаря возможностям быстрой обработки и визуализации данных освещено много "тёмных углов" в данных мониторинга воздуха в г.Кривой Рог.
2. 2Кривой Рог: вид изнутри
Фото: Алексей Кущ
По информации Управления экологии Криворожского горисполкома: в 2015 году выбросы
в атмосферу города составили 315,4 тыс.тонн... примерно по 480 кг на каждого жителя
3. 3Кривой Рог: вид сверху
Длина видимой части дымового
шлейфа — более 90 км!
4. Мониторинг качества воздуха в Кривом Роге
●
4 автоматизированных поста на
балансе города
●
3 автоматизированных поста на
балансе «АрселорМиттал Кривой Рог»
●
5 постов — Лаборатория наблюдений
за состоянием атмосферного воздуха
г.Кривой Рог
●
1 пост — Госсанэпидемслужба
●
1 пост — Южный ГОК
●
2 поста — Северный ГОК
●
1 пост — Центральный ГОК
●
1 пост — Ингулецкий ГОК
●
4 поста — «Кривбассжелезорудком»
●
2 поста - «Евраз Сухая Балка»
●
1 пост — Криворожский завод горного
оборудования
●
1 пост — ГП «Криворожская
теплоцентраль»
●
Всего: 7 автоматизованных постов
19 неавтоматизованных постов
[данные — Криворожский исполком]
4
5. Первичные данные
(ПАО «АрселорМиттал Кривой Рог»)
1) измерения не
синхронные
2) пропуски измерений
3) временные интервалы
не выдержаны
Набивка данных в
полуручном режиме
Данные за ноябрь 2014 -
март 2015 года
14 полей * 32615 записей =
456610 значений
5
6. Используемые инструменты 6
●
R + Rstudio — базовая среда
●
magrittr — «туннелирование» функций (%>%)
●
tidyr — преобразование таблиц
●
dplyr — компиляция, усреднение,
суммирование
●
ggplot2 — графика
●
stationaRy — получение метеорологических
данных
●
zoo — обработка временных рядов
(интерполяция)
●
scales — настройки отображения различных
шкал на графике
●
extrafont — разовый импорт шрифтов в R
●
Debian GNU/Linux — единственная и
незаменимая!
> atmo2 <- read.csv("vozd_monitoring_KrR_fact_2.csv", header = T, sep =
";", dec = ",")#загружаем таблицу данных мониторинга воздуха
> atmo2$time.posCT.Kiev <-
as.POSIXct(as.character(atmo2$date.time.original), format = "%d/%m/%Y
%H:%M:%S", tz = "Europe/Kiev")#создаём поле в формате POSIXct
7. 7Импорт шрифтов в R
> library(extrafont)
Registering fonts with R
> font_import()
Importing fonts may take a few minutes, depending on the number of fonts and the
speed of the system. Continue? [y/n] y
Scanning ttf files in /usr/share/fonts/ ...
Extracting .afm files from .ttf files...
...
У кого установлен TeX/LaTeX — будет купаться в роскоши гарнитур!
8. 8Получение метеорологических данных
> library(stationaRy)
> library(magrittr)
> met_stations <- get_isd_stations()
> write.table(met_stations, "met_stations.csv", sep = ";")# просматриваем
список метеостанций во внешнем файле. Более 27 тыс. метеостанций
> KrR_point_met <- get_isd_stations() %>%
select_isd_station(name = "LOZUVATKA INTL") %>%
get_isd_station_data(startyear = 2005, endyear = 2016)
> KrR_point_met$time.posCT.UTC <-
as.POSIXct(format(KrR_point_met$time), tz="UTC")
> KrR_point_met$time.posCT.Kiev <-
as.POSIXct(format(KrR_point_met$time.posCT.UTC, tz="Europe/Kiev",
usetz=TRUE))
Данные после импорта с сервера NOAA нужно проверять!
Возможны «обрывы связи»
19. 19Графики единичных значений загрязнения воздуха:
ggplot2 + scales: geom_point + scale_x_datetime
Ответ ГСЧС: «...описанный инцидент
попадает под определение ''чрезвычайная
ситуация техногенного характера''...»
21. Планы на будущее
1) ждём с нетерпением данных мониторинга воздуха Криворожским
горисполкомом в форме открытых данных
2) освоение интерактивной графики
3) обработка данных дистанционного зондирования Земли средствами R
4) общение и обмен опытом!
21