overture-schema-theme-transportation 0.1.1.dev0__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.
@@ -0,0 +1,19 @@
1
+ Metadata-Version: 2.4
2
+ Name: overture-schema-theme-transportation
3
+ Version: 0.1.1.dev0
4
+ Summary: Overture Maps transportation theme with shared structures and connector and segment types
5
+ License-Expression: MIT
6
+ Requires-Dist: overture-schema-common>=0.1.1
7
+ Requires-Dist: overture-schema-system>=0.1.1
8
+ Requires-Dist: pydantic>=2.13.0
9
+ Maintainer: Overture Maps Schema Working Group
10
+ Requires-Python: >=3.10
11
+ Project-URL: Homepage, https://overturemaps.org
12
+ Project-URL: Source, https://github.com/OvertureMaps/schema
13
+ Project-URL: Issues, https://github.com/OvertureMaps/schema/issues
14
+ Description-Content-Type: text/markdown
15
+
16
+ # Overture Schema Transportation Theme
17
+
18
+ Shared structures and validation logic for Overture Maps transportation theme.
19
+ Contains common enums, classes, and utilities used by transportation segment and connector types.
@@ -0,0 +1,4 @@
1
+ # Overture Schema Transportation Theme
2
+
3
+ Shared structures and validation logic for Overture Maps transportation theme.
4
+ Contains common enums, classes, and utilities used by transportation segment and connector types.
@@ -0,0 +1,189 @@
1
+ [project]
2
+ dependencies = [
3
+ "overture-schema-common>=0.1.1",
4
+ "overture-schema-system>=0.1.1",
5
+ "pydantic>=2.13.0",
6
+ ]
7
+ description = "Overture Maps transportation theme with shared structures and connector and segment types"
8
+ version = "0.1.1.dev0"
9
+ license = "MIT"
10
+ name = "overture-schema-theme-transportation"
11
+ readme = "README.md"
12
+ requires-python = ">=3.10"
13
+
14
+ [[project.maintainers]]
15
+ name = "Overture Maps Schema Working Group"
16
+
17
+ [project.urls]
18
+ Homepage = "https://overturemaps.org"
19
+ Source = "https://github.com/OvertureMaps/schema"
20
+ Issues = "https://github.com/OvertureMaps/schema/issues"
21
+
22
+ [project.entry-points."overture.models"]
23
+ connector = "overture.schema.transportation:Connector"
24
+ segment = "overture.schema.transportation:Segment"
25
+
26
+ [project.entry-points.pytest11]
27
+ overture_baselines = "overture.schema.system.testing.plugin"
28
+
29
+ [tool.uv.sources.overture-schema-common]
30
+ workspace = true
31
+
32
+ [tool.uv.sources.overture-schema-system]
33
+ workspace = true
34
+
35
+ [tool.uv.build-backend]
36
+ module-name = "overture.schema.transportation"
37
+
38
+ [build-system]
39
+ requires = ["uv_build>=0.11.32,<0.13"]
40
+ build-backend = "uv_build"
41
+
42
+ [[examples.Connector]]
43
+ geometry = "POINT (30.048398 -25.708697)"
44
+ id = "73a46c48-dc5a-4162-b9c8-1643298784c3"
45
+ theme = "transportation"
46
+ type = "connector"
47
+ version = 1
48
+
49
+ [examples.Connector.bbox]
50
+ xmax = 30.04840087890625
51
+ xmin = 30.048397064208984
52
+ ymax = -25.708696365356445
53
+ ymin = -25.70870018005371
54
+
55
+ [[examples.Connector.sources]]
56
+ dataset = "OpenStreetMap"
57
+ license = "ODbL-1.0"
58
+ property = ""
59
+ record_id = "n252436807@6"
60
+ update_time = "2025-01-06T20:44:06Z"
61
+
62
+ [[examples.Segment]]
63
+ class = "primary"
64
+ geometry = "LINESTRING (30.048398 -25.708697, 30.0485458 -25.708892, 30.0487074 -25.7090728, 30.0488875 -25.709252, 30.049138 -25.7094697, 30.0493666 -25.7096603, 30.0497209 -25.7099369, 30.0509508 -25.710904, 30.0511567 -25.7110786, 30.0515268 -25.7113855, 30.0518399 -25.711661, 30.052143 -25.7119631, 30.0523513 -25.7121619, 30.0526875 -25.7124827, 30.0531992 -25.7129799, 30.0535874 -25.7133575)"
65
+ id = "621e0a00-9466-4c3f-bb4a-64a83cd7a934"
66
+ subtype = "road"
67
+ theme = "transportation"
68
+ type = "segment"
69
+ version = 4
70
+
71
+ [examples.Segment.bbox]
72
+ xmax = 30.05359
73
+ xmin = 30.048397
74
+ ymax = -25.708696
75
+ ymin = -25.713358
76
+
77
+ [[examples.Segment.sources]]
78
+ dataset = "OpenStreetMap"
79
+ license = "ODbL-1.0"
80
+ property = "/routes"
81
+ record_id = "r1808544@180"
82
+
83
+ [[examples.Segment.sources]]
84
+ dataset = "OpenStreetMap"
85
+ license = "ODbL-1.0"
86
+ property = "/routes"
87
+ record_id = "r1808545@177"
88
+
89
+ [[examples.Segment.sources]]
90
+ dataset = "OpenStreetMap"
91
+ license = "ODbL-1.0"
92
+ property = ""
93
+ record_id = "w338134264@15"
94
+ update_time = "2025-04-21T09:53:35Z"
95
+
96
+ [examples.Segment.names]
97
+ primary = "Vermooten Street"
98
+
99
+ [[examples.Segment.names.rules]]
100
+ value = "Vermooten Street"
101
+ variant = "common"
102
+
103
+ [[examples.Segment.connectors]]
104
+ at = 0.0
105
+ connector_id = "73a46c48-dc5a-4162-b9c8-1643298784c3"
106
+
107
+ [[examples.Segment.connectors]]
108
+ at = 0.154695182
109
+ connector_id = "e81188ed-9b2f-48b4-99f2-d894044d88f5"
110
+
111
+ [[examples.Segment.connectors]]
112
+ at = 0.483463065
113
+ connector_id = "11124794-8830-4aff-bd09-f578d3a196b1"
114
+
115
+ [[examples.Segment.connectors]]
116
+ at = 0.753014135
117
+ connector_id = "cfda5f80-ffe6-4b5c-b219-4f208e0a3832"
118
+
119
+ [[examples.Segment.connectors]]
120
+ at = 1.0
121
+ connector_id = "a5871213-947e-4342-b486-f560f0ac22f3"
122
+
123
+ [[examples.Segment.access_restrictions]]
124
+ access_type = "denied"
125
+
126
+ [[examples.Segment.access_restrictions.when.vehicle]]
127
+ comparison = "greater_than"
128
+ dimension = "height"
129
+ unit = "m"
130
+ value = 5.2
131
+
132
+ [[examples.Segment.speed_limits]]
133
+
134
+ [examples.Segment.speed_limits.max_speed]
135
+ unit = "km/h"
136
+ value = 60
137
+
138
+ [examples.Segment.speed_limits.when]
139
+ heading = "forward"
140
+
141
+ [[examples.Segment.road_surface]]
142
+ value = "paved"
143
+
144
+ [[examples.Segment.routes]]
145
+ name = "R33 (northbound)"
146
+ network = "za:regional"
147
+ ref = "R33"
148
+
149
+ [[examples.Segment.routes]]
150
+ name = "R33 (southbound)"
151
+ network = "za:regional"
152
+ ref = "R33"
153
+
154
+ [[examples.Segment]]
155
+ class = "unknown"
156
+ geometry = "LINESTRING (30.9844394 -12.7185733, 30.9818611 -12.7207838, 30.9815908 -12.7210751)"
157
+ id = "2a9415ed-fa07-4734-9d8e-1d8ff69451c2"
158
+ subtype = "rail"
159
+ theme = "transportation"
160
+ type = "segment"
161
+ version = 1
162
+
163
+ [examples.Segment.bbox]
164
+ xmax = 30.98444
165
+ xmin = 30.98159
166
+ ymax = -12.718572
167
+ ymin = -12.721077
168
+
169
+ [[examples.Segment.sources]]
170
+ dataset = "OpenStreetMap"
171
+ license = "ODbL-1.0"
172
+ property = ""
173
+ record_id = "w414442537@2"
174
+ update_time = "2026-02-05T14:25:06Z"
175
+
176
+ [[examples.Segment.connectors]]
177
+ at = 0.0
178
+ connector_id = "2da12352-29c5-479e-932f-68fbe90c8229"
179
+
180
+ [[examples.Segment.connectors]]
181
+ at = 0.895049489
182
+ connector_id = "feed87bb-7abf-4254-9e14-efd6bdb3e428"
183
+
184
+ [[examples.Segment.connectors]]
185
+ at = 1.0
186
+ connector_id = "e37ca4ff-ab09-4c84-8d3c-450c703d7308"
187
+
188
+ [[examples.Segment.rail_flags]]
189
+ values = ["is_disused"]
@@ -0,0 +1,195 @@
1
+ [project]
2
+ maintainers = [
3
+ { name = "Overture Maps Schema Working Group" },
4
+ ]
5
+ dependencies = [
6
+ "overture-schema-common>=0.1.1",
7
+ "overture-schema-system>=0.1.1",
8
+ "pydantic>=2.13.0",
9
+ ]
10
+ description = "Overture Maps transportation theme with shared structures and connector and segment types"
11
+ version = "0.1.1.dev0"
12
+ license = "MIT"
13
+ name = "overture-schema-theme-transportation"
14
+ readme = "README.md"
15
+ requires-python = ">=3.10"
16
+
17
+ [project.urls]
18
+ Homepage = "https://overturemaps.org"
19
+ Source = "https://github.com/OvertureMaps/schema"
20
+ Issues = "https://github.com/OvertureMaps/schema/issues"
21
+
22
+ [tool.uv.sources]
23
+ overture-schema-common = { workspace = true }
24
+ overture-schema-system = { workspace = true }
25
+
26
+
27
+ [build-system]
28
+ requires = ["uv_build>=0.11.32,<0.13"]
29
+ build-backend = "uv_build"
30
+
31
+ [tool.uv.build-backend]
32
+ module-name = "overture.schema.transportation"
33
+
34
+ [project.entry-points."overture.models"]
35
+ connector = "overture.schema.transportation:Connector"
36
+ segment = "overture.schema.transportation:Segment"
37
+
38
+ [project.entry-points.pytest11]
39
+ overture_baselines = "overture.schema.system.testing.plugin"
40
+
41
+ # Connector: Vermooten Street junction, Pretoria, South Africa (2026-02-18.0)
42
+ [[examples.Connector]]
43
+ geometry = "POINT (30.048398 -25.708697)"
44
+ id = "73a46c48-dc5a-4162-b9c8-1643298784c3"
45
+ theme = "transportation"
46
+ type = "connector"
47
+ version = 1
48
+
49
+ [examples.Connector.bbox]
50
+ xmax = 30.04840087890625
51
+ xmin = 30.048397064208984
52
+ ymax = -25.708696365356445
53
+ ymin = -25.70870018005371
54
+
55
+ [[examples.Connector.sources]]
56
+ dataset = "OpenStreetMap"
57
+ license = "ODbL-1.0"
58
+ property = ""
59
+ record_id = "n252436807@6"
60
+ update_time = "2025-01-06T20:44:06Z"
61
+
62
+ # Road segment: Vermooten Street / R33, Pretoria, South Africa (2026-02-18.0)
63
+ # Populates access_restrictions with when.vehicle, speed_limits with
64
+ # when.heading, routes with ref, road_surface, and names.
65
+ [[examples.Segment]]
66
+ class = "primary"
67
+ geometry = "LINESTRING (30.048398 -25.708697, 30.0485458 -25.708892, 30.0487074 -25.7090728, 30.0488875 -25.709252, 30.049138 -25.7094697, 30.0493666 -25.7096603, 30.0497209 -25.7099369, 30.0509508 -25.710904, 30.0511567 -25.7110786, 30.0515268 -25.7113855, 30.0518399 -25.711661, 30.052143 -25.7119631, 30.0523513 -25.7121619, 30.0526875 -25.7124827, 30.0531992 -25.7129799, 30.0535874 -25.7133575)"
68
+ id = "621e0a00-9466-4c3f-bb4a-64a83cd7a934"
69
+ subtype = "road"
70
+ theme = "transportation"
71
+ type = "segment"
72
+ version = 4
73
+
74
+ [examples.Segment.bbox]
75
+ xmax = 30.05359
76
+ xmin = 30.048397
77
+ ymax = -25.708696
78
+ ymin = -25.713358
79
+
80
+ [[examples.Segment.sources]]
81
+ dataset = "OpenStreetMap"
82
+ license = "ODbL-1.0"
83
+ property = "/routes"
84
+ record_id = "r1808544@180"
85
+
86
+ [[examples.Segment.sources]]
87
+ dataset = "OpenStreetMap"
88
+ license = "ODbL-1.0"
89
+ property = "/routes"
90
+ record_id = "r1808545@177"
91
+
92
+ [[examples.Segment.sources]]
93
+ dataset = "OpenStreetMap"
94
+ license = "ODbL-1.0"
95
+ property = ""
96
+ record_id = "w338134264@15"
97
+ update_time = "2025-04-21T09:53:35Z"
98
+
99
+ [examples.Segment.names]
100
+ primary = "Vermooten Street"
101
+
102
+ [[examples.Segment.names.rules]]
103
+ value = "Vermooten Street"
104
+ variant = "common"
105
+
106
+ [[examples.Segment.connectors]]
107
+ at = 0.0
108
+ connector_id = "73a46c48-dc5a-4162-b9c8-1643298784c3"
109
+
110
+ [[examples.Segment.connectors]]
111
+ at = 0.154695182
112
+ connector_id = "e81188ed-9b2f-48b4-99f2-d894044d88f5"
113
+
114
+ [[examples.Segment.connectors]]
115
+ at = 0.483463065
116
+ connector_id = "11124794-8830-4aff-bd09-f578d3a196b1"
117
+
118
+ [[examples.Segment.connectors]]
119
+ at = 0.753014135
120
+ connector_id = "cfda5f80-ffe6-4b5c-b219-4f208e0a3832"
121
+
122
+ [[examples.Segment.connectors]]
123
+ at = 1.0
124
+ connector_id = "a5871213-947e-4342-b486-f560f0ac22f3"
125
+
126
+ [[examples.Segment.access_restrictions]]
127
+ access_type = "denied"
128
+
129
+ [examples.Segment.access_restrictions.when]
130
+
131
+ [[examples.Segment.access_restrictions.when.vehicle]]
132
+ comparison = "greater_than"
133
+ dimension = "height"
134
+ unit = "m"
135
+ value = 5.2
136
+
137
+ [[examples.Segment.speed_limits]]
138
+
139
+ [examples.Segment.speed_limits.max_speed]
140
+ unit = "km/h"
141
+ value = 60
142
+
143
+ [examples.Segment.speed_limits.when]
144
+ heading = "forward"
145
+
146
+ [[examples.Segment.road_surface]]
147
+ value = "paved"
148
+
149
+ [[examples.Segment.routes]]
150
+ name = "R33 (northbound)"
151
+ network = "za:regional"
152
+ ref = "R33"
153
+
154
+ [[examples.Segment.routes]]
155
+ name = "R33 (southbound)"
156
+ network = "za:regional"
157
+ ref = "R33"
158
+
159
+ # Rail segment: disused railway, Mpulungu, Zambia (2026-02-18.0)
160
+ [[examples.Segment]]
161
+ class = "unknown"
162
+ geometry = "LINESTRING (30.9844394 -12.7185733, 30.9818611 -12.7207838, 30.9815908 -12.7210751)"
163
+ id = "2a9415ed-fa07-4734-9d8e-1d8ff69451c2"
164
+ subtype = "rail"
165
+ theme = "transportation"
166
+ type = "segment"
167
+ version = 1
168
+
169
+ [examples.Segment.bbox]
170
+ xmax = 30.98444
171
+ xmin = 30.98159
172
+ ymax = -12.718572
173
+ ymin = -12.721077
174
+
175
+ [[examples.Segment.sources]]
176
+ dataset = "OpenStreetMap"
177
+ license = "ODbL-1.0"
178
+ property = ""
179
+ record_id = "w414442537@2"
180
+ update_time = "2026-02-05T14:25:06Z"
181
+
182
+ [[examples.Segment.connectors]]
183
+ at = 0.0
184
+ connector_id = "2da12352-29c5-479e-932f-68fbe90c8229"
185
+
186
+ [[examples.Segment.connectors]]
187
+ at = 0.895049489
188
+ connector_id = "feed87bb-7abf-4254-9e14-efd6bdb3e428"
189
+
190
+ [[examples.Segment.connectors]]
191
+ at = 1.0
192
+ connector_id = "e37ca4ff-ab09-4c84-8d3c-450c703d7308"
193
+
194
+ [[examples.Segment.rail_flags]]
195
+ values = ["is_disused"]
@@ -0,0 +1,75 @@
1
+ """Transportation theme.
2
+
3
+ Transportation infrastructure including network segments (road, rail, water) and the
4
+ connection points that join them.
5
+ """
6
+
7
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
8
+
9
+ from .connector import Connector
10
+ from .segment import (
11
+ AccessRule,
12
+ AccessType,
13
+ ConnectorReference,
14
+ DestinationLabels,
15
+ DestinationLabelType,
16
+ DestinationRule,
17
+ DestinationSignSymbol,
18
+ LevelRule,
19
+ ProhibitedTransitionRule,
20
+ ProhibitedTransitionSequenceEntry,
21
+ RailClass,
22
+ RailFlag,
23
+ RailFlagRule,
24
+ RailSegment,
25
+ RoadClass,
26
+ RoadFlag,
27
+ RoadFlagRule,
28
+ RoadSegment,
29
+ RoadSubclass,
30
+ RoadSubclassRule,
31
+ RoadSurface,
32
+ RoadSurfaceRule,
33
+ RouteReference,
34
+ Segment,
35
+ SegmentSubtype,
36
+ Speed,
37
+ SpeedLimitRule,
38
+ TransportationSegment,
39
+ WaterSegment,
40
+ WidthRule,
41
+ )
42
+
43
+ __all__ = [
44
+ "AccessRule",
45
+ "AccessType",
46
+ "Connector",
47
+ "ConnectorReference",
48
+ "DestinationLabelType",
49
+ "DestinationLabels",
50
+ "DestinationRule",
51
+ "DestinationSignSymbol",
52
+ "LevelRule",
53
+ "ProhibitedTransitionRule",
54
+ "ProhibitedTransitionSequenceEntry",
55
+ "RailClass",
56
+ "RailFlag",
57
+ "RailFlagRule",
58
+ "RailSegment",
59
+ "RoadClass",
60
+ "RoadFlag",
61
+ "RoadFlagRule",
62
+ "RoadSegment",
63
+ "RoadSubclass",
64
+ "RoadSubclassRule",
65
+ "RoadSurface",
66
+ "RoadSurfaceRule",
67
+ "RouteReference",
68
+ "Segment",
69
+ "SegmentSubtype",
70
+ "Speed",
71
+ "SpeedLimitRule",
72
+ "TransportationSegment",
73
+ "WaterSegment",
74
+ "WidthRule",
75
+ ]
@@ -0,0 +1,32 @@
1
+ """Connector feature models for Overture Maps transportation theme."""
2
+
3
+ from typing import Annotated, Literal
4
+
5
+ from pydantic import ConfigDict, Field
6
+
7
+ from overture.schema.common import (
8
+ OvertureFeature,
9
+ )
10
+ from overture.schema.system.geometric import (
11
+ Geometry,
12
+ GeometryType,
13
+ GeometryTypeConstraint,
14
+ )
15
+
16
+
17
+ class Connector(OvertureFeature[Literal["transportation"], Literal["connector"]]):
18
+ """Connectors create physical connections between segments.
19
+
20
+ Connectors are compatible with GeoJSON Point features.
21
+ """
22
+
23
+ model_config = ConfigDict(title="connector")
24
+
25
+ # Core
26
+ geometry: Annotated[
27
+ Geometry,
28
+ GeometryTypeConstraint(GeometryType.POINT),
29
+ Field(
30
+ description="Position of the connector",
31
+ ),
32
+ ]
@@ -0,0 +1,97 @@
1
+ """Transportation segment feature."""
2
+
3
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
4
+
5
+ from typing import Annotated
6
+
7
+ from pydantic import Field, Tag
8
+
9
+ from overture.schema.system.feature import Feature
10
+
11
+ from ._common import (
12
+ AccessRule,
13
+ AccessType,
14
+ ConnectorReference,
15
+ LevelRule,
16
+ ProhibitedTransitionRule,
17
+ ProhibitedTransitionSequenceEntry,
18
+ SegmentSubtype,
19
+ Speed,
20
+ SpeedLimitRule,
21
+ TransportationSegment,
22
+ WidthRule,
23
+ )
24
+ from .rail import RailClass, RailFlag, RailFlagRule, RailSegment
25
+ from .road import (
26
+ DestinationLabels,
27
+ DestinationLabelType,
28
+ DestinationRule,
29
+ DestinationSignSymbol,
30
+ RoadClass,
31
+ RoadFlag,
32
+ RoadFlagRule,
33
+ RoadSegment,
34
+ RoadSubclass,
35
+ RoadSubclassRule,
36
+ RoadSurface,
37
+ RoadSurfaceRule,
38
+ RouteReference,
39
+ )
40
+ from .water import WaterSegment
41
+
42
+ # The public `Segment` type: a discriminated union over the three subtype models, keyed on the
43
+ # `subtype` field. Assembled here because it depends on the subtype classes imported above.
44
+ Segment = Annotated[
45
+ Annotated[RoadSegment, Tag(SegmentSubtype.ROAD)]
46
+ | Annotated[RailSegment, Tag(SegmentSubtype.RAIL)]
47
+ | Annotated[WaterSegment, Tag(SegmentSubtype.WATER)],
48
+ Field(
49
+ discriminator=Feature.field_discriminator(
50
+ "subtype", RoadSegment, RailSegment, WaterSegment
51
+ )
52
+ ),
53
+ ]
54
+
55
+ # Explicitly assign docstring to the Segment type alias
56
+ Segment.__doc__ = """Transportation segment model representing linear travel infrastructure.
57
+
58
+ Encompasses road, rail, and water transportation segments. Models linear features that enable
59
+ movement of people, goods, and vehicles through structured networks. Each segment type provides
60
+ specialized attributes for its respective transportation mode.
61
+
62
+ Supports routing, mapping, navigation, and transportation network analysis through rich geometric
63
+ and attribute data.
64
+ """
65
+
66
+ __all__ = [
67
+ "AccessRule",
68
+ "AccessType",
69
+ "ConnectorReference",
70
+ "DestinationLabelType",
71
+ "DestinationLabels",
72
+ "DestinationRule",
73
+ "DestinationSignSymbol",
74
+ "LevelRule",
75
+ "ProhibitedTransitionRule",
76
+ "ProhibitedTransitionSequenceEntry",
77
+ "RailClass",
78
+ "RailFlag",
79
+ "RailFlagRule",
80
+ "RailSegment",
81
+ "RoadClass",
82
+ "RoadFlag",
83
+ "RoadFlagRule",
84
+ "RoadSegment",
85
+ "RoadSubclass",
86
+ "RoadSubclassRule",
87
+ "RoadSurface",
88
+ "RoadSurfaceRule",
89
+ "RouteReference",
90
+ "Segment",
91
+ "SegmentSubtype",
92
+ "Speed",
93
+ "SpeedLimitRule",
94
+ "TransportationSegment",
95
+ "WaterSegment",
96
+ "WidthRule",
97
+ ]