Blitzortung is a website and platform that collects live lightning data using a collection of internet-connected sensors run by volunteers.
Website
- https://www.blitzortung.org/
Mobile apps
- https://f-droid.org/packages/org.blitzortung.android.app/
Websockets
There is a WebSocket server at wss://ws1.blitzortung.org
. After you connect to it, you need to send {"a": 111}
to it in order to start streaming the messages.
Data obfuscation
The live data streamed from their WebSocket server is obfuscated. Below is a Python function that decodes it to proper JSON.
def decode(b):
e = {}
d = list(b.decode())
c = d[0]
f = c
g = [c]
h = 256
o = h
for i in range(1, len(d)):
a = ord(d[i])
a = d[i] if h > a else e[a] if e.get(a) else f + c
g.append(a)
c = a[0]
e[o] = f + c
o += 1
f = a
return ''.join(g).encode()
Useful links
- https://en.wikipedia.org/wiki/Blitzortung