Daily Archives: 03.05.2014.

Izračun smjera vjetra iz u i v komponenti u bash-u

03.05.2014.

U zadnjem projektu naišli smo na potrebu izračuna smjera vjetra (u stupnjevima) iz poznatih u i v komponenti. To je uobičajen zadatak u programiranju i skriptiranju meteo softvera, međutim ovaj put je potreba bila da se izračun uradi u bash-u. Za floating point računanje u bashu tipično koristimo bc, međutim kako taj alat nema trigonometrijsku funkciju atan2 (arcus tangens), bilo je nužno pronaći alternativno rješenje.

Kako rješenje koje smo izradili ne bi ostalo samo za nas i palo u zaborav, odlučili smo ga objaviti na blogu, u nadi da će možda nekome pomoći. Evo primjera:

#!/bin/bash

u=5
v=-1
wd_rad=`awk “BEGIN {print atan2($u,$v);}”`
wd_deg=$(echo “(57.3*$wd_rad+180)” | bc -l | xargs printf “%1.0f”)
echo $wd_deg

Dalo bi se wd_deg izračunati i u jednoj liniji koristeći isključivo awk, no na ovaj način je primjer čitljiviji, a usput demonstrira i upotrebu alata bc za floating point račune u bashu.

Works like a charm :)