Get desktop application:
View/edit binary Protocol Buffers messages
A collection of agent files.
Used in:
Relative file paths for the json files serialized from AgentGroup message. An AgentGroup message is serialized and stored under the following naming convention: <scene_dir>/agents_<scene_hash>.json where <agents_hash> is the deterministic deterministic SHA1 hash hexdigest of a agentgroup and served as the version of the scene, see dgp.utils.protobuf.generate_uid_from_pbobject for details.
AgentGroup encapsulates all Agents in a Scene.
Unique name for the group of Agents in a Scene. Usually, group name is set as the hash of algorithm or label that generate the agents. For group without unique names, generate a sha1 hash of all the AgentSnapshot keys combined.
Optional, short description of the group (~200 characters).
Log identifier Refer to dgp.identifiers.proto for more information.
List of AgentSlices corresponding to this Scene, each Slice contains AgentSnapshots from one Sample in the Scene.
List of AgentTracks in this Scene.
Optional metadata
Date and timestamp of AgentGroup creation.
Task-specific feature ontologies. Ontologies are stored under <scene_dir>/feature_ontology/<ontology_sha1>.json Maps dgp.proto.FeatureType (Agent_3D, EGO_INTENTION, etc) to the filename containing the ontology for the specific FeatureType/Task.
Task-specific agent ontologies. Agent ontologies are stored under <scene_dir>/ontology/<ontology_sha1>.json Maps dgp.proto.AnnotationType (bounding_box_3d, etc) to the filename containing the ontology for the specific AgentType/Task.
AgentSnapshot that takes values from one of agent types.
Used in: ,
Unique slice identifier (See dgp.idenfiers.proto) Copy from Sample.id to ensure one-one match between a AgentSlice and Sample in a Scene.
Unique slice identifier (See dgp.idenfiers.proto). Copy from Datum.id if the agent snapshot is associate with certain datum.
Used in:
Class identifier (should be in [0, num_classes - 1]) For datasets supporting semantic segmentation and detection, num_classes corresponds to the number of segmentation classes. For datasets only supporting detection, this is the number of thing classes.
2D box
Other fields useful for downstream metric computation.
Refer to crowd box in coco dataset.
Instance identifier for this agent. This needs to be unique in an image.
List of features, which are the values of the fields associated with certain FeatureType in dgp.features.proto.
The type of feature ontology defined in FeatureType in features.proto.
Used in:
Class identifier. Should be in range [0, num_classes - 1].
3D box, the pose of box is in sensor coordinate.
Instance identifier for this agent. This needs to be unique to a scene.
List of features, which are the values of the fields associated with certain FeatureType in dgp.features.proto.
The type of feature ontology defined in FeatureType in features.proto.
AgentTrack is the track of a single Agent in the Scene.
Used in:
Class identifier (should be in [0, num_classes - 1])
Agent identifier
List of AgentSnapshots encapsulated in the AgentTrack.
Compiled proto is available to both the writer and reader of the dataset.
Sample-specific metadata
Road actors in the Scene (Pedestrians, vehicles, etc).
Dataset-specific metadata
List of SceneAgents recorded for each split (train/val/test) in this dataset. Note: This corresponds to a particular task in the dataset. Maps <DatasetSplit, SceneAgents>
AgentsSlice encapsulates all Agents in a Sample.
Used in:
Unique Slice identifier (See dgp.idenfiers.proto) Copy from unique Sample identifier (See dgp.sample.proto) to ensure one-one match between a AgentSlice and Sample. in a Scene.
List of AgentSnapshots encapsulated in the AgentsSlice.
Sample-specific metadata
Generic Annotation Enumeration. Annotations will be available under the corresponding enum name. The annotation files will reside under the corresponding directory names specified in the comments on the right. For e.g., BOUNDING_BOX_2D annotations reside under bounding_box_2d/*.json
2D bounding box annotations on the image
bounding_box_2d
3D bounding box annotations on the image or point cloud. Note: Typically, the annotations are provided in the point cloud reference frame, and optionally also added as annotations in the camera's reference frame.
bounding_box_3d
Semantic segmentation on the image.
semantic_segmentation_2d
Semantic segmentation on the point cloud.
semantic_segmentation_3d
Instance segmentation on the image.
instance_segmentation_2d
Instance segmentation on the point cloud.
instance_segmentation_3d
Depth map on image.
depth
3D Surface normals on the image.
surface_normals_2d
3D Surface normals on the point cloud.
surface_normals_3d
2D Motion vectors on the image. (i.e. 2D optical flow)
motion_vectors_2d
3D Motion vectors on the point cloud. (i.e. 3D flow on the point cloud)
motion_vectors_2d
2D Key Point on the image.
key_point_2d
2D Key Line on the image.
key_line_2d
2D Polygon on the image.
polygon_2d
Agent behavior
agent_behavior
Classification. (i.e. imagenet classification label)
classification
3D Key Point in sensor space
key_point_3d
3D Key Line in sensor space
key_line_3d
3D Polygon in sensor space
polygon_3d
The geometry of the edges of zone, represented as a chain of polylines to form a polygon. Each edge in a boundary is associated in iteration order, where the last waypoint of `explicit` edge n has an `implicit` connection to the first waypoint of `explicit` edge n+1, including wrapping from the last `explicit` edge to the first edge in a boundary. This means, when considering implicit edges, a boundary could be considered a closed polygon. A zone has potentially multiple boundaries, because there may be multiple discrete areas of interest in a single zone (e.g. an island in the middle of an intersection). Multiple boundaries in the same zone are fully independent from a data structure point of view.
Used in:
List of edges of boundary polygon.
2D bounding box
Used in: ,
(x, y) is top left corner (in absolute pixel coordinates)
(w, h) is width and height (in absolute pixel coordinates)
2D bounding box annotation for a single instance.
Used in:
Class identifier (should be in [0, num_classes - 1]) For datasets supporting semantic segmentation and detection, num_classes corresponds to the number of segmentation classes. For datasets only supporting detection, this is the number of thing classes.
2D box
Other fields useful for downstream metric computation.
Refer to crowd box in coco dataset.
Instance identifier
A map of attribute names to their values. This can be used to stored `agent_behavior` states (i.e., parked car, pedestrian intent).
List of BoundingBox2DAnnotation
3D bounding box
3D Bounding box. Produced by first constructing a box of dimensions width, length, height centered at the origin, then rotating it by the specified quaternion and finally translating the box to the center coordinate.
Used in: ,
6DoF pose of bounding 3D. (Translation is the center point of the box)
Dimensions of box.
Integer (0,1,2,3) indicating occlusion state: 0 = fully visible, 1 = partly occluded 2 = largely occluded, 3 = unknown
From 0 (non-truncated) to 1 (truncated), where truncated refers to the object leaving image boundaries.
3D bounding box annotation.
Used in:
Class identifier. Should be in range [0, num_classes - 1], where num_classes is the total number of classes in your ontology.
3D box.
Instance identifier for this annotation. This needs to be unique to a scene.
A map of attribute names to their values.
Number of LIDAR points in the Bounding Box
List of BoundingBox3DAnnotation.
Used in:
Camera distortion parameters, copied over from Parallel Domain These include the default opencv distorition model parameters (Brown Conrady) See https://en.wikipedia.org/wiki/Distortion_(optics) and opencv calibrateCamera for details Additionally the Double Sphere Camera Model (https://arxiv.org/pdf/1807.08957.pdf) by Usenko, Demmel, and Cremers is an excellent reference
Additional parameters for thin prism model
Additional parameters for tilted sensor model
Additional parameters for UCM and EUCM camera models
Additional parameters for FOV camera model
Parameters for Double Sphere model
Classification annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
A map of attribute names to their values.
List of ClassificationAnnotation.
Artifacts for a dataset registered in the TRI-ML DGP format.
Dataset-specific metadata Note: The metadata in the dataset artifact is maintained for traceability purposes.
DGP-compliant dataset artifact
sha1sum of all parent DatasetArtifacts JSON files this DatasetArtifacts is derived from. We are implicitly creating a linked list of DatasetArtifacts where the first item in the list has `derived_from` field empty and all subsequent items have it populated.
Dataset metadata specific to a particular SceneDataset.
Used in: , ,
Dataset name
Dataset semantic version TODO: Establish semantic versioning.
Date of dataset creation: yyyy-mm-dd TODO: Change this to datetime
Dataset creator (for e.g., unique email address: john.doe@domain.com)
Remote path to DGP-compliant dataset (s3://<bucket>/)
Remote path to the raw dataset (s3://<bucket>/bdd100k/)
Short description of the dataset (~200 characters)
List of annotation types supported by the dataset See dgp.proto.AnnotationType in dgp/proto/annotations.proto
(Optional) Dataset-specific statistics This is usually of the TRAIN set.
(Optional) Sampling rate of the dataset This is used to synchronize different fps from different datasets.
Container for generic metadata. Metadata of "Any" type is useful in cases where the metadata type is specific to a paricular dataset type. For example, this field can contain: - a bare string which contains structured data like json, yaml, etc. - dataset specific metadata with some proto definition (assuming the compiled proto is available to both the writer and reader of the dataset.
Dataset origin identifier (i.e. whether the dataset originated internally or from the public domain)
Used in:
Dataset Split Enum
Statistics for a dataset or a scene
Used in: ,
Image and point cloud statistics
Statistics for Image dataset
Used in:
Statistics for Point cloud dataset
Used in:
Datum encapsulates a single data element and associated metadata to uniquely identify it in a series of logged data.
Used in:
Datum identifier Unique identifier to a datum in a specific log
Datum identifier key key = sha1(datum_id) = sha1(SerializeToString(DatumId(...))
Datum envelope
Next datum hash key. The sha1 hash to the datum_id that follows this one. The hash corresponds to the hash of the DatumValue object. If empty, this datum is the last item in the linked list.
Previous datum hash key. The datum hash to the datum_id that precedes this one. The hash corresponds to the hash of the DatumValue object. If empty, this datum is the first item in the linked list.
For certain scenarios, the sample_name will also include the directory/session name to make the sample name unique to the dataset. For internal datasets, this would be the relevant log information for traceability purposes.
Used in: , , , ,
Log identifier For TRI / internal datasets: log = <robot_name>/<session_name>/<log_id>.<ext> Public datasets: For e.g. The KITTI raw dataset contains camera 02 images under 2011_09_26/2011_09_26_drive_0001_sync/image_02/data/0000000042.png The corresponding unique log_id would be: log = 2011_09_26/2011_09_26_drive_0001_sync
Datum name (i.e. camera_0, lidar_0) Alternatively, this serves as a datum identifier for public datasets, or untraceable datasets For public datasets where the datasets are derived from non-sequential logs, the name might be a sufficient identifier for a datum. For e.g., filename=rgb/1aa6dd36-aa7f0108.jpg, name=1aa6dd36-aa7f0108 For datums without unique names, only if the datums can not be traced, generate a sha1 hash of the datum contents.
Timestamp within the log (if available)
Index within the log (if available) For TRI / internal datasets: Frame index required to find the image within the associated .mkv file. For public datasets: For e.g. The KITTI raw dataset contains camera 02 images under 2011_09_26/2011_09_26_drive_0001_sync/image_02/data/0000000042.png The corresponding unique index would be: 42
DatumValue that takes one of many data type values
Used in:
Generic Feature Type Enumeration. Features will be available under the corresponding enum name.
Feature type of default 2D agents.
Feature type of default 3D agents.
Feature type of ego intent ontology.
Feature type of corridor map element.
Feature type of intersection.
Feature type of parked car ontology.
The feature value type specified in dgp.ontology.FeatureOntologyItem.
Feature value type of numeric values.
Feature value type of file.
Generic (datum, annotation) pair where the underlying content is stored externally in files.
Used in:
The file containing data (e.g. extracted features)
The file containing annotations for the above datum. Typically this field should not contain manual annotation data, since any data requiring large numbers of manual labels should have those labels described with an explicit (required) schema. The key integer is defined in annotations.proto's AnnotationType
Basic image container for DGP
Used in:
Relative file path for the image Supported image formats: (png/jpg/jpeg)
Image shape
Annotations for an Image Maps dgp.proto.AnnotationType (segmentation, instances) to the filename containing the image annotation. Supported image annotation formats: (png/json)
Optional metadata (i.e. miscellaneous enriched annotations)
Ego-pose of this datum with respect to the first sample in the scene.
2D line annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
2D line.
A map of attribute names to their values. Add only key/value pairs that are stored in a project document accessible to project contributors.
An identifier key. Used to link with other annotations, which specify this key in their instance to link to corresponding KeyLine2DAnnotation.
List of KeyLine2DAnnotation.
3D line annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
3D line.
A map of attribute names to their values. Add only key/value pairs that are stored in a project document accessible to project contributors.
An identifier key. Used to link with other annotations, which specify this key in their instance to link to corresponding KeyLine3DAnnotation.
List of KeyLine3DAnnotation.
2D point.
Used in: ,
(x, y) point (in absolute pixel coordinates).
2D point annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
2D point.
A map of attribute names to their values.
An identifier key. Used to link with other annotations (example: BoundingBox2D) which specify this key in their instance to link to corresponding KeyPoint2DAnnotation.
List of KeyPoint2DAnnotation.
3D point.
Used in: ,
(x, y, z) point (in 3D Cartesian coordinates).
3D point annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
3D point.
A map of attribute names to their values. Add only key/value pairs that are stored in a project document accessible to project contributors.
An identifier key. Used to link with other annotations, which specify this key in their instance to link to corresponding KeyPoint3DAnnotation.
List of KeyPoint3DAnnotation.
Defines lane information - centerline, boundaries, etc. A lane is defined as https://en.wikipedia.org/wiki/Lane.
Used in:
Identifier for the lane.
Center line of the lane. It is geometrically the centers between left and right lane boundaries.
Left lane boundary.
Right lane boundary.
Basic container for line divider on road, contains sequence of points to form a polyline.
Used in: ,
List of points to form a continuous line. The points are ordered along lane direction.
Type of LaneDivider.
Color of LaneDivider.
Material of LaneDivider.
Enum of color of the lane divider.
Used in:
Enum of material of the lane divider.
Used in:
Enum of types of the LaneDivider.
Used in:
Transform from a Earth-centered Earth-fixed coordinate to Local coordinate.
Used in:
Unique sample identifier (See dgp.idenfiers.proto). Copy from sample ID to ensure one-one match between a localmapview and sample in a scene.
Pose of this sample in Earth-centered Earth-fixed coordinate system.
Dataset ontology
Dictionary maintaining the class name to unique class id mapping
Inverted mapping of name_to_id
Various look-up tables
Used in:
Sample-level metadata to encode attribute information in key-value pairs.
Scene-level metadata.
Location name in PD location library The location name string will be of the form xx_yy, where xx = a two letter region code (eg. SF=San Francisco, SJ=San Jose, ...) yy = a descriptive level name (eg. 6thAndMission_medium) eg. SF_6thAndMission_medium
Region type enumeration defining geographic region
Scene type enumeration defining scene land usage
Time of day environment from PD time_of_day library The time_of_day name string will be of the form LS_sky_xxx_yyy_zzz_www, where xxx = descriptive time of day [dawn, noon, afternoon, dusk, evening, night] yyy = descriptive sky conditions [clear, mostlySunny, partlyCloudy, overcast] zzz = approximate time of day in 24HR clock (eg. 1830, 1950, 0440, ...) www = internal code eg. LS_sky_afternoon_mostlySunny_1444_HDS035
Sun elevation angle, in degrees above the horizon For night scenarios, this angle will be negative
Sun azimuth angle, in degrees anti-clockwise from Rast
Cloud coverage ratio. Measures the proportion of the sky hemisphere that is classified as cloudy [0.0 -> 1.0]
Fog intensity [0.0 = clear day, 1.0 = whiteout]
Rain intensity [0.0 = no rain, 1.0 = torrential rain]
Road surface wetness [0.0 = completely dry, 1.0 = flooded]
Streetlight intensity [0.0 = off, 1.0 = completely on]
Batch ID and version for delivery tracking
Additional metadata
Coordinates on the map.
Used in:
Basic point cloud container for DGP
Used in:
Relative file path for the point cloud Supported point cloud formats: compressed numpy (npz) format.
PointCloud annotations Maps dgp.proto.AnnotationType (segmentation, instances) to the filename containing the point cloud annotation. Point cloud annotations are written in to compressed numpy arrays (npz) under the 'data' key.
Optional metadata (i.e. miscellaneous enriched annotations) TODO: Support only specific metadata types
Structure of values in the pointcloud file. Each entry in this array specifies the field meaning. A simple pointcloud may simply contain X, Y, and Z channels. This would mean that the numpy data representation of this would be an [N, 3] shape structured array.
Alternatively, use point fields instead of strongly-typed ChannelType For example, radar data can be represented as D-dimensional tensors/matrices with point_fields describing the columns for the point cloud data
Ego-pose of this datum with respect to the first sample in the scene.
Used to describe the values in the pointcloud. The ChannelType refers to the dtypes of the point cloud stored under the 'data' key.
Used in:
X, Y, and Z coordinates of point.
Intensity of return at point.
RGB for color.
The ring index of this point. This is commonly used for spinning lidar.
Class/Instance ID for point cloud semantic segmentation
Timestamp of this point sample, stored as UTC in microseconds
2D polygon annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
2D polygon. Points should be put into this field with counter-clockwise order.
A map of attribute names to their values.
List of Polygon2DAnnotation.
3D polygon annotation.
Used in:
Class identifier (should be in [0, num_classes - 1]), where num_classes is the total number of classes in your ontology.
3D polygon. Points should be put into this field with counter-clockwise order.
A map of attribute names to their values. Add only key/value pairs that are stored in a project document accessible to project contributors.
List of Polygon3DAnnotation.
2D point for polygon annotation which allows negative coordinate for truncated rotated bounding box at the edge of an image because this kind of negative coordinate is meaningful.
Used in:
(x, y) point (in absolute pixel coordinates).
Used in:
(x, y, z) point (in 3D Cartesian coordinates).
6-DOF Pose
Used in: , , , , ,
Quaternion used to represent a 3D rotation Note, that rotation quaternions are unit-quaternions
Used in:
Basic point cloud container for DGP
Used in:
Relative file path for the radar point cloud Supported point cloud formats: compressed numpy (npz) format.
RadarPointCloud annotations Maps dgp.proto.AnnotationType (segmentation, instances) to the filename containing the point cloud annotation. Radar Point cloud annotations are written in to compressed numpy arrays (npz) under the 'data' key.
Optional metadata (i.e. miscellaneous enriched annotations) TODO: Support only specific metadata types
Structure of values in the pointcloud file. Each entry in this array specifies the field meaning. A simple pointcloud may simply contain X, Y, and Z channels. This would mean that the numpy data representation of this would be an [N, 3] shape structured array.
Alternatively, use point fields instead of strongly-typed ChannelType For example, radar data can be represented as D-dimensional tensors/matrices with point_fields describing the columns for the point cloud data
Ego-pose of this datum with respect to the first sample in the scene.
Used to describe the values in the radar pointcloud. The ChannelType refers to the dtypes of the radar point cloud stored under the 'data' key.
Used in:
X, Y, and Z coordinates of point.
Radar specific channels Point Velocity
Radar cross section
Support full covariance matrix for points converted to rectangular this will be symmetric so not all channels are needed
Support for raw radar points in spherical coordinates of sensor frame
Extra channels to support radar target message
RGB for color.
Class/Instance ID for point cloud semantic segmentation
Timestamp of this point sample, stored as UTC in microseconds
Region type enumeration Used to specify rough geographic region for corresponding Scene
Used in:
Artifact that is hosted in a remote location as defined by RemotePath
Used in:
Remote path of the artifact.
sha1sum of the artifact contents. In the case where the artifact is a full directory, the sha1 is generated by computing the sha1sum on the compressed directory. i.e. via `tar -cf - <dir> | sha1sum`.
Whether the remote artifact is a directory or a file. In the case of directory, the sha1 is generated by computing the sha1sum on the compressed directory. i.e. via `tar -cf - <dir> | sha1sum`.
A remote path that specifies the url of a file or directory For e.g. HTTP or S3 url (http://, s3://)
Used in: ,
Dataset sample that refers to data associated to a particular timestamp. A dataset sample is a container that encapsulates time-synchronized sensor data (images, point clouds, GPS/IMU etc), along with their associated annotations. Since sensor data are recorded in an asynchronous manner, the time-synchronization is assumed to be approximate. Samples within a scene are expected to have the same number of datums as their previous and next samples. In addition, we assume that the first sample in a scene will be the first datum in its chain (i.e. the datum(s) will all have prev_key set to null).
Used in:
Unique sample identifier (See dgp.idenfiers.proto) For samples, the "name" field is ignored. Typically, list of datum items in a sample are synchronized to the first item in the datum list.
List of datum keys encapsulated in the sample
Calibration identifier (sha1 of the calibration object)
Sample-specific metadata Optional, miscellaneous enriched annotations
Calibration for a sample
Sensor names for each of the corresponding datums
Intrinsics of the corresponding datum
Extrinsincs of the corresponding datum with respect to the first datum [T_0, T_1, T_2] -> [T_0.inv() * T_0, T_0.inv() * T_1, T_0.inv() * T_2]
A single scene consisting of sequential frames in a robot session.
Used in:
Unique name for a scene For public datasets where the scenes are uniquely identified, the scene name is directly used. For scenes without without unique names, generate a sha1 hash of all the datum keys combined.
Optional, short description of the scene (~200 characters)
Log identifier Refer to dgp.identifiers.proto for more information.
List of samples corresponding to this scene.
Optional metadata (i.e. miscellaneous enriched scene-level annotations).
List of Datum's contained in this Scene.
Date and timestamp of scene creation.
Task-specific ontologies Ontologies are stored under <scene_dir>/ontology/<ontology_sha1>.json Maps dgp.proto.AnnotationType (segmentation, instances, etc) to the filename containing the ontology for the specific AnnotationType/Task.
Scene statistics SceneDataset statistics will be aggregated on-the-fly.
Scene Dataset Scenes are stored in the DGP under the following structure: <scene_dataset_name> ├── <scene_name> │ ├── bounding_box_2d │ │ └── ... │ ├── bounding_box_3d │ │ └── ... │ ├── calibration │ │ └── <calibration_hash>.json │ │ └── ... │ ├── ontology │ │ └── <ontology_hash>.json │ │ └── ... │ ├── point_cloud │ │ └── ... │ ├── rgb │ │ └── ... │ ├── agent_tracks │ │ └── agent_track_<hash>.json │ │ └── ... │ ├── agents_slices │ │ └── agent_slice<hash>.json │ │ └── ... | └── ... │ └── scene_<scene_hash>.json │ └── agent_<agent_hash>.json │ └── map_<agent_hash>.json └── ... └── scene_dataset_v1.0.json └── agents_v1.0.json └── map_elements_v1.0.json
Dataset-specific metadata
List of scenes recorded for each split (train/val/test) in this dataset. Note: This corresponds to a particular task in the dataset. Maps <DatasetSplit, Scenes>
A collection of scenes
Used in:
Relative file paths for the json files serialized from Scene message. A Scene message is serialized and stored under the following naming convention: <scene_dir>/scene_<scene_hash>.json where <scene_hash> is the deterministic deterministic SHA1 hash hexdigest of a scene and served as the version of the scene, see dgp.utils.protobuf.generate_uid_from_pbobject for details.
Represents a map -- either discrete segments or a pointer to an external data object (e.g. for rasterized maps).
List of Lanes in the SceneMap.
List of zones, such as crosswalk regions, intersections.
List transformations from earth coord to vehicle coord.
A general encoding of map information.
Scene type enumeration Used to specify a rough land usage classification for the corresponding Scene
Used in:
List of scenes
Describes a file external to the serialized protobuf with an optional schema field that can be used to describe the file.
Used in:
Relative file path (relative to the location where this scene description is stored. This datum is expected to obey the datum schema below, if supplied.
An optional schema which describes the file at `filename`. Both the reader and the writer of this SelfDescribingFile need to have access to the datatype stored under `schema`, though for simple cases this may be a simple / integral type.
3-DOF Vector represented via double
Used in:
Defines zone information. A Zone consists of a list of boundaries, each boundary having a list of edges, where an edge is a 3D polyline, `explicit edges` are those actually in the list of polylines, and `implicit edges` are those that connect implicit edges with straight lines. Examples of zones are cross-walk intersection, etc.
Used in:
Identifier for the zone.
Type of Zone, like cross-walk.
List of Zone boundaries.