HERE Map Content bindings

1. Introduction

1.1 HMC

HERE Map Content(HMC) is a global and use-case agnostic Platform Data API catalog. It publishes HERE map data for Location Service development purposes. The catalog enables users to selectively consume features and attributes of interest for their use-case and select updated partitions only when getting the latest map data from the HERE Platform.

For more details: https://docs.here.com/intro-to-mapping-concepts/docs/mapping-concepts-intro

1.2 Content bindings

Content bindings provide access to content exposed in a layer(s). Bindings can be based on one of the existing layers, or based on a group of more layers.

Goal of content bindings is to provide a uniform way for final users to access a variety of complex data models, in a python-friendly way.

2. Layers supported

PySDK also supports below HMC bindings based on multiple layers.

  • Administrative boundary for a segment
  • Environmental zones for a segment
  • Speed limit from navigation and advanced navigation attributes layers
  • Street name for a segment

3. Using HMC Bindings

Binding have the following high-level API:

  • get gives all the objects for one or more partitions
  • get_ref gives a single object
  • get_referencing gives all the objects based on reference given

Please note get_ref or get_referencing works only if object_type() have RefType.

Initialization

from here.platform import Platform
from here.geopandas_adapter import GeoPandasAdapter
from here.content.hmc2 import HMC
import pandas as pd
from here.platform.adapter import make_ref
from IPython.display import display, FileLink

platform = Platform()
hmc = HMC(platform, adapter=GeoPandasAdapter())


display(f"Catalog Id: {hmc.content.catalog_hrn} , Version:{hmc.content.version}")

'Catalog Id: hrn:here:data::olp-here:rib-2 , Version:9071'

def types_to_df(types):
    def to_record(kv):
        k, v = kv
        return {
            "Type": k,
            "Data Class": '.'.join([v.__module__, v.__qualname__]),
            "Index by partition": v.indexer.partition is not None,
            "Index by ID": v.indexer.identifier is not None,
            "Ref Types": ", ".join(v.indexer.refs.keys()) or None
        }
    return pd.DataFrame.from_records(map(to_record, types.items()), index="Type")
Warning: Before running below cells please make sure you add your API key. Please use API Id as API key.
## Install HERE Map Widget for Jupyter. This is needed for using Here Maps  
#!pip install here-map-widget-for-jupyter
# Functions needed for using Here Maps
from ipyleaflet import GeoData
import here.geotiles.heretile as ht 
from ipyleaflet import Map
import geopandas as gpd
from shapely.geometry.polygon import Polygon
import os

# replace your API key here.
api_key = os.environ["LS_API_KEY"]

def plot_geometry(dataFrame, geo_column):
    geoDF = gpd.GeoDataFrame(dataFrame[dataFrame['location.geometry'] != None][[geo_column]].copy(), 
                             geometry=geo_column)
    center_point = geoDF[geo_column].centroid.head(1).values
    geoData = GeoData(geo_dataframe=geoDF, 
                    style={"strokeColor": "rgba(128,0,128,1)"},
                    hover_style={"strokeColor": "rgba(255,0,0,1)"},
                    name='geometry_layer')
    m = Map(
        api_key=api_key,
        center=[center_point.y[0], center_point.x[0]],
        zoom=12,
    )

    m.add_layer(geoData)
    return m



def plot_here_tiles(tile_ids):
    tiles = [Polygon(ht.get_boundary_ring(t)) for t in tile_ids]
    tiles_df = pd.DataFrame(tiles, columns=["geometry"])
    geoDF = gpd.GeoDataFrame(tiles_df, geometry='geometry')
    center_point = geoDF['geometry'].centroid.head(1).values
    geoData = GeoData(geo_dataframe=geoDF, style={"strokeColor": "rgba(128,0,128,1)"},
                      hover_style={"strokeColor": "rgba(255,0,0,1)"},
                      name='here_tiles')
    m = Map(
        api_key=api_key,
        center=[center_point.y[0], center_point.x[0]],
        zoom=12,
    )

    m.add_layer(geoData)
    return m 

def plot_multiple_geometry(geometries):
    geoData_1 = GeoData(geo_dataframe=geometries['Nodes'], 
                    style={"strokeColor": "rgba(128,0,128,1)"},
                    hover_style={"strokeColor": "rgba(255,0,0,1)"},
                    name='geometry_layer_1')
    geoData_2 = GeoData(geo_dataframe=geometries['Segments'], 
                    style={"strokeColor": "rgba(128,0,128,1)"},
                    hover_style={"strokeColor": "rgba(255,0,0,1)"},
                    name='geometry_layer_2')
    center_point = (geometries['Nodes'].set_crs(epsg=4328, allow_override=True)).centroid.head(1).values
    m = Map(
        api_key=api_key,
        center=[center_point.y[0], center_point.x[0]],
        zoom=12,
    )

    m.add_layer(geoData_1)
    m.add_layer(geoData_2)
    return m

3.1 Street Names

Layer Id - street-names

tiles = ['23671200-25332448-25332461', '1469256839-1469256831']
street_names = hmc.street_names
types_to_df(street_names.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
streethere.content.hmc2.street_names.StreetNameTrueTrueNone
contexthere.content.hmc2.place_context.PlaceContextFalseFalseNone
street_sectionhere.content.hmc2.street_names.StreetSectionTrueTrueNone
df = street_names.get(tiles, 'street')
df.head(2)

.dataframe thead th {text-align: right;}

street_name
partition_id street_id
23671200-25332448-25332461 here:af:street:-BY1y-M9YIMPVcYWPMnljD [{'full_name': {'value': 'Pueblito', 'language...
here:af:street:-u0Lsl1fU5PvURIYcAG1lC [{'full_name': {'value': 'Playa Nanzal', 'lang...
df = street_names.get(tiles, 'context')
df.head(2)

.dataframe thead th {text-align: right;}

classification_type city postal_code country state region county district sub_district further_zone default_mapping political_view political_view_exception
0 DISTRICT [{'preference': 'PRIMARY', 'place_ref': {'part... <NA> [{'preference': 'PRIMARY', 'place_ref': {'part... [{'preference': 'PRIMARY', 'place_ref': {'part... <NA> [{'preference': 'PRIMARY', 'place_ref': {'part... [{'preference': 'ALTERNATIVE', 'place_ref': {'... <NA> <NA> 0 <NA> <NA>
1 DISTRICT [{'preference': 'PRIMARY', 'place_ref': {'part... <NA> [{'preference': 'PRIMARY', 'place_ref': {'part... [{'preference': 'PRIMARY', 'place_ref': {'part... <NA> [{'preference': 'PRIMARY', 'place_ref': {'part... [{'preference': 'ALTERNATIVE', 'place_ref': {'... <NA> <NA> 0 <NA> <NA>
df = street_names.get(tiles, 'street_section')
df.head(2)

.dataframe thead th {text-align: right;}

street_indexadministrative_context_indexassociated_street_section_indexgovernment_code
partition_idstreetsection_id
23671200-25332448-25332461here:af:streetsection:-2OIuTs2s5HVoHz.Z2SI0B5557[67, 103, 177, 214]
here:af:streetsection:-4x.rC.hY5jLe.Rm56mkED2564[82]

3.2 Traffic Patterns

Layer Id - traffic-patterns

tiles = [23618502]
traffic_patterns = hmc.traffic_patterns
types_to_df(traffic_patterns.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
traffic_patternhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
holiday_patternhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_pattern = traffic_patterns.get(tiles,"traffic_pattern")
traffic_pattern.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.traffic_pattern
0 [{'ref': {'partition': '23618502', 'identifier... True False [{'day_of_week': 'SUNDAY', 'speed_pattern': [{...
1 [{'ref': {'partition': '23618502', 'identifier... False True [{'day_of_week': 'SUNDAY', 'speed_pattern': [{...
holiday_pattern = traffic_patterns.get(tiles,"holiday_pattern")
holiday_pattern.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.holiday
0 [{'ref': {'partition': '23618502', 'identifier... True False [{'holiday_name': 'New Years Day', 'holiday_da...
1 [{'ref': {'partition': '23618502', 'identifier... False True [{'holiday_name': 'New Years Day', 'holiday_da...
### Construct a new Reference by giving partition and identifier.
traffic_pattern_ref = make_ref(23618502,"here:cm:segment:76770511")
traffic_pattern_attributes = traffic_patterns.get_referencing(
        23618502, "traffic_pattern", "first_segment", 
)
traffic_pattern_attributes.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.traffic_pattern
ref_partition ref_identifier
23618502 here:cm:segment:76770511 [{'ref': {'partition': '23618502', 'identifier... True False [{'day_of_week': 'SUNDAY', 'speed_pattern': [{...
here:cm:segment:76770511 [{'ref': {'partition': '23618502', 'identifier... False True [{'day_of_week': 'SUNDAY', 'speed_pattern': [{...
holiday_pattern_attributes = traffic_patterns.get_referencing(
        23618502, "holiday_pattern", "first_segment", 
)
holiday_pattern_attributes.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.holiday
ref_partition ref_identifier
23618502 here:cm:segment:76770511 [{'ref': {'partition': '23618502', 'identifier... True False [{'holiday_name': 'New Years Day', 'holiday_da...
here:cm:segment:76770511 [{'ref': {'partition': '23618502', 'identifier... False True [{'holiday_name': 'New Years Day', 'holiday_da...

3.3 Sign Text

Layer Id - sign-text

tiles = [18011924]
sign_text = hmc.sign_text
types_to_df(sign_text.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
sign_attributehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
display(sign_text.ref_types())

{'sign_attribute': ['first_segment', 'segment']}

df = sign_text.get(tiles, "sign_attribute")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.identifier attribute.destination
0 [{'ref': {'partition': '18011924', 'identifier... True True here:cm:sign:1653326986 [{'destination_segment_anchor_index': 2, 'sign...
1 [{'ref': {'partition': '18011924', 'identifier... True True here:cm:sign:1653327084 [{'destination_segment_anchor_index': 20, 'sig...
df = sign_text.get_referencing(tiles, "sign_attribute", "segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.identifier attribute.destination
ref_partition ref_identifier
18011924 here:cm:segment:360301727 [{'ref': {'partition': '18011924', 'identifier... True True here:cm:sign:1653326986 [{'destination_segment_anchor_index': 2, 'sign...
here:cm:segment:360301727 [{'ref': {'partition': '18011924', 'identifier... True True here:cm:sign:1653367409 [{'destination_segment_anchor_index': 2, 'sign...
df = sign_text.get_referencing(tiles, "sign_attribute", "first_segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.identifier attribute.destination
ref_partition ref_identifier
18011924 here:cm:segment:360301727 [{'ref': {'partition': '18011924', 'identifier... True True here:cm:sign:1653326986 [{'destination_segment_anchor_index': 2, 'sign...
here:cm:segment:360301727 [{'ref': {'partition': '18011924', 'identifier... True True here:cm:sign:1653367409 [{'destination_segment_anchor_index': 2, 'sign...

3.4 Administrative Places

Layer Id - administrative-places

admin_places = hmc.admin_places

types_to_df(admin_places.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
placehere.content.hmc2.admin_places.PlaceTrueTrueNone
contexthere.content.hmc2.place_context.PlaceContextFalseFalseNone
admin_tiles = ["20000001", "20000001-20000002-20030132"]
df = admin_places.get(admin_tiles, "place")
df.head(2)

.dataframe thead th {text-align: right;}

name category alt_category location_ref.partition location_ref.identifier valid_unnamed daylight_saving_time.day_of_week_of_month_of_year_range.start.day_of_week daylight_saving_time.day_of_week_of_month_of_year_range.start.week_of_month daylight_saving_time.day_of_week_of_month_of_year_range.start.month_of_year daylight_saving_time.day_of_week_of_month_of_year_range.end.day_of_week ... country.internal_phone_prefix capital_indicator population daylight_saving_time administrative_restriction country capital_indicator.capital_of_county capital_indicator.capital_of_country capital_indicator.capital_of_state capital_indicator.capital_of_city
partition_id place_id
20000001 here:cm:namedplace:20000001 [{'text': {'value': 'France', 'language': 'fr'... [{'partition': '', 'identifier': 'here:cm:admi... <NA> 20000001 here:cm:namedplace-loc:20000001 True SUNDAY WEEK_5 MARCH SUNDAY ... 0 <NA> <NA> NaN NaN NaN NaN NaN NaN NaN
here:cm:namedplace:20000002 [{'text': {'value': 'Hauts-de-France', 'langua... [{'partition': '', 'identifier': 'here:cm:admi... <NA> 20000001 here:cm:namedplace-loc:20000002 True NaN NaN NaN NaN ... NaN <NA> <NA> <NA> <NA> <NA> NaN NaN NaN NaN

2 rows × 50 columns

df = admin_places.get(admin_tiles, "context")
df.head(2)

.dataframe thead th {text-align: right;}

classification_type city postal_code country state region county district sub_district further_zone default_mapping political_view political_view_exception
0 COUNTRY <NA> <NA> [{'preference': 'PRIMARY', 'place_ref': {'part... <NA> <NA> <NA> <NA> <NA> <NA> 0 <NA> <NA>
1 STATE <NA> <NA> [{'preference': 'PRIMARY', 'place_ref': {'part... [{'preference': 'PRIMARY', 'place_ref': {'part... <NA> <NA> <NA> <NA> <NA> 0 <NA> <NA>

3.5 Administrative Locations

Layer Id - administrative-locations

admin_locations = hmc.admin_locations
types_to_df(admin_locations.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
locationhere.content.hmc2.admin_locations.LocationTrueTrueNone
df = admin_locations.get(partition="21000001", object_type="location") 
df.head(2)

.dataframe thead th {text-align: right;}

location_typedisplay_positiongeometryaddress_relationarea_typesegment_anchor.oriented_segment_refsegment_anchor.attribute_orientationsegment_anchor_sideaccessorspolitical_geometryalternate_geometrywithin_location_ref.partition_namewithin_location_ref.identifierbounding_boxlevel_info
partition_idlocation_id
21000001here:cm:namedplace-loc:21000001AREAPOINT (0 0)MULTIPOLYGON (((-80.4463 25.0527, -80.44623 25...ADDRESS_RELATION_UNSPECIFICAREA_TYPE_STANDARD[]RELATIVE_DIRECTION_UNKNOWNSIDE_UNKNOWN<NA>[][]
here:cm:namedplace-loc:21000002AREAPOINT (0 0)MULTIPOLYGON (((-94.20647 43.50011, -94.20807 ...ADDRESS_RELATION_UNSPECIFICAREA_TYPE_STANDARD[]RELATIVE_DIRECTION_UNKNOWNSIDE_UNKNOWN<NA>[][]

3.6 Administrative Place Profiles

Layer Id - administrative_place_profiles

admin_place_profiles = hmc.admin_place_profiles
df = admin_place_profiles.get(partition = "21000001", object_type="admin_place_profile_attributes")
df.head(2)

.dataframe thead th {text-align: right;}

administrative_place_ref.partitionadministrative_place_ref.identifiermove_overmake_wayovertake_passmergingright_of_waykeep_rightsolid_lane_travers_generalsolid_lane_exceptioncolor_temp_markingdashed_width_lardashed_width_non_larspaces_marking_larspaces_marking_non_larsolid_edge_width_larsolid_edge_width_non_laraverage_lane_width_mtrwaverage_lane_width_non_mtrw
partition_id
2100000121000001here:cm:namedplace:21000001<NA><NA><NA><NA><NA><NA><NA><NA><NA>0.150.10.150.150.150.13.63.3
2100000121000001here:cm:namedplace:210000023TrueFalse51TrueFalse6313<NA><NA><NA><NA><NA><NA><NA><NA>
### Construct a new Reference by giving partition and identifier.
ref = make_ref("21000001", "here:cm:namedplace:21000002")
admin_place_profiles.get_referencing(
        partition = "21000001", object_type="admin_place_profile_attributes", ref_type="place", referenced_obj=ref
)

.dataframe thead th {text-align: right;}

partition_idadministrative_place_ref.partitionadministrative_place_ref.identifiermove_overmake_wayovertake_passmergingright_of_waykeep_rightsolid_lane_travers_generalsolid_lane_exceptioncolor_temp_markingdashed_width_lardashed_width_non_larspaces_marking_larspaces_marking_non_larsolid_edge_width_larsolid_edge_width_non_laraverage_lane_width_mtrwaverage_lane_width_non_mtrw
02100000121000001here:cm:namedplace:210000023TrueFalse51TrueFalse6313<NA><NA><NA><NA><NA><NA><NA><NA>

3.7 Indexed Locations

Layer Id - indexed_locations

admin_index = hmc.admin_index
types_to_df(admin_index.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
countryhere.content.hmc2.admin_index.CountryTilesFalseTrueNone
locationhere.content.hmc2.admin_index.LocationTilesFalseFalselocation
country_partitions = ["FIN", "HND", "IRL"]
country_tiles = admin_index.get(country_partitions, "country")
country_tiles

.dataframe thead th {text-align: right;}

tile_id
iso_country_code
FIN[23648741, 23648743, 23648745, 23648752, 23648...
HND[19956478, 19956479, 19956574, 19956575, 19956...
IRL[20799693, 20799695, 20799704, 20799705, 20799...
## You can always use the `explode` function to convert a list in multiple rows.
country_tiles.explode("tile_id")

.dataframe thead th {text-align: right;}

tile_id
iso_country_code
FIN23648741
FIN23648743
FIN23648745
FIN23648752
FIN23648754
......
IRL20803192
IRL20803193
IRL20803338
IRL20803360
IRL20803361

11735 rows × 1 columns

plot_here_tiles(country_tiles.loc["FIN"]["tile_id"])

Map(center=[np.float64(60.1611328125), np.float64(19.2919921875)], controls=(ZoomControl(options=['position', …

plot_here_tiles(country_tiles.loc["IRL"]["tile_id"])

Map(center=[np.float64(51.5478515625), np.float64(-10.2392578125)], controls=(ZoomControl(options=['position',…

df = admin_index.get_referencing(country_partitions, "location", "location")
df.head(2)

.dataframe thead th {text-align: right;}

iso_country_codetile_idboundary_tile_id
ref_partitionref_identifier
20241487here:cm:namedplace-loc:20241487FIN[23648741, 23648743, 23648745, 23648752, 23648...[23648741, 23648743, 23648745, 23648752, 23648...
here:cm:namedplace-loc:20422913FIN[23693371, 23693445, 23693453, 23693456, 23693...[23693371, 23693445, 23693453, 23693456, 23693...

3.8 Environmental Zones

Layer Id - environmental_zones

environmental_zones = hmc.environmental_zones
types_to_df(environmental_zones.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
zonehere.content.hmc2.environmental_zones.ZoneFalseTruelocation
environmental_zones.ref_types()

{'zone': ['location']}

types_to_df(environmental_zones.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
zonehere.content.hmc2.environmental_zones.ZoneFalseTruelocation
env_zones = environmental_zones.get("all", "zone")
env_zones.head(2)

.dataframe thead th {text-align: right;}

name info.description info.website.value info.website.language info.version_date info.extent_date info.country vehicle_class environmental_badge location_ref
identifier
here:cm:envzone:1 [{'text': {'value': 'Augsburg Umweltzone', 'la... [{'value': 'Die Umweltzone der Stadt Augsburg ... https://www.augsburg.de/umwelt-soziales/umwelt... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23600504', 'identifier': 'here...
here:cm:envzone:10 [{'text': {'value': 'Essen Umweltzone', 'langu... [{'value': 'Die Umweltzone der Stadt Essen ist... https://www.essen.de/leben/umwelt/luft/umweltz... 2022-06-03 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23605461', 'identifier': 'here...
### Construct a new Reference by giving partition and identifier.
location_ref = make_ref("23600686", "here:cm:carto-loc:1661293691")
env_zones = environmental_zones.get_referencing("all", "zone", "location", location_ref)
env_zones

.dataframe thead th {text-align: right;}

identifier name info.description info.website.value info.website.language info.version_date info.extent_date info.country vehicle_class environmental_badge location_ref
0 here:cm:envzone:304 [{'text': {'value': 'Lkw-Verbotszone Darmstadt... [{'value': 'Permanent truck ban for environmen... https://umwelt.hessen.de/sites/default/files/m... 2020-11-06 2020-09-18 GERMANY [{'vehicle_attributes': {'category': 'TRUCK', ... <NA> [{'partition': '23600686', 'identifier': 'here...

3.9 Topology Geometry

Layer Id - topology-geometry

topology_geometry = hmc.topology_geometry
types_to_df(topology_geometry.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
nodehere.content.hmc2.topology_geometry.NodeTrueTrueNone
segmenthere.content.hmc2.topology_geometry.SegmentTrueTrueNone
topology_geometry.ref_types()

{'node': [], 'segment': []}

types_to_df(topology_geometry.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
nodehere.content.hmc2.topology_geometry.NodeTrueTrueNone
segmenthere.content.hmc2.topology_geometry.SegmentTrueTrueNone
tiles =[19318110]
nodes = topology_geometry.get(tiles, "node")
nodes.head(2)

.dataframe thead th {text-align: right;}

segment_ref geometry z_level
partition_id node_id
19318110 here:cm:node:19706971 [{'partition': '19318110', 'identifier': 'here... POINT (-118.22421 34.0527) 0
here:cm:node:19706990 [{'partition': '19318110', 'identifier': 'here... POINT (-118.21902 34.04041) 0
segments = topology_geometry.get(tiles, "segment")
segments.head(2)

.dataframe thead th {text-align: right;}

start_node_ref.partitionstart_node_ref.identifierend_node_ref.partitionend_node_ref.identifiergeometryz_levellength
partition_idsegment_id
19318110here:cm:segment:39592103119318110here:cm:node:4925157819318110here:cm:node:49251579LINESTRING (-118.27758 34.03233, -118.27676 34...[0, 0]159.93573
here:cm:segment:39592112219318110here:cm:node:4925644519318110here:cm:node:49256415LINESTRING (-118.2891 34.07896, -118.28967 34....[0, 0, 0, 0, 0]157.52114
geometries={"Nodes": nodes, "Segments": segments}
plot_multiple_geometry(geometries)

Map(center=[np.float64(34.0527), np.float64(-118.22421)], controls=(ZoomControl(options=['position', 'zoomin

3.10 Topology Attributes

Layer Id - topology-attributes

topology_attributes = hmc.topology_attributes
types_to_df(topology_attributes.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
access_permissionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
access_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
accessible_byhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
black_spothere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
construction_statushere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
display_levelhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
environmental_zone_conditionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
functional_classhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
gatehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
grade_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
intersection_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
iso_country_codehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
junction_dividerhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
lane_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
local_roadhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
low_mobilityhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
low_speed_zonehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
motorcycle_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
overpass_underpasshere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
overtaking_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
permitted_driving_manoeuvrehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
physicalhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
physical_lane_counthere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
political_view_actionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
protected_overtakinghere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
railway_crossinghere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
recreational_vehicle_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
restricted_driving_manoeuvrehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
road_classhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
road_dividerhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
road_usagehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
scenichere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
short_construction_warninghere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
special_explicationhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
special_speed_situationhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
special_traffic_area_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
speed_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
speed_limithere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
supplemental_geometryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
through_lane_counthere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
through_routehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
toll_structurehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_message_channel_codehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_signhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_signalhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
transport_protocol_expert_grouphere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
travel_directionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
urbanhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
usage_fee_requiredhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
variable_speed_limithere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
variable_speed_signhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
vehicle_checkpointhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
topology_attributes.ref_types()

{'access_permission': ['first_segment', 'segment'], 'access_restriction': ['first_segment', 'segment'], 'accessible_by': ['first_segment', 'segment'], 'black_spot': ['first_segment', 'segment'], 'construction_status': ['first_segment', 'segment'], 'display_level': ['first_segment', 'segment'], 'environmental_zone_condition': ['first_segment', 'segment'], 'functional_class': ['first_segment', 'segment'], 'gate': ['first_segment', 'segment'], 'grade_category': ['first_segment', 'segment'], 'intersection_category': ['first_segment', 'segment'], 'iso_country_code': ['first_segment', 'segment'], 'junction_divider': ['first_segment', 'segment'], 'lane_category': ['first_segment', 'segment'], 'local_road': ['first_segment', 'segment'], 'low_mobility': ['first_segment', 'segment'], 'low_speed_zone': ['first_segment', 'segment'], 'motorcycle_restriction': ['first_segment', 'segment'], 'overpass_underpass': ['first_segment', 'segment'], 'overtaking_restriction': ['first_segment', 'segment'], 'permitted_driving_manoeuvre': ['first_segment', 'segment'], 'physical': ['first_segment', 'segment'], 'physical_lane_count': ['first_segment', 'segment'], 'political_view_action': ['first_segment', 'segment'], 'protected_overtaking': ['first_segment', 'segment'], 'railway_crossing': ['first_segment', 'segment'], 'recreational_vehicle_restriction': ['first_segment', 'segment'], 'restricted_driving_manoeuvre': ['first_segment', 'segment'], 'road_class': ['first_segment', 'segment'], 'road_divider': ['first_segment', 'segment'], 'road_usage': ['first_segment', 'segment'], 'scenic': ['first_segment', 'segment'], 'short_construction_warning': ['first_segment', 'segment'], 'special_explication': ['first_segment', 'segment'], 'special_speed_situation': ['first_segment', 'segment'], 'special_traffic_area_category': ['first_segment', 'segment'], 'speed_category': ['first_segment', 'segment'], 'speed_limit': ['first_segment', 'segment'], 'supplemental_geometry': ['first_segment', 'segment'], 'through_lane_count': ['first_segment', 'segment'], 'through_route': ['first_segment', 'segment'], 'toll_structure': ['first_segment', 'segment'], 'traffic_message_channel_code': ['first_segment', 'segment'], 'traffic_sign': ['first_segment', 'segment'], 'traffic_signal': ['first_segment', 'segment'], 'transport_protocol_expert_group': ['first_segment', 'segment'], 'travel_direction': ['first_segment', 'segment'], 'urban': ['first_segment', 'segment'], 'usage_fee_required': ['first_segment', 'segment'], 'variable_speed_limit': ['first_segment', 'segment'], 'variable_speed_sign': ['first_segment', 'segment'], 'vehicle_checkpoint': ['first_segment', 'segment']}

types_to_df(topology_attributes.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
access_permissionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
access_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
accessible_byhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
black_spothere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
construction_statushere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
display_levelhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
environmental_zone_conditionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
functional_classhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
gatehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
grade_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
intersection_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
iso_country_codehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
junction_dividerhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
lane_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
local_roadhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
low_mobilityhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
low_speed_zonehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
motorcycle_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
overpass_underpasshere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
overtaking_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
permitted_driving_manoeuvrehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
physicalhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
physical_lane_counthere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
political_view_actionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
protected_overtakinghere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
railway_crossinghere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
recreational_vehicle_restrictionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
restricted_driving_manoeuvrehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
road_classhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
road_dividerhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
road_usagehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
scenichere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
short_construction_warninghere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
special_explicationhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
special_speed_situationhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
special_traffic_area_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
speed_categoryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
speed_limithere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
supplemental_geometryhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
through_lane_counthere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
through_routehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
toll_structurehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_message_channel_codehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_signhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
traffic_signalhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
transport_protocol_expert_grouphere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
travel_directionhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
urbanhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
usage_fee_requiredhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
variable_speed_limithere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
variable_speed_signhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
vehicle_checkpointhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
tiles = [19318110]
df = topology_attributes.get(tiles, "functional_class")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.functional_class
0 [{'ref': {'partition': '19318110', 'identifier... True True FUNCTIONAL_CLASS_5
1 [{'ref': {'partition': '19318110', 'identifier... True True FUNCTIONAL_CLASS_5
df = topology_attributes.get_referencing(tiles, "functional_class", "segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.functional_class
ref_partition ref_identifier
19318110 here:cm:segment:395921031 [{'ref': {'partition': '19318110', 'identifier... True True FUNCTIONAL_CLASS_5
here:cm:segment:396018522 [{'ref': {'partition': '19318110', 'identifier... True True FUNCTIONAL_CLASS_5
df = topology_attributes.get_referencing(tiles, "iso_country_code", "segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.iso_country_code.official_country_code
ref_partition ref_identifier
19318110 here:cm:segment:395921031 [{'ref': {'partition': '19318110', 'identifier... True True USA
here:cm:segment:395921122 [{'ref': {'partition': '19318110', 'identifier... True True USA
df = topology_attributes.get(tiles, "speed_limit")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.value attribute.source attribute.unlimited attribute.sources
0 [{'ref': {'partition': '19318110', 'identifier... True False 40 DERIVED False []
1 [{'ref': {'partition': '19318110', 'identifier... False True 40 DERIVED False []
df = topology_attributes.get(tiles, "traffic_message_channel_code")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.location_code attribute.location_disposition attribute.location_table_number attribute.ebu_country_code
0 [{'ref': {'partition': '19318110', 'identifier... True False 21457 INTERNAL_POSITIVE_DIRECTION 6 1
1 [{'ref': {'partition': '19318110', 'identifier... False True 21457 INTERNAL_POSITIVE_DIRECTION 6 1
df = topology_attributes.get(tiles, "restricted_driving_manoeuvre")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.applies_to.automobiles attribute.applies_to.buses attribute.applies_to.taxis attribute.applies_to.carpools attribute.applies_to.pedestrians attribute.applies_to.trucks attribute.applies_to.through_traffic attribute.applies_to.deliveries attribute.applies_to.emergency_vehicles attribute.applies_to.motorcycles attribute.applies_to.bicycles attribute.restriction_type attribute.applies_during attribute.manoeuvre_type
0 [{'ref': {'partition': '19318110', 'identifier... True False True True True True True True True True True True False PHYSICAL [] MANOEUVRE_TYPE_UNKNOWN
1 [{'ref': {'partition': '19318110', 'identifier... True False True True True True True True True True True True False PHYSICAL [] MANOEUVRE_TYPE_UNKNOWN
df = topology_attributes.get(tiles, "travel_direction")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward
0 [{'ref': {'partition': '19318110', 'identifier... True True
1 [{'ref': {'partition': '19318110', 'identifier... True False
df = topology_attributes.get([18403672], "environmental_zone_condition")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.applies_to.automobiles attribute.applies_to.buses attribute.applies_to.carpools attribute.applies_to.through_traffic attribute.applies_to.motorcycles attribute.applies_to.taxis attribute.applies_to.pedestrians attribute.applies_to.trucks attribute.applies_to.deliveries attribute.applies_to.emergency_vehicles attribute.applies_to.bicycles attribute.environmental_zone_ref.partition_name attribute.environmental_zone_ref.identifier
0 [{'ref': {'partition': '18403672', 'identifier... True True True True True True True False False False False False False all here:cm:envzone:81
1 [{'ref': {'partition': '18403672', 'identifier... True True True True True True True False False False False False False all here:cm:envzone:81
df = topology_attributes.get_referencing(tiles, "restricted_driving_manoeuvre", "first_segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.applies_to.automobiles attribute.applies_to.buses attribute.applies_to.taxis attribute.applies_to.carpools attribute.applies_to.pedestrians attribute.applies_to.trucks attribute.applies_to.through_traffic attribute.applies_to.deliveries attribute.applies_to.emergency_vehicles attribute.applies_to.motorcycles attribute.applies_to.bicycles attribute.restriction_type attribute.applies_during attribute.manoeuvre_type
ref_partition ref_identifier
19318110 here:cm:segment:396042113 [{'ref': {'partition': '19318110', 'identifier... True False True True True True True True True True True True False PHYSICAL [] MANOEUVRE_TYPE_UNKNOWN
here:cm:segment:396042113 [{'ref': {'partition': '19318110', 'identifier... True False True True True True True True True True True True False PHYSICAL [] MANOEUVRE_TYPE_UNKNOWN
df = topology_attributes.get(tiles, "traffic_signal")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.signal_location
0 [{'ref': {'partition': '19318110', 'identifier... False True SIGN_LOCATION_UNKNOWN
1 [{'ref': {'partition': '19318110', 'identifier... False True SIGN_LOCATION_UNKNOWN
df = topology_attributes.get(tiles, "traffic_sign")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.traffic_sign_type attribute.traffic_sign_category attribute.traffic_sign_subcategory attribute.traffic_sign_value.value attribute.traffic_sign_value.language attribute.pre_warning.value attribute.pre_warning.language ... attribute.validity_time.value attribute.validity_time.language attribute.accessible_by.trucks attribute.accessible_by.heavy_trucks attribute.accessible_by.bus attribute.accessible_by.auto_trailer attribute.accessible_by.motorhome attribute.accessible_by.motorcycle attribute.general_warning_sign_type attribute.weather_type
0 [{'ref': {'partition': '19318110', 'identifier... False True STOP_SIGN REGULATORY_SIGN PRIORITY_SIGN ... False False False False False False GENERAL_WARNING_SIGN_TYPE_UNKNOWN WEATHER_TYPE_UNKNOWN
1 [{'ref': {'partition': '19318110', 'identifier... False True STOP_SIGN REGULATORY_SIGN PRIORITY_SIGN ... False False False False False False GENERAL_WARNING_SIGN_TYPE_UNKNOWN WEATHER_TYPE_UNKNOWN

2 rows × 22 columns

df = topology_attributes.get_referencing(tiles, "traffic_sign", "first_segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.traffic_sign_type attribute.traffic_sign_category attribute.traffic_sign_subcategory attribute.traffic_sign_value.value attribute.traffic_sign_value.language attribute.pre_warning.value attribute.pre_warning.language ... attribute.validity_time.value attribute.validity_time.language attribute.accessible_by.trucks attribute.accessible_by.heavy_trucks attribute.accessible_by.bus attribute.accessible_by.auto_trailer attribute.accessible_by.motorhome attribute.accessible_by.motorcycle attribute.general_warning_sign_type attribute.weather_type
ref_partition ref_identifier
19318110 here:cm:segment:395921031 [{'ref': {'partition': '19318110', 'identifier... False True STOP_SIGN REGULATORY_SIGN PRIORITY_SIGN ... False False False False False False GENERAL_WARNING_SIGN_TYPE_UNKNOWN WEATHER_TYPE_UNKNOWN
here:cm:segment:395921031 [{'ref': {'partition': '19318110', 'identifier... True False STOP_SIGN REGULATORY_SIGN PRIORITY_SIGN ... False False False False False False GENERAL_WARNING_SIGN_TYPE_UNKNOWN WEATHER_TYPE_UNKNOWN

2 rows × 22 columns

df = topology_attributes.get(tiles, "railway_crossing")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.crossing_type
0 [{'ref': {'partition': '19318110', 'identifier... False True UNPROTECTED
1 [{'ref': {'partition': '19318110', 'identifier... False True UNPROTECTED
df = topology_attributes.get_referencing(tiles, "railway_crossing", "segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.crossing_type
ref_partition ref_identifier
19318110 here:cm:segment:411541476 [{'ref': {'partition': '19318110', 'identifier... False True UNPROTECTED
here:cm:segment:425689374 [{'ref': {'partition': '19318110', 'identifier... False True UNPROTECTED

3.11 Bicycle Attributes

Layer Id - bicycle-attributes

bicycle_attributes = hmc.bicycle_attributes
types_to_df(bicycle_attributes.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
bicycle_access_overridehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_protection_typehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_travel_direction_overridehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
dedicated_bicycle_pathhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_pathhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_access_verifiedhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_attributes.ref_types()

{'bicycle_access_override': ['first_segment', 'segment'], 'bicycle_protection_type': ['first_segment', 'segment'], 'bicycle_travel_direction_override': ['first_segment', 'segment'], 'dedicated_bicycle_path': ['first_segment', 'segment'], 'bicycle_path': ['first_segment', 'segment'], 'bicycle_access_verified': ['first_segment', 'segment']}

types_to_df(bicycle_attributes.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
bicycle_access_overridehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_protection_typehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_travel_direction_overridehere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
dedicated_bicycle_pathhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_pathhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
bicycle_access_verifiedhere.content.hmc2.base_attributes.AttributeFalseFalsefirst_segment, segment
tiles = [19318110]
df = bicycle_attributes.get_referencing(tiles, "bicycle_path", "segment")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.separately_digitized attribute.dedicated_bicycle_path attribute.surface_type
ref_partition ref_identifier
19318110 here:cm:segment:399602652 [{'ref': {'partition': '19318110', 'identifier... True True True SIDE_UNKNOWN SURFACE_TYPE_UNKNOWN
here:cm:segment:420339828 [{'ref': {'partition': '19318110', 'identifier... True True True SIDE_UNKNOWN SURFACE_TYPE_UNKNOWN
df = bicycle_attributes.get_referencing(tiles, "dedicated_bicycle_path", "segment")
df.head(2)

.dataframe thead th {text-align: right;}

3.12 Places Metadata

Layer Id - places-metadata

places_metadata = hmc.places_metadata
types_to_df(places_metadata.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
category_systemhere.content.hmc2.metadata.CategorySystemFalseTrueNone
categoryhere.content.hmc2.metadata.CategoryFalseTrueNone
places_metadata.get("all", "category_system")

.dataframe thead th {text-align: right;}

name.text.valuename.text.languagename.name_typename.representationname.exonymdescription
identifier
here:pds:chain_families:chain_familieschain_familiesNAME_TYPE_UNKNOWN[]False<NA>
here:pds:chains:chainschainsNAME_TYPE_UNKNOWN[]False<NA>
here:pds:izumi:izumiizumiNAME_TYPE_UNKNOWN[]False<NA>
here:pds:lcms-foodtype:lcms-foodtypelcms-foodtypeNAME_TYPE_UNKNOWN[]False<NA>
here:pds:navteq-lcms:navteq-lcmsnavteq-lcmsNAME_TYPE_UNKNOWN[]False<NA>
here:pds:nokia-foodtype:nokia-foodtypenokia-foodtypeNAME_TYPE_UNKNOWN[]False<NA>
df = places_metadata.get("all", "category")
df.head(2)

.dataframe thead th {text-align: right;}

name.text.valuename.text.languagename.name_typename.representationname.exonymdescriptioncategory_systemdescription.text.valuedescription.text.languagedescription.name_typedescription.representationdescription.exonym
identifier
here:pds:chain_families:10001BMWenNAME_TYPE_UNKNOWN[]False<NA>here:pds:chain_families:chain_familiesNaNNaNNaNNaNNaN
here:pds:chain_families:10002FIATenNAME_TYPE_UNKNOWN[]False<NA>here:pds:chain_families:chain_familiesNaNNaNNaNNaNNaN

3.13 Building Metadata

Layer Id - building-metadata

building_metadata = hmc.building_metadata
types_to_df(building_metadata.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
category_systemhere.content.hmc2.metadata.CategorySystemFalseTrueNone
categoryhere.content.hmc2.metadata.CategoryFalseTrueNone
building_metadata.get("all", "category_system")

.dataframe thead th {text-align: right;}

name.text.valuename.text.languagename.name_typename.representationname.exonymdescription.text.valuedescription.text.languagedescription.name_typedescription.representationdescription.exonym
identifier
here:cm:building-category:1999217009FEATSTPNAME_TYPE_UNKNOWN[]FalseFeature Sub-TypesNAME_TYPE_UNKNOWN[]False
here:cm:building-category:1999021584FEATURENAME_TYPE_UNKNOWN[]FalseFeature TypeNAME_TYPE_UNKNOWN[]False
here:cm:building-category:7979404116JPN_CARTOFEATURE_TYPESNAME_TYPE_UNKNOWN[]FalseCartofeatures that are unique to JapanNAME_TYPE_UNKNOWN[]False
here:cm:building-category:7979406126JPN_FEATSTPNAME_TYPE_UNKNOWN[]FalseJapan specific building typesNAME_TYPE_UNKNOWN[]False
df = building_metadata.get("all", "category")
df.head(2)

.dataframe thead th {text-align: right;}

name.text.valuename.text.languagename.name_typename.representationname.exonymdescriptioncategory_system
identifier
here:cm:building-category:2005000BUSINESS/COMMERCE BUILDING/LANDMARKNAME_TYPE_UNKNOWN[]False<NA>here:cm:building-category:1999217009
here:cm:building-category:2005000Business/Commerce Building/LandmarkNAME_TYPE_UNKNOWN[]False<NA>here:cm:building-category:1999021584

3.14 Cartography Metadata

Layer Id - cartography-metadata

cartography_metadata = hmc.cartography_metadata
types_to_df(places_metadata.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
category_systemhere.content.hmc2.metadata.CategorySystemFalseTrueNone
categoryhere.content.hmc2.metadata.CategoryFalseTrueNone
cartography_metadata.get("all", "category_system")

.dataframe thead th {text-align: right;}

name.text.valuename.text.languagename.name_typename.representationname.exonymdescription.text.valuedescription.text.languagedescription.name_typedescription.representationdescription.exonym
identifier
here:cm:carto-category:1999893136CLS_PUBLISHED_FEATURESNAME_TYPE_UNKNOWN[]FalseCLS_PUBLISHED_FEATURESNAME_TYPE_UNKNOWN[]False
here:cm:carto-category:1999021599DISPCLASNAME_TYPE_UNKNOWN[]FalseDisplay ClassNAME_TYPE_UNKNOWN[]False
here:cm:carto-category:1999021584FEATURENAME_TYPE_UNKNOWN[]FalseFeature TypeNAME_TYPE_UNKNOWN[]False
here:cm:carto-category:7979866573HMC_CARTONAME_TYPE_UNKNOWN[]FalseCarto features used by global HMCNAME_TYPE_UNKNOWN[]False
here:cm:carto-category:7979404116JPN_CARTOFEATURE_TYPESNAME_TYPE_UNKNOWN[]FalseCartofeatures that are unique to JapanNAME_TYPE_UNKNOWN[]False
here:cm:carto-category:7979406126JPN_FEATSTPNAME_TYPE_UNKNOWN[]FalseJapan specific building typesNAME_TYPE_UNKNOWN[]False
here:cm:carto-category:1999918379LANDCOVER_CLASSNAME_TYPE_UNKNOWN[]FalseLANDCOVER_CLASSNAME_TYPE_UNKNOWN[]False
df = cartography_metadata.get("all", "category")
df.head(2)

.dataframe thead th {text-align: right;}

name.text.valuename.text.languagename.name_typename.representationname.exonymdescriptioncategory_system
identifier
here:cm:carto-category:NOT APPLICABLENAME_TYPE_UNKNOWN[]False<NA>here:cm:carto-category:1999021599
here:cm:carto-category:1FIRST CLASSNAME_TYPE_UNKNOWN[]False<NA>here:cm:carto-category:1999021599

3.15 Here Places

here_places = hmc.here_places
types_to_df(here_places.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
supplierhere.content.hmc2.models.SupplierTrueTrueNone
authorhere.content.hmc2.models.AuthorTrueFalseNone
placehere.content.hmc2.models.PlaceTrueTrueNone
external_identifierhere.content.hmc2.models.ExternalIdentifierTrueTrueNone
contact_informationhere.content.hmc2.models.ContactInformationTrueFalseNone
operating_timehere.content.hmc2.models.OperatingTimeTrueFalseNone
feedbackhere.content.hmc2.models.FeedbackTrueFalseNone
paymenthere.content.hmc2.models.PaymentTrueFalseNone
relationship_attributehere.content.hmc2.models.RelationshipAttributeTrueFalseNone
capacity_attributehere.content.hmc2.models.CapacityAttributeTrueFalseNone
internet_connection_attributehere.content.hmc2.models.InternetConnectionAtt...TrueFalseNone
price_rangehere.content.hmc2.models.PriceRangeTrueFalseNone
spoken_languagehere.content.hmc2.models.SpokenLanguageTrueFalseNone
qr_code_attributehere.content.hmc2.models.QrCodeAttributeTrueFalseNone
verification_attributehere.content.hmc2.models.VerificationAttributeTrueFalseNone
media_reference_attributehere.content.hmc2.models.MediaReferenceAttributeTrueFalseNone
quality_scorehere.content.hmc2.models.QualityScoreTrueFalseNone
place_access_attributehere.content.hmc2.models.PlaceAccessAttributeTrueFalseNone
amenities_attributehere.content.hmc2.models.AmenitiesAttributeTrueFalseNone
alcohol_service_attributehere.content.hmc2.models.AlcoholServiceAttributeTrueFalseNone
basic_info_attributehere.content.hmc2.models.BasicInfoAttributeTrueFalseNone
other_informationhere.content.hmc2.models.OtherInformationTrueFalseNone
electric_charge_attributehere.content.hmc2.models.ElectricChargeAttributeTrueFalseNone
hotel_attributehere.content.hmc2.models.HotelAttributeTrueFalseNone
location_informationhere.content.hmc2.models.LocationInformationTrueFalseNone
parking_attributehere.content.hmc2.models.ParkingAttributeTrueFalseNone
restaurant_attributehere.content.hmc2.models.RestaurantAttributeTrueFalseNone
transit_attributehere.content.hmc2.models.TransitAttributeTrueFalseNone
vehicle_services_attributehere.content.hmc2.models.VehicleServicesAttributeTrueFalseNone
addresshere.content.hmc2.models.AddressTrueFalseNone
locationhere.content.hmc2.models.LocationTrueTrueNone
truck_attributehere.content.hmc2.models.TruckAttributeTrueFalseNone
fuel_type_attributehere.content.hmc2.models.FuelTypeAttributeTrueFalseNone
social_signalhere.content.hmc2.models.SocialSignalTrueFalseNone
port_attributehere.content.hmc2.models.PortAttributeTrueFalseNone
safety_camerahere.content.hmc2.models.SafetyCameraTrueFalseNone
black_spothere.content.hmc2.models.BlackSpotTrueFalseNone
match_level_attributehere.content.hmc2.models.MatchLevelAttributeTrueFalseNone
affiliation_attributehere.content.hmc2.models.AffiliationAttributeTrueFalseNone
office_type_attributehere.content.hmc2.models.OfficeTypeAttributeTrueFalseNone
note_type_attributehere.content.hmc2.models.NoteTypeAttributeTrueFalseNone
place_category_confidence_attributehere.content.hmc2.models.PlaceCategoryConfiden...TrueFalseNone
popularity_attributehere.content.hmc2.models.PopularityAttributeTrueFalseNone
vendor_url_attributehere.content.hmc2.models.VendorUrlAttributeTrueFalseNone
df = here_places.get("19319399", "external_identifier")
df.head(2)

.dataframe thead th {text-align: right;}

places supplier.partition_id supplier.id supplier.names supplier.category.partition supplier.category.identifier inactive category.partition category.identifier type
partition_id id
19319399 -0Mrmlbum_Eii7fo8POhQQ [{'partition_id': '19319399', 'id': 'here:pds:... 19319399 here:pds:placesupplier:yelp [{'text': {'value': 'yelp', 'language': ''}, '... all here:pds:navteq-lcms:900-9300-0221 False SUPPLIER_POIID
-2VLIpgTdqoWMckVAS1b7Q [{'partition_id': '19319399', 'id': 'here:pds:... 19319399 here:pds:placesupplier:yelp [{'text': {'value': 'yelp', 'language': ''}, '... all here:pds:navteq-lcms:900-9300-0221 False SUPPLIER_POIID

4. Multilayer Bindings

4.1 Administrative boundary for a segment

This binding associates segment with administrative boundary.

Layer Ids - administrative-places , administrative-locations

segment_admin_boundary = hmc.segment_admin_boundary
types_to_df(segment_admin_boundary.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
segment_admin_boundaryhere.content.hmc2.segment_admin_boundary.Segme...TrueFalsesegment, place
df = segment_admin_boundary.get(17302684, "segment_admin_boundary")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward place_ref.partition place_ref.identifier place_name admin_category location.partition_id location.location_id location.location_type ... location.segment_anchor.oriented_segment_ref location.segment_anchor.attribute_orientation location.segment_anchor_side location.accessors location.political_geometry location.alternate_geometry location.within_location_ref.partition_name location.within_location_ref.identifier location.bounding_box location.level_info
partition_id
17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936-27869540-27869541 here:cm:namedplace:27869542 [{'text': {'value': 'Chatham Islands', 'langua... city 23060936-27869540-27869541 here:cm:namedplace-loc:27869542 AREA ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []
17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936-27869540-27869541 here:cm:namedplace:27869549 [{'text': {'value': '8016', 'language': ''}, '... postal_code 23060936-27869540-27869541 here:cm:namedplace-loc:27869549 AREA ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []

2 rows × 24 columns

df = segment_admin_boundary.get(17302684, "segment_admin_boundary")
df.head(2)

.dataframe thead th {text-align: right;}

segments forward backward place_ref.partition place_ref.identifier place_name admin_category location.partition_id location.location_id location.location_type ... location.segment_anchor.oriented_segment_ref location.segment_anchor.attribute_orientation location.segment_anchor_side location.accessors location.political_geometry location.alternate_geometry location.within_location_ref.partition_name location.within_location_ref.identifier location.bounding_box location.level_info
partition_id
17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936-27869540-27869541 here:cm:namedplace:27869542 [{'text': {'value': 'Chatham Islands', 'langua... city 23060936-27869540-27869541 here:cm:namedplace-loc:27869542 AREA ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []
17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936-27869540-27869541 here:cm:namedplace:27869549 [{'text': {'value': '8016', 'language': ''}, '... postal_code 23060936-27869540-27869541 here:cm:namedplace-loc:27869549 AREA ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []

2 rows × 24 columns

### Construct a new Reference by giving partition and identifier.
segment_ref = make_ref("17302684", "here:cm:segment:499005300")
segment_admin_boundary_atts = segment_admin_boundary.get_referencing("17302684", "segment_admin_boundary", 
                                                       "segment", segment_ref)
segment_admin_boundary_atts.head(2)

.dataframe thead th {text-align: right;}

partition_id segments forward backward place_ref.partition place_ref.identifier place_name admin_category location.partition_id location.location_id ... location.segment_anchor.oriented_segment_ref location.segment_anchor.attribute_orientation location.segment_anchor_side location.accessors location.political_geometry location.alternate_geometry location.within_location_ref.partition_name location.within_location_ref.identifier location.bounding_box location.level_info
0 17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936-27869540-27869541 here:cm:namedplace:27869542 [{'text': {'value': 'Chatham Islands', 'langua... city 23060936-27869540-27869541 here:cm:namedplace-loc:27869542 ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []
1 17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936-27869540-27869541 here:cm:namedplace:27869549 [{'text': {'value': '8016', 'language': ''}, '... postal_code 23060936-27869540-27869541 here:cm:namedplace-loc:27869549 ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []

2 rows × 25 columns

### Construct a new Reference by giving partition and identifier.
place_ref = make_ref("23060936", "here:cm:namedplace:23060936")
place_admin_boundary_atts = segment_admin_boundary.get_referencing("17302684", "segment_admin_boundary", 
                                                       "place", place_ref)
place_admin_boundary_atts

.dataframe thead th {text-align: right;}

partition_id segments forward backward place_ref.partition place_ref.identifier place_name admin_category location.partition_id location.location_id ... location.segment_anchor.oriented_segment_ref location.segment_anchor.attribute_orientation location.segment_anchor_side location.accessors location.political_geometry location.alternate_geometry location.within_location_ref.partition_name location.within_location_ref.identifier location.bounding_box location.level_info
0 17302684 [{'ref': {'partition': '17302684', 'identifier... True True 23060936 here:cm:namedplace:23060936 [{'text': {'value': 'New Zealand', 'language':... country 23060936 here:cm:namedplace-loc:23060936 ... [] RELATIVE_DIRECTION_UNKNOWN SIDE_UNKNOWN <NA> [] []

1 rows × 25 columns

4.2 Environmental zones for a segment

This binding associates segment with environmental zones.

Layer Ids - environmental_zones, navigation-attributes

ezc = hmc.environmental_zone_conditions
display(ezc)

<here.content.hmc2.environmental_zone_conditions.EnvironmentalZoneConditions at 0x7efbbd5d6680>

types_to_df(ezc.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
segment_to_environmental_zonehere.content.hmc2.environmental_zone_condition...TrueFalselocation, segment
data_ezc = ezc.get(partition = 23618402, object_type = 'segment_to_environmental_zone')
data_ezc.head(2)

.dataframe thead th {text-align: right;}

segment_ref.ref.partition segment_ref.ref.identifier segment_ref.inverted segment_ref.offset.start segment_ref.offset.end forward backward applies_to.automobiles applies_to.buses applies_to.taxis ... zone.name zone.info.description zone.info.website.value zone.info.website.language zone.info.version_date zone.info.extent_date zone.info.country zone.vehicle_class zone.environmental_badge zone.location_ref
partition_id
23618402 23618402 here:cm:segment:100005273 False <NA> <NA> True True True True True ... [{'text': {'value': 'Berlin Umweltzone', 'lang... [{'value': 'Die Umweltzone der Stadt Berlin is... https://www.berlin.de/senuvk/umwelt/luftqualit... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23618400', 'identifier': 'here...
23618402 23618402 here:cm:segment:100005286 False <NA> <NA> True True True True True ... [{'text': {'value': 'Berlin Umweltzone', 'lang... [{'value': 'Die Umweltzone der Stadt Berlin is... https://www.berlin.de/senuvk/umwelt/luftqualit... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23618400', 'identifier': 'here...

2 rows × 29 columns

data_ezc.iloc[0]['zone.location_ref']

[{'partition': '23618400', 'identifier': 'here:cm:carto-loc:1415962522'}]

### Construct a new Reference by giving partition and identifier.
ref = make_ref(23618402, "here:cm:segment:92642459")
data = ezc.get_referencing(partition = 23618402, 
                           object_type = 'segment_to_environmental_zone', 
                           ref_type='segment',
                          referenced_obj=ref)
data

.dataframe thead th {text-align: right;}

partition_id segment_ref.ref.partition segment_ref.ref.identifier segment_ref.inverted segment_ref.offset.start segment_ref.offset.end forward backward applies_to.automobiles applies_to.buses ... zone.name zone.info.description zone.info.website.value zone.info.website.language zone.info.version_date zone.info.extent_date zone.info.country zone.vehicle_class zone.environmental_badge zone.location_ref
0 23618402 23618402 here:cm:segment:92642459 False <NA> 0.512538 True True True True ... [{'text': {'value': 'Berlin Umweltzone', 'lang... [{'value': 'Die Umweltzone der Stadt Berlin is... https://www.berlin.de/senuvk/umwelt/luftqualit... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23618400', 'identifier': 'here...
1 23618402 23618402 here:cm:segment:92642459 False 0.512538 <NA> True True True True ... [{'text': {'value': 'Berlin Umweltzone', 'lang... [{'value': 'Die Umweltzone der Stadt Berlin is... https://www.berlin.de/senuvk/umwelt/luftqualit... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23618400', 'identifier': 'here...

2 rows × 30 columns

### Construct a new Reference by giving partition and identifier.
ref = make_ref(23618400, "here:cm:carto-loc:1415962522")
data = ezc.get_referencing(partition = 23618402, 
                           object_type = 'segment_to_environmental_zone', 
                           ref_type='location',
                          referenced_obj=ref)
data.head(2)

.dataframe thead th {text-align: right;}

partition_id segment_ref.ref.partition segment_ref.ref.identifier segment_ref.inverted segment_ref.offset.start segment_ref.offset.end forward backward applies_to.automobiles applies_to.buses ... zone.name zone.info.description zone.info.website.value zone.info.website.language zone.info.version_date zone.info.extent_date zone.info.country zone.vehicle_class zone.environmental_badge zone.location_ref
0 23618402 23618402 here:cm:segment:100005273 False <NA> <NA> True True True True ... [{'text': {'value': 'Berlin Umweltzone', 'lang... [{'value': 'Die Umweltzone der Stadt Berlin is... https://www.berlin.de/senuvk/umwelt/luftqualit... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23618400', 'identifier': 'here...
1 23618402 23618402 here:cm:segment:100005286 False <NA> <NA> True True True True ... [{'text': {'value': 'Berlin Umweltzone', 'lang... [{'value': 'Die Umweltzone der Stadt Berlin is... https://www.berlin.de/senuvk/umwelt/luftqualit... 2019-05-09 2019-01-01 GERMANY [{'vehicle_attributes': {'category': 'AUTO', '... [{'badge_type': 'DEU_GREEN_STICKER', 'zone_acc... [{'partition': '23618400', 'identifier': 'here...

2 rows × 30 columns

data_ezc.iloc[0]

segment_ref.ref.partition 23618402
segment_ref.ref.identifier here:cm:segment:100005273
segment_ref.inverted False
segment_ref.offset.start

4.3 Street name for a segment

This binding associates segment with administrative boundary.

Layer Id - address-attributes, street-names

segment_street_names = hmc.segment_street_names
segment_street = segment_street_names.get(["20371958","17434043"], "street_section")
segment_street.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.side attribute.property attribute.street_section
0 [{'ref': {'partition': '20371958', 'identifier... True True BOTH_SIDES [EXPLICATABLE, NAME_ON_ROADSIGN] StreetSection(partition_id='20317122-23489553'...
1 [{'ref': {'partition': '20371958', 'identifier... True True BOTH_SIDES [EXPLICATABLE, NAME_ON_ROADSIGN] StreetSection(partition_id='20317122-23489553'...
segment_street = segment_street_names.get(["20371958","17434043"], "address_range")
segment_street.head(2)

.dataframe thead th {text-align: right;}

segments forward backward attribute.address_range_type attribute.format attribute.side attribute.postal_mapping attribute.address_type attribute.scheme attribute.first_house_number attribute.last_house_number attribute.street_section
0 [{'ref': {'partition': '20371958', 'identifier... True True LOGICAL UNADDRESSED LEFT_SIDE [{'match_category': 'ADDRESS_RANGE_MATCH', 'fi... BASE ADDRESS_SCHEME_UNKNOWN [StreetSection(partition_id='20317122-23489553...
1 [{'ref': {'partition': '20371958', 'identifier... True True LOGICAL UNADDRESSED LEFT_SIDE [{'match_category': 'ADDRESS_RANGE_MATCH', 'fi... BASE ADDRESS_SCHEME_UNKNOWN [StreetSection(partition_id='20317122-23489553...

4.4 ADAS Attributes

This binding associates Topology Geometry with ADAS layer.

Layer Id - ADAS Attributes

adas_attributes = hmc.adas_attributes
partition_id = ['18508594','18608750']
types_to_df(adas_attributes.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
curvaturehere.content.hmc2.adas_attributes.CurvatureTrueFalseNone
headinghere.content.hmc2.adas_attributes.HeadingTrueFalseNone
elevationhere.content.hmc2.adas_attributes.ElevationTrueFalseNone
slopehere.content.hmc2.adas_attributes.SlopeTrueFalseNone
link_accuracyhere.content.hmc2.adas_attributes.LinkAccuracyTrueFalseNone
built_up_area_roadhere.content.hmc2.adas_attributes.BuiltupAreaRoadTrueFalseNone
curvature_attribute = adas_attributes.get(partition_id, 'curvature')
curvature_attribute.head(2)

.dataframe thead th {text-align: right;}

segment_anchorscurvature
partition_id
18508594[SegmentAnchor(partition_id='18508594', orient...-1000000
18508594[SegmentAnchor(partition_id='18508594', orient...-958604
heading_attribute = adas_attributes.get(partition_id, 'heading')
heading_attribute.head(2)

.dataframe thead th {text-align: right;}

segment_anchorsheading
partition_id
18508594[SegmentAnchor(partition_id='18508594', orient...0
18508594[SegmentAnchor(partition_id='18508594', orient...6
slope_attribute = adas_attributes.get(partition_id, 'slope')
slope_attribute.head(2)

.dataframe thead th {text-align: right;}

segment_anchorsslopeaccuracy
partition_id
18508594[SegmentAnchor(partition_id='18508594', orient...-21000BASIC
18508594[SegmentAnchor(partition_id='18508594', orient...-20994BASIC
elevation_attribute = adas_attributes.get(partition_id, 'elevation')
elevation_attribute.head(2)

.dataframe thead th {text-align: right;}

segment_anchorselevationaccuracysigned_elevationnode_anchors
partition_id
18508594<NA>2335BASIC2335[Node(partition_id='18508594', node_id='here:c...
18508594[SegmentAnchor(partition_id='18508594', orient...2343BASIC2343<NA>
link_accuracy_attribute = adas_attributes.get(partition_id, 'link_accuracy')
link_accuracy_attribute.head(2)

.dataframe thead th {text-align: right;}

segment_anchorslink_accuracy
partition_id
18508594[SegmentAnchor(partition_id='18508594', orient...2
18508594[SegmentAnchor(partition_id='18508594', orient...4
built_up_area_road_attribute = adas_attributes.get(partition_id, 'built_up_area_road')
built_up_area_road_attribute.head(2)

.dataframe thead th {text-align: right;}

4.5 Composite Road Attributes

This binding associates Composite Road Attribute with ADAS layer.

Layer Id - Composite Road Attributes

composite_road_attributes = hmc.composite_road_attributes
partition_id = ['23195507','23462802','23462789']
types_to_df(composite_road_attributes.object_types())

.dataframe thead th {text-align: right;}

Data ClassIndex by partitionIndex by IDRef Types
Type
complex_road_attributehere.content.hmc2.composite_road_attributes.Co...TrueTrueNone
complex_intersection_attributehere.content.hmc2.composite_road_attributes.Co...TrueTrueNone
complex_object_attributehere.content.hmc2.composite_road_attributes.Co...TrueTrueNone
complex_object_attribute = composite_road_attributes.get(partition_id, 'complex_object_attribute')
complex_object_attribute

.dataframe thead th {text-align: right;}

node_anchors segment_anchors name valid_unnamed anchor_point.latitude anchor_point.longitude anchor_point.z_level anchor_point.elevation
partition_id complex_object_id
23195507 here:cm:crf:1493708652 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.58096 39.16535 0 0.0
here:cm:crf:1497800168 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.59759 39.15982 0 0.0
here:cm:crf:1499287692 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.56455 39.17078 0 0.0
here:cm:crf:1504000399 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.54156 39.15534 0 0.0
here:cm:crf:1504006567 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.57577 39.17977 0 0.0
here:cm:crf:1519617199 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.61966 39.16551 0 0.0
here:cm:crf:1650073602 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.57973 39.19850 0 0.0
here:cm:crf:1650125112 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.56808 39.18278 0 0.0
here:cm:crf:1650131595 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.61969 39.18584 0 0.0
here:cm:crf:1650133452 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.59982 39.19228 0 0.0
here:cm:crf:1650144410 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.55941 39.18735 0 0.0
here:cm:crf:1667168619 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.58440 39.17726 0 0.0
here:cm:crf:1677169493 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.61388 39.15552 0 0.0
here:cm:crf:1684284225 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.56041 39.19229 0 0.0
here:cm:crf:1722897456 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.55587 39.17373 0 0.0
here:cm:crf:1723827387 [Node(partition_id='23195507', node_id='here:c... [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.58943 39.17533 0 0.0
here:cm:crf:544894463 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.54407 39.14448 0 0.0
here:cm:crf:722159622 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.57475 39.14330 0 0.0
here:cm:crf:722562744 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.61806 39.17726 0 0.0
here:cm:crf:725863472 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.60112 39.17159 0 0.0
here:cm:crf:725904596 <NA> [SegmentAnchor(partition_id='23195507', orient... <NA> True 21.54449 39.19048 0 0.0
23462802 here:cm:crf:1578840808 <NA> [SegmentAnchor(partition_id='23462802', orient... <NA> True 24.76493 46.84140 0 0.0
here:cm:crf:1681059910 <NA> [SegmentAnchor(partition_id='23462802', orient... <NA> True 24.77620 46.77654 0 0.0
here:cm:crf:1720328913 <NA> [SegmentAnchor(partition_id='23462802', orient... <NA> True 24.77734 46.83228 0 0.0
here:cm:crf:544892244 <NA> [SegmentAnchor(partition_id='23462802', orient... [text {\n value: "Demashq Square"\n}\nname_ty... False 24.71451 46.76177 0 0.0
here:cm:crf:736990579 <NA> [SegmentAnchor(partition_id='23462802', orient... <NA> True 24.72163 46.77325 0 0.0
here:cm:crf:737020957 <NA> [SegmentAnchor(partition_id='23462802', orient... <NA> True 24.73022 46.78705 0 0.0
here:cm:crf:737090233 <NA> [SegmentAnchor(partition_id='23462802', orient... <NA> True 24.73816 46.79983 0 0.0
23462789 here:cm:crf:1481339727 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.62703 46.69214 0 0.0
here:cm:crf:1500104605 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.67550 46.70346 0 0.0
here:cm:crf:1501861080 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.65659 46.67867 0 0.0
here:cm:crf:1503889262 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.63702 46.69261 0 0.0
here:cm:crf:1503889263 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.64139 46.69289 0 0.0
here:cm:crf:1573974308 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.62201 46.74738 0 0.0
here:cm:crf:1623389228 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.65028 46.70229 0 0.0
here:cm:crf:1659713397 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.64065 46.75989 0 0.0
here:cm:crf:1672958913 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.69360 46.72322 0 0.0
here:cm:crf:38870755 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.65039 46.69375 0 0.0
here:cm:crf:38882882 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.65003 46.68995 0 0.0
here:cm:crf:544886286 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.69506 46.68057 0 0.0
here:cm:crf:544886620 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.67872 46.68881 0 0.0
here:cm:crf:544886680 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.63101 46.70473 0 0.0
here:cm:crf:544886681 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.62886 46.70501 0 0.0
here:cm:crf:544892561 <NA> [SegmentAnchor(partition_id='23462789', orient... [text {\n value: "ميدان النقل"\n}\nname_type:... False 24.68823 46.71257 0 0.0
here:cm:crf:544892572 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.68336 46.69967 0 0.0
here:cm:crf:544892576 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.68016 46.69202 0 0.0
here:cm:crf:551627028 <NA> [SegmentAnchor(partition_id='23462789', orient... [text {\n value: "Al Amal Square"\n}\nname_ty... False 24.64722 46.73287 0 0.0
here:cm:crf:551627932 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.64657 46.68772 0 0.0
here:cm:crf:710121064 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.66694 46.71817 0 0.0
here:cm:crf:710121148 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.61106 46.67182 0 0.0
here:cm:crf:710175213 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.65596 46.71717 0 0.0
here:cm:crf:710175338 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.68626 46.70660 0 0.0
here:cm:crf:710183532 <NA> [SegmentAnchor(partition_id='23462789', orient... [text {\n value: "ميدان مقديشو"\n}\nname_type... False 24.63959 46.73664 0 0.0
here:cm:crf:710190559 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.66818 46.69582 0 0.0
here:cm:crf:736822102 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.66088 46.68495 0 0.0
here:cm:crf:736944566 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.67539 46.67818 0 0.0
here:cm:crf:737212476 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.68831 46.75429 0 0.0
here:cm:crf:739486354 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.63000 46.71737 0 0.0
here:cm:crf:739486355 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.63796 46.71781 0 0.0
here:cm:crf:739495774 <NA> [SegmentAnchor(partition_id='23462789', orient... <NA> True 24.64483 46.70301 0 0.0
complex_intersection_attribute = composite_road_attributes.get(partition_id, 'complex_intersection_attribute')
complex_intersection_attribute

.dataframe thead th {text-align: right;}

node_anchorssegment_anchors
partition_idcomplex_intersection_id
23195507here:cm:crf:1410280611[Node(partition_id='23195507', node_id='here:c...[SegmentAnchor(partition_id='23195507', orient...
here:cm:crf:1410310487[Node(partition_id='23195507', node_id='here:c...[SegmentAnchor(partition_id='23195507', orient...
here:cm:crf:1418600386<NA>[SegmentAnchor(partition_id='23195507', orient...
here:cm:crf:1457805913<NA>[SegmentAnchor(partition_id='23195507', orient...
here:cm:crf:1457807146[Node(partition_id='23195507', node_id='here:c...[SegmentAnchor(partition_id='23195507', orient...
............
23462789here:cm:crf:740764272[Node(partition_id='23462789', node_id='here:c...<NA>
here:cm:crf:740764273<NA>[SegmentAnchor(partition_id='23462789', orient...
here:cm:crf:740764274<NA>[SegmentAnchor(partition_id='23462789', orient...
here:cm:crf:740764275<NA>[SegmentAnchor(partition_id='23462789', orient...
here:cm:crf:741489237<NA>[SegmentAnchor(partition_id='23462789', orient...

9348 rows × 2 columns

complex_road_attribute = composite_road_attributes.get(partition_id,'complex_road_attribute')
complex_road_attribute

.dataframe thead th {text-align: right;}

segment_anchorsstart_complex_intersection_ref.identifierstart_complex_intersection_ref.partition_nameend_complex_intersection_ref.identifierend_complex_intersection_ref.partition_name
partition_idcomplex_road_id
23195507here:cm:crf:1410280612[SegmentAnchor(partition_id='23195507', orient...here:cm:crf:704229234here:cm:crf:1410280611
here:cm:crf:1457805915[SegmentAnchor(partition_id='23195507', orient...here:cm:crf:1457805913here:cm:crf:544887755
here:cm:crf:1457807153[SegmentAnchor(partition_id='23195507', orient...here:cm:crf:1457807146here:cm:crf:734900193
here:cm:crf:1457807154[SegmentAnchor(partition_id='23195507', orient...here:cm:crf:1497853257here:cm:crf:1457807146
here:cm:crf:1457807155[SegmentAnchor(partition_id='23195507', orient...here:cm:crf:1457807148here:cm:crf:544894522
.....................
23462789here:cm:crf:740764278[SegmentAnchor(partition_id='23462789', orient...here:cm:crf:740764271here:cm:crf:740764274
here:cm:crf:740764279[SegmentAnchor(partition_id='23462789', orient...here:cm:crf:740764272here:cm:crf:740764275
here:cm:crf:741489238[SegmentAnchor(partition_id='23462789', orient...here:cm:crf:741489237here:cm:crf:544869158
here:cm:crf:741489239[SegmentAnchor(partition_id='23462789', orient...here:cm:crf:544869165here:cm:crf:741489237
here:cm:crf:743367541[SegmentAnchor(partition_id='23462789', orient...here:cm:crf:1672893600here:cm:crf:544884808

9429 rows × 5 columns

5. Download notebook

To run the notebook on your local machine, please refer to link below.

url = os.path.abspath("")
notebook_name = 'hmc.ipynb'
notebook = FileLink(f"{url}/{notebook_name}", result_html_prefix="Click here to download: ")
display(notebook)

Click here to download: /builds/sdk/pysdk-nagini/dev_guide/notebooks/hmc.ipynb


Did this page help you?