While WeatherSignal is primarily designed to crowdsource Weather Readings you can also use it as a personal “tricorder” – for example to make highly localised maps of your surroundings, or even to monitor your own habits and interactions with the environment. That’s pretty abstract – let’s look at some examples of what you might want to do, then we’ll look at how you can use WeatherSignal to do it.
1. Activity tracking
Starting with WeatherSignal 1.8 we’ve incorporated “Activity Recognition” into the app. Using some very cool new APIs from Google – it is possibly the first third party app to incorporate them – WeatherSignal attempts to distinguish between when the phone is still, when the user is walking with it, on a bicycle, or in a vehicle. The app does not need to be open to collect this information, by default it will scan for it about once an hour, but you can increase the frequency. When you want to see what you’ve been up to, export the data to CSV and look for the act_type and act_con fields.
2. Migraine prediction
Gabe has just trekked round 20 of the largest cities in the US with a portfolio of very expensive phones. He’s had a lot of coffee. It’s enough to give anyone a headache. But Gabe also pointed out to me that the weather often triggers migraines – and there are many theories about it being linked to any one of pressure, humidity and even magnetic flux. All of which can be tracked with WeatherSignal (depending on your phone type).
Suppose you feel a migraine coming on and you want to try to work out what could be causing it, do the following to make a record of all the sensor data on your phone:
– open WeatherSignal
– go to the Report tab
– Write “migraine” or any other note in the Note box
– select the appropriate options for indoors/outdoors and the precipitation slider
– Hit Submit … and you’ve saved it
You’ll be able to find that row and others in your CSV when you export it.
3. Mood tracking
You don’t need to be a hipsterrific Quantified Self-er to track your mood, but it helps, and with WeatherSignal it’s very easy to look for links between mood and weather.
The process is similar to that described above: report mood in the same way you’d report a migraine (write it into the Note box). I suggest using a number scale – 1:10 for terrible to fantastic. Once you’ve built up some data you can look for patterns.
4. Detailed and off-beat environment mapping
How does the lighting at your office compare to the lighting at your house, and what about thw magnetic field strength in those two places? These might seem like boring questions, but given that we probably spend 80% of our lives in these two places, perhaps we should be more interested in these differences. You’ll likely be surprised by how uniquely moments in space and time are defined by the pattern of sensor readings on your phone. There’s more to the world than meets the eye, and a little bit of that hidden surplus is caught by your phone’s sensors.
When does WeatherSignal take readings?
To understand how to get the most out of WeatherSignal, you need to know when it takes readings:
– In the foreground (when the app is open) every second
– In the background (when the app is closed) approximately every hour, but it will attempt to not wake the device in order to take a scan, so it may wait up to two hours.
These can both be configured in the settings.
By default WeatherSignal caches 10,000 rows in its internal database (or 1000 if you first downloaded before v1.8) you can alter this in settings. If you’re really serious about QS tracking, you don’t need to manually export to the SDCard, just check “Auto-save data to CSV file when DB reaches limit” and the files will magically save themselves.
To get the data from CSV file you can use an SD Card Explorer or File Manager App, or just plug it into your computer and open as a flash drive. My preferred method is to open Dropbox and select the “upload file here” option and then “other files”. If people are keen we could add Dropbox integration, or simply an option to email the file.
What’s the data structure of the CSV?
… See below:
|fg_bg||whether reading was taken in foreground or background|
|row_tim||time of reading (UTC)|
|tim_ofs||timezone offset in milliseconds|
|not||manually added note|
|not_age||time before the reading that the not was taken (typically a couple of seconds)|
|prec||“field to contain data from manual reports, to be configured”|
|prec_age||age of the above|
|doo||manual field for reporting whetehr device is indoors or outdoors|
|doo_age||age of above|
|bat_tem||battery temp||in deci-degrees C (degrees*10)||-998||here|
|bat_sts||battery status||“2:charging, 3:discharging, 4:not-charging, 5:full, 1:unknown”||-998||here|
|bat_vol||battery voltage||milli Volts||-998||here|
|bat_plg||battery plugged status||“4:plugged wireless, 1:plugged AC, 2:plugged USB”||-998||here|
|bat_lvl||battery level||seems to be percentage||-998||here|
|bat_hlt||battery health||“1:unknown, 2:good, 3:overheat, 4:dead, 5:over voltage, 6:unspecified-failure, 7:cold”||-998||here|
|bat_tem_acc||“accuracy field (as of 24/4/2013 no plans for anything here, but it may be added)”|
|bat_tem_age||age of all the above battery fields|
|amb_tem||ambient temperature from phones that have one|
|amb_tem_acc||accuracy of above|
|amb_tem_age||age of above|
|pre_acc||accuracy of above|
|pre_age||age of above|
|hum_acc||accuracy of above|
|hum_age||age of above|
|pro||proximity||“so far aobserved scale of 1:5 with only 1 and 5 being ever achieved, 1 is cllose, 5 is far”||-998|
|pro_acc||accuracy of above||so far found to be empy|
|pro_age||age of above|
|lig_acc||accuracy of above|
|lig_age||age of above|
|mag_mag||magnitude of the magentic vector||micro Tesla||-998|
|mag_x||component of magentic vector along phone’s x-axis (will also dfepend on phone orientation)||micro Tesla||-998|
|mag_y||ditto for y||micro Tesla||-998|
|mag_z||ditto for z||micro Tesla||-998|
|mag_acc||accuracy of above|
|mag_age||age of above|
|acc_mag||magnitude of the acceleration vector||meters per second squared||-998|
|acc_x||component of acceleration vector along phone’s x-axis (will also dfepend on phone orientation)||-998|
|acc_y||ditto for y||-998|
|acc_z||ditto for z||-998|
|acc_acc||accuracy of above|
|acc_age||age of above|
|rtv_mag||magnitude of the rotational velocity vector||-998|
|rtv_acc||accuracy of above|
|rtv_age||age of above|
|rot_age||age of above|
|loc_src||location source||“GPS, Network, Fused”|
|loc_acc||location accuracy||radius within which 67% of values lie (in metres)|
|loc_age||age of location fix|
|loc_sat||“nr of satellites used for fix, if available”|
|act_type||“the current user activity – 0 in vehicle, 1 on bike, 2 on foot, 3 still, 4 unknown, 5 tilting “||0-5 nbut may change if APIs are updated||-998||here|
|act_con||confidence in the above assessment of user activity (out of 100)||0-100|
|act_age||age of the activity reading|
|api||API level of device|
|apv||app version code|