<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Weather (Live) Archives - Digital Urban</title>
	<atom:link href="https://www.digitalurban.org/blog/category/weather-live/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.digitalurban.org/blog/category/weather-live/</link>
	<description>Data, Cities, IoT, Writing, Music and Making Things</description>
	<lastBuildDate>Thu, 27 Jun 2024 15:13:48 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.digitalurban.org/wp-content/uploads/2012/07/Dulogosm-1.png</url>
	<title>Weather (Live) Archives - Digital Urban</title>
	<link>https://www.digitalurban.org/blog/category/weather-live/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Enhancing Live Weather Monitoring with MQTT and Chart.js</title>
		<link>https://www.digitalurban.org/blog/2024/06/27/enhancing-live-weather-monitoring-with-mqtt-and-chart-js/</link>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Thu, 27 Jun 2024 15:10:06 +0000</pubDate>
				<category><![CDATA[data]]></category>
		<category><![CDATA[Data Visualisation]]></category>
		<category><![CDATA[Weather]]></category>
		<category><![CDATA[Weather (Live)]]></category>
		<category><![CDATA[Weather Display]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[mqtt]]></category>
		<guid isPermaLink="false">https://www.digitalurban.org/?p=7816</guid>

					<description><![CDATA[<p>Introduction Viewing real-time data from a personal weather station such as a Davis Vantage Pro, a Tempest, or an EcoWhitt device can be complex. However, the majority of systems that...</p>
<p>The post <a href="https://www.digitalurban.org/blog/2024/06/27/enhancing-live-weather-monitoring-with-mqtt-and-chart-js/">Enhancing Live Weather Monitoring with MQTT and Chart.js</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2></h2>
<h3>Introduction</h3>
<p>Viewing real-time data from a personal weather station such as a Davis Vantage Pro, a Tempest, or an EcoWhitt device can be complex. However, the majority of systems that process weather data, such as Weather Display, Weewx, or CumlusMx, all have the ability to output MQTT data. This data can be used to display a real-time graph of the data, keeping you engaged with the latest weather updates, and supplemented with any other data which is MQTT-based.</p>
<p>With this in mind, we&#8217;ve developed a live weather monitoring dashboard as an illustrative example. This dashboard uses MQTT for real-time data updates and Chart.js for dynamic visualization. We&#8217;ve also included a visual indicator for connection status and a brief pulse effect to notify when new data arrives, enhancing the user experience.</p>
<p><img fetchpriority="high" decoding="async" class=" wp-image-7820 aligncenter" src="https://www.digitalurban.org/wp-content/uploads/2024/06/Screenshot-2024-06-27-at-15.48.35-300x185.png" alt="MQTT Weather Dashboard" width="600" height="370" srcset="https://www.digitalurban.org/wp-content/uploads/2024/06/Screenshot-2024-06-27-at-15.48.35-300x185.png 300w, https://www.digitalurban.org/wp-content/uploads/2024/06/Screenshot-2024-06-27-at-15.48.35-1024x631.png 1024w, https://www.digitalurban.org/wp-content/uploads/2024/06/Screenshot-2024-06-27-at-15.48.35-768x473.png 768w, https://www.digitalurban.org/wp-content/uploads/2024/06/Screenshot-2024-06-27-at-15.48.35-1536x946.png 1536w, https://www.digitalurban.org/wp-content/uploads/2024/06/Screenshot-2024-06-27-at-15.48.35-2048x1261.png 2048w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>You can view it live at: <a href="https://finchamweather.co.uk/weathergraph.htm">https://finchamweather.co.uk/weathergraph.htm</a></p>
<p>The data populates as the page loads &#8211; we could of course back load it via a database link, but the aim was to simply use MQTT and have a graphing system that streams in data, its a work in progress but here is how we got it working:</p>
<h3>Setting Up the Environment</h3>
<p>Before we dive into the code, ensure you have the following libraries included in your HTML:</p>
<ul>
<li>Paho MQTT: for MQTT protocol handling &#8211; our MQTT feed is open to use as a test, replace this with your own MQTT details in the main code.</li>
<li>Chart.js: for creating dynamic charts</li>
<li>Chart.js adapter for date-fns: for handling time scales in charts</li>
</ul>
<h3>Initial HTML Setup</h3>
<p>We&#8217;ll start by setting up the basic HTML structure. This includes elements for displaying the connection status, forecast, weather statistics, and the weather chart.</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;meta name="apple-mobile-web-app-capable" content="yes"&gt;
    &lt;meta name="apple-mobile-web-app-status-bar-style" content="black"&gt;
    &lt;title&gt;Live Weather Graph&lt;/title&gt;
    &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js"&gt;&lt;/script&gt;
    &lt;script src="https://cdn.jsdelivr.net/npm/chart.js"&gt;&lt;/script&gt;
    &lt;script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns"&gt;&lt;/script&gt;
    &lt;style&gt;
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        #mqttStatus {
            margin-bottom: 20px;
            text-align: left;
            font-size: 1.2em;
        }
        .dot {
            height: 20px;
            width: 20px;
            border-radius: 50%;
            display: inline-block;
        }
        .green {
            background-color: green;
        }
        .red {
            background-color: red;
        }
        .orange {
            background-color: orange;
        }
        .pulse-once {
            animation: pulse-once 1s;
        }
        @keyframes pulse-once {
            0% { transform: scale(1); }
            50% { transform: scale(1.2); }
            100% { transform: scale(1); }
        }
        #forecast {
            margin-bottom: 20px;
            text-align: left;
            font-size: 1.2em;
            font-weight: bold;
        }
        #stats {
            display: flex;
            justify-content: center;
            gap: 20px;
            margin-bottom: 20px;
            font-size: 1.2em;
            font-weight: bold;
        }
        #stats div {
            padding: 10px 20px;
            border: 1px solid #ccc;
            border-radius: 8px;
            box-shadow: 2px 2px 12px #aaa;
            background-color: #f9f9f9;
        }
        canvas {
            border: 1px solid #ccc;
            box-shadow: 2px 2px 12px #aaa;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div id="mqttStatus"&gt;&lt;span id="connectionDot" class="dot red"&gt;&lt;/span&gt; mqtt: disconnected&lt;/div&gt;
    &lt;div id="forecast"&gt;Forecast: Loading...&lt;/div&gt;
    &lt;div id="stats"&gt;
        &lt;div id="maxWindSpeed"&gt;Max Wind Speed: 0 mph&lt;/div&gt;
        &lt;div id="maxTemp"&gt;Max Temperature: 0 °C&lt;/div&gt;
        &lt;div id="minTemp"&gt;Min Temperature: 0 °C&lt;/div&gt;
        &lt;div id="maxPressure"&gt;Max Pressure: 0 mbar&lt;/div&gt;
        &lt;div id="minPressure"&gt;Min Pressure: 0 mbar&lt;/div&gt;
    &lt;/div&gt;
    &lt;canvas id="weatherChart" width="800" height="400"&gt;&lt;/canvas&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3>Connecting to MQTT</h3>
<p>Next, we set up the MQTT connection. The MQTT client will connect to the broker, subscribe to the necessary topics, and handle messages when they arrive.</p>
<pre><code>// MQTT connection settings
var mqtt;
var reconnectTimeout = 2000;
var host = "mqtt.cetools.org";
var port = location.protocol === 'https:' ? 8081 : 8080;
var options = {
    timeout: 3,
    onSuccess: onConnect,
    onFailure: onFailure,
    useSSL: location.protocol === 'https:',
};
var clientID = "clientID" + parseInt(Math.random() * 100);

function updateConnectionStatus(status) {
    const dot = document.getElementById("connectionDot");
    if (status === "connected") {
        dot.className = "dot green";
        document.getElementById("mqttStatus").innerHTML = `&lt;span class="dot green" id="connectionDot"&gt;&lt;/span&gt; mqtt: connected`;
    } else if (status === "disconnected") {
        dot.className = "dot red";
        document.getElementById("mqttStatus").innerHTML = `&lt;span class="dot red" id="connectionDot"&gt;&lt;/span&gt; mqtt: disconnected`;
    } else if (status === "reconnecting") {
        dot.className = "dot orange";
        document.getElementById("mqttStatus").innerHTML = `&lt;span class="dot orange" id="connectionDot"&gt;&lt;/span&gt; mqtt: reconnecting`;
    }
}

function pulseDot() {
    const dot = document.getElementById("connectionDot");
    dot.classList.add("pulse-once");
    setTimeout(() =&gt; {
        dot.classList.remove("pulse-once");
    }, 1000); // Duration of the pulse-once animation
}

function onFailure(message) {
    console.log("Connection Attempt to Host " + host + " Failed: ", message.errorMessage);
    updateConnectionStatus("disconnected");
    setTimeout(MQTTconnect, reconnectTimeout);
}

function onConnect() {
    console.log("Connected ");
    updateConnectionStatus("connected");
    mqtt.subscribe("personal/ucfnaps/downhamweather/loop");
    mqtt.subscribe("personal/ucfnaps/eink/met");
}

function MQTTconnect() {
    console.log("Connecting to " + host + " on port " + port);
    updateConnectionStatus("reconnecting");
    mqtt = new Paho.MQTT.Client(host, port, clientID);
    mqtt.onMessageArrived = onMessageArrived;
    mqtt.onConnectionLost = function(responseObject) {
        if (responseObject.errorCode !== 0) {
            console.log("Connection Lost: " + responseObject.errorMessage);
            updateConnectionStatus("disconnected");
            setTimeout(MQTTconnect, reconnectTimeout);  // Attempt to reconnect
        }
    };
    mqtt.connect(options);
}

window.onload = function() {
    MQTTconnect();
}
</code></pre>
<h3>Handling Incoming Messages</h3>
<p>When messages arrive, we process the data and update the chart. We also update the connection dot to pulse briefly, indicating new data has been received.</p>
<pre><code>let lastUpdate = Date.now();  // Initialize to current time
let firstUpdate = true;  // Flag to ensure first update happens immediately

let maxWindSpeed = 0;
let maxTemp = -Infinity;
let minTemp = Infinity;
let maxPressure = -Infinity;
let minPressure = Infinity;

function updateWindSpeed(windSpeed, timestamp) {
    weatherChart.data .labels.push(timestamp);
    weatherChart.data.datasets[0].data.push(windSpeed);

    // Update max wind speed
    if (windSpeed &gt; maxWindSpeed) {
        maxWindSpeed = windSpeed;
        document.getElementById('maxWindSpeed').innerText = `Max Wind Speed: ${maxWindSpeed} mph`;
    }

    // Limit the number of data points to keep the chart responsive
    if (weatherChart.data.labels.length &gt; 1440) { // Assuming 1 data point per minute, keep 24 hours of data
        weatherChart.data.labels.shift();
        weatherChart.data.datasets[0].data.shift();
    }

    weatherChart.update();
}

function updateOtherMetrics(temperature, solarRadiation, rainAmount, pressure, timestamp) {
    weatherChart.data.datasets[1].data.push({x: timestamp, y: temperature});
    weatherChart.data.datasets[2].data.push({x: timestamp, y: solarRadiation});
    weatherChart.data.datasets[3].data.push({x: timestamp, y: rainAmount &gt; 0 ? rainAmount : null});
    weatherChart.data.datasets[4].data.push({x: timestamp, y: pressure});

    // Update max and min temperature
    if (temperature &gt; maxTemp) {
        maxTemp = temperature;
        document.getElementById('maxTemp').innerText = `Max Temperature: ${maxTemp} °C`;
    }
    if (temperature &lt; minTemp) { minTemp = temperature; document.getElementById('minTemp').innerText = `Min Temperature: ${minTemp} °C`; } // Update max and min pressure if (pressure &gt; maxPressure) {
        maxPressure = pressure;
        document.getElementById('maxPressure').innerText = `Max Pressure: ${maxPressure} mbar`;
    }
    if (pressure &lt; minPressure) { minPressure = pressure; document.getElementById('minPressure').innerText = `Min Pressure: ${minPressure} mbar`; } // Limit the number of data points to keep the chart responsive if (weatherChart.data.labels.length &gt; 1440) { // Assuming 1 data point per minute, keep 24 hours of data
        weatherChart.data.datasets[1].data.shift();
        weatherChart.data.datasets[2].data.shift();
        weatherChart.data.datasets[3].data.shift();
        weatherChart.data.datasets[4].data.shift();
    }

    weatherChart.update();
}

function updateForecast(forecast) {
    document.getElementById('forecast').innerText = `Forecast: ${forecast}`;
}

function onMessageArrived(message) {
    console.log("Message Arrived: " + message.destinationName + " : " + message.payloadString);
    if (message.destinationName === "personal/ucfnaps/downhamweather/loop") {
        const data = JSON.parse(message.payloadString);
        const windSpeed = data['windSpeed_mph'];  // Adjust this key according to your data structure
        const temperature = data['outTemp_C'];  // Adjust this key according to your data structure
        const solarRadiation = data['radiation_Wpm2'];  // Adjust this key according to your data structure
        const rainAmount = data['dayRain_mm'];  // Adjust this key according to your data structure
        const pressure = data['pressure_mbar'];  // Adjust this key according to your data structure

        const nowTimestamp = new Date();

        // Update wind speed every time
        updateWindSpeed(windSpeed, nowTimestamp);

        if (firstUpdate || Date.now() - lastUpdate &gt;= 60000) {
            // Update other metrics every minute
            updateOtherMetrics(temperature, solarRadiation, rainAmount, pressure, nowTimestamp);
            lastUpdate = Date.now();
            firstUpdate = false;  // Ensure subsequent updates follow the interval
        }

        // Pulse the dot when new data arrives
        pulseDot();
    } else if (message.destinationName === "personal/ucfnaps/eink/met") {
        const forecast = message.payloadString;
        updateForecast(forecast);
    }
}
</code></pre>
<h3>Chart.js Setup</h3>
<p>Now, let&#8217;s configure Chart.js to visualize the weather data. We will use multiple datasets to display wind speed, temperature, solar radiation, rain amount, and pressure.</p>
<pre><code>// Chart.js setup
const ctx = document.getElementById('weatherChart').getContext('2d');
const weatherChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: [],  // Time labels
        datasets: [{
            label: 'Wind Speed (mph)',
            data: [],
            borderColor: 'rgba(75, 192, 192, 1)',
            borderWidth: 3,
            fill: false,
            yAxisID: 'y-axis-1',
            tension: 0.1
        },
        {
            label: 'Temperature (°C)',
            data: [],
            borderColor: 'rgba(255, 99, 132, 1)',
            borderWidth: 3,
            fill: false,
            yAxisID: 'y-axis-2',
            tension: 0.1
        },
        {
            label: 'Solar Radiation (W/m²)',
            data: [],
            borderColor: 'rgba(255, 206, 86, 1)',
            borderWidth: 3,
            fill: false,
            yAxisID: 'y-axis-3',
            tension: 0.1
        },
        {
            label: 'Rain Amount (mm)',
            data: [],
            borderColor: 'rgba(54, 162, 235, 1)',
            borderWidth: 3,
            fill: false,
            yAxisID: 'y-axis-4',
            tension: 0.1
        },
        {
            label: 'Pressure (mbar)',
            data: [],
            borderColor: 'rgba(153, 102, 255, 1)',
            borderWidth: 3,
            fill: false,
            yAxisID: 'y-axis-5',
            tension: 0.1
        }]
    },
    options: {
        responsive: true,
        plugins: {
            legend: {
                position: 'top',
            },
            title: {
                display: true,
                text: 'Live Weather Data'
            },
            decimation: {
                enabled: true,
                algorithm: 'lttb',
                samples: 100,  // Adjust this value as needed for performance
            },
        },
        scales: {
            x: {
                type: 'time',
                time: {
                    unit: 'minute'
                },
                title: {
                    display: true,
                    text: 'Time'
                }
            },
            'y-axis-1': {
                type: 'linear',
                position: 'left',
                beginAtZero: true,
                title: {
                    display: true,
                    text: 'Wind Speed (mph)'
                }
            },
            'y-axis-2': {
                type: 'linear',
                position: 'right',
                beginAtZero: true,
                title: {
                    display: true,
                    text: 'Temperature (°C)'
                },
                grid: {
                    drawOnChartArea: false
                }
            },
            'y-axis-3': {
                type: 'linear',
                position: 'right',
                beginAtZero: true,
                title: {
                    display: true,
                    text: 'Solar Radiation (W/m²)'
                },
                grid: {
                    drawOnChartArea: false
                }
            },
            'y-axis-4': {
                type: 'linear',
                position: 'right',
                beginAtZero: true,
                title: {
                    display: true,
                    text: 'Rain Amount (mm)'
                },
                grid: {
                    drawOnChartArea: false
                }
            },
            'y-axis-5': {
                type: 'linear',
                position: 'right',
                beginAtZero: true,
                title: {
                    display: true,
                    text: 'Pressure (mbar)'
                },
                grid: {
                    drawOnChartArea: false
                }
            }
        },
        interaction: {
            intersect: false,
            mode: 'nearest',
        },
        elements: {
            line: {
                cubicInterpolationMode: 'monotone',
            },
        },
    }
});
</code></pre>
<h3>Conclusion</h3>
<p>By integrating MQTT and Chart.js, it is possible to create a dynamic and real-time weather monitoring dashboard. The connection status indicator provides immediate feedback on the connection state, and the pulsing effect when new data arrives enhances user experience by visually notifying them of updates.</p>
<p>This setup can be further extended by adding more datasets, customizing the chart&#8217;s appearance, or integrating additional sensors. The data of course couple be from any feed, but real-time weather monitoring provides a good example of how IoT and web technologies can be combined to create realtime dashboards.</p>
<p>The post <a href="https://www.digitalurban.org/blog/2024/06/27/enhancing-live-weather-monitoring-with-mqtt-and-chart-js/">Enhancing Live Weather Monitoring with MQTT and Chart.js</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Updated Live Weather Data From London</title>
		<link>https://www.digitalurban.org/blog/2013/03/28/updated-live-weather-data-from-london/</link>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Thu, 28 Mar 2013 09:26:12 +0000</pubDate>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Weather (Live)]]></category>
		<category><![CDATA[Weather Display]]></category>
		<category><![CDATA[Weather London]]></category>
		<category><![CDATA[Weather Data London]]></category>
		<guid isPermaLink="false">http://www.digitalurban.org/?p=3073</guid>

					<description><![CDATA[<p>We have updated our live weather page with a number of new features. The page updates every 3 seconds with a live feed from a Davis Vantage Pro 2 on...</p>
<p>The post <a href="https://www.digitalurban.org/blog/2013/03/28/updated-live-weather-data-from-london/">Updated Live Weather Data From London</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We have updated our <a title="London Live Weather Data" href="http://www.casa.ucl.ac.uk/cumulus/ipad.html">live weather page</a> with a number of new features. The page updates every 3 seconds with a live feed from a Davis Vantage Pro 2 on the roof of 1-19 Torrington Place, just off Tottenham Court Road in London.<br />
<a href="http://www.casa.ucl.ac.uk/cumulus/ipad.html"><img decoding="async" class="wp-image-3074 aligncenter" style="border: 2px solid black;" title="London Weather Data" alt="London Weather Data" src="https://www.digitalurban.org/wp-content/uploads/2013/03/Weatherdials-1.jpg" width="614" height="819" srcset="https://www.digitalurban.org/wp-content/uploads/2013/03/Weatherdials-1.jpg 768w, https://www.digitalurban.org/wp-content/uploads/2013/03/Weatherdials-1-225x300.jpg 225w" sizes="(max-width: 614px) 100vw, 614px" /></a><br />
The weather dials now include:</p>
<ul>
<li>Visual Wind Rose &#8211; to show the average wind direction;</li>
<li>Wind Run &#8211; an odometer style view of the total distance the wind has travelled in the last 24 hours;</li>
<li>UV Index, showing the current UV level for London.</li>
</ul>
<p>The page is optimised for a tablet/mobile view &#8211; <a title="Live London Weather Data" href="http://www.casa.ucl.ac.uk/cumulus/ipad.html">View the live London Weather Dials</a>.</p>
<p>The post <a href="https://www.digitalurban.org/blog/2013/03/28/updated-live-weather-data-from-london/">Updated Live Weather Data From London</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Live London Weather</title>
		<link>https://www.digitalurban.org/blog/2012/08/07/live-london-weather/</link>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Tue, 07 Aug 2012 14:47:03 +0000</pubDate>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Weather]]></category>
		<category><![CDATA[Weather (Live)]]></category>
		<category><![CDATA[Weather London]]></category>
		<guid isPermaLink="false">http://www.digitalurban.org/?p=2901</guid>

					<description><![CDATA[<p>We have updated our live weather page to work with the iPad/iPhone and other HTML compatible browsers. The page updates every 3 seconds with a live feed from a Davis Vantage...</p>
<p>The post <a href="https://www.digitalurban.org/blog/2012/08/07/live-london-weather/">Live London Weather</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.casa.ucl.ac.uk/cumulus/ipad.html"><img decoding="async" class="size-medium wp-image-2903 alignright" title="Live London Weather iPad" src="https://www.digitalurban.org/wp-content/uploads/2012/08/Screen-Shot-2012-08-07-at-15.31.45-1-300x196.png" alt="" width="300" height="196" /></a><br />
We have updated our live weather page to work with the iPad/iPhone and other HTML compatible browsers.<br />
The page updates every 3 seconds with a live feed from a Davis Vantage Pro 2 on the roof of 1-19 Torrington Place, just off Tottenham Court Road in London.<br />
For those with the new iPad we have a retina friendly version with a series of 9 large dials and graphs.<br />
<a href="http://www.casa.ucl.ac.uk/cumulus/ipad.html">Standard Version</a> / <a href="http://www.casa.ucl.ac.uk/cumulus/ipadnew.html">Retina</a><br />
Both pages are in beta&#8230;</p>
<p>The post <a href="https://www.digitalurban.org/blog/2012/08/07/live-london-weather/">Live London Weather</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>London Live Weather Data</title>
		<link>https://www.digitalurban.org/blog/2008/03/12/london-live-weather-data/</link>
					<comments>https://www.digitalurban.org/blog/2008/03/12/london-live-weather-data/#comments</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Wed, 12 Mar 2008 15:44:00 +0000</pubDate>
				<category><![CDATA[Weather]]></category>
		<category><![CDATA[Weather (Live)]]></category>
		<guid isPermaLink="false">http://digitalurban.net/?p=1734</guid>

					<description><![CDATA[<p>Its taken a bit of time but our live weather data from the roof of CASA towers here in Central London is now back up and running.Complete with its own...</p>
<p>The post <a href="https://www.digitalurban.org/blog/2008/03/12/london-live-weather-data/">London Live Weather Data</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Its taken a bit of time but our live weather data from the roof of CASA towers here in Central London is now back up and running.<a href="http://www.casa.ucl.ac.uk/weather/"><img decoding="async" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_ADwvfqkxChw/R9f7L9jSH3I/AAAAAAAABGs/RnmTMBNBrqM/s400/weather.png" alt="" id="BLOGGER_PHOTO_ID_5176882479605358450" border="0" /></a><br />Complete with its own dedicated server the weather data is now available 24/7 and should form part of a wider network to create a 3D view of London&#8217;s urban heat island in Google Earth (more on that in coming months).</p>
<p><a href="http://www.casa.ucl.ac.uk/weather/">View Live Weather Data from London</a> (data uploads every 3 seconds)</p>
<p>The post <a href="https://www.digitalurban.org/blog/2008/03/12/london-live-weather-data/">London Live Weather Data</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.digitalurban.org/blog/2008/03/12/london-live-weather-data/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Live Weather Conditions &#8211; London</title>
		<link>https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/</link>
					<comments>https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/#comments</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Mon, 03 Jul 2006 10:53:00 +0000</pubDate>
				<category><![CDATA[Weather (Live)]]></category>
		<guid isPermaLink="false">http://digitalurban.net/?p=2379</guid>

					<description><![CDATA[<p>* An update to the post with a new URL at the bottom &#8211; Data is uploaded every 2 seconds* Digital models should reflect the reality of the city, not...</p>
<p>The post <a href="https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/">Live Weather Conditions &#8211; London</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="http://www.casa.ucl.ac.uk/andy/blogimages/weather.jpg" /></p>
<p>* An update to the post with a new URL at the bottom  &#8211; Data is uploaded every 2 seconds*</p>
<p>Digital models should reflect the reality of the city, not only the urban form but also environmental conditions &#8211; such as the weather. Digitalurban has mounted a wireless weather station on our roof, it provides a myriad of data and is updated every two seconds. It is then possible to embed this data in a web page, using Flash and a product entitled <a href="http://www.weather-display.com/wdlive.php">Weather Display Live</a>.</p>
<p>This allows live data to be viewed via the web, with the dials tweening according to local conditions. If this data &#8211; or an overview of &#8211; such as Sunny, Rain, Partly Cloudy etc could be linked to a 3D model, it would enable it to accurately reflect local conditions. If a number of weather stations are linked up, they could be used to visualise the urban heat island effect, live and in 3D. Combined with symbols and locations for rain fall etc this would provide a live temperature gradient and other weather data in a unique visualisation.</p>
<p>Well that&#8217;s the plan, for now you can <a href="http://www.casa.ucl.ac.uk/weather/">view the Flash based version, live from our roof</a>.</p>
<p>The post <a href="https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/">Live Weather Conditions &#8211; London</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Live Weather Conditions &#8211; London</title>
		<link>https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/</link>
					<comments>https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/#comments</comments>
		
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Mon, 03 Jul 2006 10:53:00 +0000</pubDate>
				<category><![CDATA[Weather (Live)]]></category>
		<guid isPermaLink="false">http://digitalurban.net/?p=2379</guid>

					<description><![CDATA[<p>* An update to the post with a new URL at the bottom &#8211; Data is uploaded every 2 seconds* Digital models should reflect the reality of the city, not...</p>
<p>The post <a href="https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/">Live Weather Conditions &#8211; London</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="http://www.casa.ucl.ac.uk/andy/blogimages/weather.jpg" /></p>
<p>* An update to the post with a new URL at the bottom  &#8211; Data is uploaded every 2 seconds*</p>
<p>Digital models should reflect the reality of the city, not only the urban form but also environmental conditions &#8211; such as the weather. Digitalurban has mounted a wireless weather station on our roof, it provides a myriad of data and is updated every two seconds. It is then possible to embed this data in a web page, using Flash and a product entitled <a href="http://www.weather-display.com/wdlive.php">Weather Display Live</a>.</p>
<p>This allows live data to be viewed via the web, with the dials tweening according to local conditions. If this data &#8211; or an overview of &#8211; such as Sunny, Rain, Partly Cloudy etc could be linked to a 3D model, it would enable it to accurately reflect local conditions. If a number of weather stations are linked up, they could be used to visualise the urban heat island effect, live and in 3D. Combined with symbols and locations for rain fall etc this would provide a live temperature gradient and other weather data in a unique visualisation.</p>
<p>Well that&#8217;s the plan, for now you can <a href="http://www.casa.ucl.ac.uk/weather/">view the Flash based version, live from our roof</a>.</p>
<p>The post <a href="https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/">Live Weather Conditions &#8211; London</a> appeared first on <a href="https://www.digitalurban.org">Digital Urban</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.digitalurban.org/blog/2006/07/03/live-weather-conditions-london/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
