protected function ThemeService::calculateBeaufort in Weather 2.0.x
Same name and namespace in other branches
- 8 src/Service/ThemeService.php \Drupal\weather\Service\ThemeService::calculateBeaufort()
Calculate Beaufort wind scale for given wind speed.
@link http://en.wikipedia.org/wiki/Beaufort_scale
Parameters
int $wind_speed: Wind speed in m/s.
Return value
array Beaufort number and description.
2 calls to ThemeService::calculateBeaufort()
- ThemeService::formatWind in src/
Service/ ThemeService.php - Convert wind.
- ThemeService::formatWindSpeed in src/
Service/ ThemeService.php - Convert wind speed.
File
- src/
Service/ ThemeService.php, line 714
Class
- ThemeService
- Prepare forecast data for displaying.
Namespace
Drupal\weather\ServiceCode
protected function calculateBeaufort($wind_speed) {
// Set up an array of wind descriptions according to Beaufort scale.
$description = [
$this
->t('Calm'),
$this
->t('Light air'),
$this
->t('Light breeze'),
$this
->t('Gentle breeze'),
$this
->t('Moderate breeze'),
$this
->t('Fresh breeze'),
$this
->t('Strong breeze'),
$this
->t('Near gale'),
$this
->t('Gale'),
$this
->t('Strong gale'),
$this
->t('Storm'),
$this
->t('Violent storm'),
$this
->t('Hurricane'),
];
$number = 0;
if ($wind_speed >= 0.3) {
$number = 1;
}
if ($wind_speed >= 1.6) {
$number = 2;
}
if ($wind_speed >= 3.5) {
$number = 3;
}
if ($wind_speed >= 5.5) {
$number = 4;
}
if ($wind_speed >= 8.0) {
$number = 5;
}
if ($wind_speed >= 10.8) {
$number = 6;
}
if ($wind_speed >= 13.9) {
$number = 7;
}
if ($wind_speed >= 17.2) {
$number = 8;
}
if ($wind_speed >= 20.8) {
$number = 9;
}
if ($wind_speed >= 24.5) {
$number = 10;
}
if ($wind_speed >= 28.5) {
$number = 11;
}
if ($wind_speed >= 32.7) {
$number = 12;
}
return [
'number' => $number,
'description' => $description[$number],
];
}