Wellcome Trust Cafe

Start of the week was spent in planning mode - creating flight plans for some scans of Marshgate with the BLK2FLY and DJI M4E plus getting the timeline sorted for ESB module next term. The end of the week included a visit to Thirst exhibition at the Wellcome Collection exploring water and our relationship with it. In between we set-up a bus tracker for the Student Union using Traccar and an off the shelf GPS tracker, and downloaded the photos from the Nature Smart Garden to create a timelapse for 2025.

The trip to Thirst was to explore the content (which was really interesting!) but to also look at how the exhibition was designed and put together. The exhibition uses a combination of objects, interactive displays, audio-visual content and immersive environments to engage visitors - useful prep for our CE exhibition. They say:

“From ancient Mesopotamia and Victorian London to modern-day Nepal and Singapore, the exhibition highlights the vital role of freshwater in shaping health and ecosystems; the consequences of mismanagement, like the spread of infectious disease; and community-led solutions to the global water crisis.”

Thirst at Wellcome Collection Thirst at Wellcome Collection - more images on Flickr.

Work on the SU bus tracker progressed well. Working with Steve managed to get the Traccar server up and running on a portainer on one of our servers, and then configured the GPS tracker to send data to it. Most of the headache was configuring the cellular device and managing ports to get messages through the network. But now we have JSON packets flowing through our MQTT broker which means we can start to explore was to visualise that information. Steve has a web app in progress but the open data also leaves the door open for students to create other ways of seeing the data.

traccar-bus Traccar website showing admin side of tracker.

sjg-wip Early prototype of bus tracker web app.

The JSON for the bus location is available via MQTT at mqtt.cetools.org on topic /UCL/OPS/Bus and has the following payload format:

{
"position":
	{
	"id":0,
	"attributes":
		{
		"ignition":false,
		"status":4294966271,
		"io1":"234",
		"io2":"10",
		"io3":"4112",
		"io4":"134255229",
		"io5":"100",
		"distance":0.0,
		"totalDistance":11611.549756931034,
		"motion":false
		},
	"deviceId":1,
	"protocol":"h02",
	"serverTime":"2025-11-19T17:50:04.410+00:00",
	"deviceTime":"2025-11-19T17:50:02.000+00:00",
	"fixTime":"2025-11-19T17:50:02.000+00:00",
	"valid":false,
	"latitude":51.538595,
	"longitude":-0.010236666666666666,
	"altitude":0.0,
	"speed":0.0,
	"course":0.0,
	"address":null,
	"accuracy":0.0,
	"network":null,
	"geofenceIds":null
	},
"device":
	{
	"id":1,
	"attributes":{},
	"groupId":0,
	"calendarId":0,
	"name":"ST-915-SU-Bus",
	"uniqueId":"7026070782",
	"status":"online",
	"lastUpdate":"2025-11-19T17:50:04.412+00:00",
	"positionId":44,
	"phone":null,
	"model":null,
	"contact":null,
	"category":"bus",
	"disabled":false,
	"expirationTime":null
	}
}

Finally, I downloaded the daily images from the Nature Smart Garden project to create a timelapse of the garden over 2025. Using FFmpeg I stitched together the images into a video file which you can see below. This is the short 5 sec version of the 23Gb of images collected. Notes on ffmpeg are at bottom of post for future reference.

Timelapse from May to September 2025.

Looking at links.duncanwilson.com I also spent time on:

Sewage Map

Doesn’t look like particularly pleasant water out there at the moment.

Notes:

During light hours

find 2025* -type f -name "*.jpg" | sort | grep -E 'frame_(09|1[0-4])[0-9]{4}\.jpg' | awk '
{
    print "file \047" $0 "\047";
    print "duration 0.033333333";
}
END {
    print ""; 
}' | sed '$d' > daylight_input_files.txt

ffmpeg -f concat -safe 0 -i daylight_input_files.txt -c:v libx264 -pix_fmt yuv420p -crf 23 -vf scale=1280:-2 hd_web_timelapse.mp4


One per day

find 2025* -type f -name "*.jpg" | sort | grep -E 'frame_1400[0-9]{2}\.jpg' | awk -F'/' '
{
    if (!seen[$1]++) {
        print "file \047" $0 "\047";
        print "duration 0.033333333";
    }
}
END {
    print "";
}' | sed '$d' > daily_1400_files.txt

ffmpeg -f concat -safe 0 -i daily_1400_files.txt -c:v libx264 -pix_fmt yuv420p -crf 23 -vf scale=1280:-2 hd_web_timelapse_daily.mp4