Select to view content in your preferred language

OpenLR Live Traffic: Last Update Failed "OpenLRCache table is empty" & "Failed to retrieve traffic data"

431
11
2 weeks ago
dky
by
Regular Contributor

Hi, 

   Environment: ArcGIS Pro 3.5.4 / TomTom Intermediate Traffic Data for Hong Kong

 

I'm working to integrate TomTom OpenLR Live Traffic feed in ArcGIS Pro. 

Following the instructions published on the "Work with Live Traffic" article, 

  • I've successfully created a compliant network dataset based on TomTom Multinet (Classic) data.
    Compliant: network dataset has historical traffic and all the required attributes
  • I skipped step 4 and 5 because they are not relevant to me
  • I configured the "Traffic Service" "Traffic Feeds" and checked "Hong Kong"
  • I left "Use TMC Live Traffic" unchecked.
  • I clicked "OK", saved, and created the corresponding .traffic file.
  • I closed and restarted ArcGIS Pro,
    Upon opening the project file, there appears to be traffic data!
    I checked the traffic cache directory and there's stuff there too. 
    Horray?
  • I opened the "Traffic" tab in the Network Dataset Properties for my network dataset
  • The Live Traffic Data Status shows:
    "Last update failed" and the following messages:

***************
Current time : 11/18/2025 5:46:52 PM
Last Updated : None
Start Window : None
End Window : None
Speed Data Available : False
Road Closure Data Available: False
Messages warning. Traffic speeds not updated because N_1_OpenLRCache table is empty.
warning. Failed to retrieve traffic data.

 

"lastUpdatedMessages": [
{
"description": "Traffic speeds not updated because N_1_OpenLRCache table is empty.",
"type": "warning"
},
{
"description": "Failed to retrieve traffic data.",
"type": "warning"
}

 

Question 1:  Is this a bug??? What does this error mean?  How can I fix it? 
 I ran procmon and tcpmon to watch Pro and yes, indeed it was able to access the tomtom traffic feed server.
  Not to mention there appears to be traffic data in map view ... So clearly Pro is lying to me here 😅

Question 2: The document says "The appropriate network attributes for Functional Road Class, Form of Way, Travel Direction, and Length" How do I configure the Network Attribute Mappings? What is the correct workflow for this? 

Question 3: I think my scenario is the "access to traffic feeds from a data provider such as TomTom" option (as documented) but the workflow seems to forget to talk about this. I see data in the map but all indicators shows red and errors (see attached "BuildOpenLrCache" and "Live Traffic Data Status" screenshots). How can i reliably know Pro fetched the data? Are these error indicators bugs in this part of the product?

 

Question 4: I have access to the TomTom incidents data which I also configured in the .traffic file but it seems like Pro didn't bother to fetch that.

a) How can I make Pro fetch and more importantly use the incidents data?

b) How can i ensure the Route solver will use the traffic data as a factor in its calculation?

c) How do I incorporate the incidents data for incorporation into Route solver? 

 

 

Many thanks,

Derek

 

 

build-openlr-cache-gp-fail.PNGNetwork Dataset Properties for Network NDNetwork Dataset Properties for Network ND

11 Replies
FrankK
by
Occasional Contributor

Question 1: Is this a bug??? What does this error mean? How can I fix it?

> I'm not 100% sure, we need to dig into this a bit more.

> The cache path look a bit odd, is that what the config has?

> if you follow that location what if anything is in that folder?

 

Question 2: The document says "The appropriate network attributes for Functional Road Class, Form of Way, Travel Direction, and Length" How do I configure the Network Attribute Mappings? What is the correct workflow for this?

> This need to be mapped to network descriptor attributes, I believe you must of mapping something (cutoff in the UI screenshot above) otherwise I don't think the UI would allow you to apply the OpenLR traffic config
> I think multinet classic has a FRC and a FOW ... but I don't think they are have the same values as are required for OpenLR. I will need to is if I can figure this out.
> Not sure about what multinet classic has for Travel Direction. I will need to is if I can figure this out also

 

Question 3: I think my scenario is the "access to traffic feeds from a data provider such as TomTom" option (as documented) but the workflow seems to forget to talk about this. I see data in the map but all indicators shows red and errors (see attached "BuildOpenLrCache" and "Live Traffic Data Status" screenshots). How can i reliably know Pro fetched the data? Are these error indicators bugs in this part of the product?

> "access to traffic feeds from a data provider such as TomTom" has to be done through TomTom itself, they would provide the necessary urls etc to get to the data. once you have that that is where a .traffic is used to specify the urls

Question 4: I have access to the TomTom incidents data which I also configured in the .traffic file but it seems like Pro didn't bother to fetch that.

a) How can I make Pro fetch and more importantly use the incidents data?
b) How can i ensure the Route solver will use the traffic data as a factor in its calculation?
c) How do I incorporate the incidents data for incorporation into Route solver?

> For incidents we only use road closure from the incidents feed, and these are applied as soft-restricted lines, so the are highly penalized but can be traversed if there are no other feasible paths

dky
by
Regular Contributor

Hi @FrankK - Thank you for the thoughtful reply!

 


@FrankK wrote:

Question 1: Is this a bug??? What does this error mean? How can I fix it?

> I'm not 100% sure, we need to dig into this a bit more.

How can I help? Please dm me with specific tasks and I'd be happy to do it!

 

> The cache path look a bit odd, is that what the config has?

> if you follow that location what if anything is in that folder?

I had to censor the cache path; however it's aligned with the .traffic file as well.
And yes, there is a 1KB file named "cleanup" and folders with names "openlr.75eaa3e..."

Inside these folders are, 
"openlrs.db" (130KB), "status.13.5.dat" (1KB) and "update.lock" (0KB) file. They're dated around the time of last launch of arcgis pro. 

 

Question 2: The document says "The appropriate network attributes for Functional Road Class, Form of Way, Travel Direction, and Length" How do I configure the Network Attribute Mappings? What is the correct workflow for this?

> This need to be mapped to network descriptor attributes, I believe you must of mapping something (cutoff in the UI screenshot above) otherwise I don't think the UI would allow you to apply the OpenLR traffic config

Yes, you're correct - those must be mapped in order to apply the OpenLR traffic config.
Since there wasn't any published guidance on how to create these attribute mappings,
I just made a guess and manually created entries in the "Travel Attributes" --> "Descriptors".
Strange how I created the descriptor (which supposedly is an attribute mapping, but where do I tell it the field name to map the named descriptor to?)

As in, when i create a new descriptor in the network dataset properties, it just has a "Name", "Units", "Data Type", "Parameters" and "Evaluators" ... but how do i tell it to map to the "FRC" field?

 

> I think multinet classic has a FRC and a FOW ... but I don't think they are have the same values as are required for OpenLR. I will need to is if I can figure this out.

Yes indeed Multinet Classic has FRC and FOW fields.
How can I help? What are the values required for OpenLR?

 

> Not sure about what multinet classic has for Travel Direction. I will need to is if I can figure this out also

For Travel Direction - without the data dictionary in hand, I see a field called "ONEWAY". 
Do you need more info?

 

Question 3: I think my scenario is the "access to traffic feeds from a data provider such as TomTom" option (as documented) but the workflow seems to forget to talk about this. I see data in the map but all indicators shows red and errors (see attached "BuildOpenLrCache" and "Live Traffic Data Status" screenshots). How can i reliably know Pro fetched the data? Are these error indicators bugs in this part of the product?

> "access to traffic feeds from a data provider such as TomTom" has to be done through TomTom itself, they would provide the necessary urls etc to get to the data. once you have that that is where a .traffic is used to specify the urls

Presumably you're referring to the TomTom Intermediate Traffic feed that provides the content.proto, with the requisite certificate auth -- If so, yes, I have all of that. 

Despite the errors (from the screenshots in my original post), when I add the network dataset to a map, it seems like traffic data. I'm just not sure if this reliable because of the errors. 

Is there any way to validate this? 

 

Thanks, 

Derek

 

 

 

0 Kudos
FrankK
by
Occasional Contributor

Quick answers to some of the above

Q1

- give the files in the openlr.75eaa3e... folder it does not look like it is pulling down file, you should have files of the form "speed.*.dat" files

- I'm assuming you configured historical traffic from the multinet data.  So if you are seeing traffic it is probably the historical.

Q2

- so the attribute mapping as shown in the screenshot in the help is from the SMP data we create (from a different version of TomTom data ) 

- As in the dialog shown of the OpenLR attribute mapping in the help they point to descriptor attributes "OpenLR FRC", "OpenLR FOW", and "Travel Direction" (and distance).

The data you have needs to have attribute that adhere to the OpenLR spec, in the help under "Configure OpenLR live traffic from a traffic service" it has a table that has a link to the OpenLR spec pdf.

Although Mulitnet classic has FOW and FRC I don't believe they are the same as what is defined in the OpenLR spec.  And I'm not sure about Travel Direction in Mulitnet classic yet.

As an example, the esri SMP date we create has specific attributes for these and their definitions are below.  But the source data is from not Multinet classic, and I believe during processing of the raw data these might be created (that is the source data we use might need to be manipulated to adhere to what OpenLR needs)

 FrankK_6-1763572343337.pngFrankK_7-1763572363204.pngFrankK_8-1763572376818.png

Let me see if I can find out about the Mutlinet classic re the attributes it does have.    The first steps are to ensure the streets data has the correct values for OpenLR, then setup the maps.  

 

 

 

FrankK
by
Occasional Contributor

Looking a the above some more when you ran the `BuildOpenLrCache` you got the error

FrankK_0-1763649268999.png

I don't think the Mulitnet values out the box could be used but even so I don't believe you should get that error.  The tool should run but probably not find many or any matching OpenLR string to features.

Can you provide the .traffic file you use? But REMOVE your apikeys from the urls, similar to the way the help shows it, e.g. <APIKEY> vs actual key, like below

ffUrl": "https://cert-traffic.tomtom.com/tsq/hdf-detailed/MEX-HDF_DETAILED-TMCOPENLR/<APIKEY>/content.proto?flowType=ff",

 

 

FrankK
by
Occasional Contributor

I looked at the multinet data regarding the fields need to create the network descriptor attributes.

1) for the Functional Road Class you need a new feature class attribute, something like OpenLR_FOW,
And then I believe its values can be mapped as below from the MultiNet FOW:
- FOW=1 --> OpenLR_FOW=1
- FOW=2 --> OpenLR_FOW=2
- FOW=3 --> OpenLR_FOW=3
- FOW=4 --> OpenLR_FOW=4
- FOW=8 --> OpenLR_FOW=5
- FOW=10 --> OpenLR_FOW=6
- all other FOW values --> OpenLR_FOW=7

2) The FRC values seem ok as is, so it could be used directly.

3) The FT and TF_Travel_Direction looks like it is same as TF_AllVehicles_Restricted and FT_AllVehicles_Restricted, so those could be used directly.

So the above fields can be used to create the 3 descriptors in the screenshot in previous reply.

 

dky
by
Regular Contributor

@FrankK wrote:

I looked at the multinet data regarding the fields need to create the network descriptor attributes.

1) for the Functional Road Class you need a new feature class attribute, something like OpenLR_FOW,
And then I believe its values can be mapped as below from the MultiNet FOW:
- FOW=1 --> OpenLR_FOW=1
- FOW=2 --> OpenLR_FOW=2
- FOW=3 --> OpenLR_FOW=3
- FOW=4 --> OpenLR_FOW=4
- FOW=8 --> OpenLR_FOW=5
- FOW=10 --> OpenLR_FOW=6
- all other FOW values --> OpenLR_FOW=7

Okay, implemented and will put it in the field script evaluator:

getOpenlrFow()getOpenlrFow()

More to come as i find out more ..

0 Kudos
dky
by
Regular Contributor

Hi @FrankK 

 

More debugging fun ... :

Event time="Fri Nov 21 15:18:28.895" type="Error"
     HTTP Status 406 returned when downloading
     https://cert-traffic.tomtom.com/tsq/hdf-detailed/HKG-HDF_DETAILED-OPENLR/---APIKEY---/content.proto?...
Details: Accept-Encoding header must be present and support gzip.�x8np$�@~ۮ�

 
 
 

Then I noticed your sample .traffic file has some interesting additions:

"acceptGZipEncoding": true,
"tdsCompressionLevel": 5,

 

These are not documented in https://pro.arcgis.com/en/pro-app/3.5/help/analysis/networks/live-traffic.htm 

How can we ensure these get properly added to the documentation?

 

Anyway, continuing ... So I plugged them in and ...

buildopenlrcache-success.png

 

But it returns this:

Processed
Matched: 0
Unmatched: 3431
Already cached: 0
Outside extent: 0
Removed: 0
Total: 3431

 

And in the Network Dataset properties - after running "BuildOpenlrCache" gp tool:

success, maybe?success, maybe?

 

So - in summary:

  • Through a lot of instrumentation in Pro, found out all paths leading to getting the traffic data from TomTom resulted in a HTTP 406 error
  • Specifically, the server side is looking for a "Accept-Encoding" key with the corresponding value "gzip"
  • Added the (undocumented) "acceptGZipEncoding" and "tdsCompressionLevel" to my .traffic and BuildOpenlrCache now shows success

 

Questions:

  1. Perhaps can we log a bug / enhancement in the product to surface such errors more clearly? This costed me 2 weeks. (feel free to tag me for the bug credits!) 🤣 
  2. Would you have a cheat sheet /answer card for the OpenLR to Multinet Classic (Network Dataset) field data mapping?  😅
  3. How do I find out how to align the OpenLR field values with the road network (multinet classic)?
  4. For this Live Traffic functionality, what is the recommended source road network datasets for TomTom live traffic integration? 
    I thought ... "I have TomTom traffic data ... Hmm, maybe I should use MultiNet" makes sense but maybe not?

 

Thanks so much

 

Derek

 

 

 

0 Kudos
dky
by
Regular Contributor

@FrankK :

.traffic configuration file:

dot-traffic config filedot-traffic config file

0 Kudos
dky
by
Regular Contributor

Hi @FrankK 

 

Apologies for the delay - Spent some time to take a deep look into this and wanted to share some findings:

 


@FrankK wrote:

Quick answers to some of the above

Q1

- give the files in the openlr.75eaa3e... folder it does not look like it is pulling down file, you should have files of the form "speed.*.dat" files

I can confirm yes, it does look like the OpenLR speeds info file wasn't created:

speeds-info-missingspeeds-info-missing

 

Here is some telemetry from the ArcGIS Pro Diagnostic Monitor; 
Specifically, I had the map with the network dataset open and ran the "BuildOpenLRCache" geoprocessing tool.

(Of interest: a lonely untagged "Parse error" entry)

parse-errorparse-error

 

 

 

0 Kudos