ObjectNat

Object-oriented Network Analysis Tools

ObjectNat — an open-source Python library for object-oriented network analysis and spatial accessibility modeling, developed by the IDU team at ITMO University.

Code style: black PyPI version CI Coverage License GitHub


Overview

ObjectNat extends standard network analysis with a focus on object-level geospatial computation. It provides a unified set of tools for analyzing coverage, provision, accessibility, visibility, noise simulation, and spatial clustering — all based on graph connectivity.

The library integrates seamlessly with: - GeoPandas, Shapely, and NetworkX for spatial operations; - IduEdu for graph preparation and multimodal routing; - Python’s scientific ecosystem (NumPy, Pandas, Matplotlib, etc).


Features


Installation

` pip install objectnat `

  • > Requires Python 3.11+ and the standard geospatial stack

  • > (Pandas, GeoPandas, Shapely, NetworkX, NumPy).


Quickstart

To ensure optimal performance of ObjectNat’s geospatial analysis functions, it’s recommended to utilize urban graphs sourced from the IduEdu library. IduEdu is an open-source Python library designed for the creation and manipulation of complex city networks derived from OpenStreetMap data.

# Install required packages (uncomment if needed)
# !pip install iduedu objectnat

from iduedu import get_4326_boundary, get_intermodal_graph
from objectnat import get_accessibility_isochrones

# Load boundary and build graph for a region (OSM ID 1114252)
poly = get_4326_boundary(osm_id=1114252)
G = get_intermodal_graph(territory=poly, clip_by_territory=True)

# Compute accessibility isochrones from several points
 stepped_isochrone, pt_stops, pt_routes = get_accessibility_isochrone_stepped(
     isochrone_type='separate',
     point=point,
     weight_type="time_min",
     weight_value=10,
     nx_graph=G_intermodal,
     step=2
 )

stepped_isochrone.explore()

> Contributions are very welcome! > Open an issue or PR on GitHub to suggest new features or improvements.


Contacts


License

This project is open-source. See the LICENSE.txt file for details.


Publications

Coming soon…