Limaps.org - the Blitzortung.org Data Archive


Limaps.org is the data archive of Blitzortung.org. Here you will find the positions calculated from the data sent by the detectors. We only record the results of the calculations and not the raw data sent by the detectors to the server. There is no guarantee that the source of the electromagnetic signal of a thunderstorm lightning is near the calculated position. We only guarantee the following statement for each calculated position.

If the calculated position were the source of an electromagnetic discharge, then the detectors used for the calculation would receive their signals at the times sent by the detectors to the calculation server.

Blitzortung.org is not an official authority for lightning or thunderstorm data. The data is provided only for private and entertainment purposes. The project Blitzortung.org is merely a voluntary leisure activity.

It is not allowed to use the data of Blitzortung.org for storm warning systems, for plausibility checks of overvoltage damages, or risk analysis for precautionary protection of high-quality technology, even if the data are not obtained directly from our site but from third-party websites.

The use of our lightning data is allowed only to the participants of the project or to those we explicitly have allowed it.

We are not liable for the completeness, timeliness, quality and accuracy of the information on our website. We are not responsible for damages, resulting from trusting the content of our website or its use. This also holds if our data is obtained from third-party websites.


The calculation of the impact positions is done on several servers located either in Germany or Finland. Each calculation thread works in its own container. These containers are numbered from C0 to C19. The threads contain the impact positions for a specific region. The regions are numbered from 1 to 15 and named after geographical areas. The regions numbered 6, 8 and 10 are reserved for external calculation servers.

The allocation of regions to containers is shown in the table below.

container region area server location region number
C00---
C01Europs 1Germany1
C02Ozeania 1Germany2
C03North America 1-3
C04Asia 1Germany4
C05Africa 1Germany7
C06South America 1Germany5
C07Japan 1Germany9
C08---
C09---
C10North America 2Finland13
C11---
C12---
C13---
C14---
C15---
C16World 1Finland15
C17Japan 2Finland14
C18Europe 2Finland11
C19Europe 3Finland12


The data is available in different formats, as SQLite data files, as JSON data rows and as maps.

SQLite Data Archive


The SQLite data archive contains the impact data until to ende of 2023 calculated by blitzortug.org in SQLite3 data files. The file names are build as follows:

S{container}-R{region}-Y{year}-M{first month}-{last month}-N{north bound}-S{south bound}-W{west bound}-E{east bound}.sqlite

Example: The file

S1-R1-Y2023-M01-12-N90-S-90-W-180-E180.sqlitedatabase

contains the data calculated in container 1 for region 1 (Europe 1) between January 1 and December 31, 2023 with a latitude between -90 and 90 degrees and a longitude between -180 and 180 degrees.

For more information about the entries in the data files, see the metadata table of the files.

SQLite Data Archive

The database contains two tables named metadata and strokes. The strokes table contains the following columns:

the strokes table
column description
timetimestamp in nanoseconds since midnight on January 1, 1970
latlatitude in degrees (decimal)
lonlongitude in degrees (decimal)
altaltitude above sea level in meters
polpolarity, -1 or +1
mdsmaximum deviation range in nanoseconds
scssmallest all-covering sector in degrees (example: 210 degrees = the detectors are in a sector of 150 degrees from the impact location)
statusstatus (optional)


Here is an example of how to filter out data entries from an sqlite3 database file.

open the database file:

>sqlite3 S1-R1-Y2023-M01-12-N90-S-90-W-180-E180.sqlite
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.

list the table names:

sqlite> .tables
metadata strokes

read the metadata

sqlite> select Value from metadata where name = 'Description';
This database contains information about possible locations of electromagnetic discharges, calculated from the jsondatabase data provided by the participants of the project Blitzortung.org..

show the preferences

sqlite> .show
echo: off
eqp: off
explain: auto
headers: off
mode: list
nullvalue: ""
output: stdout
colseparator: "|"
rowseparator: "\n"
stats: off
width:
filename: S1-R1-Y2023-M01-12-N90-S-90-W-180-E180.sqlitedatabase

output the number of entries in table strokes

sqlite> select count(*) from strokes;
12583194

set output format to csv

sqlite> .mode csv

output selected strokes

sqlite> select * from strokes where lat < 45 and lat > 44.95 and lon 14 and lon > 13.6;
1673898604479904941,44.950874,13.646371,0,0,6140,73,322,13
1673898604479915532,44.969227,13.6342,0,0,9739,134,431,20
1673898604479909643,44.969513,13.630484,0,0,5950,138,412,18
1674257357563815319,44.954322,13.959775,0,0,14821,198,66,13
...

quit the program

sqlite> .quit
>
JSON Data Archive


The JSON data archive contains the impact data calculated by blitzortug.org in text data files. The container directories contain sub-directories named by the date and time of the lightning strikes in UTC times. Each data file contains impact positions of 10 minutes. The hours are divided into 10 minute intervals. Each line of these files consists of one variable coded in "JSON" (JavaScript Object Notation) format. Older files are only available as "zgip" files.

C{container}/{year}/{month}/{day}/{hour}/{10minutes}.json

The

Example: The file

C1/2024/08/21/09/10.json

contains the data calculated in container 1 (for region 1, Europe 1) on August 21, 2024 between 9:10.000000000 and 9.19.999999999 UTC.

Each line of the data files contains one JSON codes variable with the following members:

the members of the JSON variable
name description
timetimestamp in nanoseconds since midnight on January 1, 1970
latlatitude in degrees (decimal)
lonlongitude in degrees (decimal)
altaltitude above sea level in meters
polpolarity, -1 or +1
mdsmaximum deviation range in nanoseconds
mcgsmallest all-covering sector in degrees (example: 210 degrees = the detectors are in a sector of 150 degrees from the impact location)
statusstatus (optional)
sigarray of signals

Each signal of the sig array has have the following members.

the members of the sig array
name description
stastation that has received the signal
timetime difference to the time of the lightning strike in nanoseconds
latlatitude of the detector in degree (decimal)
lonlongitude of the detector in degree (decimal)
altaltitude of the detector above sea level in meters
statusstatus of the signal (bit 1 = polarity negative, bit 2 = polarity positive, bit 3 = signal is used for the computation)

JSON Data Archive
Map Data Archive


The map data archive contains the standard maps displayed on Blitzortung.org recorded at 5 minute intervals. The images are composed of two png files by overlaying them. The upper png file contains the lightning information, the lower png file forms the background. The following maps are available:

map types in the map data archive
time span selection
Date:
End Time (UTC):
Duration:


Map Data Archive

Detector Database

Live Data

The last calculated impact positions from all regions together up to the current time can be accessed using the following URL. The last 100,000 entries (with raw data involved) / 1,000,000 entries (without raw data involved) are taken into account. In order to keep the transfer rate as high as possible, the data is not read from the disk, but from the main memory.

https://loginname:password@data.blitzortung.org/Data/Protected/last_strikes.php

The returned records are sorted time descending. The parameters of the script have the following meaning.

numer=x provides the last x entries (default = 100) time=t provides the latest entries after time stamp t (given as UTC Nano Epoch Seconds) west=lon provides only entries with a longitude of at least lon (default = -180) east=lon provides only entries with longitude of at most lon (default = 180) north=lat provides only entries with a latitude of at most lat (default = 90) south=lat provides only entries with a latitude of at least lat (default = -90) sig=0/1 provides entries excluding/including the information of the signals involved (default = 0)

Example: The follwing url provides the last 10 entries from the last 1000000 entries with a longitude between -10.0° and 40.0°, a latitude between 70.0° and 20.0°, and without the information about the signals involved.

https://loginname:password@data.blitzortung.org/Data/Protected/last_strikes.php?number=10&west=-10&east=40&north=70&south=20&sig=0 Each line of the data files contains one JSON codes variable. Each variable of the lightning strike files may have the following members. time = time stamp in nano seconds lat = latitude in degree (decimal) lon = longitude in degree (decimal) alt = altitude in meter pol = polarity, -1 or +1 mds = maximal deviation span in nano seconds mcg = maximal circular gap in degree (for example, 210 degree = the detectors are in a sector of 150 degree from the point of view of the impact position), optional status = status, optional sig = array of signals Each signal of the sig array may have the following members. sta = station that has received the signal time = time difference to the time of the lightning strike in nano seconds lat = latitude of the detector in degree (decimal) lon = longitude of the detector in degree (decimal) alt = altitude of the detector in meter status = status of the signal (bit 1 = polarity negative, bit 2 = polarity positive, bit 3 = signal is used for the computation)


Nachruf