Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Calcul de l'indice Humidex Mer 1 Juil 2015 - 4:03
Une vague de chaleur (voire une canicule) commence à gagner une partie de la France et qui devrait intéresser la plus part des régions où les températures dépasseront les 35° avec des pics à 40°.
Avec le code suivant, vous pouvez calculer l’indice Humidex et la sensation qui en résulte. Le tout est expliqué dans le code.
Code:
rem ============================================================================ rem INDICE HUMIDEX rem Par Papydall rem ============================================================================ rem L humidex est un indice inventé par les canadiens pour intégrer les effets rem combinés de la chaleur et de l humidité. rem Il indique la sensation de chaleur ou d humidité ressentie par un individu moyen. rem Il est calculé à partir des valeurs combinées de la température et de l humidité rem et exprimé par un nombre qui reflète la température ressentie. rem En effet, une tempéture de 30°C est moins supportable lorsque l humidité de rem l air est forte (sensation de lourdeur) que lorsque l air est sec. rem L humidex dépend donc de la température et de l humidité relative. rem A partir d un humidex de 40, on ressent "beaucoup d'inconfort", au dessus rem de 45 il y a "danger" et au dessus de 54 "un coup de chaleur est imminent". rem ============================================================================ rem On calcule l Humidex par la formule suivante : rem Humidex = T + h rem avec rem T : température de l air sous abri en °c rem h = 0.5555 * (e - 10) rem e : pression (tension) partielle de vapeur d eau en hactopascal (hPa) rem e = 6.11 * power(exp(1),5417.753*((1/273.16)-(1/td))) rem td est la température du point de rosée (Dew point temperature) en kelvins. rem NB : On parle de degrés Celsius, mais on ne parle pas de degrés Kelvin. rem On dit juste "kelvin" rem ============================================================================ rem En mettant le tout dans le même sec, on obtient la formule suivante : ' ===================================================================================== rem Humidex = t + 0.5555 * (6.11* power(exp(1),5417.753 *((1/273.16 - 1/(td+273.16))) - 10) ' ===================================================================================== rem ============================================================================ dim Indice_Humidex, sensation$ Calcul_Humidex(35,25) ' Calcul_Humidex(25,15) Sensation(indice_humidex) print "Indice Humidex = " + str$(int(Indice_Humidex+0.5)) print "Sensation : " + sensation$ end rem ============================================================================ SUB Calcul_Humidex(t,td) dim_local e,puissance, exponentielle, a,invtd ,tdk,h tdk = td + 273.16 :' Convertir td en Kelvins a = 1/273.16 : invtd = 1/tdk exponentielle = exp(1) puissance = 5417.753 * (a-invtd) e = 6.11*power(exponentielle,puissance) h = 0.5555 * (e-10) Indice_Humidex = t + h END_SUB rem ============================================================================ SUB Sensation(indice_humidex) if indice_humidex < 30 then sensation$ = "Aucun inconfort" : exit_sub if indice_humidex >= 30 and indice_humidex < 40 then sensation$ = "Un certain inconfort" : exit_sub if indice_humidex >= 40 and indice_humidex < 45 then sensation$ = "Beaucoup d'inconfort" : exit_sub if indice_humidex >= 45 and indice_humidex < 54 then sensation$ = "il y a danger un coup de chaleur est probable" : exit_sub if indice_humidex >= 54 then sensation$ = "Un coup de chaleur est imminent." END_SUB rem ============================================================================
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 8:19
Sympa ton programme.
L’idéal serait de pouvoir récupérer les données météo + géolocalisation via le web.... mais pas simple au 1er abord...
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 8:36
Merci papydall !
Ton programme est intéressant, mais sur quel site peut t on trouvé les valeurs géographique a rentrer pour chacun.
Existe t il un site ou l'on trouve ces indices : température de l air sous abri et température du point de rosé ?
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 10:21
Un début de réponse...
Spoiler:
Code:
LIST 21:HIDE 21 :FULL_SPACE 21 DIM l$ PageWeb("http://www.hostip.fr/","C:\TEMP\humidex.tmp") FILE_LOAD 21,"C:\TEMP\humidex.tmp" FILE_DELETE "C:\TEMP\humidex.tmp"
StrReplace$(l$,"<br>","</p><p>") : l$= StrReplace_return$ StrReplace$(l$,"<b>","") : l$= StrReplace_return$ StrReplace$(l$,"</b>",""):l$= StrReplace_return$ StrReplace$(l$,"</p><p>","#") : l$= StrReplace_return$ EXPLODE("#",l$,21) SHOW 21 END
SUB PageWeb(url$,frec$) ' capture d'une page web donnée par son url (pages au format html) -> frec$ DIM_LOCAL pwa$, fscr$, gui$: gui$ = CHR$(34) fscr$ = "C:\Temp\Scrdnl.vbs": ' script vbs (temporaire) DATA "Debscr" DATA "HTTPDownload "+gui$+url$+gui$+", "+gui$+frec$+gui$ DATA "Sub HTTPDownload( URL, Path )" DATA "Dim i, objFile, objFSO, objHTTP, strFile, strMsg" DATA "Const ForReading = 1, ForWriting = 2, ForAppending = 8" DATA "Set objFSO = CreateObject( "+gui$+"Scripting.FileSystemObject"+gui$+" )" DATA "strFile = Path" DATA "Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )" DATA "Set objHTTP = CreateObject( "+gui$+"WinHttp.WinHttpRequest.5.1"+gui$+" )" DATA "objHTTP.Open "+gui$+"GET"+gui$+", URL, False" DATA "objHTTP.Send" DATA "For i = 1 To LenB( objHTTP.ResponseBody )" DATA " objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )" DATA "Next" DATA "objFile.Close( )" DATA "End Sub" DATA "Finscr" RESTORE: READ pwa$: WHILE pwa$ <> "Debscr": READ pwa$: END_WHILE FILE_OPEN_WRITE 9, fscr$ READ pwa$: WHILE pwa$ <> "Finscr": FILE_WRITELN 9, pwa$: READ pwa$: END_WHILE FILE_CLOSE 9 EXECUTE_WAIT "WSCRIPT.exe " + fscr$: ' exécution du script FILE_DELETE fscr$: ' nettoyage END_SUB
' ------------------------------------------------------------------------------ ' EXPLODE(S1,S2,liste) ' @info Retourne une liste de chaînes, chacune d'elle étant une sous-chaîne du paramètre S2 extraite en utilisant le séparateur S1 ' @param S1 séparateur ' @param S2 Chaine de caractère ' @param Liste N° de la liste de retour ' @@@@ ' ------------------------------------------------------------------------------ SUB EXPLODE(delimiter$,chaine$,liste%) WHILE INSTR(chaine$,delimiter$)<>0 ITEM_ADD liste%,LEFT$(chaine$,INSTR(chaine$,delimiter$)-1) chaine$=RIGHT$(chaine$,LEN(chaine$)-INSTR(chaine$,delimiter$)) END_WHILE ITEM_ADD liste%,chaine$ END_SUB ' ------------------------------------------------------------------------------ ' StrReplace$(S1,S2,S3) ' @info Remplace une chaine par une autre ' @param S1 chaine à modifier ' @param S2 chaine à remplacer ' @param S3 chaine de remplacement ' @return StrReplace_return$ (variable globale) ' @@@@ ' ------------------------------------------------------------------------------ SUB StrReplace$(S1$,S2$,S3$) IF VARIABLE("StrReplace_return$")=0 THEN DIM StrReplace_return$ WHILE INSTR(S1$,S2$) <> 0 StrSplit$(S1$,S2$) S1$ = StrSplit_return$(0) + S3$ + StrSplit_return$(1) END_WHILE StrReplace_return$ = S1$ END_SUB
' ------------------------------------------------------------------------------ ' StrSplit$(S1,S2) ' @info Décompose en 2 la chaine de caractères S1 à partir du caractère S2 ' @param S1 Chaine de caractères à découper ' @param S2 Caractère ou chaine de séparation ' @return StrPlit_return$(2) (tableau de 2 éléments) ' @@@@ ' ------------------------------------------------------------------------------ SUB StrSplit$(S1$,S2$) IF VARIABLE("StrSplit_return$")=0 THEN DIM StrSplit_return$(2) IF INSTR(S1$,S2$)<>0 StrSplit_return$(0) = LEFT$(S1$,INSTR(S1$,S2$)-1) StrSplit_return$(1) = RIGHT$(S1$,LEN(S1$)-LEN(StrSplit_return$(0))-LEN(S2$)) END_IF END_SUB
C'est là qu'on se rend compte qu'il manque une fonction pour convertir de l'UTF8 en ANSI...
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 10:38
Bonjour nardo !
oui c'est une bonne idée sauf que pour moi le département et la ville ne correspondent pas. Il ressort un département limitrophe (le 17) alors que je suis dans le 86 Et la ville est erronée aussi.
Bizarre !
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 11:03
Oui cela dépend des sites, L'adresse que j'utilise fonctionne bien chez moi et celle de http://www.geo-ip.fr/ me positionne en Belgique.. Et celle du forum (ici) à l'air de bien fonctionner dans mon cas.
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 12:09
Effectivement avec geo-ip que j'ai utilisé tout a l'heure moi je suis bien localisé.
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 14:31
Minibug a écrit:
Ton programme est intéressant, mais sur quel site peut t on trouvé les valeurs géographique a rentrer pour chacun.
Existe t il un site ou l'on trouve ces indices : température de l air sous abri et température du point de rosé ?
Toutes les stations météorologiques du monde fournissent les données (température sous abri, température du point de rosée, humidité relative, pression atmosphérique, etc. Tu es à Poitiers d’après la localisation en-dessous de ton avatar. Actuellement, à Poitiers, la température est 32 °C ; Le point de rosée est 14 °C. En entrant ces données dans mon programme, il te répondra : Indice Humidex = 35 Sensation = Un certain inconfort.
Vous pouvez vous rendre sur ce site . Tout le monde est à portée de votre souris. Choisissez votre pays en (Afrique, Europe, Amérique du Nord, Amérique du Sud, Océanie, Asie, Antarctique). Choisissez votre ville. Vous aurez une prévision sur une semaine. Vous aurez aussi les données actuelles sur votre ville et à proximité de votre ville: Température Vitesse du vent Visibilité Humidité Température ressentie Point de rosée, Pression
Mon programme ne nécessite que la température de l'air et celle du point de rosée
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 15:07
merci pour ces infos.
Je vais voir sur ton site...
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 15:47
Minibug a écrit:
merci pour ces infos.
Je vais voir sur ton site...
Heu ... c'est-à-dire que ce n'est pas mon site. C'est un site de prévision météo.
EDIT : Pour Poitiers, voici le lien vers la station PRO qui indique les données météorologiques en visuel. Les données sont réactualisées toutes les 30 minutes.
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 16:42
Super papydall, et merci, mais s'il te plait, est-ce que tu pourrais intégrer dans ton programme une fonction qui rafraîchisse l'atmosphère ? ça ne devrait pas te causer de difficultés particulières, toi qui maîtrises bien les éléments, je sais bien qu'il doit faire assez doux en Tunisie, mais ici on crève de chaleur... Merci d'avance papydall !
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 17:22
Boire, boire et encore boire de l’eau, même si vous n’avez pas vraiment soif. Evitez l’eau gazeuse. PAS D’ALCOOOOOOL ! PAS DE BIERRRRRE ! De l’eau plate et pas trop glacée !
C’est à toi de coder tout ça en Panoramic.
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 20:37
Tout de même, un bon demi bien frais (j'en fais souvent l'expérience ces jours-ci de grand déssèchement) c'est quand même meilleur pour mon indice Humidex personnel... J'ai testé scientifiquement plusieurs solutions, c'est une des plus efficaces que j'aie trouvé.
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 20:57
+1 pour JL35, un Demi et beaucoup d'eau mais moi en vrai, je prends cafés / thés / chocolat chaud / eau fraiche
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 21:59
Avec 3 amis nous avons fait l'expérience scientifique suivante (mesure de l'indice Humidex): deux groupes, d'un côté les buveurs de bière, de l'autre les buveurs d'eau. Dans le 1er groupe il y avait 4 personnes, et dans le second 0 (eh oui, il n'y a pas eu de volontaires). Nous sommes donc arrivés à l'unanimité à la conclusion que la bière est plus efficace que l'eau pour l'indice Humidex de chacun. Mais bon, comme dans toute théorie il peut y avoir des exceptions.
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 22:43
Oui et je ne te contredirai pas : c'est prouvé scientifiquement !
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 23:24
Bien trouvé Nardo, les anciens avaient quand même bien du bon sens... et une bonne descente !
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Re: Calcul de l'indice Humidex Mer 1 Juil 2015 - 23:50
Nombre de messages : 176 Localisation : 45 Date d'inscription : 20/12/2012
Sujet: Re: Calcul de l'indice Humidex Jeu 2 Juil 2015 - 22:29
Ça devient n'importe quoi ce post !!! bande de pochtrons !!! Bon plaisanterie à part, Le problème du météorologue amateur (que je suis) c'est qu'il est facile d'obtenir le taux d'humidité relative (avec un hydromètre, objet peu coûteux ), mais il est moins évident (à mon avis) d'avoir accès au point de rosée. Oui je sais les sites cités le mentionnent presque tous. Mais on n'a pas forcément internet sous la main. Je pensais savoir qu'il existait des formules pour le trouver, alors j'ai cherché sur le net et j'ai trouvé ça. Formule approximative (sans garantie): RH=exp(5417(1/T-1/Tr)) où RH = humidité relative de 0 à 1 T = température °K (°C+273.15) Tr = point de rosée °K Je me suis donc permis de bousculer le prog. de notre bon vieux Papydall, et ça donne ça...
Code:
rem ============================================================================ rem INDICE HUMIDEX rem Par Papydall rem ============================================================================ rem L humidex est un indice inventé par les canadiens pour intégrer les effets rem combinés de la chaleur et de l humidité. rem Il indique la sensation de chaleur ou d humidité ressentie par un individu moyen. rem Il est calculé à partir des valeurs combinées de la température et de l humidité rem et exprimé par un nombre qui reflète la température ressentie. rem En effet, une tempéture de 30°C est moins supportable lorsque l humidité de rem l air est forte (sensation de lourdeur) que lorsque l air est sec. rem L humidex dépend donc de la température et de l humidité relative. rem A partir d un humidex de 40, on ressent "beaucoup d'inconfort", au dessus rem de 45 il y a "danger" et au dessus de 54 "un coup de chaleur est imminent". rem ============================================================================ rem On calcule l Humidex par la formule suivante : rem Humidex = T + h rem avec rem T : température de l air sous abri en °c rem h = 0.5555 * (e - 10) rem e : pression (tension) partielle de vapeur d eau en hactopascal (hPa) rem e = 6.11 * power(exp(1),5417.753*((1/273.16)-(1/td))) rem td est la température du point de rosée (Dew point temperature) en kelvins. rem NB : On parle de degrés Celsius, mais on ne parle pas de degrés Kelvin. rem On dit juste "kelvin" rem ============================================================================ rem En mettant le tout dans le même sec, on obtient la formule suivante : ' ===================================================================================== rem Humidex = t + 0.5555 * (6.11* power(exp(1),5417.753 *((1/273.16 - 1/(td+273.16))) - 10) ' ===================================================================================== ' Il est plus facile de trouver un hygromètre qu'un point de roséeomètre. Alors : ' formule ligne 40
rem ============================================================================ hide 0 dim Indice_Humidex, sensation$, Temperature,Taux_d_humidite, Point_de_rosee, texte$ Temperature = val(message_input$(texte$,"Entrez la température" ,"")) +273.15 Taux_d_humidite = val(message_input$(texte$,"Entrez le taux d'humidité" ,"")) / 100
Calcul_Humidex(Temperature- 273.15,Point_de_rosee) ' Calcul_Humidex(25,15) Sensation(indice_humidex) message "Indice Humidex = " + str$(int(Indice_Humidex+0.5)) + chr$(13) + "Sensation : " + sensation$ terminate end rem ============================================================================ SUB Calcul_Humidex(t,td) dim_local e,puissance, exponentielle, a,invtd ,tdk,h tdk = td + 273.16 :' Convertir td en Kelvins a = 1/273.16 : invtd = 1/tdk exponentielle = exp(1) puissance = 5417.753 * (a-invtd) e = 6.11*power(exponentielle,puissance) h = 0.5555 * (e-10) Indice_Humidex = t + h END_SUB rem ============================================================================ SUB Sensation(indice_humidex) if indice_humidex < 30 then sensation$ = "Aucun inconfort" : exit_sub if indice_humidex >= 30 and indice_humidex < 40 then sensation$ = "Un certain inconfort" : exit_sub if indice_humidex >= 40 and indice_humidex < 45 then sensation$ = "Beaucoup d'inconfort" : exit_sub if indice_humidex >= 45 and indice_humidex < 54 then sensation$ = "il y a danger un coup de chaleur est probable" : exit_sub if indice_humidex >= 54 then sensation$ = "Un coup de chaleur est imminent." END_SUB rem ============================================================================
J'ai testé avec diverses valeurs de Temperature et de Taux_d_humidite; pour l'instant ça reste cohérent
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Re: Calcul de l'indice Humidex Dim 5 Juil 2015 - 4:15
Mumu a écrit:
Le problème du météorologue amateur (que je suis) c'est qu'il est facile d'obtenir le taux d'humidité relative (avec un hydromètre, objet peu coûteux ),….
Tu veux dire un hygromètre pour mesurer l’humidité de l’air. Car un hydromètre mesure la pression statique de l’eau ; il permet d’identifier la masse volumique d’un liquide.
Bon, la formule que tu indiques peut faire l'affaire.
Mumu
Nombre de messages : 176 Localisation : 45 Date d'inscription : 20/12/2012
Sujet: Re: Calcul de l'indice Humidex Dim 5 Juil 2015 - 13:38
Enfer et damnation... comment ai-je pu commettre pareille bévue... Oui je voulais bien écrire hyGromètre et pas hyDromètre . Le prix de l'objet n'est d'ailleurs pas le même. Merci Papydall de faire bonne veille
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
Sujet: Re: Calcul de l'indice Humidex Dim 5 Juil 2015 - 14:08
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
Sujet: Re: Calcul de l'indice Humidex Dim 5 Juil 2015 - 17:56
Le "G" et le "D" ne sont pas bien loin sur le clavier... C'est ça, hein ?
Mumu
Nombre de messages : 176 Localisation : 45 Date d'inscription : 20/12/2012
Sujet: Re: Calcul de l'indice Humidex Dim 5 Juil 2015 - 18:22
Et quand on tape sur le clavier avec des gants de boxe...
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
Sujet: Re: Calcul de l'indice Humidex Dim 5 Juil 2015 - 18:26
Mumu a écrit:
Et quand on tape sur le clavier avec des gants de boxe...