Detecting the start and end of a snowstorm

A number of years ago I wrote a driver to integrate a Tempest smart weather system with a Crestron smart home processor to support the use of hyperlocal weather data in a smart home.

A number of years ago, I heard somewhere that WeatherFlow was going to build a sensor for detecting the depth of snowfall. However, that hasn’t ever come to fruition. But, a user of one of my other integration drivers turned me on to the Ecowitt LDS01 for measuring snowfall. I purchased one and have just written an integration driver for it.

I realize this is a Tempest forum and an Ecowitt product is out of scope. But what I’m looking for is how to determine, through programming, when a snow storm is starts and when it ends, And, I’m thinking this could involve leveraging weather data from the tempest.

There are two practical reasons for wanting to know this information:

  1. It would be cool to know exactly how much snow fell in a storm. Since snow will settle and sublimate over time, I would need to capture the depth at the start of the storm to know how much fell during the storm.

  2. I live in the mountains so storms can drop a few feet of snow. In this case I need to get my snowblower out several times during a storm or the accumulated snow will be too deep for me to clear with it. I want my smart home system to notify me when the amount of new snow reaches 8" so I will go out and clear it. Once I’m done, I want repeated reminders whenever the snow that has accumulated since the last time I cleared it reaches 8".

For this to all work I need to know when a storm starts and when it is done. It is unfortunate that the Tempest rain sensor can’t detect snow or that would at least provide me with a trigger when it starts to snow.

I’m a software guy, not a weather guy. So, I’m hoping that someone here with much more knowledge of leveraging weather data than I have can help me out. With my limited knowledge I was wondering if leveraging barometric pressure could be used. For example, could falling barometric pressure be used to trigger that a storm is approaching?

Thanks in advance for the help.

There has been some work by a friend of mine that does snowmobile trail grooming in the UP of MIchigan. He would take the images from various snow cams that had a measuring stick in the ground and do image processing to determine the snow pack and amount that fell to tell him if he needed to groom trails afterwards. But Johhny Dee Iwas the person that maintained the sites he used and he passed away a couple of years ago.

Thanks. I could mimic the approach used by your friend with the LDS01. But the approach is a backwards looking one. You don’t know it has started snowing until you can see measurable accumulation. I could do the same thing with the LDS01.

I asked ChatGPT and it came up with the following:

If you see:
Temp: ~32–35°F
Dew point: close to temp
RH: rising above 80%
Pressure: falling
Winds: shifting direction, increasing
Cloud base: lowering
Wet-bulb: approaching or below 32°F
Then snow is likely within a few hours.

if (
    precipitation_rate == 0 for >15 minutes and
    RH has decreased by 5% or more and
    pressure is rising steadily and
    cloud ceiling is lifting or light levels increasing and
    snow depth is stable
):
    conclude: "Snow has likely stopped."

Does the ChatGPT criteria make sense to people?

Thanks again

Interesting from a measurement perspective. I was thinking that a mm wave motion detector mounted in a open ended opaque tube or box could see the snow passing though the tube or box and based on the density of the motion calculate the snow rate. Then using temperature and pressure be able to determine if it adds to the snow pack.

Thanks @ronv42, that is an interesting approach.

It would take quite a bit of experimentation to work out at what rate snow would accumulate based on data from the motion detector, temperature, etc. I like the Ecowitt LDS01 better for this as it just measures the change in distance as the snow builds up.

However, from a snow blowing perspective even the LDS01 isn’t a perfect solution as temperature effects the density of the snow so 6" of snow that falls at 31 degrees is much denser than 6" of snow that falls at 25 degrees.

So, I may have to build a sliding scale into when the system notifies me to go out and clear my driveway based on outside temperature. Thanks for this idea!!

I have been giving this a lot of thought. I’ve realized that instead of tying to build my own prediction model for when it will snow based on temperature, dew point, pressure, winds, etc. I can instead just use the forecast data from the Tempest API along with data from my Tempest station.

If today’s forecast is for snow then I can save the current snow level and start looking for it to increase. If I see an increase then it is snowing and I can start notifications based on accumulation to clear my driveway. If I don’t see any accumulation, the forecast changes and says it won’t snow, then I go back to waiting for a forecast of snow. I’ve sketched out the logic for this and I think it will be reasonably simple to implement.

But, it brings up one question. What are the all the possible strings that can appear in the “conditions” element of the JSON for the daily forecast? I can’t find this in the API documentation. I can do a string compare and just look for the word “snow” in the “conditions” element. However, a forecast of “wintery mix” can product a pile of snow if the temperature is a few degrees colder than forecast and I’m not sure if “wintery mix” is ever returned as a value for the conditions element in the daily forecast JSON. This is why I’m hoping someone can provide me with a complete list of the strings for the “conditions” JSON element.

Thanks again for the help