ObjectNat 1.3.2__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {objectnat-1.3.2 → objectnat-1.4.0}/LICENSE.txt +28 -28
- {objectnat-1.3.2 → objectnat-1.4.0}/PKG-INFO +3 -2
- {objectnat-1.3.2 → objectnat-1.4.0}/README.rst +179 -179
- {objectnat-1.3.2 → objectnat-1.4.0}/pyproject.toml +80 -80
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/__init__.py +9 -9
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/_api.py +9 -14
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/_config.py +43 -43
- objectnat-1.4.0/src/objectnat/_version.py +1 -0
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/coverage_zones/__init__.py +3 -3
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/coverage_zones/graph_coverage.py +105 -105
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/coverage_zones/radius_voronoi_coverage.py +39 -39
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/coverage_zones/stepped_coverage.py +136 -136
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/isochrones/__init__.py +1 -1
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/isochrones/isochrone_utils.py +167 -167
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/isochrones/isochrones.py +282 -282
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/noise/__init__.py +3 -3
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/noise/noise_init_data.py +10 -10
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/noise/noise_reduce.py +155 -155
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/noise/noise_simulation.py +454 -453
- objectnat-1.4.0/src/objectnat/methods/noise/noise_simulation_simplified.py +278 -0
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/point_clustering/__init__.py +1 -1
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/point_clustering/cluster_points_in_polygons.py +115 -115
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/provision/__init__.py +1 -1
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/provision/provision.py +213 -213
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/provision/provision_exceptions.py +59 -59
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/provision/provision_model.py +323 -323
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/utils/__init__.py +1 -1
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/utils/geom_utils.py +173 -173
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/utils/graph_utils.py +306 -306
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/utils/math_utils.py +32 -32
- objectnat-1.4.0/src/objectnat/methods/visibility/__init__.py +1 -0
- objectnat-1.4.0/src/objectnat/methods/visibility/visibility_analysis.py +671 -0
- objectnat-1.3.2/src/objectnat/_version.py +0 -1
- objectnat-1.3.2/src/objectnat/methods/noise/noise_simulation_simplified.py +0 -210
- objectnat-1.3.2/src/objectnat/methods/visibility/__init__.py +0 -6
- objectnat-1.3.2/src/objectnat/methods/visibility/visibility_analysis.py +0 -485
- {objectnat-1.3.2 → objectnat-1.4.0}/src/objectnat/methods/__init__.py +0 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
BSD 3-Clause License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023, iduprojects
|
|
4
|
-
|
|
5
|
-
Redistribution and use in source and binary forms, with or without
|
|
6
|
-
modification, are permitted provided that the following conditions are met:
|
|
7
|
-
|
|
8
|
-
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
-
list of conditions and the following disclaimer.
|
|
10
|
-
|
|
11
|
-
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
-
this list of conditions and the following disclaimer in the documentation
|
|
13
|
-
and/or other materials provided with the distribution.
|
|
14
|
-
|
|
15
|
-
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
-
contributors may be used to endorse or promote products derived from
|
|
17
|
-
this software without specific prior written permission.
|
|
18
|
-
|
|
19
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023, iduprojects
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: ObjectNat
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: ObjectNat is an open-source library created for geospatial analysis created by IDU team
|
|
5
5
|
License: BSD-3-Clause
|
|
6
|
+
License-File: LICENSE.txt
|
|
6
7
|
Author: DDonnyy
|
|
7
8
|
Author-email: 63115678+DDonnyy@users.noreply.github.com
|
|
8
9
|
Requires-Python: >=3.11,<3.13
|
|
@@ -1,179 +1,179 @@
|
|
|
1
|
-
ObjectNat
|
|
2
|
-
=========
|
|
3
|
-
|
|
4
|
-
Object-oriented Network Analysis Tools
|
|
5
|
-
--------------------------------------
|
|
6
|
-
|
|
7
|
-
.. |badge-black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
|
8
|
-
:target: https://github.com/psf/black
|
|
9
|
-
:alt: Code style: black
|
|
10
|
-
|
|
11
|
-
.. |badge-pypi| image:: https://img.shields.io/pypi/v/objectnat.svg
|
|
12
|
-
:target: https://pypi.org/project/objectnat/
|
|
13
|
-
:alt: PyPI version
|
|
14
|
-
|
|
15
|
-
.. |badge-ci| image:: https://github.com/IDUclub/ObjectNat/actions/workflows/ci_pipeline.yml/badge.svg
|
|
16
|
-
:target: https://github.com/IDUclub/ObjectNat/actions/workflows/ci_pipeline.yml
|
|
17
|
-
:alt: CI
|
|
18
|
-
|
|
19
|
-
.. |badge-codecov| image:: https://codecov.io/gh/DDonnyy/ObjectNat/graph/badge.svg?token=K6JFSJ02GU
|
|
20
|
-
:target: https://codecov.io/gh/DDonnyy/ObjectNat
|
|
21
|
-
:alt: Coverage
|
|
22
|
-
|
|
23
|
-
.. |badge-license| image:: https://img.shields.io/badge/license-BSD--3--Clause-blue.svg
|
|
24
|
-
:target: https://opensource.org/licenses/BSD-3-Clause
|
|
25
|
-
:alt: License
|
|
26
|
-
|
|
27
|
-
.. |badge-docs| image:: https://img.shields.io/badge/docs-latest-4aa0d5?logo=readthedocs
|
|
28
|
-
:target: https://iduclub.github.io/ObjectNat/
|
|
29
|
-
:alt: Docs
|
|
30
|
-
|
|
31
|
-
|badge-black| |badge-pypi| |badge-ci| |badge-codecov| |badge-license| |badge-docs|
|
|
32
|
-
|
|
33
|
-
`РИДМИ (Russian) <https://github.com/IDUclub/ObjectNat/blob/master/README_RU.rst>`__
|
|
34
|
-
|
|
35
|
-
.. image:: https://raw.githubusercontent.com/IDUclub/ObjectNat/master/docs/_static/ONlogo.svg
|
|
36
|
-
:align: center
|
|
37
|
-
:width: 400
|
|
38
|
-
:alt: ObjectNat logo
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
**ObjectNat** is an open-source library developed by the **IDU** team
|
|
42
|
-
for spatial and network analysis in urban studies.
|
|
43
|
-
The library provides tools for analyzing **accessibility**, **visibility**,
|
|
44
|
-
**noise propagation**, and **service provision**.
|
|
45
|
-
----
|
|
46
|
-
|
|
47
|
-
Key Features
|
|
48
|
-
------------
|
|
49
|
-
|
|
50
|
-
Each feature includes a **Jupyter Notebook example** and **full documentation**.
|
|
51
|
-
|
|
52
|
-
1. **Isochrones and Transport Accessibility**
|
|
53
|
-
|
|
54
|
-
Isochrones represent areas reachable from an origin point within a specified time along a transport network.
|
|
55
|
-
This feature allows the analysis of transport accessibility using pedestrian, road,
|
|
56
|
-
public transport, or multimodal graphs.
|
|
57
|
-
|
|
58
|
-
The library supports several methods for building isochrones:
|
|
59
|
-
|
|
60
|
-
- **Basic isochrones**: display a single zone reachable within a specified time.
|
|
61
|
-
- **Step isochrones**: divide the accessibility area into time intervals (e.g., 3, 5, 10 minutes).
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/isochrones.html>`__
|
|
65
|
-
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/isochrones.html>`__
|
|
66
|
-
|
|
67
|
-
2. **Graph Coverage Zones from Points**
|
|
68
|
-
|
|
69
|
-
A function for generating **coverage areas** from a set of origin points using a transport network.
|
|
70
|
-
It computes the area reachable from each point by **travel time** or **distance**,
|
|
71
|
-
then builds polygons using **Voronoi diagrams** and clips them by a given boundary if specified.
|
|
72
|
-
|
|
73
|
-
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/coverage.html>`__
|
|
74
|
-
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/coverage.html>`__
|
|
75
|
-
|
|
76
|
-
3. **Service Provision Analysis**
|
|
77
|
-
|
|
78
|
-
A function to evaluate how well residential buildings and their populations are provided
|
|
79
|
-
with services (e.g., schools, clinics) that have limited **capacity**
|
|
80
|
-
and a defined **accessibility threshold** (in minutes or meters).
|
|
81
|
-
The function models the **balance between supply and demand**,
|
|
82
|
-
assessing how well services meet the needs of nearby buildings within an acceptable time.
|
|
83
|
-
|
|
84
|
-
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/provision.html>`__
|
|
85
|
-
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/provision.html>`__
|
|
86
|
-
|
|
87
|
-
4. **Visibility Analysis**
|
|
88
|
-
|
|
89
|
-
A function for evaluating visibility from a given point or set of points to nearby buildings within a given radius.
|
|
90
|
-
It is used to assess visual accessibility in urban environments.
|
|
91
|
-
A module is also implemented for computing **visibility coverage zones**
|
|
92
|
-
using a dense observer grid (recommended ~1000 points with a 10–20 m spacing).
|
|
93
|
-
Points can be generated along the transport network and distributed across its edges.
|
|
94
|
-
|
|
95
|
-
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/visibility.html>`__
|
|
96
|
-
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/visibility.html>`__
|
|
97
|
-
|
|
98
|
-
5. **Noise Simulation & Noise Frame**
|
|
99
|
-
|
|
100
|
-
Simulation of noise propagation from sources, taking into account **obstacles**, **vegetation**,
|
|
101
|
-
and **environmental factors**.
|
|
102
|
-
|
|
103
|
-
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/noise.html>`__
|
|
104
|
-
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/noise.html>`__
|
|
105
|
-
🧠 `Detailed theory <https://github.com/DDonnyy/ObjectNat/wiki/Noise-simulation>`__
|
|
106
|
-
|
|
107
|
-
6. **Point Clusterization**
|
|
108
|
-
|
|
109
|
-
A function for constructing **cluster polygons** based on a set of points using:
|
|
110
|
-
|
|
111
|
-
- Minimum **distance** between points.
|
|
112
|
-
- Minimum **number of points** in a cluster.
|
|
113
|
-
|
|
114
|
-
The function can also compute the **ratio of service types** in each cluster
|
|
115
|
-
for spatial analysis of service composition.
|
|
116
|
-
|
|
117
|
-
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/clustering.html>`__
|
|
118
|
-
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/clustering.html>`__
|
|
119
|
-
|
|
120
|
-
----
|
|
121
|
-
|
|
122
|
-
City Graphs via *IduEdu*
|
|
123
|
-
------------------------
|
|
124
|
-
|
|
125
|
-
For optimal performance, **ObjectNat** is recommended to be used with graphs
|
|
126
|
-
created by the `IduEdu <https://github.com/IDUclub/IduEdu>`_ library.
|
|
127
|
-
|
|
128
|
-
**IduEdu** is an open-source Python library designed for building and processing
|
|
129
|
-
complex urban networks based on OpenStreetMap data.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
**IduEdu** can be installed via ``pip``::
|
|
133
|
-
|
|
134
|
-
pip install IduEdu
|
|
135
|
-
|
|
136
|
-
Example usage::
|
|
137
|
-
|
|
138
|
-
from iduedu import get_4326_boundary, get_intermodal_graph
|
|
139
|
-
|
|
140
|
-
poly = get_4326_boundary(osm_id=1114252)
|
|
141
|
-
G_intermodal = get_intermodal_graph(territory=poly, clip_by_territory=True)
|
|
142
|
-
|
|
143
|
-
----
|
|
144
|
-
|
|
145
|
-
Installation
|
|
146
|
-
------------
|
|
147
|
-
|
|
148
|
-
**ObjectNat** can be installed via ``pip``::
|
|
149
|
-
|
|
150
|
-
pip install ObjectNat
|
|
151
|
-
|
|
152
|
-
----
|
|
153
|
-
|
|
154
|
-
Configuration
|
|
155
|
-
-------------
|
|
156
|
-
|
|
157
|
-
You can adjust logging and progress bar output using the config module::
|
|
158
|
-
|
|
159
|
-
from objectnat import config
|
|
160
|
-
|
|
161
|
-
config.change_logger_lvl("INFO") # mute debug logs
|
|
162
|
-
config.set_enable_tqdm(False) # disable tqdm progress bars
|
|
163
|
-
|
|
164
|
-
----
|
|
165
|
-
|
|
166
|
-
Contacts
|
|
167
|
-
--------
|
|
168
|
-
|
|
169
|
-
- `NCCR <https://actcognitive.org/>`_ — National Center for Cognitive Research
|
|
170
|
-
- `IDU <https://idu.itmo.ru/>`_ — Institute of Design and Urban Studies
|
|
171
|
-
- `Natalya Chichkova <https://t.me/nancy_nat>`_ — Project Manager
|
|
172
|
-
- `Danila Oleynikov (Donny) <https://t.me/ddonny_dd>`_ — Lead Software Engineer
|
|
173
|
-
|
|
174
|
-
----
|
|
175
|
-
|
|
176
|
-
Publications
|
|
177
|
-
------------
|
|
178
|
-
|
|
179
|
-
Coming soon.
|
|
1
|
+
ObjectNat
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
Object-oriented Network Analysis Tools
|
|
5
|
+
--------------------------------------
|
|
6
|
+
|
|
7
|
+
.. |badge-black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
|
8
|
+
:target: https://github.com/psf/black
|
|
9
|
+
:alt: Code style: black
|
|
10
|
+
|
|
11
|
+
.. |badge-pypi| image:: https://img.shields.io/pypi/v/objectnat.svg
|
|
12
|
+
:target: https://pypi.org/project/objectnat/
|
|
13
|
+
:alt: PyPI version
|
|
14
|
+
|
|
15
|
+
.. |badge-ci| image:: https://github.com/IDUclub/ObjectNat/actions/workflows/ci_pipeline.yml/badge.svg
|
|
16
|
+
:target: https://github.com/IDUclub/ObjectNat/actions/workflows/ci_pipeline.yml
|
|
17
|
+
:alt: CI
|
|
18
|
+
|
|
19
|
+
.. |badge-codecov| image:: https://codecov.io/gh/DDonnyy/ObjectNat/graph/badge.svg?token=K6JFSJ02GU
|
|
20
|
+
:target: https://codecov.io/gh/DDonnyy/ObjectNat
|
|
21
|
+
:alt: Coverage
|
|
22
|
+
|
|
23
|
+
.. |badge-license| image:: https://img.shields.io/badge/license-BSD--3--Clause-blue.svg
|
|
24
|
+
:target: https://opensource.org/licenses/BSD-3-Clause
|
|
25
|
+
:alt: License
|
|
26
|
+
|
|
27
|
+
.. |badge-docs| image:: https://img.shields.io/badge/docs-latest-4aa0d5?logo=readthedocs
|
|
28
|
+
:target: https://iduclub.github.io/ObjectNat/
|
|
29
|
+
:alt: Docs
|
|
30
|
+
|
|
31
|
+
|badge-black| |badge-pypi| |badge-ci| |badge-codecov| |badge-license| |badge-docs|
|
|
32
|
+
|
|
33
|
+
`РИДМИ (Russian) <https://github.com/IDUclub/ObjectNat/blob/master/README_RU.rst>`__
|
|
34
|
+
|
|
35
|
+
.. image:: https://raw.githubusercontent.com/IDUclub/ObjectNat/master/docs/_static/ONlogo.svg
|
|
36
|
+
:align: center
|
|
37
|
+
:width: 400
|
|
38
|
+
:alt: ObjectNat logo
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
**ObjectNat** is an open-source library developed by the **IDU** team
|
|
42
|
+
for spatial and network analysis in urban studies.
|
|
43
|
+
The library provides tools for analyzing **accessibility**, **visibility**,
|
|
44
|
+
**noise propagation**, and **service provision**.
|
|
45
|
+
----
|
|
46
|
+
|
|
47
|
+
Key Features
|
|
48
|
+
------------
|
|
49
|
+
|
|
50
|
+
Each feature includes a **Jupyter Notebook example** and **full documentation**.
|
|
51
|
+
|
|
52
|
+
1. **Isochrones and Transport Accessibility**
|
|
53
|
+
|
|
54
|
+
Isochrones represent areas reachable from an origin point within a specified time along a transport network.
|
|
55
|
+
This feature allows the analysis of transport accessibility using pedestrian, road,
|
|
56
|
+
public transport, or multimodal graphs.
|
|
57
|
+
|
|
58
|
+
The library supports several methods for building isochrones:
|
|
59
|
+
|
|
60
|
+
- **Basic isochrones**: display a single zone reachable within a specified time.
|
|
61
|
+
- **Step isochrones**: divide the accessibility area into time intervals (e.g., 3, 5, 10 minutes).
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/isochrones.html>`__
|
|
65
|
+
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/isochrones.html>`__
|
|
66
|
+
|
|
67
|
+
2. **Graph Coverage Zones from Points**
|
|
68
|
+
|
|
69
|
+
A function for generating **coverage areas** from a set of origin points using a transport network.
|
|
70
|
+
It computes the area reachable from each point by **travel time** or **distance**,
|
|
71
|
+
then builds polygons using **Voronoi diagrams** and clips them by a given boundary if specified.
|
|
72
|
+
|
|
73
|
+
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/coverage.html>`__
|
|
74
|
+
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/coverage.html>`__
|
|
75
|
+
|
|
76
|
+
3. **Service Provision Analysis**
|
|
77
|
+
|
|
78
|
+
A function to evaluate how well residential buildings and their populations are provided
|
|
79
|
+
with services (e.g., schools, clinics) that have limited **capacity**
|
|
80
|
+
and a defined **accessibility threshold** (in minutes or meters).
|
|
81
|
+
The function models the **balance between supply and demand**,
|
|
82
|
+
assessing how well services meet the needs of nearby buildings within an acceptable time.
|
|
83
|
+
|
|
84
|
+
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/provision.html>`__
|
|
85
|
+
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/provision.html>`__
|
|
86
|
+
|
|
87
|
+
4. **Visibility Analysis**
|
|
88
|
+
|
|
89
|
+
A function for evaluating visibility from a given point or set of points to nearby buildings within a given radius.
|
|
90
|
+
It is used to assess visual accessibility in urban environments.
|
|
91
|
+
A module is also implemented for computing **visibility coverage zones**
|
|
92
|
+
using a dense observer grid (recommended ~1000 points with a 10–20 m spacing).
|
|
93
|
+
Points can be generated along the transport network and distributed across its edges.
|
|
94
|
+
|
|
95
|
+
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/visibility.html>`__
|
|
96
|
+
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/visibility.html>`__
|
|
97
|
+
|
|
98
|
+
5. **Noise Simulation & Noise Frame**
|
|
99
|
+
|
|
100
|
+
Simulation of noise propagation from sources, taking into account **obstacles**, **vegetation**,
|
|
101
|
+
and **environmental factors**.
|
|
102
|
+
|
|
103
|
+
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/noise.html>`__
|
|
104
|
+
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/noise.html>`__
|
|
105
|
+
🧠 `Detailed theory <https://github.com/DDonnyy/ObjectNat/wiki/Noise-simulation>`__
|
|
106
|
+
|
|
107
|
+
6. **Point Clusterization**
|
|
108
|
+
|
|
109
|
+
A function for constructing **cluster polygons** based on a set of points using:
|
|
110
|
+
|
|
111
|
+
- Minimum **distance** between points.
|
|
112
|
+
- Minimum **number of points** in a cluster.
|
|
113
|
+
|
|
114
|
+
The function can also compute the **ratio of service types** in each cluster
|
|
115
|
+
for spatial analysis of service composition.
|
|
116
|
+
|
|
117
|
+
📘 `Example <https://iduclub.github.io/ObjectNat/methods/examples/clustering.html>`__
|
|
118
|
+
🔗 `Documentation <https://iduclub.github.io/ObjectNat/methods/clustering.html>`__
|
|
119
|
+
|
|
120
|
+
----
|
|
121
|
+
|
|
122
|
+
City Graphs via *IduEdu*
|
|
123
|
+
------------------------
|
|
124
|
+
|
|
125
|
+
For optimal performance, **ObjectNat** is recommended to be used with graphs
|
|
126
|
+
created by the `IduEdu <https://github.com/IDUclub/IduEdu>`_ library.
|
|
127
|
+
|
|
128
|
+
**IduEdu** is an open-source Python library designed for building and processing
|
|
129
|
+
complex urban networks based on OpenStreetMap data.
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
**IduEdu** can be installed via ``pip``::
|
|
133
|
+
|
|
134
|
+
pip install IduEdu
|
|
135
|
+
|
|
136
|
+
Example usage::
|
|
137
|
+
|
|
138
|
+
from iduedu import get_4326_boundary, get_intermodal_graph
|
|
139
|
+
|
|
140
|
+
poly = get_4326_boundary(osm_id=1114252)
|
|
141
|
+
G_intermodal = get_intermodal_graph(territory=poly, clip_by_territory=True)
|
|
142
|
+
|
|
143
|
+
----
|
|
144
|
+
|
|
145
|
+
Installation
|
|
146
|
+
------------
|
|
147
|
+
|
|
148
|
+
**ObjectNat** can be installed via ``pip``::
|
|
149
|
+
|
|
150
|
+
pip install ObjectNat
|
|
151
|
+
|
|
152
|
+
----
|
|
153
|
+
|
|
154
|
+
Configuration
|
|
155
|
+
-------------
|
|
156
|
+
|
|
157
|
+
You can adjust logging and progress bar output using the config module::
|
|
158
|
+
|
|
159
|
+
from objectnat import config
|
|
160
|
+
|
|
161
|
+
config.change_logger_lvl("INFO") # mute debug logs
|
|
162
|
+
config.set_enable_tqdm(False) # disable tqdm progress bars
|
|
163
|
+
|
|
164
|
+
----
|
|
165
|
+
|
|
166
|
+
Contacts
|
|
167
|
+
--------
|
|
168
|
+
|
|
169
|
+
- `NCCR <https://actcognitive.org/>`_ — National Center for Cognitive Research
|
|
170
|
+
- `IDU <https://idu.itmo.ru/>`_ — Institute of Design and Urban Studies
|
|
171
|
+
- `Natalya Chichkova <https://t.me/nancy_nat>`_ — Project Manager
|
|
172
|
+
- `Danila Oleynikov (Donny) <https://t.me/ddonny_dd>`_ — Lead Software Engineer
|
|
173
|
+
|
|
174
|
+
----
|
|
175
|
+
|
|
176
|
+
Publications
|
|
177
|
+
------------
|
|
178
|
+
|
|
179
|
+
Coming soon.
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
[tool.poetry]
|
|
2
|
-
name = "ObjectNat"
|
|
3
|
-
version = "1.
|
|
4
|
-
description = "ObjectNat is an open-source library created for geospatial analysis created by IDU team"
|
|
5
|
-
license = "BSD-3-Clause"
|
|
6
|
-
authors = ["DDonnyy <63115678+DDonnyy@users.noreply.github.com>"]
|
|
7
|
-
readme = "README.rst"
|
|
8
|
-
|
|
9
|
-
packages = [{ include = "objectnat", from = "src" }]
|
|
10
|
-
|
|
11
|
-
[tool.poetry.dependencies]
|
|
12
|
-
python = ">=3.11,<3.13"
|
|
13
|
-
numpy = "^2.1.3"
|
|
14
|
-
pandas = "^2.2.0"
|
|
15
|
-
geopandas = "^1.0.1"
|
|
16
|
-
tqdm = "^4.66.2"
|
|
17
|
-
networkx = "^3.4.2"
|
|
18
|
-
scikit-learn = "^1.4.0"
|
|
19
|
-
loguru = "^0.7.3"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
[tool.poetry.group.test.dependencies]
|
|
23
|
-
pytest = "^8.3.5"
|
|
24
|
-
pytest-cov = "^6.0.0"
|
|
25
|
-
folium = "^0.19.5"
|
|
26
|
-
matplotlib = "^3.10.1"
|
|
27
|
-
mapclassify = "^2.8.1"
|
|
28
|
-
iduedu = "^1.0.0"
|
|
29
|
-
|
|
30
|
-
[tool.poetry.group.dev.dependencies]
|
|
31
|
-
pyarrow = "^19.0.1"
|
|
32
|
-
black = "^24.2.0"
|
|
33
|
-
pylint = "^3.0.3"
|
|
34
|
-
isort = "^5.13.2"
|
|
35
|
-
jupyter = "^1.0.0"
|
|
36
|
-
pre-commit = "^4.2.0"
|
|
37
|
-
|
|
38
|
-
[tool.poetry.group.docs.dependencies]
|
|
39
|
-
sphinx = "^8.0.0"
|
|
40
|
-
furo = "^2025.9.25"
|
|
41
|
-
myst-nb = "^1.1.0"
|
|
42
|
-
sphinx-autodoc-typehints = "^3.2.0"
|
|
43
|
-
sphinx-copybutton = "^0.5.2"
|
|
44
|
-
sphinx-design = "^0.6.0"
|
|
45
|
-
myst-parser = "^4.0.1"
|
|
46
|
-
linkify-it-py = "^2.0.3"
|
|
47
|
-
|
|
48
|
-
[build-system]
|
|
49
|
-
requires = ["poetry-core"]
|
|
50
|
-
build-backend = "poetry.core.masonry.api"
|
|
51
|
-
|
|
52
|
-
[tool.black]
|
|
53
|
-
line-length = 120
|
|
54
|
-
target-version = ['py311']
|
|
55
|
-
|
|
56
|
-
[tool.pylint.format]
|
|
57
|
-
max-line-length = 120
|
|
58
|
-
expected-line-ending-format = "LF"
|
|
59
|
-
max-locals = 20
|
|
60
|
-
extension-pkg-allow-list = ["networkit"]
|
|
61
|
-
disable = [
|
|
62
|
-
"duplicate-code",
|
|
63
|
-
"too-many-positional-arguments",
|
|
64
|
-
"missing-module-docstring",
|
|
65
|
-
"missing-function-docstring",
|
|
66
|
-
"too-many-locals",
|
|
67
|
-
"too-many-branches",
|
|
68
|
-
"too-many-statements",
|
|
69
|
-
"too-many-arguments",
|
|
70
|
-
"cyclic-import"
|
|
71
|
-
]
|
|
72
|
-
|
|
73
|
-
[tool.isort]
|
|
74
|
-
multi_line_output = 3
|
|
75
|
-
include_trailing_comma = true
|
|
76
|
-
force_grid_wrap = 0
|
|
77
|
-
use_parentheses = true
|
|
78
|
-
ensure_newline_before_comments = true
|
|
79
|
-
line_length = 120
|
|
80
|
-
split_on_trailing_comma = true
|
|
1
|
+
[tool.poetry]
|
|
2
|
+
name = "ObjectNat"
|
|
3
|
+
version = "1.4.0"
|
|
4
|
+
description = "ObjectNat is an open-source library created for geospatial analysis created by IDU team"
|
|
5
|
+
license = "BSD-3-Clause"
|
|
6
|
+
authors = ["DDonnyy <63115678+DDonnyy@users.noreply.github.com>"]
|
|
7
|
+
readme = "README.rst"
|
|
8
|
+
|
|
9
|
+
packages = [{ include = "objectnat", from = "src" }]
|
|
10
|
+
|
|
11
|
+
[tool.poetry.dependencies]
|
|
12
|
+
python = ">=3.11,<3.13"
|
|
13
|
+
numpy = "^2.1.3"
|
|
14
|
+
pandas = "^2.2.0"
|
|
15
|
+
geopandas = "^1.0.1"
|
|
16
|
+
tqdm = "^4.66.2"
|
|
17
|
+
networkx = "^3.4.2"
|
|
18
|
+
scikit-learn = "^1.4.0"
|
|
19
|
+
loguru = "^0.7.3"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
[tool.poetry.group.test.dependencies]
|
|
23
|
+
pytest = "^8.3.5"
|
|
24
|
+
pytest-cov = "^6.0.0"
|
|
25
|
+
folium = "^0.19.5"
|
|
26
|
+
matplotlib = "^3.10.1"
|
|
27
|
+
mapclassify = "^2.8.1"
|
|
28
|
+
iduedu = "^1.0.0"
|
|
29
|
+
|
|
30
|
+
[tool.poetry.group.dev.dependencies]
|
|
31
|
+
pyarrow = "^19.0.1"
|
|
32
|
+
black = "^24.2.0"
|
|
33
|
+
pylint = "^3.0.3"
|
|
34
|
+
isort = "^5.13.2"
|
|
35
|
+
jupyter = "^1.0.0"
|
|
36
|
+
pre-commit = "^4.2.0"
|
|
37
|
+
|
|
38
|
+
[tool.poetry.group.docs.dependencies]
|
|
39
|
+
sphinx = "^8.0.0"
|
|
40
|
+
furo = "^2025.9.25"
|
|
41
|
+
myst-nb = "^1.1.0"
|
|
42
|
+
sphinx-autodoc-typehints = "^3.2.0"
|
|
43
|
+
sphinx-copybutton = "^0.5.2"
|
|
44
|
+
sphinx-design = "^0.6.0"
|
|
45
|
+
myst-parser = "^4.0.1"
|
|
46
|
+
linkify-it-py = "^2.0.3"
|
|
47
|
+
|
|
48
|
+
[build-system]
|
|
49
|
+
requires = ["poetry-core"]
|
|
50
|
+
build-backend = "poetry.core.masonry.api"
|
|
51
|
+
|
|
52
|
+
[tool.black]
|
|
53
|
+
line-length = 120
|
|
54
|
+
target-version = ['py311']
|
|
55
|
+
|
|
56
|
+
[tool.pylint.format]
|
|
57
|
+
max-line-length = 120
|
|
58
|
+
expected-line-ending-format = "LF"
|
|
59
|
+
max-locals = 20
|
|
60
|
+
extension-pkg-allow-list = ["networkit"]
|
|
61
|
+
disable = [
|
|
62
|
+
"duplicate-code",
|
|
63
|
+
"too-many-positional-arguments",
|
|
64
|
+
"missing-module-docstring",
|
|
65
|
+
"missing-function-docstring",
|
|
66
|
+
"too-many-locals",
|
|
67
|
+
"too-many-branches",
|
|
68
|
+
"too-many-statements",
|
|
69
|
+
"too-many-arguments",
|
|
70
|
+
"cyclic-import"
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
[tool.isort]
|
|
74
|
+
multi_line_output = 3
|
|
75
|
+
include_trailing_comma = true
|
|
76
|
+
force_grid_wrap = 0
|
|
77
|
+
use_parentheses = true
|
|
78
|
+
ensure_newline_before_comments = true
|
|
79
|
+
line_length = 120
|
|
80
|
+
split_on_trailing_comma = true
|
|
81
81
|
skip = ["__init__.py"]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"""
|
|
2
|
-
ObjectNat is an open-source library created for geospatial analysis created by IDU team.
|
|
3
|
-
|
|
4
|
-
Homepage https://github.com/DDonnyy/ObjectNat.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from ._config import config
|
|
8
|
-
from ._api import *
|
|
9
|
-
from ._version import VERSION as __version__
|
|
1
|
+
"""
|
|
2
|
+
ObjectNat is an open-source library created for geospatial analysis created by IDU team.
|
|
3
|
+
|
|
4
|
+
Homepage https://github.com/DDonnyy/ObjectNat.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ._config import config
|
|
8
|
+
from ._api import *
|
|
9
|
+
from ._version import VERSION as __version__
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
# pylint: disable=unused-import,wildcard-import,unused-wildcard-import
|
|
2
|
-
|
|
3
|
-
from .methods.coverage_zones import get_graph_coverage, get_radius_coverage, get_stepped_graph_coverage
|
|
4
|
-
from .methods.isochrones import get_accessibility_isochrone_stepped, get_accessibility_isochrones
|
|
5
|
-
from .methods.noise import calculate_simplified_noise_frame, simulate_noise
|
|
6
|
-
from .methods.point_clustering import get_clusters_polygon
|
|
7
|
-
from .methods.provision import clip_provision, get_service_provision, recalculate_links
|
|
8
|
-
from .methods.utils import gdf_to_graph, graph_to_gdf
|
|
9
|
-
from .methods.visibility import
|
|
10
|
-
calculate_visibility_catchment_area,
|
|
11
|
-
get_visibilities_from_points,
|
|
12
|
-
get_visibility,
|
|
13
|
-
get_visibility_accurate,
|
|
14
|
-
)
|
|
1
|
+
# pylint: disable=unused-import,wildcard-import,unused-wildcard-import
|
|
2
|
+
|
|
3
|
+
from .methods.coverage_zones import get_graph_coverage, get_radius_coverage, get_stepped_graph_coverage
|
|
4
|
+
from .methods.isochrones import get_accessibility_isochrone_stepped, get_accessibility_isochrones
|
|
5
|
+
from .methods.noise import calculate_simplified_noise_frame, simulate_noise
|
|
6
|
+
from .methods.point_clustering import get_clusters_polygon
|
|
7
|
+
from .methods.provision import clip_provision, get_service_provision, recalculate_links
|
|
8
|
+
from .methods.utils import gdf_to_graph, graph_to_gdf
|
|
9
|
+
from .methods.visibility import get_visibility
|