Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GMNS v0.85 #17

Merged
merged 43 commits into from
May 20, 2020
Merged

GMNS v0.85 #17

merged 43 commits into from
May 20, 2020

Conversation

ianberg-volpe
Copy link
Collaborator

This pull request proposes changes to the specification based on several issues raised by @e-lo and @xzhou99, and discussed at PMC meetings in March and May, 2020.

Major changes

Combining link_geometry, road_link, and offroad_link tables (#3, #7)

We propose combining these tables into a single link table.

  • road_link table is renamed link; road_link_id field becomes link_id
  • The link_geometry table is removed and link_geometry_id is removed from the link table. Geometry information can now be stored in two different ways:
    • by directly storing the geometry information (e.g., with WKT) in the geometry field
    • by referencing a separate, optional geometry table with the geometry_id field. Unlike the link_geometry table, this geometry table does not contain fields for additional characteristics – these are all stored on the link table.
  • offroad_link table is removed
    • a new directed field on the link table indicates whether the link is directed or undirected
    • the dir_flag field can now have value 0 (representing an undirected link or a link without geometry information) in addition to 1 (travel with shapepoint direction) and -1 (travel against shapepoints)

Inheritance: parent fields and segment_lane table (#7, #14)

It can be useful to define a parent from which a link or node can inherit characteristics – for example, a crosswalk entrance node on a pedestrian network is the child of the intersection node at the road network, so they can be signalized together. Or, to conserve disk space, one may wish to provide characteristics for a two-way road on only one of the directed links that makes up that road.

Therefore, parent_link and parent_node fields are added to the link and node tables, respectively. If this field is filled, then blank fields on the child will inherit values from the parent.

Similarly, when a link is divided into segments or lanes, these also can inherit values from the link. The segment_lane table allows for lanes to change characteristics along a segment (as well as adding or dropping lanes). This table contains a parent_lane field, to key a changed lane to its usual characteristics along the rest of the link.

Splitting time-of-day tables (#14, #5)

Rather than allow for link, lane, and segment time of day changes to occur on a single Link_TOD table (meaning that multiple foreign keys have to be checked), we propose defining separate link_tod, link_lane_tod, segment_tod, and segment_lane_tod tables. Similar to how geometries are handled, there is now also an optional time_set_definitions file to allow for time-of-day sets to be defined on a separate table instead of the XXXXXXXX_HHMM_HHMM format.

Minor changes

Several cleanup edits and clarifications to documentation were also made, including:

Example network

One small example has been drafted to show these changes as implemented: Cambridge_v085. The other examples, along with the conversion and validation tools, have not yet been updated to reflect these changes, but will be upon approval of these changes.

ianberg-volpe and others added 30 commits April 9, 2020 15:42
New road_link file with geometry information
New offroad_link file with geometry information
Optional file that may be used when shapepoints are NOT contained directily in road_link or offroad_link files.
Either the shapepoints are contained in this file (geometry field), or in the Geometry file, referenced by a foreign key (geometry_id)
Either the shapepoints are contained in this file (geometry field), or in the Geometry file, referenced by a foreign key (geometry_id)
(does not reflect potential change/removal of link_geometry table)
combining road_link and offroad_link; adding parent-child concept; adding segment_lane.
typos, and added a very short readme
Changed Other Fields to a statement that ad hoc fields may be added
Changed other_fields to a note about ad hoc fields.  Capacity as vehicles / lane / hour (issue 16)
Ad hoc fields, and units
Ad hoc fields, Response to issues 8, 9
(i.e., remove their appearance as a "table entry")
@ianberg-volpe
Copy link
Collaborator Author

Lazy approval received; merging (see issue #18 for PMC vote).

@ianberg-volpe ianberg-volpe merged commit 03f3a82 into master May 20, 2020
@ianberg-volpe ianberg-volpe deleted the spec-as-code branch May 20, 2020 19:10
dtemkin-volpe added a commit that referenced this pull request Jul 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment