JSON Schema and validator for IHO B-12 Crowdsourced Bathymetry metadata and data
Project description
csbschema
csbschema
defines a JSON Schema and validator (implemented in Pyhon) for
IHO B-12 Crowdsourced Bathymetry
metadata and data.
Installation
To install from PyPi, first create a virtual environment for your project, then:
pip install csbschema
Clone or download this repository, then run:
$ pip install .
Usage
Convention GeoJSON CSB 3.1
JSON files conforming to IHO B-12 Edition 3.0.0 can be validated using the 3.1.0-2024-04 schema (e.g., convention 'GeoJSON CSB 3.1'):
$ csbschema validate -f docs/IHO/b12_v3_1_0_example.json
CSB data file 'docs/IHO/b12_v3_1_0_example.json' successfully validated against schema '3.1.0-2024-04'.
Validating an invalid document will show where in the document errors were be found:
$ csbschema validate -f docs/IHO/b12_v3_1_0_example-invalid.json
Validation of docs/IHO/b12_v3_1_0_example-invalid.json against schema 3.1.0-2024-04 failed due to the following errors:
Path: /properties/trustedNode/convention, error: 'GeoJSON CSB 3.0' is not one of ['GeoJSON CSB 3.1']
Path: /properties/processing/5, error: {'type': 'VerticalOffsetAnalysis', 'timestamp': '2021-11-22T16:10:09.346821Z', 'name': 'CIDCO Vertical Offset Analysis', 'version': '1.0.0', 'reference': 'DOI:10.47366/sabia.v5n1a3', 'comment': 'FREE TEXT HERE', 'analysis': [{'name': 'Chi2', 'pass': True, 'parameters': {'a': 123.456, 'b': 789.012, 'target': 'Normal', 'df': 15, 'alpha': 0.05, 'pmf': {'centers': [-1.0, -0.5, 0, 0.5, 1.0], 'counts': [0, 24, 50, 120, 23, 0]}}, 'reference': 'DOI:10.47366/sabia.v5n1a3', 'comment': 'FREE TEXT HERE'}]} is not valid under any of the given schemas
Path: /features/1/properties, error: 'depth' is a required property
Path: /features/3/properties, error: 'time' is a required property
Path: /features/4/properties/time, error: '2016-03-03 18:41:49Z' does not match '^([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)([.][0-9]+)?[Zz]$'
Path: /properties/platform/IDNumber, error: IDNumber IMO3699580 is not valid for IDType MMSI.
Path: /properties/platform/dataProcessed, error: dataProcessed flag is 'false', but 'processing' properties were found.
Path: /properties/platform/uniqueID, error: uniqueID: SEAID-45f5c322-10f2-4946-802e-d5992ad36727 does not match /properties/trustedNode/uniqueVesselID: SEAID-e8c469f8-df38-11e5-b86d-9a79f06e9478
Path: /features/1/properties, error: Observation uncertainty found, but Uncertainty metadata was not found.
Conventions GeoJSON CSB 3.0 and XYZ CSB 3.0
A schema for the provisional JSON encoding of B12 3.0.0 data and metadata (e.g., convention 'GeoJSON CSB 3.0') is available under the schema name '3.0.0-2023-03':
$ csbschema validate -f docs/NOAA/example_csb_geojson_file.geojson --version 3.0.0-2023-03
Similarly, a metadata-only schema (e.g., convention 'XYZ CSB 3.0') is available under the schema name 'XYZ-3.0.0-2023-03':
$ csbschema validate -f docs/NOAA/noaa_b12_v3_0_0_xyz_required.json --version XYZ-3.0.0-2023-03
CSB data file 'docs/NOAA/noaa_b12_v3_0_0_xyz_required.json' successfully validated against schema 'XYZ-3.0.0-2023-03'.
The metadata-only 'XYZ schema' is meant to be used for JSON metadata supplied alongside CSB data in CSV or another format.
Convention GeoJSON CSB 3.2
A schema for a beta JSON encoding of B12 3.0.0 (e.g., convention 'GeoJSON CSB 3.2') is available under the schema name '3.2.0-BETA':
$ csbschema validate -f docs/IHO/b12_v3_2_0-BETA_example.json --version 3.2.0-BETA
CSB data file 'docs/IHO/b12_v3_2_0-BETA_example.json' successfully validated against schema '3.2.0-BETA'.
Run
csbschema validate --help
for more information about validating against different versions of the schema.
Testing
First, install test dependencies:
$ pip install -r requirements-test.txt
Then run unit tests:
$ pytest tests/unit/test_*.py
Run integration tests, which tests running the csbschema validate
command line tool for many of the example
CSB documents found in the csbschema
repository:
$ bash tests/integration/validate_cmd.sh
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file csbschema-1.1.2.tar.gz
.
File metadata
- Download URL: csbschema-1.1.2.tar.gz
- Upload date:
- Size: 23.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 551bec314c98c30f0d76f4ee705196dff6d5304e634d01f97e72140a02ed38ee |
|
MD5 | cf6e67432dfa828898698116eef91c46 |
|
BLAKE2b-256 | a1bb7f8e83bc86962f8572ff754707b857953d80c06bf3e6f6bcfd41c8935b7f |
File details
Details for the file csbschema-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: csbschema-1.1.2-py3-none-any.whl
- Upload date:
- Size: 59.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bfe7baefba58f4209c8e330b2123dd75fd35018195b9ae524f2bdb0a977ebc1 |
|
MD5 | d46965f3c28210dd2f42803de56fa091 |
|
BLAKE2b-256 | e5a8477fe49f938dc4509e3418755b35895eabd9f1aef9f96367542ac8f744b7 |