Skip to main content

ObjectNat

Object-oriented Network Analysis Tools

Code style: black PyPI version Tests and coverage Coverage License Docs

РИДМИ (Russian)

ObjectNat logo

ObjectNat is an open-source library developed by the IDU team for spatial and network analysis in urban studies. The library provides tools for analyzing accessibility, visibility, noise propagation, and service provision.


Key Features

Each feature includes a Jupyter Notebook example and full documentation.

  1. Isochrones and Transport Accessibility

    Isochrones represent areas reachable from an origin point within a specified time along a transport network. This feature allows the analysis of transport accessibility using pedestrian, road, public transport, or multimodal UrbanGraph objects prepared by IduEdu.

    The library supports several methods for building isochrones:

    • Basic isochrones: display a single zone reachable within a specified time.

    • Step isochrones: divide the accessibility area into time intervals (e.g., 3, 5, 10 minutes).

    📘 Example 🔗 Documentation

  2. Graph Coverage Zones from Points

    A function for generating coverage areas from a set of origin points using a transport network. It computes the area reachable from each point by travel time or distance, then builds polygons using Voronoi diagrams and clips them by a given boundary if specified.

    📘 Example 🔗 Documentation

  3. Service Provision Analysis

    A function to evaluate how well residential buildings and their populations are provided with services (e.g., schools, clinics) that have limited capacity and a defined accessibility threshold (in minutes or meters). The function models the balance between supply and demand, assessing how well services meet the needs of nearby buildings within an acceptable time. ObjectNat 2.0 returns a structured ProvisionResult with a sparse flow matrix and materialization helpers for buildings, services, and link geometries.

    📘 Example 🔗 Documentation

  4. Visibility Analysis

    A function for evaluating visibility from a given point or set of points to nearby buildings within a given radius. It is used to assess visual accessibility in urban environments. The unified get_visibility API supports accurate and simplified methods, including parallel execution for batches of observer points.

    📘 Example 🔗 Documentation

  5. Noise Simulation & Noise Frame

    Simulation of noise propagation from sources, taking into account obstacles, vegetation, and environmental factors.

    📘 Example 🔗 Documentation 🧠 Detailed theory


City Graphs via IduEdu

For optimal performance, ObjectNat is recommended to be used with graphs created by the IduEdu library. Graph-based ObjectNat methods consume iduedu.UrbanGraph directly; ObjectNat does not build NetworkX graphs internally.

IduEdu is an open-source Python library designed for building and processing complex urban networks from OpenStreetMap and GTFS Schedule data.

IduEdu can be installed via pip:

pip install IduEdu

Example usage:

from iduedu import get_4326_boundary, get_intermodal_graph

poly = get_4326_boundary(osm_id=1114252)
urban_graph = get_intermodal_graph(territory=poly, clip_by_territory=True)

Installation

ObjectNat supports Python 3.11–3.14 on Windows, macOS, and Linux. It installs IduEdu 2.2.0 or newer within the 2.x series.

ObjectNat can be installed via pip:

pip install ObjectNat

Configuration

You can adjust logging and progress bar output using the config module:

from objectnat import config

config.change_logger_lvl("INFO")   # mute debug logs
config.set_enable_tqdm(False)      # disable tqdm progress bars

Migration to ObjectNat 2.0

ObjectNat 2.0 replaces NetworkX-based graph inputs with iduedu.UrbanGraph, renames accessibility functions, and returns ProvisionResult from service provision. See the migration guide in the documentation: Migration 1.x to 2.0.


Contacts


Citing ObjectNat

If you use ObjectNat in research, please cite it. Citation metadata is kept in CITATION.cff; on GitHub, Cite this repository in the repository sidebar copies it as APA or BibTeX. Publications describing ObjectNat will be listed below.

Publications

Coming soon.

Metadata

Release files for ObjectNat 2.1.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 ObjectNat 2.1.0
File Size Uploaded
objectnat-2.1.0.tar.gz 38.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ObjectNat 2.1.0
File Interpreter ABI Platform
objectnat-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 87.6 kB

Release files / objectnat-2.1.0.tar.gz

Download URL objectnat-2.1.0.tar.gz
Size 38.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5e420b27d4a6c8a9b2f7ab5f4dc7faba632b963477a53b72cd1b34f3d847eb35
BLAKE2b-256 checksum
How to use checksums
a796d6596fac8bdf060fd8ff9de218aaae7fc8e2840f2edb1c541d13941c6ba0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release files / objectnat-2.1.0-py3-none-any.whl

Download URL objectnat-2.1.0-py3-none-any.whl
Size 48.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
732fbb60c295e17f03b28c6498b79ee87d24bad9f05d610124f6d843b3feb31f
BLAKE2b-256 checksum
How to use checksums
8aab16369ad0929825be0d9bf388a8277f59dac6b45db9e489c583f23e868453
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.3

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