1.- AND BACKGROUND.
1.1.- INTRODUCTION
This case examine demonstrates using Geospatial applied sciences to deal with a enterprise problem within the growth of the pharmacy community within the Group of Madrid, Spain. This evaluation is predicated on a venture that features authorized, city planning, engineering, administrative regulation and enterprise issues, however these elements are exterior the scope of this evaluation. Right here we focus solely on the appliance of superior geospatial applied sciences, similar to OSMnx and NetworkX, to beat the geospatial challenges concerned within the deployment of the pharmacy community, particularly discover gaps within the city pharmacy community the place it’s potential to put in a brand new pharmacy whereas respecting the authorized restrictions on the minimal distance between pharmacies.
1.2.- BACKGROUND
The pharmaceutical sector in Spain is regulated by the federal government with the intention of guaranteeing the provision and meting out of medicines underneath applicable high quality and value circumstances. Inside this sector, distribution is affected by quite a few limitations similar to: the possession, location and technical-economic circumstances of pharmacies by state legal guidelines [1] and quite a few rules of the Autonomous Communities. This publication will cope with the constraints concerning location within the Autonomous Group of Madrid.
In relation to funding within the community of pharmacies in Spain on the whole, and within the Autonomous Group of Madrid specifically, the attention-grabbing drawback of discovering appropriate places for organising a pharmacy arises. Though this seek for places could be in new city areas underneath growth, probably the most attention-grabbing is consolidated city land. It is because the funding maturity interval is shorter, as there’s already a inhabitants dwelling within the space, and the inhabitants density is often larger than that deliberate for growth areas. Nevertheless, the issue is that in these consolidated city areas there are already pharmacies in operation and the minimal distances between them have to be revered by regulation.
The Spanish authorized framework for the pharmaceutical sector establishes a minimal distance limitation of 250 m between pharmacies to be able to find a pharmacy workplace [2], [3]. This distance ought to be measured by following a route in accordance with the next issues:
- It ought to be a route just like that which a pedestrian would observe.
- It ought to join the centres of the fronts of pharmacies, not the entrances to pharmacies.
As well as, it have to be ensured that the gap to public well being services is greater than 150 m measured alongside a pedestrian route.
Some points are highlighted beneath:
- Pharmacies established prior to those legal guidelines don’t observe these guidelines, with the consequence that some pharmacies are positioned at a distance of lower than 250m. Regardless of this, there are nonetheless city openings for the placement of recent pharmacies in areas of curiosity from the perspective of the pharmaceutical enterprise.
- The existence of those city openings is just not sufficient and requires extra fieldwork to analyse the existence of accessible properties to deal with the pharmacy in these areas and to check the likelihood supplied by city planning to truly set up a pharmacy in these areas. That is due to this fact a primary step within the funding course of.
The effectiveness of open-source instruments similar to OSMnx [4] and Networkx [5] in addressing complicated issues associated to city cloth evaluation, city transport and mobility has been demonstrated in quite a few publications [6]–[8]. The intention of this publication is to current a strategy primarily based on OSMnx and NerworkX to disclose potential openings (alternatives) within the city cloth for the placement of pharmacies considering the authorized restrictions.
NetworkX is a Python library designed for the appliance of graph principle [9] to analyse complicated networks of relationships. It operates by an advanced framework of objects, the place the essential components are nodes, that are interconnected by edges, representing relationships between nodes. This instrument is extensively employed within the examine, evaluation, and backbone of real-world issues, together with however not restricted to geospatial transportation networks, city geospatial networks, and social networks. OSMnx is a specialised open-source python library that makes use of OpenStreetMap geospatial knowledge to vectorize the road networks of cities globally as NetworkX graphs, facilitating their evaluation by Python code. This method is exemplified in [10], the place varied city areas worldwide are systematically analyzed.
Given the quite a few variables and alternate options to contemplate when using these instruments to deal with geospatial challenges, a broad number of publications on the topic has been reviewed. Because of the revolutionary and quickly evolving nature of those instruments, a few of these sources are solely accessible by on-line boards, similar to https://stackoverflow.com/, or in web-native scientific journals. A key concern that has prompted appreciable debate in these sources is the strategy for connecting factors of curiosity (POIs) to town graphs of OSMnx, as mentioned in [11] – [12], to allow computations over these graphs to unravel issues associated to the POIs. For the particular case addressed on this paper—the localization of pharmacy places of work (POIs) in compliance with authorized distance necessities—a brand new methodology has been developed to greatest go well with the case, drawing on the related literature and on-line sources consulted. This technique shall be introduced within the methodology part and is anticipated to be relevant to comparable instances.
2.- METHOD
After gathering the mandatory knowledge: UTM coordinates of the pharmacies and the suitable OSMnx graph of town of Madrid, a primary section of this system consists of projecting the UTM coordinates of the pharmacies onto the OSMnx grid of Madrid as nodes. To do that, first, the sides of the OSMnx graph closest to every pharmacy shall be recognized within the “Information Placement on the Grid” section of this system. That is achieved by importing the OSMnx graph with out simplifying it. This manner, all of the curved strains of the Madrid city graph could be approximated by a number of strains of lowered measurement, appropriate for subsequent vector calculation. Moreover, on this case it’s essential to venture the UTM coordinates of the pharmacy places of work, that are often positioned inside their institutions, onto the OSMnx graph. That is achieved within the ‘Vector calculation’ section of the methodology. On this means, the placement of the midpoints of their façades on the general public highway is approximated.
Thirdly, as soon as the UTM coordinates of the pharmacies have been projected as nodes of the OSMnx graph of town of Madrid, within the subsequent ‘Grid Overlay’ section, the areas of the community which can be lower than 250 m from every of the pharmacy-nodes are calculated. For this objective, we don’t think about the Euclidean distance however the topological distance, in accordance with the walkable city graph. Thus, n networks are obtained, one per pharmacy. Then, all of them are superimposed. Lastly, the results of this superposition is subtracted from the OSMnx graph of Madrid. The results of this subtraction is a brand new community with the sides which can be greater than 250 m away from any pharmacy. Lastly, this result’s visualised as the ultimate answer, since these edges represent the axes on which a pharmacy workplace could be housed from the topological perspective.
For example this publication and check the methodology, an city space with a really difficult city cloth has been chosen, centred on the Madrid district of Tetuán, the place pharmacies are additionally very shut to one another, as a few of them have been put in earlier than the inclusion of the gap limitation within the authorized framework.
To simplify the preliminary exposition of the methodology, the minimal authorized distance situation of 150 m to well being centres has been allotted with, contemplating solely the minimal distance between pharmacies as a limiting issue. As soon as the methodology has been defined in its entirety, it is going to be seen how this situation is well launched within the ‘dialogue’ part.
Every section of the methodology is defined intimately beneath.
2.1.- Information assortment
The Group of Madrid has publicly accessible knowledge on its pharmacies and well being centres: addresses, codes, geographic coordinates, pharmacist in cost, and many others. These knowledge can be found on the internet [13]. The csv information used on this publication have been extracted from it [14]. For the reason that factors to be thought of for the calculation of distances ought to be the midpoints of the facades, and never the accesses to the pharmacies, it’s a higher approximation to make use of the UTM coordinates of the centre of the pharmacy institutions and venture them onto the OSMnx graph, as an alternative of geocoding the addresses of the pharmacies. On this means, the centre of the pharmacy institutions could be higher approximated. That is significantly vital within the case of pharmacy premises with lengthy facades or nook facades, the place the geolocation of the premises is assigned to the doorway and to not the center level of the facade, which is the purpose referred to within the distance measurement regulation.
As for the OSMnx community to be thought of, it is going to be of sort ‘stroll’ (network_type=’stroll’
) [15], which incorporates all public pedestrian routes in Madrid. Since a part of the methodology makes use of vector calculations, the default simplification of the OSMnx community is discarded (therefore, simplify= ’False’
) to be able to acquire the totality of the community nodes [16]. Thus, the curved elements of the community could be approximated by straight strains between the ‘nodes’ of the ‘edges’. With respect to this earlier publication, on this case, as well as the centre of the pharmacy institutions must also be projected onto the OSMnx community. As a conclusion of the above dialogue, the Madrid graph shall be imported as follows in code 1:
Madrid_graph = ox.graph_from_place('Madrid, Spain', network_type='stroll',
simplify= False )
Code 1. Python 3.11.5.
2.2.- Information placement on the grid
As defined above, step one is to establish the sides of the detailed model of the OSMnx graph of Madrid which can be closest to every pharmacy. That is achieved by the OSMnx distances module, saving the info of every nearest edge within the corresponding row of the pharmacies DataFrame, in addition to the gap, as a test, code 2.
for index, row in farmacias.iterrows():
edge = ox.distance.nearest_edges(Madrid_graph, row['lon'],
row['lat'], return_dist=True)
node = ox.distance.nearest_nodes(Madrid_graph, row['lon'],
row['lat'], return_dist=True)
farmacias.loc[index,'edge_1'] = str(edge[0][0])
farmacias.loc[index,'edge_2'] = str(edge[0][1])
farmacias.loc[index,'edge_n'] = str(edge[0][2])
farmacias.loc[index,'edge_d'] = edge[1]
farmacias.loc[index,'node'] = str(node[0])
farmacias.loc[index,'node_d'] = node[1]
Code 2. Python 3.11.5. ‘lon’ and ‘lat’ stand for the geographical coordinates Longitude and Latitude.
Though not mandatory for the next calculations, the identification of the closest node has additionally been included for data and high quality management functions.
These are proven beneath in Fig. 1 for the chosen Madrid pilot surroundings.

Fig. 1. Information Placement on the grid. UTM coordinates of the pharmacies, blue factors. Nearest nodes of the graph, purple factors. Closest edges of the graph, purple segments. Personal elaboration utilizing OSMnx. Information © OpenStreetMap contributors, accessible underneath the Open Database License
2.3.- Vector calculation
With a view to venture the pharmacies on the graph of Madrid, it’s taken under consideration that what’s of curiosity on this case is to establish the midpoint of their façade on the general public methods, i.e. on the graph. As talked about above, generally, the UTM supplied within the Public Administration information refer to some extent contained in the business institution. Due to this fact, it’s essential to venture these factors on the Madrid graph, reworking them into a brand new node of the graph. On this case, it isn’t right to hyperlink pharmacies to the graph by an edge, since solely pedestrian routes on public methods are of curiosity for distance measurement. So, as an alternative, a brand new node ought to be created the place every pharmacy workplace is projected on the graph, on the closest edge decided within the earlier part.
The projection is carried out utilizing the Python library Numpy [17] utilizing the next vector calculation, which gives the coordinates of the brand new P nodes which can be the projection of every pharmacy on the graph, Fig. 2:

Fig. 2. Vector calculation scheme. F, pharmacy UTM level. P, projected pharmacy node. E1 and E2, edge ends. L, is the size of the sting in OSMnx. Personal elaboration.

Within the case that “d” or “L2” is unfavorable, which may happen on account of small variations between the lengths of the sides in OSMnx and the projections made utilizing UTM coordinates, the node the place the pharmacy is projected shall be one of many excessive nodes defining the sting, relying on which of the 2 portions is unfavorable. If “d” is unfavorable, then the pharmacy shall be projected as “E1”; if “L2” is unfavorable, then as “E2”.
Thus, a brand new edge is created that connects this new node with the nodes of the closest edge. Subsequently, the beforehand decided nearest edge is deleted, as it’s changed by the one simply created. See code 3.
for index, row in farmacias.iterrows():
# vector calculation
F = np.array( [row['localizacion_coordenada_x'], row['localizacion_coordenada_y']])
E1 = np.array([utm.from_latlon(Madrid_graph.nodes[row['edge_1']]['y'], Madrid_graph.nodes[row['edge_1']]['x'], 30,'N')[0],
utm.from_latlon(Madrid_graph.nodes[row['edge_1']]['y'], Madrid_graph.nodes[row['edge_1']]['x'], 30,'N')[1]])
E2 = np.array([utm.from_latlon(Madrid_graph.nodes[row['edge_2']]['y'], Madrid_graph.nodes[row['edge_2']]['x'], 30,'N')[0],
utm.from_latlon(Madrid_graph.nodes[row['edge_2']]['y'], Madrid_graph.nodes[row['edge_2']]['x'], 30,'N')[1]])
d = np.dot(E2-E1,F-E1)/Madrid_graph.edges[(row['edge_1'],row['edge_2'],row['edge_n'] )]['length']
d_vect = (E2-E1)*d/Madrid_graph.edges[(row['edge_1'],row['edge_2'],row['edge_n'] )]['length']
F_coord = E1 + d_vect
L_calculada = np.sqrt(np.dot(E2-E1,E2-E1))
F_coord_LL = utm.to_latlon(F_coord[0], F_coord[1], 30, 'N')
L2 = Madrid_graph.edges[(row['edge_1'],row['edge_2'],row['edge_n'] )]['length'] - d
# edge and node substitution
if d<0:
nx.relabel_nodes(Madrid_graph, {row['edge_1']: row['farmacia_nro_soe']}, copy= False)
nx.set_node_attributes(Madrid_graph, { row['farmacia_nro_soe'] :{'coloration':'r', 'measurement':10 }} )
elif L2<0:
nx.relabel_nodes(Madrid_graph, {row['edge_2']: row['farmacia_nro_soe']}, copy=False)
nx.set_node_attributes(Madrid_graph, { row['farmacia_nro_soe'] :{'coloration':'r', 'measurement':10 }} )
else:
Madrid_graph.add_edge(row['edge_1'],row['farmacia_nro_soe'],0)
nx.set_edge_attributes(Madrid_graph, { (row['edge_1'], row['farmacia_nro_soe'],
0):{'size':d, 'osmid' : row['farmacia_nro_soe'], 'coloration':'r', 'measurement':4 }})
Madrid_graph.add_edge(row['farmacia_nro_soe'],row['edge_2'],0)
nx.set_edge_attributes(Madrid_graph, { (row['farmacia_nro_soe'], row['edge_2'],
0):{'size':L2 , 'osmid' : row['farmacia_nro_soe'], 'coloration':'r', 'measurement':4 }})
Madrid_graph.remove_edge(row['edge_1'],row['edge_2'],row['edge_n'] )
nx.set_node_attributes(Madrid_graph,
{ row['farmacia_nro_soe'] :{'x':F_coord_LL[1], 'y':F_coord_LL[0], 'coloration':'r', 'measurement':10 }} )
Code 3. . Python 3.11.5. ‘farmacia_nro_soe’ stands for pharmacy code. The variables at first (F, E1, E2, d, and many others) discuss with these in Fig. 2. The opposite attributes of nodes and edges (‘coloration’, ‘measurement’) are supposed to spotlight them within the drawing course of.
The results of this calculation is proven in Fig. 3

Fig. 3. Projected pharmacies as purple nodes within the Madrid graph. Personal elaboration utilizing OSMnx. Information © OpenStreetMap contributors, accessible underneath the Open Database License
2.4.- Grid overlay.
On this section we’re going to create graphs of 250 m strolling distance with centre at every of the pharmacy nodes in Madrid: nx.turbines.ego_graph([...], radius=250, centre=True, distance=’size‘)
. They’re then composed to kind a bigger one containing all of them: MultiGraph.nx.compose_all()
. They’re then subtracted from the bottom Madrid graph initially used: MultiGraph.remove_edges_from()
. This graph with the sides and nodes remaining after the subtraction incorporates edges that meet the situation of getting all their factors positioned greater than 250 m from all the opposite pharmacy nodes, due to this fact, prone to home a brand new pharmacy, code 4.
for index, row in farmacias.iterrows():
Grph = nx.turbines.ego_graph(Madrid_graph,row['farmacia_nro_soe'] ,
undirected=True, radius=250,
heart=True, distance='size')
superposicion.append(Grph)
S = nx.compose_all(superposicion)
nx.set_edge_attributes(S, 'r', 'coloration' )
Madrid_graph.remove_edges_from(record(S.edges))
Code 4. . Python 3.11.5. ‘farmacia_nro_soe’ stands for pharmacy code.
3.- RESULTS
Fig. 4 exhibits the results of making use of the process to the set of pharmacies represented by the inexperienced dots solely in an almond-shaped space of town of Madrid. All edges containing factors which can be lower than 250 m away from the given pharmacy community have been eliminated, so {that a} hole is noticed throughout the illustration. The sides which can be nonetheless current throughout the hole after the elimination are these the place it could be potential to deal with a brand new pharmacy from a topological perspective. Clearly, within the precise venture it’s essential to test the city circumstances of those ‘edges’, in addition to the provision of a business actual property to deal with a pharmacy, see the next part.

Fig. 4. Outcome: the sides the place it could be potential to host new pharmacies, given a constellation of current pharmacies as blue dots. The sides of the graph positioned exterior the topological distance of 250 m throughout the given constellation of pharmacies, proven as purple segments, are potential appropriate places for a pharmacy. Gray background: shadows of buildings. Personal elaboration utilizing OSMnx. Information © OpenStreetMap contributors, accessible underneath the Open Database License
4.- DISCUSSION AND CONCLUSIONS
4.1.-Graph choice
Provided that pharmacy places of work in Spain can solely be positioned on public pathways and that the 250 m distance limitations between pharmacy places of work are measured by pedestrian routes, the community sort ‘stroll’ [15], which incorporates all public pedestrian routes in Madrid, has been chosen because the OSMnx Madrid graph, code 5.
Madrid_graph = ox.graph_from_place('Madrid, Spain', network_type='stroll',
simplify= False )
Code 5. Python 3.11.5
In instances completely different from the one at hand, during which not solely public roads are helpful for the work, but in addition private ones, a graph that features all of them—each public and private—could possibly be chosen by utilizing the Overpass QL code to specify a customized filter [18], code 6:
Madrid_graph = ox.graph_from_place('Madrid, Spain', simplify= False,
custom_filter=
'["area"!~"yes"]'
'["highway"!~"cycleway|motor|proposed|construction|abandoned|platform|raceway"]'
'["foot"!~"no"]["service"!~"private"]["access"!~"private"]' )
Code 6. Python 3.11.5
4.2.-Procesing the info.
As defined within the introduction, for vector calculation causes, the “unsimplified” OSMnx graph for Madrid has been chosen. Nevertheless, which means that the variety of nodes within the NetworkX graph is kind of giant, specifically 465,976, in comparison with 154,311 within the simplified community of Madrid. This, along with the complexity of a metropolis like Madrid, makes the calculation course of described above take fairly a very long time, relying on the {hardware} used. If there are {hardware} limitations, there are attention-grabbing publications price consulting, which might velocity up the calculations of the Python engine, as is the case of utilizing the Numba library [11].
4.3.- The Approximate Nature of the Resolution.
The vary of city conditions associated to business premises is huge. For instance, there are business premises whose façades will not be steady. In such instances, authorized rules require contemplating the a part of the façade that’s most related to every particular case. Even in these conditions, the answer is pretty exact. Nevertheless, it stays an approximate answer that serves as a helpful place to begin for an in depth on-site evaluation.
4.4.-Simplification.
For the sake of readability, up to now solely the minimal distance limitation between pharmacies of 250 m alongside a pedestrian route has been thought of. As indicated in part 2.- METHOD, it is usually mandatory for a pharmacy to respect a minimal distance of 150 m from well being centres. Having seen the methodology, this may simply be achieved by including the well being centres of Madrid, publicly accessible as csv file within the net of the Group of Madrid [19]. We proceed with the identical methodology as within the case of pharmacies to create the graphs containing factors positioned lower than 150 m from every well being centre; on this case nx.turbines.ego_graph([...], radius=150, centre=True, distance=’size‘)
. Then, within the ‘Grid Overlay’ section, we superimpose this graph with the one for pharmacies within the MultiGraph.nx.compose_all()
step. Subsequently subtracting this complete set from the Madrid metropolis graph.
4.5.- Functions apart from these regarding consolidated city land.
Though this publication has handled the case of finding pharmacies on consolidated city land, NetworkX functionalities in Python will also be used to check one of the best places for pharmacies in creating city areas that don’t but have city companies and services put in. This may be achieved by centrality measures. There are very attention-grabbing examples of utilizing centrality measures to analyse an city community, for instance within the case of an city biking community [16]. Within the case of pharmacies, the NetworkX “betweenness centrality” measure could be an attention-grabbing candidate to assist decide probably the most interconnected pedestrian routes in a creating city space, which is a fascinating characteristic to host a pharmacy, as they are typically the place most pedestrians flow into. That is the criterion used to analyse the advance factors of cycle lane networks in Copenhagen [20]. However it is a completely different drawback from the one addressed on this publication, and ought to be handled in one other publication.
4.6.- Dialogue of the end result.
As indicated within the introduction, the given answer is topological in nature. For instance, in Fig. 5, the sides highlighted inside inexperienced squares “a” correspond to roads in a really broad road in Madrid, the “Paseo de La Castellana”, with a number of lanes at completely different ranges and boulevards, which pedestrians can solely entry by only a few zebra crossings following a circuitous route. These ‘edges’ have been chosen within the computation exactly for that reason: though their Euclidean distance to the closest pharmacies is just not giant, the precise route a pedestrian has to take to achieve them is for much longer, as they will solely be accessed through a number of zebra crossings following a circuitous route. Nevertheless, on account of city planning constraints, they aren’t appropriate places for a pharmacy.
As defined above, after figuring out the sides that respect the limitation of distances between pharmacies following this system, it’s essential to additional analyse them when it comes to: availability of economic actual property in them to deal with a pharmacy and the chances supplied by city planning on permitted makes use of and actions on them. An instance is the highlighted inside inexperienced sq. ‘b’. It is a giant city plot belonging to the general public water provide firm in Madrid, ‘Canal de Isabel II’, which additionally features as a inexperienced area within the metropolis. On this case, regardless of having been chosen for computation, it isn’t an appropriate area to deal with a pharmacy on account of city planning and possession points. Regardless of its Euclidean proximity to the encircling pharmacies, the computation has chosen these edges due to their troublesome accessibility, as they’re surrounded by a wall, which requires many detours to enter them following a pedestrian route from the encircling places.
The chosen examine space has a excessive saturation of pharmacies, primarily on account of the truth that lots of them have been put in earlier than the regulation of distances between pharmacies got here into pressure. As well as, as a result of city chaos of the world, pedestrian routes are very circuitous. Which means, regardless of the excessive density of pharmacies within the city space, the computation has been capable of finding gaps that might a priori home pharmacies. A few of them are inscribed in cyan ellipses and circles, Fig. 5.

Fig. 5. Particular instances. Personal elaboration utilizing OSMnx. Information © OpenStreetMap contributors, accessible underneath the Open Database License
5.- Information Availability and Disclaimer
The datasets utilized on this examine are publicly accessible and licensed for any use by the Autonomous Group of Madrid, Spain. Avenue community knowledge was sourced from OpenStreetMap © OpenStreetMap contributors, through the OSMnx Python library, and is on the market underneath the Open Database License (ODbL): https://opendatacommons.org/licenses/odbl/1.0/ . Geospatial layers as pharmacy places, have been derived from publicly accessible GeoJSON and csv information hosted on https://datos.comunidad.madrid/group/salud and https://datos.comunidad.madrid/catalogo/dataset/6f407280-6ab1-43fb-bb48-ab954ec6edae/useful resource/130c1f6e-b131-44a1-94c9-00c9bb807ca6/obtain/oficinas_farmacia.csv , by the Autonomous Group of Madrid, Spain, explicitly allowing any use, as could be seen within the corresponding Phrases of Use and Licensing Data at https://www.comunidad.madrid/servicios/012-atencion-ciudadano/aviso-legal-privacidad.
The methodological design, technical implementation (e.g., community evaluation through NetworkX), and spatial computations introduced on this article have been developed independently by the writer. All analytical workflows, visualizations, and conclusions are unique contributions, free from third-party mental property restrictions. For transparency, direct hyperlinks to knowledge sources has been supplied within the References and Information Availability sections of this text.
Observe on Legal responsibility:
In accordance with the publicly accessible knowledge sources employed, as defined within the earlier “Information Availability” part, the writer hereby disclaims any duty for penalties, damages, or losses ensuing from the entry, use, or interpretation of the knowledge introduced on this work, as achieved within the Phrases of Use of such knowledge sources. This text is meant strictly for academic functions and doesn’t represent skilled or business recommendation. Customers are urged to independently validate knowledge and seek the advice of related consultants earlier than making use of any findings.
6.- REFFERENCES
[1] Jefatura del Estado de España, “Ley 29/2006, de 26 de julio, de garantías y uso racional de los medicamentos y productos sanitarios.,” BOE, vol. 178, no. BOE-A-2006-13554, pp. 28122–28165, 2006.
[2] Jefatura del Estado de España, “Ley 16/1997, de 25 de abril, de Regulación de Servicios de las Oficinas de Farmacia.,” BOE, vol. 100, no. BOE-A-1997-9022, pp. 13450–13452, 1997.
[3] Ministerio de Sanidad y Seguridad Social de España, “ORDEN de 21 de noviembre de 1979 por la que se desarrolla el Actual Decreto 909/1978, de 14 de abril, en lo referente al establecimiento, transmisión e integración de Oficinas de Farmacia.,” BOE, vol. 302, no. BOE-A-1979-29679, pp. 28975–28977, 1979.
[4] G. Boeing, “Modeling and Analyzing City Networks and Facilities with OSMnx. Working paper.,” github.com, 2024. [Online]. Obtainable: https://geoffboeing.com/publications/osmnx-paper/. [Accessed: 28-Jun-2024].
[5] A. A. Hagberg, D. A. Schult, and P. J. Swart, “Exploring community ntructure, nynamics, and nunction utilizing NetworkX,” in Proceedings of the seventh Python in Science Convention, 2008, no. SciPy.
[6] P. Zhao, Y. Yen, E. Bailey, and M. T. Sohail, “Evaluation of city drivable and walkable road networks of the ASEAN good cities community,” ISPRS Int. J. Geo-Data, vol. 8, no. 10, 2019.
[7] G. Boeing, “City road community evaluation in a computational pocket book,” Area, vol. 6, no. 3, 2019.
[8] G. Boeing, “Avenue Community Fashions and Indicators for Each City Space within the World,” in Geographical Evaluation, 2022, vol. 54, no. 3.
[9] S. Ghosh, A. Mallick, A. Chowdhury, Ok. De Sarkar, and J. Mukherjee, “Graph principle functions for superior geospatial modelling and decision-making,” Appl. Geomatics, vol. 16, no. 4, pp. 799–812, 2024.
[10] G. Boeing, “A multi-scale evaluation of 27,000 city road networks: Each US metropolis, city, urbanized space, and Zillow neighborhood,” Environ. Plan. B City Anal. Metropolis Sci., vol. 47, no. 4, 2020.
[11] D. Vityazev, “Connecting Information Factors to a Street Graph with Python Effectively,” In direction of Information Science, 2022. [Online]. Obtainable: https://towardsdatascience.com/connecting-datapoints-to-a-road-graph-with-python-efficiently-cb8c6795ad5f.
[12] Y. Chang, “Connecting and interpolating POIs to a highway community,” In direction of Information Science, 2019. [Online]. Obtainable: https://towardsdatascience.com/connecting-pois-to-a-road-network-358a81447944. [Accessed: 07-Oct-2024].
[13] Comunidad de Madrid, “Datos Abiertos Comunidad de Madrid. Portal de transparencia,” 2024. [Online]. Obtainable: https://datos.comunidad.madrid/group/salud. [Accessed: 01-Oct-2024].
[14] Comunidad de Madrid, “Oficinas de Farmacia, csv information.,” Portal de Datos Abiertos Comunidad de Madrid. Portal de transparencia, 2024. [Online]. Obtainable: https://datos.comunidad.madrid/catalogo/dataset/6f407280-6ab1-43fb-bb48-ab954ec6edae/useful resource/130c1f6e-b131-44a1-94c9-00c9bb807ca6/obtain/oficinas_farmacia.csv.
[15] G. Boeing, “OSMnx: New strategies for buying, establishing, analyzing, and visualizing complicated road networks,” Comput. Environ. City Syst., vol. 65, pp. 126–139, 2017.
[16] M. A. Alattar, C. Cottrill, and M. Beecroft, “Modelling cyclists’ route alternative utilizing Strava and OSMnx: A case examine of the Metropolis of Glasgow,” Transp. Res. Interdiscip. Perspect., vol. 9, 2021.
[17] C. R. Harris et al., “Array programming with NumPy,” Nature, vol. 585, no. 7825. 2020.
[18] G. Boeing, “Use string formatting to insert infrastructure into question,” github, 2017. [Online]. Obtainable: https://github.com/gboeing/osmnx/blob/v0.5.3/osmnx/core.py#L482-483. [Accessed: 01-Sep-2024].
[19] Comunidad de Madrid, “Centros de Salud, csv information.,” Portal de Datos Abiertos de la Comunidad de Madrid. Portal de transparencia, 2024. [Online]. Obtainable: https://datos.comunidad.madrid/dataset/centros_servicios_establecimientos_sanitarios.
[20] A. Vybornova, T. Cunha, A. Gühnemann, and M. Szell, “Automated Detection of Lacking Hyperlinks in Bicycle Networks,” Geogr. Anal., vol. 55, no. 2, 2023.