User Tools

Site Tools


tecnologia:agua:pronostico

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tecnologia:agua:pronostico [2022/06/23 06:45] – created admintecnologia:agua:pronostico [2022/06/23 07:02] (current) – admin
Line 7: Line 7:
   curl --silent -o precipitacion.xml http://www.aemet.es/xml/municipios_h/localidad_h_28079.xml   curl --silent -o precipitacion.xml http://www.aemet.es/xml/municipios_h/localidad_h_28079.xml
 Tiene el siguiente formato para mm de agua: Tiene el siguiente formato para mm de agua:
 +<code>
 +      <precipitacion periodo="00">0</precipitacion>
 +      <precipitacion periodo="01">0</precipitacion>
 +      <precipitacion periodo="02">0</precipitacion>
 +      <precipitacion periodo="03">0</precipitacion>
 +      <precipitacion periodo="04">0</precipitacion>
 +      <precipitacion periodo="05">0</precipitacion>
 +      <precipitacion periodo="06">0</precipitacion>
 +      <precipitacion periodo="07">Ip</precipitacion>
 +      <precipitacion periodo="08">0</precipitacion>
 +      <precipitacion periodo="09">0</precipitacion>
 +      <precipitacion periodo="10">Ip</precipitacion>
 +      <precipitacion periodo="11">0</precipitacion>
 +      <precipitacion periodo="12">0</precipitacion>
 +      <precipitacion periodo="13">0</precipitacion>
 +      <precipitacion periodo="14">0</precipitacion>
 +      <precipitacion periodo="15">0</precipitacion>
 +      <precipitacion periodo="16">0</precipitacion>
 +      <precipitacion periodo="17">0</precipitacion>
 +      <precipitacion periodo="18">0</precipitacion>
 +      <precipitacion periodo="19">0</precipitacion>
 +      <precipitacion periodo="20">0</precipitacion>
 +      <precipitacion periodo="21">0</precipitacion>
 +      <precipitacion periodo="22">0</precipitacion>
 +      <precipitacion periodo="23">0</precipitacion>
 +</code>
 +
 +Donde pone Ip significa que es inapreciable, lo cambiamos por 0.05
 +
 +Sumo todos los valores.
 +
 +Para el % de precipitación el formato del xml es éste:
 +<code>
 +      <prob_precipitacion periodo="2002">0</prob_precipitacion>
 +      <prob_precipitacion periodo="0208">25</prob_precipitacion>
 +      <prob_precipitacion periodo="0814">45</prob_precipitacion>
 +      <prob_precipitacion periodo="1420">20</prob_precipitacion>
 +      <prob_precipitacion periodo="2002">10</prob_precipitacion>
 +      <prob_precipitacion periodo="0208">0</prob_precipitacion>
 +      <prob_precipitacion periodo="0814">0</prob_precipitacion>
 +      <prob_precipitacion periodo="1420">0</prob_precipitacion>
 +</code>
 +Cogemos el máximo de los valores, para 48h y para 24h
 +
 +El script quedaría así:
 +<code>
 +#!/bin/bash
 +#Web con la info: http://www.aemet.es/es/eltiempo/prediccion/municipios/horas/tabla/madrid-id28079
 +#tabla por horas: https://www.aemet.es/es/eltiempo/prediccion/municipios/horas/tabla/madrid-id28079
 +#Me descargo el xml:
 +curl --silent -o precipitacion.xml http://www.aemet.es/xml/municipios_h/localidad_h_28079.xml
 +let mm24=0
 +let mm48=0
 +
 +#Cambio Ip que es inapreciable por 0.05
 +sed -i 's/Ip/0.05/g' precipitacion.xml
 +
 +while read linea
 +do
 +  #Sumo los decimales
 +  mm24=$(echo "scale=2; "$mm24"+"$linea| bc -l)
 +  #si empieza por cero escribe .1 le añado el cero delante si empieza por punto
 +  mm24=${mm24/#./0.}
 +done < <(cat precipitacion.xml | grep /precipitacion | head -24 |awk -F'<|>' {'print $3'})
 +
 +while read linea
 +do
 +  #Sumo los decimales
 +  mm48=$(echo "scale=2; "$mm48"+"$linea| bc -l)
 +  #si empieza por cero escribe .1 le añado el cero delante si empieza por punto
 +  mm48=${mm48/#./0.}
 +done < <(cat precipitacion.xml | grep /precipitacion | tail -24 |awk -F'<|>' {'print $3'})
 +
 +echo $mm24 > mm24.txt
 +echo $mm48 > mm48.txt
 +
 +grep prob_precipitacion precipitacion.xml|head -4 | awk -F'<|>' {'print $3'}|sort | tail -1 > prob24.txt
 +grep prob_precipitacion precipitacion.xml|tail -4 | awk -F'<|>' {'print $3'}|sort | tail -1 > prob48.txt
 +
 +echo "Probab 24h:"`cat prob24.txt`"%"
 +echo "Lluvia 24h:"$mm24"mm"
 +echo "Probab 48h:"`cat prob48.txt`"%"
 +echo "Lluvia 48h:"$mm48"mm"
 +</code>
 +Una salida de ejemplo sería esta:
 +<code>
 +Probab 24h:45%
 +Lluvia 24h:0.10mm
 +Probab 48h:10%
 +Lluvia 48h:0mm
 +</code>
 +
 +</code>
 +
  
tecnologia/agua/pronostico.1655966706.txt.gz · Last modified: by admin