HAPI Server › Output Formats · Geomagnetic Data Explorer

The data endpoint returns the same values in up to four formats, chosen with &format=. csv and json are the HAPI formats and are available for every dataset. iaga2002 and wdc are the native exchange formats the data have traditionally been distributed in; they are available for the datasets listed below. This page describes what each format looks like as written by this server, and where it differs from the formal specification.

Which formats each dataset supports

Datasetcsvjson iaga2002wdc (layout)
hour_dst✓✓ ✓Index hourly
hour_ae✓✓ ✓Index hourly
min_ae, min_asysym✓✓ ✓Minute (400 bytes)
min2p5_ae✓✓ ✓AE 2.5-minute text
hour3h_kp, day_ap, month_qddays ✓✓ ——
hour_<obs>✓✓ ✓Observatory hourly
min_<obs>✓✓ ✓Minute (400 bytes)
sec7p5_<obs>, sec_<obs> ✓✓ ✓— (no WDC layout exists)
sec_kyo_<stn>✓✓ ✓—
sec_kyo_<stn>_press✓✓ ✓ (IAGA-2002-like)—
sec0p1_<obs>✓✓ ——

The version-pinned datasets (_final, _definitive, …) support the same formats as their Best Available counterpart. Requesting an unsupported format returns status 1409. The formats a dataset supports are also listed in catalog as x_nativeFormats (in addition to csv and json).

Common rules

CSV (format=csv, the default)

One record per line, comma-separated, first column the ISO 8601 time, last column versionCode. Column order and units are those of the parameters array in info. With &include=header the response starts with one line holding the info response as JSON, prefixed with #.

2015-03-17T00:00:00Z,99999.0,99999.0,29742.30,-3828.50,35710.80,46631.70,99999.0,30
2015-03-17T00:01:00Z,99999.0,99999.0,29742.30,-3827.80,35710.30,46631.40,99999.0,30

min_kak, columns Time, D, H, X, Y, Z, F, I, versionCode. In this period Kakioka reported X, Y, Z, F, so D, H and I are fill.

JSON (format=json)

The info response for the dataset, with "format": "json" and a data array added. Each record is an array in the same column order as CSV; numbers are JSON numbers and fill values appear as numbers too (not null).

{"HAPI": "3.3.1", "status": {"code": 1200, "message": "OK"}, ...,
 "parameters": [...], "format": "json",
 "data": [["2015-03-17T00:00:00Z", 50, -19, 31, 6, 10],
          ["2015-03-17T00:01:00Z", 43, -16, 27, 6, 10]]}

min_ae: Time, AE, AL, AU, AO, versionCode.

IAGA-2002 (format=iaga2002)

The IAGA-2002 data exchange format: fixed-width text of 70 characters per line, 12 header lines, optional comment lines, one data header line, then one line per sample.

 Format                 IAGA-2002                                    |
 Source of Data         INTERMAGNET IRDS                             |
 Station Name           Kakioka                                      |
 IAGA CODE              KAK                                          |
 Geodetic Latitude      36.232                                       |
 Geodetic Longitude     140.186                                      |
 Elevation              36                                           |
 Reported               XYZF                                         |
 Sensor Orientation     HDZF                                         |
 Digital Sampling       1.000                                        |
 Data Interval Type     1-minute                                     |
 Data Type              Definitive                                   |
DATE       TIME         DOY     KAKX      KAKY      KAKZ      KAKF   |
2015-03-17 00:00:00.000 076     29742.30  -3828.50  35710.80  46631.70
2015-03-17 00:01:00.000 076     29742.30  -3827.80  35710.30  46631.40

Header

LineObservatory dataIndex data (Dst, AE, ASY/SYM)
FormatIAGA-2002; IAGA-2002-like (atmospheric pressure) for sec_kyo_<stn>_press, whose pressure column lies outside the format
Source of DataFrom the source file (e.g. INTERMAGNET IRDS) WDC for Geomagnetism, Kyoto
Station Name, IAGA CODE,
Latitude, Longitude, Elevation
From the WDC Kyoto observatory catalogue (the same values as x_observatory in info), not from the source file Index name (Equatorial Dst index / DST, …); coordinates blank
ReportedThe components in the data columns: DHZF or XYZF (HEZF for monitor stations) H for Dst; AE,AU,AL,AO; ASY-D,ASY-H,SYM-D,SYM-H
Sensor Orientation, Digital SamplingFrom the source file when it gives them Blank
Data Interval TypeFrom the source file, or the cadence (1-hour, 1-minute, …). Observatory 1-minute months converted from WDC-format source files read 1-minite, spelled as in WDC Kyoto’s existing IAGA-2002 output
Data Type Definitive, Quasi-definitive, Provisional or Variation Final, Provisional or Real-time

Comment lines start with #. Comments present in the source file are passed through unchanged; this server adds its own after them, for example the caution and approximate baselines of the monitor stations, or the source metadata of each period when it changes within the request.

Data records

DATE TIME DOY (YYYY-MM-DD HH:MM:SS.sss DDD) followed by four 10-character value columns (F9.2 preceded by a blank). For observatories the column titles are the IAGA code plus the element letter (KAKX); for indices they are the index names. Units: nT, and minutes of arc for D and I. Hourly values are labelled HH:00:00; 7.5-second values carry .500 where applicable. sec_kyo_<stn>_press has a single column P in hPa with 3 decimals.

Missing values

Multiple blocks in one response

If the reported components change within the requested period (Kakioka, for example, changed from DHZF to XYZF in January 2005), the response contains one complete IAGA-2002 block (header, data header, data) per period, one after another. Read the header of each block. Header values are those of the last month of the block; where a source value such as Sensor Orientation changes within a block, the comment lines list the value for each period.

WDC (format=wdc)

The fixed-width WDC exchange formats. There are three record layouts plus the plain-text AE 2.5-minute file; which one a dataset uses is shown in the table above. All numbers are integers, right-aligned. Minute records are grouped by element over the whole request: for AE, all AU records come first, then AL, AE and AO, as if the separate original files had been concatenated. Hourly records are grouped month by month, and by element within each month. Columns in the tables are counted from 1. Where this output departs from the original format descriptions, the notes at the end of this section say so.

Index hourly — 120 bytes, one record per index per day (hour_dst, hour_ae)

DST1503*17  X220   0   4   3   3   2  13  45  25 -18 -54 -83 -75 -54 -55 -75 -93-118-143-162-154-177-182-198-234-225 -84
DST2607*01PPX120   0   6  11  -4   9   4  -2  -1   5  10  21  20  17  14  13  16  18   9  10  13  17  22  13  14  11  11
DST2610*01RRX020   0   7   4   5   7   9  11  12  13  10   7   7   9  10   8   6   6   4   1   4   4   0  -3   0   1   6
AU 6603*01    19 000 012 011 014 021 029 022 038 029 027 028 030 033 012 008 014 014 019 020 017 012 015 015 013 017 020
AL 6603*01    19 000-009-005-002-011-040-009-022-031-015-016-042-099-022-015-006-008-043-043-122-072-013-006-010-013-028
AE 6603*01    19 000 022 015 016 032 069 032 060 059 042 044 072 132 034 024 020 022 062 063 140 084 028 022 023 029 048
AO 6603*01    19 000 001 003 006 005-006 006 008-001 006 006-006-033-005-003 004 003-012-012-052-030 001 004 001 002-004
ColumnsFormatContent
1-3A3Index name: DST, or AU , AL , AE , AO
4-5I2Last two digits of the year
6-7I2Month
8A1*
9-10I2Day
11-12A2Dst: blank (final), PP (provisional), RR (real-time). AE: blank
13-14A1, I1Dst: X and the version digit (2 final, 1 provisional, 0 real-time). AE: blank
15-16I2First two digits of the year (19, 20)
17-20I4Base value in units of 100 nT
21-11624I4Hourly values for 00–01 UT … 23–24 UT, nT
117-120I4Daily mean, nT

Value in nT = base × 100 + field. The base is 0 unless a value would not fit in four characters. Missing hours are 9999, and the daily mean is the mean of the hours present (9999 if none). AE values are written with at least three digits (022, -009) as in the original files. Each day carries the version of that day, so a request spanning final and provisional months shows both.

Minute — 400 bytes, one record per element per hour (min_ae, min_asysym, min_<obs>)

AEALAOAU    150317U00AU               31    27    24    27 ...    21    23    22    23    26
AEALAOAU    150317L00AL              -19   -16    -8    -7 ...   -13   -13   -12   -10   -11
ASYSYM N6E01150317D00ASYWDCC2KYOTO    19    18    16    16 ...
053768140186150317X00KAKFMIAGA2002 29742 29742 29742 29742 ... 29732 29732 29732 29738
053768140186900317D00KAK           -4061 -4061 -4060 -4060 ...
ColumnsFormatContent
1-12A12Observatory: north polar distance (colatitude) × 1000 (I6) and east longitude × 1000 (I6), e.g. 053768140186 for Kakioka. Indices: AEALAOAU or ASYSYM N6E01
13-14I2Last two digits of the year
15-16I2Month
17-18I2Day
19A1Element: observatory D H X Y Z F; AE U L E O (AU, AL, AE, AO); ASY/SYM D H
20-21I2Hour (UT)
22-24A3Observatory IAGA code, or AE , ASY, SYM
25-34A10Observatory: FMIAGA2002 when the month was converted from an IAGA-2002 source file, otherwise blank. ASY/SYM: WDCC2KYOTO. AE: the version of the hour — KYOTO/E02 (final), PRVAE/E02 (provisional) or QUICKLK (real-time)
35-39460I6Minute values for minutes 00…59
395-400I6Hourly mean of the values present

Units are nT, and 0.1 minute of arc for observatory D and I (-4061 = −406.1′ = −6°46.1′). Values are rounded to integers (half away from zero). Missing values are 99999; not-reported elements keep the source’s code (88888/88889).

Observatory hourly — 120 bytes, one record per element per day (hour_<obs>)

KAK9003D17        -8 745 742 717 691 676 677 687 700 706 705 705 705 705 707 709 713 715 717 719 719 718 720 736 753 712
KAK9003H17       297 466 467 461 460 462 467 469 466 460 461 460 460 460 460 461 462 463 465 467 470 474 480 478 474 466
KAK1503X17     0 292 538 527 517 513 528 567 556 518 463 424 442 461 455 433 411 401 393 373 416 404 432 425 365 372 456
ColumnsFormatContent
1-3A3Observatory IAGA code
4-5I2Last two digits of the year
6-7I2Month
8A1Element D H X Y Z F
9-10I2Day
11-155XBlank
16A1Century: 8 before 1900, blank for 1900–1999, 0 from 2000
17-20I4Tabular base: degrees for D and I, 100 nT for the intensity elements
21-11624I4Hourly values for 00–01 UT … 23–24 UT
117-120I4Daily mean

Value = base × 600 + field in 0.1 minute of arc for D and I (-8, 745 → −4800 + 745 = −4055 = −405.5′), and base × 100 + field in nT for the others (297, 466 → 30166 nT). One base is used per element per month. Missing values are 9999; the daily mean is given only when all 24 hours are present, otherwise 9999. Records are ordered month by month, and within a month element by element. Only days within the requested period are written.

AE 2.5-minute — plain text (min2p5_ae)

1970 03 01 000000    433   -344   -127     89
1970 03 01 000230    392   -315   -119     77

One line per 2.5-minute sample: YYYY MM DD HHMMSS (start of the interval) followed by AE, AL, AO, AU in nT, each in 7 characters. Missing values are 99999.

Differences from the original format descriptions

Format references