Skip to main content

nyc-mesh

Actions Status Documentation Status PyPI version PyPI platforms

Python toolkit for converting NYC open 3D source data into web-ready geodata.

Authored by Blaise Albis-Burdige.

nyc-mesh focuses on the messy middle between raw public CityGML releases and practical outputs for browsers, notebooks, and reproducible analysis workflows.

What ships in the current line

The current package now includes a real official-data workflow:

  • load local or zip-wrapped official CityGML, LiDAR, DEM, and footprint inputs
  • fetch official PLUTO and building-footprint context for a chosen study-area bbox
  • reproject CityGML source coordinates from EPSG:2263 to EPSG:4326
  • clip buildings to named study areas or explicit WGS84 bounding boxes
  • join PLUTO-style attributes onto extracted buildings
  • generate lightweight terrain meshes from official DEM or LiDAR inputs
  • export GeoJSON, GeoParquet, glTF, and a minimal 3D Tiles package
  • build typed cache manifests for real study areas

Why this exists

NYC publishes unusually rich 3D geospatial data, but the raw formats are hard to use in practice. The source files are large, specialist, and awkward to transform into lightweight outputs for web rendering or neighborhood-scale analysis.

This package aims to make the first useful workflow feel like:

  1. point at a CityGML source file
  2. extract and clip the buildings you care about
  3. export web-friendly artifacts or analysis-ready files

Quickstart

Install:

pip install nyc-mesh

Export GeoJSON from a real CityGML source:

nyc-mesh export-geojson --input "C:/path/to/DA_WISE_GML.zip" --output buildings.geojson

Examples

examples/ now follows the same self-contained project pattern used by nyc311. Start with:

  • examples/quickstart-citygml/
  • examples/landmark-3d-stack/
  • examples/building-height-analysis/
  • examples/example-template/

Python example

from pathlib import Path

from nyc_mesh import models, pipeline

pipeline.export_citygml_geojson(
    Path("C:/path/to/DA_WISE_GML.zip"),
    Path("buildings.geojson"),
    bbox=models.BoundingBox(
        min_lat=40.70,
        min_lon=-74.02,
        max_lat=40.72,
        max_lon=-73.99,
    ),
)

Current assumptions

The official-data workflow is intentionally opinionated:

  • large CityGML / DEM / LiDAR archives stay out of git and are treated as local cache assets
  • only buildings with bldg:measuredHeight
  • source coordinates are treated as EPSG:2263
  • outputs are reprojected to EPSG:4326
  • optional clipping uses a WGS84 bounding box

PLUTO joins, real footprints, and terrain inputs are treated as practical building blocks, while the examples document exactly which official sources or local cache paths they need.

Documentation

Quick links

Docs: Home, Getting Started, CLI Reference, Pipeline Guide, Architecture, Examples, Python API, Contributing, Releasing, Changelog

Development

make install-dev
make test
make lint
make docs-build
make ci

License

MIT.

Metadata

Release files for nyc-mesh 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 nyc-mesh 0.2.0
File Size Uploaded
nyc_mesh-0.2.0.tar.gz 211.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nyc-mesh 0.2.0
File Interpreter ABI Platform
nyc_mesh-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 239.1 kB

Release files / nyc_mesh-0.2.0.tar.gz

Download URL nyc_mesh-0.2.0.tar.gz
Size 211.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0f7f69ee859d2e236a576af6d5eb92a75c83660e66dd16966a36822c0cc1ec1e
BLAKE2b-256 checksum
How to use checksums
5e98055798894902e75e53e51134df383462113f667c26d2180d52c4f9ccfb3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.

Transparency log

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

Download URL nyc_mesh-0.2.0-py3-none-any.whl
Size 27.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44bc47815679ed1a59deb19248d1aefc3555dd28824e67b72b500a1f6c91b85d
BLAKE2b-256 checksum
How to use checksums
50c7b50f3423a03adf30c8ad5bef1c3ccec37dbe264b413642d9a4b98074bb1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

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