CLI tools such as validation and file format conversion for fiboa.
Project description
fiboa CLI
A command-line interface (CLI) for working with fiboa files.
Getting Started
In order to make working with fiboa easier we have developed command-line interface (CLI) tools such as inspection, validation and file format conversions.
Installation
Using Pixi (Recommended)
This project uses Pixi for dependency management. Install Pixi first, then:
# Clone the repository and navigate to it
git clone https://github.com/vecorel/cli.git
cd cli
# Install all dependencies
pixi install
# Run the CLI
pixi run fiboa
Using pip
Alternatively, you can install from PyPI with Python 3.10 or any later version:
pip install fiboa-cli
Execute a command
After the installation you should be able to run the following command: fiboa (or pixi run fiboa if using Pixi)
You should see usage instructions and available commands for the CLI.
fiboa CLI supports various commands to work with the files:
- fiboa CLI
- Getting Started
- Commands
- Validation
- Create fiboa GeoParquet from GeoJSON
- Create fiboa GeoJSON from GeoParquet
- Inspect fiboa GeoParquet file
- Merge fiboa GeoParquet files
- Create JSON Schema from fiboa Schema
- Validate a Vecorel Schema
- Improve a fiboa Parquet file
- Update an extension template with new names
- Converter for existing datasets
- Development
Commands
Validation
To validate a Vecorel GeoParquet or GeoJSON file, you can for example run:
- GeoJSON:
fiboa validate example.json --collection collection.json - GeoParquet:
fiboa validate example.parquet --data
Check fiboa validate --help for more details.
The validator also supports remote files.
http://orhttps://: no further configuration is needed.s3://: With Pixi, runpixi install -e s3or with pip, runpip install fiboa-cli[s3]and you may need to set environment variables. Refer to the s3fs credentials documentation for how to define credentials.gs://: With Pixi, runpixi install -e gcsor with pip, runpip install fiboa-cli[gcs]. By default,gcsfswill attempt to use your default gcloud credentials or, attempt to get credentials from the google metadata service, or fall back to anonymous access.
Create fiboa GeoParquet from GeoJSON
To create a fiboa-compliant GeoParquet for a fiboa-compliant set of GeoJSON files containing Features or FeatureCollections, you can for example run:
fiboa create-geoparquet geojson/example.json -o example.parquet -c geojson/collection.json
Check fiboa create-geoparquet --help for more details.
Create fiboa GeoJSON from GeoParquet
To create one or multiple fiboa-compliant GeoJSON file(s) for a fiboa-compliant GeoParquet file, you can for example run:
-
GeoJSON FeatureCollection:
fiboa create-geojson example.parquet -o dest-folder -
GeoJSON Features (with indentation and max. 100 features):
fiboa create-geojson example.parquet -o dest-folder -n 100 -i 2 -ffiboa create-geojson example.parquet -o dest-folder -n 100 -i 2 -f
Check fiboa create-geojson --help for more details.
Inspect fiboa GeoParquet file
To look into a fiboa GeoParquet file to get a rough understanding of the content, the following can be executed:
fiboa describe example.parquet
Check fiboa describe --help for more details.
Merge fiboa GeoParquet files
Merges multiple fiboa datasets to a combined fiboa dataset:
fiboa merge ec_ee.parquet ec_lv.parquet -o merged.parquet -e https://fiboa.org/hcat-extension/v0.1.0/schema.yaml -i ec:hcat_name -i ec:hcat_code -i ec:translated_name
Check fiboa merge --help for more details.
Create JSON Schema from fiboa Schema
To create a JSON Schema for a fiboa Schema YAML file, you can for example run:
fiboa jsonschema example.json --id=https://vecorel.org/specification/v0.3.0/geojson/schema.json -o schema.json
Check fiboa jsonschema --help for more details.
Validate a Vecorel Schema
To validate a Vecorel Schema YAML file, you can for example run:
fiboa validate-schema schema/schema.yaml
Check fiboa validate-schema --help for more details.
Improve a fiboa Parquet file
Various "improvements" can be applied to a fiboa GeoParquet file. The commands allows to
- change the CRS (
--crs) - change the GeoParquet version (
-gp1) and compression (-pc) - add/fill missing perimeter/area values (
-sz) - fix invalid geometries (
-g) - rename columns (
-r)
Example:
fiboa improve file.parquet -o file2.parquet -g -sz -r old=new -pc zstd
Check fiboa improve --help for more details.
Update an extension template with new names
Once you've created and git cloned a new extension, you can use the CLI to update all template placeholders with proper names.
For example, if your extension is meant to have
- the title "Administrative Division Extension",
- the prefix
admin(e.g. fieldadmin:country_codeoradmin:subdivision_code), - is hosted at
https://github.io/vecorel/administrative-division-extension(organization:vecorel, repository/administrative-division-extension), - and you run Vecorel in the folder of the extension.
Then the following command could be used:
fiboa rename-extension . -t "Administrative Division" -p admin -s administrative-division-extension -o vecorel
Check fiboa rename-extension --help for more details.
Converter for existing datasets
The CLI ships various converters for existing datasets.
To get a list of available converters/datasets with title, license, etc. run:
fiboa converters
Use any of the IDs from the list to convert an existing dataset to fiboa:
fiboa convert de_nrw
See Implement a converter for details about how to
Development
This project uses Pixi for dependency management and development workflows.
# Install all dependencies including development tools
pixi install -e dev
# Install the package in editable mode
pixi run install-dev
# Run tests
pixi run test
# Format and lint code
pixi run format
pixi run lint
# Run all checks (lint, format, test)
pixi run check
# Install and run pre-commit
pixi run pre-commit-install
pixi run pre-commit-run
Implement a converter
The following high-level description gives an idea how to implement a converter in fiboa CLI:
- Create a new file in
fiboa_cli/datasetsbased on thetemplate.py - Fill in the required variables / test it / run it
- Add missing dependencies into the appropriate feature group in
pixi.toml(orsetup.pyfor pip users) - Add the converter to the list above
- Create a PR to submit your converter for review
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fiboa_cli-0.20.3.tar.gz.
File metadata
- Download URL: fiboa_cli-0.20.3.tar.gz
- Upload date:
- Size: 67.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2a745959143680cca39d78b0c456efd8db672452745f257565ed5841b6f00fe
|
|
| MD5 |
404ce4c4099004196a1bb76938caf7a6
|
|
| BLAKE2b-256 |
1ce319cde55852a8a818309ad7f5d4a7361cd43657d47e6a596636559f6f66ac
|
File details
Details for the file fiboa_cli-0.20.3-py3-none-any.whl.
File metadata
- Download URL: fiboa_cli-0.20.3-py3-none-any.whl
- Upload date:
- Size: 101.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d051a434d742c03d83b676dfaed57a3baa82f763b58481c16d48d9bcd9c31162
|
|
| MD5 |
de4b4a2b6ef15fee14d0d9c2158dc3ba
|
|
| BLAKE2b-256 |
9a0b63ecbcd4e270d71692544503fc4ab5408a95af403942221d4a76cf61d386
|