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
|
||||
}
|
||||
|
||||
// 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