source: spip-zone/_plugins_/rainette/trunk/inc/convertir.php @ 77024

Last change on this file since 77024 was 77024, checked in by eric@…, 6 years ago

Correction du modèle infos_ville.
Utilisation de la nouvelle fonction simplexml_to_array().
Correction de rainette_afficher_direction() : il ne faut pas supprimer la fonction angle2direction() qui est utiliser par certains services.

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function angle2direction($angle) {
6        static $liste_directions = array(
7                0 => 'N',
8                1 => 'NNE',
9                2 => 'NE',
10                3 => 'ENE',
11                4 => 'E',
12                5 => 'ESE',
13                6 => 'SE',
14                7 => 'SSE',
15                8 => 'S',
16                9 => 'SSW',
17                10 => 'SW',
18                11 => 'WSW',
19                12 => 'W',
20                13 => 'WNW',
21                14 => 'NW',
22                15 => 'NNW',
23                16 => 'N',
24                17 => 'V'
25        );
26
27        $direction = '';
28        if (is_int($angle))
29                $direction = $liste_directions[round($angle / 22.5) % 16];
30        elseif (in_array(strtoupper($angle), $liste_directions))
31                $direction = strtoupper($angle);
32
33        return $direction;
34}
35
36/**
37 * Conversion des kilomètres en miles.
38 *
39 * @param       float   $kilometre
40 * @return      float
41 */
42function kilometre2mile($kilometre) {
43        return 0.6215*$kilometre;
44}
45
46/**
47 * Conversion des températures celsius en farenheit.
48 *
49 * @param       int             $celsius
50 * @return      float
51 */
52function celsius2farenheit($celsius) {
53        return $celsius*9/5 + 32;
54}
55
56/**
57 * Conversion des millimètres en pouces.
58 *
59 * @param       float   $millimetre
60 * @return      float
61 */
62function millimetre2inch($millimetre) {
63        return $millimetre/25.4;
64}
65
66/**
67 * Conversion des pressions millibar en pouces.
68 *
69 * @param       float   $millibar
70 * @return      float
71 */
72function millibar2inch($millibar) {
73        return $mbar/33.86;
74}
75
76/**
77 * Calcul de la température ressentie (refroidissement éolien) en degrés celsius.
78 *
79 * Le calcul n'a de sens que pour des températures réelles supérieures à -50°C et inférieures à 10°C.
80 * Au-delà de ces valeurs, la fonction renvoie la température réelle fournie en entrée.
81 *
82 * @param       int             $temperature    Temmpérature réelle mesurée en celsius
83 * @param       float   $vitesse_vent   Vitesse du vent
84 * @return      int                                             Température ressentie arrondie en entier
85 */
86function temperature2ressenti($temperature, $vitesse_vent) {
87
88        if (($temperature >= -50) AND ($temperature <= 10)) {
89                if ($vitesse_vent > 4.8)
90                        $ressenti = 13.12 + 0.6215*$temperature + (0.3965*$temperature - 11.37)*pow($vitesse_vent, 0.16);
91                else
92                        $ressenti = $temperature + 0.2*(0.1345*$temperature - 1.59)*$vitesse_vent;
93                $ressenti = round($ressenti, 0);
94        }
95        else
96                $ressenti = $temperature;
97
98        return intval($ressenti);
99
100}
101
102?>
Note: See TracBrowser for help on using the repository browser.