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 vectorFeatureCollection, 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_driversentry-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.0is 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 ispyramids_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
- Live site: https://serapeum-org.github.io/pyramids-citymodels/latest/
- Local preview:
pixi run -e docs mkdocs serve
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.