mirror of
https://github.com/Luzifer/go-metar.git
synced 2024-12-22 19:31:19 +00:00
Added KtsToBft helper function
This commit is contained in:
parent
90abe311d0
commit
b2652f54be
3 changed files with 73 additions and 20 deletions
53
helpers.go
Normal file
53
helpers.go
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
package metar
|
||||||
|
|
||||||
|
// InHgTohPa converts "inch of mercury" to "hectopascal"
|
||||||
|
func InHgTohPa(inHg float64) float64 {
|
||||||
|
return inHg * 33.8638866667
|
||||||
|
}
|
||||||
|
|
||||||
|
// KtsToMs converts "knots" to "meters per second"
|
||||||
|
func KtsToMs(kts float64) float64 {
|
||||||
|
return kts * 0.514444
|
||||||
|
}
|
||||||
|
|
||||||
|
// KtsToBft converts "knots" to "bft"
|
||||||
|
func KtsToBft(kts float64) int {
|
||||||
|
switch {
|
||||||
|
case kts < 1:
|
||||||
|
return 0
|
||||||
|
case kts < 4:
|
||||||
|
return 1
|
||||||
|
case kts < 7:
|
||||||
|
return 2
|
||||||
|
case kts < 11:
|
||||||
|
return 3
|
||||||
|
case kts < 16:
|
||||||
|
return 4
|
||||||
|
case kts < 22:
|
||||||
|
return 5
|
||||||
|
case kts < 28:
|
||||||
|
return 6
|
||||||
|
case kts < 34:
|
||||||
|
return 7
|
||||||
|
case kts < 41:
|
||||||
|
return 8
|
||||||
|
case kts < 48:
|
||||||
|
return 9
|
||||||
|
case kts < 56:
|
||||||
|
return 10
|
||||||
|
case kts < 64:
|
||||||
|
return 11
|
||||||
|
default:
|
||||||
|
return 12
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatMileToKm converts "statute miles" to "kilometers"
|
||||||
|
func StatMileToKm(sm float64) float64 {
|
||||||
|
return sm * 1.60934
|
||||||
|
}
|
||||||
|
|
||||||
|
// MbTohPa converts "millibar" to "hectopascal"
|
||||||
|
func MbTohPa(mb float64) float64 {
|
||||||
|
return mb * 0.1
|
||||||
|
}
|
20
helpers_test.go
Normal file
20
helpers_test.go
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
package metar_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "github.com/Luzifer/go-metar"
|
||||||
|
|
||||||
|
. "github.com/onsi/ginkgo"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = Describe("Helpers", func() {
|
||||||
|
|
||||||
|
It("should convert values into expected results", func() {
|
||||||
|
Expect(KtsToMs(1)).To(Equal(0.514444))
|
||||||
|
Expect(InHgTohPa(1)).To(Equal(33.8638866667))
|
||||||
|
Expect(StatMileToKm(1)).To(Equal(1.60934))
|
||||||
|
Expect(MbTohPa(1)).To(Equal(0.1))
|
||||||
|
Expect(KtsToBft(5)).To(Equal(2))
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
20
metar.go
20
metar.go
|
@ -107,23 +107,3 @@ func FetchCurrentStationWeather(station string) (*Result, error) {
|
||||||
|
|
||||||
return &r.Data.Results[0], nil
|
return &r.Data.Results[0], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// InHgTohPa converts "inch of mercury" to "hectopascal"
|
|
||||||
func InHgTohPa(inHg float64) float64 {
|
|
||||||
return inHg * 33.8638866667
|
|
||||||
}
|
|
||||||
|
|
||||||
// KtsToMs converts "knots" to "meters per second"
|
|
||||||
func KtsToMs(kts float64) float64 {
|
|
||||||
return kts * 0.514444
|
|
||||||
}
|
|
||||||
|
|
||||||
// StatMileToKm converts "statute miles" to "kilometers"
|
|
||||||
func StatMileToKm(sm float64) float64 {
|
|
||||||
return sm * 1.60934
|
|
||||||
}
|
|
||||||
|
|
||||||
// MbTohPa converts "millibar" to "hectopascal"
|
|
||||||
func MbTohPa(mb float64) float64 {
|
|
||||||
return mb * 0.1
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue