Location Data Supported

The Real-Time Anonymizer currently supports only the traffic usse case, which needs trajectory location data (provided in smaller chunks). A trajectory is a sequence of sequential positions that a single device visited in a single journey without making any significant stops. For example, in a case when a vehicle began a journey from a home location, driven to and stopped at a school location, and then continued onto a work location, we would expect to have two separate trajectories:

  1. Home → School trajectory
  2. School → Work trajectory

A trajectory consists of a sequential set of point positions ordered by timestamp. These raw positions are analyzed and anonymized, with a subset of positions output after anonymization.

Data Formats

The Real-Time Anonymizer works with the SENSORIS and SDII vehicle sensor data formats.

SENSORIS Data Format

The Real-Time Anonymizer can use SENSORIS data in Protobuf binary as the input/output data format. The goal of SENSORIS is to provide a unified exchange format to allow service and map providers to use vehicle-based sensor data without the need of transformation between different manufacturers depending on formats and the danger of data loss through translation.

The core use cases of SENSORIS are the transportation of the following data:

  • near real-time sensor information, for example hazard warnings and driver information
  • delayed batch sensor information, for example map learning
  • delayed statistical aggregation of sensor information, for example, driver behaviour information.

For more information about Protobuf, see https://developers.google.com/protocol-buffers/docs/overview.

For more information about the SENSORIS specification 1.0.0, https://sensor-is.org/wp-content/uploads/sites/21/2019/07/sensoris-specification-v1.0.0-public-1.zip.

Requirements

The Real-Time Anonymizer requires the following data to be present in the input SENSORIS data:

  • one or more sensoris.protobuf.messages.data.DataMessage objects that represent trajectories
  • list of sensoris.protobuf.categories.localization.VehiclePositionAndOrientation objects that describe trajectory points
  • each VehiclePositionAndOrientation object including the following:
    • an envelope with a sensoris.protobuf.types.base.Timestamp object that defines the timestamp of the point
    • sensoris.protobuf.types.spatial.PositionAndAccuracy with coordinates stored in field geographic_wgs84
    • sensoris.protobuf.types.spatial.RotationAndAccuracy with heading stored in field yaw

Additionally, you should include vehicle speed information within a DataMessage object that represents trajectory to capture the speed the vehicle was travelling at. This includes the list of sensoris.protobuf.categories.localization.VehicleSpeed defining objects with the following content:

  • an envelope with a sensoris.protobuf.types.base.Timestamp object that defines the timestamp of the speed information. The timestamp of a VehicleSpeed object can match the timestamp of a corresponding VehiclePositionAndOrientation object (a point in trajectory) but is not required to.
  • sensoris.protobuf.types.spatial.XyzVectorAndAccuracy with speed stored in field metric_vehicle - with units meter per second squared.

The following SENSORIS Protobuf data contains a DataMessage object that represents trajectory with two points: VehiclePositionAndOrientation objects and speed information for these points, so-called VehicleSpeed objects.

data_message {
  envelope {
    ids {
      vehicle_id {
        value: "example Vehicle ID"
      }
    }
  }
  event_group {
    localization_category {
      vehicle_position_and_orientation {
        envelope {
          timestamp {
            posix_time {
              value: 1584435551695
            }
          }
        }
        position_and_accuracy {
          geographic_wgs84 {
            longitude {
              value: 1293282600
            }
            latitude {
              value: 5230165310
            }
          }
        }
      }
      orientation_and_accuracy {
         euler_vehicle {
            yaw {
              value: 200000
            }
         }
      }
        ...............Positions with vehicle speed info ..............
      vehicle_position_and_orientation {
        envelope {
          timestamp {
            posix_time {
              value: 1584435602695
            }
          }
        }
        position_and_accuracy {
          geographic_wgs84 {
            longitude {
              value: 1294489980
            }
            latitude {
              value: 5229859370
            }
          }
        }
      }
      vehicle_speed {
        envelope {
          timestamp {
            posix_time {
              value: 1584435551695
            }
          }
        }
        value_and_accuracy {
          metric_vehicle {
            x {
              value: 133
            }
          }
        }
      }
      ...............Positions with vehicle speed info ..............
      vehicle_speed {
        envelope {
          timestamp {
            posix_time {
              value: 1584435602695
            }
          }
        }
        value_and_accuracy {
          metric_vehicle {
            x {
              value: 187
            }
          }
        }
      }
    }
  }
}

SDII Data Format

The Real-Time Anonymizer can use SDII data in Protobuf binary as the input/output data format. SDII is a flexible data format that defines a consistent interpretation for data gathered and sent by all vehicles on the road. HERE published the first SDII Schema in 2015. The ultimate goal is to allow vehicles to transport a snapshot of the environment to help map and service providers to understand near real-time conditions for reducing accidents, increasing journey comfort and better mobility.

The core Use Cases of SDII are the transportation of:

  • near Real-Time Sensor Information, for example, Hazard Warnings and Driver Information
  • delayed Batch Sensor Information, for example, Map Learning
  • delayed statistical Aggregation of Sensor Information, for example, Driver Behaviour Information.

For more information about Protobuf, see https://developers.google.com/protocol-buffers/docs/overview.

Read more about SDII: https://developer.here.com/documentation/sdii-data-spec/dev_guide/topics/introduction.html For more information about the SDII, https://developer.here.com/documentation/sdii-data-spec/dev_guide/topics/introduction.html.

Requirements

The Anonymization Library requires the following data to be present in the input SDII data message:

  • one Envelope – Mandatory
  • one Path – Mandatory
  • one transient vehicle ID - Mandatory
  • one or more Path Events – Optional

The following SDII protobuf data contains a Message object that represents a Trajectory and Path Events related to it.

{
  "envelope": {
  "version": "1.0",
  "submitter": "HERE Test User",
  "vehicleMetaData": {
    "vehicleTypeGeneric": "PASSENGER_CAR",
    "vehicleSpecificMetaData": [
    { "key": "SpecificVehicleType", "value": "HERE Test Car" }
    ],
    "vehicleReferencePointDeltaAboveGround_m": 1.62,
    "curvatureAccuracy_1pm": 1e-005,
    "slopeAccuracy_percent": 0.01
  },
  "transientVehicleID": 12345
  },
  "path": {
  "positionEstimate": [
    {
    "timeStampUTC_ms": 1397764944000,
    "positionType": "RAW_GPS",
    "longitude_deg": 8.9743712,
    "latitude_deg": 49.4607534,
    "horizontalAccuracy_m": 1.3,
    "altitude_m": 123.7,
    "heading_deg": 76.09999999999999,
    "speed_mps": 13.8,
    "altitudeAccuracy_m": 24.5,
    "headingAccuracy_deg": 2.7,
    "speedAccuracy_mps": 0.7
    },
    {
    "timeStampUTC_ms": 1397764945000,
    "positionType": "RAW_GPS",
    "longitude_deg": 8.9748056,
    "latitude_deg": 49.4608278,
    "horizontalAccuracy_m": 1.4,
    "altitude_m": 123.6,
    "heading_deg": 72.515,
    "speed_mps": 13.4,
    "altitudeAccuracy_m": 25.7,
    "headingAccuracy_deg": 2.6,
    "speedAccuracy_mps": 0.6
    },
    {
    "timeStampUTC_ms": 1397764946000,
    "positionType": "RAW_GPS",
    "longitude_deg": 8.975258999999999,
    "latitude_deg": 49.4609312,
    "horizontalAccuracy_m": 1.7,
    "altitude_m": 123.5,
    "heading_deg": 69.405,
    "speed_mps": 13.1,
    "altitudeAccuracy_m": 33.3,
    "headingAccuracy_deg": 2.1,
    "speedAccuracy_mps": 0.8
    },
    {
    "timeStampUTC_ms": 1397764947000,
    "positionType": "RAW_GPS",
    "longitude_deg": 8.975643399999999,
    "latitude_deg": 49.4610356,
    "horizontalAccuracy_m": 3.8,
    "altitude_m": 130.522,
    "heading_deg": 67.526,
    "speed_mps": 13.2,
    "altitudeAccuracy_m": 50.0,
    "headingAccuracy_deg": 3.1,
    "speedAccuracy_mps": 1.7
    }
  ]
  },
  "pathEvents": {
  "vehicleDynamics": [
    {
    "timeStampUTC_ms": 1397764944000,
    "curvature_1pm": 0.002077,
    "slope_percent": -0.09900000000000001
    },
    {
    "timeStampUTC_ms": 1397764945000,
    "curvature_1pm": 0.001821,
    "slope_percent": -0.129
    },
    {
    "timeStampUTC_ms": 1397764946000,
    "curvature_1pm": 0.001298,
    "slope_percent": -0.145
    },
    {
    "timeStampUTC_ms": 1397764947000,
    "curvature_1pm": 0.00086,
    "slope_percent": -0.145
    }
  ],
  "signRecognition": [
    {
    "timeStampUTC_ms": 1397764945300,
    "roadSignType": "SPEED_LIMIT_START",
    "roadSignPermanency": "STATIC",
    "roadSignValue": "30",
    "roadSignDependencies": "SCHOOL"
    }
  ]
  }
}

results matching ""

    No results matching ""