Skip to main content

CLI to process and manipulate CityJSON files

Project description

cjio, or CityJSON/io

License: MIT

Python CLI to process and manipulate CityJSON files. The different operators can be chained to perform several processing operations in one step, the CityJSON model goes through them and different versions of the CityJSON model can be saved as files along the pipeline.

Installation

It uses Python 3.3+ only.

To install the latest release:

pip3 install cjio

To install the development branch, and still develop with it:

git checkout development
virtualenv venv
. venv/bin/activate
pip3 install --editable .

Alternatively, you can use the included Pipfile to manage the virtual environment with pipenv.

Usage

After installation, you have a small program called cjio, to see its possibities:

cjio --help

Commands:
  assign_epsg                Assign a (new) EPSG.
  compress                   Compress a CityJSON file, ie stores its...
  decompress                 Decompress a CityJSON file, ie remove the...
  export                     Export the CityJSON to an OBJ file.
  info                       Output info in simple JSON.
  locate_textures            Output the location of the texture files.
  merge                      Merge the current CityJSON with others.
  remove_duplicate_vertices  Remove duplicate vertices a CityJSON file.
  remove_materials           Remove all materials from a CityJSON file.
  remove_orphan_vertices     Remove orphan vertices a CityJSON file.
  remove_textures            Remove all textures from a CityJSON file.
  reproject                  Reproject the CityJSON to a new EPSG.
  save                       Save the CityJSON to a file.
  subset                     Create a subset of a CityJSON file.
  update_bbox                Update the bbox of a CityJSON file.
  update_textures            Update the location of the texture files.
  upgrade_version            Upgrade the CityJSON to the latest version.
  validate                   Validate the CityJSON file: (1) against its...  

Pipelines of operators

The 3D city model opened is passed through all the operators, and it gets modified by some operators. Operators like info and validate output information in the console and just pass the 3D city model to the next operator.

$ cjio example.json subset --id house12 info remove_materials info save out.json
$ cjio example.json remove_textures compress info
$ cjio example.json upgrade_version save new.json
$ cjio myfile.json merge '/home/elvis/temp/*.json' save all_merged.json

Validation of CityJSON files against the schema

To validate a CityJSON file against the schemas of CityJSON (this will automatically fetch the schemas for the version of CityJSON):

$ cjio myfile.json validate

If the file is too large (and thus validation is slow), an option is to crop a subset and just validate it:

$ cjio myfile.json subset --random 2 validate

If you want to use your own schemas, give the folder where the master schema file cityjson.json is located:

$ cjio example.json validate --folder_schemas /home/elvis/temp/myschemas/

Example CityJSON datasets

There are a few example files on the CityJSON webpage.

Alternatively, any CityGML file can be automatically converted to CityJSON with the open-source project citygml4j.

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

cjio-0.4.1.tar.gz (34.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cjio-0.4.1-py2.py3-none-any.whl (39.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cjio-0.4.1.tar.gz.

File metadata

  • Download URL: cjio-0.4.1.tar.gz
  • Upload date:
  • Size: 34.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5

File hashes

Hashes for cjio-0.4.1.tar.gz
Algorithm Hash digest
SHA256 0e305ef4096ea6104bf40c9d3dd7eadd98d896f9e1c34522a9a51e3fd447f1b2
MD5 9c1c91f9490540185260ab860a310a47
BLAKE2b-256 d75d49c830087fb1c8c2abeed7981f3e47fd2bedbadd22323e2e7c7dab9481e7

See more details on using hashes here.

File details

Details for the file cjio-0.4.1-py2.py3-none-any.whl.

File metadata

  • Download URL: cjio-0.4.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5

File hashes

Hashes for cjio-0.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8a0fa9bef27a94d8c6efdc92d20f8a4fc338a1a81bb27d6df0e6c4b1fe433d75
MD5 11c22e3cf6e5aa86e1626575795ddb4e
BLAKE2b-256 e303404c5fc76efd444acc4952adb1f2c251ecf1e6b3c2a335f94a50f6f8edb4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page