superblockify package#
Subpackages#
- superblockify.metrics package
- superblockify.partitioning package
- Subpackages
- superblockify.partitioning.approaches package
- Submodules
- superblockify.partitioning.approaches.attribute module
- superblockify.partitioning.approaches.bearing module
- superblockify.partitioning.approaches.betweenness module
- superblockify.partitioning.approaches.dummy module
- superblockify.partitioning.approaches.steiner_tree module
- superblockify.partitioning.approaches.streettype module
- Module contents
- superblockify.partitioning.approaches package
- Submodules
- superblockify.partitioning.base module
BasePartitioner
BasePartitioner.add_component_tessellation()
BasePartitioner.calculate_metrics()
BasePartitioner.calculate_metrics_before()
BasePartitioner.check_has_been_run()
BasePartitioner.get_ltns()
BasePartitioner.get_partition_nodes()
BasePartitioner.get_sorted_node_list()
BasePartitioner.load()
BasePartitioner.load_or_find_graph()
BasePartitioner.make_subgraphs_from_attribute()
BasePartitioner.overwrite_attributes_of_ignored_components()
BasePartitioner.partition_graph()
BasePartitioner.run()
BasePartitioner.save()
BasePartitioner.save_key_figures()
BasePartitioner.set_components_from_sparsified()
BasePartitioner.set_sparsified_from_components()
- superblockify.partitioning.checks module
- superblockify.partitioning.plot module
- superblockify.partitioning.representative module
- superblockify.partitioning.speed module
- superblockify.partitioning.utils module
- Module contents
- Subpackages
- superblockify.population package
Submodules#
superblockify.attribute module#
Work with graph attributes.
- superblockify.attribute.aggregate_edge_attr(graph, key, func, dismiss_none=True)[source]#
Aggregate edge attributes by function.
- Parameters:
- graphnetworkx.Graph
Input graph, subgraph or view
- keyimmutable
Edge attribute key
- funcfunction
Function to aggregate values. Able to handle lists.
- dismiss_nonebool, optional
If True, dismiss None values. Default: True
- Returns:
- dict
Dictionary of aggregated edge attributes
- Raises:
- KeyError
If there are no edge attributes for the given key.
Examples
>>> G = nx.Graph() >>> G.add_edge(1, 2, weight=1) >>> G.add_edge(2, 3, weight=2) >>> G.add_edge(3, 4, weight=3) >>> G.add_edge(4, 1, weight=None) >>> aggregate_edge_attr(G, 'weight', sum) 6 >>> aggregate_edge_attr(G, 'weight', lambda x: sum(x)/len(x)) 2.0 >>> aggregate_edge_attr(G, 'weight', lambda x: x) [1, 2, 3]
- superblockify.attribute.determine_minmax_val(graph, minmax_val, attr, attr_type='edge')[source]#
Determine the min and max values of an attribute in a graph.
This function is used to determine the min and max values of an attribute. If minmax_val is None, the min and max values of the attribute in the graph are used. If minmax_val is a tuple of length 2, the values are used as min and max values. If minmax_val is a tuple of length 2, but the first value is larger than the second, a ValueError is raised. If only one value in the tuple is given, the other value is set accordingly.
- Parameters:
- graphnetworkx.Graph
Input graph
- minmax_valtuple, None
Tuple of (min, max) values of the attribute to be plotted or None
- attrstring
Graph’s attribute to select min and max values by
- attr_typestring, optional
Type of the attribute, either “edge” or “node”
- Returns:
- tuple
Tuple of (min, max) values.
- Raises:
- ValueError
If minmax_val is not a tuple of length 2 or None.
- ValueError
If minmax_val[0] is not smaller than minmax_val[1].
- ValueError
If attr_type is not “edge” or “node”.
- superblockify.attribute.get_edge_subgraph_with_attribute_value(graph, attribute_label, attribute_value)[source]#
Return subgraph view of edges with a given attribute value. The graph, edge, and node attributes in the returned subgraph view are references to the corresponding attributes in the original graph. The view is read-only.
- Parameters:
- graphnetworkx.Graph
Input graph
- attribute_labelstring
Name of an existing node attribute
- attribute_valueint
Value of the attribute to be selected
- Returns:
- networkx.Graph
Subgraph of edges with the given attribute value
- Raises:
- ValueError
If the graph has no attributes with the given key.
- ValueError
If the returned subgraph is empty.
Examples
>>> G = nx.path_graph(6) >>> nx.set_edge_attributes(G, {edge: {'attr': int(edge[0]/2)} for edge in G.edges}) >>> get_edges_with_attribute_value(G, 'attr', 1).edges EdgeView([(2, 3), (3, 4)])
- superblockify.attribute.new_edge_attribute_by_function(graph, function, source_attribute, destination_attribute, allow_overwriting=False)[source]#
Maps new edge attributes from an existing attribute to a new one.
Works on the passed graph and writes new attribute as a result of the function to it.
- Parameters:
- graphnetworkx.Graph
Input graph
- functionfunction
Function that takes the source attribute
- source_attributestring
Name of an existing node attribute
- destination_attributestring
Name of a node attribute which is to be written
- allow_overwritingbool, optional
Set to True if graph attributes are allowed to be overwritten, as in the ase where source and destination attribute have the same name.
- Raises:
- ValueError
If the graph has already attributes with the destination key, and overfriting is False.
- ValueError
If the source attribute does not exist in the graph.
Examples
>>> G = nx.path_graph(3) >>> nx.set_edge_attributes(G, 4, 'four') >>> new_edge_attribute_by_function(G, lambda x: 2*x, 'four', 'eight') >>> G.edges.data('eight') EdgeDataView([(0, 1, 8), (1, 2, 8)])
superblockify.config module#
Configuration file for superblockify.
This module contains the configuration class for superblockify.
Notes
Logger configuration is done using the logging.cfg
file.
The logger for this module is named superblockify
.
- class superblockify.config.Config[source]#
Bases:
object
Configuration class for superblockify.
- Attributes:
- WORK_DIR
The working directory of the package. This is used to store the graphs and results in subdirectories of this directory. By default, this is the current working directory when the package is imported. This is only used to define the following directories.
- GRAPH_DIR
The directory where the graphs are stored.
- RESULTS_DIR
The directory where the results are stored.
- GHSL_DIR
The directory where the GHSL population data is stored when downloaded.
- V_MAX_LTN
The maximum speed in km/h for the restricted calculation of travel times.
- V_MAX_SPARSE
The maximum speed in km/h for the restricted calculation of travel times for the sparsified graph.
- NETWORK_FILTER
The filter used to filter the OSM data for the graph. This is a string that is passed to the
osmnx.graph_from_place()
function.- CLUSTERING_PERCENTILE
The percentile used to determine the betweenness centrality threshold for the spatial clustering and anisotropy nodes.
- NUM_BINS
The number of bins used for the histograms in the entropy calculation.
- FULL_RASTER
The path and filename of the full GHSL raster. If None, tiles of the needed area are downloaded from the JRC FTP server and stored in the GHSL_DIR directory. <https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/GHS_POP_GLOBE_R2023A/GHS_POP_E2025_GLOBE_R2023A_54009_100/V1-0/GHS_POP_E2025_GLOBE_R2023A_54009_100_V1_0.zip>
- DOWNLOAD_TIMEOUT
The timeout in seconds for downloading the GHSL raster tiles.
- logger
The logger for this module. This is used to log information, warnings and errors throughout the package.
- TEST_DATA_PATH
The path to the test data directory.
- HIDE_PLOTS
Whether to hide the plots in the tests.
- PLACES_GENERAL
A list of tuples of the form
(name, place)
wherename
is the name of the place andplace
is the place string that is passed to thesuperblockify.utils.load_graph_from_place()
function.- PLACES_SMALL
Same as
PLACES_GENERAL
but for places of which the graph is small enough to be used in the tests.- PLACES_100_CITIES
100 cities from Boeing et al. (2019) <https://doi.org/10.1007/s41109-019-0189-1> A dictionary of the form
{name: place}
wherename
is the name of the place, andplace
is a dictionary of various attributes. One of them is thequery
attribute which is the place string or a list of place strings. Find the extensive list in the./cities.yml
file.- PLACES_GERMANY
List of cities in Germany by population. All cities with more than 100,000 inhabitants are included. Data from the German Federal Statistical Office.
- PLOT_SUFFIX
The format of the plots. Can be
"png"
,"jpg"
,"pdf"
,"svg"
, etc. Matplotlib uses the Pillow library to save the plots, so all formats supported by Pillow are supported by Matplotlib. <https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html>- MAX_NODES
The maximum number of nodes in the graph. If the graph has more nodes, it is reduced. See
superblockify.partitioning.utils.reduce_graph()
.
- CLUSTERING_PERCENTILE = 90#
- DOWNLOAD_TIMEOUT = 60#
- FULL_RASTER = None#
- GHSL_DIR = '/home/runner/work/superblockify/superblockify/data/ghsl'#
- GRAPH_DIR = '/home/runner/work/superblockify/superblockify/data/graphs'#
- HIDE_PLOTS = True#
- MAX_NODES = 20000#
- NETWORK_FILTER = '["highway"]["area"!~"yes"]["access"!~"private"]["highway"!~"abandoned|bridleway|bus_guideway|busway|construction|corridor|cycleway|elevator|escalator|footway|path|pedestrian|planned|platform|proposed|raceway|service|steps|track"]["motor_vehicle"!~"no"]["motorcar"!~"no"]["service"!~"alley|driveway|emergency_access|parking|parking_aisle|private"]'#
- NUM_BINS = 36#
- PLACES_100_CITIES = {'Amsterdam': {'OSM relation': ['https://www.openstreetmap.org/relation/271110'], 'P 4w': 0.205, 'P de': 0.146, 'circuity_avg': 1.08, 'country': 'NL', 'k_avg': 2.897, 'median_segment_length': 65.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Amsterdam,+North+Holland,+Netherlands'], 'orient_order': 0.071, 'osm_id': [271110], 'pop_GHSL2023': 818407.499844633, 'query': 'Amsterdam, North Holland, Netherlands', 'region': 'EU', 'Η o': 3.504, 'Η w': 3.488}, 'Athens': {'OSM relation': ['https://www.openstreetmap.org/relation/1370736'], 'P 4w': 0.363, 'P de': 0.056, 'circuity_avg': 1.019, 'country': 'GR', 'k_avg': 3.245, 'median_segment_length': 55.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Municipality+of+Athens,+Regional+Unit+of+Central+Athens,+Attica,+Greece'], 'orient_order': 0.041, 'osm_id': [1370736], 'pop_GHSL2023': 613633.1565856932, 'query': 'Municipality of Athens, Regional Unit of Central Athens, Attica, Greece', 'region': 'EU', 'Η o': 3.538, 'Η w': 3.532}, 'Atlanta': {'OSM relation': ['https://www.openstreetmap.org/relation/119557'], 'P 4w': 0.153, 'P de': 0.164, 'circuity_avg': 1.074, 'country': 'US-GA', 'k_avg': 2.806, 'median_segment_length': 112.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Atlanta,+Fulton+County,+Georgia,+United+States'], 'orient_order': 0.315, 'osm_id': [119557], 'pop_GHSL2023': 517627.27642059315, 'query': 'Atlanta, Fulton County, Georgia, United States', 'region': 'NAM', 'Η o': 3.204, 'Η w': 3.197}, 'Baghdad': {'OSM relation': ['https://www.openstreetmap.org/relation/5638803'], 'P 4w': 0.144, 'P de': 0.05, 'circuity_avg': 1.033, 'country': 'IQ', 'k_avg': 3.043, 'median_segment_length': 68.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Baghdad,+Baghdad+Governorate,+Iraq'], 'orient_order': 0.083, 'osm_id': [5638803], 'pop_GHSL2023': 6338692.7509337645, 'query': 'Baghdad, Baghdad Governorate, Iraq', 'region': 'MEA', 'Η o': 3.49, 'Η w': 3.498}, 'Baltimore': {'OSM relation': ['https://www.openstreetmap.org/relation/133345'], 'P 4w': 0.36, 'P de': 0.085, 'circuity_avg': 1.036, 'country': 'US-MD', 'k_avg': 3.182, 'median_segment_length': 100.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Baltimore,+Maryland,+United+States'], 'orient_order': 0.223, 'osm_id': [133345], 'pop_GHSL2023': 628695.3598501991, 'query': 'Baltimore, Maryland, United States', 'region': 'NAM', 'Η o': 3.324, 'Η w': 3.367}, 'Bangkok': {'OSM relation': ['https://www.openstreetmap.org/relation/92277'], 'P 4w': 0.108, 'P de': 0.36, 'circuity_avg': 1.059, 'country': 'TH', 'k_avg': 2.385, 'median_segment_length': 64.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=TH-10,+Thailand'], 'orient_order': 0.105, 'osm_id': [92277], 'pop_GHSL2023': 12342851.661893278, 'query': 'TH-10, Thailand', 'region': 'A&O', 'Η o': 3.465, 'Η w': 3.452}, 'Barcelona': {'OSM relation': ['https://www.openstreetmap.org/relation/2417889'], 'P 4w': 0.303, 'P de': 0.078, 'circuity_avg': 1.052, 'country': 'ES', 'k_avg': 3.135, 'median_segment_length': 78.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Barcelonès,+Barcelona,+Catalonia,+Spain'], 'orient_order': 0.108, 'osm_id': [2417889], 'pop_GHSL2023': 2463690.163737535, 'query': 'Barcelonès, Barcelona, Catalonia, Spain', 'region': 'EU', 'Η o': 3.462, 'Η w': 3.46}, 'Beijing': {'OSM relation': ['https://www.openstreetmap.org/relation/912940'], 'P 4w': 0.241, 'P de': 0.135, 'circuity_avg': 1.053, 'country': 'CN', 'k_avg': 2.985, 'median_segment_length': 177.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=CN-BJ,+China'], 'orient_order': 0.335, 'osm_id': [912940], 'pop_GHSL2023': 24149290.576004617, 'query': 'CN-BJ, China', 'region': 'A&O', 'Η o': 3.177, 'Η w': 3.206}, 'Beirut': {'OSM relation': ['https://www.openstreetmap.org/relation/316552'], 'P 4w': 0.218, 'P de': 0.072, 'circuity_avg': 1.026, 'country': 'LB', 'k_avg': 3.061, 'median_segment_length': 63.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Beirut+Governorate,+Lebanon'], 'orient_order': 0.206, 'osm_id': [316552], 'pop_GHSL2023': 354208.8213920592, 'query': 'Beirut Governorate, Lebanon', 'region': 'MEA', 'Η o': 3.344, 'Η w': 3.308}, 'Berlin': {'OSM relation': ['https://www.openstreetmap.org/relation/62422'], 'P 4w': 0.259, 'P de': 0.118, 'circuity_avg': 1.04, 'country': 'DE', 'k_avg': 3.002, 'median_segment_length': 113.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Berlin,+Germany'], 'orient_order': 0.011, 'osm_id': [62422], 'pop_GHSL2023': 3524738.8939121147, 'query': 'Berlin, Germany', 'region': 'EU', 'Η o': 3.572, 'Η w': 3.57}, 'Bogota': {'OSM relation': ['https://www.openstreetmap.org/relation/7426387'], 'P 4w': 0.234, 'P de': 0.122, 'circuity_avg': 1.044, 'country': 'CO', 'k_avg': 2.977, 'median_segment_length': 58.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bogota,+Bogota+Capital+District+-+Municipality,+RAP+(Especial)+Central,+Colombia'], 'orient_order': 0.04, 'osm_id': [7426387], 'pop_GHSL2023': 8899793.370068071, 'query': 'Bogota, Bogota Capital District - Municipality, RAP (Especial) Central, Colombia', 'region': 'LatAm', 'Η o': 3.539, 'Η w': 3.529}, 'Boston': {'OSM relation': ['https://www.openstreetmap.org/relation/2315704'], 'P 4w': 0.211, 'P de': 0.135, 'circuity_avg': 1.039, 'country': 'US-MA', 'k_avg': 2.945, 'median_segment_length': 77.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Boston,+Suffolk+County,+Massachusetts,+United+States'], 'orient_order': 0.026, 'osm_id': [2315704], 'pop_GHSL2023': 613869.7221977434, 'query': 'Boston, Suffolk County, Massachusetts, United States', 'region': 'NAM', 'Η o': 3.554, 'Η w': 3.552}, 'Budapest': {'OSM relation': ['https://www.openstreetmap.org/relation/37244'], 'P 4w': 0.231, 'P de': 0.096, 'circuity_avg': 1.032, 'country': 'HU', 'k_avg': 3.037, 'median_segment_length': 93.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Budapest,+Central+Hungary,+Hungary'], 'orient_order': 0.05, 'osm_id': [37244], 'pop_GHSL2023': 1835722.523857839, 'query': 'Budapest, Central Hungary, Hungary', 'region': 'EU', 'Η o': 3.528, 'Η w': 3.516}, 'Buenos Aires': {'OSM relation': ['https://www.openstreetmap.org/relation/1224652'], 'P 4w': 0.576, 'P de': 0.027, 'circuity_avg': 1.011, 'country': 'AR', 'k_avg': 3.548, 'median_segment_length': 104.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Autonomous+City+of+Buenos+Aires,+Argentina'], 'orient_order': 0.151, 'osm_id': [1224652], 'pop_GHSL2023': 2711340.2666851874, 'query': 'Autonomous City of Buenos Aires, Argentina', 'region': 'LatAm', 'Η o': 3.411, 'Η w': 3.423}, 'Cairo': {'OSM relation': ['https://www.openstreetmap.org/relation/5466227'], 'P 4w': 0.171, 'P de': 0.085, 'circuity_avg': 1.067, 'country': 'EG', 'k_avg': 2.996, 'median_segment_length': 66.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Cairo,+Egypt'], 'orient_order': 0.041, 'osm_id': [5466227], 'pop_GHSL2023': 9149031.085013825, 'query': 'Cairo, Egypt', 'region': 'MEA', 'Η o': 3.538, 'Η w': 3.526}, 'Cape Town': {'OSM relation': ['https://www.openstreetmap.org/relation/79604'], 'P 4w': 0.162, 'P de': 0.183, 'circuity_avg': 1.102, 'country': 'ZA', 'k_avg': 2.793, 'median_segment_length': 75.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=City+of+Cape+Town,+Western+Cape,+8001,+South+Africa'], 'orient_order': 0.025, 'osm_id': [79604], 'pop_GHSL2023': 5052916.481144726, 'query': 'City of Cape Town, Western Cape, 8001, South Africa', 'region': 'MEA', 'Η o': 3.556, 'Η w': 3.553}, 'Caracas': {'OSM relation': ['https://www.openstreetmap.org/relation/11219583'], 'P 4w': 0.145, 'P de': 0.217, 'circuity_avg': 1.148, 'country': 'VE', 'k_avg': 2.71, 'median_segment_length': 95.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Caracas,+Venezuela'], 'orient_order': 0.029, 'osm_id': [11219583], 'pop_GHSL2023': 2668989.406249012, 'query': 'Caracas, Venezuela', 'region': 'LatAm', 'Η o': 3.551, 'Η w': 3.564}, 'Casablanca': {'OSM relation': ['https://www.openstreetmap.org/relation/4072985'], 'P 4w': 0.178, 'P de': 0.08, 'circuity_avg': 1.048, 'country': 'MA', 'k_avg': 3.026, 'median_segment_length': 48.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Casablanca,+Casablanca-Settat,+Morocco'], 'orient_order': 0.094, 'osm_id': [4072985], 'pop_GHSL2023': 3387477.14780569, 'query': 'Casablanca, Casablanca-Settat, Morocco', 'region': 'MEA', 'Η o': 3.477, 'Η w': 3.461}, 'Charlotte': {'OSM relation': ['https://www.openstreetmap.org/relation/177415'], 'P 4w': 0.139, 'P de': 0.288, 'circuity_avg': 1.067, 'country': 'US-NC', 'k_avg': 2.546, 'median_segment_length': 117.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Charlotte,+Mecklenburg+County,+North+Carolina,+United+States'], 'orient_order': 0.002, 'osm_id': [177415], 'pop_GHSL2023': 829529.5766545291, 'query': 'Charlotte, Mecklenburg County, North Carolina, United States', 'region': 'NAM', 'Η o': 3.582, 'Η w': 3.581}, 'Chicago': {'OSM relation': ['https://www.openstreetmap.org/relation/122604'], 'P 4w': 0.507, 'P de': 0.074, 'circuity_avg': 1.016, 'country': 'US-IL', 'k_avg': 3.343, 'median_segment_length': 105.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Chicago,+Cook+County,+Illinois,+United+States'], 'orient_order': 0.899, 'osm_id': [122604], 'pop_GHSL2023': 2640668.741081328, 'query': 'Chicago, Cook County, Illinois, United States', 'region': 'NAM', 'Η o': 2.083, 'Η w': 2.103}, 'Cleveland': {'OSM relation': ['https://www.openstreetmap.org/relation/182130'], 'P 4w': 0.198, 'P de': 0.091, 'circuity_avg': 1.029, 'country': 'US-OH', 'k_avg': 2.979, 'median_segment_length': 103.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Cleveland,+Cuyahoga+County,+Ohio,+United+States'], 'orient_order': 0.486, 'osm_id': [182130], 'pop_GHSL2023': 365347.62727096665, 'query': 'Cleveland, Cuyahoga County, Ohio, United States', 'region': 'NAM', 'Η o': 2.961, 'Η w': 2.899}, 'Copenhagen': {'OSM relation': ['https://www.openstreetmap.org/relation/2192363', 'https://www.openstreetmap.org/relation/2186660'], 'P 4w': 0.194, 'P de': 0.146, 'circuity_avg': 1.048, 'country': 'DK', 'k_avg': 2.881, 'median_segment_length': 78.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Københavns+Kommune,+Denmark', 'https://nominatim.openstreetmap.org/ui/search.html?q=Frederiksberg+Kommune,+Denmark'], 'orient_order': 0.029, 'osm_id': [2192363, 2186660], 'pop_GHSL2023': 764718.588683754, 'query': ['Københavns Kommune, Denmark', 'Frederiksberg Kommune, Denmark'], 'region': 'EU', 'Η o': 3.552, 'Η w': 3.551}, 'Dallas': {'OSM relation': ['https://www.openstreetmap.org/relation/6571629'], 'P 4w': 0.317, 'P de': 0.091, 'circuity_avg': 1.042, 'country': 'US-TX', 'k_avg': 3.12, 'median_segment_length': 106.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dallas,+Dallas+County,+Texas,+United+States'], 'orient_order': 0.305, 'osm_id': [6571629], 'pop_GHSL2023': 1472292.9103196533, 'query': 'Dallas, Dallas County, Texas, United States', 'region': 'NAM', 'Η o': 3.218, 'Η w': 3.182}, 'Damascus': {'OSM relation': ['https://www.openstreetmap.org/relation/7328462'], 'P 4w': 0.107, 'P de': 0.146, 'circuity_avg': 1.085, 'country': 'SY', 'k_avg': 2.801, 'median_segment_length': 65.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Damascus+Governorate,+Syria'], 'orient_order': 0.043, 'osm_id': [7328462], 'pop_GHSL2023': 2160242.529167125, 'query': 'Damascus Governorate, Syria', 'region': 'MEA', 'Η o': 3.536, 'Η w': 3.525}, 'Denver': {'OSM relation': ['https://www.openstreetmap.org/relation/1411339'], 'P 4w': 0.416, 'P de': 0.071, 'circuity_avg': 1.031, 'country': 'US-CO', 'k_avg': 3.249, 'median_segment_length': 102.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Denver,+Colorado,+United+States'], 'orient_order': 0.678, 'osm_id': [1411339], 'pop_GHSL2023': 675848.2442275502, 'query': 'Denver, Colorado, United States', 'region': 'NAM', 'Η o': 2.634, 'Η w': 2.571}, 'Detroit': {'OSM relation': ['https://www.openstreetmap.org/relation/134591'], 'P 4w': 0.482, 'P de': 0.053, 'circuity_avg': 1.012, 'country': 'US-MI', 'k_avg': 3.352, 'median_segment_length': 101.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Detroit,+Wayne+County,+Michigan,+United+States'], 'orient_order': 0.582, 'osm_id': [134591], 'pop_GHSL2023': 658243.4261336921, 'query': 'Detroit, Wayne County, Michigan, United States', 'region': 'NAM', 'Η o': 2.807, 'Η w': 2.718}, 'Dubai': {'OSM relation': ['https://www.openstreetmap.org/relation/4479752'], 'P 4w': 0.073, 'P de': 0.074, 'circuity_avg': 1.087, 'country': 'AE', 'k_avg': 2.925, 'median_segment_length': 79.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dubai,+United+Arab+Emirates'], 'orient_order': 0.031, 'osm_id': [4479752], 'pop_GHSL2023': 3122371.0558517794, 'query': 'Dubai, United Arab Emirates', 'region': 'MEA', 'Η o': 3.55, 'Η w': 3.529}, 'Dublin': {'OSM relation': ['https://www.openstreetmap.org/relation/1109531'], 'P 4w': 0.068, 'P de': 0.279, 'circuity_avg': 1.061, 'country': 'IE', 'k_avg': 2.492, 'median_segment_length': 71.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dublin,+Dublin+1,+Leinster,+Ireland'], 'orient_order': 0.024, 'osm_id': [1109531], 'pop_GHSL2023': 554085.2711834605, 'query': 'Dublin, Dublin 1, Leinster, Ireland', 'region': 'EU', 'Η o': 3.557, 'Η w': 3.541}, 'Glasgow': {'OSM relation': ['https://www.openstreetmap.org/relation/1906767'], 'P 4w': 0.109, 'P de': 0.238, 'circuity_avg': 1.079, 'country': 'GB', 'k_avg': 2.62, 'median_segment_length': 72.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Glasgow+City,+Scotland,+G2+1DY,+United+Kingdom'], 'orient_order': 0.047, 'osm_id': [1906767], 'pop_GHSL2023': 582972.040480375, 'query': 'Glasgow City, Scotland, G2 1DY, United Kingdom', 'region': 'EU', 'Η o': 3.531, 'Η w': 3.513}, 'Hanoi': {'OSM relation': ['https://www.openstreetmap.org/relation/1903516'], 'P 4w': 0.102, 'P de': 0.246, 'circuity_avg': 1.065, 'country': 'VN', 'k_avg': 2.61, 'median_segment_length': 64.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hà+Nội,+Vietnam'], 'orient_order': 0.01, 'osm_id': [1903516], 'pop_GHSL2023': 7412688.725904138, 'query': 'Hà Nội, Vietnam', 'region': 'A&O', 'Η o': 3.573, 'Η w': 3.572}, 'Havana': {'OSM relation': ['https://www.openstreetmap.org/relation/1854615'], 'P 4w': 0.357, 'P de': 0.118, 'circuity_avg': 1.04, 'country': 'CU', 'k_avg': 3.13, 'median_segment_length': 86.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=CU-03,+Cuba'], 'orient_order': 0.029, 'osm_id': [1854615], 'pop_GHSL2023': 2078137.1455927053, 'query': 'CU-03, Cuba', 'region': 'LatAm', 'Η o': 3.551, 'Η w': 3.552}, 'Helsinki': {'OSM relation': ['https://www.openstreetmap.org/relation/34914'], 'P 4w': 0.134, 'P de': 0.395, 'circuity_avg': 1.063, 'country': 'FI', 'k_avg': 2.348, 'median_segment_length': 42.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Helsinki,+Helsinki+sub-region,+Uusimaa,+Southern+Finland,+Mainland+Finland,+Finland'], 'orient_order': 0.006, 'osm_id': [34914], 'pop_GHSL2023': 640938.2250840327, 'query': 'Helsinki, Helsinki sub-region, Uusimaa, Southern Finland, Mainland Finland, Finland', 'region': 'EU', 'Η o': 3.577, 'Η w': 3.571}, 'Hong Kong': {'OSM relation': ['https://www.openstreetmap.org/relation/10264792'], 'P 4w': 0.174, 'P de': 0.114, 'circuity_avg': 1.137, 'country': 'HK', 'k_avg': 2.932, 'median_segment_length': 61.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hong+Kong+Island,+Hong+Kong,+China'], 'orient_order': 0.012, 'osm_id': [10264792], 'pop_GHSL2023': 1220949.8235658924, 'query': 'Hong Kong Island, Hong Kong, China', 'region': 'A&O', 'Η o': 3.571, 'Η w': 3.563}, 'Honolulu': {'OSM relation': ['https://www.openstreetmap.org/relation/119231'], 'P 4w': 0.185, 'P de': 0.252, 'circuity_avg': 1.073, 'country': 'US-HI', 'k_avg': 2.681, 'median_segment_length': 101.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=R119231'], 'orient_order': 0.034, 'osm_id': [119231], 'pop_GHSL2023': 404124.8977179931, 'query': 119231, 'region': 'NAM', 'Η o': 3.545, 'Η w': 3.55}, 'Houston': {'OSM relation': ['https://www.openstreetmap.org/relation/2688911', 'https://www.openstreetmap.org/relation/6586766', 'https://www.openstreetmap.org/relation/2947146', 'https://www.openstreetmap.org/relation/2947144', 'https://www.openstreetmap.org/relation/2947142', 'https://www.openstreetmap.org/relation/2947138', 'https://www.openstreetmap.org/relation/2947141', 'https://www.openstreetmap.org/relation/2947143', 'https://www.openstreetmap.org/relation/2947145', 'https://www.openstreetmap.org/relation/2947140', 'https://www.openstreetmap.org/relation/2947137', 'https://www.openstreetmap.org/relation/2947139', 'https://www.openstreetmap.org/relation/4840276'], 'P 4w': 0.307, 'P de': 0.127, 'circuity_avg': 1.045, 'country': 'US-TX', 'k_avg': 3.027, 'median_segment_length': 96.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Houston,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Bellaire,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=West+University+Place,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Southside+Place,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Jacinto+City,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Galena+Park,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Hunters+Creek+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Piney+Point+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Spring+Valley,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Hilshire+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Bunker+Hill+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Hedwig+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Jersey+Village,+Harris+County,+Texas,+United+States'], 'orient_order': 0.425, 'osm_id': [2688911, 6586766, 2947146, 2947144, 2947142, 2947138, 2947141, 2947143, 2947145, 2947140, 2947137, 2947139, 4840276], 'pop_GHSL2023': 2780403.3394391406, 'query': ['Houston, Harris County, Texas, United States', 'Bellaire, Harris County, Texas, United States', 'West University Place, Harris County, Texas, United States', 'Southside Place, Harris County, Texas, United States', 'Jacinto City, Harris County, Texas, United States', 'Galena Park, Harris County, Texas, United States', 'Hunters Creek Village, Harris County, Texas, United States', 'Piney Point Village, Harris County, Texas, United States', 'Spring Valley, Harris County, Texas, United States', 'Hilshire Village, Harris County, Texas, United States', 'Bunker Hill Village, Harris County, Texas, United States', 'Hedwig Village, Harris County, Texas, United States', 'Jersey Village, Harris County, Texas, United States'], 'region': 'NAM', 'Η o': 3.052, 'Η w': 3.006}, 'Istanbul': {'OSM relation': ['https://www.openstreetmap.org/relation/223474'], 'P 4w': 0.174, 'P de': 0.093, 'circuity_avg': 1.059, 'country': 'TR', 'k_avg': 2.998, 'median_segment_length': 50.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=TR-34,+Turkey'], 'orient_order': 0.007, 'osm_id': [223474], 'pop_GHSL2023': 14243965.122489264, 'query': 'TR-34, Turkey', 'region': 'MEA', 'Η o': 3.576, 'Η w': 3.574}, 'Jakarta': {'OSM relation': ['https://www.openstreetmap.org/relation/6362934'], 'P 4w': 0.096, 'P de': 0.175, 'circuity_avg': 1.065, 'country': 'ID', 'k_avg': 2.741, 'median_segment_length': 52.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Special+Capital+Region+of+Jakarta,+Java,+Indonesia'], 'orient_order': 0.167, 'osm_id': [6362934], 'pop_GHSL2023': 11342187.842398439, 'query': 'Special Capital Region of Jakarta, Java, Indonesia', 'region': 'A&O', 'Η o': 3.391, 'Η w': 3.347}, 'Jerusalem': {'OSM relation': ['https://www.openstreetmap.org/relation/1381350'], 'P 4w': 0.109, 'P de': 0.18, 'circuity_avg': 1.092, 'country': 'IL', 'k_avg': 2.735, 'median_segment_length': 44.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Jerusalem,+Jerusalem+District,+Israel'], 'orient_order': 0.014, 'osm_id': [1381350], 'pop_GHSL2023': 1253649.2788656482, 'query': 'Jerusalem, Jerusalem District, Israel', 'region': 'MEA', 'Η o': 3.568, 'Η w': 3.562}, 'Johannesburg': {'OSM relation': ['https://www.openstreetmap.org/relation/594508'], 'P 4w': 0.182, 'P de': 0.158, 'circuity_avg': 1.098, 'country': 'ZA', 'k_avg': 2.865, 'median_segment_length': 88.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=City+of+Johannesburg+Metropolitan+Municipality,+2001,+South+Africa'], 'orient_order': 0.019, 'osm_id': [594508], 'pop_GHSL2023': 6409611.695537722, 'query': 'City of Johannesburg Metropolitan Municipality, 2001, South Africa', 'region': 'MEA', 'Η o': 3.562, 'Η w': 3.556}, 'Kabul': {'OSM relation': ['https://www.openstreetmap.org/relation/6616233'], 'P 4w': 0.13, 'P de': 0.226, 'circuity_avg': 1.062, 'country': 'AF', 'k_avg': 2.673, 'median_segment_length': 79.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kabul+District,+Kabul+Province,+Afghanistan'], 'orient_order': 0.076, 'osm_id': [6616233], 'pop_GHSL2023': 5656560.564128555, 'query': 'Kabul District, Kabul Province, Afghanistan', 'region': 'A&O', 'Η o': 3.499, 'Η w': 3.51}, 'Karachi': {'OSM relation': ['https://www.openstreetmap.org/relation/6080948'], 'P 4w': 0.216, 'P de': 0.095, 'circuity_avg': 1.032, 'country': 'PK', 'k_avg': 3.027, 'median_segment_length': 71.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Karachi+Division,+Sindh,+Pakistan'], 'orient_order': 0.088, 'osm_id': [6080948], 'pop_GHSL2023': 21243358.03043522, 'query': 'Karachi Division, Sindh, Pakistan', 'region': 'A&O', 'Η o': 3.485, 'Η w': 3.493}, 'Kathmandu': {'OSM relation': ['https://www.openstreetmap.org/relation/4583247'], 'P 4w': 0.089, 'P de': 0.234, 'circuity_avg': 1.071, 'country': 'NP', 'k_avg': 2.595, 'median_segment_length': 63.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kathmandu,+Bagmati+Pradesh,+Nepal'], 'orient_order': 0.054, 'osm_id': [4583247], 'pop_GHSL2023': 3008734.5134922313, 'query': 'Kathmandu, Bagmati Pradesh, Nepal', 'region': 'A&O', 'Η o': 3.523, 'Η w': 3.5}, 'Kiev': {'OSM relation': ['https://www.openstreetmap.org/relation/421866'], 'P 4w': 0.16, 'P de': 0.164, 'circuity_avg': 1.053, 'country': 'UA', 'k_avg': 2.813, 'median_segment_length': 125.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kyiv,+Ukraine'], 'orient_order': 0.014, 'osm_id': [421866], 'pop_GHSL2023': 2552854.8664907534, 'query': 'Kyiv, Ukraine', 'region': 'EU', 'Η o': 3.568, 'Η w': 3.554}, 'Kyoto': {'OSM relation': ['https://www.openstreetmap.org/relation/357794'], 'P 4w': 0.157, 'P de': 0.134, 'circuity_avg': 1.09, 'country': 'JP', 'k_avg': 2.887, 'median_segment_length': 49.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kyoto,+Kyoto+Prefecture,+Japan'], 'orient_order': 0.357, 'osm_id': [357794], 'pop_GHSL2023': 1270597.194326272, 'query': 'Kyoto, Kyoto Prefecture, Japan', 'region': 'A&O', 'Η o': 3.148, 'Η w': 3.229}, 'Lagos': {'OSM relation': ['https://www.openstreetmap.org/relation/7644528'], 'P 4w': 0.07, 'P de': 0.223, 'circuity_avg': 1.048, 'country': 'NG', 'k_avg': 2.619, 'median_segment_length': 87.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lagos+Island,+Lagos+State,+Nigeria'], 'orient_order': 0.039, 'osm_id': [7644528], 'pop_GHSL2023': 119799.5473861694, 'query': 'Lagos Island, Lagos State, Nigeria', 'region': 'MEA', 'Η o': 3.54, 'Η w': 3.521}, 'Las Vegas': {'OSM relation': ['https://www.openstreetmap.org/relation/170117', 'https://www.openstreetmap.org/relation/170118', 'https://www.openstreetmap.org/relation/170116', 'https://www.openstreetmap.org/relation/170007', 'https://www.openstreetmap.org/relation/170049', 'https://www.openstreetmap.org/relation/170053', 'https://www.openstreetmap.org/relation/170068', 'https://www.openstreetmap.org/relation/170132'], 'P 4w': 0.166, 'P de': 0.23, 'circuity_avg': 1.079, 'country': 'US-NV', 'k_avg': 2.676, 'median_segment_length': 86.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Las+Vegas,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=North+Las+Vegas,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Henderson,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Winchester,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Spring+Valley,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Paradise,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Sunrise+Manor,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Enterprise,+Clark+County,+Nevada,+United+States'], 'orient_order': 0.542, 'osm_id': [170117, 170118, 170116, 170007, 170049, 170053, 170068, 170132], 'pop_GHSL2023': 2451129.123220173, 'query': ['Las Vegas, Clark County, Nevada, United States', 'North Las Vegas, Clark County, Nevada, United States', 'Henderson, Clark County, Nevada, United States', 'Winchester, Clark County, Nevada, United States', 'Spring Valley, Clark County, Nevada, United States', 'Paradise, Clark County, Nevada, United States', 'Sunrise Manor, Clark County, Nevada, United States', 'Enterprise, Clark County, Nevada, United States'], 'region': 'NAM', 'Η o': 2.874, 'Η w': 2.775}, 'Lima': {'OSM relation': ['https://www.openstreetmap.org/relation/12933390'], 'P 4w': 0.331, 'P de': 0.04, 'circuity_avg': 1.017, 'country': 'PE', 'k_avg': 3.161, 'median_segment_length': 76.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lima+Metropolitan+Area,+Lima,+Peru'], 'orient_order': 0.278, 'osm_id': [12933390], 'pop_GHSL2023': 10924814.244125538, 'query': 'Lima Metropolitan Area, Lima, Peru', 'region': 'LatAm', 'Η o': 3.254, 'Η w': 3.228}, 'Lisbon': {'OSM relation': ['https://www.openstreetmap.org/relation/5400890'], 'P 4w': 0.154, 'P de': 0.108, 'circuity_avg': 1.068, 'country': 'PT', 'k_avg': 2.923, 'median_segment_length': 60.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lisbon,+Portugal'], 'orient_order': 0.023, 'osm_id': [5400890], 'pop_GHSL2023': 564066.0386443137, 'query': 'Lisbon, Portugal', 'region': 'EU', 'Η o': 3.558, 'Η w': 3.546}, 'London': {'OSM relation': ['https://www.openstreetmap.org/relation/175342'], 'P 4w': 0.07, 'P de': 0.251, 'circuity_avg': 1.061, 'country': 'GB', 'k_avg': 2.561, 'median_segment_length': 70.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Greater+London,+England,+United+Kingdom'], 'orient_order': 0.015, 'osm_id': [175342], 'pop_GHSL2023': 9734682.771514352, 'query': 'Greater London, England, United Kingdom', 'region': 'EU', 'Η o': 3.566, 'Η w': 3.564}, 'Los Angeles': {'OSM relation': ['https://www.openstreetmap.org/relation/396479'], 'P 4w': 0.273, 'P de': 0.171, 'circuity_avg': 1.048, 'country': 'US-CA', 'k_avg': 2.911, 'median_segment_length': 109.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Los+Angeles+County,+California,+United+States'], 'orient_order': 0.348, 'osm_id': [396479], 'pop_GHSL2023': 10131722.735823404, 'query': 'Los Angeles County, California, United States', 'region': 'NAM', 'Η o': 3.161, 'Η w': 3.145}, 'Madrid': {'OSM relation': ['https://www.openstreetmap.org/relation/5326784'], 'P 4w': 0.21, 'P de': 0.065, 'circuity_avg': 1.05, 'country': 'ES', 'k_avg': 3.079, 'median_segment_length': 62.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Madrid,+Community+of+Madrid,+Spain'], 'orient_order': 0.019, 'osm_id': [5326784], 'pop_GHSL2023': 3797206.0047106226, 'query': 'Madrid, Community of Madrid, Spain', 'region': 'EU', 'Η o': 3.562, 'Η w': 3.553}, 'Manhattan': {'OSM relation': ['https://www.openstreetmap.org/relation/8398124'], 'P 4w': 0.572, 'P de': 0.027, 'circuity_avg': 1.017, 'country': 'US-NY', 'k_avg': 3.508, 'median_segment_length': 82.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Manhattan,+New+York+County,+New+York,+United+States'], 'orient_order': 0.669, 'osm_id': [8398124], 'pop_GHSL2023': 1658451.516783237, 'query': 'Manhattan, New York County, New York, United States', 'region': 'NAM', 'Η o': 2.65, 'Η w': 2.571}, 'Manila': {'OSM relation': ['https://www.openstreetmap.org/relation/147488'], 'P 4w': 0.347, 'P de': 0.095, 'circuity_avg': 1.023, 'country': 'PH', 'k_avg': 3.141, 'median_segment_length': 63.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Metro+Manila,+Philippines'], 'orient_order': 0.062, 'osm_id': [147488], 'pop_GHSL2023': 13751861.781497028, 'query': 'Metro Manila, Philippines', 'region': 'A&O', 'Η o': 3.514, 'Η w': 3.484}, 'Melbourne': {'OSM relation': ['https://www.openstreetmap.org/relation/4246124'], 'P 4w': 0.332, 'P de': 0.06, 'circuity_avg': 1.037, 'country': 'AU', 'k_avg': 3.16, 'median_segment_length': 51.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Greater+Melbourne,+Victoria,+Australia'], 'orient_order': 0.34, 'osm_id': [4246124], 'pop_GHSL2023': 5378918.1597416485, 'query': 'Greater Melbourne, Victoria, Australia', 'region': 'A&O', 'Η o': 3.172, 'Η w': 3.203}, 'Mexico City': {'OSM relation': ['https://www.openstreetmap.org/relation/1376330'], 'P 4w': 0.264, 'P de': 0.146, 'circuity_avg': 1.043, 'country': 'MX', 'k_avg': 2.977, 'median_segment_length': 69.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mexico+City,+Mexico'], 'orient_order': 0.154, 'osm_id': [1376330], 'pop_GHSL2023': 7649332.880559048, 'query': 'Mexico City, Mexico', 'region': 'LatAm', 'Η o': 3.408, 'Η w': 3.406}, 'Miami': {'OSM relation': ['https://www.openstreetmap.org/relation/1216769'], 'P 4w': 0.407, 'P de': 0.069, 'circuity_avg': 1.023, 'country': 'US-FL', 'k_avg': 3.236, 'median_segment_length': 96.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Miami,+Miami-Dade+County,+Florida,+United+States'], 'orient_order': 0.811, 'osm_id': [1216769], 'pop_GHSL2023': 401627.16193004296, 'query': 'Miami, Miami-Dade County, Florida, United States', 'region': 'NAM', 'Η o': 2.341, 'Η w': 2.291}, 'Minneapolis': {'OSM relation': ['https://www.openstreetmap.org/relation/136712'], 'P 4w': 0.521, 'P de': 0.053, 'circuity_avg': 1.023, 'country': 'US-MN', 'k_avg': 3.393, 'median_segment_length': 115.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Minneapolis,+Hennepin+County,+Minnesota,+United+States'], 'orient_order': 0.749, 'osm_id': [136712], 'pop_GHSL2023': 375276.78887844074, 'query': 'Minneapolis, Hennepin County, Minnesota, United States', 'region': 'NAM', 'Η o': 2.486, 'Η w': 2.464}, 'Mogadishu': {'OSM relation': ['https://www.openstreetmap.org/relation/1720125'], 'P 4w': 0.472, 'P de': 0.055, 'circuity_avg': 1.019, 'country': 'SO', 'k_avg': 3.346, 'median_segment_length': 39.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mogadishu+District,+Banaadir,+Somalia'], 'orient_order': 0.375, 'osm_id': [1720125], 'pop_GHSL2023': 3867823.297230401, 'query': 'Mogadishu District, Banaadir, Somalia', 'region': 'MEA', 'Η o': 3.123, 'Η w': 3.292}, 'Montreal': {'OSM relation': ['https://www.openstreetmap.org/relation/1571328'], 'P 4w': 0.344, 'P de': 0.051, 'circuity_avg': 1.057, 'country': 'CA-QC', 'k_avg': 3.239, 'median_segment_length': 87.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Montreal+(administrative+region),+Quebec,+Canada'], 'orient_order': 0.204, 'osm_id': [1571328], 'pop_GHSL2023': 1972042.624127009, 'query': 'Montreal (administrative region), Quebec, Canada', 'region': 'NAM', 'Η o': 3.346, 'Η w': 3.332}, 'Moscow': {'OSM relation': ['https://www.openstreetmap.org/relation/2555133'], 'P 4w': 0.17, 'P de': 0.074, 'circuity_avg': 1.055, 'country': 'RU', 'k_avg': 2.999, 'median_segment_length': 130.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Moscow,+Central+Federal+District,+Russia'], 'orient_order': 0.007, 'osm_id': [2555133], 'pop_GHSL2023': 12023201.84294212, 'query': 'Moscow, Central Federal District, Russia', 'region': 'EU', 'Η o': 3.576, 'Η w': 3.573}, 'Mumbai': {'OSM relation': ['https://www.openstreetmap.org/relation/7888990'], 'P 4w': 0.136, 'P de': 0.211, 'circuity_avg': 1.081, 'country': 'IN', 'k_avg': 2.705, 'median_segment_length': 68.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mumbai,+Mumbai+Suburban,+Maharashtra,+India'], 'orient_order': 0.075, 'osm_id': [7888990], 'pop_GHSL2023': 14523039.176669551, 'query': 'Mumbai, Mumbai Suburban, Maharashtra, India', 'region': 'A&O', 'Η o': 3.499, 'Η w': 3.476}, 'Munich': {'OSM relation': ['https://www.openstreetmap.org/relation/62428'], 'P 4w': 0.2, 'P de': 0.099, 'circuity_avg': 1.046, 'country': 'DE', 'k_avg': 2.958, 'median_segment_length': 96.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Munich,+Bavaria,+Germany'], 'orient_order': 0.078, 'osm_id': [62428], 'pop_GHSL2023': 1552833.6185131217, 'query': 'Munich, Bavaria, Germany', 'region': 'EU', 'Η o': 3.496, 'Η w': 3.482}, 'Nairobi': {'OSM relation': ['https://www.openstreetmap.org/relation/9721587'], 'P 4w': 0.075, 'P de': 0.279, 'circuity_avg': 1.083, 'country': 'KE', 'k_avg': 2.506, 'median_segment_length': 91.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Nairobi,+Nairobi+County,+Kenya'], 'orient_order': 0.014, 'osm_id': [9721587], 'pop_GHSL2023': 5838242.6927329, 'query': 'Nairobi, Nairobi County, Kenya', 'region': 'MEA', 'Η o': 3.568, 'Η w': 3.556}, 'New Delhi': {'OSM relation': ['https://www.openstreetmap.org/relation/2763541'], 'P 4w': 0.119, 'P de': 0.197, 'circuity_avg': 1.083, 'country': 'IN', 'k_avg': 2.696, 'median_segment_length': 62.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=New+Delhi,+Delhi,+India'], 'orient_order': 0.062, 'osm_id': [2763541], 'pop_GHSL2023': 1203942.1327352521, 'query': 'New Delhi, Delhi, India', 'region': 'A&O', 'Η o': 3.515, 'Η w': 3.491}, 'New Orleans': {'OSM relation': ['https://www.openstreetmap.org/relation/131885'], 'P 4w': 0.526, 'P de': 0.077, 'circuity_avg': 1.035, 'country': 'US-LA', 'k_avg': 3.378, 'median_segment_length': 99.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=New+Orleans,+Orleans+Parish,+Louisiana,+United+States'], 'orient_order': 0.123, 'osm_id': [131885], 'pop_GHSL2023': 366732.97836517997, 'query': 'New Orleans, Orleans Parish, Louisiana, United States', 'region': 'NAM', 'Η o': 3.444, 'Η w': 3.457}, 'Orlando': {'OSM relation': ['https://www.openstreetmap.org/relation/1128379'], 'P 4w': 0.237, 'P de': 0.12, 'circuity_avg': 1.064, 'country': 'US-FL', 'k_avg': 2.914, 'median_segment_length': 100.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Orlando,+Orange+County,+Florida,+United+States'], 'orient_order': 0.481, 'osm_id': [1128379], 'pop_GHSL2023': 304166.8284669285, 'query': 'Orlando, Orange County, Florida, United States', 'region': 'NAM', 'Η o': 2.969, 'Η w': 2.929}, 'Osaka': {'OSM relation': ['https://www.openstreetmap.org/relation/358674'], 'P 4w': 0.292, 'P de': 0.069, 'circuity_avg': 1.025, 'country': 'JP', 'k_avg': 3.155, 'median_segment_length': 51.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Osaka,+Osaka+Prefecture,+Japan'], 'orient_order': 0.243, 'osm_id': [358674], 'pop_GHSL2023': 2388944.7906184644, 'query': 'Osaka, Osaka Prefecture, Japan', 'region': 'A&O', 'Η o': 3.298, 'Η w': 3.306}, 'Oslo': {'OSM relation': ['https://www.openstreetmap.org/relation/406091'], 'P 4w': 0.113, 'P de': 0.197, 'circuity_avg': 1.095, 'country': 'NO', 'k_avg': 2.711, 'median_segment_length': 78.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Oslo,+Norway'], 'orient_order': 0.008, 'osm_id': [406091], 'pop_GHSL2023': 708820.38776549, 'query': 'Oslo, Norway', 'region': 'EU', 'Η o': 3.574, 'Η w': 3.564}, 'Paris': {'OSM relation': ['https://www.openstreetmap.org/relation/7444'], 'P 4w': 0.24, 'P de': 0.05, 'circuity_avg': 1.023, 'country': 'FR', 'k_avg': 3.11, 'median_segment_length': 71.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Paris,+Ile-de-France,+Metropolitan+France,+France'], 'orient_order': 0.016, 'osm_id': [7444], 'pop_GHSL2023': 2322862.0913982387, 'query': 'Paris, Ile-de-France, Metropolitan France, France', 'region': 'EU', 'Η o': 3.566, 'Η w': 3.568}, 'Philadelphia': {'OSM relation': ['https://www.openstreetmap.org/relation/188022'], 'P 4w': 0.398, 'P de': 0.047, 'circuity_avg': 1.03, 'country': 'US-PA', 'k_avg': 3.315, 'median_segment_length': 83.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Philadelphia,+Philadelphia+County,+Pennsylvania,+United+States'], 'orient_order': 0.312, 'osm_id': [188022], 'pop_GHSL2023': 1501334.2557670078, 'query': 'Philadelphia, Philadelphia County, Pennsylvania, United States', 'region': 'NAM', 'Η o': 3.209, 'Η w': 3.267}, 'Phnom Penh': {'OSM relation': ['https://www.openstreetmap.org/relation/2199033'], 'P 4w': 0.188, 'P de': 0.205, 'circuity_avg': 1.04, 'country': 'KH', 'k_avg': 2.784, 'median_segment_length': 81.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=KH-12,+Cambodia'], 'orient_order': 0.324, 'osm_id': [2199033], 'pop_GHSL2023': 2369492.133270343, 'query': 'KH-12, Cambodia', 'region': 'A&O', 'Η o': 3.193, 'Η w': 3.235}, 'Phoenix': {'OSM relation': ['https://www.openstreetmap.org/relation/111257'], 'P 4w': 0.171, 'P de': 0.186, 'circuity_avg': 1.073, 'country': 'US-AZ', 'k_avg': 2.795, 'median_segment_length': 97.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Phoenix,+Maricopa+County,+Arizona,+United+States'], 'orient_order': 0.586, 'osm_id': [111257], 'pop_GHSL2023': 1872464.6450785124, 'query': 'Phoenix, Maricopa County, Arizona, United States', 'region': 'NAM', 'Η o': 2.801, 'Η w': 2.563}, 'Pittsburgh': {'OSM relation': ['https://www.openstreetmap.org/relation/188553', 'https://www.openstreetmap.org/relation/188551', 'https://www.openstreetmap.org/relation/187458', 'https://www.openstreetmap.org/relation/187434', 'https://www.openstreetmap.org/relation/187435'], 'P 4w': 0.231, 'P de': 0.173, 'circuity_avg': 1.054, 'country': 'US-PA', 'k_avg': 2.854, 'median_segment_length': 94.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Pittsburgh,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Mount+Oliver,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Green+Tree,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Crafton,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Ingram,+Allegheny+County,+Pennsylvania,+United+States'], 'orient_order': 0.018, 'osm_id': [188553, 188551, 187458, 187434, 187435], 'pop_GHSL2023': 309714.70544934267, 'query': ['Pittsburgh, Allegheny County, Pennsylvania, United States', 'Mount Oliver, Allegheny County, Pennsylvania, United States', 'Green Tree, Allegheny County, Pennsylvania, United States', 'Crafton, Allegheny County, Pennsylvania, United States', 'Ingram, Allegheny County, Pennsylvania, United States'], 'region': 'NAM', 'Η o': 3.564, 'Η w': 3.565}, 'Port au Prince': {'OSM relation': ['https://www.openstreetmap.org/relation/387318'], 'P 4w': 0.087, 'P de': 0.295, 'circuity_avg': 1.088, 'country': 'HT', 'k_avg': 2.495, 'median_segment_length': 55.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Port-au-Prince,+West,+Haiti'], 'orient_order': 0.028, 'osm_id': [387318], 'pop_GHSL2023': 1481683.71467255, 'query': 'Port-au-Prince, West, Haiti', 'region': 'LatAm', 'Η o': 3.552, 'Η w': 3.554}, 'Portland': {'OSM relation': ['https://www.openstreetmap.org/relation/186579', 'https://www.openstreetmap.org/relation/186714'], 'P 4w': 0.327, 'P de': 0.146, 'circuity_avg': 1.041, 'country': 'US-OR', 'k_avg': 3.032, 'median_segment_length': 82.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Portland,+Multnomah+County,+Oregon,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Maywood+Park,+Multnomah+County,+Oregon,+United+States'], 'orient_order': 0.679, 'osm_id': [186579, 186714], 'pop_GHSL2023': 685184.3103695348, 'query': ['Portland, Multnomah County, Oregon, United States', 'Maywood Park, Multnomah County, Oregon, United States'], 'region': 'NAM', 'Η o': 2.632, 'Η w': 2.68}, 'Prague': {'OSM relation': ['https://www.openstreetmap.org/relation/435514'], 'P 4w': 0.171, 'P de': 0.177, 'circuity_avg': 1.065, 'country': 'CZ', 'k_avg': 2.807, 'median_segment_length': 84.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Prague,+Czechia'], 'orient_order': 0.049, 'osm_id': [435514], 'pop_GHSL2023': 1327193.6264477668, 'query': 'Prague, Czechia', 'region': 'EU', 'Η o': 3.529, 'Η w': 3.513}, 'Pyongyang': {'OSM relation': ['https://www.openstreetmap.org/relation/356443'], 'P 4w': 0.12, 'P de': 0.294, 'circuity_avg': 1.097, 'country': 'KP', 'k_avg': 2.524, 'median_segment_length': 132.4, 'nominatim link': ["https://nominatim.openstreetmap.org/ui/search.html?q=P'yŏngyang,+North+Korea"], 'orient_order': 0.024, 'osm_id': [356443], 'pop_GHSL2023': 3480278.592318181, 'query': "P'yŏngyang, North Korea", 'region': 'A&O', 'Η o': 3.557, 'Η w': 3.568}, 'Reykjavik': {'OSM relation': ['https://www.openstreetmap.org/relation/2580605'], 'P 4w': 0.117, 'P de': 0.283, 'circuity_avg': 1.071, 'country': 'IS', 'k_avg': 2.54, 'median_segment_length': 63.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Reykjavik,+Capital+Region,+Iceland'], 'orient_order': 0.056, 'osm_id': [2580605], 'pop_GHSL2023': 104272.41692510885, 'query': 'Reykjavik, Capital Region, Iceland', 'region': 'EU', 'Η o': 3.522, 'Η w': 3.529}, 'Rio de Janeiro': {'OSM relation': ['https://www.openstreetmap.org/relation/2697338'], 'P 4w': 0.147, 'P de': 0.172, 'circuity_avg': 1.055, 'country': 'BR', 'k_avg': 2.804, 'median_segment_length': 74.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Rio+de+Janeiro,+Southeast+Region,+Brazil'], 'orient_order': 0.014, 'osm_id': [2697338], 'pop_GHSL2023': 6768933.523283653, 'query': 'Rio de Janeiro, Southeast Region, Brazil', 'region': 'LatAm', 'Η o': 3.568, 'Η w': 3.566}, 'Rome': {'OSM relation': ['https://www.openstreetmap.org/relation/41485'], 'P 4w': 0.145, 'P de': 0.161, 'circuity_avg': 1.07, 'country': 'IT', 'k_avg': 2.82, 'median_segment_length': 73.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Rome,+Roma+Capitale,+Lazio,+Italy'], 'orient_order': 0.005, 'osm_id': [41485], 'pop_GHSL2023': 2706949.850030726, 'query': 'Rome, Roma Capitale, Lazio, Italy', 'region': 'EU', 'Η o': 3.578, 'Η w': 3.578}, 'San Francisco': {'OSM relation': ['https://www.openstreetmap.org/relation/111968'], 'P 4w': 0.454, 'P de': 0.087, 'circuity_avg': 1.033, 'country': 'US-CA', 'k_avg': 3.304, 'median_segment_length': 94.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=San+Francisco,+California,+United+States'], 'orient_order': 0.278, 'osm_id': [111968], 'pop_GHSL2023': 823489.8565498033, 'query': 'San Francisco, California, United States', 'region': 'NAM', 'Η o': 3.253, 'Η w': 3.226}, 'Sao Paulo': {'OSM relation': ['https://www.openstreetmap.org/relation/298285'], 'P 4w': 0.176, 'P de': 0.12, 'circuity_avg': 1.05, 'country': 'BR', 'k_avg': 2.936, 'median_segment_length': 76.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=São+Paulo,+Southeast+Region,+Brazil'], 'orient_order': 0.002, 'osm_id': [298285], 'pop_GHSL2023': 11858950.620425723, 'query': 'São Paulo, Southeast Region, Brazil', 'region': 'LatAm', 'Η o': 3.581, 'Η w': 3.58}, 'Sarajevo': {'OSM relation': ['https://www.openstreetmap.org/relation/15445108'], 'P 4w': 0.078, 'P de': 0.27, 'circuity_avg': 1.133, 'country': 'BA', 'k_avg': 2.522, 'median_segment_length': 94.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Sarajevo,+Sarajevo+Canton,+Bosnia+and+Herzegovina'], 'orient_order': 0.039, 'osm_id': [15445108], 'pop_GHSL2023': 196713.784235157, 'query': 'Sarajevo, Sarajevo Canton, Bosnia and Herzegovina', 'region': 'EU', 'Η o': 3.54, 'Η w': 3.558}, 'Seattle': {'OSM relation': ['https://www.openstreetmap.org/relation/237385'], 'P 4w': 0.369, 'P de': 0.136, 'circuity_avg': 1.028, 'country': 'US-WA', 'k_avg': 3.107, 'median_segment_length': 97.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Seattle,+King+County,+Washington,+United+States'], 'orient_order': 0.723, 'osm_id': [237385], 'pop_GHSL2023': 710391.1301186976, 'query': 'Seattle, King County, Washington, United States', 'region': 'NAM', 'Η o': 2.542, 'Η w': 2.474}, 'Seoul': {'OSM relation': ['https://www.openstreetmap.org/relation/2297418'], 'P 4w': 0.205, 'P de': 0.101, 'circuity_avg': 1.048, 'country': 'KR', 'k_avg': 3.011, 'median_segment_length': 53.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Seoul,+South+Korea'], 'orient_order': 0.009, 'osm_id': [2297418], 'pop_GHSL2023': 9645141.225111853, 'query': 'Seoul, South Korea', 'region': 'A&O', 'Η o': 3.573, 'Η w': 3.573}, 'Shanghai': {'OSM relation': ['https://www.openstreetmap.org/relation/913067'], 'P 4w': 0.317, 'P de': 0.156, 'circuity_avg': 1.04, 'country': 'CN', 'k_avg': 3.017, 'median_segment_length': 233.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Shanghai,+China'], 'orient_order': 0.121, 'osm_id': [913067], 'pop_GHSL2023': 33924003.60635262, 'query': 'Shanghai, China', 'region': 'A&O', 'Η o': 3.447, 'Η w': 3.433}, 'Singapore': {'OSM relation': ['https://www.openstreetmap.org/relation/536780'], 'P 4w': 0.215, 'P de': 0.11, 'circuity_avg': 1.077, 'country': 'SG', 'k_avg': 2.994, 'median_segment_length': 64.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Singapore'], 'orient_order': 0.005, 'osm_id': [536780], 'pop_GHSL2023': 5959450.356524699, 'query': 'Singapore', 'region': 'A&O', 'Η o': 3.578, 'Η w': 3.57}, 'St Louis': {'OSM relation': ['https://www.openstreetmap.org/relation/1180533'], 'P 4w': 0.374, 'P de': 0.098, 'circuity_avg': 1.023, 'country': 'US-MO', 'k_avg': 3.165, 'median_segment_length': 107.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=St.+Louis,+Missouri,+United+States'], 'orient_order': 0.276, 'osm_id': [1180533], 'pop_GHSL2023': 312467.4185018753, 'query': 'St. Louis, Missouri, United States', 'region': 'NAM', 'Η o': 3.256, 'Η w': 3.225}, 'Stockholm': {'OSM relation': ['https://www.openstreetmap.org/relation/398021'], 'P 4w': 0.141, 'P de': 0.222, 'circuity_avg': 1.091, 'country': 'SE', 'k_avg': 2.681, 'median_segment_length': 82.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Stockholms+kommun,+Stockholm+County,+Sweden'], 'orient_order': 0.006, 'osm_id': [398021], 'pop_GHSL2023': 1022888.4359776971, 'query': 'Stockholms kommun, Stockholm County, Sweden', 'region': 'EU', 'Η o': 3.577, 'Η w': 3.568}, 'Sydney': {'OSM relation': ['https://www.openstreetmap.org/relation/5750005'], 'P 4w': 0.087, 'P de': 0.206, 'circuity_avg': 1.073, 'country': 'AU', 'k_avg': 2.674, 'median_segment_length': 93.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Sydney,+Council+of+the+City+of+Sydney,+New+South+Wales,+Australia'], 'orient_order': 0.092, 'osm_id': [5750005], 'pop_GHSL2023': 5100197.878210587, 'query': 'Sydney, Council of the City of Sydney, New South Wales, Australia', 'region': 'A&O', 'Η o': 3.48, 'Η w': 3.431}, 'Taipei': {'OSM relation': ['https://www.openstreetmap.org/relation/1293250'], 'P 4w': 0.305, 'P de': 0.11, 'circuity_avg': 1.068, 'country': 'TW', 'k_avg': 3.096, 'median_segment_length': 73.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Taipei,+Taiwan'], 'orient_order': 0.158, 'osm_id': [1293250], 'pop_GHSL2023': 2542878.0502161, 'query': 'Taipei, Taiwan', 'region': 'A&O', 'Η o': 3.402, 'Η w': 3.428}, 'Tehran': {'OSM relation': ['https://www.openstreetmap.org/relation/6663864'], 'P 4w': 0.134, 'P de': 0.24, 'circuity_avg': 1.045, 'country': 'IR', 'k_avg': 2.652, 'median_segment_length': 52.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Tehran,+Tehran+Province,+Iran'], 'orient_order': 0.137, 'osm_id': [6663864], 'pop_GHSL2023': 7294182.58308172, 'query': 'Tehran, Tehran Province, Iran', 'region': 'MEA', 'Η o': 3.427, 'Η w': 3.405}, 'Tokyo': {'OSM relation': ['https://www.openstreetmap.org/relation/1543125'], 'P 4w': 0.186, 'P de': 0.119, 'circuity_avg': 1.046, 'country': 'JP', 'k_avg': 2.95, 'median_segment_length': 49.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=JP-13,+Japan'], 'orient_order': 0.05, 'osm_id': [1543125], 'pop_GHSL2023': 13453095.368577162, 'query': 'JP-13, Japan', 'region': 'A&O', 'Η o': 3.528, 'Η w': 3.529}, 'Toronto': {'OSM relation': ['https://www.openstreetmap.org/relation/324211'], 'P 4w': 0.217, 'P de': 0.109, 'circuity_avg': 1.09, 'country': 'CA-ON', 'k_avg': 2.994, 'median_segment_length': 103.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=City+of+Toronto,+Golden+Horseshoe,+Ontario,+Canada'], 'orient_order': 0.474, 'osm_id': [324211], 'pop_GHSL2023': 2860231.37706411, 'query': 'City of Toronto, Golden Horseshoe, Ontario, Canada', 'region': 'NAM', 'Η o': 2.98, 'Η w': 2.885}, 'Ulaanbaatar': {'OSM relation': ['https://www.openstreetmap.org/relation/270090'], 'P 4w': 0.061, 'P de': 0.283, 'circuity_avg': 1.065, 'country': 'MN', 'k_avg': 2.486, 'median_segment_length': 88.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ulaanbaatar,+Mongolia'], 'orient_order': 0.058, 'osm_id': [270090], 'pop_GHSL2023': 1876392.4283411014, 'query': 'Ulaanbaatar, Mongolia', 'region': 'A&O', 'Η o': 3.519, 'Η w': 3.463}, 'Vancouver': {'OSM relation': ['https://www.openstreetmap.org/relation/1852574'], 'P 4w': 0.455, 'P de': 0.073, 'circuity_avg': 1.022, 'country': 'CA-BC', 'k_avg': 3.308, 'median_segment_length': 103.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Vancouver,+British+Columbia,+Canada'], 'orient_order': 0.749, 'osm_id': [1852574], 'pop_GHSL2023': 693480.7865019785, 'query': 'Vancouver, British Columbia, Canada', 'region': 'NAM', 'Η o': 2.488, 'Η w': 2.413}, 'Venice (Mestre)': {'OSM relation': ['https://www.openstreetmap.org/relation/44741'], 'P 4w': 0.073, 'P de': 0.3, 'circuity_avg': 1.09, 'country': 'IT', 'k_avg': 2.474, 'median_segment_length': 23.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Venice,+Venezia,+Veneto,+Italy'], 'orient_order': 0.017, 'osm_id': [44741], 'pop_GHSL2023': 256643.2521157807, 'query': 'Venice, Venezia, Veneto, Italy', 'region': 'EU', 'Η o': 3.564, 'Η w': 3.553}, 'Vienna': {'OSM relation': ['https://www.openstreetmap.org/relation/109166'], 'P 4w': 0.244, 'P de': 0.122, 'circuity_avg': 1.043, 'country': 'AT', 'k_avg': 2.985, 'median_segment_length': 90.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Vienna,+Austria'], 'orient_order': 0.05, 'osm_id': [109166], 'pop_GHSL2023': 1932893.754314165, 'query': 'Vienna, Austria', 'region': 'EU', 'Η o': 3.528, 'Η w': 3.515}, 'Warsaw': {'OSM relation': ['https://www.openstreetmap.org/relation/336075'], 'P 4w': 0.16, 'P de': 0.204, 'circuity_avg': 1.043, 'country': 'PL', 'k_avg': 2.717, 'median_segment_length': 90.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Warsaw,+Masovian+Voivodeship,+Poland'], 'orient_order': 0.036, 'osm_id': [336075], 'pop_GHSL2023': 1849553.232625499, 'query': 'Warsaw, Masovian Voivodeship, Poland', 'region': 'EU', 'Η o': 3.544, 'Η w': 3.532}, 'Washington': {'OSM relation': ['https://www.openstreetmap.org/relation/5396194'], 'P 4w': 0.37, 'P de': 0.065, 'circuity_avg': 1.038, 'country': 'US-DC', 'k_avg': 3.252, 'median_segment_length': 99.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Washington,+District+of+Columbia,+United+States'], 'orient_order': 0.377, 'osm_id': [5396194], 'pop_GHSL2023': 701524.8640937685, 'query': 'Washington, District of Columbia, United States', 'region': 'NAM', 'Η o': 3.121, 'Η w': 3.113}}#
- PLACES_FILE = '/home/runner/work/superblockify/superblockify/superblockify/cities.yml'#
- PLACES_GENERAL = [('Barcelona', 'Barcelona, Catalonia, Spain'), ('Brooklyn', 'Brooklyn, New York, United States'), ('Copenhagen', ['Københavns Kommune, Denmark', 'Frederiksberg Kommune, Denmark']), ('Resistencia', 'Resistencia, Chaco, Argentina'), ('Liechtenstein', 'Liechtenstein, Europe')]#
- PLACES_GERMANY = {'Aachen': {'OSM relation': ['https://www.openstreetmap.org/relation/62564'], 'country': 'DE', 'location': '50°47′N 6°5′E / 50.783°N 6.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Aachen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62564], 'pop_GHSL2023': 243387.76502981776, 'population': 249070, 'query': 'Aachen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Augsburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62407'], 'country': 'DE', 'location': '48°22′N 10°54′E / 48.367°N 10.900°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Augsburg,+Bavaria,+Germany'], 'osm_id': [62407], 'pop_GHSL2023': 284132.46682134515, 'population': 296478, 'query': 'Augsburg, Bavaria, Germany', 'state': 'Bavaria'}, 'Bergisch Gladbach': {'OSM relation': ['https://www.openstreetmap.org/relation/173103'], 'country': 'DE', 'location': '51°6′N 7°7′E / 51.100°N 7.117°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bergisch+Gladbach,+North+Rhine-Westphalia,+Germany'], 'osm_id': [173103], 'pop_GHSL2023': 116460.2804894326, 'population': 111645, 'query': 'Bergisch Gladbach, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Berlin': {'OSM relation': ['https://www.openstreetmap.org/relation/62422'], 'country': 'DE', 'location': '52°31′N 13°23′E / 52.517°N 13.383°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Berlin,+Germany'], 'osm_id': [62422], 'pop_GHSL2023': 3524738.8939121147, 'population': 3677472, 'query': 'Berlin, Germany', 'state': 'Berlin'}, 'Bielefeld': {'OSM relation': ['https://www.openstreetmap.org/relation/62646'], 'country': 'DE', 'location': '52°1′N 8°32′E / 52.017°N 8.533°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bielefeld,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62646], 'pop_GHSL2023': 333409.8926514386, 'population': 334002, 'query': 'Bielefeld, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Bochum': {'OSM relation': ['https://www.openstreetmap.org/relation/62644'], 'country': 'DE', 'location': '51°29′N 7°13′E / 51.483°N 7.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bochum,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62644], 'pop_GHSL2023': 357434.85097885126, 'population': 363441, 'query': 'Bochum, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Bonn': {'OSM relation': ['https://www.openstreetmap.org/relation/62508'], 'country': 'DE', 'location': '50°44′N 7°6′E / 50.733°N 7.100°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bonn,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62508], 'pop_GHSL2023': 298244.66710514383, 'population': 331885, 'query': 'Bonn, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Bottrop': {'OSM relation': ['https://www.openstreetmap.org/relation/62634'], 'country': 'DE', 'location': '51°31′29″N 6°55′22″E / 51.52472°N 6.92278°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bottrop,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62634], 'pop_GHSL2023': 120419.19062280792, 'population': 117311, 'query': 'Bottrop, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Braunschweig': {'OSM relation': ['https://www.openstreetmap.org/relation/62531'], 'country': 'DE', 'location': '52°16′N 10°31′E / 52.267°N 10.517°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Braunschweig,+Lower+Saxony,+Germany'], 'osm_id': [62531], 'pop_GHSL2023': 231285.2623034268, 'population': 248823, 'query': 'Braunschweig, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Bremen': {'OSM relation': ['https://www.openstreetmap.org/relation/62559'], 'country': 'DE', 'location': '53°5′N 8°48′E / 53.083°N 8.800°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bremen,+City+of+Bremen,+Germany'], 'osm_id': [62559], 'pop_GHSL2023': 569530.6147225898, 'population': 563290, 'query': 'Bremen, City of Bremen, Germany', 'state': 'Bremen'}, 'Bremerhaven': {'OSM relation': ['https://www.openstreetmap.org/relation/62658'], 'country': 'DE', 'location': '53°33′N 8°35′E / 53.550°N 8.583°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bremerhaven,+Bremen,+Germany'], 'osm_id': [62658], 'pop_GHSL2023': 113689.3916842702, 'population': 113173, 'query': 'Bremerhaven, Bremen, Germany', 'state': 'Bremen'}, 'Chemnitz': {'OSM relation': ['https://www.openstreetmap.org/relation/62594'], 'country': 'DE', 'location': '50°50′N 12°55′E / 50.833°N 12.917°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Chemnitz,+Saxony,+Germany'], 'osm_id': [62594], 'pop_GHSL2023': 281487.2192971407, 'population': 243105, 'query': 'Chemnitz, Saxony, Germany', 'state': 'Saxony'}, 'Cologne (Köln)': {'OSM relation': ['https://www.openstreetmap.org/relation/62578'], 'country': 'DE', 'location': '50°56′N 6°57′E / 50.933°N 6.950°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Cologne,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62578], 'pop_GHSL2023': 1171662.0742877943, 'population': 1073096, 'query': 'Cologne, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Darmstadt': {'OSM relation': ['https://www.openstreetmap.org/relation/62581'], 'country': 'DE', 'location': '49°52′N 8°39′E / 49.867°N 8.650°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Darmstadt,+Hesse,+Germany'], 'osm_id': [62581], 'pop_GHSL2023': 143254.62058037517, 'population': 159631, 'query': 'Darmstadt, Hesse, Germany', 'state': 'Hesse'}, 'Dortmund': {'OSM relation': ['https://www.openstreetmap.org/relation/1829065'], 'country': 'DE', 'location': '51°31′N 7°28′E / 51.517°N 7.467°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dortmund,+North+Rhine-Westphalia,+Germany'], 'osm_id': [1829065], 'pop_GHSL2023': 597406.1646491288, 'population': 586852, 'query': 'Dortmund, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Dresden': {'OSM relation': ['https://www.openstreetmap.org/relation/191645'], 'country': 'DE', 'location': '51°2′N 13°44′E / 51.033°N 13.733°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dresden,+Saxony,+Germany'], 'osm_id': [191645], 'pop_GHSL2023': 604470.7496758811, 'population': 555351, 'query': 'Dresden, Saxony, Germany', 'state': 'Saxony'}, 'Duisburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62456'], 'country': 'DE', 'location': '51°26′N 6°46′E / 51.433°N 6.767°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Duisburg,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62456], 'pop_GHSL2023': 541060.8880877494, 'population': 495152, 'query': 'Duisburg, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Düsseldorf': {'OSM relation': ['https://www.openstreetmap.org/relation/62539'], 'country': 'DE', 'location': '51°14′N 6°47′E / 51.233°N 6.783°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dusseldorf,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62539], 'pop_GHSL2023': 629943.5862600802, 'population': 619477, 'query': 'Dusseldorf, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Erfurt': {'OSM relation': ['https://www.openstreetmap.org/relation/62745'], 'country': 'DE', 'location': '50°59′N 11°2′E / 50.983°N 11.033°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Erfurt,+Thuringia,+Germany'], 'osm_id': [62745], 'pop_GHSL2023': 229810.96490019985, 'population': 213227, 'query': 'Erfurt, Thuringia, Germany', 'state': 'Thuringia'}, 'Erlangen': {'OSM relation': ['https://www.openstreetmap.org/relation/62403'], 'country': 'DE', 'location': '49°35′N 11°1′E / 49.583°N 11.017°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Erlangen,+Bavaria,+Germany'], 'osm_id': [62403], 'pop_GHSL2023': 126349.33028798547, 'population': 113292, 'query': 'Erlangen, Bavaria, Germany', 'state': 'Bavaria'}, 'Essen': {'OSM relation': ['https://www.openstreetmap.org/relation/62713'], 'country': 'DE', 'location': '51°27′N 7°1′E / 51.450°N 7.017°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Essen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62713], 'pop_GHSL2023': 566901.7672717569, 'population': 579432, 'query': 'Essen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Frankfurt am Main': {'OSM relation': ['https://www.openstreetmap.org/relation/62400'], 'country': 'DE', 'location': '50°7′N 8°41′E / 50.117°N 8.683°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Frankfurt,+Hesse,+Germany'], 'osm_id': [62400], 'pop_GHSL2023': 821447.1059717236, 'population': 759224, 'query': 'Frankfurt, Hesse, Germany', 'state': 'Hesse'}, 'Freiburg im Breisgau': {'OSM relation': ['https://www.openstreetmap.org/relation/62768'], 'country': 'DE', 'location': '47°59′N 7°51′E / 47.983°N 7.850°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Freiburg+im+Breisgau,+Baden-Württemberg,+Germany'], 'osm_id': [62768], 'pop_GHSL2023': 252070.2626246958, 'population': 231848, 'query': 'Freiburg im Breisgau, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Fürth': {'OSM relation': ['https://www.openstreetmap.org/relation/62374'], 'country': 'DE', 'location': '49°28′N 11°0′E / 49.467°N 11.000°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Fürth,+Bavaria,+Germany'], 'osm_id': [62374], 'pop_GHSL2023': 147272.84554243082, 'population': 129122, 'query': 'Fürth, Bavaria, Germany', 'state': 'Bavaria'}, 'Gelsenkirchen': {'OSM relation': ['https://www.openstreetmap.org/relation/62522'], 'country': 'DE', 'location': '51°31′N 7°6′E / 51.517°N 7.100°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Gelsenkirchen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62522], 'pop_GHSL2023': 268021.2257325648, 'population': 260126, 'query': 'Gelsenkirchen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Göttingen': {'OSM relation': ['https://www.openstreetmap.org/relation/191361'], 'country': 'DE', 'location': '51°32′N 9°56′E / 51.533°N 9.933°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Göttingen,+Lower+Saxony,+Germany'], 'osm_id': [191361], 'pop_GHSL2023': 124678.53125402467, 'population': 116557, 'query': 'Göttingen, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Gütersloh': {'OSM relation': ['https://www.openstreetmap.org/relation/138119'], 'country': 'DE', 'location': '51°54′N 8°23′E / 51.900°N 8.383°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Gütersloh,+North+Rhine-Westphalia,+Germany'], 'osm_id': [138119], 'pop_GHSL2023': 89440.50304740664, 'population': 101158, 'query': 'Gütersloh, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Hagen': {'OSM relation': ['https://www.openstreetmap.org/relation/1800297'], 'country': 'DE', 'location': '51°22′N 7°29′E / 51.367°N 7.483°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hagen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [1800297], 'pop_GHSL2023': 192985.87121069425, 'population': 188713, 'query': 'Hagen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Halle (Saale)': {'OSM relation': ['https://www.openstreetmap.org/relation/62638'], 'country': 'DE', 'location': '51°29′N 11°58′E / 51.483°N 11.967°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Halle+(Saale),+Saxony-Anhalt,+Germany'], 'osm_id': [62638], 'pop_GHSL2023': 226774.07903894776, 'population': 238061, 'query': 'Halle (Saale), Saxony-Anhalt, Germany', 'state': 'Saxony-Anhalt'}, 'Hamburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62782'], 'country': 'DE', 'location': '53°33′N 10°0′E / 53.550°N 10.000°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hamburg,+Germany'], 'osm_id': [62782], 'pop_GHSL2023': 1761088.7599678198, 'population': 1906411, 'query': 'Hamburg, Germany', 'state': 'Hamburg'}, 'Hamm': {'OSM relation': ['https://www.openstreetmap.org/relation/62499'], 'country': 'DE', 'location': '51°41′N 7°49′E / 51.683°N 7.817°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hamm,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62499], 'pop_GHSL2023': 171828.1519785523, 'population': 179238, 'query': 'Hamm, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Hanover (Hannover)': {'OSM relation': ['https://www.openstreetmap.org/relation/59418'], 'country': 'DE', 'location': '52°22′N 9°43′E / 52.367°N 9.717°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hanover,+Lower+Saxony,+Germany'], 'osm_id': [59418], 'pop_GHSL2023': 536017.4882024525, 'population': 535932, 'query': 'Hanover, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Heidelberg': {'OSM relation': ['https://www.openstreetmap.org/relation/285864'], 'country': 'DE', 'location': '49°25′N 8°43′E / 49.417°N 8.717°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Heidelberg,+Baden-Württemberg,+Germany'], 'osm_id': [285864], 'pop_GHSL2023': 154854.53628560057, 'population': 159245, 'query': 'Heidelberg, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Heilbronn': {'OSM relation': ['https://www.openstreetmap.org/relation/62751'], 'country': 'DE', 'location': '49°9′N 9°13′E / 49.150°N 9.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Heilbronn,+Baden-Württemberg,+Germany'], 'osm_id': [62751], 'pop_GHSL2023': 116836.40956012529, 'population': 125613, 'query': 'Heilbronn, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Herne': {'OSM relation': ['https://www.openstreetmap.org/relation/62396'], 'country': 'DE', 'location': '51°33′N 7°13′E / 51.550°N 7.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Herne,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62396], 'pop_GHSL2023': 164314.78438377377, 'population': 156621, 'query': 'Herne, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Hildesheim': {'OSM relation': ['https://www.openstreetmap.org/relation/1176503'], 'country': 'DE', 'location': '52°9′N 9°57′E / 52.150°N 9.950°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hildesheim,+Lower+Saxony,+Germany'], 'osm_id': [1176503], 'pop_GHSL2023': 108481.75792009567, 'population': 100319, 'query': 'Hildesheim, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Ingolstadt': {'OSM relation': ['https://www.openstreetmap.org/relation/62381'], 'country': 'DE', 'location': '48°46′N 11°26′E / 48.767°N 11.433°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ingolstadt,+Bavaria,+Germany'], 'osm_id': [62381], 'pop_GHSL2023': 124418.21458852934, 'population': 138016, 'query': 'Ingolstadt, Bavaria, Germany', 'state': 'Bavaria'}, 'Jena': {'OSM relation': ['https://www.openstreetmap.org/relation/62693'], 'country': 'DE', 'location': '50°55′38″N 11°35′10″E / 50.92722°N 11.58611°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Jena,+Thuringia,+Germany'], 'osm_id': [62693], 'pop_GHSL2023': 96349.92435650199, 'population': 110502, 'query': 'Jena, Thuringia, Germany', 'state': 'Thuringia'}, 'Karlsruhe': {'OSM relation': ['https://www.openstreetmap.org/relation/62518'], 'country': 'DE', 'location': '49°0′N 8°24′E / 49.000°N 8.400°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Karlsruhe,+Baden-Württemberg,+Germany'], 'osm_id': [62518], 'pop_GHSL2023': 321957.63255011983, 'population': 306502, 'query': 'Karlsruhe, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Kassel': {'OSM relation': ['https://www.openstreetmap.org/relation/62598'], 'country': 'DE', 'location': '51°19′N 9°30′E / 51.317°N 9.500°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kassel,+Hesse,+Germany'], 'osm_id': [62598], 'pop_GHSL2023': 195841.11059885466, 'population': 200406, 'query': 'Kassel, Hesse, Germany', 'state': 'Hesse'}, 'Kiel': {'OSM relation': ['https://www.openstreetmap.org/relation/27021'], 'country': 'DE', 'location': '54°20′N 10°8′E / 54.333°N 10.133°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kiel,+Schleswig-Holstein,+Germany'], 'osm_id': [27021], 'pop_GHSL2023': 236948.35277050728, 'population': 246243, 'query': 'Kiel, Schleswig-Holstein, Germany', 'state': 'Schleswig-Holstein'}, 'Koblenz': {'OSM relation': ['https://www.openstreetmap.org/relation/62512'], 'country': 'DE', 'location': '50°21′35″N 7°35′52″E / 50.35972°N 7.59778°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Koblenz,+Rhineland-Palatinate,+Germany'], 'osm_id': [62512], 'pop_GHSL2023': 121517.91575462554, 'population': 113638, 'query': 'Koblenz, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Krefeld': {'OSM relation': ['https://www.openstreetmap.org/relation/62748'], 'country': 'DE', 'location': '51°20′N 6°34′E / 51.333°N 6.567°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Krefeld,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62748], 'pop_GHSL2023': 228622.10160866374, 'population': 227050, 'query': 'Krefeld, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Leipzig': {'OSM relation': ['https://www.openstreetmap.org/relation/62649'], 'country': 'DE', 'location': '51°20′N 12°23′E / 51.333°N 12.383°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Leipzig,+Saxony,+Germany'], 'osm_id': [62649], 'pop_GHSL2023': 587300.3685810135, 'population': 601866, 'query': 'Leipzig, Saxony, Germany', 'state': 'Saxony'}, 'Leverkusen': {'OSM relation': ['https://www.openstreetmap.org/relation/62449'], 'country': 'DE', 'location': '51°2′N 6°59′E / 51.033°N 6.983°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Leverkusen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62449], 'pop_GHSL2023': 151995.9388852119, 'population': 163851, 'query': 'Leverkusen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Ludwigshafen am Rhein': {'OSM relation': ['https://www.openstreetmap.org/relation/62347'], 'country': 'DE', 'location': '49°29′N 8°26′E / 49.483°N 8.433°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ludwigshafen+am+Rhein,+Rhineland-Palatinate,+Germany'], 'osm_id': [62347], 'pop_GHSL2023': 146645.6872336566, 'population': 172145, 'query': 'Ludwigshafen am Rhein, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Lübeck': {'OSM relation': ['https://www.openstreetmap.org/relation/27027'], 'country': 'DE', 'location': '53°52′N 10°41′E / 53.867°N 10.683°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lübeck,+Schleswig-Holstein,+Germany'], 'osm_id': [27027], 'pop_GHSL2023': 214359.11554070184, 'population': 216277, 'query': 'Lübeck, Schleswig-Holstein, Germany', 'state': 'Schleswig-Holstein'}, 'Magdeburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62481'], 'country': 'DE', 'location': '52°8′N 11°37′E / 52.133°N 11.617°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Magdeburg,+Saxony-Anhalt,+Germany'], 'osm_id': [62481], 'pop_GHSL2023': 239762.95349462883, 'population': 236188, 'query': 'Magdeburg, Saxony-Anhalt, Germany', 'state': 'Saxony-Anhalt'}, 'Mainz': {'OSM relation': ['https://www.openstreetmap.org/relation/62630'], 'country': 'DE', 'location': '50°0′N 8°16′E / 50.000°N 8.267°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mainz,+Rhineland-Palatinate,+Germany'], 'osm_id': [62630], 'pop_GHSL2023': 192033.2704339176, 'population': 217556, 'query': 'Mainz, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Mannheim': {'OSM relation': ['https://www.openstreetmap.org/relation/62691'], 'country': 'DE', 'location': '49°29′N 8°28′E / 49.483°N 8.467°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mannheim,+Baden-Württemberg,+Germany'], 'osm_id': [62691], 'pop_GHSL2023': 331411.8676640092, 'population': 311831, 'query': 'Mannheim, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Moers': {'OSM relation': ['https://www.openstreetmap.org/relation/58623'], 'country': 'DE', 'location': '51°27′33″N 6°37′11″E / 51.45917°N 6.61972°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Moers,+North+Rhine-Westphalia,+Germany'], 'osm_id': [58623], 'pop_GHSL2023': 107912.45186328885, 'population': 103725, 'query': 'Moers, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Munich': {'OSM relation': ['https://www.openstreetmap.org/relation/62428'], 'country': 'DE', 'location': '48°8′N 11°34′E / 48.133°N 11.567°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Munich,+Bavaria,+Germany'], 'osm_id': [62428], 'pop_GHSL2023': 1552833.6185131217, 'population': 1487708, 'query': 'Munich, Bavaria, Germany', 'state': 'Bavaria'}, 'Mönchengladbach': {'OSM relation': ['https://www.openstreetmap.org/relation/62410'], 'country': 'DE', 'location': '51°12′N 6°26′E / 51.200°N 6.433°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mönchengladbach,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62410], 'pop_GHSL2023': 267545.6431359052, 'population': 261001, 'query': 'Mönchengladbach, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Mülheim an der Ruhr': {'OSM relation': ['https://www.openstreetmap.org/relation/62385'], 'country': 'DE', 'location': '51°26′N 6°53′E / 51.433°N 6.883°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mülheim+an+der+Ruhr,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62385], 'pop_GHSL2023': 173668.34945082662, 'population': 170739, 'query': 'Mülheim an der Ruhr, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Münster': {'OSM relation': ['https://www.openstreetmap.org/relation/62591'], 'country': 'DE', 'location': '51°58′N 7°38′E / 51.967°N 7.633°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Münster,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62591], 'pop_GHSL2023': 341446.0807846858, 'population': 317713, 'query': 'Münster, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Neuss': {'OSM relation': ['https://www.openstreetmap.org/relation/163307'], 'country': 'DE', 'location': '51°12′N 6°42′E / 51.200°N 6.700°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Neuss,+North+Rhine-Westphalia,+Germany'], 'osm_id': [163307], 'pop_GHSL2023': 169732.4745044112, 'population': 152731, 'query': 'Neuss, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Nuremberg': {'OSM relation': ['https://www.openstreetmap.org/relation/62780'], 'country': 'DE', 'location': '49°27′N 11°5′E / 49.450°N 11.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Nuremberg,+Bavaria,+Germany'], 'osm_id': [62780], 'pop_GHSL2023': 499332.5104406102, 'population': 510632, 'query': 'Nuremberg, Bavaria, Germany', 'state': 'Bavaria'}, 'Oberhausen': {'OSM relation': ['https://www.openstreetmap.org/relation/62734'], 'country': 'DE', 'location': '51°28′N 6°51′E / 51.467°N 6.850°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Oberhausen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62734], 'pop_GHSL2023': 210994.3231761455, 'population': 208752, 'query': 'Oberhausen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Offenbach am Main': {'OSM relation': ['https://www.openstreetmap.org/relation/62695'], 'country': 'DE', 'location': '50°6′N 8°48′E / 50.100°N 8.800°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Offenbach+am+Main,+Hesse,+Germany'], 'osm_id': [62695], 'pop_GHSL2023': 109759.49343144891, 'population': 131295, 'query': 'Offenbach am Main, Hesse, Germany', 'state': 'Hesse'}, 'Oldenburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62409'], 'country': 'DE', 'location': '53°8′N 8°13′E / 53.133°N 8.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Oldenburg,+Lower+Saxony,+Germany'], 'osm_id': [62409], 'pop_GHSL2023': 149219.0436193719, 'population': 170389, 'query': 'Oldenburg, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Osnabrück': {'OSM relation': ['https://www.openstreetmap.org/relation/62631'], 'country': 'DE', 'location': '52°17′N 8°3′E / 52.283°N 8.050°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Osnabrück,+Lower+Saxony,+Germany'], 'osm_id': [62631], 'pop_GHSL2023': 148963.6332005262, 'population': 165034, 'query': 'Osnabrück, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Paderborn': {'OSM relation': ['https://www.openstreetmap.org/relation/5610766'], 'country': 'DE', 'location': '51°43′N 8°46′E / 51.717°N 8.767°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Paderborn,+North+Rhine-Westphalia,+Germany'], 'osm_id': [5610766], 'pop_GHSL2023': 93098.35931211707, 'population': 152531, 'query': 'Paderborn, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Pforzheim': {'OSM relation': ['https://www.openstreetmap.org/relation/62471'], 'country': 'DE', 'location': '48°54′N 8°43′E / 48.900°N 8.717°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Pforzheim,+Baden-Württemberg,+Germany'], 'osm_id': [62471], 'pop_GHSL2023': 114279.89176134576, 'population': 125529, 'query': 'Pforzheim, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Potsdam': {'OSM relation': ['https://www.openstreetmap.org/relation/62369'], 'country': 'DE', 'location': '52°24′N 13°4′E / 52.400°N 13.067°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Potsdam,+Brandenburg,+Germany'], 'osm_id': [62369], 'pop_GHSL2023': 197204.92013428442, 'population': 183154, 'query': 'Potsdam, Brandenburg, Germany', 'state': 'Brandenburg'}, 'Recklinghausen': {'OSM relation': ['https://www.openstreetmap.org/relation/56665'], 'country': 'DE', 'location': '51°35′6″N 7°9′43″E / 51.58500°N 7.16194°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Recklinghausen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [56665], 'pop_GHSL2023': 118133.97546708581, 'population': 110714, 'query': 'Recklinghausen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Regensburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62411'], 'country': 'DE', 'location': '49°1′N 12°5′E / 49.017°N 12.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Regensburg,+Bavaria,+Germany'], 'osm_id': [62411], 'pop_GHSL2023': 151635.27298718685, 'population': 153542, 'query': 'Regensburg, Bavaria, Germany', 'state': 'Bavaria'}, 'Remscheid': {'OSM relation': ['https://www.openstreetmap.org/relation/11799931'], 'country': 'DE', 'location': '51°11′N 7°12′E / 51.183°N 7.200°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Remscheid,+North+Rhine-Westphalia,+Germany'], 'osm_id': [11799931], 'pop_GHSL2023': 55548.23748469351, 'population': 111770, 'query': 'Remscheid, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Reutlingen': {'OSM relation': ['https://www.openstreetmap.org/relation/2772661'], 'country': 'DE', 'location': '48°29′N 9°13′E / 48.483°N 9.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Reutlingen,+Baden-Württemberg,+Germany'], 'osm_id': [2772661], 'pop_GHSL2023': 121992.67420992251, 'population': 116456, 'query': 'Reutlingen, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Rostock': {'OSM relation': ['https://www.openstreetmap.org/relation/62405'], 'country': 'DE', 'location': '54°5′N 12°8′E / 54.083°N 12.133°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Rostock,+Mecklenburg-Vorpommern,+Germany'], 'osm_id': [62405], 'pop_GHSL2023': 180835.00286210616, 'population': 208400, 'query': 'Rostock, Mecklenburg-Vorpommern, Germany', 'state': 'Mecklenburg-Vorpommern'}, 'Saarbrücken': {'OSM relation': ['https://www.openstreetmap.org/relation/1187159'], 'country': 'DE', 'location': '49°14′N 7°0′E / 49.233°N 7.000°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Saarbrücken,+Saarland,+Germany'], 'osm_id': [1187159], 'pop_GHSL2023': 185580.33219028142, 'population': 179634, 'query': 'Saarbrücken, Saarland, Germany', 'state': 'Saarland'}, 'Salzgitter': {'OSM relation': ['https://www.openstreetmap.org/relation/62659'], 'country': 'DE', 'location': '52°9′N 10°20′E / 52.150°N 10.333°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Salzgitter,+Lower+Saxony,+Germany'], 'osm_id': [62659], 'pop_GHSL2023': 95014.67304599934, 'population': 103694, 'query': 'Salzgitter, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Siegen': {'OSM relation': ['https://www.openstreetmap.org/relation/163256'], 'country': 'DE', 'location': '50°53′N 8°1′E / 50.883°N 8.017°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Siegen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [163256], 'pop_GHSL2023': 111237.85921204832, 'population': 101516, 'query': 'Siegen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Solingen': {'OSM relation': ['https://www.openstreetmap.org/relation/62699'], 'country': 'DE', 'location': '51°10′N 7°5′E / 51.167°N 7.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Solingen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62699], 'pop_GHSL2023': 158327.46900320047, 'population': 158957, 'query': 'Solingen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Stuttgart': {'OSM relation': ['https://www.openstreetmap.org/relation/2793104'], 'country': 'DE', 'location': '48°47′N 9°11′E / 48.783°N 9.183°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Stuttgart,+Baden-Württemberg,+Germany'], 'osm_id': [2793104], 'pop_GHSL2023': 608298.9549454299, 'population': 626275, 'query': 'Stuttgart, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Trier': {'OSM relation': ['https://www.openstreetmap.org/relation/172679'], 'country': 'DE', 'location': '49°45′N 6°38′E / 49.750°N 6.633°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Trier,+Rhineland-Palatinate,+Germany'], 'osm_id': [172679], 'pop_GHSL2023': 124173.42026184776, 'population': 110570, 'query': 'Trier, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Ulm': {'OSM relation': ['https://www.openstreetmap.org/relation/62495'], 'country': 'DE', 'location': '48°24′N 9°59′E / 48.400°N 9.983°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ulm,+Baden-Württemberg,+Germany'], 'osm_id': [62495], 'pop_GHSL2023': 117743.99580718306, 'population': 126949, 'query': 'Ulm, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Wiesbaden': {'OSM relation': ['https://www.openstreetmap.org/relation/62496'], 'country': 'DE', 'location': '50°5′N 8°14′E / 50.083°N 8.233°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Wiesbaden,+Hesse,+Germany'], 'osm_id': [62496], 'pop_GHSL2023': 297597.62034389994, 'population': 278950, 'query': 'Wiesbaden, Hesse, Germany', 'state': 'Hesse'}, 'Wolfsburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62418'], 'country': 'DE', 'location': '52°25′23″N 10°47′14″E / 52.42306°N 10.78722°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Wolfsburg,+Lower+Saxony,+Germany'], 'osm_id': [62418], 'pop_GHSL2023': 114474.95202474817, 'population': 123949, 'query': 'Wolfsburg, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Wuppertal': {'OSM relation': ['https://www.openstreetmap.org/relation/62478'], 'country': 'DE', 'location': '51°16′N 7°11′E / 51.267°N 7.183°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Wuppertal,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62478], 'pop_GHSL2023': 349787.26579546917, 'population': 354572, 'query': 'Wuppertal, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Würzburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62464'], 'country': 'DE', 'location': '49°47′N 9°56′E / 49.783°N 9.933°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Würzburg,+Bavaria,+Germany'], 'osm_id': [62464], 'pop_GHSL2023': 128355.29968417247, 'population': 126933, 'query': 'Würzburg, Bavaria, Germany', 'state': 'Bavaria'}}#
- PLACES_SMALL = [('Adliswil', 'Adliswil, Bezirk Horgen, Zürich, Switzerland'), ('MissionTown', '团城山街道, Xialu, Hubei, China'), ('Scheveningen', 'Scheveningen, The Hague, Netherlands')]#
- PLOT_SUFFIX = 'pdf'#
- RESULTS_DIR = '/home/runner/work/superblockify/superblockify/data/results'#
- TEST_DATA_PATH = '/home/runner/work/superblockify/superblockify/superblockify/../tests/test_data'#
- V_MAX_LTN = 15.0#
- V_MAX_SPARSE = 50.0#
- WORK_DIR = '/home/runner/work/superblockify/superblockify'#
- file = <_io.TextIOWrapper name='/home/runner/work/superblockify/superblockify/superblockify/cities.yml' mode='r' encoding='utf-8'>#
- places = {'place_lists': {'100_cities_boeing': {'cities': {'Amsterdam': {'OSM relation': ['https://www.openstreetmap.org/relation/271110'], 'P 4w': 0.205, 'P de': 0.146, 'circuity_avg': 1.08, 'country': 'NL', 'k_avg': 2.897, 'median_segment_length': 65.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Amsterdam,+North+Holland,+Netherlands'], 'orient_order': 0.071, 'osm_id': [271110], 'pop_GHSL2023': 818407.499844633, 'query': 'Amsterdam, North Holland, Netherlands', 'region': 'EU', 'Η o': 3.504, 'Η w': 3.488}, 'Athens': {'OSM relation': ['https://www.openstreetmap.org/relation/1370736'], 'P 4w': 0.363, 'P de': 0.056, 'circuity_avg': 1.019, 'country': 'GR', 'k_avg': 3.245, 'median_segment_length': 55.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Municipality+of+Athens,+Regional+Unit+of+Central+Athens,+Attica,+Greece'], 'orient_order': 0.041, 'osm_id': [1370736], 'pop_GHSL2023': 613633.1565856932, 'query': 'Municipality of Athens, Regional Unit of Central Athens, Attica, Greece', 'region': 'EU', 'Η o': 3.538, 'Η w': 3.532}, 'Atlanta': {'OSM relation': ['https://www.openstreetmap.org/relation/119557'], 'P 4w': 0.153, 'P de': 0.164, 'circuity_avg': 1.074, 'country': 'US-GA', 'k_avg': 2.806, 'median_segment_length': 112.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Atlanta,+Fulton+County,+Georgia,+United+States'], 'orient_order': 0.315, 'osm_id': [119557], 'pop_GHSL2023': 517627.27642059315, 'query': 'Atlanta, Fulton County, Georgia, United States', 'region': 'NAM', 'Η o': 3.204, 'Η w': 3.197}, 'Baghdad': {'OSM relation': ['https://www.openstreetmap.org/relation/5638803'], 'P 4w': 0.144, 'P de': 0.05, 'circuity_avg': 1.033, 'country': 'IQ', 'k_avg': 3.043, 'median_segment_length': 68.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Baghdad,+Baghdad+Governorate,+Iraq'], 'orient_order': 0.083, 'osm_id': [5638803], 'pop_GHSL2023': 6338692.7509337645, 'query': 'Baghdad, Baghdad Governorate, Iraq', 'region': 'MEA', 'Η o': 3.49, 'Η w': 3.498}, 'Baltimore': {'OSM relation': ['https://www.openstreetmap.org/relation/133345'], 'P 4w': 0.36, 'P de': 0.085, 'circuity_avg': 1.036, 'country': 'US-MD', 'k_avg': 3.182, 'median_segment_length': 100.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Baltimore,+Maryland,+United+States'], 'orient_order': 0.223, 'osm_id': [133345], 'pop_GHSL2023': 628695.3598501991, 'query': 'Baltimore, Maryland, United States', 'region': 'NAM', 'Η o': 3.324, 'Η w': 3.367}, 'Bangkok': {'OSM relation': ['https://www.openstreetmap.org/relation/92277'], 'P 4w': 0.108, 'P de': 0.36, 'circuity_avg': 1.059, 'country': 'TH', 'k_avg': 2.385, 'median_segment_length': 64.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=TH-10,+Thailand'], 'orient_order': 0.105, 'osm_id': [92277], 'pop_GHSL2023': 12342851.661893278, 'query': 'TH-10, Thailand', 'region': 'A&O', 'Η o': 3.465, 'Η w': 3.452}, 'Barcelona': {'OSM relation': ['https://www.openstreetmap.org/relation/2417889'], 'P 4w': 0.303, 'P de': 0.078, 'circuity_avg': 1.052, 'country': 'ES', 'k_avg': 3.135, 'median_segment_length': 78.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Barcelonès,+Barcelona,+Catalonia,+Spain'], 'orient_order': 0.108, 'osm_id': [2417889], 'pop_GHSL2023': 2463690.163737535, 'query': 'Barcelonès, Barcelona, Catalonia, Spain', 'region': 'EU', 'Η o': 3.462, 'Η w': 3.46}, 'Beijing': {'OSM relation': ['https://www.openstreetmap.org/relation/912940'], 'P 4w': 0.241, 'P de': 0.135, 'circuity_avg': 1.053, 'country': 'CN', 'k_avg': 2.985, 'median_segment_length': 177.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=CN-BJ,+China'], 'orient_order': 0.335, 'osm_id': [912940], 'pop_GHSL2023': 24149290.576004617, 'query': 'CN-BJ, China', 'region': 'A&O', 'Η o': 3.177, 'Η w': 3.206}, 'Beirut': {'OSM relation': ['https://www.openstreetmap.org/relation/316552'], 'P 4w': 0.218, 'P de': 0.072, 'circuity_avg': 1.026, 'country': 'LB', 'k_avg': 3.061, 'median_segment_length': 63.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Beirut+Governorate,+Lebanon'], 'orient_order': 0.206, 'osm_id': [316552], 'pop_GHSL2023': 354208.8213920592, 'query': 'Beirut Governorate, Lebanon', 'region': 'MEA', 'Η o': 3.344, 'Η w': 3.308}, 'Berlin': {'OSM relation': ['https://www.openstreetmap.org/relation/62422'], 'P 4w': 0.259, 'P de': 0.118, 'circuity_avg': 1.04, 'country': 'DE', 'k_avg': 3.002, 'median_segment_length': 113.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Berlin,+Germany'], 'orient_order': 0.011, 'osm_id': [62422], 'pop_GHSL2023': 3524738.8939121147, 'query': 'Berlin, Germany', 'region': 'EU', 'Η o': 3.572, 'Η w': 3.57}, 'Bogota': {'OSM relation': ['https://www.openstreetmap.org/relation/7426387'], 'P 4w': 0.234, 'P de': 0.122, 'circuity_avg': 1.044, 'country': 'CO', 'k_avg': 2.977, 'median_segment_length': 58.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bogota,+Bogota+Capital+District+-+Municipality,+RAP+(Especial)+Central,+Colombia'], 'orient_order': 0.04, 'osm_id': [7426387], 'pop_GHSL2023': 8899793.370068071, 'query': 'Bogota, Bogota Capital District - Municipality, RAP (Especial) Central, Colombia', 'region': 'LatAm', 'Η o': 3.539, 'Η w': 3.529}, 'Boston': {'OSM relation': ['https://www.openstreetmap.org/relation/2315704'], 'P 4w': 0.211, 'P de': 0.135, 'circuity_avg': 1.039, 'country': 'US-MA', 'k_avg': 2.945, 'median_segment_length': 77.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Boston,+Suffolk+County,+Massachusetts,+United+States'], 'orient_order': 0.026, 'osm_id': [2315704], 'pop_GHSL2023': 613869.7221977434, 'query': 'Boston, Suffolk County, Massachusetts, United States', 'region': 'NAM', 'Η o': 3.554, 'Η w': 3.552}, 'Budapest': {'OSM relation': ['https://www.openstreetmap.org/relation/37244'], 'P 4w': 0.231, 'P de': 0.096, 'circuity_avg': 1.032, 'country': 'HU', 'k_avg': 3.037, 'median_segment_length': 93.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Budapest,+Central+Hungary,+Hungary'], 'orient_order': 0.05, 'osm_id': [37244], 'pop_GHSL2023': 1835722.523857839, 'query': 'Budapest, Central Hungary, Hungary', 'region': 'EU', 'Η o': 3.528, 'Η w': 3.516}, 'Buenos Aires': {'OSM relation': ['https://www.openstreetmap.org/relation/1224652'], 'P 4w': 0.576, 'P de': 0.027, 'circuity_avg': 1.011, 'country': 'AR', 'k_avg': 3.548, 'median_segment_length': 104.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Autonomous+City+of+Buenos+Aires,+Argentina'], 'orient_order': 0.151, 'osm_id': [1224652], 'pop_GHSL2023': 2711340.2666851874, 'query': 'Autonomous City of Buenos Aires, Argentina', 'region': 'LatAm', 'Η o': 3.411, 'Η w': 3.423}, 'Cairo': {'OSM relation': ['https://www.openstreetmap.org/relation/5466227'], 'P 4w': 0.171, 'P de': 0.085, 'circuity_avg': 1.067, 'country': 'EG', 'k_avg': 2.996, 'median_segment_length': 66.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Cairo,+Egypt'], 'orient_order': 0.041, 'osm_id': [5466227], 'pop_GHSL2023': 9149031.085013825, 'query': 'Cairo, Egypt', 'region': 'MEA', 'Η o': 3.538, 'Η w': 3.526}, 'Cape Town': {'OSM relation': ['https://www.openstreetmap.org/relation/79604'], 'P 4w': 0.162, 'P de': 0.183, 'circuity_avg': 1.102, 'country': 'ZA', 'k_avg': 2.793, 'median_segment_length': 75.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=City+of+Cape+Town,+Western+Cape,+8001,+South+Africa'], 'orient_order': 0.025, 'osm_id': [79604], 'pop_GHSL2023': 5052916.481144726, 'query': 'City of Cape Town, Western Cape, 8001, South Africa', 'region': 'MEA', 'Η o': 3.556, 'Η w': 3.553}, 'Caracas': {'OSM relation': ['https://www.openstreetmap.org/relation/11219583'], 'P 4w': 0.145, 'P de': 0.217, 'circuity_avg': 1.148, 'country': 'VE', 'k_avg': 2.71, 'median_segment_length': 95.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Caracas,+Venezuela'], 'orient_order': 0.029, 'osm_id': [11219583], 'pop_GHSL2023': 2668989.406249012, 'query': 'Caracas, Venezuela', 'region': 'LatAm', 'Η o': 3.551, 'Η w': 3.564}, 'Casablanca': {'OSM relation': ['https://www.openstreetmap.org/relation/4072985'], 'P 4w': 0.178, 'P de': 0.08, 'circuity_avg': 1.048, 'country': 'MA', 'k_avg': 3.026, 'median_segment_length': 48.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Casablanca,+Casablanca-Settat,+Morocco'], 'orient_order': 0.094, 'osm_id': [4072985], 'pop_GHSL2023': 3387477.14780569, 'query': 'Casablanca, Casablanca-Settat, Morocco', 'region': 'MEA', 'Η o': 3.477, 'Η w': 3.461}, 'Charlotte': {'OSM relation': ['https://www.openstreetmap.org/relation/177415'], 'P 4w': 0.139, 'P de': 0.288, 'circuity_avg': 1.067, 'country': 'US-NC', 'k_avg': 2.546, 'median_segment_length': 117.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Charlotte,+Mecklenburg+County,+North+Carolina,+United+States'], 'orient_order': 0.002, 'osm_id': [177415], 'pop_GHSL2023': 829529.5766545291, 'query': 'Charlotte, Mecklenburg County, North Carolina, United States', 'region': 'NAM', 'Η o': 3.582, 'Η w': 3.581}, 'Chicago': {'OSM relation': ['https://www.openstreetmap.org/relation/122604'], 'P 4w': 0.507, 'P de': 0.074, 'circuity_avg': 1.016, 'country': 'US-IL', 'k_avg': 3.343, 'median_segment_length': 105.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Chicago,+Cook+County,+Illinois,+United+States'], 'orient_order': 0.899, 'osm_id': [122604], 'pop_GHSL2023': 2640668.741081328, 'query': 'Chicago, Cook County, Illinois, United States', 'region': 'NAM', 'Η o': 2.083, 'Η w': 2.103}, 'Cleveland': {'OSM relation': ['https://www.openstreetmap.org/relation/182130'], 'P 4w': 0.198, 'P de': 0.091, 'circuity_avg': 1.029, 'country': 'US-OH', 'k_avg': 2.979, 'median_segment_length': 103.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Cleveland,+Cuyahoga+County,+Ohio,+United+States'], 'orient_order': 0.486, 'osm_id': [182130], 'pop_GHSL2023': 365347.62727096665, 'query': 'Cleveland, Cuyahoga County, Ohio, United States', 'region': 'NAM', 'Η o': 2.961, 'Η w': 2.899}, 'Copenhagen': {'OSM relation': ['https://www.openstreetmap.org/relation/2192363', 'https://www.openstreetmap.org/relation/2186660'], 'P 4w': 0.194, 'P de': 0.146, 'circuity_avg': 1.048, 'country': 'DK', 'k_avg': 2.881, 'median_segment_length': 78.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Københavns+Kommune,+Denmark', 'https://nominatim.openstreetmap.org/ui/search.html?q=Frederiksberg+Kommune,+Denmark'], 'orient_order': 0.029, 'osm_id': [2192363, 2186660], 'pop_GHSL2023': 764718.588683754, 'query': ['Københavns Kommune, Denmark', 'Frederiksberg Kommune, Denmark'], 'region': 'EU', 'Η o': 3.552, 'Η w': 3.551}, 'Dallas': {'OSM relation': ['https://www.openstreetmap.org/relation/6571629'], 'P 4w': 0.317, 'P de': 0.091, 'circuity_avg': 1.042, 'country': 'US-TX', 'k_avg': 3.12, 'median_segment_length': 106.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dallas,+Dallas+County,+Texas,+United+States'], 'orient_order': 0.305, 'osm_id': [6571629], 'pop_GHSL2023': 1472292.9103196533, 'query': 'Dallas, Dallas County, Texas, United States', 'region': 'NAM', 'Η o': 3.218, 'Η w': 3.182}, 'Damascus': {'OSM relation': ['https://www.openstreetmap.org/relation/7328462'], 'P 4w': 0.107, 'P de': 0.146, 'circuity_avg': 1.085, 'country': 'SY', 'k_avg': 2.801, 'median_segment_length': 65.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Damascus+Governorate,+Syria'], 'orient_order': 0.043, 'osm_id': [7328462], 'pop_GHSL2023': 2160242.529167125, 'query': 'Damascus Governorate, Syria', 'region': 'MEA', 'Η o': 3.536, 'Η w': 3.525}, 'Denver': {'OSM relation': ['https://www.openstreetmap.org/relation/1411339'], 'P 4w': 0.416, 'P de': 0.071, 'circuity_avg': 1.031, 'country': 'US-CO', 'k_avg': 3.249, 'median_segment_length': 102.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Denver,+Colorado,+United+States'], 'orient_order': 0.678, 'osm_id': [1411339], 'pop_GHSL2023': 675848.2442275502, 'query': 'Denver, Colorado, United States', 'region': 'NAM', 'Η o': 2.634, 'Η w': 2.571}, 'Detroit': {'OSM relation': ['https://www.openstreetmap.org/relation/134591'], 'P 4w': 0.482, 'P de': 0.053, 'circuity_avg': 1.012, 'country': 'US-MI', 'k_avg': 3.352, 'median_segment_length': 101.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Detroit,+Wayne+County,+Michigan,+United+States'], 'orient_order': 0.582, 'osm_id': [134591], 'pop_GHSL2023': 658243.4261336921, 'query': 'Detroit, Wayne County, Michigan, United States', 'region': 'NAM', 'Η o': 2.807, 'Η w': 2.718}, 'Dubai': {'OSM relation': ['https://www.openstreetmap.org/relation/4479752'], 'P 4w': 0.073, 'P de': 0.074, 'circuity_avg': 1.087, 'country': 'AE', 'k_avg': 2.925, 'median_segment_length': 79.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dubai,+United+Arab+Emirates'], 'orient_order': 0.031, 'osm_id': [4479752], 'pop_GHSL2023': 3122371.0558517794, 'query': 'Dubai, United Arab Emirates', 'region': 'MEA', 'Η o': 3.55, 'Η w': 3.529}, 'Dublin': {'OSM relation': ['https://www.openstreetmap.org/relation/1109531'], 'P 4w': 0.068, 'P de': 0.279, 'circuity_avg': 1.061, 'country': 'IE', 'k_avg': 2.492, 'median_segment_length': 71.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dublin,+Dublin+1,+Leinster,+Ireland'], 'orient_order': 0.024, 'osm_id': [1109531], 'pop_GHSL2023': 554085.2711834605, 'query': 'Dublin, Dublin 1, Leinster, Ireland', 'region': 'EU', 'Η o': 3.557, 'Η w': 3.541}, 'Glasgow': {'OSM relation': ['https://www.openstreetmap.org/relation/1906767'], 'P 4w': 0.109, 'P de': 0.238, 'circuity_avg': 1.079, 'country': 'GB', 'k_avg': 2.62, 'median_segment_length': 72.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Glasgow+City,+Scotland,+G2+1DY,+United+Kingdom'], 'orient_order': 0.047, 'osm_id': [1906767], 'pop_GHSL2023': 582972.040480375, 'query': 'Glasgow City, Scotland, G2 1DY, United Kingdom', 'region': 'EU', 'Η o': 3.531, 'Η w': 3.513}, 'Hanoi': {'OSM relation': ['https://www.openstreetmap.org/relation/1903516'], 'P 4w': 0.102, 'P de': 0.246, 'circuity_avg': 1.065, 'country': 'VN', 'k_avg': 2.61, 'median_segment_length': 64.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hà+Nội,+Vietnam'], 'orient_order': 0.01, 'osm_id': [1903516], 'pop_GHSL2023': 7412688.725904138, 'query': 'Hà Nội, Vietnam', 'region': 'A&O', 'Η o': 3.573, 'Η w': 3.572}, 'Havana': {'OSM relation': ['https://www.openstreetmap.org/relation/1854615'], 'P 4w': 0.357, 'P de': 0.118, 'circuity_avg': 1.04, 'country': 'CU', 'k_avg': 3.13, 'median_segment_length': 86.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=CU-03,+Cuba'], 'orient_order': 0.029, 'osm_id': [1854615], 'pop_GHSL2023': 2078137.1455927053, 'query': 'CU-03, Cuba', 'region': 'LatAm', 'Η o': 3.551, 'Η w': 3.552}, 'Helsinki': {'OSM relation': ['https://www.openstreetmap.org/relation/34914'], 'P 4w': 0.134, 'P de': 0.395, 'circuity_avg': 1.063, 'country': 'FI', 'k_avg': 2.348, 'median_segment_length': 42.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Helsinki,+Helsinki+sub-region,+Uusimaa,+Southern+Finland,+Mainland+Finland,+Finland'], 'orient_order': 0.006, 'osm_id': [34914], 'pop_GHSL2023': 640938.2250840327, 'query': 'Helsinki, Helsinki sub-region, Uusimaa, Southern Finland, Mainland Finland, Finland', 'region': 'EU', 'Η o': 3.577, 'Η w': 3.571}, 'Hong Kong': {'OSM relation': ['https://www.openstreetmap.org/relation/10264792'], 'P 4w': 0.174, 'P de': 0.114, 'circuity_avg': 1.137, 'country': 'HK', 'k_avg': 2.932, 'median_segment_length': 61.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hong+Kong+Island,+Hong+Kong,+China'], 'orient_order': 0.012, 'osm_id': [10264792], 'pop_GHSL2023': 1220949.8235658924, 'query': 'Hong Kong Island, Hong Kong, China', 'region': 'A&O', 'Η o': 3.571, 'Η w': 3.563}, 'Honolulu': {'OSM relation': ['https://www.openstreetmap.org/relation/119231'], 'P 4w': 0.185, 'P de': 0.252, 'circuity_avg': 1.073, 'country': 'US-HI', 'k_avg': 2.681, 'median_segment_length': 101.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=R119231'], 'orient_order': 0.034, 'osm_id': [119231], 'pop_GHSL2023': 404124.8977179931, 'query': 119231, 'region': 'NAM', 'Η o': 3.545, 'Η w': 3.55}, 'Houston': {'OSM relation': ['https://www.openstreetmap.org/relation/2688911', 'https://www.openstreetmap.org/relation/6586766', 'https://www.openstreetmap.org/relation/2947146', 'https://www.openstreetmap.org/relation/2947144', 'https://www.openstreetmap.org/relation/2947142', 'https://www.openstreetmap.org/relation/2947138', 'https://www.openstreetmap.org/relation/2947141', 'https://www.openstreetmap.org/relation/2947143', 'https://www.openstreetmap.org/relation/2947145', 'https://www.openstreetmap.org/relation/2947140', 'https://www.openstreetmap.org/relation/2947137', 'https://www.openstreetmap.org/relation/2947139', 'https://www.openstreetmap.org/relation/4840276'], 'P 4w': 0.307, 'P de': 0.127, 'circuity_avg': 1.045, 'country': 'US-TX', 'k_avg': 3.027, 'median_segment_length': 96.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Houston,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Bellaire,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=West+University+Place,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Southside+Place,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Jacinto+City,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Galena+Park,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Hunters+Creek+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Piney+Point+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Spring+Valley,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Hilshire+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Bunker+Hill+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Hedwig+Village,+Harris+County,+Texas,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Jersey+Village,+Harris+County,+Texas,+United+States'], 'orient_order': 0.425, 'osm_id': [2688911, 6586766, 2947146, 2947144, 2947142, 2947138, 2947141, 2947143, 2947145, 2947140, 2947137, 2947139, 4840276], 'pop_GHSL2023': 2780403.3394391406, 'query': ['Houston, Harris County, Texas, United States', 'Bellaire, Harris County, Texas, United States', 'West University Place, Harris County, Texas, United States', 'Southside Place, Harris County, Texas, United States', 'Jacinto City, Harris County, Texas, United States', 'Galena Park, Harris County, Texas, United States', 'Hunters Creek Village, Harris County, Texas, United States', 'Piney Point Village, Harris County, Texas, United States', 'Spring Valley, Harris County, Texas, United States', 'Hilshire Village, Harris County, Texas, United States', 'Bunker Hill Village, Harris County, Texas, United States', 'Hedwig Village, Harris County, Texas, United States', 'Jersey Village, Harris County, Texas, United States'], 'region': 'NAM', 'Η o': 3.052, 'Η w': 3.006}, 'Istanbul': {'OSM relation': ['https://www.openstreetmap.org/relation/223474'], 'P 4w': 0.174, 'P de': 0.093, 'circuity_avg': 1.059, 'country': 'TR', 'k_avg': 2.998, 'median_segment_length': 50.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=TR-34,+Turkey'], 'orient_order': 0.007, 'osm_id': [223474], 'pop_GHSL2023': 14243965.122489264, 'query': 'TR-34, Turkey', 'region': 'MEA', 'Η o': 3.576, 'Η w': 3.574}, 'Jakarta': {'OSM relation': ['https://www.openstreetmap.org/relation/6362934'], 'P 4w': 0.096, 'P de': 0.175, 'circuity_avg': 1.065, 'country': 'ID', 'k_avg': 2.741, 'median_segment_length': 52.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Special+Capital+Region+of+Jakarta,+Java,+Indonesia'], 'orient_order': 0.167, 'osm_id': [6362934], 'pop_GHSL2023': 11342187.842398439, 'query': 'Special Capital Region of Jakarta, Java, Indonesia', 'region': 'A&O', 'Η o': 3.391, 'Η w': 3.347}, 'Jerusalem': {'OSM relation': ['https://www.openstreetmap.org/relation/1381350'], 'P 4w': 0.109, 'P de': 0.18, 'circuity_avg': 1.092, 'country': 'IL', 'k_avg': 2.735, 'median_segment_length': 44.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Jerusalem,+Jerusalem+District,+Israel'], 'orient_order': 0.014, 'osm_id': [1381350], 'pop_GHSL2023': 1253649.2788656482, 'query': 'Jerusalem, Jerusalem District, Israel', 'region': 'MEA', 'Η o': 3.568, 'Η w': 3.562}, 'Johannesburg': {'OSM relation': ['https://www.openstreetmap.org/relation/594508'], 'P 4w': 0.182, 'P de': 0.158, 'circuity_avg': 1.098, 'country': 'ZA', 'k_avg': 2.865, 'median_segment_length': 88.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=City+of+Johannesburg+Metropolitan+Municipality,+2001,+South+Africa'], 'orient_order': 0.019, 'osm_id': [594508], 'pop_GHSL2023': 6409611.695537722, 'query': 'City of Johannesburg Metropolitan Municipality, 2001, South Africa', 'region': 'MEA', 'Η o': 3.562, 'Η w': 3.556}, 'Kabul': {'OSM relation': ['https://www.openstreetmap.org/relation/6616233'], 'P 4w': 0.13, 'P de': 0.226, 'circuity_avg': 1.062, 'country': 'AF', 'k_avg': 2.673, 'median_segment_length': 79.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kabul+District,+Kabul+Province,+Afghanistan'], 'orient_order': 0.076, 'osm_id': [6616233], 'pop_GHSL2023': 5656560.564128555, 'query': 'Kabul District, Kabul Province, Afghanistan', 'region': 'A&O', 'Η o': 3.499, 'Η w': 3.51}, 'Karachi': {'OSM relation': ['https://www.openstreetmap.org/relation/6080948'], 'P 4w': 0.216, 'P de': 0.095, 'circuity_avg': 1.032, 'country': 'PK', 'k_avg': 3.027, 'median_segment_length': 71.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Karachi+Division,+Sindh,+Pakistan'], 'orient_order': 0.088, 'osm_id': [6080948], 'pop_GHSL2023': 21243358.03043522, 'query': 'Karachi Division, Sindh, Pakistan', 'region': 'A&O', 'Η o': 3.485, 'Η w': 3.493}, 'Kathmandu': {'OSM relation': ['https://www.openstreetmap.org/relation/4583247'], 'P 4w': 0.089, 'P de': 0.234, 'circuity_avg': 1.071, 'country': 'NP', 'k_avg': 2.595, 'median_segment_length': 63.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kathmandu,+Bagmati+Pradesh,+Nepal'], 'orient_order': 0.054, 'osm_id': [4583247], 'pop_GHSL2023': 3008734.5134922313, 'query': 'Kathmandu, Bagmati Pradesh, Nepal', 'region': 'A&O', 'Η o': 3.523, 'Η w': 3.5}, 'Kiev': {'OSM relation': ['https://www.openstreetmap.org/relation/421866'], 'P 4w': 0.16, 'P de': 0.164, 'circuity_avg': 1.053, 'country': 'UA', 'k_avg': 2.813, 'median_segment_length': 125.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kyiv,+Ukraine'], 'orient_order': 0.014, 'osm_id': [421866], 'pop_GHSL2023': 2552854.8664907534, 'query': 'Kyiv, Ukraine', 'region': 'EU', 'Η o': 3.568, 'Η w': 3.554}, 'Kyoto': {'OSM relation': ['https://www.openstreetmap.org/relation/357794'], 'P 4w': 0.157, 'P de': 0.134, 'circuity_avg': 1.09, 'country': 'JP', 'k_avg': 2.887, 'median_segment_length': 49.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kyoto,+Kyoto+Prefecture,+Japan'], 'orient_order': 0.357, 'osm_id': [357794], 'pop_GHSL2023': 1270597.194326272, 'query': 'Kyoto, Kyoto Prefecture, Japan', 'region': 'A&O', 'Η o': 3.148, 'Η w': 3.229}, 'Lagos': {'OSM relation': ['https://www.openstreetmap.org/relation/7644528'], 'P 4w': 0.07, 'P de': 0.223, 'circuity_avg': 1.048, 'country': 'NG', 'k_avg': 2.619, 'median_segment_length': 87.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lagos+Island,+Lagos+State,+Nigeria'], 'orient_order': 0.039, 'osm_id': [7644528], 'pop_GHSL2023': 119799.5473861694, 'query': 'Lagos Island, Lagos State, Nigeria', 'region': 'MEA', 'Η o': 3.54, 'Η w': 3.521}, 'Las Vegas': {'OSM relation': ['https://www.openstreetmap.org/relation/170117', 'https://www.openstreetmap.org/relation/170118', 'https://www.openstreetmap.org/relation/170116', 'https://www.openstreetmap.org/relation/170007', 'https://www.openstreetmap.org/relation/170049', 'https://www.openstreetmap.org/relation/170053', 'https://www.openstreetmap.org/relation/170068', 'https://www.openstreetmap.org/relation/170132'], 'P 4w': 0.166, 'P de': 0.23, 'circuity_avg': 1.079, 'country': 'US-NV', 'k_avg': 2.676, 'median_segment_length': 86.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Las+Vegas,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=North+Las+Vegas,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Henderson,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Winchester,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Spring+Valley,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Paradise,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Sunrise+Manor,+Clark+County,+Nevada,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Enterprise,+Clark+County,+Nevada,+United+States'], 'orient_order': 0.542, 'osm_id': [170117, 170118, 170116, 170007, 170049, 170053, 170068, 170132], 'pop_GHSL2023': 2451129.123220173, 'query': ['Las Vegas, Clark County, Nevada, United States', 'North Las Vegas, Clark County, Nevada, United States', 'Henderson, Clark County, Nevada, United States', 'Winchester, Clark County, Nevada, United States', 'Spring Valley, Clark County, Nevada, United States', 'Paradise, Clark County, Nevada, United States', 'Sunrise Manor, Clark County, Nevada, United States', 'Enterprise, Clark County, Nevada, United States'], 'region': 'NAM', 'Η o': 2.874, 'Η w': 2.775}, 'Lima': {'OSM relation': ['https://www.openstreetmap.org/relation/12933390'], 'P 4w': 0.331, 'P de': 0.04, 'circuity_avg': 1.017, 'country': 'PE', 'k_avg': 3.161, 'median_segment_length': 76.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lima+Metropolitan+Area,+Lima,+Peru'], 'orient_order': 0.278, 'osm_id': [12933390], 'pop_GHSL2023': 10924814.244125538, 'query': 'Lima Metropolitan Area, Lima, Peru', 'region': 'LatAm', 'Η o': 3.254, 'Η w': 3.228}, 'Lisbon': {'OSM relation': ['https://www.openstreetmap.org/relation/5400890'], 'P 4w': 0.154, 'P de': 0.108, 'circuity_avg': 1.068, 'country': 'PT', 'k_avg': 2.923, 'median_segment_length': 60.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lisbon,+Portugal'], 'orient_order': 0.023, 'osm_id': [5400890], 'pop_GHSL2023': 564066.0386443137, 'query': 'Lisbon, Portugal', 'region': 'EU', 'Η o': 3.558, 'Η w': 3.546}, 'London': {'OSM relation': ['https://www.openstreetmap.org/relation/175342'], 'P 4w': 0.07, 'P de': 0.251, 'circuity_avg': 1.061, 'country': 'GB', 'k_avg': 2.561, 'median_segment_length': 70.3, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Greater+London,+England,+United+Kingdom'], 'orient_order': 0.015, 'osm_id': [175342], 'pop_GHSL2023': 9734682.771514352, 'query': 'Greater London, England, United Kingdom', 'region': 'EU', 'Η o': 3.566, 'Η w': 3.564}, 'Los Angeles': {'OSM relation': ['https://www.openstreetmap.org/relation/396479'], 'P 4w': 0.273, 'P de': 0.171, 'circuity_avg': 1.048, 'country': 'US-CA', 'k_avg': 2.911, 'median_segment_length': 109.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Los+Angeles+County,+California,+United+States'], 'orient_order': 0.348, 'osm_id': [396479], 'pop_GHSL2023': 10131722.735823404, 'query': 'Los Angeles County, California, United States', 'region': 'NAM', 'Η o': 3.161, 'Η w': 3.145}, 'Madrid': {'OSM relation': ['https://www.openstreetmap.org/relation/5326784'], 'P 4w': 0.21, 'P de': 0.065, 'circuity_avg': 1.05, 'country': 'ES', 'k_avg': 3.079, 'median_segment_length': 62.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Madrid,+Community+of+Madrid,+Spain'], 'orient_order': 0.019, 'osm_id': [5326784], 'pop_GHSL2023': 3797206.0047106226, 'query': 'Madrid, Community of Madrid, Spain', 'region': 'EU', 'Η o': 3.562, 'Η w': 3.553}, 'Manhattan': {'OSM relation': ['https://www.openstreetmap.org/relation/8398124'], 'P 4w': 0.572, 'P de': 0.027, 'circuity_avg': 1.017, 'country': 'US-NY', 'k_avg': 3.508, 'median_segment_length': 82.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Manhattan,+New+York+County,+New+York,+United+States'], 'orient_order': 0.669, 'osm_id': [8398124], 'pop_GHSL2023': 1658451.516783237, 'query': 'Manhattan, New York County, New York, United States', 'region': 'NAM', 'Η o': 2.65, 'Η w': 2.571}, 'Manila': {'OSM relation': ['https://www.openstreetmap.org/relation/147488'], 'P 4w': 0.347, 'P de': 0.095, 'circuity_avg': 1.023, 'country': 'PH', 'k_avg': 3.141, 'median_segment_length': 63.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Metro+Manila,+Philippines'], 'orient_order': 0.062, 'osm_id': [147488], 'pop_GHSL2023': 13751861.781497028, 'query': 'Metro Manila, Philippines', 'region': 'A&O', 'Η o': 3.514, 'Η w': 3.484}, 'Melbourne': {'OSM relation': ['https://www.openstreetmap.org/relation/4246124'], 'P 4w': 0.332, 'P de': 0.06, 'circuity_avg': 1.037, 'country': 'AU', 'k_avg': 3.16, 'median_segment_length': 51.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Greater+Melbourne,+Victoria,+Australia'], 'orient_order': 0.34, 'osm_id': [4246124], 'pop_GHSL2023': 5378918.1597416485, 'query': 'Greater Melbourne, Victoria, Australia', 'region': 'A&O', 'Η o': 3.172, 'Η w': 3.203}, 'Mexico City': {'OSM relation': ['https://www.openstreetmap.org/relation/1376330'], 'P 4w': 0.264, 'P de': 0.146, 'circuity_avg': 1.043, 'country': 'MX', 'k_avg': 2.977, 'median_segment_length': 69.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mexico+City,+Mexico'], 'orient_order': 0.154, 'osm_id': [1376330], 'pop_GHSL2023': 7649332.880559048, 'query': 'Mexico City, Mexico', 'region': 'LatAm', 'Η o': 3.408, 'Η w': 3.406}, 'Miami': {'OSM relation': ['https://www.openstreetmap.org/relation/1216769'], 'P 4w': 0.407, 'P de': 0.069, 'circuity_avg': 1.023, 'country': 'US-FL', 'k_avg': 3.236, 'median_segment_length': 96.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Miami,+Miami-Dade+County,+Florida,+United+States'], 'orient_order': 0.811, 'osm_id': [1216769], 'pop_GHSL2023': 401627.16193004296, 'query': 'Miami, Miami-Dade County, Florida, United States', 'region': 'NAM', 'Η o': 2.341, 'Η w': 2.291}, 'Minneapolis': {'OSM relation': ['https://www.openstreetmap.org/relation/136712'], 'P 4w': 0.521, 'P de': 0.053, 'circuity_avg': 1.023, 'country': 'US-MN', 'k_avg': 3.393, 'median_segment_length': 115.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Minneapolis,+Hennepin+County,+Minnesota,+United+States'], 'orient_order': 0.749, 'osm_id': [136712], 'pop_GHSL2023': 375276.78887844074, 'query': 'Minneapolis, Hennepin County, Minnesota, United States', 'region': 'NAM', 'Η o': 2.486, 'Η w': 2.464}, 'Mogadishu': {'OSM relation': ['https://www.openstreetmap.org/relation/1720125'], 'P 4w': 0.472, 'P de': 0.055, 'circuity_avg': 1.019, 'country': 'SO', 'k_avg': 3.346, 'median_segment_length': 39.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mogadishu+District,+Banaadir,+Somalia'], 'orient_order': 0.375, 'osm_id': [1720125], 'pop_GHSL2023': 3867823.297230401, 'query': 'Mogadishu District, Banaadir, Somalia', 'region': 'MEA', 'Η o': 3.123, 'Η w': 3.292}, 'Montreal': {'OSM relation': ['https://www.openstreetmap.org/relation/1571328'], 'P 4w': 0.344, 'P de': 0.051, 'circuity_avg': 1.057, 'country': 'CA-QC', 'k_avg': 3.239, 'median_segment_length': 87.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Montreal+(administrative+region),+Quebec,+Canada'], 'orient_order': 0.204, 'osm_id': [1571328], 'pop_GHSL2023': 1972042.624127009, 'query': 'Montreal (administrative region), Quebec, Canada', 'region': 'NAM', 'Η o': 3.346, 'Η w': 3.332}, 'Moscow': {'OSM relation': ['https://www.openstreetmap.org/relation/2555133'], 'P 4w': 0.17, 'P de': 0.074, 'circuity_avg': 1.055, 'country': 'RU', 'k_avg': 2.999, 'median_segment_length': 130.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Moscow,+Central+Federal+District,+Russia'], 'orient_order': 0.007, 'osm_id': [2555133], 'pop_GHSL2023': 12023201.84294212, 'query': 'Moscow, Central Federal District, Russia', 'region': 'EU', 'Η o': 3.576, 'Η w': 3.573}, 'Mumbai': {'OSM relation': ['https://www.openstreetmap.org/relation/7888990'], 'P 4w': 0.136, 'P de': 0.211, 'circuity_avg': 1.081, 'country': 'IN', 'k_avg': 2.705, 'median_segment_length': 68.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mumbai,+Mumbai+Suburban,+Maharashtra,+India'], 'orient_order': 0.075, 'osm_id': [7888990], 'pop_GHSL2023': 14523039.176669551, 'query': 'Mumbai, Mumbai Suburban, Maharashtra, India', 'region': 'A&O', 'Η o': 3.499, 'Η w': 3.476}, 'Munich': {'OSM relation': ['https://www.openstreetmap.org/relation/62428'], 'P 4w': 0.2, 'P de': 0.099, 'circuity_avg': 1.046, 'country': 'DE', 'k_avg': 2.958, 'median_segment_length': 96.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Munich,+Bavaria,+Germany'], 'orient_order': 0.078, 'osm_id': [62428], 'pop_GHSL2023': 1552833.6185131217, 'query': 'Munich, Bavaria, Germany', 'region': 'EU', 'Η o': 3.496, 'Η w': 3.482}, 'Nairobi': {'OSM relation': ['https://www.openstreetmap.org/relation/9721587'], 'P 4w': 0.075, 'P de': 0.279, 'circuity_avg': 1.083, 'country': 'KE', 'k_avg': 2.506, 'median_segment_length': 91.8, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Nairobi,+Nairobi+County,+Kenya'], 'orient_order': 0.014, 'osm_id': [9721587], 'pop_GHSL2023': 5838242.6927329, 'query': 'Nairobi, Nairobi County, Kenya', 'region': 'MEA', 'Η o': 3.568, 'Η w': 3.556}, 'New Delhi': {'OSM relation': ['https://www.openstreetmap.org/relation/2763541'], 'P 4w': 0.119, 'P de': 0.197, 'circuity_avg': 1.083, 'country': 'IN', 'k_avg': 2.696, 'median_segment_length': 62.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=New+Delhi,+Delhi,+India'], 'orient_order': 0.062, 'osm_id': [2763541], 'pop_GHSL2023': 1203942.1327352521, 'query': 'New Delhi, Delhi, India', 'region': 'A&O', 'Η o': 3.515, 'Η w': 3.491}, 'New Orleans': {'OSM relation': ['https://www.openstreetmap.org/relation/131885'], 'P 4w': 0.526, 'P de': 0.077, 'circuity_avg': 1.035, 'country': 'US-LA', 'k_avg': 3.378, 'median_segment_length': 99.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=New+Orleans,+Orleans+Parish,+Louisiana,+United+States'], 'orient_order': 0.123, 'osm_id': [131885], 'pop_GHSL2023': 366732.97836517997, 'query': 'New Orleans, Orleans Parish, Louisiana, United States', 'region': 'NAM', 'Η o': 3.444, 'Η w': 3.457}, 'Orlando': {'OSM relation': ['https://www.openstreetmap.org/relation/1128379'], 'P 4w': 0.237, 'P de': 0.12, 'circuity_avg': 1.064, 'country': 'US-FL', 'k_avg': 2.914, 'median_segment_length': 100.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Orlando,+Orange+County,+Florida,+United+States'], 'orient_order': 0.481, 'osm_id': [1128379], 'pop_GHSL2023': 304166.8284669285, 'query': 'Orlando, Orange County, Florida, United States', 'region': 'NAM', 'Η o': 2.969, 'Η w': 2.929}, 'Osaka': {'OSM relation': ['https://www.openstreetmap.org/relation/358674'], 'P 4w': 0.292, 'P de': 0.069, 'circuity_avg': 1.025, 'country': 'JP', 'k_avg': 3.155, 'median_segment_length': 51.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Osaka,+Osaka+Prefecture,+Japan'], 'orient_order': 0.243, 'osm_id': [358674], 'pop_GHSL2023': 2388944.7906184644, 'query': 'Osaka, Osaka Prefecture, Japan', 'region': 'A&O', 'Η o': 3.298, 'Η w': 3.306}, 'Oslo': {'OSM relation': ['https://www.openstreetmap.org/relation/406091'], 'P 4w': 0.113, 'P de': 0.197, 'circuity_avg': 1.095, 'country': 'NO', 'k_avg': 2.711, 'median_segment_length': 78.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Oslo,+Norway'], 'orient_order': 0.008, 'osm_id': [406091], 'pop_GHSL2023': 708820.38776549, 'query': 'Oslo, Norway', 'region': 'EU', 'Η o': 3.574, 'Η w': 3.564}, 'Paris': {'OSM relation': ['https://www.openstreetmap.org/relation/7444'], 'P 4w': 0.24, 'P de': 0.05, 'circuity_avg': 1.023, 'country': 'FR', 'k_avg': 3.11, 'median_segment_length': 71.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Paris,+Ile-de-France,+Metropolitan+France,+France'], 'orient_order': 0.016, 'osm_id': [7444], 'pop_GHSL2023': 2322862.0913982387, 'query': 'Paris, Ile-de-France, Metropolitan France, France', 'region': 'EU', 'Η o': 3.566, 'Η w': 3.568}, 'Philadelphia': {'OSM relation': ['https://www.openstreetmap.org/relation/188022'], 'P 4w': 0.398, 'P de': 0.047, 'circuity_avg': 1.03, 'country': 'US-PA', 'k_avg': 3.315, 'median_segment_length': 83.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Philadelphia,+Philadelphia+County,+Pennsylvania,+United+States'], 'orient_order': 0.312, 'osm_id': [188022], 'pop_GHSL2023': 1501334.2557670078, 'query': 'Philadelphia, Philadelphia County, Pennsylvania, United States', 'region': 'NAM', 'Η o': 3.209, 'Η w': 3.267}, 'Phnom Penh': {'OSM relation': ['https://www.openstreetmap.org/relation/2199033'], 'P 4w': 0.188, 'P de': 0.205, 'circuity_avg': 1.04, 'country': 'KH', 'k_avg': 2.784, 'median_segment_length': 81.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=KH-12,+Cambodia'], 'orient_order': 0.324, 'osm_id': [2199033], 'pop_GHSL2023': 2369492.133270343, 'query': 'KH-12, Cambodia', 'region': 'A&O', 'Η o': 3.193, 'Η w': 3.235}, 'Phoenix': {'OSM relation': ['https://www.openstreetmap.org/relation/111257'], 'P 4w': 0.171, 'P de': 0.186, 'circuity_avg': 1.073, 'country': 'US-AZ', 'k_avg': 2.795, 'median_segment_length': 97.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Phoenix,+Maricopa+County,+Arizona,+United+States'], 'orient_order': 0.586, 'osm_id': [111257], 'pop_GHSL2023': 1872464.6450785124, 'query': 'Phoenix, Maricopa County, Arizona, United States', 'region': 'NAM', 'Η o': 2.801, 'Η w': 2.563}, 'Pittsburgh': {'OSM relation': ['https://www.openstreetmap.org/relation/188553', 'https://www.openstreetmap.org/relation/188551', 'https://www.openstreetmap.org/relation/187458', 'https://www.openstreetmap.org/relation/187434', 'https://www.openstreetmap.org/relation/187435'], 'P 4w': 0.231, 'P de': 0.173, 'circuity_avg': 1.054, 'country': 'US-PA', 'k_avg': 2.854, 'median_segment_length': 94.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Pittsburgh,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Mount+Oliver,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Green+Tree,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Crafton,+Allegheny+County,+Pennsylvania,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Ingram,+Allegheny+County,+Pennsylvania,+United+States'], 'orient_order': 0.018, 'osm_id': [188553, 188551, 187458, 187434, 187435], 'pop_GHSL2023': 309714.70544934267, 'query': ['Pittsburgh, Allegheny County, Pennsylvania, United States', 'Mount Oliver, Allegheny County, Pennsylvania, United States', 'Green Tree, Allegheny County, Pennsylvania, United States', 'Crafton, Allegheny County, Pennsylvania, United States', 'Ingram, Allegheny County, Pennsylvania, United States'], 'region': 'NAM', 'Η o': 3.564, 'Η w': 3.565}, 'Port au Prince': {'OSM relation': ['https://www.openstreetmap.org/relation/387318'], 'P 4w': 0.087, 'P de': 0.295, 'circuity_avg': 1.088, 'country': 'HT', 'k_avg': 2.495, 'median_segment_length': 55.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Port-au-Prince,+West,+Haiti'], 'orient_order': 0.028, 'osm_id': [387318], 'pop_GHSL2023': 1481683.71467255, 'query': 'Port-au-Prince, West, Haiti', 'region': 'LatAm', 'Η o': 3.552, 'Η w': 3.554}, 'Portland': {'OSM relation': ['https://www.openstreetmap.org/relation/186579', 'https://www.openstreetmap.org/relation/186714'], 'P 4w': 0.327, 'P de': 0.146, 'circuity_avg': 1.041, 'country': 'US-OR', 'k_avg': 3.032, 'median_segment_length': 82.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Portland,+Multnomah+County,+Oregon,+United+States', 'https://nominatim.openstreetmap.org/ui/search.html?q=Maywood+Park,+Multnomah+County,+Oregon,+United+States'], 'orient_order': 0.679, 'osm_id': [186579, 186714], 'pop_GHSL2023': 685184.3103695348, 'query': ['Portland, Multnomah County, Oregon, United States', 'Maywood Park, Multnomah County, Oregon, United States'], 'region': 'NAM', 'Η o': 2.632, 'Η w': 2.68}, 'Prague': {'OSM relation': ['https://www.openstreetmap.org/relation/435514'], 'P 4w': 0.171, 'P de': 0.177, 'circuity_avg': 1.065, 'country': 'CZ', 'k_avg': 2.807, 'median_segment_length': 84.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Prague,+Czechia'], 'orient_order': 0.049, 'osm_id': [435514], 'pop_GHSL2023': 1327193.6264477668, 'query': 'Prague, Czechia', 'region': 'EU', 'Η o': 3.529, 'Η w': 3.513}, 'Pyongyang': {'OSM relation': ['https://www.openstreetmap.org/relation/356443'], 'P 4w': 0.12, 'P de': 0.294, 'circuity_avg': 1.097, 'country': 'KP', 'k_avg': 2.524, 'median_segment_length': 132.4, 'nominatim link': ["https://nominatim.openstreetmap.org/ui/search.html?q=P'yŏngyang,+North+Korea"], 'orient_order': 0.024, 'osm_id': [356443], 'pop_GHSL2023': 3480278.592318181, 'query': "P'yŏngyang, North Korea", 'region': 'A&O', 'Η o': 3.557, 'Η w': 3.568}, 'Reykjavik': {'OSM relation': ['https://www.openstreetmap.org/relation/2580605'], 'P 4w': 0.117, 'P de': 0.283, 'circuity_avg': 1.071, 'country': 'IS', 'k_avg': 2.54, 'median_segment_length': 63.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Reykjavik,+Capital+Region,+Iceland'], 'orient_order': 0.056, 'osm_id': [2580605], 'pop_GHSL2023': 104272.41692510885, 'query': 'Reykjavik, Capital Region, Iceland', 'region': 'EU', 'Η o': 3.522, 'Η w': 3.529}, 'Rio de Janeiro': {'OSM relation': ['https://www.openstreetmap.org/relation/2697338'], 'P 4w': 0.147, 'P de': 0.172, 'circuity_avg': 1.055, 'country': 'BR', 'k_avg': 2.804, 'median_segment_length': 74.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Rio+de+Janeiro,+Southeast+Region,+Brazil'], 'orient_order': 0.014, 'osm_id': [2697338], 'pop_GHSL2023': 6768933.523283653, 'query': 'Rio de Janeiro, Southeast Region, Brazil', 'region': 'LatAm', 'Η o': 3.568, 'Η w': 3.566}, 'Rome': {'OSM relation': ['https://www.openstreetmap.org/relation/41485'], 'P 4w': 0.145, 'P de': 0.161, 'circuity_avg': 1.07, 'country': 'IT', 'k_avg': 2.82, 'median_segment_length': 73.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Rome,+Roma+Capitale,+Lazio,+Italy'], 'orient_order': 0.005, 'osm_id': [41485], 'pop_GHSL2023': 2706949.850030726, 'query': 'Rome, Roma Capitale, Lazio, Italy', 'region': 'EU', 'Η o': 3.578, 'Η w': 3.578}, 'San Francisco': {'OSM relation': ['https://www.openstreetmap.org/relation/111968'], 'P 4w': 0.454, 'P de': 0.087, 'circuity_avg': 1.033, 'country': 'US-CA', 'k_avg': 3.304, 'median_segment_length': 94.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=San+Francisco,+California,+United+States'], 'orient_order': 0.278, 'osm_id': [111968], 'pop_GHSL2023': 823489.8565498033, 'query': 'San Francisco, California, United States', 'region': 'NAM', 'Η o': 3.253, 'Η w': 3.226}, 'Sao Paulo': {'OSM relation': ['https://www.openstreetmap.org/relation/298285'], 'P 4w': 0.176, 'P de': 0.12, 'circuity_avg': 1.05, 'country': 'BR', 'k_avg': 2.936, 'median_segment_length': 76.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=São+Paulo,+Southeast+Region,+Brazil'], 'orient_order': 0.002, 'osm_id': [298285], 'pop_GHSL2023': 11858950.620425723, 'query': 'São Paulo, Southeast Region, Brazil', 'region': 'LatAm', 'Η o': 3.581, 'Η w': 3.58}, 'Sarajevo': {'OSM relation': ['https://www.openstreetmap.org/relation/15445108'], 'P 4w': 0.078, 'P de': 0.27, 'circuity_avg': 1.133, 'country': 'BA', 'k_avg': 2.522, 'median_segment_length': 94.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Sarajevo,+Sarajevo+Canton,+Bosnia+and+Herzegovina'], 'orient_order': 0.039, 'osm_id': [15445108], 'pop_GHSL2023': 196713.784235157, 'query': 'Sarajevo, Sarajevo Canton, Bosnia and Herzegovina', 'region': 'EU', 'Η o': 3.54, 'Η w': 3.558}, 'Seattle': {'OSM relation': ['https://www.openstreetmap.org/relation/237385'], 'P 4w': 0.369, 'P de': 0.136, 'circuity_avg': 1.028, 'country': 'US-WA', 'k_avg': 3.107, 'median_segment_length': 97.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Seattle,+King+County,+Washington,+United+States'], 'orient_order': 0.723, 'osm_id': [237385], 'pop_GHSL2023': 710391.1301186976, 'query': 'Seattle, King County, Washington, United States', 'region': 'NAM', 'Η o': 2.542, 'Η w': 2.474}, 'Seoul': {'OSM relation': ['https://www.openstreetmap.org/relation/2297418'], 'P 4w': 0.205, 'P de': 0.101, 'circuity_avg': 1.048, 'country': 'KR', 'k_avg': 3.011, 'median_segment_length': 53.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Seoul,+South+Korea'], 'orient_order': 0.009, 'osm_id': [2297418], 'pop_GHSL2023': 9645141.225111853, 'query': 'Seoul, South Korea', 'region': 'A&O', 'Η o': 3.573, 'Η w': 3.573}, 'Shanghai': {'OSM relation': ['https://www.openstreetmap.org/relation/913067'], 'P 4w': 0.317, 'P de': 0.156, 'circuity_avg': 1.04, 'country': 'CN', 'k_avg': 3.017, 'median_segment_length': 233.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Shanghai,+China'], 'orient_order': 0.121, 'osm_id': [913067], 'pop_GHSL2023': 33924003.60635262, 'query': 'Shanghai, China', 'region': 'A&O', 'Η o': 3.447, 'Η w': 3.433}, 'Singapore': {'OSM relation': ['https://www.openstreetmap.org/relation/536780'], 'P 4w': 0.215, 'P de': 0.11, 'circuity_avg': 1.077, 'country': 'SG', 'k_avg': 2.994, 'median_segment_length': 64.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Singapore'], 'orient_order': 0.005, 'osm_id': [536780], 'pop_GHSL2023': 5959450.356524699, 'query': 'Singapore', 'region': 'A&O', 'Η o': 3.578, 'Η w': 3.57}, 'St Louis': {'OSM relation': ['https://www.openstreetmap.org/relation/1180533'], 'P 4w': 0.374, 'P de': 0.098, 'circuity_avg': 1.023, 'country': 'US-MO', 'k_avg': 3.165, 'median_segment_length': 107.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=St.+Louis,+Missouri,+United+States'], 'orient_order': 0.276, 'osm_id': [1180533], 'pop_GHSL2023': 312467.4185018753, 'query': 'St. Louis, Missouri, United States', 'region': 'NAM', 'Η o': 3.256, 'Η w': 3.225}, 'Stockholm': {'OSM relation': ['https://www.openstreetmap.org/relation/398021'], 'P 4w': 0.141, 'P de': 0.222, 'circuity_avg': 1.091, 'country': 'SE', 'k_avg': 2.681, 'median_segment_length': 82.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Stockholms+kommun,+Stockholm+County,+Sweden'], 'orient_order': 0.006, 'osm_id': [398021], 'pop_GHSL2023': 1022888.4359776971, 'query': 'Stockholms kommun, Stockholm County, Sweden', 'region': 'EU', 'Η o': 3.577, 'Η w': 3.568}, 'Sydney': {'OSM relation': ['https://www.openstreetmap.org/relation/5750005'], 'P 4w': 0.087, 'P de': 0.206, 'circuity_avg': 1.073, 'country': 'AU', 'k_avg': 2.674, 'median_segment_length': 93.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Sydney,+Council+of+the+City+of+Sydney,+New+South+Wales,+Australia'], 'orient_order': 0.092, 'osm_id': [5750005], 'pop_GHSL2023': 5100197.878210587, 'query': 'Sydney, Council of the City of Sydney, New South Wales, Australia', 'region': 'A&O', 'Η o': 3.48, 'Η w': 3.431}, 'Taipei': {'OSM relation': ['https://www.openstreetmap.org/relation/1293250'], 'P 4w': 0.305, 'P de': 0.11, 'circuity_avg': 1.068, 'country': 'TW', 'k_avg': 3.096, 'median_segment_length': 73.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Taipei,+Taiwan'], 'orient_order': 0.158, 'osm_id': [1293250], 'pop_GHSL2023': 2542878.0502161, 'query': 'Taipei, Taiwan', 'region': 'A&O', 'Η o': 3.402, 'Η w': 3.428}, 'Tehran': {'OSM relation': ['https://www.openstreetmap.org/relation/6663864'], 'P 4w': 0.134, 'P de': 0.24, 'circuity_avg': 1.045, 'country': 'IR', 'k_avg': 2.652, 'median_segment_length': 52.0, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Tehran,+Tehran+Province,+Iran'], 'orient_order': 0.137, 'osm_id': [6663864], 'pop_GHSL2023': 7294182.58308172, 'query': 'Tehran, Tehran Province, Iran', 'region': 'MEA', 'Η o': 3.427, 'Η w': 3.405}, 'Tokyo': {'OSM relation': ['https://www.openstreetmap.org/relation/1543125'], 'P 4w': 0.186, 'P de': 0.119, 'circuity_avg': 1.046, 'country': 'JP', 'k_avg': 2.95, 'median_segment_length': 49.6, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=JP-13,+Japan'], 'orient_order': 0.05, 'osm_id': [1543125], 'pop_GHSL2023': 13453095.368577162, 'query': 'JP-13, Japan', 'region': 'A&O', 'Η o': 3.528, 'Η w': 3.529}, 'Toronto': {'OSM relation': ['https://www.openstreetmap.org/relation/324211'], 'P 4w': 0.217, 'P de': 0.109, 'circuity_avg': 1.09, 'country': 'CA-ON', 'k_avg': 2.994, 'median_segment_length': 103.1, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=City+of+Toronto,+Golden+Horseshoe,+Ontario,+Canada'], 'orient_order': 0.474, 'osm_id': [324211], 'pop_GHSL2023': 2860231.37706411, 'query': 'City of Toronto, Golden Horseshoe, Ontario, Canada', 'region': 'NAM', 'Η o': 2.98, 'Η w': 2.885}, 'Ulaanbaatar': {'OSM relation': ['https://www.openstreetmap.org/relation/270090'], 'P 4w': 0.061, 'P de': 0.283, 'circuity_avg': 1.065, 'country': 'MN', 'k_avg': 2.486, 'median_segment_length': 88.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ulaanbaatar,+Mongolia'], 'orient_order': 0.058, 'osm_id': [270090], 'pop_GHSL2023': 1876392.4283411014, 'query': 'Ulaanbaatar, Mongolia', 'region': 'A&O', 'Η o': 3.519, 'Η w': 3.463}, 'Vancouver': {'OSM relation': ['https://www.openstreetmap.org/relation/1852574'], 'P 4w': 0.455, 'P de': 0.073, 'circuity_avg': 1.022, 'country': 'CA-BC', 'k_avg': 3.308, 'median_segment_length': 103.7, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Vancouver,+British+Columbia,+Canada'], 'orient_order': 0.749, 'osm_id': [1852574], 'pop_GHSL2023': 693480.7865019785, 'query': 'Vancouver, British Columbia, Canada', 'region': 'NAM', 'Η o': 2.488, 'Η w': 2.413}, 'Venice (Mestre)': {'OSM relation': ['https://www.openstreetmap.org/relation/44741'], 'P 4w': 0.073, 'P de': 0.3, 'circuity_avg': 1.09, 'country': 'IT', 'k_avg': 2.474, 'median_segment_length': 23.2, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Venice,+Venezia,+Veneto,+Italy'], 'orient_order': 0.017, 'osm_id': [44741], 'pop_GHSL2023': 256643.2521157807, 'query': 'Venice, Venezia, Veneto, Italy', 'region': 'EU', 'Η o': 3.564, 'Η w': 3.553}, 'Vienna': {'OSM relation': ['https://www.openstreetmap.org/relation/109166'], 'P 4w': 0.244, 'P de': 0.122, 'circuity_avg': 1.043, 'country': 'AT', 'k_avg': 2.985, 'median_segment_length': 90.4, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Vienna,+Austria'], 'orient_order': 0.05, 'osm_id': [109166], 'pop_GHSL2023': 1932893.754314165, 'query': 'Vienna, Austria', 'region': 'EU', 'Η o': 3.528, 'Η w': 3.515}, 'Warsaw': {'OSM relation': ['https://www.openstreetmap.org/relation/336075'], 'P 4w': 0.16, 'P de': 0.204, 'circuity_avg': 1.043, 'country': 'PL', 'k_avg': 2.717, 'median_segment_length': 90.9, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Warsaw,+Masovian+Voivodeship,+Poland'], 'orient_order': 0.036, 'osm_id': [336075], 'pop_GHSL2023': 1849553.232625499, 'query': 'Warsaw, Masovian Voivodeship, Poland', 'region': 'EU', 'Η o': 3.544, 'Η w': 3.532}, 'Washington': {'OSM relation': ['https://www.openstreetmap.org/relation/5396194'], 'P 4w': 0.37, 'P de': 0.065, 'circuity_avg': 1.038, 'country': 'US-DC', 'k_avg': 3.252, 'median_segment_length': 99.5, 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Washington,+District+of+Columbia,+United+States'], 'orient_order': 0.377, 'osm_id': [5396194], 'pop_GHSL2023': 701524.8640937685, 'query': 'Washington, District of Columbia, United States', 'region': 'NAM', 'Η o': 3.121, 'Η w': 3.113}}, 'description': '100 representative cities from Boeing (2019)'}, 'germany_by_pop': {'cities': {'Aachen': {'OSM relation': ['https://www.openstreetmap.org/relation/62564'], 'country': 'DE', 'location': '50°47′N 6°5′E / 50.783°N 6.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Aachen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62564], 'pop_GHSL2023': 243387.76502981776, 'population': 249070, 'query': 'Aachen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Augsburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62407'], 'country': 'DE', 'location': '48°22′N 10°54′E / 48.367°N 10.900°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Augsburg,+Bavaria,+Germany'], 'osm_id': [62407], 'pop_GHSL2023': 284132.46682134515, 'population': 296478, 'query': 'Augsburg, Bavaria, Germany', 'state': 'Bavaria'}, 'Bergisch Gladbach': {'OSM relation': ['https://www.openstreetmap.org/relation/173103'], 'country': 'DE', 'location': '51°6′N 7°7′E / 51.100°N 7.117°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bergisch+Gladbach,+North+Rhine-Westphalia,+Germany'], 'osm_id': [173103], 'pop_GHSL2023': 116460.2804894326, 'population': 111645, 'query': 'Bergisch Gladbach, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Berlin': {'OSM relation': ['https://www.openstreetmap.org/relation/62422'], 'country': 'DE', 'location': '52°31′N 13°23′E / 52.517°N 13.383°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Berlin,+Germany'], 'osm_id': [62422], 'pop_GHSL2023': 3524738.8939121147, 'population': 3677472, 'query': 'Berlin, Germany', 'state': 'Berlin'}, 'Bielefeld': {'OSM relation': ['https://www.openstreetmap.org/relation/62646'], 'country': 'DE', 'location': '52°1′N 8°32′E / 52.017°N 8.533°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bielefeld,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62646], 'pop_GHSL2023': 333409.8926514386, 'population': 334002, 'query': 'Bielefeld, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Bochum': {'OSM relation': ['https://www.openstreetmap.org/relation/62644'], 'country': 'DE', 'location': '51°29′N 7°13′E / 51.483°N 7.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bochum,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62644], 'pop_GHSL2023': 357434.85097885126, 'population': 363441, 'query': 'Bochum, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Bonn': {'OSM relation': ['https://www.openstreetmap.org/relation/62508'], 'country': 'DE', 'location': '50°44′N 7°6′E / 50.733°N 7.100°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bonn,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62508], 'pop_GHSL2023': 298244.66710514383, 'population': 331885, 'query': 'Bonn, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Bottrop': {'OSM relation': ['https://www.openstreetmap.org/relation/62634'], 'country': 'DE', 'location': '51°31′29″N 6°55′22″E / 51.52472°N 6.92278°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bottrop,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62634], 'pop_GHSL2023': 120419.19062280792, 'population': 117311, 'query': 'Bottrop, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Braunschweig': {'OSM relation': ['https://www.openstreetmap.org/relation/62531'], 'country': 'DE', 'location': '52°16′N 10°31′E / 52.267°N 10.517°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Braunschweig,+Lower+Saxony,+Germany'], 'osm_id': [62531], 'pop_GHSL2023': 231285.2623034268, 'population': 248823, 'query': 'Braunschweig, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Bremen': {'OSM relation': ['https://www.openstreetmap.org/relation/62559'], 'country': 'DE', 'location': '53°5′N 8°48′E / 53.083°N 8.800°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bremen,+City+of+Bremen,+Germany'], 'osm_id': [62559], 'pop_GHSL2023': 569530.6147225898, 'population': 563290, 'query': 'Bremen, City of Bremen, Germany', 'state': 'Bremen'}, 'Bremerhaven': {'OSM relation': ['https://www.openstreetmap.org/relation/62658'], 'country': 'DE', 'location': '53°33′N 8°35′E / 53.550°N 8.583°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Bremerhaven,+Bremen,+Germany'], 'osm_id': [62658], 'pop_GHSL2023': 113689.3916842702, 'population': 113173, 'query': 'Bremerhaven, Bremen, Germany', 'state': 'Bremen'}, 'Chemnitz': {'OSM relation': ['https://www.openstreetmap.org/relation/62594'], 'country': 'DE', 'location': '50°50′N 12°55′E / 50.833°N 12.917°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Chemnitz,+Saxony,+Germany'], 'osm_id': [62594], 'pop_GHSL2023': 281487.2192971407, 'population': 243105, 'query': 'Chemnitz, Saxony, Germany', 'state': 'Saxony'}, 'Cologne (Köln)': {'OSM relation': ['https://www.openstreetmap.org/relation/62578'], 'country': 'DE', 'location': '50°56′N 6°57′E / 50.933°N 6.950°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Cologne,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62578], 'pop_GHSL2023': 1171662.0742877943, 'population': 1073096, 'query': 'Cologne, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Darmstadt': {'OSM relation': ['https://www.openstreetmap.org/relation/62581'], 'country': 'DE', 'location': '49°52′N 8°39′E / 49.867°N 8.650°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Darmstadt,+Hesse,+Germany'], 'osm_id': [62581], 'pop_GHSL2023': 143254.62058037517, 'population': 159631, 'query': 'Darmstadt, Hesse, Germany', 'state': 'Hesse'}, 'Dortmund': {'OSM relation': ['https://www.openstreetmap.org/relation/1829065'], 'country': 'DE', 'location': '51°31′N 7°28′E / 51.517°N 7.467°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dortmund,+North+Rhine-Westphalia,+Germany'], 'osm_id': [1829065], 'pop_GHSL2023': 597406.1646491288, 'population': 586852, 'query': 'Dortmund, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Dresden': {'OSM relation': ['https://www.openstreetmap.org/relation/191645'], 'country': 'DE', 'location': '51°2′N 13°44′E / 51.033°N 13.733°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dresden,+Saxony,+Germany'], 'osm_id': [191645], 'pop_GHSL2023': 604470.7496758811, 'population': 555351, 'query': 'Dresden, Saxony, Germany', 'state': 'Saxony'}, 'Duisburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62456'], 'country': 'DE', 'location': '51°26′N 6°46′E / 51.433°N 6.767°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Duisburg,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62456], 'pop_GHSL2023': 541060.8880877494, 'population': 495152, 'query': 'Duisburg, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Düsseldorf': {'OSM relation': ['https://www.openstreetmap.org/relation/62539'], 'country': 'DE', 'location': '51°14′N 6°47′E / 51.233°N 6.783°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Dusseldorf,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62539], 'pop_GHSL2023': 629943.5862600802, 'population': 619477, 'query': 'Dusseldorf, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Erfurt': {'OSM relation': ['https://www.openstreetmap.org/relation/62745'], 'country': 'DE', 'location': '50°59′N 11°2′E / 50.983°N 11.033°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Erfurt,+Thuringia,+Germany'], 'osm_id': [62745], 'pop_GHSL2023': 229810.96490019985, 'population': 213227, 'query': 'Erfurt, Thuringia, Germany', 'state': 'Thuringia'}, 'Erlangen': {'OSM relation': ['https://www.openstreetmap.org/relation/62403'], 'country': 'DE', 'location': '49°35′N 11°1′E / 49.583°N 11.017°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Erlangen,+Bavaria,+Germany'], 'osm_id': [62403], 'pop_GHSL2023': 126349.33028798547, 'population': 113292, 'query': 'Erlangen, Bavaria, Germany', 'state': 'Bavaria'}, 'Essen': {'OSM relation': ['https://www.openstreetmap.org/relation/62713'], 'country': 'DE', 'location': '51°27′N 7°1′E / 51.450°N 7.017°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Essen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62713], 'pop_GHSL2023': 566901.7672717569, 'population': 579432, 'query': 'Essen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Frankfurt am Main': {'OSM relation': ['https://www.openstreetmap.org/relation/62400'], 'country': 'DE', 'location': '50°7′N 8°41′E / 50.117°N 8.683°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Frankfurt,+Hesse,+Germany'], 'osm_id': [62400], 'pop_GHSL2023': 821447.1059717236, 'population': 759224, 'query': 'Frankfurt, Hesse, Germany', 'state': 'Hesse'}, 'Freiburg im Breisgau': {'OSM relation': ['https://www.openstreetmap.org/relation/62768'], 'country': 'DE', 'location': '47°59′N 7°51′E / 47.983°N 7.850°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Freiburg+im+Breisgau,+Baden-Württemberg,+Germany'], 'osm_id': [62768], 'pop_GHSL2023': 252070.2626246958, 'population': 231848, 'query': 'Freiburg im Breisgau, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Fürth': {'OSM relation': ['https://www.openstreetmap.org/relation/62374'], 'country': 'DE', 'location': '49°28′N 11°0′E / 49.467°N 11.000°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Fürth,+Bavaria,+Germany'], 'osm_id': [62374], 'pop_GHSL2023': 147272.84554243082, 'population': 129122, 'query': 'Fürth, Bavaria, Germany', 'state': 'Bavaria'}, 'Gelsenkirchen': {'OSM relation': ['https://www.openstreetmap.org/relation/62522'], 'country': 'DE', 'location': '51°31′N 7°6′E / 51.517°N 7.100°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Gelsenkirchen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62522], 'pop_GHSL2023': 268021.2257325648, 'population': 260126, 'query': 'Gelsenkirchen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Göttingen': {'OSM relation': ['https://www.openstreetmap.org/relation/191361'], 'country': 'DE', 'location': '51°32′N 9°56′E / 51.533°N 9.933°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Göttingen,+Lower+Saxony,+Germany'], 'osm_id': [191361], 'pop_GHSL2023': 124678.53125402467, 'population': 116557, 'query': 'Göttingen, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Gütersloh': {'OSM relation': ['https://www.openstreetmap.org/relation/138119'], 'country': 'DE', 'location': '51°54′N 8°23′E / 51.900°N 8.383°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Gütersloh,+North+Rhine-Westphalia,+Germany'], 'osm_id': [138119], 'pop_GHSL2023': 89440.50304740664, 'population': 101158, 'query': 'Gütersloh, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Hagen': {'OSM relation': ['https://www.openstreetmap.org/relation/1800297'], 'country': 'DE', 'location': '51°22′N 7°29′E / 51.367°N 7.483°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hagen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [1800297], 'pop_GHSL2023': 192985.87121069425, 'population': 188713, 'query': 'Hagen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Halle (Saale)': {'OSM relation': ['https://www.openstreetmap.org/relation/62638'], 'country': 'DE', 'location': '51°29′N 11°58′E / 51.483°N 11.967°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Halle+(Saale),+Saxony-Anhalt,+Germany'], 'osm_id': [62638], 'pop_GHSL2023': 226774.07903894776, 'population': 238061, 'query': 'Halle (Saale), Saxony-Anhalt, Germany', 'state': 'Saxony-Anhalt'}, 'Hamburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62782'], 'country': 'DE', 'location': '53°33′N 10°0′E / 53.550°N 10.000°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hamburg,+Germany'], 'osm_id': [62782], 'pop_GHSL2023': 1761088.7599678198, 'population': 1906411, 'query': 'Hamburg, Germany', 'state': 'Hamburg'}, 'Hamm': {'OSM relation': ['https://www.openstreetmap.org/relation/62499'], 'country': 'DE', 'location': '51°41′N 7°49′E / 51.683°N 7.817°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hamm,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62499], 'pop_GHSL2023': 171828.1519785523, 'population': 179238, 'query': 'Hamm, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Hanover (Hannover)': {'OSM relation': ['https://www.openstreetmap.org/relation/59418'], 'country': 'DE', 'location': '52°22′N 9°43′E / 52.367°N 9.717°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hanover,+Lower+Saxony,+Germany'], 'osm_id': [59418], 'pop_GHSL2023': 536017.4882024525, 'population': 535932, 'query': 'Hanover, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Heidelberg': {'OSM relation': ['https://www.openstreetmap.org/relation/285864'], 'country': 'DE', 'location': '49°25′N 8°43′E / 49.417°N 8.717°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Heidelberg,+Baden-Württemberg,+Germany'], 'osm_id': [285864], 'pop_GHSL2023': 154854.53628560057, 'population': 159245, 'query': 'Heidelberg, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Heilbronn': {'OSM relation': ['https://www.openstreetmap.org/relation/62751'], 'country': 'DE', 'location': '49°9′N 9°13′E / 49.150°N 9.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Heilbronn,+Baden-Württemberg,+Germany'], 'osm_id': [62751], 'pop_GHSL2023': 116836.40956012529, 'population': 125613, 'query': 'Heilbronn, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Herne': {'OSM relation': ['https://www.openstreetmap.org/relation/62396'], 'country': 'DE', 'location': '51°33′N 7°13′E / 51.550°N 7.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Herne,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62396], 'pop_GHSL2023': 164314.78438377377, 'population': 156621, 'query': 'Herne, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Hildesheim': {'OSM relation': ['https://www.openstreetmap.org/relation/1176503'], 'country': 'DE', 'location': '52°9′N 9°57′E / 52.150°N 9.950°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Hildesheim,+Lower+Saxony,+Germany'], 'osm_id': [1176503], 'pop_GHSL2023': 108481.75792009567, 'population': 100319, 'query': 'Hildesheim, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Ingolstadt': {'OSM relation': ['https://www.openstreetmap.org/relation/62381'], 'country': 'DE', 'location': '48°46′N 11°26′E / 48.767°N 11.433°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ingolstadt,+Bavaria,+Germany'], 'osm_id': [62381], 'pop_GHSL2023': 124418.21458852934, 'population': 138016, 'query': 'Ingolstadt, Bavaria, Germany', 'state': 'Bavaria'}, 'Jena': {'OSM relation': ['https://www.openstreetmap.org/relation/62693'], 'country': 'DE', 'location': '50°55′38″N 11°35′10″E / 50.92722°N 11.58611°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Jena,+Thuringia,+Germany'], 'osm_id': [62693], 'pop_GHSL2023': 96349.92435650199, 'population': 110502, 'query': 'Jena, Thuringia, Germany', 'state': 'Thuringia'}, 'Karlsruhe': {'OSM relation': ['https://www.openstreetmap.org/relation/62518'], 'country': 'DE', 'location': '49°0′N 8°24′E / 49.000°N 8.400°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Karlsruhe,+Baden-Württemberg,+Germany'], 'osm_id': [62518], 'pop_GHSL2023': 321957.63255011983, 'population': 306502, 'query': 'Karlsruhe, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Kassel': {'OSM relation': ['https://www.openstreetmap.org/relation/62598'], 'country': 'DE', 'location': '51°19′N 9°30′E / 51.317°N 9.500°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kassel,+Hesse,+Germany'], 'osm_id': [62598], 'pop_GHSL2023': 195841.11059885466, 'population': 200406, 'query': 'Kassel, Hesse, Germany', 'state': 'Hesse'}, 'Kiel': {'OSM relation': ['https://www.openstreetmap.org/relation/27021'], 'country': 'DE', 'location': '54°20′N 10°8′E / 54.333°N 10.133°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Kiel,+Schleswig-Holstein,+Germany'], 'osm_id': [27021], 'pop_GHSL2023': 236948.35277050728, 'population': 246243, 'query': 'Kiel, Schleswig-Holstein, Germany', 'state': 'Schleswig-Holstein'}, 'Koblenz': {'OSM relation': ['https://www.openstreetmap.org/relation/62512'], 'country': 'DE', 'location': '50°21′35″N 7°35′52″E / 50.35972°N 7.59778°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Koblenz,+Rhineland-Palatinate,+Germany'], 'osm_id': [62512], 'pop_GHSL2023': 121517.91575462554, 'population': 113638, 'query': 'Koblenz, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Krefeld': {'OSM relation': ['https://www.openstreetmap.org/relation/62748'], 'country': 'DE', 'location': '51°20′N 6°34′E / 51.333°N 6.567°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Krefeld,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62748], 'pop_GHSL2023': 228622.10160866374, 'population': 227050, 'query': 'Krefeld, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Leipzig': {'OSM relation': ['https://www.openstreetmap.org/relation/62649'], 'country': 'DE', 'location': '51°20′N 12°23′E / 51.333°N 12.383°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Leipzig,+Saxony,+Germany'], 'osm_id': [62649], 'pop_GHSL2023': 587300.3685810135, 'population': 601866, 'query': 'Leipzig, Saxony, Germany', 'state': 'Saxony'}, 'Leverkusen': {'OSM relation': ['https://www.openstreetmap.org/relation/62449'], 'country': 'DE', 'location': '51°2′N 6°59′E / 51.033°N 6.983°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Leverkusen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62449], 'pop_GHSL2023': 151995.9388852119, 'population': 163851, 'query': 'Leverkusen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Ludwigshafen am Rhein': {'OSM relation': ['https://www.openstreetmap.org/relation/62347'], 'country': 'DE', 'location': '49°29′N 8°26′E / 49.483°N 8.433°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ludwigshafen+am+Rhein,+Rhineland-Palatinate,+Germany'], 'osm_id': [62347], 'pop_GHSL2023': 146645.6872336566, 'population': 172145, 'query': 'Ludwigshafen am Rhein, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Lübeck': {'OSM relation': ['https://www.openstreetmap.org/relation/27027'], 'country': 'DE', 'location': '53°52′N 10°41′E / 53.867°N 10.683°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Lübeck,+Schleswig-Holstein,+Germany'], 'osm_id': [27027], 'pop_GHSL2023': 214359.11554070184, 'population': 216277, 'query': 'Lübeck, Schleswig-Holstein, Germany', 'state': 'Schleswig-Holstein'}, 'Magdeburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62481'], 'country': 'DE', 'location': '52°8′N 11°37′E / 52.133°N 11.617°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Magdeburg,+Saxony-Anhalt,+Germany'], 'osm_id': [62481], 'pop_GHSL2023': 239762.95349462883, 'population': 236188, 'query': 'Magdeburg, Saxony-Anhalt, Germany', 'state': 'Saxony-Anhalt'}, 'Mainz': {'OSM relation': ['https://www.openstreetmap.org/relation/62630'], 'country': 'DE', 'location': '50°0′N 8°16′E / 50.000°N 8.267°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mainz,+Rhineland-Palatinate,+Germany'], 'osm_id': [62630], 'pop_GHSL2023': 192033.2704339176, 'population': 217556, 'query': 'Mainz, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Mannheim': {'OSM relation': ['https://www.openstreetmap.org/relation/62691'], 'country': 'DE', 'location': '49°29′N 8°28′E / 49.483°N 8.467°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mannheim,+Baden-Württemberg,+Germany'], 'osm_id': [62691], 'pop_GHSL2023': 331411.8676640092, 'population': 311831, 'query': 'Mannheim, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Moers': {'OSM relation': ['https://www.openstreetmap.org/relation/58623'], 'country': 'DE', 'location': '51°27′33″N 6°37′11″E / 51.45917°N 6.61972°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Moers,+North+Rhine-Westphalia,+Germany'], 'osm_id': [58623], 'pop_GHSL2023': 107912.45186328885, 'population': 103725, 'query': 'Moers, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Munich': {'OSM relation': ['https://www.openstreetmap.org/relation/62428'], 'country': 'DE', 'location': '48°8′N 11°34′E / 48.133°N 11.567°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Munich,+Bavaria,+Germany'], 'osm_id': [62428], 'pop_GHSL2023': 1552833.6185131217, 'population': 1487708, 'query': 'Munich, Bavaria, Germany', 'state': 'Bavaria'}, 'Mönchengladbach': {'OSM relation': ['https://www.openstreetmap.org/relation/62410'], 'country': 'DE', 'location': '51°12′N 6°26′E / 51.200°N 6.433°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mönchengladbach,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62410], 'pop_GHSL2023': 267545.6431359052, 'population': 261001, 'query': 'Mönchengladbach, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Mülheim an der Ruhr': {'OSM relation': ['https://www.openstreetmap.org/relation/62385'], 'country': 'DE', 'location': '51°26′N 6°53′E / 51.433°N 6.883°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Mülheim+an+der+Ruhr,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62385], 'pop_GHSL2023': 173668.34945082662, 'population': 170739, 'query': 'Mülheim an der Ruhr, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Münster': {'OSM relation': ['https://www.openstreetmap.org/relation/62591'], 'country': 'DE', 'location': '51°58′N 7°38′E / 51.967°N 7.633°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Münster,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62591], 'pop_GHSL2023': 341446.0807846858, 'population': 317713, 'query': 'Münster, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Neuss': {'OSM relation': ['https://www.openstreetmap.org/relation/163307'], 'country': 'DE', 'location': '51°12′N 6°42′E / 51.200°N 6.700°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Neuss,+North+Rhine-Westphalia,+Germany'], 'osm_id': [163307], 'pop_GHSL2023': 169732.4745044112, 'population': 152731, 'query': 'Neuss, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Nuremberg': {'OSM relation': ['https://www.openstreetmap.org/relation/62780'], 'country': 'DE', 'location': '49°27′N 11°5′E / 49.450°N 11.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Nuremberg,+Bavaria,+Germany'], 'osm_id': [62780], 'pop_GHSL2023': 499332.5104406102, 'population': 510632, 'query': 'Nuremberg, Bavaria, Germany', 'state': 'Bavaria'}, 'Oberhausen': {'OSM relation': ['https://www.openstreetmap.org/relation/62734'], 'country': 'DE', 'location': '51°28′N 6°51′E / 51.467°N 6.850°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Oberhausen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62734], 'pop_GHSL2023': 210994.3231761455, 'population': 208752, 'query': 'Oberhausen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Offenbach am Main': {'OSM relation': ['https://www.openstreetmap.org/relation/62695'], 'country': 'DE', 'location': '50°6′N 8°48′E / 50.100°N 8.800°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Offenbach+am+Main,+Hesse,+Germany'], 'osm_id': [62695], 'pop_GHSL2023': 109759.49343144891, 'population': 131295, 'query': 'Offenbach am Main, Hesse, Germany', 'state': 'Hesse'}, 'Oldenburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62409'], 'country': 'DE', 'location': '53°8′N 8°13′E / 53.133°N 8.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Oldenburg,+Lower+Saxony,+Germany'], 'osm_id': [62409], 'pop_GHSL2023': 149219.0436193719, 'population': 170389, 'query': 'Oldenburg, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Osnabrück': {'OSM relation': ['https://www.openstreetmap.org/relation/62631'], 'country': 'DE', 'location': '52°17′N 8°3′E / 52.283°N 8.050°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Osnabrück,+Lower+Saxony,+Germany'], 'osm_id': [62631], 'pop_GHSL2023': 148963.6332005262, 'population': 165034, 'query': 'Osnabrück, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Paderborn': {'OSM relation': ['https://www.openstreetmap.org/relation/5610766'], 'country': 'DE', 'location': '51°43′N 8°46′E / 51.717°N 8.767°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Paderborn,+North+Rhine-Westphalia,+Germany'], 'osm_id': [5610766], 'pop_GHSL2023': 93098.35931211707, 'population': 152531, 'query': 'Paderborn, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Pforzheim': {'OSM relation': ['https://www.openstreetmap.org/relation/62471'], 'country': 'DE', 'location': '48°54′N 8°43′E / 48.900°N 8.717°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Pforzheim,+Baden-Württemberg,+Germany'], 'osm_id': [62471], 'pop_GHSL2023': 114279.89176134576, 'population': 125529, 'query': 'Pforzheim, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Potsdam': {'OSM relation': ['https://www.openstreetmap.org/relation/62369'], 'country': 'DE', 'location': '52°24′N 13°4′E / 52.400°N 13.067°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Potsdam,+Brandenburg,+Germany'], 'osm_id': [62369], 'pop_GHSL2023': 197204.92013428442, 'population': 183154, 'query': 'Potsdam, Brandenburg, Germany', 'state': 'Brandenburg'}, 'Recklinghausen': {'OSM relation': ['https://www.openstreetmap.org/relation/56665'], 'country': 'DE', 'location': '51°35′6″N 7°9′43″E / 51.58500°N 7.16194°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Recklinghausen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [56665], 'pop_GHSL2023': 118133.97546708581, 'population': 110714, 'query': 'Recklinghausen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Regensburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62411'], 'country': 'DE', 'location': '49°1′N 12°5′E / 49.017°N 12.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Regensburg,+Bavaria,+Germany'], 'osm_id': [62411], 'pop_GHSL2023': 151635.27298718685, 'population': 153542, 'query': 'Regensburg, Bavaria, Germany', 'state': 'Bavaria'}, 'Remscheid': {'OSM relation': ['https://www.openstreetmap.org/relation/11799931'], 'country': 'DE', 'location': '51°11′N 7°12′E / 51.183°N 7.200°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Remscheid,+North+Rhine-Westphalia,+Germany'], 'osm_id': [11799931], 'pop_GHSL2023': 55548.23748469351, 'population': 111770, 'query': 'Remscheid, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Reutlingen': {'OSM relation': ['https://www.openstreetmap.org/relation/2772661'], 'country': 'DE', 'location': '48°29′N 9°13′E / 48.483°N 9.217°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Reutlingen,+Baden-Württemberg,+Germany'], 'osm_id': [2772661], 'pop_GHSL2023': 121992.67420992251, 'population': 116456, 'query': 'Reutlingen, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Rostock': {'OSM relation': ['https://www.openstreetmap.org/relation/62405'], 'country': 'DE', 'location': '54°5′N 12°8′E / 54.083°N 12.133°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Rostock,+Mecklenburg-Vorpommern,+Germany'], 'osm_id': [62405], 'pop_GHSL2023': 180835.00286210616, 'population': 208400, 'query': 'Rostock, Mecklenburg-Vorpommern, Germany', 'state': 'Mecklenburg-Vorpommern'}, 'Saarbrücken': {'OSM relation': ['https://www.openstreetmap.org/relation/1187159'], 'country': 'DE', 'location': '49°14′N 7°0′E / 49.233°N 7.000°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Saarbrücken,+Saarland,+Germany'], 'osm_id': [1187159], 'pop_GHSL2023': 185580.33219028142, 'population': 179634, 'query': 'Saarbrücken, Saarland, Germany', 'state': 'Saarland'}, 'Salzgitter': {'OSM relation': ['https://www.openstreetmap.org/relation/62659'], 'country': 'DE', 'location': '52°9′N 10°20′E / 52.150°N 10.333°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Salzgitter,+Lower+Saxony,+Germany'], 'osm_id': [62659], 'pop_GHSL2023': 95014.67304599934, 'population': 103694, 'query': 'Salzgitter, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Siegen': {'OSM relation': ['https://www.openstreetmap.org/relation/163256'], 'country': 'DE', 'location': '50°53′N 8°1′E / 50.883°N 8.017°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Siegen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [163256], 'pop_GHSL2023': 111237.85921204832, 'population': 101516, 'query': 'Siegen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Solingen': {'OSM relation': ['https://www.openstreetmap.org/relation/62699'], 'country': 'DE', 'location': '51°10′N 7°5′E / 51.167°N 7.083°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Solingen,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62699], 'pop_GHSL2023': 158327.46900320047, 'population': 158957, 'query': 'Solingen, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Stuttgart': {'OSM relation': ['https://www.openstreetmap.org/relation/2793104'], 'country': 'DE', 'location': '48°47′N 9°11′E / 48.783°N 9.183°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Stuttgart,+Baden-Württemberg,+Germany'], 'osm_id': [2793104], 'pop_GHSL2023': 608298.9549454299, 'population': 626275, 'query': 'Stuttgart, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Trier': {'OSM relation': ['https://www.openstreetmap.org/relation/172679'], 'country': 'DE', 'location': '49°45′N 6°38′E / 49.750°N 6.633°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Trier,+Rhineland-Palatinate,+Germany'], 'osm_id': [172679], 'pop_GHSL2023': 124173.42026184776, 'population': 110570, 'query': 'Trier, Rhineland-Palatinate, Germany', 'state': 'Rhineland-Palatinate'}, 'Ulm': {'OSM relation': ['https://www.openstreetmap.org/relation/62495'], 'country': 'DE', 'location': '48°24′N 9°59′E / 48.400°N 9.983°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Ulm,+Baden-Württemberg,+Germany'], 'osm_id': [62495], 'pop_GHSL2023': 117743.99580718306, 'population': 126949, 'query': 'Ulm, Baden-Württemberg, Germany', 'state': 'Baden-Württemberg'}, 'Wiesbaden': {'OSM relation': ['https://www.openstreetmap.org/relation/62496'], 'country': 'DE', 'location': '50°5′N 8°14′E / 50.083°N 8.233°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Wiesbaden,+Hesse,+Germany'], 'osm_id': [62496], 'pop_GHSL2023': 297597.62034389994, 'population': 278950, 'query': 'Wiesbaden, Hesse, Germany', 'state': 'Hesse'}, 'Wolfsburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62418'], 'country': 'DE', 'location': '52°25′23″N 10°47′14″E / 52.42306°N 10.78722°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Wolfsburg,+Lower+Saxony,+Germany'], 'osm_id': [62418], 'pop_GHSL2023': 114474.95202474817, 'population': 123949, 'query': 'Wolfsburg, Lower Saxony, Germany', 'state': 'Lower Saxony'}, 'Wuppertal': {'OSM relation': ['https://www.openstreetmap.org/relation/62478'], 'country': 'DE', 'location': '51°16′N 7°11′E / 51.267°N 7.183°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Wuppertal,+North+Rhine-Westphalia,+Germany'], 'osm_id': [62478], 'pop_GHSL2023': 349787.26579546917, 'population': 354572, 'query': 'Wuppertal, North Rhine-Westphalia, Germany', 'state': 'North Rhine-Westphalia'}, 'Würzburg': {'OSM relation': ['https://www.openstreetmap.org/relation/62464'], 'country': 'DE', 'location': '49°47′N 9°56′E / 49.783°N 9.933°E', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Würzburg,+Bavaria,+Germany'], 'osm_id': [62464], 'pop_GHSL2023': 128355.29968417247, 'population': 126933, 'query': 'Würzburg, Bavaria, Germany', 'state': 'Bavaria'}}, 'description': 'List of cities in Germany by population (Wikipedia)'}, 'test_general': {'cities': {'Barcelona': {'OSM relation': ['https://www.openstreetmap.org/relation/347950'], 'country': 'ES', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Barcelona,+Catalonia,+Spain'], 'osm_id': [347950], 'pop_GHSL2023': 1757832.6379999514, 'query': 'Barcelona, Catalonia, Spain', 'region': 'EU'}, 'Brooklyn': {'OSM relation': ['https://www.openstreetmap.org/relation/9691750'], 'country': 'US', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Brooklyn,+New+York,+United+States'], 'osm_id': [9691750], 'pop_GHSL2023': 2443446.936081211, 'query': 'Brooklyn, New York, United States', 'region': 'NAM'}, 'Copenhagen': {'OSM relation': ['https://www.openstreetmap.org/relation/2192363', 'https://www.openstreetmap.org/relation/2186660'], 'country': 'DK', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Københavns+Kommune,+Denmark', 'https://nominatim.openstreetmap.org/ui/search.html?q=Frederiksberg+Kommune,+Denmark'], 'osm_id': [2192363, 2186660], 'pop_GHSL2023': 764718.588683754, 'query': ['Københavns Kommune, Denmark', 'Frederiksberg Kommune, Denmark'], 'region': 'EU'}, 'Liechtenstein': {'OSM relation': ['https://www.openstreetmap.org/relation/1155955'], 'country': 'LI', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Liechtenstein,+Europe'], 'osm_id': [1155955], 'pop_GHSL2023': 37289.27578861111, 'query': 'Liechtenstein, Europe', 'region': 'EU'}, 'Resistencia': {'OSM relation': ['https://www.openstreetmap.org/relation/1572779'], 'country': 'AR', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Resistencia,+Chaco,+Argentina'], 'osm_id': [1572779], 'pop_GHSL2023': 328740.3926395578, 'query': 'Resistencia, Chaco, Argentina', 'region': 'LatAm'}}, 'description': 'Larger test cities'}, 'test_small': {'cities': {'Adliswil': {'OSM relation': ['https://www.openstreetmap.org/relation/1682077'], 'country': 'CH', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Adliswil,+Bezirk+Horgen,+Zürich,+Switzerland'], 'osm_id': [1682077], 'pop_GHSL2023': 13676.786494255062, 'query': 'Adliswil, Bezirk Horgen, Zürich, Switzerland', 'region': 'EU'}, 'MissionTown': {'OSM relation': ['https://www.openstreetmap.org/relation/14163964'], 'country': 'CN', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=团城山街道,+Xialu,+Hubei,+China'], 'osm_id': [14163964], 'pop_GHSL2023': 101881.07181787488, 'query': '团城山街道, Xialu, Hubei, China', 'region': 'A&O'}, 'Scheveningen': {'OSM relation': ['https://www.openstreetmap.org/relation/13751467'], 'country': 'NL', 'nominatim link': ['https://nominatim.openstreetmap.org/ui/search.html?q=Scheveningen,+The+Hague,+Netherlands'], 'osm_id': [13751467], 'pop_GHSL2023': 77554.43975925444, 'query': 'Scheveningen, The Hague, Netherlands', 'region': 'EU'}}, 'description': 'Small test cities'}}, 'regions': {'A&O': 'Asia & Oceania', 'EU': 'Europe', 'LatAm': 'Latin America', 'MEA': 'Middle East & Africa', 'NAM': 'North America'}}#
- yaml = <ruamel.yaml.main.YAML object>#
- superblockify.config.set_log_level(level: int | str) None [source]#
Set the logging level for the superblockify logger.
Also sets the logging level for the first handler of the root logger.
- Parameters:
- levelint | str
The logging level. See the
logging
module for more information.
- Raises:
- ValueError
If the level is not a valid logging level.
superblockify.graph_stats module#
Spatial graph order measures for the superblockify package.
- superblockify.graph_stats.basic_graph_stats(graph, area=None)[source]#
Calculate several basic graph stats.
This function calculates the stats from
osmnx.stats.basic_stats()
and adds the street count per node and the street orientation order (street_orientation_order()
).- Parameters:
- graphnetworkx.MultiDiGraph
The graph to calculate the stats of.
- areafloat or None
The area of the graph in square meters. This is used to calculate density measures.
- superblockify.graph_stats.calculate_component_metrics(components)[source]#
Calculate metrics for the components.
Calculates the metrics for the components and writes them to each component dictionary.
- Parameters:
- componentslist of dicts
List of dictionaries containing the components.
Notes
Works in-place on the components if they are defined, otherwise on the partitions.
- superblockify.graph_stats.street_orientation_order(graph, num_bins)[source]#
Calculate the street orientation order of a graph.
\[\phi=1-\left(\frac{H_o-H_g}{H_{\max}-H_g}\right)^2\]Where \(H_o\) is the orientation entropy of the graph, \(H_g\) is the minimal plausible entropy of a grid like city \(H_g \approx 1.386\), and \(H_{\max}\) is the maximal entropy of a city where the streets are uniformly distributed \(H_{\max} = \log(\text{num_bins=36}) \approx 3.584\). To make an order parameter of this from total disorder to order, \(\phi\) is designed to reach from 0 to 1. [1] [2]
Calculations are done on the undirected graph, and if the graph is projected, it is first unprojected to WGS84.
- Parameters:
- graphnetworkx.MultiDiGraph
The graph to calculate the street orientation order of.
- num_binsint
The number of bins to use for the orientation histogram in the entropy calculation. Positive integer.
- Returns:
- float
The street orientation order of the graph as defined by [1].
- Raises:
- ValueError
If num_bins is not a positive integer.
References
[1] (1,2)Boeing, G. Urban spatial order: street network orientation, configuration, and entropy. Appl Netw Sci 4, 67 (2019). https://doi.org/10.1007/s41109-019-0189-1
[2]Boeing, G. Street Network Models and Indicators for Every Urban Area in the World. Geographical Analysis 54, 519–535 (2022). https://doi.org/10.1111/gean.12281
superblockify.plot module#
Plotting functions.
- superblockify.plot.make_color_list(graph, attr, cmap, obj_type='edge', attr_types='numerical', minmax_val=None, none_color=(0.5, 0.5, 0.5, 1))[source]#
Make a list of colors based on an attribute and colormap.
Color will be chosen based on the specified attribute passed to a colormap.
- Parameters:
- graphnetworkx.MultiDiGraph
Input graph
- attrstring
Graph’s attribute to select colors by
- cmapmatplotlib.colors.Colormap
Colormap to use for the colors
- obj_typestring, optional
Type of the object to take the attribute from, can be ‘edge’ or ‘node’
- attr_typesstring, optional
Type of the attribute to be plotted, can be ‘numerical’ or ‘categorical’
- minmax_valtuple, optional
If attr_types is ‘numerical’, tuple of (min, max) values of the attribute to be plotted (default: min and max of attr)
- none_colortuple, optional
Color to use for objects with None attribute value
- Returns:
- list
List of colors, order is the same as in graph.nodes() or graph.edges()
- Raises:
- ValueError
If attr_types is not ‘numerical’ or ‘categorical’
- ValueError
If attr_types is ‘categorical’ and minmax_val is not None
- ValueError
If obj_type is not “edge” or “node”
- superblockify.plot.make_edge_color_list(graph, attr, cmap, attr_types='numerical', minmax_val=None, none_color=(0.5, 0.5, 0.5, 1))[source]#
Make a list of edge colors based on an edge attribute and colormap.
Color will be chosen based on the specified edge attribute passed to a colormap.
- Parameters:
- graphnetworkx.MultiDiGraph
Input graph
- attrstring
Graph’s edge attribute to select colors by
- attr_typesstring, optional
Type of the edge attribute to be plotted, can be ‘numerical’ or ‘categorical’
- cmapmatplotlib.colors.Colormap
Colormap to use for the edge colors
- minmax_valtuple, optional
If attr_types is ‘numerical’, tuple of (min, max) values of the attribute to be plotted (default: min and max of attr)
- none_colortuple, optional
Color to use for edges with None attribute value
- Returns:
- list
List of edge colors, order is the same as in graph.edges()
- superblockify.plot.make_node_color_list(graph, attr, cmap, attr_types='numerical', minmax_val=None, none_color=(0.5, 0.5, 0.5, 1))[source]#
Make a list of node colors based on a node attribute and colormap.
Color will be chosen based on the specified node attribute passed to a colormap.
- Parameters:
- graphnetworkx.MultiDiGraph
Input graph
- attrstring
Graph’s node attribute to select colors by
- attr_typesstring, optional
Type of the node attribute to be plotted, can be ‘numerical’ or ‘categorical’
- cmapmatplotlib.colors.Colormap
Colormap to use for the node colors
- minmax_valtuple, optional
If attr_types is ‘numerical’, tuple of (min, max) values of the attribute to be plotted (default: min and max of attr)
- none_colortuple, optional
Color to use for nodes with None attribute value
- Returns:
- list
List of node colors, order is the same as in graph.nodes()
- Raises:
- ValueError
If attr_types is not ‘numerical’ or ‘categorical’
- ValueError
If attr_types is ‘categorical’ and minmax_val is not None
- superblockify.plot.paint_streets(graph, cmap='hsv', **pg_kwargs)[source]#
Plot a graph with (cyclic) colormap related to edge direction.
Color will be chosen based on edge bearing, cyclic in 90 degree. Function is a wrapper around osmnx.plot_graph.
- Parameters:
- graphnetworkx.Graph
Input graph
- cmapstring, optional
name of a matplotlib colormap
- pg_kwargs
keyword arguments to pass to osmnx.plot_graph.
- Returns:
- fig, axtuple
matplotlib figure, axis
- Raises:
- ValueError
If no bearing attribute is found in the graph.
Examples
_See example in scripts/TestingNotebooks/20221122-painting_grids.py._
- superblockify.plot.plot_by_attribute(graph, edge_attr=None, edge_attr_types='numerical', edge_cmap='hsv', edge_linewidth=1, edge_minmax_val=None, node_attr=None, node_attr_types='numerical', node_cmap='hsv', node_size=15, node_minmax_val=None, edge_color=None, node_color=None, **pg_kwargs)[source]#
Plot a graph based on an edge attribute and colormap.
Color will be chosen based on the specified edge attribute passed to a colormap. Function is a direct wrapper around osmnx.plot_graph.
- Parameters:
- graphnetworkx.MultiDiGraph
Input graph
- edge_attrstring, optional
Graph’s edge attribute to select colors by
- edge_attr_typesstring, optional
Type of the edge attribute to be plotted, can be ‘numerical’ or ‘categorical’
- edge_cmapstring or matplotlib.colors.ListedColormap, optional
Name of a matplotlib colormap to use for the edge colors or a colormap object
- edge_linewidthfloat, optional
Width of the edges’ lines
- edge_minmax_valtuple, optional
Tuple of (min, max) values of the edge attribute to be plotted (default: min and max of edge attr)
- node_attrstring, optional
Graph’s node attribute to select colors by
- node_attr_typesstring, optional
Type of the node attribute to be plotted, can be ‘numerical’ or ‘categorical’
- node_cmapstring or matplotlib.colors.ListedColormap, optional
Name of a matplotlib colormap to use for the node colors or a colormap object
- node_sizeint, optional
Size of the nodes
- node_minmax_valtuple, optional
Tuple of (min, max) values of the node attribute to be plotted (default: min and max of node attr)
- pg_kwargs
Keyword arguments to pass to osmnx.plot_graph.
- edge_colorstring, optional
Do not pass this attribute if edge_attr is set, as it is set by the edge attribute and colormap.
- node_colorstring, optional
Do not pass this attribute if node_attr is set, as it is set by the node attribute and colormap.
- Returns:
- fig, axetuple
matplotlib figure, axis
- Raises:
- ValueError
If edge_color/node_color is set while edge_attr/node_attr is set.
- ValueError
If edge_linewidth and node_size both <= 0, otherwise the plot will be empty.
- ValueError
If edge_attr and node_attr are both None.
Notes
At least one of edge_attr or node_attr must be set.
- superblockify.plot.plot_component_size(graph, attr, component_size, component_values, size_measure_label, ignore=None, title=None, cmap='hsv', minmax_val=None, num_component_log_scale=True, show_legend=None, xticks=None, **kwargs)[source]#
Plot the distribution of component sizes for each partition value.
x-axis: values of the partition y-axis: size of the component (e.g. number of edges, nodes or length) color: value of the partition
- Parameters:
- graphnetworkx.MultiDiGraph
Input graph
- attrstring
Graph’s attribute to select colormap min and max values by if minmax_val is incomplete
- component_sizelist
Number of edges in each component
- component_valueslist
Value of the partition for each component
- size_measure_labelstr
Label of the size measure (e.g. “Number of edges”, “Number of nodes”, “Length (m)”)
- ignorelist, optional
List of values to ignore, plot in gray. If None, no values are ignored.
- titlestr, optional
Title of the plot
- cmapstring, optional
Name of a matplotlib colormap
- minmax_valtuple, optional
Tuple of (min, max) values of the attribute to be plotted (default: min and max of attr)
- num_component_log_scalebool, optional
If True, the y-axis is plotted on a log scale
- show_legendbool, optional
If True, the legend is shown. If None, the legend is shown if the unique values of the partition are less than 23.
- xtickslist, optional
List of xticks
- kwargs
Keyword arguments to pass to matplotlib.pyplot.plot.
- Returns:
- fig, axetuple
matplotlib figure, axis
- superblockify.plot.plot_road_type_for(graph, included_types, name, **plt_kwargs)[source]#
Plot the distribution of road types for the given graph.
Find possible road types from the graph’s edges, or at https://wiki.openstreetmap.org/wiki/Key:highway.
- Parameters:
- graphnetworkx.MultiDiGraph
Input graph
- included_typeslist
List of osm highway keys to be highlighted, all other edges have another color
- namestr
Title of the plot
- plt_kwargs
Keyword arguments to pass to matplotlib.pyplot.plot.
- Returns:
- fig, axetuple
matplotlib figure, axis
- superblockify.plot.save_plot(results_dir, fig, filename, **sa_kwargs)[source]#
Save the plot fig to file.
Saved in the results_dir/filename.
- Parameters:
- results_dirstr
Directory to save to.
- figmatplotlib.figure.Figure
Figure to save.
- filenamestr
Filename to save to.
- sa_kwargs
Keyword arguments to pass to matplotlib.pyplot.savefig.
superblockify.utils module#
Utility functions for superblockify.
- superblockify.utils.compare_components_and_partitions(list1, list2)[source]#
Compare two lists of dictionaries.
The lists are equal if they have the same length and the dictionaries in the lists are equal. If a value of a dictionary is a networkx.Graph, it compares the graphs with networkx.graph_equal().
- Parameters:
- list1list of dict
The first list of dictionaries to compare.
- list2list of dict
The second list of dictionaries to compare.
- Returns:
- bool
True if the lists are equal, False otherwise.
- superblockify.utils.compare_dicts(dict1, dict2)[source]#
Compare two dictionaries recursively.
Function to recursively compare nested dicts that might contain numpy arrays.
- Parameters:
- dict1dict
The first dictionary to compare.
- dict2dict
The second dictionary to compare.
- Returns:
- bool
True if the dictionaries are equal, False otherwise.
- superblockify.utils.extract_attributes(graph, edge_attributes, node_attributes)[source]#
Extract only the specified attributes from a graph.
- Parameters:
- graphnetworkx.MultiDiGraph
The graph to extract attributes from.
- edge_attributesset
The edge attributes to keep.
- node_attributesset
The node attributes to keep.
- Returns:
- networkx.MultiDiGraph
The graph with only the specified attributes.
- superblockify.utils.has_pairwise_overlap(lists)[source]#
Return a boolean array indicating overlap between pairs of lists.
Uses numpy arrays and vector broadcasting to speed up the calculation. For short lists using set operations is faster.
- Parameters:
- listslist of lists
The lists to check for pairwise overlap. Lists can be of different length.
- Returns:
- has_overlapndarray
A boolean array indicating whether there is overlap between each pair of lists. has_overlap[i, j] is True if there is overlap between list i and list j, and False otherwise.
- Raises:
- ValueError
If lists is not a list of lists.
- ValueError
If lists is empty.
- superblockify.utils.load_graph_from_place(save_as, search_string, add_population=False, only_cache=False, max_nodes=20000, **gfp_kwargs)[source]#
Load a graph from a place and save it to a file.
The method filters the attributes of the graph to only include the ones that are needed for the package.
- Parameters:
- save_asstr
The name of the file to save the graph to.
- search_stringstr or list of str
The place to load the graph from. Find the place name on OpenStreetMap. https://nominatim.openstreetmap.org/ Can otherwise be OSM relation ID or a list of those. They have the format “R1234567”. Not mixed with place names.
- add_populationbool, optional
Whether to add population data to the graph. Default is False.
- only_cachebool, optional
Whether to only load the graph from cache. Default is False.
- max_nodesint, optional
Maximum number of nodes in the graph. If the graph has more nodes, it will be reduced to max_nodes, by taking the ego graph of a representative, central node. If None, the graph will not be reduced. Default is set in
superblockify.config
.- **gfp_kwargs
Keyword arguments to pass to osmnx.graph_from_place.
- Returns:
- networkx.MultiDiGraph or None
The graph loaded from the place. If only_cache is True, returns None.
- superblockify.utils.load_graphml_dtypes(filepath=None, attribute_label=None, attribute_dtype=None)[source]#
Load a graphml file with custom dtypes.
- Parameters:
- filepathstr
Path to the graphml file.
- attribute_labelstr, optional
The attribute label to convert to the specified dtype.
- attribute_dtypetype, optional
The dtype to convert the attribute to.
- Returns:
- networkx.MultiDiGraph
The graph.
- superblockify.utils.percentual_increase(val_1, val_2)[source]#
Compute the percentual increase between two values.
3 -> 4 = 33.33% = 1/3 4 -> 3 = -25.00% = -1/4
- Parameters:
- val_1float
The first value.
- val_2float
The second value.
- Returns:
- float
The relative difference between the two values.
Notes
If both values are zero, the result is zero. If one value is zero, the result is +-infinity.
Module contents#
superblockify init.