Retrieve LINK_ATTRIBUTE_FC1..5 based on LINK_ID - here-api

Assume I have a LINK_ID which I got using the LINK_FC5 layer with search/proximity resource described here.
Note that the search/proximity resource doesn't allow non-geometric layers such as LINK_ATTRIBUTE_FC5 to be specified.
Errorcode: 400, message: Provided layer does not contain geometries.
The documentation suggests using tile resource for getting the non-geometric layers, but that seems quite inefficient. Within one tile there are many LINK_IDs. Hard for me to believe there is no better way to do this. Hence the question:
What is a efficient way to retrieve all attributes from the LINK_ATTRIBUTE_FC5 layer using the LINK_ID?

You need to club to APIs to get the desired attributes for link IDs. So a tile comprises of multiple layers, Each layer contains multiple link IDs. this requires to make association between these resources. You can also refer to example : https://tcs.ext.here.com/examples/v3/pde_get_any_link_info
First API is :
https://s.fleet.ls.hereapi.com/1/index.json?layer=ROAD_GEOM_FCn&attributes=LINK_ID&values=548294575,833539855,550088940,930893121&apiKey=xxx
The response will be like :
"Layers": [
{
"layer": "ROAD_GEOM_FC5",
"level": 13,
"tileXYs": [
{
"x": 8580,
"y": 6376
}
]
},
{
"layer": "ROAD_GEOM_FC1",
"level": 9,
"tileXYs": [
{
"x": 534,
"y": 397
},
{
"x": 536,
"y": 398
}
]
}
From here you will get level, tile x,y and layer,
2nd API will be :
https://s.fleet.ls.hereapi.com/1/tiles.json?apiKey=xx&tilexy=536,398&levels=13&layers=LINK_ATTRIBUTE_FC5

Related

How to quantize specific layers on OpenVINO Workbench?

I have a trained onnx model that needs to be quantized to INT8. But I want my last fully connected layers are still in FP32 or FP16. So how can I choose specific layers to quantize (or not to quantize)?
PS when I was working with NNCF, I just use parametr ignored_scopes. Maybe is there something similar here at Workbench?
Use "ignored" parameter in configuration file to exclude nodes or operation types from optimization.
"algorithms": [
{
"name": "DefaultQuantization", // Optimization algorithm name
"params": {
"ignored": {
// List of nodes that are excluded from optimization
"scope": [
"<NODE_NAME>"
],
// List of types that are excluded from optimization
"operations": [
{
"type": "<NODE_TYPE>",
// Includes excluding by attributes
"attributes": {
"<NAME>": "<VALUE>" // Lists of values is not included
}
},
{
"type": "<NODE_TYPE>" // Excluding only by type
}
]
}

Bug: Here routing isolines API returning same polygon for all distances

For some coordinates, the Here isoline API returns the same polygon for all the time distances, regardless of the range[values] value.
The example is for Burlington GO train station, ON, Canada, and changing the coordinates a few meters causes invalid data.
example:
curl --location -g --request GET 'https://isoline.router.hereapi.com/v8/isolines?transportMode=pedestrian&range[type]=time&range[values]=50,600&destination=43.339900,-79.809388&apikey=XXXXXX'
{
"arrival": {
"time": "2022-08-31T06:28:52+00:00",
"place": {
"type": "place",
"location": {"lat": 43.33981,"lng": -79.80958},
"originalLocation": { "lat": 43.3399,"lng": -79.8093881}
}
},
"isolines": [
{
"range": {"type": "time","value": 50},
"polygons": [{"outer": "BG86o1yC3mmn4E1C2GhI2C1KAhI1CArF4K1KgI1CiIqB2CgEA4G" }
]
},
{
"range": {"type": "time","value": 600},
"polygons": [{"outer": "BG86o1yC3mmn4E1C2GhI2C1KAhI1CArF4K1KgI1CiIqB2CgEA4G"}
]
}
]
}
If I change the coordinates just a few meters, to "lat": 43.3403845, "lng": -79.8089106 then it returns correct isolines.
Is there a best practice when selecting destination coordinates, any extra parameter I should use to make the results more predictable?
I consider this a bug, if you cannot return valid results you should throw an error, not return invalid data to clients.
I think you can get better results if you use the additional parameter "radius" (meters) for the place (lat, lng) that you provided.
This parameter instructs the router to consider all places within the given radius as potential candidates for route calculation. This can be either because it is not important which place is used, or because it is unknown. Radiuses wider than 200 meters are not supported.
For example: destination=43.339900,-79.809388;radius=100.
I hope this information is useful for you.
Regards.

Is there a way to get permanent link ids directly in HERE traffic flow result?

I want to use traffic flow data to enhance a route with traffic information like the jam factor.
The recommended way seems to get a route, download TMC tiles for all functional classes and areas of the route, and match the route links to the TMC codes in the traffic flow data, e.g. see How to use HERE Maps to develop custom routing algorithms? .
However, the traffic flow documentation (TrafficML_RealTime_Specification_v3.2.2.docx) mentions a tag "SHP/LID" in the Flow Item Description to contain the link id, which could simplify the whole process:
SHP/LID:
LinkID associated with the SHP reference. The linkID will be in
driving direction order; “F” represents travel direction FROM
reference node, “T” represents travel direction TO reference
node (For example, 123456789T or 987654321F).
In my API call I explicitly request shapes (responseattributes=sh) and receive them, but there is no "LID" field given.
https://traffic.api.here.com/traffic/6.2/flow.json?corridor=52.5396895,12.9778897;52.5394964,12.9782331;52.5390244,12.9769778;52.539078,12.976774;52.5392067,12.9762483;52.5395072,12.9750788;52.5396144,12.974714;52.5397754,12.974124;52.5400114,12.9732764;52.5405693,12.9723108;52.5409126,12.9719353;52.5415349,12.97068;52.5416744,12.9694784;52.5404727,12.9654121;52.5387347,12.9640496;52.5384343,12.9646397;52.5380695,12.9651332;52.5379193,12.965219;52.5370181,12.9656482;52.5359452,12.9659379;52.5349581,12.9661417;52.5339067,12.9663348;1000&responseattributes=sh,fc&app_id=xxx&app_code=yyy
{
"RWS": [
{
"RW": [
{
"FIS": [
{
"FI": [
{
"TMC": {
"PC": 10213,
"DE": "Berlin-Spandau",
"QD": "+",
"LE": 4.18578
},
"SHP": [
{
"value": [
"52.55838,12.96583 52.55761,12.96545 52.55705,12.9652 52.55641,12.96494 52.55588,12.96473 52.55577,12.96468 "
],
"FC": 1
},
{
"value": [
"52.55577,12.96468 52.55566,12.96464 "
],
"FC": 1
},
...
{
"value": [
"52.55935,12.96635 52.55838,12.96583 "
],
"FC": 1
}
],
"CF": [
{
"TY": "TR",
"SP": 120,
"SU": 121.78,
"FF": 105,
"JF": 0,
"CN": 0.99
}
]
},
Is there a way to receive permanent ids with the flow data?
There is a similar question and solutions.
Please have a look at below.
Why does not the TMC from traffic data match with the TMC from PDE layers LINK_TMC_FC?

In Geocoder here-api what are the different types of View

I am moving from Google to Here-api Geocoding service.In the Response JSON object there is a property View which is an array. I was not able to find in the documentation what types of objects might be in this collection. It seems that there is a type-_type property for every View and from all my testing I got only one object inside this array and it is always from the same type "_type": "SearchResultsViewType". My questions are:
Is it possible this collection that View collection to contain more than one object? Are they from the same "_type" or from a different "_type"?In short, besides probably ViewId how are different Views objects separated?
I made numerous requests to Geogoder API with switching on and off different parameters. I have searched here and in the API documentation.
This is how the Response object is looking now
{
"Response": {
"MetaInfo": {
"Timestamp": "2019-04-18T11:48:31.306+0000"
},
"View": [
{ "_type": "SearchResultsViewType",
"ViewId": 0,
"Result": .....

vega not plotting the data

I am brand new to Vega and I was trying to plot some charts on Vega (plugin ElasticSearch and Kibana). Below is the simple visulization I am trying to plot. I am following through the documentation to connect the existing data, however I am unable to get the visuals. It just shows Y and X axis labeled from the code below with blank plots. What am I doing wrong?
{
"$schema": "https://vega.github.io/schema/vega-lite/v2.json"
"data": {
url: {
%context%: true
index: test-data
}
format: {property: "hits.hits"}
},
"mark": {"type":"bar"}
"encoding": {
"x": {"field": "DEPT", "type": "ordinal"},
"y": {"field": "SALES", "type": "quantitative"}
}
}
The specification needs to be valid JSON. There are numerous things in your specification that make it invalid; for example:
all strings need to be enclosed in quotes (e.g. url and format)
all items need to be separated by commas (applies to nearly every line of your specification)
Finally, even if you change those syntax errors, the content of your specification doesn't follow the schema: for example, the "url" and the "format" properties of "data" both should be strings.
I would suggest beginning with the vega-lite tutorials, and go from there, modifying what you learn to work with your own data.

Resources