Skip to content

ATC

Work in progress

General Guidelines

Data should be provided at intervals not exceeding one hour in length, with 15 minute intervals generally recommended for data to be used in microsimulation modelling.

Data Structure

Data should be provided through use of a separate JSON file for each counter used in the survey. These files should be named in a manner such that it is easy to identify both the task order they relate to and the site that they each contain.

Required Fields

Metadata

In addition to the mandatory fields detailed in the Data Formats page, there are four additional metadata fields required for every ATC site, each of which is detailed in the following sections.

Field Description Example
site_id A unique identifier for this site within the task order ATC1
location A location object, with specified keys. See below
directions An array containing the directions used in the count data, with specified keys. See below
classifications An array containing the vehicle type classifications used in the count data, with specified keys. See below

Location

The location object for each ATC site should be sufficiently detailed for it to be accurately located either through mapping software or from its description alone. This information should provided according to the actual location used for the installation of the counter, in case this varies from the brief for any reason.

Coordinates should be provided in British National Grid (EPSG:27700) form.

Field Description Example
description Text-based description of the counter location. Port Dundas Road, 50m South of junction with Milton St
eastings x-coordinate of the counter location as installed. 259016
northings y-coordinate of the counter location as installed. 666122
Example
{
    "metadata": {
        "location": {
            "description": "Port Dundas Road, 50m South of junction with Milton St",
            "eastings": 259016,
            "northings": 666122
        }
    }
}

Directions

Each direction used in the data should be detailed within the metadata, with both the exact encoding used in the data and a description of the direction to validate this.

Field Description Example
direction Direction as used in the data. NB
description Description of the direction of travel. Towards Milton Street
Example
{
    "metadata": {
        "directions": [
            {
                "direction": "NB",
                "description": "Towards Milton Street"
            },
            {
                "direction": "SB",
                "description": "Towards Cowcaddens Road"
            }
        ]
    }
}

Classifications

The majority of ATC surveys require categorised vehicle counts. To avoid ambiguity, the categorisation methods used by the counter should be detailed as clearly as possible within this key.

Field Description Example
class_id Unique identifier to recognised the vehicle class, as used in the data. Should be an integer. 1
description Description of the class. Car
Example
{
    "metadata": {
        "classifications": [
            {
                "class_id": 1,
                "description": "Car"
            },
            {
                "class_id": 2,
                "description": "LGV"
            },
            {
                "class_id": 3,
                "description": "HGV"
            }
        ]
    }
}

Data

Count data should be provided as an array with one entry per time period. Within this, the count should be specified for each direction and vehicle class.

Field Description Example
start The start of the time period being reported by this record, in YYYY-MM-DD HH:MM format. 2019-11-01 07:00
end The end of the time period being reported by this record, in YYYY-MM-DD HH:MM format. 2019-11-01 08:00
counts An array containing the observed counts, with specified keys. See below

Counts

The reported counts include class identifiers which should directly match up to the values as provided in the metadata.

It is also critical that observed counts of zero are included, and "unobserved" periods are not recorded as zero. The recipient of the data must be able to distinguish between gaps in the data (e.g. due to malfunctioning equipment) and actual periods with no observations.

Field Description Example
direction Direction of travel. Must match up with directions specified in the metadata NB
class_id Vehicle class ID. Must match up with directions specified in the metadata 1
count Number of vehicles recorded under the given parameters. 15

Basic Checks

Preparing the data

Most checks should be undertaken through use of hourly totals, though it may also be beneficial to check data at shorter time intervals if collected.

Tidality

Vehicle counts, particularly in locations near to populous areas, can be very "tidal" - large flows in one direction in the morning, and then in the other direction in the evening. Where this occurs, the direction of flows should be checked to confirm that the directions reported are correct.

Vehicle type proportions

In most circumstances vehicle types relating to "cars" should provide the majority of flow at any given location. This is most prevalent during the daytime hours - at a minimum, any instance of "non-car" vehicle counts exceeding "car" vehicle counts for a one-hour period between 7am and 7pm (inclusive) should be investigated.

Example Structure

{
    "metadata": {
        "task_order": "B26354",
        "survey_type": "ATC",
        "start_date": "2019-11-01",
        "end_date": "2019-11-01",
        "collected_by": "Tyrell Corporation",
        "incidents": [],
        "errors": [],
        "site_id": "ATC1",
        "location": {
            "description": "Port Dundas Road, 50m South of junction with Milton St",
            "eastings": 259016,
            "northings": 666122
        },
        "directions": [
            {
                "direction": "NB",
                "description": "Towards Milton Street"
            },
            {
                "direction": "SB",
                "description": "Towards Cowcaddens Road"
            }
        ],
        "classifications": [
            {
                "class_id": 1,
                "description": "Car"
            },
            {
                "class_id": 2,
                "description": "LGV"
            },
            {
                "class_id": 3,
                "description": "HGV"
            }
        ],
    },
    "data": [
        {
            "start": "2019-11-01 07:00",
            "end": "2019-11-01 08:00",
            "counts": [
                {
                    "direction": "NB",
                    "class_id": 1,
                    "count": 10
                },
                {
                    "direction": "NB",
                    "class_id": 2,
                    "count": 8
                },
                {
                    "direction": "NB",
                    "class_id": 3,
                    "count": 5
                },
                {
                    "direction": "SB",
                    "class_id": 1,
                    "count": 8
                },
                {
                    "direction": "SB",
                    "class_id": 2,
                    "count": 4
                },
                {
                    "direction": "SB",
                    "class_id": 3,
                    "count": 2
                }
            ]
        },
        {
            "start": "2019-11-01 08:00",
            "end": "2019-11-01 09:00",
            "counts": [
                {
                    "direction": "NB",
                    "class_id": 1,
                    "count": 10
                },
                {
                    "direction": "NB",
                    "class_id": 2,
                    "count": 8
                },
                {
                    "direction": "NB",
                    "class_id": 3,
                    "count": 5
                },
                {
                    "direction": "SB",
                    "class_id": 1,
                    "count": 8
                },
                {
                    "direction": "SB",
                    "class_id": 2,
                    "count": 4
                },
                {
                    "direction": "SB",
                    "class_id": 3,
                    "count": 2
                }
            ]
        }
    ]
}