File NIR_otchet.tex changed (mode: 100644) (index c5e9c42..9ed491e) |
102 |
102 |
% возможно, кол-во источников придется вставлять вручную |
% возможно, кол-во источников придется вставлять вручную |
103 |
103 |
Работа \total{page} стр., \total{table} табл., \total{figure} рис. , \totalmycitecounts ист. |
Работа \total{page} стр., \total{table} табл., \total{figure} рис. , \totalmycitecounts ист. |
104 |
104 |
|
|
105 |
|
ЯЗЫК ПРОГРАММИРОВАНИЯ PYTHON, АНАЛИЗ ВРЕМЕННЫХ РЯДОВ, МЕТЕОДАННЫЕ, ВРЕМЕННЫЕ РЯДЫ, NUMPY, STATSMODELS, PANDAS. |
|
|
105 |
|
ЯЗЫК ПРОГРАММИРОВАНИЯ PYTHON, NUMPY, STATSMODELS, PANDAS, АНАЛИЗ ВРЕМЕННЫХ РЯДОВ, МЕТЕОДАННЫЕ, ВРЕМЕННЫЕ РЯДЫ. |
106 |
106 |
|
|
107 |
107 |
Научно-исследовательская работа посвящена разработке сценариев анализа динамики метеопараметров. Конечная цель работы – создание сценария на языке Python для обработки и визуализации динамики температуры и осадков. |
Научно-исследовательская работа посвящена разработке сценариев анализа динамики метеопараметров. Конечная цель работы – создание сценария на языке Python для обработки и визуализации динамики температуры и осадков. |
108 |
108 |
|
|
|
... |
... |
original_stdout = sys.stdout |
220 |
220 |
# Считывание и обработка датасетов. |
# Считывание и обработка датасетов. |
221 |
221 |
print("Считывание и обработка данных.") |
print("Считывание и обработка данных.") |
222 |
222 |
data1 = pd.read_csv(data1, sep=";", header=None) |
data1 = pd.read_csv(data1, sep=";", header=None) |
223 |
|
data1.columns = ["index", "year", "month", "day", "temp_quality", "temp_min", "temp_avg", "temp_max", "precipitation"] |
|
|
223 |
|
data1.columns = ["index", "year", "month", "day", "temp_quality", |
|
224 |
|
"temp_min", "temp_avg", "temp_max", "precipitation"] |
224 |
225 |
data2 = pd.read_csv(data2, sep=";", header=None) |
data2 = pd.read_csv(data2, sep=";", header=None) |
225 |
|
data2.columns = ["index", "year", "month", "day", "temp_quality", "temp_min", "temp_avg", "temp_max", "precipitation"] |
|
|
226 |
|
data2.columns = ["index", "year", "month", "day", "temp_quality", |
|
227 |
|
"temp_min", "temp_avg", "temp_max", "precipitation"] |
226 |
228 |
df1 = pd.DataFrame({'year': data1["year"], |
df1 = pd.DataFrame({'year': data1["year"], |
227 |
229 |
'month': data1["month"], |
'month': data1["month"], |
228 |
230 |
'day': data1["day"]}) |
'day': data1["day"]}) |
|
... |
... |
if not os.path.exists("Result"): |
250 |
252 |
os.makedirs("Result") |
os.makedirs("Result") |
251 |
253 |
|
|
252 |
254 |
# Построения графика среднегодовой температуры города 1. |
# Построения графика среднегодовой температуры города 1. |
253 |
|
print("Построения графика среднегодовой температуры города " + city1 + ".") |
|
|
255 |
|
print("Построения графика среднегодовой температуры города " + |
|
256 |
|
city1 + ".") |
254 |
257 |
result1 = df1.groupby('year').mean() |
result1 = df1.groupby('year').mean() |
255 |
258 |
plt.plot(result1.index, result1['temp_avg']) |
plt.plot(result1.index, result1['temp_avg']) |
256 |
259 |
plt.title("Среднегодовая температура (" + city1 + ")") |
plt.title("Среднегодовая температура (" + city1 + ")") |
|
... |
... |
plt.savefig('Result/' + city1 + '_Temperature_Plot.png') |
263 |
266 |
plt.clf() |
plt.clf() |
264 |
267 |
|
|
265 |
268 |
# Построения графика количества осадков за год города 1. |
# Построения графика количества осадков за год города 1. |
266 |
|
print("Построения графика количества осадков за год города " + city1 + ".") |
|
|
269 |
|
print("Построения графика количества осадков за год города " + |
|
270 |
|
city1 + ".") |
267 |
271 |
plt.plot(result1.index, result1['precipitation']) |
plt.plot(result1.index, result1['precipitation']) |
268 |
272 |
plt.title("Количество осадков за год (" + city1 + ")") |
plt.title("Количество осадков за год (" + city1 + ")") |
269 |
273 |
plt.xlabel('Год') |
plt.xlabel('Год') |
|
... |
... |
plt.savefig('Result/' + city1 + '_Precipitations_Plot.png') |
275 |
279 |
plt.clf() |
plt.clf() |
276 |
280 |
|
|
277 |
281 |
# Построения графика среднегодовой температуры города 2. |
# Построения графика среднегодовой температуры города 2. |
278 |
|
print("Построения графика среднегодовой температуры города " + city2 + ".") |
|
|
282 |
|
print("Построения графика среднегодовой температуры города " + |
|
283 |
|
city2 + ".") |
279 |
284 |
result2 = df2.groupby('year').mean() |
result2 = df2.groupby('year').mean() |
280 |
285 |
plt.plot(result2.index, result2['temp_avg']) |
plt.plot(result2.index, result2['temp_avg']) |
281 |
286 |
plt.title("Среднегодовая температура (" + city2 + ")") |
plt.title("Среднегодовая температура (" + city2 + ")") |
|
... |
... |
plt.savefig('Result/' + city2 + '_Temperature_Plot.png') |
288 |
293 |
plt.clf() |
plt.clf() |
289 |
294 |
|
|
290 |
295 |
# Построения графика количества осадков за год города 2. |
# Построения графика количества осадков за год города 2. |
291 |
|
print("Построения графика количества осадков за год города " + city2 + ".") |
|
|
296 |
|
print("Построения графика количества осадков за год города " |
|
297 |
|
+ city2 + ".") |
292 |
298 |
plt.plot(result2.index, result2['precipitation']) |
plt.plot(result2.index, result2['precipitation']) |
293 |
299 |
plt.title("Количество осадков за год (" + city2 + ")") |
plt.title("Количество осадков за год (" + city2 + ")") |
294 |
300 |
plt.xlabel('Год') |
plt.xlabel('Год') |
|
... |
... |
plt.plot(result2.index, p(result2.index), "r--") |
299 |
305 |
plt.savefig('Result/' + city2 + '_Precipitations_Plot.png') |
plt.savefig('Result/' + city2 + '_Precipitations_Plot.png') |
300 |
306 |
plt.clf() |
plt.clf() |
301 |
307 |
|
|
302 |
|
# Построения графика корреляции среднегодовой температуры двух городов. |
|
303 |
|
print("Построения графика корреляции среднегодовой температуры двух городов.") |
|
|
308 |
|
#Построения графика корреляции среднегодовой температуры двух городов |
|
309 |
|
print("Построения графика корреляции среднегодовой температуры" + |
|
310 |
|
" двух городов.") |
304 |
311 |
plt.plot(result1.index, result1['temp_avg'], |
plt.plot(result1.index, result1['temp_avg'], |
305 |
312 |
label="Среднегодовая температура в городе " + city1) |
label="Среднегодовая температура в городе " + city1) |
306 |
313 |
plt.plot(result2.index, result2['temp_avg'], |
plt.plot(result2.index, result2['temp_avg'], |
307 |
314 |
label="Среднегодовая температура в городе " + city2) |
label="Среднегодовая температура в городе " + city2) |
308 |
|
plt.title("Среднегодовая температура в городах " + city1 + " и " + city2) |
|
|
315 |
|
plt.title("Среднегодовая температура в городах " + city1 + " и " + |
|
316 |
|
city2) |
309 |
317 |
plt.xlabel('Год') |
plt.xlabel('Год') |
310 |
318 |
plt.ylabel('Температура (цельсии)') |
plt.ylabel('Температура (цельсии)') |
311 |
319 |
plt.legend() |
plt.legend() |
|
... |
... |
print(corr1) |
319 |
327 |
sys.stdout = original_stdout |
sys.stdout = original_stdout |
320 |
328 |
plt.clf() |
plt.clf() |
321 |
329 |
|
|
322 |
|
# Построения графика корреляции количества осадков за год двух городов. |
|
323 |
|
print("Построения графика корреляции количества осадков за год двух городов.") |
|
|
330 |
|
#Построения графика корреляции количества осадков за год двух городов |
|
331 |
|
print("Построения графика корреляции количества осадков за год" + |
|
332 |
|
" двух городов.") |
324 |
333 |
plt.plot(result1.index, result1['precipitation'], |
plt.plot(result1.index, result1['precipitation'], |
325 |
334 |
label="Среднегодовые осадки в городе " + city1) |
label="Среднегодовые осадки в городе " + city1) |
326 |
335 |
plt.plot(result2.index, result2['precipitation'], |
plt.plot(result2.index, result2['precipitation'], |
|
... |
... |
plt.ylabel('Количество осадков') |
331 |
340 |
plt.legend() |
plt.legend() |
332 |
341 |
plt.savefig('Result/Correlation_Precipitations_Plot.png') |
plt.savefig('Result/Correlation_Precipitations_Plot.png') |
333 |
342 |
print("Расчёт корреляции количества осадков за год двух городов.") |
print("Расчёт корреляции количества осадков за год двух городов.") |
334 |
|
corr2 = np.corrcoef(result1['precipitation'], result2['precipitation']) |
|
|
343 |
|
corr2 = np.corrcoef(result1['precipitation'], |
|
344 |
|
result2['precipitation']) |
335 |
345 |
with open('Result/Precipitations_Correlation.txt', 'w') as f: |
with open('Result/Precipitations_Correlation.txt', 'w') as f: |
336 |
346 |
sys.stdout = f |
sys.stdout = f |
337 |
347 |
print('Матрица корреляции осадков:\n') |
print('Матрица корреляции осадков:\n') |
|
... |
... |
sys.stdout = original_stdout |
340 |
350 |
plt.clf() |
plt.clf() |
341 |
351 |
|
|
342 |
352 |
# Построения диаграммы размаха среднегодовой температуры города 1. |
# Построения диаграммы размаха среднегодовой температуры города 1. |
343 |
|
print("Построения диаграммы размаха среднегодовой температуры города " + city1 + ".") |
|
|
353 |
|
print("Построения диаграммы размаха среднегодовой температуры города " |
|
354 |
|
+ city1 + ".") |
344 |
355 |
sns.boxplot(data=df1, x='month', y='temp_avg') |
sns.boxplot(data=df1, x='month', y='temp_avg') |
345 |
356 |
plt.xlabel('Месяц') |
plt.xlabel('Месяц') |
346 |
357 |
plt.ylabel('Температура (цельсии)') |
plt.ylabel('Температура (цельсии)') |
|
... |
... |
plt.savefig('Result/' + city1 + '_Temperature_Boxplot.png') |
349 |
360 |
plt.clf() |
plt.clf() |
350 |
361 |
|
|
351 |
362 |
# Построения диаграммы размаха среднегодовой температуры города 2. |
# Построения диаграммы размаха среднегодовой температуры города 2. |
352 |
|
print("Построения диаграммы размаха среднегодовой температуры города " + city2 + ".") |
|
|
363 |
|
print("Построения диаграммы размаха среднегодовой температуры города " |
|
364 |
|
+ city2 + ".") |
353 |
365 |
sns.boxplot(data=df2, x='month', y='temp_avg') |
sns.boxplot(data=df2, x='month', y='temp_avg') |
354 |
366 |
plt.xlabel('Месяц') |
plt.xlabel('Месяц') |
355 |
367 |
plt.ylabel('Температура (цельсии)') |
plt.ylabel('Температура (цельсии)') |
|
... |
... |
plt.clf() |
359 |
371 |
|
|
360 |
372 |
# Декомпозиция данных по температуре города 1. |
# Декомпозиция данных по температуре города 1. |
361 |
373 |
print("Декомпозиция данных по температуре города " + city1 + ".") |
print("Декомпозиция данных по температуре города " + city1 + ".") |
362 |
|
result = seasonal_decompose(result1['temp_avg'], model='additive', period=12) |
|
|
374 |
|
result = seasonal_decompose(result1['temp_avg'], model='additive', |
|
375 |
|
period=12) |
363 |
376 |
result.plot() |
result.plot() |
364 |
377 |
plt.savefig('Result/' + city1 + '_Temperature_Decomposition.png') |
plt.savefig('Result/' + city1 + '_Temperature_Decomposition.png') |
365 |
378 |
plt.clf() |
plt.clf() |
366 |
379 |
|
|
367 |
380 |
# Декомпозиция данных по осадкам города 1. |
# Декомпозиция данных по осадкам города 1. |
368 |
381 |
print("Декомпозиция данных по осадкам города " + city1 + ".") |
print("Декомпозиция данных по осадкам города " + city1 + ".") |
369 |
|
result = seasonal_decompose(result1['precipitation'], model='additive', period=12) |
|
|
382 |
|
result = seasonal_decompose(result1['precipitation'], |
|
383 |
|
model='additive', period=12) |
370 |
384 |
result.plot() |
result.plot() |
371 |
385 |
plt.savefig('Result/' + city1 + '_Precipitations_Decomposition.png') |
plt.savefig('Result/' + city1 + '_Precipitations_Decomposition.png') |
372 |
386 |
plt.clf() |
plt.clf() |
373 |
387 |
|
|
374 |
388 |
# Декомпозиция данных по температуре города 2. |
# Декомпозиция данных по температуре города 2. |
375 |
389 |
print("Декомпозиция данных по температуре города " + city2 + ".") |
print("Декомпозиция данных по температуре города " + city2 + ".") |
376 |
|
result = seasonal_decompose(result2['temp_avg'], model='additive', period=12) |
|
|
390 |
|
result = seasonal_decompose(result2['temp_avg'], model='additive', |
|
391 |
|
period=12) |
377 |
392 |
result.plot() |
result.plot() |
378 |
393 |
plt.savefig('Result/' + city2 + '_Temperature_Decomposition.png') |
plt.savefig('Result/' + city2 + '_Temperature_Decomposition.png') |
379 |
394 |
plt.clf() |
plt.clf() |
380 |
395 |
|
|
381 |
396 |
# Декомпозиция данных по осадкам города 2. |
# Декомпозиция данных по осадкам города 2. |
382 |
397 |
print("Декомпозиция данных по осадкам города " + city2 + ".") |
print("Декомпозиция данных по осадкам города " + city2 + ".") |
383 |
|
result = seasonal_decompose(result2['precipitation'], model='additive', period=12) |
|
|
398 |
|
result = seasonal_decompose(result2['precipitation'], |
|
399 |
|
model='additive', period=12) |
384 |
400 |
result.plot() |
result.plot() |
385 |
401 |
plt.savefig('Result/' + city2 + '_Precipitations_Decomposition.png') |
plt.savefig('Result/' + city2 + '_Precipitations_Decomposition.png') |
386 |
402 |
plt.clf() |
plt.clf() |