Software > Cumulus y Cumulus MX
dayfile-SQL Rápido visor de la tabla dayfile
kocher:
Parece que funciona perfectamente, jjj ¡ Me alegro mucho !
--- Código: ---Lo que he visto es que en la temperatura mínima abajo en el resumen me ponía 0.0ºC. He mirado en el script y he cambiado el cálculo de ese dato de Math.min a Math.max por lo que ya me sale pero no exactamente muy bien al ordenarlo. Tendré que ir viéndolo.
--- Fin del código ---
Es que, a mí, me interesa ver en el pié de tabla el valor mínimo de la temperatura mínima; en tu tabla te está mostrando el valor máximo de la mínima temperatura.
Si te vuelve a salir el valor 0.0, intenta esto :D
Sustituye estas líneas : (en el archivo dayfile-sql.php)
--- Código: ---// Vamos a intentar obtener el menor valor de la temperatura mínima:
tempMIN = api
.column( 1, {'search': 'applied'}) // originalmente: .column( 1)
.data()
.reduce( function (a, b) {
return Math.min(a, b);
}, 0 );
--- Fin del código ---
Por estas:
--- Código: ---// Vamos a intentar obtener el menor valor de la temperatura mínima:
tempMIN = api
.column( 1, {'search': 'applied'}) // originalmente: .column( 1)
.data()
.reduce( function (a, b) {
return Math.min.apply(null, [a, b]);
});
--- Fin del código ---
En mi tabla tengo configurado el siguiente orden en el pié de tabla:
Tª Mínima >> Tª Máxima >> Tª Media >> Suma Lluvia >> Presión Mínima >> Presión Maxima >> Racha Máxima >> Suma Recorrido viento
Ahora pondré eñ archivo con la modificación para ver el resumen de presión y rachas:
En el archivo ../examples/server_side/scripts/server_processing.php, sustituye estas líneas (31 - 77) por:
--- Código: ---$columns = array(
array( 'db' => 'MinTemp', 'dt' => 1 ),
array( 'db' => 'MaxTemp', 'dt' => 2 ),
array( 'db' => 'AvgTemp', 'dt' => 3 ),
array(
'db' => 'LogDate',
'dt' => 0,
'formatter' => function( $d, $row ) {
return date( 'Y/m/j', strtotime($d));
}
),
array(
'db' => 'TotRainFall',
'dt' => 4,
'formatter' => function( $d, $row ) {
return ''.number_format($d,1);
}
),
array(
'db' => 'MinPress',
'dt' => 5,
'formatter' => function( $d, $row ) {
return number_format( $d, 1, '.', '' ); // originalmente: return number_format($d,1).' hPa';
}
),
array(
'db' => 'MaxPress',
'dt' => 6,
'formatter' => function( $d, $row ) {
return number_format( $d, 1, '.', '' ); // originalmente: return number_format($d,1).' hPa';
}
),
array(
'db' => 'HighWindGust',
'dt' => 7,
'formatter' => function( $d, $row ) {
return number_format($d); // originalmente: return number_format($d).' Km/h';
}
),
array(
'db' => 'TotWindRun',
'dt' => 8,
'formatter' => function( $d, $row ) {
return number_format($d).' Km';
}
)
);
--- Fin del código ---
Me alegro de que te guste y, espero que lo disfrutes.
Saludos :D
jmviper:
Vaya vaya... así que era llamar a apply... JavaScript es tan impredecible !! jejeje
Perfecto kocher he añadido código para que también ponga la presión máxima, mínima y la máxima racha de viento:
--- Código: ---...
// Vamos a intentar obtener el mayor valor de la presión mínima:
baroMIN = api
.column( 5, {'search': 'applied'}) // originalmente: .column( 6)
.data()
.reduce( function (a, b) {
return Math.min.apply(null, [a, b]);
} );
// Vamos a intentar obtener el mayor valor de la presión máxima:
baroMAX = api
.column( 6, {'search': 'applied'}) // originalmente: .column( 6)
.data()
.reduce( function (a, b) {
return Math.max(a, b);
}, 0 );
// Vamos a intentar obtener el mayor valor de la racha máxima:
rachaMAX = api
.column( 7, {'search': 'applied'}) // originalmente: .column( 6)
.data()
.reduce( function (a, b) {
return Math.max(a,b);
},0 );
...
$( api.column( 5 ).footer() ).html(baroMIN.toFixed(1)+ ' hPa' //+' ( $'+ total +' total)'
);
$( api.column( 6 ).footer() ).html(baroMAX.toFixed(1)+ ' hPa' //+' ( $'+ total +' total)'
);
$( api.column( 7 ).footer() ).html(rachaMAX.toFixed(1)+ ' km/h' //+' ( $'+ total +' total)'
);
$( api.column( 8 ).footer() ).html(totalWr + ' Km'
);
--- Fin del código ---
Mañana quizás investigue lo de la humedad pero que vamos que se te organicen los días de mayor a menor valor o viceversa en cualquier valor, mes o año es una pasada :D :D
Y encima quitando las comas de los valores de la presión...
No es solamente que me guste... me encanta !! apla3
Gracias !! ;)
kocher:
¡ Me alegro de que te guste; la verdad es que es muy útil, ya que se pueden encontrar valores erróneos, buscar las medias diarias mensuales o diarias ....
Si quieres añadir algo de colorido al resumen de presión mínima, máxima y rachas, te dejo el código del pie de la tabla:
--- Código: --- <tfoot>
<tr align="left">
<th>Extrait: </th>
<th style="padding-left: 1px; color: #306EFF; background-color: ; font-weight:bold; font-size:19px;">Tmin</th>
<th style="padding-left: 1px; color: red; background-color: ; font-weight:bold; font-size:19px;">Tmax</th>
<th style="padding-left: 1px; color: green; background-color: ; font-weight:bold; font-size:19px;">Tmoy</th>
<th style="padding-left: 1px; color: blue; background-color: ; font-weight:bold; font-size:19px;">Rain</th>
<th style="padding-left: 1px; color: #D462FF; background-color: ; font-weight:bold; font-size:16px;">Bmin hPa</th>
<th style="padding-left: 1px; color: #8D38C9; background-color: ; font-weight:bold; font-size:16px;">Bmax hPa</th>
<th style="padding-left: 1px; color: maroon; background-color: ; font-weight:bold; font-size:16px;">Wgust</th>
<th style="padding-left: 1px; color: maroon; background-color: ; font-weight:bold; font-size:16px;">Wrun</th>
</tr>
</tfoot>
--- Fin del código ---
He notado que, con las nuevas modificaciones, en la búsqueda no se puede cambiar una cifra intermedia; hay que borrar de derecha a izquierda y, entonces, sí se pueden modificar los datos; con esto funciona perfectamente .. ¡ misterios de la informática !.
Esta tabla todavía se puede mejorar mucho:
- Poder editar valores (útil, pero peligroso)
- Ofrecer datos adicionales al pinchar en un dato (po ejemplo, dar la hora en la que se produjo)
Si consigo cosas nuevas, ya lo publicaré
Saludos
kocher:
Para que no se amontonen los datos en el resumen, se puede aplicar este código:
--- Código: --- // Update footer
$( api.column( 1 ).footer() ).html(tempMIN.toFixed(1) + ' °C'
);
$( api.column( 2 ).footer() ).html(tempMAX.toFixed(1) + ' °C'
);
$( api.column( 3 ).footer() ).html(totalAVG.toFixed(1) + ' °C' //+' ( $'+ total +' total)'
);
$( api.column( 4 ).footer() ).html(total.toFixed(1)+ ' mm' //+' ( $'+ total +' total)'
);
$( api.column( 5 ).footer() ).html(baroMIN.toFixed(1) + ' hPa'
);
$( api.column( 6 ).footer() ).html(baroMAX.toFixed(1) + ' hPa'
);
$( api.column( 7 ).footer() ).html(gustMAX + ' Km/h'
);
$( api.column( 8 ).footer() ).html('Total: ' + totalWr + ' Km'
);
--- Fin del código ---
--- Código: --- <tfoot>
<tr align="left">
<th>Resumen: </th>
<th style="padding-left: 1px; color: #306EFF; background-color: ; font-weight:bold; font-size:19px;">Tmin</th>
<th style="padding-left: 1px; color: red; background-color: ; font-weight:bold; font-size:19px;">Tmax</th>
<th style="padding-left: 1px; color: green; background-color: ; font-weight:bold; font-size:19px;">Tmoy</th>
<th style="padding-left: 1px; color: blue; background-color: ; font-weight:bold; font-size:19px;">Rain</th>
<th style="padding-left: 1px; color: #D462FF; background-color: ; font-weight:bold; font-size:16px;">Bmin hPa</th>
<th style="padding-left: 1px; color: #8D38C9; background-color: ; font-weight:bold; font-size:16px;">Bmax hPa</th>
<th style="padding-left: 1px; color: maroon; background-color: ; font-weight:bold; font-size:16px;">Wgust</th>
<th style="padding-left: 1px; color: maroon; background-color: ; font-weight:bold; font-size:16px;">Wrun</th>
</tr>
</tfoot>
--- Fin del código ---
jezuleon:
Hola kocher, me parece muy interesante la tabla de los datos de tu estación, y me gustaría incluirlo en mi página web, pero como ya dije en otro post, no tengo ni idea de programación ni de creación de páginas web. He intentado aplicarlo a mi página, pero no lo consigo, yo uso un portátil dedicado a la estación en el cual instalé un servidor apache (por supuesto releyendo mucho cómo hacerlo) y que veo que lleva incluido el mysql, pero que ni se para que sirve, ni mucho menos cómo hacerlo funcionar.
He intentado hacer funcionar el mysql para crear una base de datos con el dayfile, pero nada, no tengo ni la más remota de idea de cómo hacerlo, así que de momento me doy por vencido, si veo algo que me aclare cómo hacerlo, volveré a intentarlo.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa