Showing posts with label lake. Show all posts
Showing posts with label lake. Show all posts

Monday, 5 March 2018

k-nearest neighbour

I previously made some observations of lake depth in central Finland and plotted them in octave. I let octave use its own smoothing and interpolation between my datapoints. Now I'm curious to look a little at a simple algorithm of my own.

It's a simple method in a field of statistical computing (called machine learning, statistical learning, artificial intelligence, data mining, supervised learning, etc). The method is called k-nearest neighbours. 'k' simply refers to the number of nearest neighbours one takes into account.

Tuesday, 8 August 2017

Lake temperature in central Finland








(earlier posts 1,2 on the methods)

Monday, 16 January 2017

Automated capture of radio communications

PART 2
(see also earlier blog post about this)

Aim: to log lake temperature

Method: similar to before, but with new device.

Device:
 * "SODIAL(R) New Wireless Digital Floating Swimming Pool Thermometer Bath Spa Temperature" bought from Amazon
 * Example result for 13.0degC was 01011000 01111010 00010010 10011111 10101111 00110011 1

Other notes on message:
 - there's a 'calibration' set of 8 before the main message
 - Then a long time at "1"
 - Then a long time at zero
 - Then main message
 - The start of each bit jumps from 0 to 1
 - After each bit there is a jump from 1 to 0
 - The 0 "on" is longer than the 1 "on"
 - The bits seem to be of different widths for "1" and "0"


Decoding:
  * Calibrated from 4 temperatures between 3 and 31degC. A linear relationship found between temperature and bits 15-24 (T = mx + c, where T is temperature (degC), m=0.1, c=-40, and x is the message in bits 15-24).

In Linux or Windows (or even Raspberry Pi):
    rtl_sdr -s 1e6 -n 3.2e7 -f 433.85e6 -g 40 output.dat
This should create a 32-second data sample at 433.85 MHz with a gain of 40dB and save the file to "output.dat".


In Octave:
  fid = fopen('output.dat','rb'); 
  y = fread(fid,'uint8=>double'); 
  y = y-127.5; 
  y = y(1:2:end) + i*y(2:2:end); 
  plot(abs(y));

Then many lines of Octave code to interpret and clean signal,
and then writes result to data log file with each row as follows: Year,Month,Day,Hour,Minute,Temperature(degC)



Helpful websites included:
  • http://electronics.stackexchange.com/questions/145714/what-encoding-is-used-in-this-signal
  • http://sdr.osmocom.org/trac/wiki/rtl-sdr
  • http://aaronscher.com/wireless_com_SDR/RTL_SDR_AM_spectrum_demod.html 

Sunday, 5 June 2016

A typical lake in Finland

I once heard in a pub quiz that the average depth of Finnish lakes is 7 metres. But I think that most lakes have never had their depth measured - and certainly not in the detail that I would want. So I decided to make my own measurements (using string, GPS and a boat) of a lake I spend a lot of time on. The original data comprised 121 depth measurements; the coastline was later refined using google maps.
The axes are just distances in metres (north upwards), and the depth is on the colourscale in metres.

Saturday, 4 June 2016

Lakes in Finland

  • In Finland there are over 180,000 lakes, pools, ponds of at least 500 square metres in surface area. 
  • On a lake database (jarviwiki.fi) are included all lakes of at least 1 hectare in size (i.e. 100x100 metres is 10,000 square metres).
  • There are lots of small lakes, and not so many bigs ones - following a power-law relationship, see chart below.