Software > WeeWX
A vueltas con la presion atm.
manolodos:
Aquí está explicado el tema de presión, barómetro y altímetro en Weewx
https://github-wiki-see.page/m/weewx/weewx/wiki/Barometer%2C-pressure%2C-and-altimeter
"pressure" es la absoluta que marca el sensor de presión y "barometer" la relativa calculada por el algoritmo de weewx y que es la que se envía
Una posible solución podría ser modificar el archivo de configuración weewx.conf en el apartado StdCalibrate con una línea así
barometer = pressure + x
siendo x la diferencia teórica de presión entre los 933 metros de altitud de tu estación y los 0 metros del nivel del mar
Si weewx lo tienes configurado en unidades imperiales (presión en pulgadas) x debe ser 3,245 y si está en unidades métricas (milibares o hPa) pues x debe ser 110, aproximadamente
Supongo que con esto Weewx enviará la presión relativa como la absoluta mas un factor fijo, en lugar de la calculada internamente
A ver que os parece esta suposición
jantoni:
Es posible que funcione.
Pero pierdes el algoritmo de weewx.
No entiendo vuestras quejas, el sistema de cálculo de presión de weewx es archiprobado.
Con las diferencias que marca las diferentes estaciones, he tenido funcionando de forma simultánea weewx con una Davis Vue y una FineOffset con gateway y las diferencias eran de décimas de hPa.
En el caso de la Davis, Weewx toma la presión relativa directamente de la consola.
Y es reconocido que él sensor de presión y el algoritmo de la Vue es excepcional.
Así que me ratifico y saco mis conclusiones.
O tienes algo mal configurado en Weewx
O el sensor de presión tiene la absoluta muy subida.
Mas no puedo ayudar…..todo lo que sigamos, son cábalas.
jmviper:
--- Cita de: manolodos en 02 de Febrero de 2022, 17:53:16 ---
Creo que el algoritmo de cálculo de la presión relativa de Weewx es complejo
Tiene en cuenta temperatura, humedad relativa y altitud
Por lo que tengo observado, cuando hay fuerte oscilación de la temperatura, combinada con baja humedad y a una elevada altitud, como es el caso, pues la presión relativa calculada por Weewx se dispara en sentido contrario a la temperatura
Creo que se puede apreciar en la imagen adjunta
A ver si van por ahí los tiros
--- Fin de la cita ---
Sí, van por ahí los tiros. No toma en cuenta tantos parámetros, sólo la altitud de la estación y la temperatura actual. No es tan complejo el algoritmo como por ejemplo el de las Davis.
Esa fórmula en concreto que calcula la presión relativa a partir de la absoluta está en su archivo de fórmulas (/usr/share/weewx/formulas.py):
--- Código: ---def CtoK(x):
return x + 273.15
def _etterm(elev_meter, t_C):
"""Calculate elevation/temperature term for sea level calculation."""
t_K = CtoK(t_C)
return math.exp(-elev_meter / (t_K * 29.263))
def sealevel_pressure_Metric(sp_mbar, elev_meter, t_C):
"""Convert station pressure to sea level pressure. This implementation was copied from wview.
sp_mbar - station pressure in millibars
elev_meter - station elevation in meters
t_C - temperature in degrees Celsius
bp - sea level pressure (barometer) in millibars
"""
if sp_mbar is None or elev_meter is None or t_C is None:
return None
pt = _etterm(elev_meter, t_C)
bp_mbar = sp_mbar / pt if pt != 0 else 0
return bp_mbar
--- Fin del código ---
Utiliza tres funciones para su funcionamiento que se llaman unas a otras pero la que da la salida es la última sealevel_pressure_Metric
Los parámetros que se le meten como dice en sus comentarios internos son la presión absoluta en milibares (o hectopascales), la altitud de la estación en metros y la temperatura en grados centígrados.
Veamos ejemplos con esa función:
Presión absoluta: 910 hPa
Altitud: 933 m
Temperatura: 0ºC
print(sealevel_pressure_Metric(910, 933, 0)) --> 1022.66 hPa
Ahora lo hacemos igual pero con una temperatura de 20ºC
print(sealevel_pressure_Metric(910, 933, 20)) --> 1014.55 hPa
Vemos que con misma presión absoluta tenemos unos 8 hPa de diferencia haciendo 0ºC que 20ºC, eso es extrapolable a la amplitud térmica que se pueden tener en estos días de potentes anticlones por el frío en esta época.
Para las Davis no usa esta fórmula porque las Davis reportan ya la presión relativa, lo que me hace suponer como pone en weewx en las características de las Fine Offset que el driver toma el valor de la absoluta de ellas:
barometer S S
pressure pressure H H
altimeter S S
https://weewx.com/docs/hardware.htm#fousb_data
Esto es para las USB. Como se ve solo pressure es tomado de la estación, las otras dos van por software calculadas por weewx, así que hace esa fórmula en la que se ven esos 7-8 hPa de diferencia con las otras estaciones.
El algoritmo para las Davis es más complejo teniendo en cuenta la diferencia de temperatura actual con la de hace doce horas y con la HR. Ahora mismo mi Davis está dando 1023.2 hPa y weewx calcula una absoluta de 1008.8 hPa
Si pasamos el algoritmo anterior a la absoluta en mi caso tenemos:
Presión absoluta: 1008.8 hPa
Altitud: 120 m
Temperatura: 17.9ºC
print(sealevel_pressure_Metric(1008.8, 120, 17.9)) --> 1023.11 hPa
Como vemos casi lo clava con la relativa de la Davis.
Prueba con weewx detenido a ejecutar wee_device --info y pon aquí el resultado.
aerf:
--- Cita de: jmviper en 03 de Febrero de 2022, 12:35:50 ---
Prueba con weewx detenido a ejecutar wee_device --info y pon aquí el resultado.
--- Fin de la cita ---
Esto devuelve:
--- Código: ---Using configuration file /etc/weewx/weewx.conf
--- Fin del código ---
jmviper:
Pues se ve que esa utilidad de weewx no sirve para tu estación.
De un hilo en el que pusiste un loop en el inicio de año:
--- Citar ---pi@raspberrypi:/ $ sudo weewxd /etc/weewx/weewx.conf
LOOP: 2022-01-01 21:57:37 UTC (1641074257) altimeter: 30.537518146495536, appTemp: 29.159422226421114, barometer: 30.692822255197072, cloudbase: 3540.071529474192, dateTime: 1641074257, dewpoint: 30.83552987741957, heatindex: 32.9, humidex: 32.9, inDewpoint: 52.65592647797774, inHumidity: 57.0, inTemp: 68.5, maxSolarRad: 0.0, outHumidity: 92.0, outTemp: 32.9, pressure: 27.307, radiation: 0.0, rain: None, rainRate: 0.0, usUnits: 1, UV: 0.0, windchill: 32.9, windDir: None, windGust: 0.0, windSpeed: 0.0
--- Fin de la cita ---
pressure: 27.307 inHg --> 924.72 hPa
barometer: 30.692822255197072 inHg --> 1039.38 hPa
outTemp: outTemp: 32.9 ºF --> 0.5 ºC
print(sealevel_pressure_Metric(924.72, 936, 0.5)) -- > 1039.38 hPa
La fórmula funciona bien y si a mí con la Davis ya hemos visto que va bien con la tuya también.
Navegación
[*] Página Anterior
Ir a la versión completa