Skip to main content

License: GPL v3 pre-commit codecov

pyramids-citymodels

pyramids-citymodels reads and writes the file formats of semantic 3D city models — CityGML, CityJSON and more — as pyramids objects. pyramids-core already ships the GIS data model and the vector/raster operations that follow once features are in hand; what it does not do is open the city-model exchange formats. That is this package's job, and its only job.

What pyramids-core owns today, and this package therefore does not reimplement:

  • The GIS data model — the raster Dataset, the vector FeatureCollection, the datacube layer, and their GDAL/OGR-backed read/write.
  • Vector and geometry operations on features already in hand — reprojection, spatial joins, overlays, filtering, geometry predicates and spatial indexing.
  • Conversion — vector ↔ raster, feature extraction, and the GeoPackage / GeoJSON / shapefile round-trips GDAL/OGR provides.

What this package adds — file-format drivers for 3D city models, and nothing else:

  • Readers for the native exchange formats of 3D city modelling: CityGML, CityJSON, and the related tiled/interchange formats as they land.
  • Writers for the formats that support a faithful round-trip.
  • Discovery through the pyramids.vector_drivers entry-point group, so a read of a city-model file resolves to the driver that claims it once this package is installed.

Every GIS operation belongs upstream in pyramids-core. A driver parses a file and builds pyramids objects; it implements no GIS, no reprojection and no analysis.

Status — 0.1.0 is the repository scaffold: packaging, CI, docs and the import contract. No city-model API is published yet. Follow the change log for what lands.

Naming note — the distribution name is pyramids-citymodels (with hyphen), the Python import name is pyramids_citymodels (with underscore).

Installation

The package is not published yet. Install it from source with Pixi:

git clone https://github.com/serapeum-org/pyramids-citymodels.git
cd pyramids-citymodels
pixi install -e dev      # creates the dev environment
pixi shell -e dev

GDAL is not a dependency. The pyramids-core wheel vendors its own osgeo bindings, and import pyramids is what puts them on sys.path — which is why import pyramids is the first import in every module here.

Supported Python: 3.11–3.14.

Project layout

src/pyramids_citymodels/   — the package (import name: pyramids_citymodels)
tests/                     — pytest suite
docs/                      — MkDocs sources (MkDocs Material + mkdocstrings)
docs/examples/             — example notebooks, validated by `pixi run notebooks`
examples/data/             — data the notebooks read, via notebook-relative paths

Documentation

Development

This repository uses Pixi for environment management.

pixi run main          # main test suite
pixi run test-all      # everything, with a terminal coverage report
pixi run notebooks     # validate example notebooks
pre-commit run --all-files

Branches and commits follow Conventional Commits: branch <type>/<short-description>, PR title <type>: <imperative summary>. Releases are driven by commitizen (pixi run cz-bump) and the shared serapeum-org/github-actions workflows.

License

GNU General Public License v3 — see LICENSE.

Metadata

Release files for pyramids-citymodels 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyramids-citymodels 0.2.0
File Size Uploaded Provenance Actions
pyramids_citymodels-0.2.0.tar.gz 51.3 kB Without provenance Details for pyramids_citymodels-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyramids-citymodels 0.2.0
File Interpreter ABI Platform Actions
pyramids_citymodels-0.2.0-py3-none-any.whl Python 3 none any Details for pyramids_citymodels-0.2.0-py3-none-any.whl

Total release size: 91.8 kB

Release files / pyramids_citymodels-0.2.0.tar.gz

Download URL pyramids_citymodels-0.2.0.tar.gz
Size 51.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ef7b05aa6198c9a222fd3846e9a545a791e9446e0866f328bf384c9e5a3e8fe1
BLAKE2b-256 checksum
How to use checksums
1a9bf2529545b21aeec683cfebfa4b8db977da4a645890be4648b4d58647ba77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Release files / pyramids_citymodels-0.2.0-py3-none-any.whl

Download URL pyramids_citymodels-0.2.0-py3-none-any.whl
Size 40.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d3e4c80e44203afadd62b1fa7f520d39ec71647dd4087da1a912137543b537c
BLAKE2b-256 checksum
How to use checksums
4db31549730b7823051a147004ac395e5252606276870825976b837d58dde53a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Security for pyramids-citymodels 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page