Autor Tema: dayfile-SQL Rápido visor de la tabla dayfile  (Leído 11031 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
dayfile-SQL Rápido visor de la tabla dayfile
« en: 27 de Enero del 2017, 11:54:06 am »
Os presento un juguete nuevo:

Demo: Demo de la Tabla dayfile

Su finalidad es poder ver los datos que contiene la tabla dayfile de nuestra base de datos en la web.

Para ello, necesitamos configurar nuestra base de datos MySQL y las tablas que va a contener:

Ver el hilo: http://forum.meteoclimatic.net/index.php/topic,1148.0.html

Instalación:

1) Descargar el script completo:

Link de Descarga: http://kocher.es/cumulusMX/datatables/dayfile-sql.rar

2) Editar el archivo ../examples/server_side/scripts/server_processing.php en las líneas 81 - 84, sustituyendo las xxxxxx por los valores correctos de nuestro servidor MySQL.

3) Subir los archivos descomprimidos "a la_carpeta_que_queramos"

4) Llamar, desde nuestro navegador, al archivo:

                      http://MiSitioWeb/la_carpeta_donde_hayamos_instalado_el_script/datatables/examples/server_side/dayfile-sql.php

Características de la tabla:

* Todas las columnas son "reordenables"; tan solo con pinchar en cualquier cabeza de columna, se reordena la tabla para ese campo de manera instantánea.

* La búsqueda de datos en la tabla, gracias al campo LogDate (fecha en formato 2017-01-27) al que cumulusMX le asigna un índice primario,  se realiza escribiendo una fecha en formato:

aaaa-mm : Nos dará todos los datos diarios de ese año y ese mes, con un resumen a pié de tabla.

mm-dd: Nos dará todos los datos de ese día y ese mes, agrupados por los años que tengamos registrados.

-mm-: Nos proporciona los datos de todos los días del mes y de todos los años que tengamos registrados.

La búsqueda es rapidísima pero, hay que tener en cuenta que dayfile se actualiza al final de cada día; es decir, para ver el día actual, debemos esperar a que termine.

Espero que os resulte útil       :D
« Última modificación: 28 de Enero del 2017, 22:05:07 pm por kocher »



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.402
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #1 en: 27 de Enero del 2017, 13:22:00 pm »
Bravo kocher  apla3 apla3 apla3

Me ha gustado mucho la idea de tener un visor de todos los días así de sencillo del dayfile  :D :D

Como tengo servidor apache rodando en local he hecho que cree la la base de datos y la tabla de dayfile. Lo malo es que parece ser que tendré que esperar a que suba los datos a la tabla a medianoche. No veo ninguna opción en el MX de actualizarla inmediatamente.

A medianoche cuando la suba la probaré con ese visualizador dayfile-sql y pondré aquí el enlace.

Gracias  ;D

Saludos



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #2 en: 27 de Enero del 2017, 13:35:44 pm »

Como tengo servidor apache rodando en local he hecho que cree la la base de datos y la tabla
A medianoche cuando la suba la probaré con ese visualizador dayfile-sql y pondré aquí el enlace.

Gracias  ;D

Saludos

Efectivamente, creo que al cambiar el día, tendrás la tabla actualizada.
¡ La vas a disfrutar !

Saludos desde San Sebastian         ;D
« Última modificación: 27 de Enero del 2017, 15:57:50 pm por kocher »



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #3 en: 28 de Enero del 2017, 00:38:39 am »
Esta tabla se puede adaptar a cualquier base de datos que tengamos en nuestra web; por eso, si a alguien le interesa, sería muy sencillo adaptarla a cualquier Software. Lo único imprescindible, es que tengamos la base de datos en nuestro servidor.

Sería interesante conocer que tal os funciona la tabla, porque se pueden introducir mejoras; por ejemplo, disponer de todos los valores "resumen" en el pié de la tabla (en la fila del resumen de los datos).

Otra opción que estoy pensando, es la posibilidad de actualizar la tabla dayfile con datos actuales cada xx minutos, hasta que cumulusMX realice la última actualización a las 00:00 de cada día; con ello veríamos nuestra tabla con datos en tiempo "casi real":

           http://kocher.es/datatables/examples/server_side/simple-test.php

Atento a vuestras noticias

Saludos desde San Sebastián


 



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.402
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #4 en: 28 de Enero del 2017, 20:11:23 pm »
Hola kocher

Te cuento...

Efectivamente anoche subió a la base de datos los datos de ayer del dayfile pero no todo el dayfile por lo que investigando lo he tenido que subir a la base de datos con una utilidad para tal cometido:

http://wiki.sandaysoft.com/a/ImportCumulusFile

Con ese script y modificándolo porque algunos comandos mysql están obsoletos en PHP 7 he conseguido subir el dayfile entero.

Aquí tengo la página en pruebas:

http://meteoprovidencia.es/dayfile-sql/examples/server_side/dayfile-sql.php

El fondo es de tu web pero ya iré depurando cosas  ;D

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.

A ratos veré si se puede mejorar. Se le podría poner la humedad y más cosas aunque está ya bastante completo.

Animo a la gente a probarlo porque merece la pena  :) :)

Saludos


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #5 en: 28 de Enero del 2017, 21:16:55 pm »
Parece que funciona perfectamente, jjj ¡ Me alegro mucho !

Código: [Seleccionar]
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.
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: [Seleccionar]
// 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 );

                  Por estas:

Código: [Seleccionar]
// 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]);
                });



En mi tabla tengo configurado el siguiente orden en el pié de tabla:

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: [Seleccionar]
$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';
}
)
);




Me alegro de que te guste y, espero que lo disfrutes.

Saludos   :D



« Última modificación: 28 de Enero del 2017, 21:56:10 pm por kocher »



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.402
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #6 en: 28 de Enero del 2017, 22:50:18 pm »
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: [Seleccionar]
...

// 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'
            );

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 !!  ;)



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #7 en: 28 de Enero del 2017, 23:01:29 pm »
¡ 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: [Seleccionar]
<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>

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






“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #8 en: 28 de Enero del 2017, 23:06:41 pm »
Para que no se amontonen los datos en el resumen, se puede aplicar este código:

   
 
Código: [Seleccionar]
            // Update footer
            $( api.column( 1 ).footer() ).html(tempMIN.toFixed(1) + ' &deg;C'
            );
            $( api.column( 2 ).footer() ).html(tempMAX.toFixed(1) + ' &deg;C'
            );
            $( api.column( 3 ).footer() ).html(totalAVG.toFixed(1) + ' &deg;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'
            );






Código: [Seleccionar]
<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>
« Última modificación: 28 de Enero del 2017, 23:12:26 pm por kocher »



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jezuleon

  • Full Member
  • ***
  • Mensajes: 119
    • Ver Perfil
  • Estación: JEZULEON-JEREZ ESAND1100000011406A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #9 en: 01 de Febrero del 2017, 01:08:19 am »
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.

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #10 en: 01 de Febrero del 2017, 10:30:41 am »
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.

Saludos Jezuleon

Veo que utilizas Cumulus1

Yo te recomiendo cambiar a cumulusMX; la razón es que, una vez instalado y configurado, él mismo se encarga de la creación de la base de datos en tu servidor, y de la actualización de las tablas. Tan solo tienes que configurar bien cumulusMX.
Con las tablas de la base de datos, vas a tener acceso a gráficos dinámicos (no imágenes estáticas),  tablas tipo DataTables e infinidad de scripts .
Ya no dependerás de que cumulus procese una página, ya que la información necesaria esta en tu base de datos.

Para ello, debes instalar y configurar cumulusMX y, despues:

http://forum.meteoclimatic.net/index.php/topic,1148.0.html






“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-

Desconectado jezuleon

  • Full Member
  • ***
  • Mensajes: 119
    • Ver Perfil
  • Estación: JEZULEON-JEREZ ESAND1100000011406A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #11 en: 01 de Febrero del 2017, 20:42:23 pm »
Muchas gracias por responder, a ver si le echo valor y soy capaz de ponerlo en funcionamiento un día de estos, de momento voy a ir descargando el cumulus mx e investigaré un poco

Desconectado kocher

  • Moderador Global
  • Hero Member
  • ******
  • Mensajes: 976
    • Ver Perfil
    • Meteo San Sebastian - Arriola
  • Estación: San Sebastian, Arriola ESEUS2000000020018A
Re:dayfile-SQL Rápido visor de la tabla dayfile
« Respuesta #12 en: 01 de Febrero del 2017, 20:48:37 pm »
Muchas gracias por responder, a ver si le echo valor y soy capaz de ponerlo en funcionamiento un día de estos, de momento voy a ir descargando el cumulus mx e investigaré un poco

¡ Por supuesto que eres capaz de hacerlo ! :D



“La mente es como un paracaídas… Solo funciona si la tenemos abierta”.

“La formulación de un problema, es más importante que su solución”.

“Si buscas resultados diferentes, no hagas siempre lo mismo" . -Albert Einstein-