snippets:bash:calculate_tendency
Dies ist eine alte Version des Dokuments!
Calculate tendencies of weather data
cat wetter.werte
13.05.2013 10:16 8,9 984,1 92,5 13.05.2013 10:17 7,5 985,3 92,6 13.05.2013 10:18 6,3 947,7 94,6 13.05.2013 10:19 9,4 832,5 95,5
tail -n70 wetter.werte | \ head -n20 | \ sed 's/,/\./g' | \ awk ' function abs(x){ return ((x < 0.0) ? -x : x) } { temperature[NR]=$3; sum_temperature+=$3; pressure[NR]=$4; sum_pressure+=$4; humidity[NR]=$5; sum_humidity+=$5 } END{ avg_temperature=sum_temperature/NR; last_temperature=temperature[NR]; variance_temperature=abs(avg_pressure-last_pressure); avg_pressure=sum_pressure/NR; last_pressure=pressure[NR]; variance_pressure=abs(avg_pressure-last_pressure); avg_humidity=sum_humidity/NR; last_humidity=humidity[NR]; variance_humidity=abs(avg_humidity-last_humidity); if (variance_temperature<0.5) trend_temperature="→"; else if (avg_temperature>last_temperature) trend_temperature="↓"; else if (avg_temperature<last_temperature) trend_temperature="↑"; else trend_temperature="→"; if (variance_pressure<1.0) trend_pressure="→"; else if (avg_pressure>last_pressure) trend_pressure="↓"; else if (avg_pressure<last_pressure) trend_pressure="↑"; else trend_pressure="→"; if (variance_humidity<1.0) trend_humidity="→"; else if (avg_humidity>last_humidity) trend_humidity="↓"; else if (avg_humidity<last_humidity) trend_humidity="↑"; else trend_humidity="→"; print "Temperature AVG (1h): " avg_temperature " Trend: " trend_temperature " (" last_temperature-avg_temperature ")" "\nPressure AVG (1h): " avg_pressure " Trend: " trend_pressure " (" last_pressure-avg_pressure ")" "\nHumidity (1h): " avg_humidity " Trend: " trend_humidity " (" last_humidity-avg_humidity ")" }' | \ sed '/[0-9]\./s/\./,/g'
snippets/bash/calculate_tendency.1368450312.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
