Balcony Microclimate – Results and Conclusion


At some point I stopped caring how pretty the plots are to get the post out of the door.

Sources are available: https://github.com/AndreasMeier12/meteogetter

Larger versions of the line plots are available on imgur and linked.

Results

These are the results from March 2022 to October 2022. This is roughly one growing season and the time I’m most interested in. The actual data is found in the repo under data_sources.

Time Series

A word of note: I did not filter out missing data. Long linear stretches are artifacts from a lot of missing data points.

To illustrate the shifts better, here is an excerpt for June:

Extrema of the two curves are shifted. Maxima are reached earlier for my balcony than for the weather station. Minima are reached after the weather station. This makes the much less sharp for the balcony. There is a pattern of spikes for the balcony temperature before the largest peak by area. This might be due to to direct insolation around that time of the day.

I see no pronounced difference between months.

Relative humidity is lower on the balcony, while the dew point is lower on average. Please see the discussion for caveats.

Humidity

Distribution

o

Balcony temperatures are higher by around ~ 2 °C in the morning and in the night. Some temperatures are higher than that. Morning temperatures are skewed towards higher differences in warmer months. The afternoon differences center around 1 °C. The temperatures distributions are skewed towards larger positive differences.

Discussion

Results in general

The temperature differences were not as pronounced as I had expected. Still, 2 °C is relevant to growing plants. For what it’s worth, I managed to grow a few pods of okra at the time I was running the experiment.

The humidity differences (R.H. and dew point) indicate that my balcony is drier. It is not much drier. This is based on air measurements. A more relevant measurement to gardening would be to measure how much water is lost from the soil. This is also more difficult to measure and would be a project in itself. It may also seem drier to me because there is next to no rain reaching the balcony and I have to supply most of the water myself.

What new stuff did I use?

  • skyfield astronomical library
  • more pandas
  • plotnine instead of matplotlib. I find plotnine’s model more pleasant to use
  • Black as a formatter. I think it’s readable and the cleaner diffs are nice, the integration in PyCharm was not yet fully there. As a result, I used black as a pre-commit hook. It worked fine.

Lessons Learned

Hardware:

A lot of wires came loose causing losses in the data acquisition. It might be a good idea to solder wires for my next project, whatever that might be.

The setup with an SD card and an Arduino was workable. The USB cable was nice for getting quick access to data.

The copying of data was not a deal breaker but I could have done without it.

It is a very good idea to set up notification systems when something goes wrong. There have been multiple cases of data losses when changes in the meteo schema occurred or some wires for the microcontroller came loose.

Software

I had a simple notification system using a telegram bot. This alerted me when more than 4 hours were missing from the professional meteorological data. This did not happen much but it brought peace of mind. Between my hardware problems and a few issues with Swiss meteo, I had several gaps in the data.

One good idea is to save intermediate transformations of data. This allows much faster iterations of, e.g., plot styling. In the future, I will try to incorporate such debug measures earlier on in the development cycle.

Looking ahead

Of course, there are a million ways to improve the project.

Better Dew Point

Right now, I used a simple approximation for the dew point. The assumptions might not hold. Computing the dew points and their differences would give a better understanding of humidity on my balcony.

Current calculation is based on: https://iridl.ldeo.columbia.edu/dochelp/QA/Basic/dewpoint.html I did not look deeply into dew points. From what I’ve gathered, I could calculate a more accurate dew point with a pressure measurement.

Averaging

This has the disadvantage that my earlier data is not comparable. It has the advantage that it’s more consistent with the meteo data which is averaged.

Measuring Insolation

There were pronounced early peaks in my balcony temperature measurements for many days. It would be a good idea to check my hypothesis that this is due to direct insolation.

Logging with WiFi/different network connection

It might be more convenient to buffer a few measurements on an SD card and send them to a server for logging. This way, outages could be detected easily and the server could notify me. Automated transfer of logged data would also be way less fiddly.

Better ways of publishing data

I had to remove rows from my database to the ones of interest. This isn’t in itself bad for the scope of this project. If I ever want to make larger data sets available, a GitHub repo is not going to cut it. Publish your data, kids.