0
$\begingroup$

Need help. Especially those knowledgeable in weather systems/meteorology.

Best approach in detecting and predicting faulty weather sensors and their failures based on their readings alone?

I'm doing a project regarding detection and prediction of faulty sensors employed at weather stations to improve maintenance and optimize scheduling.

I've seen studies using operational data such as battery level, communication status, and temperature to detect faults. This is especially the case for industrial machines. They employ sensors to read the temperature, vibration, rotation, etc. of those machines. They also have labeled data such as if the machine/equipment is operational at the time being.

What method can I do if such data mentioned above isn't available for my weather station dataset?

I also don't have maintenance data due to confidential concerns from our local weather agency. I only have access to historical weather data, which contains values of actual physical phenomenon being sensed (temperature, humidity, etc.)

Anomaly detection would work but I'm thinking if it's really that accurate since sudden rain affects temperature, humidity, wind speed values might confuse the model as saying the sensor's faulty.

Pardon me if I sound noob because this is only my second machine learning project.

Dataset looks like this (per station)

Timestamp Temp Humid
12/24/23 00:00:00 28.4 10.1
12/24/23 00:00:10 28.5 10.2
12/24/23 00:00:20 28.3 11.8

I tried anomaly detection but haven't produced a good model as I am still in practicing stage.

$\endgroup$

2 Answers 2

1
$\begingroup$

Welcome to SE.

So you only have two independent variables and a lot of time points. How many examples of failures do you have? 10/100/1000? This will help to decide how complex your prediction model can be.

Looking at this data yourself, could you explain to another person what indicates that there was or will soon be a failure? It may help to design data processing steps to extract more potent feature representations, it may also suggest surrogate outcomes which you could try to predict instead, i.e. if before 50% of the failures the temperature readings start oscillating with a period of 5min, you could simply make Fourier-transformed temperature reading into a feature, and try to detect that, as part of the process.

Do you think temperature or humidity cause failures? If not, it may be better to think of comparing readings of nearby sensors, i.e. focusing on the difference between sensors, since if failure causes difference in temperature, then no difference in temperature can be taken to imply no failure (ignoring all other mechanisms that could cause difference).

Sorry not to give an easy answer, but I think it might be beneficial to answer the above questions before diving too deep into specific models


ADDENDUM

To predict failures you would need to tie failures to some preceding event. It does seem to me that your readings do not cause failure, and also that the actual temperature/humidity does not cause failure. Hence, IMHO, the best signal would be to the difference between any specific readings of a sensor and the nearby sensor, that presumably is not faulty. You can generalize this to using nearest sensors you have to predict the readings of your current sensor, and then using the difference between the predicted readings and the actual ones as a signal for your failure prediction mechanism.

If there are no sensors nearby, then you would need to extract this signal of impending failure from the sensor itself. This may be very tricky since many other factors will play a role here. We then come back to how many examples of failure do you have. I have seen Transformers being applied to time series. But you need a lot of data there. There are also things like TiDE - also quite data-hungry. You will probably be better of with ARIMA-type model and few additional features, i.e. thinking something like Fourier transform, or time-series, but with generic 1,2,3 lags as well as very specific 24hour lags, to compare sensor to itself a day ago. The predictions of the time-series model and your actual readings could be fed into a classifier and used to generate a score to predict failure.

It might be helpful to plot readings of few temperature/humidity sensors before they went faulty. You may spot some patterns there.

$\endgroup$
11
  • $\begingroup$ Just opened the metadata now. Below contains sample values that the sensors throw when it has issues or broken (basically if it throws unrealistic values then its faulty: {"""air_temperature_max"":""-39.34"", ""air_temperature_min "":""-39.51"", ""air_temperature"":""-39.41"", ""relative_humidity_max"":""0.7"", ""relative_humidity_min"":""0.5"", ""relative_humidity"":""0.6"", ""pressure_max"":""-999"", ""pressure_min"":""-999"", ""pressure"":""-999"", ""solar_radiation_max"":""497.4"", ""solar_radiation_min"":""115.7"", ""solar_radiation"":""224.1"", ""accumulated_rain_1h"":0}" $\endgroup$
    – noob101
    Commented Dec 23, 2023 at 18:44
  • $\begingroup$ @JasonYuliver I guess detection of failures should be easy enough - you just said it. Non-realistic readings, like negative temperatures. Will add the other part to the answer $\endgroup$
    – Cryo
    Commented Dec 24, 2023 at 2:34
  • $\begingroup$ What about prediction though? My goal is to predict failures to reduce downtime and prevent those failures. $\endgroup$
    – noob101
    Commented Dec 24, 2023 at 13:06
  • $\begingroup$ @JasonYuliver, have you read the extra I added to the answer? Does this help? $\endgroup$
    – Cryo
    Commented Dec 24, 2023 at 13:53
  • $\begingroup$ Yes, a lot. I do have another question. Would 10-15 years of weather data be enough? Data from the station is every 10 mins. Although, I don't have labeled failures. There are data of failures, such as when temperature readings become "-999" or "-39.41". But to be honest, they are very random. Could occur twice, thrice, or 10 times in a month, then none in the next. $\endgroup$
    – noob101
    Commented Dec 25, 2023 at 22:41
-1
$\begingroup$

In [a] we do exactly this. For example, see fig 15 and 16. Moreover, it is very simple and fast...

[a] https://www.cs.ucr.edu/%7Eeamonn/DAMP_long_version.pdf

$\endgroup$
1
  • 1
    $\begingroup$ Link-only answers are discouraged for a number of reasons. Give a journal ref if possible (in addition to the link to your site), and summarize the main point enough to stand on its own here. $\endgroup$
    – Ben Reiniger
    Commented Dec 23, 2023 at 14:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.