From 26c939dc2505a976f3c406645e2c3b699f26e4e5 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Fri, 10 Jan 2025 17:21:32 +0100 Subject: [PATCH 01/14] add vrsnow providers in US, AU and NZ --- data/World/America/USA/vrsnow.us.json | 31 ++++++ data/World/Europe/DEU/vrsnow-de.json | 2 +- data/World/Oceania/AUS/vrsnow-com-au.json | 66 +++++++++++- data/World/Oceania/NZL/vrsnow-co-nz.json | 34 +++++- dist/ntrip-catalog.json | 125 +++++++++++++++++++++- 5 files changed, 254 insertions(+), 4 deletions(-) create mode 100644 data/World/America/USA/vrsnow.us.json diff --git a/data/World/America/USA/vrsnow.us.json b/data/World/America/USA/vrsnow.us.json new file mode 100644 index 0000000..05f5a30 --- /dev/null +++ b/data/World/America/USA/vrsnow.us.json @@ -0,0 +1,31 @@ +[ + { + "name": "vrsnow.us", + "description": "Trimble VRS Now US", + "urls": [ + "http://3.134.46.149:2101", + "http://www.vrsnow.us:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "USA" + ] + }, + "crss": [ + { + "id": "EPSG:6319", + "name": "NAD83(2011)" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"NAD 83(2011)\",\"ID\":\"ISO:126\",\"EPOCH\":2010.0}}" + } + ] + } +] diff --git a/data/World/Europe/DEU/vrsnow-de.json b/data/World/Europe/DEU/vrsnow-de.json index 2d15cf2..91e5802 100644 --- a/data/World/Europe/DEU/vrsnow-de.json +++ b/data/World/Europe/DEU/vrsnow-de.json @@ -1,7 +1,7 @@ [ { "name": "vrsnow.de", - "description": "unknown", + "description": "Trimble VRS Now (Germany)", "urls": [ "http://vrsnow.de:2101", "http://www.vrsnow.de:2101", diff --git a/data/World/Oceania/AUS/vrsnow-com-au.json b/data/World/Oceania/AUS/vrsnow-com-au.json index fe51488..b7fbe39 100644 --- a/data/World/Oceania/AUS/vrsnow-com-au.json +++ b/data/World/Oceania/AUS/vrsnow-com-au.json @@ -1 +1,65 @@ -[] +[ + { + "name": "vrsnow.com.au", + "description": "Trimble VRS Now AU", + "urls": [ + "http://13.239.92.67:2101", + "http://vrsnow.com.au:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "mountpoints": [ + "TVN_NEAREST_CMR_PLUS", + "TVN_NEAREST_CMR_X", + "TVN_NEAREST_RTCM_31", + "TVN_CMR_X", + "TVN_RTCM_31", + "TVN_DGPS", + "TVN_NEAREST_DGPS", + "TVN_RTCM_32", + "TVN_CMR_X_GPS_GLO", + "TVN_CMR_PLUS", + "TVN_NEAREST_RTCM_32" + ] + }, + "crss": [ + { + "id": "EPSG:4939", + "name": "GDA94" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"GDA94\",\"ID\":\"ISO:182\",\"EPOCH\":1994.0}}" + }, + { + "filter": { + "mountpoints": [ + "20_TVN_CMR_PLUS", + "20_TVN_CMR_X", + "20_TVN_CMR_X_GPS_GLO", + "20_TVN_DGPS", + "20_TVN_NEAREST_CMR_PLUS", + "20_TVN_NEAREST_CMR_X", + "20_TVN_NEAREST_DGPS", + "20_TVN_NEAREST_RTCM_31", + "20_TVN_RTCM_31", + "20_TVN_RTCM_32", + "20_TVN_NEAREST_RTCM_32" + ] + }, + "crss": [ + { + "id": "EPSG:7843", + "name": "GDA2020" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"GDA2020\",\"ID\":\"ISO:186\",\"EPOCH\":2020.0}}" + } + ] + } +] diff --git a/data/World/Oceania/NZL/vrsnow-co-nz.json b/data/World/Oceania/NZL/vrsnow-co-nz.json index fe51488..c97451b 100644 --- a/data/World/Oceania/NZL/vrsnow-co-nz.json +++ b/data/World/Oceania/NZL/vrsnow-co-nz.json @@ -1 +1,33 @@ -[] +[ + { + "name": "vrsnow.co.nz", + "description": "Trimble VRS Now NZ", + "urls": [ + "http://13.239.179.74:2101", + "http://www.vrsnow.co.nz:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "NZL" + ] + }, + "crss": [ + { + "id": "EPSG:7912", + "name": "ITRF2014", + "epoch": 2020, + "description": "ITRF2014 epoch 2020" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"ITRF2014\",\"ID\":\"ISO:175\",\"EPOCH\":2020.0}}" + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index ac38844..607976a 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -391,9 +391,103 @@ } ] }, + { + "name": "vrsnow.co.nz", + "description": "Trimble VRS Now NZ", + "urls": [ + "http://13.239.179.74:2101", + "http://www.vrsnow.co.nz:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "NZL" + ] + }, + "crss": [ + { + "id": "EPSG:7912", + "name": "ITRF2014", + "epoch": 2020, + "description": "ITRF2014 epoch 2020" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"ITRF2014\",\"ID\":\"ISO:175\",\"EPOCH\":2020.0}}" + } + ] + }, + { + "name": "vrsnow.com.au", + "description": "Trimble VRS Now AU", + "urls": [ + "http://13.239.92.67:2101", + "http://vrsnow.com.au:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "mountpoints": [ + "TVN_NEAREST_CMR_PLUS", + "TVN_NEAREST_CMR_X", + "TVN_NEAREST_RTCM_31", + "TVN_CMR_X", + "TVN_RTCM_31", + "TVN_DGPS", + "TVN_NEAREST_DGPS", + "TVN_RTCM_32", + "TVN_CMR_X_GPS_GLO", + "TVN_CMR_PLUS", + "TVN_NEAREST_RTCM_32" + ] + }, + "crss": [ + { + "id": "EPSG:4939", + "name": "GDA94" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"GDA94\",\"ID\":\"ISO:182\",\"EPOCH\":1994.0}}" + }, + { + "filter": { + "mountpoints": [ + "20_TVN_CMR_PLUS", + "20_TVN_CMR_X", + "20_TVN_CMR_X_GPS_GLO", + "20_TVN_DGPS", + "20_TVN_NEAREST_CMR_PLUS", + "20_TVN_NEAREST_CMR_X", + "20_TVN_NEAREST_DGPS", + "20_TVN_NEAREST_RTCM_31", + "20_TVN_RTCM_31", + "20_TVN_RTCM_32", + "20_TVN_NEAREST_RTCM_32" + ] + }, + "crss": [ + { + "id": "EPSG:7843", + "name": "GDA2020" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"GDA2020\",\"ID\":\"ISO:186\",\"EPOCH\":2020.0}}" + } + ] + }, { "name": "vrsnow.de", - "description": "unknown", + "description": "Trimble VRS Now (Germany)", "urls": [ "http://vrsnow.de:2101", "http://www.vrsnow.de:2101", @@ -424,6 +518,35 @@ "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"ETRS89-DREF91(R16)\",\"ID\":\"TRIMBLE:184\",\"EPOCH\":2016.0}}" } ] + }, + { + "name": "vrsnow.us", + "description": "Trimble VRS Now US", + "urls": [ + "http://3.134.46.149:2101", + "http://www.vrsnow.us:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "USA" + ] + }, + "crss": [ + { + "id": "EPSG:6319", + "name": "NAD83(2011)" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"NAD 83(2011)\",\"ID\":\"ISO:126\",\"EPOCH\":2010.0}}" + } + ] } ] } From 4e39e7350620e4c5867dd4521107df6a07812e38 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Fri, 10 Jan 2025 18:10:13 +0100 Subject: [PATCH 02/14] add vrsnow for FR, UK, NZGD2000 --- data/World/Europe/FRA/vrsnow-fr.json | 31 ++++++ data/World/Europe/GBR/vrsnow-co-uk.json | 41 ++++++++ .../Oceania/NZL/nzgd2000-vrsnow-co-nz.json | 31 ++++++ dist/ntrip-catalog.json | 97 +++++++++++++++++++ 4 files changed, 200 insertions(+) create mode 100644 data/World/Europe/FRA/vrsnow-fr.json create mode 100644 data/World/Europe/GBR/vrsnow-co-uk.json create mode 100644 data/World/Oceania/NZL/nzgd2000-vrsnow-co-nz.json diff --git a/data/World/Europe/FRA/vrsnow-fr.json b/data/World/Europe/FRA/vrsnow-fr.json new file mode 100644 index 0000000..abd368b --- /dev/null +++ b/data/World/Europe/FRA/vrsnow-fr.json @@ -0,0 +1,31 @@ +[ + { + "name": "vrsnow.fr", + "description": "Trimble VRS Now FR", + "urls": [ + "http://155.63.90.137:2101", + "http://vrsnow.fr:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "FRA" + ] + }, + "crss": [ + { + "id": "EPSG:9781", + "name": "RGF93 v2b" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"RGF93v2b\",\"ID\":\"ISO:178\",\"EPOCH\":2019.0}}" + } + ] + } +] diff --git a/data/World/Europe/GBR/vrsnow-co-uk.json b/data/World/Europe/GBR/vrsnow-co-uk.json new file mode 100644 index 0000000..6941ca1 --- /dev/null +++ b/data/World/Europe/GBR/vrsnow-co-uk.json @@ -0,0 +1,41 @@ +[ + { + "name": "vrsnow.co.uk", + "description": "Trimble VRS Now UK", + "urls": [ + "http://155.63.90.119:2101", + "http://www.vrsnow.co.uk:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string. Mountpoints over OSTN02 are not included." + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "mountpoints": [ + "15_Station_KIRW", + "15_Station_LERW", + "15_TVN_CMR_PLUS", + "15_TVN_CMR_X_GPS_GLO", + "15_TVN_DGPS", + "15_TVN_RTCM_23", + "15_TVN_RTCM_31", + "15_TVN_RTCM_31_GPS_Only", + "15_TVN_CMR_X", + "15_TVN_RTCM_32" + ] + }, + "crss": [ + { + "id": "EPSG:7929", + "name": "ETRF97", + "epoch": 2009.756 + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"ETRF97\",\"ID\":\"ISO:132\",\"EPOCH\":2009.756}}." + } + ] + } +] diff --git a/data/World/Oceania/NZL/nzgd2000-vrsnow-co-nz.json b/data/World/Oceania/NZL/nzgd2000-vrsnow-co-nz.json new file mode 100644 index 0000000..506f31e --- /dev/null +++ b/data/World/Oceania/NZL/nzgd2000-vrsnow-co-nz.json @@ -0,0 +1,31 @@ +[ + { + "name": "nzgd2000.vrsnow.co.nz", + "description": "Trimble VRS Now NZGD2000", + "urls": [ + "http://54.66.207.234:2101", + "http://nzgd2000.vrsnow.co.nz:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "NZL" + ] + }, + "crss": [ + { + "id": "EPSG:4959", + "name": "NZGD2000" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"NZGD2000\",\"ID\":\"ISO:199\",\"EPOCH\":2000.0}}" + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 607976a..81ee171 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -391,6 +391,35 @@ } ] }, + { + "name": "nzgd2000.vrsnow.co.nz", + "description": "Trimble VRS Now NZGD2000", + "urls": [ + "http://54.66.207.234:2101", + "http://nzgd2000.vrsnow.co.nz:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "NZL" + ] + }, + "crss": [ + { + "id": "EPSG:4959", + "name": "NZGD2000" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"NZGD2000\",\"ID\":\"ISO:199\",\"EPOCH\":2000.0}}" + } + ] + }, { "name": "vrsnow.co.nz", "description": "Trimble VRS Now NZ", @@ -422,6 +451,45 @@ } ] }, + { + "name": "vrsnow.co.uk", + "description": "Trimble VRS Now UK", + "urls": [ + "http://155.63.90.119:2101", + "http://www.vrsnow.co.uk:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string. Mountpoints over OSTN02 are not included." + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "mountpoints": [ + "15_Station_KIRW", + "15_Station_LERW", + "15_TVN_CMR_PLUS", + "15_TVN_CMR_X_GPS_GLO", + "15_TVN_DGPS", + "15_TVN_RTCM_23", + "15_TVN_RTCM_31", + "15_TVN_RTCM_31_GPS_Only", + "15_TVN_CMR_X", + "15_TVN_RTCM_32" + ] + }, + "crss": [ + { + "id": "EPSG:7929", + "name": "ETRF97", + "epoch": 2009.756 + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"ETRF97\",\"ID\":\"ISO:132\",\"EPOCH\":2009.756}}." + } + ] + }, { "name": "vrsnow.com.au", "description": "Trimble VRS Now AU", @@ -519,6 +587,35 @@ } ] }, + { + "name": "vrsnow.fr", + "description": "Trimble VRS Now FR", + "urls": [ + "http://155.63.90.137:2101", + "http://vrsnow.fr:2101" + ], + "reference": { + "url": "https://geospatial.trimble.com/en/resources/blog/coordinate-system-enhancements-for-centerpoint-rtx-corrections", + "comments": "CRS described in the STR string" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "FRA" + ] + }, + "crss": [ + { + "id": "EPSG:9781", + "name": "RGF93 v2b" + } + ], + "comments": "CRS described in the STR string {\"REF\":{\"NAME\":\"RGF93v2b\",\"ID\":\"ISO:178\",\"EPOCH\":2019.0}}" + } + ] + }, { "name": "vrsnow.us", "description": "Trimble VRS Now US", From d467ed8fca3907235b2b94774008e0cec8a66ab8 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Fri, 10 Jan 2025 18:49:50 +0100 Subject: [PATCH 03/14] add test for code-name-type consistency --- tests/test_codes_consistency.py | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/test_codes_consistency.py diff --git a/tests/test_codes_consistency.py b/tests/test_codes_consistency.py new file mode 100644 index 0000000..67e8fe8 --- /dev/null +++ b/tests/test_codes_consistency.py @@ -0,0 +1,45 @@ +import json +import urllib.error +import urllib.request + +import pytest + +from scripts import query as ntrip_query + +server_path = "scripts.query.get_streams_from_server" + + +def download_crslist(): + with urllib.request.urlopen("https://spatialreference.org/crslist.json") as f: + crslist = json.load(f) + return crslist + + +@pytest.mark.xfail(raises=urllib.error.HTTPError) +def test_codes(): + crslist = download_crslist() # this may fail because it is an http request. + + def testit(id, name): + id_exists = False + for crs in crslist: + if crs["auth_name"] + ":" + crs["code"] == id: + assert crs["name"] == name + + # when systems with only 2D are added, change this test + assert crs["type"] == "GEOGRAPHIC_3D_CRS" + + id_exists = True + break + assert id_exists + + json_data = ntrip_query.load_json() + counter = 0 + for entry in json_data["entries"]: + for stream in entry["streams"]: + for crs in stream["crss"]: + if crs["id"] and crs["name"]: + counter += 1 + print(crs["id"], crs["name"]) + testit(crs["id"], crs["name"]) + + assert counter > 30 # We are testing something! From fb93048611513f528893fbb777916e7d149c6bd9 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Fri, 10 Jan 2025 19:14:49 +0100 Subject: [PATCH 04/14] add swipos --- data/World/Europe/CHE/swipos.json | 48 +++++++++++++++++++++++++++++++ dist/ntrip-catalog.json | 46 +++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 data/World/Europe/CHE/swipos.json diff --git a/data/World/Europe/CHE/swipos.json b/data/World/Europe/CHE/swipos.json new file mode 100644 index 0000000..d9560a5 --- /dev/null +++ b/data/World/Europe/CHE/swipos.json @@ -0,0 +1,48 @@ +[ + { + "name": "swipos", + "description": "Service from swisstopo, CH", + "urls": [ + "http://18.195.136.180:2101", + "http://www.swipos.ch:2101" + ], + "reference": { + "url": "https://www.swisstopo.admin.ch/de/swipos-gisgeo-fuer-rtk-und-postprocessing-anwendungen" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "mountpoints": [ + "MSM_GISGEO_LV95LHN95", + "VRS_GISGEO_LV95LHN95" + ] + }, + "crss": [ + { + "id": "EPSG:4933", + "name": "CHTRS95", + "description": "Swiss realization of ETRS89" + } + ], + "comments": "Despite the mountpoint name, coordinates are geodesic: Ellipsoidal height and no projection." + }, + { + "filter": { + "mountpoints": [ + "MSM_GISGEO_LV95LN02", + "VRS_GISGEO_LV95LN02" + ] + }, + "crss": [ + { + "id": "EPSG:4933", + "name": "CHTRS95", + "description": "Swiss realization of ETRS89" + } + ], + "comments": "The geoid undulation must be applied by the receiver. ONLY HTRANS correction fixed by the VRS system on the server side." + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 81ee171..2d3dc1b 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -420,6 +420,52 @@ } ] }, + { + "name": "swipos", + "description": "Service from swisstopo, CH", + "urls": [ + "http://18.195.136.180:2101", + "http://www.swipos.ch:2101" + ], + "reference": { + "url": "https://www.swisstopo.admin.ch/de/swipos-gisgeo-fuer-rtk-und-postprocessing-anwendungen" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "mountpoints": [ + "MSM_GISGEO_LV95LHN95", + "VRS_GISGEO_LV95LHN95" + ] + }, + "crss": [ + { + "id": "EPSG:4933", + "name": "CHTRS95", + "description": "Swiss realization of ETRS89" + } + ], + "comments": "Despite the mountpoint name, coordinates are geodesic: Ellipsoidal height and no projection." + }, + { + "filter": { + "mountpoints": [ + "MSM_GISGEO_LV95LN02", + "VRS_GISGEO_LV95LN02" + ] + }, + "crss": [ + { + "id": "EPSG:4933", + "name": "CHTRS95", + "description": "Swiss realization of ETRS89" + } + ], + "comments": "The geoid undulation must be applied by the receiver. ONLY HTRANS correction fixed by the VRS system on the server side." + } + ] + }, { "name": "vrsnow.co.nz", "description": "Trimble VRS Now NZ", From 77d342e4a1267ee2dc07208ab55da924fff46c28 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Fri, 10 Jan 2025 19:32:32 +0100 Subject: [PATCH 05/14] Add jenoba from Japan --- data/World/Asia/JPN/jenoba.json | 30 ++++++++++++++++++++++++++++++ dist/ntrip-catalog.json | 28 ++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 data/World/Asia/JPN/jenoba.json diff --git a/data/World/Asia/JPN/jenoba.json b/data/World/Asia/JPN/jenoba.json new file mode 100644 index 0000000..d33735c --- /dev/null +++ b/data/World/Asia/JPN/jenoba.json @@ -0,0 +1,30 @@ +[ + { + "name": "jenoba", + "description": "Positional information data stream service", + "urls": [ + "http://115.125.189.203:2101", + "http://ntrip.jenoba.jp:2101" + ], + "reference": { + "url": "https://www.jenoba.jp/technical/gnss06/", + "comments": "In Japanese" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "JPN" + ] + }, + "crss": [ + { + "id": "EPSG:6667", + "name": "JGD2011" + } + ] + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 2d3dc1b..1b5ed3f 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -391,6 +391,34 @@ } ] }, + { + "name": "jenoba", + "description": "Positional information data stream service", + "urls": [ + "http://115.125.189.203:2101", + "http://ntrip.jenoba.jp:2101" + ], + "reference": { + "url": "https://www.jenoba.jp/technical/gnss06/", + "comments": "In Japanese" + }, + "last_update": "2025-01-10", + "streams": [ + { + "filter": { + "countries": [ + "JPN" + ] + }, + "crss": [ + { + "id": "EPSG:6667", + "name": "JGD2011" + } + ] + } + ] + }, { "name": "nzgd2000.vrsnow.co.nz", "description": "Trimble VRS Now NZGD2000", From fa5162ab045baa012343414f7b5c30d3584c5dd8 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Tue, 14 Jan 2025 15:28:45 +0100 Subject: [PATCH 06/14] add support for "filter":"all" --- data/World/America/USA/fprn.json | 11 +---- dist/ntrip-catalog.json | 73 +++++++++++++++++++++++++++----- schemas/v0.1/entries.schema.json | 15 +++++-- scripts/query.py | 51 +++++++++++----------- 4 files changed, 103 insertions(+), 47 deletions(-) diff --git a/data/World/America/USA/fprn.json b/data/World/America/USA/fprn.json index 2421d39..5080ee1 100644 --- a/data/World/America/USA/fprn.json +++ b/data/World/America/USA/fprn.json @@ -12,16 +12,7 @@ "last_update": "2024-12-09", "streams": [ { - "filter": { - "lat_lon_bboxes": [ - [ - 167.65, - 14.92, - -63.88, - 74.71 - ] - ] - }, + "filter": "all", "crss": [ { "id": "EPSG:6319", diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 1b5ed3f..fb488b1 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -3,6 +3,45 @@ "release": 0, "comment": "This file has been automatically generated by a script. Update the 'data' folder if any change is needed.", "entries": [ + { + "name": "AUSCORS", + "description": "Geoscience Australia AUSCORS NTRIP Broadcaster", + "urls": [ + "https://ntrip.data.gnss.ga.gov.au:443", + "http://ntrip.data.gnss.ga.gov.au:2101" + ], + "reference": { + "url": "https://gnss.ga.gov.au/stream", + "comments": "Also provides base stations outside of Australia" + }, + "last_update": "2025-01-13", + "streams": [ + { + "filter": { + "countries": [ + "AUS" + ] + }, + "crss": [ + { + "id": "EPSG:7843", + "name": "GDA2020" + } + ], + "comments": "Broadcast Coordinates: Stations within Australia - GDA2020" + }, + { + "filter": "all", + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Broadcast Coordinates: Station outside of Australia - ITRF2020" + } + ] + }, { "name": "FPRN", "description": "Florida Primary Reference Network", @@ -16,16 +55,7 @@ "last_update": "2024-12-09", "streams": [ { - "filter": { - "lat_lon_bboxes": [ - [ - 167.65, - 14.92, - -63.88, - 74.71 - ] - ] - }, + "filter": "all", "crss": [ { "id": "EPSG:6319", @@ -146,6 +176,29 @@ } ] }, + { + "name": "SPSLUX", + "description": "Satellite Positioning System Luxembourg", + "urls": [ + "http://stream.spslux.lu:5005" + ], + "reference": { + "url": "https://act.public.lu/fr/gps-reseaux/spslux1/spsluxgeodeticdatum.html" + }, + "last_update": "2025-01-13", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:7931", + "name": "ETRF2000", + "epoch": 2020.82 + } + ] + } + ] + }, { "name": "Topnet Live Europe", "description": "Topcon NTRIP service in Europe", diff --git a/schemas/v0.1/entries.schema.json b/schemas/v0.1/entries.schema.json index 2f9802d..a4d37d6 100644 --- a/schemas/v0.1/entries.schema.json +++ b/schemas/v0.1/entries.schema.json @@ -52,7 +52,6 @@ "description": "Item to match a stream from the sourcetable with a CRS.", "properties": { "filter": { - "type": "object", "description": "Criterion to filter in the sourcetable", "oneOf": [ { @@ -63,6 +62,13 @@ }, { "$ref": "#/$defs/countries_def" + }, + { + "type": "string", + "enum": [ + "all" + ], + "description": "Matches all the streams. Use with caution." } ] }, @@ -168,6 +174,9 @@ }, "description": "Bounding box, in degrees, with the order: West, South, East, North." }, + "all_def": { + "type": "string" + }, "mountpoints_def": { "type": "object", "properties": { @@ -177,7 +186,7 @@ "items": { "type": "string" }, - "description": "Matches the 'Mountpoint' field in the Stream", + "description": "Matches the 'Mountpoint' field in the stream", "additionalProperties": false } }, @@ -211,7 +220,7 @@ "items": { "type": "string" }, - "description": "Matches the 'Country Code' field in the Stream" + "description": "Matches the 'Country Code' field in the stream" } }, "required": [ diff --git a/scripts/query.py b/scripts/query.py index 7452581..5f9b6af 100755 --- a/scripts/query.py +++ b/scripts/query.py @@ -86,6 +86,32 @@ def point_in_bbox(point_lat, point_lon, bbox): return point_lon >= bbox[0] and point_lon <= bbox[2] +def _crss_from_stream(stream, mountpoint, url, server_streams): + crss = stream["crss"] + stream_filter = stream["filter"] + if stream_filter == "all": + return crss + elif "mountpoints" in stream_filter: + if mountpoint in stream_filter["mountpoints"]: + return crss + else: + if not server_streams: + server_streams += get_streams_from_server(url) + line = get_str_line_from_server(server_streams, mountpoint) + if not line or len(line) < 10: + return None + country = line[8] + base_lat = float(line[9]) + base_lon = normalize_lon(float(line[10])) + + if country in stream_filter.get("countries", []): + return crss + + for bbox in stream_filter.get("lat_lon_bboxes", []): + if point_in_bbox(base_lat, base_lon, bbox): + return crss + + def filter_crs( json_entry, url, @@ -107,33 +133,10 @@ def filter_by_rover(crss): return crs return None - def crss_from_stream(stream, server_streams): - crss = stream["crss"] - stream_filter = stream["filter"] - if "mountpoints" in stream_filter: - if mountpoint in stream_filter["mountpoints"]: - return crss - else: - if not server_streams: - server_streams += get_streams_from_server(url) - line = get_str_line_from_server(server_streams, mountpoint) - if not line or len(line) < 10: - return None - country = line[8] - base_lat = float(line[9]) - base_lon = normalize_lon(float(line[10])) - - if country in stream_filter.get("countries", []): - return crss - - for bbox in stream_filter.get("lat_lon_bboxes", []): - if point_in_bbox(base_lat, base_lon, bbox): - return crss - server_streams = [*sourcetable_lines_splitted] if sourcetable_lines_splitted else [] for stream in json_entry["streams"]: - crss = crss_from_stream(stream, server_streams) + crss = _crss_from_stream(stream, mountpoint, url, server_streams) if crss: crs = filter_by_rover(crss) if crs: From dd5b82e80cc6cf9cb38d8e81c06be52adc2937a5 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Tue, 14 Jan 2025 19:08:10 +0100 Subject: [PATCH 07/14] spslux and auscors --- data/World/Europe/LUX/spslux.json | 25 ++++++++++++++++++ data/World/Oceania/AUS/auscors.json | 41 +++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 data/World/Europe/LUX/spslux.json create mode 100644 data/World/Oceania/AUS/auscors.json diff --git a/data/World/Europe/LUX/spslux.json b/data/World/Europe/LUX/spslux.json new file mode 100644 index 0000000..a0916d9 --- /dev/null +++ b/data/World/Europe/LUX/spslux.json @@ -0,0 +1,25 @@ +[ + { + "name": "SPSLUX", + "description": "Satellite Positioning System Luxembourg", + "urls": [ + "http://stream.spslux.lu:5005" + ], + "reference": { + "url": "https://act.public.lu/fr/gps-reseaux/spslux1/spsluxgeodeticdatum.html" + }, + "last_update": "2025-01-13", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:7931", + "name": "ETRF2000", + "epoch": 2020.82 + } + ] + } + ] + } +] diff --git a/data/World/Oceania/AUS/auscors.json b/data/World/Oceania/AUS/auscors.json new file mode 100644 index 0000000..25c22ca --- /dev/null +++ b/data/World/Oceania/AUS/auscors.json @@ -0,0 +1,41 @@ +[ + { + "name": "AUSCORS", + "description": "Geoscience Australia AUSCORS NTRIP Broadcaster", + "urls": [ + "https://ntrip.data.gnss.ga.gov.au:443", + "http://ntrip.data.gnss.ga.gov.au:2101" + ], + "reference": { + "url": "https://gnss.ga.gov.au/stream", + "comments": "Also provides base stations outside of Australia" + }, + "last_update": "2025-01-13", + "streams": [ + { + "filter": { + "countries": [ + "AUS" + ] + }, + "crss": [ + { + "id": "EPSG:7843", + "name": "GDA2020" + } + ], + "comments": "Broadcast Coordinates: Stations within Australia - GDA2020" + }, + { + "filter": "all", + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Broadcast Coordinates: Station outside of Australia - ITRF2020" + } + ] + } +] From b2c87a4b0773cf3ea81853981434ceb840a89945 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Mon, 27 Jan 2025 19:35:10 +0100 Subject: [PATCH 08/14] add sapos, swepos and utah-turn --- data/World/America/USA/utah-turn.json | 25 +++++ data/World/Europe/DEU/sapos.json | 105 ++++++++++++++++++ data/World/Europe/SWE/swepos.json | 25 +++++ dist/ntrip-catalog.json | 149 ++++++++++++++++++++++++++ 4 files changed, 304 insertions(+) create mode 100644 data/World/America/USA/utah-turn.json create mode 100644 data/World/Europe/DEU/sapos.json create mode 100644 data/World/Europe/SWE/swepos.json diff --git a/data/World/America/USA/utah-turn.json b/data/World/America/USA/utah-turn.json new file mode 100644 index 0000000..e6bfeab --- /dev/null +++ b/data/World/America/USA/utah-turn.json @@ -0,0 +1,25 @@ +[ + { + "name": "TURN Utah", + "description": "The Utah Reference Network (TURN)", + "urls": [ + "http://165.239.144.5:2101", + "http://turngps.utah.gov:2101" + ], + "reference": { + "url": "https://gis.utah.gov/documentation/turn/connecting/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:6319", + "name": "NAD83(2011)" + } + ] + } + ] + } +] diff --git a/data/World/Europe/DEU/sapos.json b/data/World/Europe/DEU/sapos.json new file mode 100644 index 0000000..6a3d3a5 --- /dev/null +++ b/data/World/Europe/DEU/sapos.json @@ -0,0 +1,105 @@ +[ + { + "name": "SAPOS", + "description": "SAPOS AdV", + "urls": [ + "http://www.sapos-ntrip.de:2101", + "http://sapos-ntrip.de:2101" + ], + "reference": { + "url": "https://zentrale-stelle-sapos.de/wp-content/uploads/2022/06/ZSS_zentrale-SAPOS-Ntrip-Caster-Einwahl_Jun2022.pdf", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, + { + "name": "SAPOS BW", + "description": "SAPOS Baden-Wuerttemberg", + "urls": [ + "http://www.sapos-bw-ntrip.de:2101", + "http://www.sapos-bw.de:2101" + ], + "reference": { + "url": "https://gpps-web.sapos-bw.de/faq.php", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, + { + "name": "SAPOS BY", + "description": "SAPOS Bayern", + "urls": [ + "http://195.200.70.199:2101", + "http://sapos-by-ntrip.de:2101", + "http://sapos-rtk.bayern.de:2101", + "http://www.sapos-by-ntrip.de:2101" + ], + "reference": { + "url": "https://ldbv.bayern.de/produkte/dienste/sapos.html", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, + { + "name": "SAPOS NRW", + "description": "SAPOS Nordrhein-Westfalen", + "urls": [ + "http://80.158.61.104:2101", + "http://www.sapos-nw-ntrip.de:2101", + "http://sapos-nw-ntrip.de:2101" + ], + "reference": { + "url": "https://www.bezreg-koeln.nrw.de/geobasis-nrw/produkte-und-dienste/raumbezug/satellitenpositionierungsdienst-sapos", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + } +] diff --git a/data/World/Europe/SWE/swepos.json b/data/World/Europe/SWE/swepos.json new file mode 100644 index 0000000..4de523f --- /dev/null +++ b/data/World/Europe/SWE/swepos.json @@ -0,0 +1,25 @@ +[ + { + "name": "SWEPOS", + "description": "SWEPOS", + "urls": [ + "http://nrtk-swepos.lm.se:80", + "http://nrtk-swepos.lm.se:8500" + ], + "reference": { + "url": "https://www.lantmateriet.se/sv/geodata/gps-geodesi-och-swepos/swepos/om-swepos/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:4977", + "name": "SWEREF99" + } + ] + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index fb488b1..72848bd 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -176,6 +176,109 @@ } ] }, + { + "name": "SAPOS", + "description": "SAPOS AdV", + "urls": [ + "http://www.sapos-ntrip.de:2101", + "http://sapos-ntrip.de:2101" + ], + "reference": { + "url": "https://zentrale-stelle-sapos.de/wp-content/uploads/2022/06/ZSS_zentrale-SAPOS-Ntrip-Caster-Einwahl_Jun2022.pdf", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, + { + "name": "SAPOS BW", + "description": "SAPOS Baden-Wuerttemberg", + "urls": [ + "http://www.sapos-bw-ntrip.de:2101", + "http://www.sapos-bw.de:2101" + ], + "reference": { + "url": "https://gpps-web.sapos-bw.de/faq.php", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, + { + "name": "SAPOS BY", + "description": "SAPOS Bayern", + "urls": [ + "http://195.200.70.199:2101", + "http://sapos-by-ntrip.de:2101", + "http://sapos-rtk.bayern.de:2101", + "http://www.sapos-by-ntrip.de:2101" + ], + "reference": { + "url": "https://ldbv.bayern.de/produkte/dienste/sapos.html", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, + { + "name": "SAPOS NRW", + "description": "SAPOS Nordrhein-Westfalen", + "urls": [ + "http://80.158.61.104:2101", + "http://www.sapos-nw-ntrip.de:2101", + "http://sapos-nw-ntrip.de:2101" + ], + "reference": { + "url": "https://www.bezreg-koeln.nrw.de/geobasis-nrw/produkte-und-dienste/raumbezug/satellitenpositionierungsdienst-sapos", + "comments": "https://sapos.de/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "German realization of ETRS89" + } + ] + } + ] + }, { "name": "SPSLUX", "description": "Satellite Positioning System Luxembourg", @@ -199,6 +302,52 @@ } ] }, + { + "name": "SWEPOS", + "description": "SWEPOS", + "urls": [ + "http://nrtk-swepos.lm.se:80", + "http://nrtk-swepos.lm.se:8500" + ], + "reference": { + "url": "https://www.lantmateriet.se/sv/geodata/gps-geodesi-och-swepos/swepos/om-swepos/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:4977", + "name": "SWEREF99" + } + ] + } + ] + }, + { + "name": "TURN Utah", + "description": "The Utah Reference Network (TURN)", + "urls": [ + "http://165.239.144.5:2101", + "http://turngps.utah.gov:2101" + ], + "reference": { + "url": "https://gis.utah.gov/documentation/turn/connecting/" + }, + "last_update": "2025-01-27", + "streams": [ + { + "filter": "all", + "crss": [ + { + "id": "EPSG:6319", + "name": "NAD83(2011)" + } + ] + } + ] + }, { "name": "Topnet Live Europe", "description": "Topcon NTRIP service in Europe", From abd8bf25bcec368a4a98403baf2d0fc749fdf1f0 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Mon, 27 Jan 2025 19:55:53 +0100 Subject: [PATCH 09/14] remove outside of Australia from auscors --- data/World/Oceania/AUS/auscors.json | 12 +----------- dist/ntrip-catalog.json | 12 +----------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/data/World/Oceania/AUS/auscors.json b/data/World/Oceania/AUS/auscors.json index 25c22ca..4e6c8f5 100644 --- a/data/World/Oceania/AUS/auscors.json +++ b/data/World/Oceania/AUS/auscors.json @@ -8,7 +8,7 @@ ], "reference": { "url": "https://gnss.ga.gov.au/stream", - "comments": "Also provides base stations outside of Australia" + "comments": "Also provides base stations outside of Australia, but CRS not clear" }, "last_update": "2025-01-13", "streams": [ @@ -25,16 +25,6 @@ } ], "comments": "Broadcast Coordinates: Stations within Australia - GDA2020" - }, - { - "filter": "all", - "crss": [ - { - "id": "EPSG:9989", - "name": "ITRF2020" - } - ], - "comments": "Broadcast Coordinates: Station outside of Australia - ITRF2020" } ] } diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 72848bd..45df009 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -12,7 +12,7 @@ ], "reference": { "url": "https://gnss.ga.gov.au/stream", - "comments": "Also provides base stations outside of Australia" + "comments": "Also provides base stations outside of Australia, but CRS not clear" }, "last_update": "2025-01-13", "streams": [ @@ -29,16 +29,6 @@ } ], "comments": "Broadcast Coordinates: Stations within Australia - GDA2020" - }, - { - "filter": "all", - "crss": [ - { - "id": "EPSG:9989", - "name": "ITRF2020" - } - ], - "comments": "Broadcast Coordinates: Station outside of Australia - ITRF2020" } ] }, From be16ce0431ea2da5426f57c2edbe9c012b46c55e Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Tue, 28 Jan 2025 15:34:10 +0100 Subject: [PATCH 10/14] add Skylark --- data/World/America/skylark-na.json | 80 ++++++++++ data/World/Asia/skylark-ap.json | 66 ++++++++ data/World/Europe/skylark-eu.json | 95 ++++++++++++ dist/ntrip-catalog.json | 235 +++++++++++++++++++++++++++++ 4 files changed, 476 insertions(+) create mode 100644 data/World/America/skylark-na.json create mode 100644 data/World/Asia/skylark-ap.json create mode 100644 data/World/Europe/skylark-eu.json diff --git a/data/World/America/skylark-na.json b/data/World/America/skylark-na.json new file mode 100644 index 0000000..8a78ab8 --- /dev/null +++ b/data/World/America/skylark-na.json @@ -0,0 +1,80 @@ +[ + { + "name": "Skylark North America", + "description": "Skylark service in North America", + "urls": [ + "http://na.l1l2.skylark.swiftnav.com:2101", + "http://na.l1l5.skylark.swiftnav.com:2101", + "https://na.l1l2.skylark.swiftnav.com:2102", + "https://na.l1l5.skylark.swiftnav.com:2102" + ], + "reference": { + "url": "https://support.swiftnav.com/support/solutions/articles/44002519397-ntrip-client-configuration-for-skylark-corrections" + }, + "last_update": "2025-01-28", + "streams": [ + { + "filter": { + "mountpoints": [ + "NXRTK-NAD83-MSM5" + ] + }, + "crss": [ + { + "id": "EPSG:6319", + "name": "NAD83(2011)" + } + ], + "comments": "Skylark Nx RTK mountpoint available in contiguous United States only" + }, + { + "filter": { + "mountpoints": [ + "MSM4", + "MSM5", + "OSR", + "SSR", + "SSR-integrity", + "SSR-integrity-AES-CMAC" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Cx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "DX-MSM1" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Dx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-MSM5", + "NXRTK-RTCM31" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Nx RTK mountpoints ITRF2020" + } + ] + } +] diff --git a/data/World/Asia/skylark-ap.json b/data/World/Asia/skylark-ap.json new file mode 100644 index 0000000..2ed0bc0 --- /dev/null +++ b/data/World/Asia/skylark-ap.json @@ -0,0 +1,66 @@ +[ + { + "name": "Skylark Asia Pacific", + "description": "Skylark service in Asia Pacific", + "urls": [ + "http://ap.l1l2.skylark.swiftnav.com:2101", + "http://ap.l1l5.skylark.swiftnav.com:2101", + "https://ap.l1l2.skylark.swiftnav.com:2102", + "https://ap.l1l5.skylark.swiftnav.com:2102" + ], + "reference": { + "url": "https://support.swiftnav.com/support/solutions/articles/44002519397-ntrip-client-configuration-for-skylark-corrections" + }, + "last_update": "2025-01-28", + "streams": [ + { + "filter": { + "mountpoints": [ + "MSM4", + "MSM5", + "OSR", + "SSR", + "SSR-integrity", + "SSR-integrity-AES-CMAC" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Cx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "DX-MSM1" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Dx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-MSM5", + "NXRTK-RTCM31" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Nx RTK mountpoints ITRF2020" + } + ] + } +] diff --git a/data/World/Europe/skylark-eu.json b/data/World/Europe/skylark-eu.json new file mode 100644 index 0000000..b7dc2e3 --- /dev/null +++ b/data/World/Europe/skylark-eu.json @@ -0,0 +1,95 @@ +[ + { + "name": "Skylark Europe", + "description": "Skylark service in Europe", + "urls": [ + "http://eu.l1l2.skylark.swiftnav.com:2101", + "http://eu.l1l5.skylark.swiftnav.com:2101", + "https://eu.l1l2.skylark.swiftnav.com:2102", + "https://eu.l1l5.skylark.swiftnav.com:2102" + ], + "reference": { + "url": "https://support.swiftnav.com/support/solutions/articles/44002519397-ntrip-client-configuration-for-skylark-corrections" + }, + "last_update": "2025-01-28", + "streams": [ + { + "filter": { + "mountpoints": [ + "NXRTK-DREF91-MSM5" + ] + }, + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "Germany" + } + ], + "comments": "Skylark Nx RTK mountpoint for Germany" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-ETRF2000-MSM5" + ] + }, + "crss": [ + { + "id": "EPSG:7931", + "name": "ETRF2000" + } + ], + "comments": "Skylark Nx RTK mountpoint for Europe" + }, + { + "filter": { + "mountpoints": [ + "MSM4", + "MSM5", + "OSR", + "SSR", + "SSR-integrity", + "SSR-integrity-AES-CMAC" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Cx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "DX-MSM1" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Dx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-MSM5", + "NXRTK-RTCM31" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Nx RTK mountpoints ITRF2020" + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 45df009..919839c 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -315,6 +315,241 @@ } ] }, + { + "name": "Skylark Asia Pacific", + "description": "Skylark service in Asia Pacific", + "urls": [ + "http://ap.l1l2.skylark.swiftnav.com:2101", + "http://ap.l1l5.skylark.swiftnav.com:2101", + "https://ap.l1l2.skylark.swiftnav.com:2102", + "https://ap.l1l5.skylark.swiftnav.com:2102" + ], + "reference": { + "url": "https://support.swiftnav.com/support/solutions/articles/44002519397-ntrip-client-configuration-for-skylark-corrections" + }, + "last_update": "2025-01-28", + "streams": [ + { + "filter": { + "mountpoints": [ + "MSM4", + "MSM5", + "OSR", + "SSR", + "SSR-integrity", + "SSR-integrity-AES-CMAC" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Cx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "DX-MSM1" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Dx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-MSM5", + "NXRTK-RTCM31" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Nx RTK mountpoints ITRF2020" + } + ] + }, + { + "name": "Skylark Europe", + "description": "Skylark service in Europe", + "urls": [ + "http://eu.l1l2.skylark.swiftnav.com:2101", + "http://eu.l1l5.skylark.swiftnav.com:2101", + "https://eu.l1l2.skylark.swiftnav.com:2102", + "https://eu.l1l5.skylark.swiftnav.com:2102" + ], + "reference": { + "url": "https://support.swiftnav.com/support/solutions/articles/44002519397-ntrip-client-configuration-for-skylark-corrections" + }, + "last_update": "2025-01-28", + "streams": [ + { + "filter": { + "mountpoints": [ + "NXRTK-DREF91-MSM5" + ] + }, + "crss": [ + { + "id": "EPSG:10283", + "name": "ETRS89/DREF91/2016", + "description": "Germany" + } + ], + "comments": "Skylark Nx RTK mountpoint for Germany" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-ETRF2000-MSM5" + ] + }, + "crss": [ + { + "id": "EPSG:7931", + "name": "ETRF2000" + } + ], + "comments": "Skylark Nx RTK mountpoint for Europe" + }, + { + "filter": { + "mountpoints": [ + "MSM4", + "MSM5", + "OSR", + "SSR", + "SSR-integrity", + "SSR-integrity-AES-CMAC" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Cx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "DX-MSM1" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Dx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-MSM5", + "NXRTK-RTCM31" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Nx RTK mountpoints ITRF2020" + } + ] + }, + { + "name": "Skylark North America", + "description": "Skylark service in North America", + "urls": [ + "http://na.l1l2.skylark.swiftnav.com:2101", + "http://na.l1l5.skylark.swiftnav.com:2101", + "https://na.l1l2.skylark.swiftnav.com:2102", + "https://na.l1l5.skylark.swiftnav.com:2102" + ], + "reference": { + "url": "https://support.swiftnav.com/support/solutions/articles/44002519397-ntrip-client-configuration-for-skylark-corrections" + }, + "last_update": "2025-01-28", + "streams": [ + { + "filter": { + "mountpoints": [ + "NXRTK-NAD83-MSM5" + ] + }, + "crss": [ + { + "id": "EPSG:6319", + "name": "NAD83(2011)" + } + ], + "comments": "Skylark Nx RTK mountpoint available in contiguous United States only" + }, + { + "filter": { + "mountpoints": [ + "MSM4", + "MSM5", + "OSR", + "SSR", + "SSR-integrity", + "SSR-integrity-AES-CMAC" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Cx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "DX-MSM1" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Dx mountpoints ITRF2020" + }, + { + "filter": { + "mountpoints": [ + "NXRTK-MSM5", + "NXRTK-RTCM31" + ] + }, + "crss": [ + { + "id": "EPSG:9989", + "name": "ITRF2020" + } + ], + "comments": "Skylark Nx RTK mountpoints ITRF2020" + } + ] + }, { "name": "TURN Utah", "description": "The Utah Reference Network (TURN)", From bb61d2e98a392beee7f5d3a3bfba30d59a42f633 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Tue, 28 Jan 2025 17:48:33 +0100 Subject: [PATCH 11/14] add disclaimer to the README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 2ee19f9..a4ddcea 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,9 @@ This data is distributed as CC0. This is just a collection of the data that NTRIP providers should be already explaining in their web pages. We try to make it easy to use and contribute. +This data and software is provided "as is," without warranties or conditions of any kind, express or implied, including but not limited to the warranties of accuracy, completeness, fitness for a particular purpose, or non-infringement. +In no event shall the authors or contributors be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the use of this data or the information contained within it. + ## EPSG Many applications rely on the data provided by the [EPSG](https://epsg.org/) database. For that reason EPSG data is preferred in this catalog. From 21117a5c13b3cfcc50973e4e31adb875a96ea06b Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw <52919140+javier-jimenez-shaw-pix4d@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:58:03 +0100 Subject: [PATCH 12/14] Update data/World/Oceania/AUS/auscors.json Co-authored-by: Juan Hernando --- data/World/Oceania/AUS/auscors.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/World/Oceania/AUS/auscors.json b/data/World/Oceania/AUS/auscors.json index 4e6c8f5..ca34f54 100644 --- a/data/World/Oceania/AUS/auscors.json +++ b/data/World/Oceania/AUS/auscors.json @@ -8,7 +8,7 @@ ], "reference": { "url": "https://gnss.ga.gov.au/stream", - "comments": "Also provides base stations outside of Australia, but CRS not clear" + "comments": "Also provides base stations outside of Australia, but the precise CRS is not known" }, "last_update": "2025-01-13", "streams": [ From 60a30bf7a87f9e1135c2e313ced5b9179df5ac7e Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Wed, 29 Jan 2025 19:45:16 +0100 Subject: [PATCH 13/14] add pointonenav --- data/World/pointonenav.json | 148 ++++++++++++++++++++++++++++++++++++ dist/ntrip-catalog.json | 148 +++++++++++++++++++++++++++++++++++- 2 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 data/World/pointonenav.json diff --git a/data/World/pointonenav.json b/data/World/pointonenav.json new file mode 100644 index 0000000..868b732 --- /dev/null +++ b/data/World/pointonenav.json @@ -0,0 +1,148 @@ +[ + { + "name": "Point One Nav", + "description": "Point One Navigation world service", + "urls": [ + "http://truertk.pointonenav.com:2101", + "http://virtualrtk.pointonenav.com:2101", + "http://truertk-us.pointonenav.com:2101", + "http://truertk-eu.pointonenav.com:2101", + "http://truertk-apac.pointonenav.com:2101", + "https://truertk.pointonenav.com:2102", + "https://virtualrtk.pointonenav.com:2102", + "https://truertk-us.pointonenav.com:2102", + "https://truertk-eu.pointonenav.com:2102", + "https://truertk-apac.pointonenav.com:2102" + ], + "reference": { + "url": "https://support.pointonenav.com/connect-to-polaris-rtk" + }, + "last_update": "2025-01-29", + "streams": [ + { + "filter": { + "mountpoints": [ + "POLARIS" + ] + }, + "crss": [ + { + "id": "EPSG:7912", + "name": "ITRF2014", + "epoch": "now" + } + ] + }, + { + "filter": { + "mountpoints": [ + "POLARIS_LOCAL" + ] + }, + "crss": [ + { + "id": "EPSG:6667", + "name": "JGD2011", + "rover_countries": [ + "JPN" + ], + "description": "Japan" + }, + { + "id": "EPSG:4927", + "name": "KGD2002", + "rover_countries": [ + "KOR" + ], + "description": "Korea" + }, + { + "id": "EPSG:7929", + "name": "ETRF97", + "epoch": 2009.756, + "rover_countries": [ + "GBR" + ], + "description": "UK" + }, + { + "id": "EPSG:7931", + "name": "ETRF2000", + "epoch": 2010.5, + "rover_countries": [ + "NLD" + ], + "description": "Netherlands" + }, + { + "id": "EPSG:7843", + "name": "GDA2020", + "rover_countries": [ + "AUS" + ], + "description": "Australia" + }, + { + "id": "EPSG:4959", + "name": "NZGD2000", + "rover_countries": [ + "NZL" + ], + "description": "New Zealand" + }, + { + "id": "EPSG:8254", + "name": "NAD83(CSRS)v7", + "rover_countries": [ + "CAN" + ], + "description": "Canada" + }, + { + "id": "EPSG:6324", + "name": "NAD83(MA11)", + "rover_bbox": [ + 129.48, + 1.64, + 149.55, + 23.9 + ], + "description": "Guam" + }, + { + "id": "EPSG:6321", + "name": "NAD83(PA11)", + "rover_bbox": [ + 157.47, + -17.56, + -151.27, + 31.8 + ], + "description": "Hawaii" + }, + { + "id": "EPSG:6319", + "name": "NAD83(2011)", + "rover_countries": [ + "USA" + ], + "description": "Continental USA, after Guam and Hawaii" + }, + { + "id": "EPSG:7931", + "name": "ETRF2000", + "epoch": 2010.0, + "rover_bbox": [ + -12, + 35, + 36, + 72 + ], + "description": "Continental Europe" + } + ], + "comments": "Polaris_local per region" + } + ] + } +] diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index 919839c..e792d8c 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -12,7 +12,7 @@ ], "reference": { "url": "https://gnss.ga.gov.au/stream", - "comments": "Also provides base stations outside of Australia, but CRS not clear" + "comments": "Also provides base stations outside of Australia, but the precise CRS is not known" }, "last_update": "2025-01-13", "streams": [ @@ -166,6 +166,152 @@ } ] }, + { + "name": "Point One Nav", + "description": "Point One Navigation world service", + "urls": [ + "http://truertk.pointonenav.com:2101", + "http://virtualrtk.pointonenav.com:2101", + "http://truertk-us.pointonenav.com:2101", + "http://truertk-eu.pointonenav.com:2101", + "http://truertk-apac.pointonenav.com:2101", + "https://truertk.pointonenav.com:2102", + "https://virtualrtk.pointonenav.com:2102", + "https://truertk-us.pointonenav.com:2102", + "https://truertk-eu.pointonenav.com:2102", + "https://truertk-apac.pointonenav.com:2102" + ], + "reference": { + "url": "https://support.pointonenav.com/connect-to-polaris-rtk" + }, + "last_update": "2025-01-29", + "streams": [ + { + "filter": { + "mountpoints": [ + "POLARIS" + ] + }, + "crss": [ + { + "id": "EPSG:7912", + "name": "ITRF2014", + "epoch": "now" + } + ] + }, + { + "filter": { + "mountpoints": [ + "POLARIS_LOCAL" + ] + }, + "crss": [ + { + "id": "EPSG:6667", + "name": "JGD2011", + "rover_countries": [ + "JPN" + ], + "description": "Japan" + }, + { + "id": "EPSG:4927", + "name": "KGD2002", + "rover_countries": [ + "KOR" + ], + "description": "Korea" + }, + { + "id": "EPSG:7929", + "name": "ETRF97", + "epoch": 2009.756, + "rover_countries": [ + "GBR" + ], + "description": "UK" + }, + { + "id": "EPSG:7931", + "name": "ETRF2000", + "epoch": 2010.5, + "rover_countries": [ + "NLD" + ], + "description": "Netherlands" + }, + { + "id": "EPSG:7843", + "name": "GDA2020", + "rover_countries": [ + "AUS" + ], + "description": "Australia" + }, + { + "id": "EPSG:4959", + "name": "NZGD2000", + "rover_countries": [ + "NZL" + ], + "description": "New Zealand" + }, + { + "id": "EPSG:8254", + "name": "NAD83(CSRS)v7", + "rover_countries": [ + "CAN" + ], + "description": "Canada" + }, + { + "id": "EPSG:6324", + "name": "NAD83(MA11)", + "rover_bbox": [ + 129.48, + 1.64, + 149.55, + 23.9 + ], + "description": "Guam" + }, + { + "id": "EPSG:6321", + "name": "NAD83(PA11)", + "rover_bbox": [ + 157.47, + -17.56, + -151.27, + 31.8 + ], + "description": "Hawaii" + }, + { + "id": "EPSG:6319", + "name": "NAD83(2011)", + "rover_countries": [ + "USA" + ], + "description": "Continental USA, after Guam and Hawaii" + }, + { + "id": "EPSG:7931", + "name": "ETRF2000", + "epoch": 2010.0, + "rover_bbox": [ + -12, + 35, + 36, + 72 + ], + "description": "Continental Europe" + } + ], + "comments": "Polaris_local per region" + } + ] + }, { "name": "SAPOS", "description": "SAPOS AdV", From c8651aaf357a66a4ee402c6efcb9c4916c8670f5 Mon Sep 17 00:00:00 2001 From: Javier Jimenez Shaw Date: Thu, 30 Jan 2025 13:24:19 +0100 Subject: [PATCH 14/14] comments on PR --- data/World/America/USA/utah-turn.json | 3 ++- dist/ntrip-catalog.json | 3 ++- schemas/v0.1/entries.schema.json | 3 --- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/data/World/America/USA/utah-turn.json b/data/World/America/USA/utah-turn.json index e6bfeab..ebeabf5 100644 --- a/data/World/America/USA/utah-turn.json +++ b/data/World/America/USA/utah-turn.json @@ -16,7 +16,8 @@ "crss": [ { "id": "EPSG:6319", - "name": "NAD83(2011)" + "name": "NAD83(2011)", + "epoch": 2010.0 } ] } diff --git a/dist/ntrip-catalog.json b/dist/ntrip-catalog.json index e792d8c..0f09459 100644 --- a/dist/ntrip-catalog.json +++ b/dist/ntrip-catalog.json @@ -713,7 +713,8 @@ "crss": [ { "id": "EPSG:6319", - "name": "NAD83(2011)" + "name": "NAD83(2011)", + "epoch": 2010.0 } ] } diff --git a/schemas/v0.1/entries.schema.json b/schemas/v0.1/entries.schema.json index a4d37d6..2e66667 100644 --- a/schemas/v0.1/entries.schema.json +++ b/schemas/v0.1/entries.schema.json @@ -174,9 +174,6 @@ }, "description": "Bounding box, in degrees, with the order: West, South, East, North." }, - "all_def": { - "type": "string" - }, "mountpoints_def": { "type": "object", "properties": {