From 69f3e7413a48005423dc0fab8fa4206608baf9da Mon Sep 17 00:00:00 2001 From: Peter Desmet <600993+peterdesmet@users.noreply.github.com> Date: Wed, 24 Jun 2026 14:41:34 +0200 Subject: [PATCH 1/4] Add new vpts-csv table schema --- _data/vpts-csv-table-schema.json | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/_data/vpts-csv-table-schema.json b/_data/vpts-csv-table-schema.json index c62720f..8dbcbfc 100644 --- a/_data/vpts-csv-table-schema.json +++ b/_data/vpts-csv-table-schema.json @@ -23,8 +23,8 @@ { "name": "height", "nameAlternatives": ["HGHT", "bin_lower"], - "description": "Lower bound of the altitude bin in m above sea level.", - "type": "integer", + "description": "Lower bound of the altitude bin in m, measured from `height_reference`.", + "type": "number", "example": "600", "constraints": { "required": true, @@ -32,6 +32,20 @@ "maximum": 25000 } }, + { + "name": "height_reference", + "description": "Reference for `height`. Height values can be in m above sea level (`\"sea\"`), ground level (`\"ground\"`) or antenna level (`\"antenna\"`).", + "type": "string", + "example": "sea", + "constraints": { + "required": true, + "enum": [ + "sea", + "ground", + "antenna" + ] + } + }, { "name": "u", "description": "Ground speed component west to east in m/s.", @@ -228,7 +242,7 @@ { "name": "radar_height", "description": "Height of the center of the radar antenna in m above sea level. Constant for all records from the same `radar`.", - "type": "integer", + "type": "number", "example": "519", "constraints": { "required": true, From f953b511269876a12194b06c22983bb9b21a9321 Mon Sep 17 00:00:00 2001 From: Peter Desmet <600993+peterdesmet@users.noreply.github.com> Date: Wed, 24 Jun 2026 14:41:44 +0200 Subject: [PATCH 2/4] Update example --- pages/vpts-csv.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/vpts-csv.md b/pages/vpts-csv.md index 0208515..c5538c0 100644 --- a/pages/vpts-csv.md +++ b/pages/vpts-csv.md @@ -14,11 +14,11 @@ VPTS CSV is maintained at . ## Example ``` -radar,datetime,height,u,v,w,ff,dd,sd_vvp,gap,eta,dens,dbz,dbz_all,n,n_dbz,n_all,n_dbz_all,rcs,sd_vvp_threshold,vcp,radar_latitude,radar_longitude,radar_height,radar_wavelength,source_file -KBGM,2016-09-01T00:02:00Z,0,,,,,,,TRUE,,,,,0,0,0,0,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 -KBGM,2016-09-01T00:02:00Z,200,,,,,,,TRUE,,,,,0,0,0,0,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 -KBGM,2016-09-01T00:02:00Z,400,,,,,,2.81,TRUE,30.8,2.8000000000000003,1.54,3.77,326,356,22485,28416,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 -KBGM,2016-09-01T00:02:00Z,600,4.14,3.84,12.17,5.65,47.2,2.8,FALSE,46.9,4.263636363636364,3.36,0.5,9006,13442,65947,104455,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 +radar,datetime,height,height_reference,u,v,w,ff,dd,sd_vvp,gap,eta,dens,dbz,dbz_all,n,n_dbz,n_all,n_dbz_all,rcs,sd_vvp_threshold,vcp,radar_latitude,radar_longitude,radar_height,radar_wavelength,source_file +KBGM,2016-09-01T00:02:00Z,0,sea,,,,,,,TRUE,,,,,0,0,0,0,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 +KBGM,2016-09-01T00:02:00Z,200,sea,,,,,,,TRUE,,,,,0,0,0,0,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 +KBGM,2016-09-01T00:02:00Z,400,sea,,,,,,2.81,TRUE,30.8,2.8000000000000003,1.54,3.77,326,356,22485,28416,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 +KBGM,2016-09-01T00:02:00Z,600,sea,4.14,3.84,12.17,5.65,47.2,2.8,FALSE,46.9,4.263636363636364,3.36,0.5,9006,13442,65947,104455,11,2,,42.19972,-75.98472,519,10.6,s3://noaa-nexrad-level2/2016/09/01/KBGM/KBGM20160901_000212_V06 ``` ## Requirements From 9feb3ef3fe0e377b783f341740ed3496ec9684d4 Mon Sep 17 00:00:00 2001 From: Peter Desmet <600993+peterdesmet@users.noreply.github.com> Date: Wed, 24 Jun 2026 14:41:57 +0200 Subject: [PATCH 3/4] Add version table describing the main changes --- pages/vpts-csv.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/vpts-csv.md b/pages/vpts-csv.md index c5538c0..fc11931 100644 --- a/pages/vpts-csv.md +++ b/pages/vpts-csv.md @@ -37,6 +37,13 @@ The key words `MUST`, `MUST NOT`, `REQUIRED`, `SHALL`, `SHALL NOT`, `SHOULD`, `S - Data SHOULD have the same `height`s for all `datetime`s of a `radar`. - Fields SHOULD be organized in the order presented below. +## Versions + +Version | Comments +--- | --- +[1.1](https://github.com/aloftdata/vpts-csv/releases/tag/v1.1) | `height_reference` added as a new required column. VPTS CSV 1.0 files without this column should be interpreted as `"sea"`.
`height` and `radar_height` type changed from integer to number. +[1.0](https://github.com/aloftdata/vpts-csv/releases/tag/v1.0) | First release + ## Fields Source: From 580cb73cf182ea3c7b4722fcb02e7dd9f8c84114 Mon Sep 17 00:00:00 2001 From: Peter Desmet <600993+peterdesmet@users.noreply.github.com> Date: Mon, 29 Jun 2026 15:05:09 +0200 Subject: [PATCH 4/4] Clarify definitions + change "ground" to "terrain" --- _data/vpts-csv-table-schema.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_data/vpts-csv-table-schema.json b/_data/vpts-csv-table-schema.json index 8dbcbfc..3deea05 100644 --- a/_data/vpts-csv-table-schema.json +++ b/_data/vpts-csv-table-schema.json @@ -34,15 +34,15 @@ }, { "name": "height_reference", - "description": "Reference for `height`. Height values can be in m above sea level (`\"sea\"`), ground level (`\"ground\"`) or antenna level (`\"antenna\"`).", + "description": "Reference for `height`. `\"sea\"` and `\"antenna\"` are used for heights defined from mean sea level and radar antenna respectively, resulting in horizontal altitude bins. `\"terrain\"` is used for heights that are calculated relative to a digital elevation model for each pixel in the volume.", "type": "string", "example": "sea", "constraints": { "required": true, "enum": [ "sea", - "ground", - "antenna" + "antenna", + "terrain" ] } },