<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GIS &#8211; Smals Research</title>
	<atom:link href="https://www.smalsresearch.be/tag/gis/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.smalsresearch.be</link>
	<description></description>
	<lastBuildDate>Thu, 26 Mar 2026 16:13:22 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.smalsresearch.be/wp-content/uploads/2026/01/cropped-cropped-Smals_Research-32x32.png</url>
	<title>GIS &#8211; Smals Research</title>
	<link>https://www.smalsresearch.be</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>bePelias, un géocodeur local basé sur BeSt Address</title>
		<link>https://www.smalsresearch.be/bepelias-un-geocodeur-local-base-sur-best-address-2/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Thu, 25 Sep 2025 08:26:22 +0000</pubDate>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[GIS]]></category>
		<guid isPermaLink="false">https://www.smalsresearch.be/bepelias-un-geocodeur-local-base-sur-best-address-2/</guid>

					<description><![CDATA[Slides de la pr&#233;sentation effectu&#233;e &#224; FOSS4G 2025 (https://www.foss4g.be/) G&#233;ocoder (standardiser + localiser) un grand volume d&#8217;adresses avec un outil commercial am&#233;ricain est un probl&#232;me dans beaucoup de situations. D&#8217;une part parce que cela n&#233;cessite d&#8217;envoyer ses adresses en dehors de l&#8217;Europe, d&#8217;autre part parce que le r&#233;sultat ne sera pas conforme &#224; BeSt Address, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Slides de la pr&eacute;sentation effectu&eacute;e &agrave; FOSS4G 2025 (https://www.foss4g.be/)</p><p>G&eacute;ocoder (standardiser + localiser) un grand volume d&#8217;adresses avec un outil commercial am&eacute;ricain est un probl&egrave;me dans beaucoup de situations. D&#8217;une part parce que cela n&eacute;cessite d&#8217;envoyer ses adresses en dehors de l&#8217;Europe, d&#8217;autre part parce que le r&eacute;sultat ne sera pas conforme &agrave; BeSt Address, le standard administratif de BOSA pour les adresses en Belgique. Avec bePelias, une version am&eacute;lior&eacute;e du g&eacute;ocodeur open-source Pelias adapt&eacute; aux donn&eacute;es de BeSt Address, nous proposons une solution on-premise de g&eacute;ocodage, ayant des performances comparables aux grandes solutions commerciales.</p>







                <h1 class="wp-block-heading">Presentation</h1>
            
            


            <div data-wp-interactive="core/file" class="wp-block-file">
                <object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://www.smalsresearch.be/wp-content/uploads/2025/09/2025-09-25-bePelias-FOSS4G.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of 2025-09-25-bePelias-FOSS4G."></object>
                <a id="wp-block-file--media-c01bd3ce-c3b9-4b1a-82b5-a88f1637b8cd" href="https://www.smalsresearch.be/wp-content/uploads/2025/09/2025-09-25-bePelias-FOSS4G.pdf">2025-09-25-bePelias-FOSS4G</a><a href="https://www.smalsresearch.be/wp-content/uploads/2025/09/2025-09-25-bePelias-FOSS4G.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-c01bd3ce-c3b9-4b1a-82b5-a88f1637b8cd">Download</a>
                </div>
            ]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data quality en geografische gegevens</title>
		<link>https://www.smalsresearch.be/data-quality-en-geografische-gegevens/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Mon, 09 Dec 2024 09:03:13 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[data quality]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=21631</guid>

					<description><![CDATA[Geografische gegevens gebruiken stelt ons in staat om de analyse van gegevenskwaliteit te verbeteren. Een voorbeeld met BeSt Address]]></description>
										<content:encoded><![CDATA[
<p><a href="/qualite-de-donnees-et-donnees-geographiques/">Version en français</a></p>



<p>Data quality management, regelmatig besproken in deze blog, bestaat vaak uit het verwerken (vergelijken, vergemakkelijken, transformeren, “fonetiseren”, enz.) van karakterketens: namen van mensen, ondernemingen, steden, straten, telefoonnummers, e-mailadressen, &#8230;</p>



<p>In deze blogpost nemen we een kijkje naar het soort problemen dat kan worden opgespoord wanneer data gekoppeld raken met geografische coördinaten (breedtegraden, lengtegraden), rekening houdend met open data van het project <a href="https://opendata.bosa.be/index.nl.html">BeSt Address</a> (Belgian Street Address), van de FOD BOSA, authentieke bron voor adressen in België. Dit project verzamelt en consolideert gegevens van de gewesten (<a href="https://datastore.brussels/web/urbis-download">UrbiS</a> voor het Brussels Gewest, het <a href="https://www.vlaanderen.be/digitaal-vlaanderen/onze-diensten-en-platformen/gebouwen-en-adressenregister">Adressenregister</a> voor Vlaanderen en <a href="https://geoportail.wallonie.be/catalogue/2998bccd-dae4-49fb-b6a5-867e6c37680f.html">ICAR</a> voor Wallonië), die op hun beurt adresgegevens ophalen die verzameld zijn door elke gemeente, de instantie die verantwoordelijk is voor de toewijzing van adressen. Een reeks CSV- of XML-bestanden kan hier worden gedownload met de officiële spelling en geografische coördinaten van elk adres in België.</p>



<p>Onze ervaring heeft ons geleerd dat de BeSt Address data veruit de meest kwalitatieve zijn in vergelijking met andere officiële bronnen die adressen bevatten (Rijksregister, Werkgeversregister, Kruispuntbank van Ondernemingen, enz.), ten minste de klassieke aspecten van datakwaliteit (consistentie van namen, afwezigheid van afkortingen, enz.), het resultaat van de enorme inspanningen van de teams in de gewesten en de FOD BOSA. Toch konden we een aantal anomalieën vinden die alleen geïdentificeerd konden worden door naar de geografische gegevens en ruimtelijke analyses te kijken.</p>



<p>De meeste geïdentificeerde anomalieën komen overeen met verkeerd geplaatste adressen (verkeerde coördinaten) of problematische postcodes. Opschoning kan alleen worden uitgevoerd door de entiteiten op het terrein, d.w.z. de gemeenten.</p>



<p>Merk op dat de anomalieën die hieronder worden gepresenteerd het resultaat zijn van een “academische” analyse. Deze is al besproken met een aantal mensen van de relevante instanties (gewesten, rijksregister, FOD BOSA, NGI, etc.), en sommige van deze afwijkingen worden aanvaardbaar geacht. Deze blogpost wil geen kritiek uiten op de kwaliteit van de data, maar simpelweg een methodologie presenteren en deze illustreren met een relevante databron.</p>



<h2 class="wp-block-heading">Context</h2>



<p>Zoals in een <a href="/la-jointure-spatiale-la-cle-de-lanalytique-geographique/">vorige blogpost</a> is beschreven, bestaat België op het moment van schrijven uit 581 gemeenten (dit aantal zal de komende maanden afnemen na een reeks fusies van gemeenten). Elk van deze gemeenten bestaat uit een of meer postcodes (verbonden met een naam in Brussel en Vlaanderen), en elk van deze postcodes kan een of meer deelgemeenten of lokaliteiten bevatten (part of municipality in Wallonië, in BeSt Address-jargon).</p>



<p>Voor de onderstaande analyse baseerden we ons op de CSV-bestanden die beschikbaar zijn op <a href="https://opendata.bosa.be/">https://opendata.bosa.be/</a>, en voerden we vier soorten analyses uit:&nbsp;</p>



<ul class="wp-block-list">
<li>In de eerste analyse kijken we of alle busnummers op hetzelfde adres dicht bij elkaar liggen;</li>



<li>In de tweede vergelijken we de grenzen van de postcodes gedefinieerd door bpost (de Belgische postdienst) met de postcodes van adressn uit BeSt Adress;</li>



<li>In de derde analyse gaan we op zoek naar inconsistenties in straatnamen die geografisch dicht bij elkaar liggen (bv. een ‘rue Roi Albert I‘ naast een ’rue <strong>du</strong> Roi Albert I’);</li>



<li>In de vierde zoeken we naar geometrische afwijkingen in de vorm van een straat.</li>
</ul>



<h2 class="wp-block-heading">Inconsistentie van bussen</h2>



<p>Zoals <a href="/waarom-is-een-belgisch-adres-ingewikkeld/">eerder beschreven</a> bevat een adres altijd een &#8216;huisnummer&#8217;, dat verwijst naar het gebouw, en soms een &#8216; busnummer&#8217;, dat verwijst naar de wooneenheid binnen dat gebouw. In BeSt Address vinden we voor elk adres met een bus altijd een gelijkwaardig basisadres (zelfde straat, postcode, nummer) zonder bus. Laten we bijvoorbeeld zeggen dat de Fonsnylaan 20 twee bussen heeft, ‘bus 1’ en ‘bus 2’: we vinden drie items in BeSt Address: ‘Fonsnylaan 20’; ‘Fonsnylaan 20 bus 1’ en ‘Fonsnylaan 20 bus 2’. </p>



<p>Voor elk adres (straat, postcode, nummer) hebben we gecontroleerd of de coördinaten die bij de bussen horen niet abnormaal ver uit elkaar liggen. In de overgrote meerderheid van de gevallen hebben de verschillende bussen met hetzelfde nummer allemaal dezelfde coördinaten, maar dit is niet altijd het geval.</p>



<figure class="wp-block-image alignright"><a href="/wp-content/uploads/2024/11/2024-11-08_11h27_57.png"><img decoding="async" width="150" height="150" src="/wp-content/uploads/2024/11/2024-11-08_11h27_57-150x150.png" alt="" class="wp-image-21388"/></a></figure>



<p>Voor elk adres met busnummers schetsen we de ‘<em>minimum rotated rectangle</em>’ , d.w.z. de rechthoek met de minimale oppervlakte die alle punten omvat (de coördinaten van het ‘basis’-adres, voorgesteld door ‘/’, en die van elk van de bussen), waarbij elke rotatie van de rechthoek mogelijk is. Zo&#8217;n rechthoek die twee punten omvat zal een breedte van nul hebben en een lengte gelijk aan de afstand tussen de punten. In het geval van meerdere niet-uitgelijnde punten zullen beide afmetingen positief zijn.</p>



<p>De anomalieën werden voornamelijk gedetecteerd in Vlaanderen, met meer dan 100 gevallen. In Wallonië zijn de coördinaten van de verschillende bussen steeds gelijk aan de coördinaten van het basisadres. In Brussel werden slechts twee afwijkingen vastgesteld.</p>



<p>Om dit te illustreren nemen we twee voorbeelden, weergegeven in de figuur hieronder. Het eerste voorbeeld (Abdijstraat, 41 te 9140 Stekene) toont aan dat het basisadres (Abdijstraat, 41, voorgesteld door een ‘/’) zich op 11 kilometer van Abdijstraat, 41 bus 12 bevindt. We vonden bijna honderd zeer vergelijkbare voorbeelden.</p>



<p>Het tweede is een gevolg van het probleem dat in <a href="/waarom-is-een-belgisch-adres-ingewikkeld/">ons vorige artikel</a> werd geïllustreerd: om adressen tussen ‘1’ en ‘3’ te maken, kun je ze maken met huisnummers ‘1A’, ‘1B’, ‘1C’&#8230; (zonder busnummer), of ze allemaal ‘nummer 1’ noemen, maar met een busnummer ‘A’, ‘B’, ‘C’&#8230; In de ‘Diamantstraat’ in Diksmuide is (ongetwijfeld per ongeluk) een hybride keuze gemaakt: naast de 1 vinden we ‘1A’, ‘1B’, &#8230; ‘1F’, dan &#8230; ‘1 bus G’! Dit creëert een grote afstand tussen de 1 (basisadres) en de 1 (bus G).</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_12h48_05.png" target="_blank" rel="noopener"><img fetchpriority="high" decoding="async" width="1024" height="758" data-id="21346" src="/wp-content/uploads/2024/11/2024-11-07_12h48_05-1024x758.png" alt="" class="wp-image-21346" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05-1024x758.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05-300x222.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05-768x568.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05.png 1195w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_12h47_52-1.png" target="_blank" rel="noopener"><img decoding="async" width="1024" height="759" data-id="21347" src="/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-1024x759.png" alt="" class="wp-image-21347" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-1024x759.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-300x222.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-768x569.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1.png 1195w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<h2 class="wp-block-heading">Postgrenzen</h2>



<p>In deze analyse vergelijken we <a href="https://bgu.bpost.be/assets/9738c7c0-5255-11ea-8895-34e12d0f0423_x-shapefile_3812.zip">de door bpost gedefinieerde postcodegrenzen</a>. Om dit te doen, kijken we voor elk BeSt-adres in welke bpost-polygoon het valt en selecteren we de adressen waarvoor er een inconsistentie is tussen de BeSt-postcode en de bpost-postcode.</p>



<p>Om nauwkeurigheidsproblemen van een punt dat precies op de grens ligt te voorkomen, verwijderen we een strook van 50 meter uit de contouren in de postcodes die door bpost zijn gedefinieerd.&nbsp;Een inconsistentie wordt daarom slechts geïdentificeerd wanneer een adres in een P1 postcode (volgens BeSt) eigenlijk in de polygoon van een P2 postcode (volgens bpost) ligt, met P1 ≠ P2.</p>



<p>In de onderstaande afbeeldingen kunnen we enkele van de geïdentificeerde voorbeelden zien. De rode lijn stelt de grens voor die overeenkomt met de postcode in kwestie, volgens bpost (6700 voor het hoofdvoorbeeld). Binnen deze lijn bevinden zich een groot aantal BeSt-adressen die bij dezelfde postcode horen. Deze adressen worden hier niet getoond om het beeld niet te overladen. De gekleurde stippen buiten de rode omlijning zijn dus adressen die BeSt associeert met de code in de titel, maar die volgens het postkantoor de postcode hebben uit de legende (6704 in het blauw, 6706 in het oranje voor de 1<sup>e</sup> voorbeeld).</p>



<p>Merk op dat de geregistreerde &#8216;uitwisselingen&#8217; altijd binnen dezelfde gemeente liggen (Aarlen voor het voorbeeld). Terwijl BeSt ervan uitgaat dat alle adressen in de gemeente Aarlen op 6700 liggen, gaat bpost er wel van uit dat een deel van het grondgebied op 6704 (Guirsch) of 6706 (Autelbas-Barnich) ligt, twee postcodes die BeSt niet kent.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h49_43.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="728" data-id="21353" src="/wp-content/uploads/2024/11/2024-11-07_15h49_43-1024x728.png" alt="" class="wp-image-21353" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43-1024x728.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43-300x213.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43-768x546.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43.png 1235w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h48_10-1.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="728" data-id="21354" src="/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-1024x728.png" alt="" class="wp-image-21354" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-1024x728.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-300x213.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-768x546.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1.png 1242w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h47_20.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="732" data-id="21352" src="/wp-content/uploads/2024/11/2024-11-07_15h47_20-1024x732.png" alt="" class="wp-image-21352" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20-1024x732.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20-300x214.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20-768x549.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20.png 1250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h50_50.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="727" data-id="21350" src="/wp-content/uploads/2024/11/2024-11-07_15h50_50-1024x727.png" alt="" class="wp-image-21350" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50-1024x727.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50-300x213.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50-768x545.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50.png 1243w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>Dit is niet alleen een kwestie van een bestand (Shapefile) dat niet up-to-date is op de website van de Post: de online <a href="https://www.bpost.be/nl/adresvalidatie-tool">adresvalidatietool van bpost</a> is consistent met de getoonde postcodes.</p>



<p>Tijdens sommige gesprekken kregen we te horen dat gemeenten de vrijheid hebben om de toewijzing van postcodes op hun grondgebied te wijzigen. Hierover bestaat echter geen consensus: in de “<a href="https://www.belgif.be/downloads/best/20211019_Gids_voor_het_vaststellen_en_toekennen_van_adressen.pdf">Gids voor het vaststellen en toekennen van adressen</a>”, staat dat “Postcodes en hun systematisering zijn echter eigendom van de dienstverlener van de universele postdienst, in voorkomend geval (&#8230;) bpost. Ze kunnen alleen worden toegekend en gewijzigd op basis van een voorstel van bpost en na een gemotiveerd advies van het BIPT en de goedkeuring van de minister overeenkomstig artikel 135 van de wet van 21 maart 1991. (Artikel 22)”.</p>



<p>We troffen iets meer dan 8000 anomalieën aan in Wallonië (op een totaal van 1,85 miljoen relevante adressen), ~ 11&nbsp;000 in Vlaanderen (op 3,83 miljoen) en een marginaal aantal in Brussel (op 860 000). Merk op dat sommige afwijkingen aanvaardbaar zijn, zoals gebouwen (kastelen, boerderijen, enz.) die ver van de voordeur liggen. BeSt lokaliseert het gebouw, maar de postcode komt overeen met die van de ingang.</p>



<h2 class="wp-block-heading">Inconsistentie van namen</h2>



<p>Voor deze analyse gaan we een &#8216;klassieke&#8217; benadering op basis van karakterketen combineren met een geografische benadering. We starten met het identificeren van de lijst van alle paren van aangrenzende straten (d.w.z. de ene heeft een adres op minder dan 100 meter van de andere). Vervolgens controleren we op kleine verschillen in straatnamen. We zien meestal twee situaties:</p>



<ul class="wp-block-list">
<li>Straten die verschillende gemeenten doorkruisen en in elke gemeente een andere schrijfwijze hebben: ‘Rue&nbsp;<strong>de</strong>&nbsp;Monténégro, 1060’, vs ‘Rue&nbsp;<strong>du</strong>&nbsp;Monténégro, 1190’;</li>



<li>Straten met twee verschillende schrijfwijzen binnen dezelfde gemeente: ‘Chaussée Brunehau<strong>lt</strong>’ of ‘Chaussée Brunehau<strong>t</strong>’, in 4452 in beide gevallen.</li>
</ul>



<p>Er zijn ook een paar fout-positieven: ‘Rue de Mars’ vs ‘Rue de Mai’.&nbsp;We schrappen namen uit onze vergelijkingen die identiek zijn op een geïsoleerde laatste letter na (“Hensellaan A” vs “Hensellaan B”), evenals namen waarbij slechts een cijfer verandert (‘5de Zijweg’ vs ‘6de Zijweg’).</p>



<p>Met betrekking tot de eerste situatie, waarbij de naam verandert wanneer men van de ene gemeente naar de andere gaat, is het betreurenswaardig dat er een gebrek aan consistentie is, wat in strijd is met artikel 5 van de <a href="https://www.ibz.rrn.fgov.be/fileadmin/user_upload/fr/rn/circulaires/BeSt_20201104_F.pdf">hierboven beschreven richtlijn</a>, waarin staat dat “[a]ls een weg zich uitstrekt over het grondgebied van meerdere gemeenten en die weg dezelfde naam behoudt, dan moeten die gemeenten erop toezien dat de spelling van die straatnaam in alle betrokken gemeenten dezelfde is”. De richtlijn is echter niet bindend, gemeenten kunnen dus een eigen spelling behouden.</p>



<figure class="wp-block-image alignright"><a href="/wp-content/uploads/2024/11/2024-11-08_09h31_07.png"><img loading="lazy" decoding="async" width="150" height="150" src="/wp-content/uploads/2024/11/2024-11-08_09h31_07-150x150.png" alt="" class="wp-image-21360"/></a><figcaption class="wp-element-caption"><span style="color: #999999;">Credit: Google StreetView</span></figcaption></figure>



<p>Het is echter de moeite waard om je af te vragen of de spelling die in BeSt wordt gebruikt (zoals doorgegeven door de gemeenten) echt de juiste is. Bijvoorbeeld, ‘Rue Walckiers’ in 1030 Schaarbeek is een uitbreiding van ‘Rue Walkiers’ in 1140 Evere. Het (enige) Schaarbeekse bord voor deze straat schrijft het echter als &#8230; ‘Rue Walkiers’! Hetzelfde geldt voor het (kleine) deel van de Tervuerenlaan in Oudergem, dat als dusdanig gespeld wordt in Sint-Pieters-Woluwe en op de straatnaambordjes in Oudergem, maar in Oudergem vermeld staat als ‘Tervurenlaan’. Er zijn nog veel meer voorbeelden.</p>



<p>De situatie waarin, binnen dezelfde gemeente, soms zelfs voor dezelfde postcode, twee straatsecties niet op dezelfde manier worden gespeld, is een duidelijke indicatie van een probleem met de kwaliteit van de gegevens. We hebben tientallen van dergelijke gevallen geïdentificeerd, voornamelijk in Wallonië, en noemen er hier slechts enkele ter illustratie.&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h54_11.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21362" src="/wp-content/uploads/2024/11/2024-11-08_09h54_11-1024x684.png" alt="" class="wp-image-21362" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11.png 1309w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h54_26.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="687" data-id="21363" src="/wp-content/uploads/2024/11/2024-11-08_09h54_26-1024x687.png" alt="" class="wp-image-21363" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26-1024x687.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26-768x515.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26.png 1306w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h57_37.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21361" src="/wp-content/uploads/2024/11/2024-11-08_09h57_37-1024x684.png" alt="" class="wp-image-21361" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37.png 1312w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h55_12.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="683" data-id="21364" src="/wp-content/uploads/2024/11/2024-11-08_09h55_12-1024x683.png" alt="" class="wp-image-21364" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12-1024x683.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12-768x512.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12.png 1310w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h55_28.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="683" data-id="21365" src="/wp-content/uploads/2024/11/2024-11-08_09h55_28-1024x683.png" alt="" class="wp-image-21365" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28-1024x683.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28-768x512.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28.png 1306w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h55_50.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21366" src="/wp-content/uploads/2024/11/2024-11-08_09h55_50-1024x684.png" alt="" class="wp-image-21366" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50.png 1312w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h56_23.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21367" src="/wp-content/uploads/2024/11/2024-11-08_09h56_23-1024x684.png" alt="" class="wp-image-21367" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23.png 1307w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h00_31.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="685" data-id="21368" src="/wp-content/uploads/2024/11/2024-11-08_10h00_31-1024x685.png" alt="" class="wp-image-21368" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31-1024x685.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31-768x514.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31.png 1311w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<h2 class="wp-block-heading">Inconsistente geometrie</h2>



<p>Hier bekijken we de geometrische vorm die bestaat uit de opeenvolging van punten van adressen met dezelfde pariteit, voor dezelfde straat en postcode. Vervolgens berekenen we een aantal metrieken op deze lijn, ervan uitgaande dat de hoogste waarden duiden op een afwijking.</p>



<p>We hebben op experimentele basis een aantal metrieken gedefinieerd. We zullen er slechts twee nader toelichten waarvan we vonden dat ze het meest relevant waren voor de analyse. In een diepgaande analyse moeten ze echter worden gecombineerd met andere:&nbsp;</p>



<ul class="wp-block-list">
<li>delta_ratio: voor elk paar adressen in dezelfde straat en van dezelfde pariteit berekenen we de verhouding van het verschil tussen het numerieke deel van de huisnummers en de afstand. Een hoge waarde geeft aan dat twee huizen met zeer verschillende huisnummers abnormaal dicht bij elkaar liggen. Dit is vaak te verklaren door twee verschillende fenomenen:
<ul class="wp-block-list">
<li>Normale situatie: een “cirkelvormige” straat, waarin het laatste nummer naast het eerste staat,</li>



<li>Abnormale situatie: op de hoek tussen twee straten is een gebouw toegewezen aan de verkeerde straat. Of, meer algemeen, een inversie tussen twee nummers;</li>
</ul>
</li>



<li>prev_to_prev²_ratio: over het algemeen wordt verwacht dat een getal dichter bij het volgende getal (van dezelfde pariteit) ligt dan het getal dat daarop volgt. Indien nummer 2 veel dichter bij nummer 6 ligt dan bij nummer 4, is het waarschijnlijk dat nummer 4 op de verkeerde plaats staat. Hier berekenen we de ratio tussen de afstand tussen een nummer en het vorige nummer (bijvoorbeeld tussen 4 en 6) en de afstand tussen dat nummer en het nummer ervoor (bijvoorbeeld tussen 2 en 6). Een waarde van 100 geeft dus aan dat een getal (aangegeven met een &#8216;hn:&#8230;&#8217; in de titel van de grafiek) 100 keer dichter bij twee nummers achter ligt dan bij het vorige nummer.</li>
</ul>



<p>De eerste metriek zal adressen uitlichten die zich in de juiste straat bevinden, maar niet op de juiste plaats. De tweede geeft adressen aan die ver verwijderd zijn van andere nummers in dezelfde straat.</p>



<p>In de volgende illustraties zijn de stippen opeenvolgend gekleurd volgens de numerieke waarde van het huisnummer, gaande van paars voor de laagste waarde tot geel voor de hoogste. Een lijn verbindt deze stippen in numerieke volgorde.&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h24_00.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="738" data-id="21376" src="/wp-content/uploads/2024/11/2024-11-08_10h24_00-1024x738.png" alt="" class="wp-image-21376" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00-1024x738.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00-768x553.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">16 vlak naast 116</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h26_37.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="734" data-id="21375" src="/wp-content/uploads/2024/11/2024-11-08_10h26_37-1024x734.png" alt="" class="wp-image-21375" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37-1024x734.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37-300x215.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37-768x551.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37.png 1248w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">4547 vlak naast 27</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h28_06.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="735" data-id="21377" src="/wp-content/uploads/2024/11/2024-11-08_10h28_06-1024x735.png" alt="" class="wp-image-21377" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06-1024x735.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06-300x215.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06-768x551.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06.png 1249w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Cirkelvormige straat (geen afwijkingen)</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h29_12.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="742" data-id="21374" src="/wp-content/uploads/2024/11/2024-11-08_10h29_12-1024x742.png" alt="" class="wp-image-21374" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12-1024x742.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12-300x217.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12-768x557.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12.png 1242w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">1179 vlak naast 117</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">delta ratio</figcaption></figure>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h33_38.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="737" data-id="21378" src="/wp-content/uploads/2024/11/2024-11-08_10h33_38-1024x737.png" alt="" class="wp-image-21378" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38-1024x737.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38-768x553.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">18 misplaatst</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h34_32.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="737" data-id="21381" src="/wp-content/uploads/2024/11/2024-11-08_10h34_32-1024x737.png" alt="" class="wp-image-21381" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32-1024x737.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32-768x553.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32.png 1252w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">40 misplaatst</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h34_49.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="734" data-id="21379" src="/wp-content/uploads/2024/11/2024-11-08_10h34_49-1024x734.png" alt="" class="wp-image-21379" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49-1024x734.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49-300x215.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49-768x550.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49.png 1248w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">verschillende misplaatste nummers</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h38_29.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="736" data-id="21380" src="/wp-content/uploads/2024/11/2024-11-08_10h38_29-1024x736.png" alt="" class="wp-image-21380" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29-1024x736.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29-768x552.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29.png 1253w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">339 misplaatst</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">prev to prev² ratio</figcaption></figure>



<p>De analyse van deze anomalieën moet vaak van geval tot geval worden bekeken, om te bepalen of het om een duidelijke fout gaat of om de weerspiegeling van een enigszins ongebruikelijke bepaling. Dit werk kan enkel uitgevoerd worden door de lokale overheden, die de informatie doorgeven aan de gewesten en vervolgens aan het FOD BOSA.</p>



<h2 class="wp-block-heading">Het slotwoord</h2>



<p>De code (Python-notebook) waarmee we al deze anomalieën hebben geïdentificeerd, is <a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/BestAddressAnomalies.ipynb">beschikbaar op Github</a> en biedt een interactieve weergave van alle kaarten die hierboven zijn gepresenteerd. Het is niet aan ons om voor elk van de anomalieën te bepalen of het werkelijk een fout is (er zullen veel fout-positieven zijn), en zo ja, op welk niveau het zich voordoet: de gemeente, de consolidatie door de regio&#8217;s of het FOD BOSA, bpost, het straatnaambord, enz.&nbsp;</p>



<p>Bovendien blijft het aantal probleemgevallen klein in vergelijking met de 6,5 miljoen adressen in BeSt Address. Toch vonden we de methodologie interessant genoeg om te publiceren. Ze zou ook kunnen worden toegepast op andere datasets, zoals OpenStreetMap of andere open bronnen. </p>



<p>Hoe een databank ook wordt gevuld, er sluipen altijd fouten in. De gewesten en de FOD BOSA verrichten al bergen werk om ervoor te zorgen dat de gegevens van zeer hoge kwaliteit zijn. Het zal echter altijd mogelijk zijn om nieuwe problemen op te sporen. Met dit artikel hopen we zelf een klein steentje bij te dragen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><span style="color: #999999;">Deze post is een individuele bijdrage van Vandy Berten, gespecialiseerd in data science bij Smals Research. Dit artikel is geschreven onder zijn eigen naam en weerspiegelt op geen enkele wijze de standpunten van Smals.</span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Qualité de données et données géographiques</title>
		<link>https://www.smalsresearch.be/qualite-de-donnees-et-donnees-geographiques/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Wed, 27 Nov 2024 08:00:00 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[data quality]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=21336</guid>

					<description><![CDATA[Utiliser des données géographiques permet d'améliorer l'analyse de la qualité des données. Un exemple avec BeSt Address]]></description>
										<content:encoded><![CDATA[
<p><a href="/data-quality-en-geografische-gegevens/" data-type="post" data-id="21631"><em>Nederlandstalige versie</em></a></p>



<p>La gestion de la qualité de données (Data Quality), régulièrement abordée dans ce blog, consiste souvent à traiter (comparer, simplifier, transformer, &#8220;phonétiser&#8221;&#8230;) des chaînes de caractères&nbsp;: des noms de personnes, d&#8217;entreprises, de villes, de rues, numéros de téléphones, adresses email&#8230;</p>



<p>Dans cet article, nous allons considérer le genre de problèmes que l&#8217;on peut détecter lorsque les données sont associées à des coordonnées géographiques (latitudes, longitudes), en considérant les données ouvertes du projet &#8220;<a href="https://opendata.bosa.be/index.fr.html">BeSt Address</a>&#8221; (pour &#8220;Belgian Street Address&#8221;), du SPF BOSA (Service Public Fédéral Stratégie &amp; Appui), source authentique des adresses en Belgique. Ce projet agrège et consolide les données des régions (<a href="https://datastore.brussels/web/urbis-download">UrbiS</a> pour la région bruxelloise, le <a href="https://www.vlaanderen.be/digitaal-vlaanderen/onze-diensten-en-platformen/gebouwen-en-adressenregister">Adressenregister</a> pour la Flandre et <a href="https://geoportail.wallonie.be/catalogue/2998bccd-dae4-49fb-b6a5-867e6c37680f.html">ICAR</a> pour la Wallonie), qui elles-mêmes récupèrent les données d&#8217;adresses collectées par chaque commune, autorité responsable de l&#8217;attribution des adresses. On peut y télécharger une série de fichiers CSV ou XML, permettant, pour chaque adresse en Belgique, d&#8217;en connaitre l&#8217;orthographe officielle ainsi que les coordonnées géographiques.</p>



<p>Notre expérience nous a montré que les données des BeSt Address sont de loin les données de la meilleure qualité par rapport à d&#8217;autres sources officielles contenant des adresses (Registre national, Répertoire des employeurs, Banque Carrefour des Entreprises&#8230;), à tout le moins sur les aspects classiques de la qualité de données (cohérence des noms, absence d&#8217;abréviation&#8230;), résultat de l&#8217;énorme travail réalisé par les équipes des régions et du SPF BOSA. Néanmoins, nous avons pu y trouver un certain nombre d&#8217;anomalies identifiables uniquement en considérant les données géographiques et des analyses spatiales.</p>



<p>Les anomalies identifiées correspondent en grande majorité à des adresses mal placées (mauvaises coordonnées), ou à des codes postaux problématiques. Le nettoyage ne pourra être fait que par les entités sur le terrain, à savoir les communes.</p>



<p>Notons que les anomalies présentées ci-dessous sont issues d&#8217;une analyse &#8220;académique&#8221;. Celle-ci a déjà été discutée avec un certain nombre de personnes des instances concernées (régions, registre national, SPF BOSA, IGN&#8230;), et certaines de ces anomalies sont considérées comme acceptables. Le but de cet article n&#8217;est pas de critiquer la qualité des données, mais simplement de présenter une méthodologie, en l&#8217;illustrant avec une source de données pertinentes.</p>



<h2 class="wp-block-heading">Contexte</h2>



<p>Comme déjà expliqué dans&nbsp;<a href="/la-jointure-spatiale-la-cle-de-lanalytique-geographique/">un article précédent</a>, la Belgique est composée, à l’heure d’écrire ces lignes, de 581 communes (ce nombre diminuera dans les prochains mois, suite à une série de fusions de communes). Chacune de celles-ci est composée d&#8217;un ou plusieurs codes postaux (associés à un nom à Bruxelles et en Flandre), et chacun de ces codes postaux peut contenir une ou plusieurs sous-communes, ou localités (part of municipality en Wallonie, dans le jargon BeSt Address).</p>



<p>Pour l&#8217;analyse ci-dessous, nous sommes partis des fichiers CSV disponibles sur<a href="https://opendata.bosa.be/" rel="nofollow"> https://opendata.bosa.be/</a>, et avons mené quatre types d&#8217;analyse&nbsp;:&nbsp;</p>



<ul class="wp-block-list">
<li>Dans la première, nous regardons si tous les numéros de boite d&#8217;une même adresse sont bien localisés proches les uns des autres ;</li>



<li>Dans la deuxième, nous comparons les frontières des codes postaux définis par bpost (la poste belge) avec les codes postaux des adresses BeSt Address ;</li>



<li>Dans la troisième, nous recherchons des incohérences sur des noms de rues géographiquement proches (par exemple une &#8220;Rue Roi Albert I&#8221; juste à côté d&#8217;une &#8220;Rue <strong>du</strong> Roi Albert I&#8221;) ;</li>



<li>Dans la quatrième, nous recherchons des anomalies géométriques dans la forme d&#8217;une rue.</li>
</ul>



<h2 class="wp-block-heading">Incohérence de boites</h2>



<p>Comme <a href="/pourquoi-une-adresse-belge-cest-complique/">détaillé précédemment</a>, une adresse contient toujours un &#8220;numéro de police&#8221;, ou numéro de maison, qui désigne le bâtiment, et, parfois, un &#8220;numéro de boite&#8221;, qui désigne l&#8217;unité d&#8217;habitation au sein de ce bâtiment. Dans BeSt Address, pour chaque adresse avec une boite, nous trouvons toujours une adresse équivalente de base (même rue, code postal, numéro) sans boite. Imaginons qu&#8217;au 20 de l&#8217;avenue Fonsny, on trouve deux boites, &#8220;boite 1&#8221; et &#8220;boite 2&#8221;&nbsp;: on trouvera trois items dans BeSt Address&nbsp;: &#8220;Avenue Fonsny 20&#8221; ; &#8220;Avenue Fonsny 20 boite 1&#8221; et &#8220;Avenue Fonsny 20 boite 2&#8221;.&nbsp;</p>



<p>Nous avons regardé pour chaque adresse (rue, code postal, numéro) si les coordonnées associées aux boites ne sont pas anormalement éloignées. Dans une grande majorité des cas, les différentes boites d&#8217;un même numéro auront toutes les mêmes coordonnées, mais ça n&#8217;est pas toujours le cas.</p>



<figure class="wp-block-image alignright"><a href="/wp-content/uploads/2024/11/2024-11-08_11h27_57.png"><img loading="lazy" decoding="async" width="150" height="150" src="/wp-content/uploads/2024/11/2024-11-08_11h27_57-150x150.png" alt="" class="wp-image-21388"/></a></figure>



<p>Pour chaque adresse ayant des numéros de boite, nous construisons pour ce faire le &#8220;rectangle orienté minimum&#8221; (<em>minimum rotated rectangle</em>), à savoir le rectangle de surface minimale englobant l&#8217;ensemble des points (les coordonnées de l&#8217;adresse &#8220;de base&#8221;, représentée par &#8220;/&#8221;, ainsi que celles de chacune des boites), en autorisant toute rotation du rectangle. Un tel rectangle englobant deux points aura une largeur nulle et une longueur équivalente à la distance entre les points. En cas de points multiples non alignés, les deux dimensions seront positives.</p>



<p>Les anomalies ont essentiellement été détectées en Flandre, avec plus de 100 cas. En Wallonie, les coordonnées des différentes boites sont toujours égales aux coordonnées de l&#8217;adresse de base. À Bruxelles, seules deux anomalies ont été détectées.</p>



<p>Pour illustrer ceci, prenons deux exemples, représentés dans la figure ci-dessous. Le premier exemple (Abdijstraat, 41 à 9140 Stekene) montre que l&#8217;adresse de base (Abdijstraat, 41, représenté par un &#8220;/&#8221;) est située à 11 kilomètres de Abdijstraat, 41 bus 12. Nous avons trouvé près d&#8217;une centaine d&#8217;exemples très similaires.</p>



<p>Le second est une conséquence du problème illustré dans <a href="/pourquoi-une-adresse-belge-cest-complique/">notre article précédent</a>&nbsp;: pour créer des adresses entre le &#8220;1&#8221; et le &#8220;3&#8221;, on peut soit créer les numéros de maison &#8220;1A&#8221;, &#8220;1B&#8221;, &#8220;1C&#8221;&#8230; (sans numéro de boite), soit toutes les appeler &#8220;numéro 1&#8221;, mais avec un numéro de boite &#8220;A&#8221;, &#8220;B&#8221;, &#8220;C&#8221;&#8230; Dans la &#8220;Diamantstraat&#8221; à Dixmude, un choix hybride (sans doute par erreur) a été fait&nbsp;: à côté du 1, on retrouve bien le &#8220;1A&#8221;, &#8220;1B&#8221;, &#8230; &#8220;1F&#8221;, puis &#8230; &#8220;1 boite G&#8221;&nbsp;! Ceci génère une grande distance entre le 1 (adresse de base) et le 1 (boite G).&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_12h48_05.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="758" data-id="21346" src="/wp-content/uploads/2024/11/2024-11-07_12h48_05-1024x758.png" alt="" class="wp-image-21346" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05-1024x758.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05-300x222.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05-768x568.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h48_05.png 1195w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_12h47_52-1.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="759" data-id="21347" src="/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-1024x759.png" alt="" class="wp-image-21347" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-1024x759.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-300x222.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1-768x569.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_12h47_52-1.png 1195w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<h2 class="wp-block-heading">Frontières postales</h2>



<p>Dans cette analyse, nous comparons <a href="https://bgu.bpost.be/assets/9738c7c0-5255-11ea-8895-34e12d0f0423_x-shapefile_3812.zip">les frontières des codes postaux définies par bpost</a>. Pour ce faire, pour chaque adresse de BeSt, nous regardons dans quel polygone de bpost elle tombe et on retient celles pour lesquelles il y a une inconsistance entre le code postal de BeSt et celui de bpost.</p>



<p>Pour éviter les problèmes de précision d&#8217;un point qui serait juste à la frontière, on supprime un ruban de 50 mètres des contours dans les codes postaux définis par bpost . On identifie donc une inconsistance uniquement quand une adresse d&#8217;un code postal P1 (selon BeSt) est réellement dans le polygone d&#8217;un code postal P2 (selon bpost), avec P1 ≠ P2.</p>



<p>Dans les images ci-dessous, on peut voir quelques-uns des exemples identifiés. La ligne rouge représente la limite correspondant au code postal en titre, selon bpost (6700 pour l&#8217;exemple principal). À l&#8217;intérieur de cette ligne sont localisées un grand nombre d&#8217;adresses de BeSt, associées au même code postal, que nous ne représentons pas ici pour ne pas surcharger l&#8217;image. Les points de couleurs en dehors du contour rouge sont donc des adresses que BeSt associe au code en titre, mais qui, selon la poste, sont du code postal indiqué dans la légende (6704 en bleu, 6706 en orange pour le 1er exemple).</p>



<p>Notons que les &#8220;échanges&#8221; relevés se font toujours au sein d&#8217;une même commune (Arlon pour l&#8217;exemple). Mais alors que BeSt considère que toutes les adresses de la commune d&#8217;Arlon sont sur 6700, bpost considère qu&#8217;une partie du territoire est sur 6704 (Guirsch) ou 6706 (Autelbas-Barnich), deux codes postaux inconnus de BeSt.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h49_43.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="728" data-id="21353" src="/wp-content/uploads/2024/11/2024-11-07_15h49_43-1024x728.png" alt="" class="wp-image-21353" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43-1024x728.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43-300x213.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43-768x546.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h49_43.png 1235w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h48_10-1.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="728" data-id="21354" src="/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-1024x728.png" alt="" class="wp-image-21354" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-1024x728.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-300x213.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1-768x546.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h48_10-1.png 1242w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h47_20.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="732" data-id="21352" src="/wp-content/uploads/2024/11/2024-11-07_15h47_20-1024x732.png" alt="" class="wp-image-21352" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20-1024x732.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20-300x214.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20-768x549.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h47_20.png 1250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-07_15h50_50.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="727" data-id="21350" src="/wp-content/uploads/2024/11/2024-11-07_15h50_50-1024x727.png" alt="" class="wp-image-21350" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50-1024x727.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50-300x213.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50-768x545.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-07_15h50_50.png 1243w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>Il ne s&#8217;agit pas uniquement d&#8217;une question d&#8217;un fichier (Shapefile) qui ne serait pas à jour sur le site de bpost&nbsp;: l&#8217;outil en ligne de <a href="https://www.bpost.be/fr/outil-de-validation-des-adresses">validation d&#8217;adresse de bpost</a> est bien cohérent avec les codes postaux présentés.</p>



<p>Lors de certaines discussions, il nous a été répondu que les communes avaient la liberté de modifier, au sein de leur territoire, l&#8217;attribution des codes postaux. Mais il n&#8217;y a pas de consensus là-dessus&nbsp;: dans le &#8220;<a href="https://www.belgif.be/downloads/best/20211019_Guide_en_mati%C3%A8re_de_constatation_et_attribution_d_adresses.pdf">Guide en matière de constatation et attribution d’adresses</a>&#8220;, il est dit que &#8220;(…) les codes postaux et leur systématisation sont la propriété du prestataire du service postal universel, en l’occurrence (&#8230;) bpost. Ils ne peuvent être attribués et modifiés que sur proposition de bpost, et après avis motivé de l’IBPT et l’approbation du ministre conformément à l’article 135 de la loi du 21 mars 1991. (Article 22)&#8221;.</p>



<p>Nous avons trouvé un peu plus de 8.000 anomalies en Wallonie (sur un total de 1.85 M adresses pertinentes), ~11.000 en Flandre (sur 3.83 M), et un nombre marginal à Bruxelles (sur 860.000). Notons que certaines anomalies sont acceptables, comme par exemple le cas de bâtiments (château, ferme…) loin de la porte d&#8217;entrée. BeSt localise le bâtiment, mais son code postal correspond à celui de son entrée.</p>



<h2 class="wp-block-heading">Incohérence de noms</h2>



<p>Pour cette analyse, nous allons combiner une approche &#8220;classique&#8221; basée sur des comparaisons de chaînes de caractères, et une approche géographique. Nous commençons par identifier la liste de tous les couples de rues adjacentes (c&#8217;est-à-dire que l&#8217;une a une adresse distante de moins de 100 mètres d&#8217;une adresse de l&#8217;autre). On regarde ensuite si l&#8217;on ne trouve pas de petites différences dans les noms de rue. Nous rencontrons typiquement deux situations&nbsp;:</p>



<ul class="wp-block-list">
<li>Des rues traversant plusieurs communes avec une orthographe différente dans chacune d&#8217;elle&nbsp;: &#8220;Rue <strong>de</strong> Monténégro, 1060&#8243;, vs &#8220;Rue <strong>du</strong> Monténégro, 1190&#8243; ;</li>



<li>Des rues avec deux orthographes différentes au sein de la même commune&nbsp;: &#8220;Chaussée Brunehau<strong>lt</strong>&#8221; ou &#8220;Chaussée Brunehau<strong>t</strong>&#8220;, à 4452 dans les 2 cas.</li>
</ul>



<p>On trouvera également quelques faux positifs&nbsp;: &#8220;Rue de Mars&#8221; vs &#8220;Rue de Mai&#8221;. On élimine de nos comparaisons les noms identiques à part une dernière lettre isolée (&#8220;Hensel laan A&#8221; vs &#8220;Hensel laan B&#8221;), ainsi que les noms où seul un chiffre change (&#8220;5de Zijweg&#8221; vs &#8220;6de Zijweg&#8221;).</p>



<p>Concernant la première situation, où le changement de nom arrive au passage d&#8217;une commune à l&#8217;autre, on peut regretter le manque de cohérence qui va à l&#8217;encontre de l&#8217;article 5 de la <a href="https://www.ibz.rrn.fgov.be/fileadmin/user_upload/fr/rn/circulaires/BeSt_20201104_F.pdf">directive décrite plus haut</a>, qui dit que &#8220;[d]ans l’hypothèse où une voie s’étend sur le territoire de plusieurs communes, et que cette voie garde le même nom, ces communes doivent s’assurer que l’orthographe de ce nom de rue soit identique dans toutes les communes concernées&#8221;. La directive n&#8217;est cependant pas contraignante, les communes sont donc libres de garder leur orthographe propre.</p>



<figure class="wp-block-image alignright"><a href="/wp-content/uploads/2024/11/2024-11-08_09h31_07.png"><img loading="lazy" decoding="async" width="150" height="150" src="/wp-content/uploads/2024/11/2024-11-08_09h31_07-150x150.png" alt="" class="wp-image-21360"/></a><figcaption class="wp-element-caption"><span style="color: #999999;">Credit: Google StreetView</span></figcaption></figure>



<p>Il est cependant pertinent de se demander si l&#8217;orthographe présente dans BeSt (transmise par les communes) est réellement la bonne. On peut par exemple citer la &#8220;Rue Wal<strong>ck</strong>iers&#8221; à 1030 Schaerbeek, qui prolonge la &#8220;Rue Wal<strong>k</strong>iers&#8221; à 1140 Evere. Or, la (seule) plaque schaerbeekoise de la rue l&#8217;orthographie &#8230; &#8220;Rue Wal<strong>k</strong>iers&#8221;&nbsp;! Il en va de même pour la (petite) portion auderghemoise de l&#8217;avenue de Terv<strong>uer</strong>en, orthographiée comme telle à Woluwé-Saint-Pierre, ainsi que sur les plaques de rue à Auderghem, mais reprise dans BeSt comme &#8220;Avenue de Ter<strong>vur</strong>en&#8221; à Auderghem. Nous pourrions citer bien d&#8217;autres exemples.</p>



<p>La situation où, au sein d&#8217;une même commune, parfois même pour un même code postal, deux portions de rue n&#8217;ont pas la même orthographe, dénote de façon plus évidente d&#8217;un problème de qualité de données. Nous en avons identifié des dizaines, principalement en Wallonie, nous n&#8217;en reprenons ici que quelques-uns pour illustration.&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h54_11.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21362" src="/wp-content/uploads/2024/11/2024-11-08_09h54_11-1024x684.png" alt="" class="wp-image-21362" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_11.png 1309w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h54_26.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="687" data-id="21363" src="/wp-content/uploads/2024/11/2024-11-08_09h54_26-1024x687.png" alt="" class="wp-image-21363" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26-1024x687.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26-768x515.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h54_26.png 1306w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h57_37.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21361" src="/wp-content/uploads/2024/11/2024-11-08_09h57_37-1024x684.png" alt="" class="wp-image-21361" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h57_37.png 1312w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h55_12.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="683" data-id="21364" src="/wp-content/uploads/2024/11/2024-11-08_09h55_12-1024x683.png" alt="" class="wp-image-21364" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12-1024x683.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12-768x512.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_12.png 1310w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h55_28.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="683" data-id="21365" src="/wp-content/uploads/2024/11/2024-11-08_09h55_28-1024x683.png" alt="" class="wp-image-21365" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28-1024x683.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28-768x512.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_28.png 1306w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h55_50.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21366" src="/wp-content/uploads/2024/11/2024-11-08_09h55_50-1024x684.png" alt="" class="wp-image-21366" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h55_50.png 1312w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_09h56_23.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="684" data-id="21367" src="/wp-content/uploads/2024/11/2024-11-08_09h56_23-1024x684.png" alt="" class="wp-image-21367" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23-1024x684.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23-300x200.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23-768x513.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_09h56_23.png 1307w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h00_31.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="685" data-id="21368" src="/wp-content/uploads/2024/11/2024-11-08_10h00_31-1024x685.png" alt="" class="wp-image-21368" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31-1024x685.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31-300x201.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31-768x514.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h00_31.png 1311w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<h2 class="wp-block-heading">Géométrie incohérente</h2>



<p>Nous considérons ici la forme géométrique composée de la séquence de points des adresses de même parité, pour une même rue et un même code postal. Sur cette ligne, nous calculons ensuite un certain nombre de métriques, en supposant que les valeurs les plus élevées dénotent d&#8217;une anomalie.</p>



<p>Nous avons défini de façon expérimentale un certain nombre de métriques. Nous allons juste en détailler deux qui nous ont paru les plus pertinentes à l&#8217;analyse. Mais dans une analyse approfondie, il conviendra de les combiner avec d&#8217;autres&nbsp;:&nbsp;</p>



<ul class="wp-block-list">
<li>delta_ratio&nbsp;: pour chaque couple d&#8217;adresses d&#8217;une même rue et de même parité, on calcule le ratio de la différence entre la partie numérique des numéros de maison et la distance. Une valeur élevée indique que deux maisons de numéros très distants sont anormalement proches. Ceci s&#8217;explique souvent par deux phénomènes distincts&nbsp;:
<ul class="wp-block-list">
<li><p>Situation normale&nbsp;: une rue &#8220;circulaire&#8221;, dans laquelle le dernier numéro se situe à côté du premier,</p></li>



<li><p><span style="color: initial;">Situation anormale&nbsp;: sur le coin entre deux rues, un bâtiment a été assigné à la mauvaise rue. Ou plus généralement, une inversion entre deux numéros ;</span></p></li>
</ul>
</li>



<li>prev_to_prev²_ratio&nbsp;: on s&#8217;attend en général à ce qu&#8217;un numéro soit plus proche du numéro suivant (de même parité) que de celui d&#8217;encore après. Si le numéro 2 est beaucoup plus proche du 6 que du 4, il est probable que le 4 soit mal placé. On calcule ici le ratio de la distance d&#8217;un numéro au numéro précédent (par ex. entre 4 et 6) sur la distance entre ce numéro et celui qui précède le précédent (par ex. entre 2 et 6). Une valeur de 100 indique donc qu&#8217;un numéro (indiqué un &#8216;hn:&#8230;&#8217; dans le titre du graphique) est 100 fois plus proche de deux numéros en arrière que du numéro précédent.</li>
</ul>



<p>La première métrique mettra en évidence des adresses qui ont été localisées dans la bonne rue, mais pas au bon endroit. La seconde fera ressortir des adresses qui ont été localisées très loin des autres numéros de la même rue.</p>



<p>Dans les illustrations suivantes, les points sont colorés séquentiellement selon la valeur numérique du numéro de police, allant de mauve pour la plus petite valeur à jaune pour la plus grande. Une ligne relie ces points dans l&#8217;ordre numérique.&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h24_00.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="738" data-id="21376" src="/wp-content/uploads/2024/11/2024-11-08_10h24_00-1024x738.png" alt="" class="wp-image-21376" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00-1024x738.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00-768x553.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h24_00.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">16 juste à côté du 116</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h26_37.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="734" data-id="21375" src="/wp-content/uploads/2024/11/2024-11-08_10h26_37-1024x734.png" alt="" class="wp-image-21375" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37-1024x734.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37-300x215.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37-768x551.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h26_37.png 1248w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">4547 juste à côté du 27</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h28_06.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="735" data-id="21377" src="/wp-content/uploads/2024/11/2024-11-08_10h28_06-1024x735.png" alt="" class="wp-image-21377" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06-1024x735.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06-300x215.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06-768x551.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h28_06.png 1249w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Rue circulaire (pas d&#8217;anomalie)</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h29_12.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="742" data-id="21374" src="/wp-content/uploads/2024/11/2024-11-08_10h29_12-1024x742.png" alt="" class="wp-image-21374" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12-1024x742.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12-300x217.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12-768x557.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h29_12.png 1242w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">1179 juste à côté du 117</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">delta ratio</figcaption></figure>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-10 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h33_38.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="737" data-id="21378" src="/wp-content/uploads/2024/11/2024-11-08_10h33_38-1024x737.png" alt="" class="wp-image-21378" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38-1024x737.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38-768x553.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h33_38.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">18 mal placé</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h34_32.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="737" data-id="21381" src="/wp-content/uploads/2024/11/2024-11-08_10h34_32-1024x737.png" alt="" class="wp-image-21381" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32-1024x737.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32-768x553.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_32.png 1252w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">40 mal placé</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h34_49.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="734" data-id="21379" src="/wp-content/uploads/2024/11/2024-11-08_10h34_49-1024x734.png" alt="" class="wp-image-21379" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49-1024x734.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49-300x215.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49-768x550.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h34_49.png 1248w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">plusieurs mal placés</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/11/2024-11-08_10h38_29.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="736" data-id="21380" src="/wp-content/uploads/2024/11/2024-11-08_10h38_29-1024x736.png" alt="" class="wp-image-21380" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29-1024x736.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29-300x216.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29-768x552.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/11/2024-11-08_10h38_29.png 1253w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">339 mal placé</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">prev to prev² ratio</figcaption></figure>



<p>L&#8217;analyse de ces anomalies nécessite souvent une attention au cas par cas, pour savoir s&#8217;il s&#8217;agit d&#8217;une erreur manifeste, ou du reflet d&#8217;une disposition un peu particulière. Ce travail ne peut être fait que par des instances de terrain, à savoir les communes, qui transmettent ces informations aux régions puis au SPF BOSA.</p>



<h2 class="wp-block-heading">Le mot de la fin</h2>



<p>Le code (notebook Python) qui nous a permis d&#8217;identifier toutes ces anomalies est <a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/BestAddressAnomalies.ipynb">disponible sur Github</a>, et permet entre autres une vue interactive de toutes les cartes présentées ci-dessus. Pour chacune des anomalies, il ne nous revient pas de déterminer s&#8217;il s&#8217;agit réellement d&#8217;une erreur (il y aura beaucoup de faux positifs), et, le cas échéant, à quel niveau elle se situe&nbsp;: la commune, la consolidation par les régions ou le SPF BOSA, bpost, la plaque de rue&#8230;&nbsp;</p>



<p>Par ailleurs, le nombre de cas problématiques reste faible par rapport aux 6,5 millions d&#8217;adresses que contient BeSt Address. Mais la méthodologie nous paraissait suffisamment intéressante pour la publier. On pourrait par ailleurs l&#8217;appliquer à d&#8217;autres jeux de données, comme par exemple OpenStreetMap, ou d&#8217;autres sources ouvertes.</p>



<p>Quelle que soit la façon dont est alimentée une base de données, des erreurs s&#8217;y introduisent. Les régions et le SFP BOSA font déjà un travail considérable pour garantir des données d&#8217;une très bonne qualité. Mais il sera toujours possible de détecter des nouveaux problèmes. Par cet article, nous espérons apporter notre modeste contribution à l&#8217;édifice.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><span style="color: #999999;"><em>Ce post est une contribution individuelle de Vandy Berten, spécialisé&nbsp;</em>en<em>&nbsp;data science&nbsp;chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Waarom is een (Belgisch) adres ingewikkeld?</title>
		<link>https://www.smalsresearch.be/waarom-is-een-belgisch-adres-ingewikkeld/</link>
					<comments>https://www.smalsresearch.be/waarom-is-een-belgisch-adres-ingewikkeld/#comments</comments>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Mon, 05 Aug 2024 07:05:00 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[data quality]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Information management]]></category>
		<guid isPermaLink="false">/?p=20985</guid>

					<description><![CDATA[Vaak denken we dat we om een gebouw te lokaliseren (in België, maar onze buren ervaren een zeer gelijkaardige situatie) we een adres nodig hebben dat bestaat uit een straatnaam (die eindigt in het Nederlands met ‘...straat’, ‘...laan’, ‘...steenweg’, of die in het Frans begint met ‘Rue...’, ‘Avenue...’, ‘Chaussée...’, of een gelijkaardige prefix/suffix)]]></description>
										<content:encoded><![CDATA[
<p><a href="/pourquoi-une-adresse-belge-cest-complique/">Version en français</a></p>



<figure class="wp-block-image alignleft size-medium"><a href="https://www.pexels.com/fr-fr/photo/sale-boite-aux-lettres-8967420/"><img loading="lazy" decoding="async" width="300" height="257" src="/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-300x257.jpg" alt="" class="wp-image-20186" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-300x257.jpg 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-2048x1753.jpg 2048w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-768x658.jpg 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-1024x877.jpg 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-1536x1315.jpg 1536w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption class="wp-element-caption"><em><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-cyan-bluish-gray-color">By Raphael Loquellano</mark></em></figcaption></figure>



<p>Vaak denken we dat we om een gebouw te lokaliseren (in België, maar onze buren ervaren een zeer gelijkaardige situatie) we een adres nodig hebben dat bestaat uit een straatnaam (die eindigt in het Nederlands met ‘&#8230;straat’, ‘&#8230;laan’, ‘&#8230;steenweg’, of die in het Frans begint met ‘Rue&#8230;’, ‘Avenue&#8230;’, ‘Chaussée&#8230;’, of een gelijkaardige prefix/suffix). Vervolgens komt er een nummer, even aan een kant van de straat, oneven aan de andere. Als we een gebouw zetten tussen ‘10’ en ‘12’, krijgt dit het nummer ‘10A’, en als nummer 10 een gebouw is met meerdere appartementen dan onderscheiden we ze met ‘10 bus 1’, ‘10 bus 2’, enz. (of 10/1, 10/2, enz.). We moeten ook een gemeente vermelden, samen met de postcode van 4 cijfers (5 in Frankrijk). Hiermee zou de postbode jouw brievenbus met gemak moeten vinden.</p>



<p>Hoewel dit inderdaad zo is voor de meeste adressen, is de realiteit spijtig genoeg vaak veel ingewikkelder. We hebben al <a href="/data-quality-mesurer-la-similarite-interne/">meerdere keren</a> vermeld dat databases informatie kunnen bevatten die niet overeenstemt met de werkelijkheid, wat <a href="/geocode-welke-tool-voor-welke-behoefte/">geocodering kan bemoeilijken</a>. In dit artikel tonen we aan dat de realiteit vaak in strijd is met het gezond verstand! En als een realiteit niet coherent is, dan bemoeilijkt dat duidelijk het gegevensbeheer ervan.</p>



<p>Er bestaan “Richtlijnen en aanbevelingen voor het vaststellen en toekennen van een adres (&#8230;)” (<a href="https://www.ibz.rrn.fgov.be/fileadmin/user_upload/fr/rn/circulaires/BeSt_20201104_F.pdf">richtlijn</a> &#8211; <a href="https://www.belgif.be/downloads/best/20211019_Gids_voor_het_vaststellen_en_toekennen_van_adressen.pdf">gids</a>). Het probleem is dat deze niet altijd worden nageleefd. Bovendien werden de meeste straten en nummers toegekend voordat deze richtlijnen werden opgesteld.</p>



<h2 class="wp-block-heading"><strong>Straatnamen</strong></h2>



<p>In Franstalig België dekken de 10 belangrijkste prefixen (in volgorde van voorkomen): Rue, Chemin, Avenue, Place, Clos, Route, Allée, Chaussée, Ruelle, Impasse) slechts 85% van de (62 000) straatnamen. In de overige 15% zien we enkele grote klassiekers (Drève: 0,4%, Boulevard: 0,3%, Square: 0,2%) maar ook talloze straatnamen die we moeilijk zouden kunnen onderscheiden van een plaatsnaam. Iets meer dan 2000 (3%) straatnamen bestaan uit een enkel woord (zoals “<a href="https://www.openstreetmap.org/way/147759776#map=17/50.80366/4.39961">Dries</a>” in Watermaal-Bosvoorde; niet te verwarren met de “<a href="https://www.openstreetmap.org/way/22947492#map=19/50.84715/4.42703">Driesstraat</a>” in Sint-Lambrechts-Woluwe); 1000 beginnen met een determinator (bijvoorbeeld “<a href="https://www.openstreetmap.org/way/181417497">La Chapelle</a>“, en niet een van de 160 “Rue” of “Avenue de la Chapelle”, of “La Chavée” in plaats van een van de 35 varianten van “Rue de la Chavée”). Deze laatste gevallen worden echter sterk afgeraden door artikel 8 §4 (&#8220;Straatnamen zonder type weg worden ten stelligste afgeraden&#8221;) van de hierboven vermelde richtlijn.</p>



<p>Aan de Nederlandstalige kant (Vlaanderen en Nederlandstalige straatnamen in Brussel) is de situatie vergelijkbaar: de top 10 suffixen (straat, laan, weg, dreef, plein, steenweg, baan, hof, veld, berg) vertegenwoordigen slechts 82% (88 000) van de straatnamen. We zien daarna een groot aantal namen met plaatsnamen (Dorp, Tuinwijk, Warande, enz.). We hebben 26 keer “Vogelzang” naast 35 keer “Vogelzangstraat” en andere “laan” of “dreef”. </p>



<figure class="wp-block-image alignright size-medium"><a href="/wp-content/uploads/2024/02/image-4.png"><img loading="lazy" decoding="async" width="300" height="282" src="/wp-content/uploads/2024/02/image-4-300x282.png" alt="" class="wp-image-20073" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/image-4-300x282.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/02/image-4.png 388w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></figure>



<p>Een ding is zeker: de 581 Belgische gemeentes, die instaan voor de toekenning van de straatnamen, hebben verbeelding in overvloed! Om nog maar te zwijgen van de gemeenten die op het lumineuze idee zijn gekomen om kruisende straten bijzonder gelijkaardige namen te geven: in Bièvre kruist de “Rue de la Violette” de “Rue de la Volette”; in veel Vlaamse gemeenten kruist de “Berkenlaan” de “Beukenlaan”; in Raeren loopt de Burgstraße in het verlengde van de Bergstraße. En als we kijken naar straten die dicht bij elkaar liggen maar elkaar niet noodzakelijkerwijs kruisen, hebben we Ange/Angle (Charleroi), Carrière/Barrière (Serain), Ateliers/Bateliers (Châtelet), Beek/Beuk (Ternat), Hekel/Herel (Aalter), enz.<br>Schrijf dus netjes op je enveloppen &#8211; de postbode zal je dankbaar zijn! Het is geen verrassing meer als de bezorger (of nog erger, de ziekenwagen!) af en toe in de verkeerde straat aankomt&#8230;</p>



<p>De richtlijn over de toewijzing van adressen vraagt echter om&nbsp; “straten met namen waarvan slechts één letter verschillend is” (8§5) te vermijden.</p>



<p>We zien zelfs een bijzonder interessante situatie: in Charleroi <a href="https://www.lavenir.net/regions/charleroi/charleroi/2023/06/29/charleroi-la-rue-aux-deux-noms-a-cheval-sur-jumet-et-roux-enfin-rebaptisee-rue-des-chevres-sur-ses-deux-trottoirs-MXPPLRVJM5A4TFMZREPS56VPMM/">heeft de rechterkant van een straat (Rue de Monseau) niet dezelfde naam als de linkerkant (Rue des chèvres)</a>! Hoewel er een beslissing is genomen om te standaardiseren, zal het zeker nog enkele maanden of jaren duren voordat <a href="https://www.openstreetmap.org/way/38213942#map=17/50.42880/4.40539">de cartografische en officiële gegevens gealigneerd zijn</a>.</p>



<h2 class="wp-block-heading"><strong>Huisnummers</strong></h2>



<p>Helaas is er geen standaard voor het nummeren van huizen in een straat. Er wordt vaak onderscheid gemaakt tussen het nummer van het huis (in de richtlijn het “huisnummer” genoemd, dat meestal verwijst naar de ingang van het gebouw) en het “busnummer” (dat verwijst naar de verdieping, vleugel, blok, enz.). Als een adres een “5A” bevat, is het niet mogelijk, tenzij je ter plaatse bent of de plaats kent, om te weten of het een huis is dat naast 5 is gebouwd (in welk geval, nummer = 5A), of appartement A van nummer 5 (nummer = 5, bus = A). Hetzelfde geldt voor 5/1. Met andere woorden, we weten niet of het 5, 5A of 5/1 is dat de ingang van het gebouw aanduidt. Er zijn veel situaties waarin een ommuurde ruimte is gebouwd in plaats van een huis. Hoe de nieuwe huizen worden genummerd hangt af van de welwillendheid en verbeeldingskracht van de gemeente:&nbsp;:</p>



<ul class="wp-block-list">
<li>Op <a href="https://www.openstreetmap.org/search?whereami=1&amp;query=50.69403%2C4.55087#map=19/50.69422/4.55126">Clos du Manoir 13, in Limal</a>, hebben de nieuwe huizen de nummers 13/1, 13/2, &#8230;, 13/17.  Er is geen busnummer, de “/x” maakt integraal deel uit van het nummer en niet van de bus.</li>



<li>Het nummer <a href="https://www.openstreetmap.org/way/226074937#map=19/50.81787/4.41719">1517 van de Waversesteenweg</a> in Ouderghem koos voor letters: 1517A, 1517B&#8230;, tot 1517P</li>



<li>Op <a href="https://www.openstreetmap.org/search?query=54%20Dieweg%2C%20Uccle#map=19/50.79421/4.34009">Dieweg nummer 54</a> besloot Ukkel dat de ongeveer twintig nieuwe woningen hetzelfde huisnummer zouden krijgen, maar een busnummer tussen 1 en 20.</li>
</ul>



<p>Merk op dat de verdeling nummer/bus die hier wordt gepresenteerd die is van <a href="https://opendata.bosa.be/index.nl.html">BeSt Address</a>, die de officiële informatie van de gemeenten samenbrengt (hoewel niet vrij van kwaliteitsproblemen, daar komen we in een later artikel op terug). Ze komt echter niet altijd overeen met de verdeling die wordt aangegeven door geocoders zoals OpenStreetMap, Here WeGo of Google Maps.</p>



<p>Maar daar houdt het gebrek aan samenhang niet op: naast nummer 10 vind je 10 A, 10/2, maar ook 10 bis. En als je 10 samenvoegt met zijn buurman 12, wordt het geheel vaak 10/12 (of 10-12) genoemd.</p>



<p>Het is dus niet in alle gevallen mogelijk om een ongestructureerd (of slecht gestructureerd) adres correct op te splitsen (of te <em>parsen</em>) in “nummer” en “bus”, tenzij je de juiste indeling van elk adres kent.</p>



<p>In de gegevens van <a href="https://opendata.bosa.be/index.nl.html">BeSt Address</a>, kunnen we het formaat van huisnummers bekijken door het &#8216;masker&#8217; te bestuderen, dat bestaat uit het vervangen van elke reeks cijfers door een 0, en elke letter door een A. Het “0”-masker (1, 12, 1977, &#8230;) dekt 92,6% van de adressen en “0A” (1A, 5B, 23C &#8230;) 7%. In Brussel en Vlaanderen zijn er 5 verschillende maskers. Voor Wallonië &#8230; 73! Het is echter een veilige gok dat dit in veel gevallen ligt aan problemen met de gegevenskwaliteit.</p>



<p>Het gebrek aan uniformiteit in de busnummers is nog erger: er zijn meer dan 400 verschillende formaten! Waaronder 17 000 busnummers die uit een letter bestaan, moeilijk te onderscheiden van de hierboven genoemde huisnummers in het “0A”-formaat.</p>



<p>Volgens de richtlijn (16§4) moet een nummeruitbreiding in theorie worden aangeduid met een hoofdletter direct na het nummer (10A, niet 10/2, 10 bis of 10 A) en moet een busnummer numeriek zijn (19§6 en §7). Maar dit wordt duidelijk niet gevolgd door de feiten. We merken dat 99,6% van de BeSt Address huisnummers compatibel zijn met deze richtlijnen, maar slechts 69,8% van de busnummers.</p>



<p>Afgezien van het naamgevingsaspect is de plaatsing van nummers niet altijd consistent. Hoewel even nummers vaak aan de ene kant van de straat staan en oneven nummers aan de andere kant, lopen ze niet altijd allebei in dezelfde richting op.</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a href="/wp-content/uploads/2024/02/image-2.png"><img loading="lazy" decoding="async" width="758" height="174" src="/wp-content/uploads/2024/02/image-2.png" alt="" class="wp-image-20070" style="width:758px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/image-2.png 758w, https://www.smalsresearch.be/wp-content/uploads/2024/02/image-2-300x69.png 300w" sizes="auto, (max-width: 758px) 100vw, 758px" /></a></figure>



<p>De <a href="https://www.openstreetmap.org/search?query=Rue%20Fran%C3%A7ois%20Michoel%20-%204845#map=17/50.51643/5.92594">rue François Michoel in Jalhay</a> heeft bijvoorbeeld alleen even nummers, met oplopende nummers aan de ene kant en aflopende nummers aan de andere kant (zie bovenstaande figuur, waar de blauwe lijn de nummers in oplopende volgorde volgt. Gebaseerd op gegevens van Best Address, met OpenStreetMap als achtergrondkaart). Deze lay-out is ook te vinden in bepaalde afgesloten gebieden, zoals de <a href="https://www.openstreetmap.org/search?query=Dr%C3%A8ve%20des%20Tr%C3%A9vires%20-%201300#map=19/50.72475/4.61254">drève de Trévires in Waver</a> of de <a href="https://www.openstreetmap.org/search?query=Avenue%20Henri%20Wautier%20-%201480#map=18/50.70594/4.15254">Henri Wautierlaan in Saintes</a>.</p>



<figure class="wp-block-image alignright size-full"><a href="/wp-content/uploads/2024/02/image-3.png"><img loading="lazy" decoding="async" width="285" height="507" src="/wp-content/uploads/2024/02/image-3.png" alt="" class="wp-image-20071" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/image-3.png 285w, https://www.smalsresearch.be/wp-content/uploads/2024/02/image-3-169x300.png 169w" sizes="auto, (max-width: 285px) 100vw, 285px" /></a></figure>



<p>We kunnen ook het <a href="https://www.openstreetmap.org/search?query=Dennenhof%20-%203980#map=19/51.06353/5.09174">Dennenhof te Tessenderlo</a> vermelden, een straat die bestaat uit verschillende &#8216;sectoren&#8217;, waaronder een met de nummers 2, 4, 6, &#8230;, en een andere met 2A, 4A, 6A, 8A &#8230; 8A ligt dus niet tussen de nummers 8 en 10, maar tussen de nummers 6A en 8A (idem voor de <a href="https://www.openstreetmap.org/search?query=Begijnenwinning%20-%203980#map=18/51.07175/5.10082">Begijnenwinning</a> in dezelfde gemeente). </p>



<p>De situatie in woningen met chalets of caravans is nog complexer: in het <a href="https://www.openstreetmap.org/search?query=Tulderbos%20-%202382#map=18/51.44906/5.09169">Tulderbos (Ravels)</a>, lijken de nummers volledig willekeurig te zijn getrokken (zie hiernaast) &#8230; arme postbode!</p>



<h2 class="wp-block-heading"><strong>Postcode en gemeente</strong></h2>



<p>Zoals in een <a href="/la-jointure-spatiale-la-cle-de-lanalytique-geographique/">vorig artikel</a> is beschreven, bestaat België op het moment van schrijven uit 581 gemeenten, die elk bestaan uit een of meer deelgemeenten. Elke deelgemeente heeft zijn eigen postcode, maar deze kan hetzelfde zijn voor elke deelgemeente van dezelfde gemeente, verschillend voor elke deelgemeente, of een mengeling van de twee.&nbsp; Een postcode kan dus worden toegewezen aan een gemeente of aan haar deelgemeenten.</p>



<figure class="wp-block-image alignright size-full is-resized"><a href="/wp-content/uploads/2024/02/bru_zipnis_mismatch.png"><img loading="lazy" decoding="async" width="394" height="765" src="/wp-content/uploads/2024/02/bru_zipnis_mismatch.png" alt="" class="wp-image-20065" style="width:263px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/bru_zipnis_mismatch.png 394w, https://www.smalsresearch.be/wp-content/uploads/2024/02/bru_zipnis_mismatch-155x300.png 155w" sizes="auto, (max-width: 394px) 100vw, 394px" /></a></figure>



<p>Het Brussels Hoofdstedelijk Gewest heeft echter enkele afwijkingen. Het bestaat uit 19 gemeenten, waarvan er 18 geen deelgemeenten hebben en één (Brussel-Stad) die er 4 heeft (Brussel, Laken, Haren en Neder-over-Hembeek). In de praktijk wordt de gemeente Sint-Gillis echter zowel “1060 Sint-Gillis” als “1060 Brussel” genoemd, net als alle andere Brusselse gemeenten. In geen enkele andere regio van België wordt een gemeente aangeduid met haar provincie of arrondissement. Elders wordt een gemeente aangeduid door de postcode te combineren met de naam van de deelgemeente (1301 Bierges) of met de naam van de gemeente (1301 Wavre).</p>



<p>Bovendien heeft de gemeente Brussel-Stad (of de Stad Brussel) in de loop van de 19e eeuw een aantal gebieden van naburige gemeenten geabsorbeerd, die daardoor onder het gezag van de Stad Brussel kwamen te vallen, maar waarvan de postcode die van de oorspronkelijke gemeente bleef. Zo valt het grootste deel van het gebied dat onder de Stad Brussel valt onder de postcodes 1000 (in het blauw op de kaart), 1020, 1120 en 1130 (de 4 deelgemeenten), een deel onder 1040 (Europese wijk, in het groen) en een deel onder 1050 (Louizalaan en Franklin Rooseveltlaan, in het grijs). Etterbeek bezit dus niet heel 1040 (alleen het bruine deel), en Elsene beheert niet heel 1050 (alleen het turkooizen deel, in twee gedeeld door de Louizalaan).</p>



<h2 class="wp-block-heading"><strong>Conclusie</strong></h2>



<p>Smals Research besteedt veel tijd aan het bewustmaken van de complexiteit van het relevant houden van gegevens voor de echte wereld, zowel op deze blog als in onze projecten en opdrachten. In dit artikel illustreren we dat de werkelijkheid soms fundamenteel gecompliceerd is door het feit dat de nomenclatuur (namen van gemeenten, straten, toewijzing van nummers) wordt overgelaten aan de vrijheid van elke gemeente, met weinig beperkingen. Dit leidt tot de hier beschreven inconsistenties. Als je daar historische ontwikkelingen bij optelt, is het gemakkelijk om de brandweer naar het verkeerde adres te sturen!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><span style="color: #999999;">Deze post is een individuele bijdrage van Vandy Berten, gespecialiseerd in data science bij Smals Research. Dit artikel is geschreven onder zijn eigen naam en weerspiegelt op geen enkele wijze de standpunten van Smals.</span></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smalsresearch.be/waarom-is-een-belgisch-adres-ingewikkeld/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Pourquoi une adresse (belge), c&#8217;est compliqué&#160;?</title>
		<link>https://www.smalsresearch.be/pourquoi-une-adresse-belge-cest-complique/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Mon, 05 Aug 2024 07:00:00 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[data quality]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Information management]]></category>
		<guid isPermaLink="false">/?p=20039</guid>

					<description><![CDATA[On pense souvent que pour localiser un bâtiment (en Belgique, mais la situation de nos voisins est très similaire), on a besoin d'une adresse, composée d'un nom de rue (qui commence en français par "Rue ...", "Avenue ...", "Chaussée ...", ou qui termine en néerlandais par "...straat", "... laan", "... steenweg", ou un préfixe/suffixe similaire). Il faut ensuite un numéro, pair d'un côté de la rue, impair de l'autre. Si on construit un bâtiment entre le "10" et le "12", on le numérotera "10A", et si le 10 est un immeuble avec plusieurs appartements, on les distinguera par "10 boite 1", "10 boite 2", etc (ou 10/1, 10/2...).]]></description>
										<content:encoded><![CDATA[
<p><a href="/waarom-is-een-belgisch-adres-ingewikkeld/">Nederlandstalige versie</a></p>



<figure class="wp-block-image alignleft size-medium"><a href="https://www.pexels.com/fr-fr/photo/sale-boite-aux-lettres-8967420/"><img loading="lazy" decoding="async" width="300" height="257" src="/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-300x257.jpg" alt="" class="wp-image-20186" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-300x257.jpg 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-2048x1753.jpg 2048w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-768x658.jpg 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-1024x877.jpg 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/pexels-raphael-loquellano-8967420-1536x1315.jpg 1536w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><figcaption class="wp-element-caption"><em><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-cyan-bluish-gray-color">By Raphael Loquellano</mark></em></figcaption></figure>



<p>On pense souvent que pour localiser un bâtiment (en Belgique, mais la situation de nos voisins est très similaire), nous avons besoin d&#8217;une adresse, composée d&#8217;un nom de rue (qui commence en français par &#8220;Rue &#8230;&#8221;, &#8220;Avenue &#8230;&#8221;, &#8220;Chaussée &#8230;&#8221;, ou qui termine en néerlandais par &#8220;&#8230;straat&#8221;, &#8220;&#8230; laan&#8221;, &#8220;&#8230; steenweg&#8221;, ou un préfixe/suffixe similaire). Il faut ensuite un numéro, pair d&#8217;un côté de la rue, impair de l&#8217;autre. Si on construit un bâtiment entre le &#8220;10&#8221; et le &#8220;12&#8221;, on le numérotera &#8220;10A&#8221;, et si le 10 est un immeuble avec plusieurs appartements, on les distinguera par &#8220;10 boite 1&#8221;, &#8220;10 boite 2&#8221;, etc (ou 10/1, 10/2&#8230;). Il nous faudra également préciser une commune, associée à son code postal sur 4 chiffres (5 en France). Avec tout ceci, le facteur n&#8217;aura aucun mal à trouver votre boite aux lettres.</p>



<p>Malheureusement, si ceci est vrai pour une grande majorité des adresses, la réalité est parfois bien plus complexe. Nous avons déjà évoqué <a href="/data-quality-mesurer-la-similarite-interne/">à plusieurs reprises</a> le fait que les bases de données pouvaient contenir des informations en inadéquation avec la réalité, ce qui peut <a href="/geocodage-quel-outil-pour-quel-besoin/" data-type="post" data-id="18567">compliquer le géocodage</a>. Dans cet article, nous allons montrer que la réalité est souvent en inadéquation avec le bon sens&nbsp;! Et si une réalité manque de cohérence, cela compliquera clairement la gestion des données qui la représentent.</p>



<p>Il existe des &#8220;directives et recommandations pour la détermination et l&#8217;attribution des adresses (&#8230;)&#8221; (<a href="https://www.ibz.rrn.fgov.be/fileadmin/user_upload/fr/rn/circulaires/BeSt_20201104_F.pdf">directive</a> &#8211; <a href="https://www.belgif.be/downloads/best/20211019_Guide_en_mati%C3%A8re_de_constatation_et_attribution_d_adresses.pdf">guide</a>), mais elles ne sont malheureusement pas toujours respectées. Par ailleurs, la plupart des rues et numéros ont été attribués avant ces directives.</p>



<h2 class="wp-block-heading">Noms de rue</h2>



<p>En Belgique francophone, les 10 principaux préfixes (dans l&#8217;ordre de fréquence&nbsp;: Rue, Chemin, Avenue, Place, Clos, Route, Allée, Chaussée, Ruelle, Impasse) ne couvrent que 85&nbsp;% des (62.000) noms de rue. Dans les 15 % restant, on retrouve quelques grands classiques (Drève&nbsp;: 0,4&nbsp;%, Boulevard&nbsp;:&nbsp;0,3 %, Square&nbsp;:&nbsp;0,2 %), mais également d&#8217;innombrables noms de rue que l&#8217;on aurait du mal à distinguer d&#8217;un lieu-dit. Un peu plus de 2000 (3&nbsp;%) noms de rues ne sont composés que d&#8217;un seul mot (comme &#8220;<a href="https://www.openstreetmap.org/way/147759776#map=17/50.80366/4.39961">Dries</a>&#8221; à Watermael-Boitsfort&nbsp;; à ne pas confondre avec la &#8220;<a href="https://www.openstreetmap.org/way/22947492#map=19/50.84715/4.42703">Rue Dries</a>&#8221; à Woluwé-Saint-Lambert); 1000 commencent par un déterminant (Par exemple &#8220;<a href="https://www.openstreetmap.org/way/181417497">La Chapelle</a>&#8220;, et non une des 160 &#8220;Rue&#8221; ou &#8220;Avenue de la Chapelle&#8221;, ou &#8220;La Chavée&#8221; au lieu d&#8217;une des 35 variantes de &#8220;Rue de la Chavée&#8221;). Ces derniers cas sont cependant fortement déconseillés par l&#8217;article 8§4 (&#8220;Les noms de voies sans type de voie sont à éviter&#8221;) de la directive évoquée plus haut.</p>



<p>Le constat est similaire côté néerlandophone (Flandre et dénominations néerlandophones des rues bruxelloises)&nbsp;: les 10 principaux suffixes (straat, laan, weg, dreef, plein, steenweg, baan, hof, veld, berg) ne concernent que 82&nbsp;% des 88 000 noms de rue. On trouve ensuite une multitudes de noms à l&#8217;allure de lieux-dits (Dorp, Tuinwijk, Warande&#8230;). On aura 26 &#8220;Vogelzang&#8221; (chant d&#8217;oiseau) à côté des 35 &#8220;Vogelzangstraat&#8221; (Rue du chant d&#8217;oiseau) et autres &#8220;laan&#8221; ou &#8220;dreef&#8221;.&nbsp;</p>



<figure class="wp-block-image alignright size-medium"><a href="/wp-content/uploads/2024/02/image-4.png"><img loading="lazy" decoding="async" width="300" height="282" src="/wp-content/uploads/2024/02/image-4-300x282.png" alt="" class="wp-image-20073" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/image-4-300x282.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/02/image-4.png 388w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></figure>



<p>Une chose est sûre&nbsp;: les 581 communes belges, responsables de l&#8217;attribution des noms de rues, font preuve d&#8217;une imagination sans limite&nbsp;! Sans compter celles qui ont eu la délicieuse idée de donner des noms particulièrement proches à des rues qui se croisent&nbsp;: la &#8220;Rue de la Violette&#8221; croise, à Bièvre, la &#8220;Rue de la Volette&#8221;&nbsp;; dans de nombreuses communes flamandes, la &#8220;Berkenlaan&#8221; (Avenue du bouleau) croise la &#8220;Beukenlaan&#8221; (Avenue du hêtre)&nbsp;; la Burgstraße prolonge la Bergstraße à Raeren. Et si on considère des rues proches sans nécessairement se croiser, on aura des Ange/Angle (Charleroi), Carrière/Barrière (Serain), Ateliers/Bateliers (Châtelet), Beek/Beuk (Ternat), Hekel/Herel (Aalter), etc. Il s&#8217;agira de bien écrire sur vos enveloppes, le facteur vous en remerciera&nbsp;! On ne sera pas surpris que le livreur (voire pire, l&#8217;ambulance&nbsp;!) arrive dans la mauvaise rue de temps à autre&#8230;</p>



<p>La directive sur l&#8217;attribution des adresses demande pourtant d&#8217;éviter (8§5) les &#8220;voies portant des noms qui ne se distinguent que par une seule lettre&#8221;.</p>



<p>On trouve même une situation particulièrement intéressante&nbsp;: à Charleroi, <a href="https://www.lavenir.net/regions/charleroi/charleroi/2023/06/29/charleroi-la-rue-aux-deux-noms-a-cheval-sur-jumet-et-roux-enfin-rebaptisee-rue-des-chevres-sur-ses-deux-trottoirs-MXPPLRVJM5A4TFMZREPS56VPMM/">le côté droit d&#8217;une rue (Rue de Monseau) n&#8217;a pas le même nom que le côté gauche (Rue des chèvres)</a>&nbsp;! Une décision d&#8217;uniformisation a été prise, mais il faudra certainement quelques mois ou années avant que <a href="https://www.openstreetmap.org/way/38213942#map=17/50.42880/4.40539">les données cartographiques et officielles soient alignées</a>.</p>



<h2 class="wp-block-heading">Numéros de maison</h2>



<p>Il n&#8217;existe malheureusement aucun standard sur la façon de numéroter des maisons d&#8217;une rue. On distingue souvent le numéro de la maison (appelés &#8220;numéro de police&#8221; dans la directive, qui désigne en général l&#8217;entrée du bâtiment) et le &#8220;numéro de boite&#8221; (qui désigne l&#8217;étage, l&#8217;aile, le bloc&#8230;). Si dans une adresse on trouve un &#8220;5A&#8221;, il n&#8217;est pas possible, à moins d&#8217;être sur place ou de connaitre l&#8217;endroit, de savoir s&#8217;il s&#8217;agit d&#8217;une maison construite à côté du 5 (dans ce cas, numéro = 5A), ou de l&#8217;appartement A du numéro 5 (numéro = 5, boite = A). Il en va de même pour le 5/1. En d&#8217;autres mots, on ne sait pas si ce qui désigne l&#8217;entrée du bâtiment, c&#8217;est le 5, le 5A ou le 5/1. Il existe de nombreuses situations où un clos a été construit à la place d&#8217;une maison. La façon de numéroter les nouvelles maisons dépendra du bon-vouloir et de l&#8217;imagination de la commune&nbsp;:</p>



<ul class="wp-block-list">
<li>Au <a href="https://www.openstreetmap.org/search?whereami=1&amp;query=50.69403%2C4.55087#map=19/50.69422/4.55126">13 du Clos du Manoir, à Limal</a>, les nouvelles maisons ont comme numéro 13/1, 13/2, &#8230;, 13/17. Il n&#8217;y a pas de numéro de boite, les &#8220;/x&#8221; font intégralement partie du numéro et non de la boite</li>



<li>Le <a href="https://www.openstreetmap.org/way/226074937#map=19/50.81787/4.41719">1517 de la chaussée de Wavre</a>, Auderghem a plutôt choisi des lettres&nbsp;: 1517A, 1517B&#8230;, jusqu&#8217;à 1517P</li>



<li>Au <a href="https://www.openstreetmap.org/search?query=54%20Dieweg%2C%20Uccle#map=19/50.79421/4.34009">54 de Dieweg</a>, Uccle a décidé que la vingtaine d&#8217;habitations construites auraient le même numéro de maison, mais un numéro de boite entre 1 et 20.</li>
</ul>



<p>Notons que la division numéro/boite présentée ici est celle que l&#8217;on retrouve dans <a href="https://opendata.bosa.be/index.fr.html">BeSt Address</a>, qui rassemble les informations officielles fournies par les communes (sans être toutefois exempts de problèmes de qualité, nous y reviendrons lors d&#8217;un prochain article). Mais elle ne correspond pas toujours à la répartition indiquée par les géocodeurs comme OpenStreetMap, Here WeGo ou autres Google Maps.</p>



<p>Mais le manque de cohérence ne s&#8217;arrête pas là&nbsp;: à côté du 10, on peut trouver le 10 A, le 10/2, mais également le 10 bis. Et si on fusionne le 10 et son voisin le 12, on dénommera souvent l&#8217;ensemble 10/12 (ou 10-12).</p>



<p>Il n&#8217;est donc pas possible, de décomposer (ou <em>parser</em>) correctement dans tous les cas une adresse non structurée (ou mal structurée) en &#8220;numéro&#8221; et &#8220;boite&#8221;, à moins de connaitre la décomposition correcte de chaque adresse.</p>



<p>Dans les données de <a href="https://opendata.bosa.be/index.fr.html">BeSt Address</a>, on peut s&#8217;intéresser au format des numéros de maison en étudiant le &#8220;masque&#8221;, qui consiste à remplacer toute séquence de chiffres par un 0, et toute lettre par un A. Le masque &#8220;0&#8221; (1, 12, 1977, &#8230;) couvre 92,6&nbsp;% des adresses et &#8220;0A&#8221; (1A, 5B, 23C &#8230;) 7&nbsp;%. À Bruxelles et en Flandre, on trouve 5 masques différents. Pour la Wallonie&#8230; 73&nbsp;! Il y a cependant fort à parier qu&#8217;il s&#8217;agit dans de nombreux cas de problèmes de qualité de données.</p>



<p>Le manque d&#8217;uniformité des numéros de boite est encore pire&nbsp;: on trouve plus de 400 formats différents&nbsp;! Dont 17&nbsp;000 boites composées d&#8217;une seule lettre, difficile à distinguer des numéros de maison au format &#8220;0A&#8221; évoqué ci-dessus.</p>



<p>En théorie, selon la directive, (16§4) une extension de numéro doit être dénommée par une lettre majuscule suivant directement le numéro (10A, pas de 10/2, 10 bis ou 10 A), et un numéro de boite doit être numérique (19§6 et §7). Mais cela n&#8217;est clairement pas suivi des faits. On observe que 99,6 % des numéros de police de BeSt Address sont compatibles avec ces directives, mais seulement 69,8 % des numéros de boite.</p>



<p>En dehors de l&#8217;aspect dénomination, le placement des numéros n&#8217;est pas toujours cohérent. Si on observe souvent les numéros pairs d&#8217;un côté de la rue et les numéros impairs de l&#8217;autre, ceux-ci ne sont pas toujours croissants dans la même direction.</p>



<figure class="wp-block-image aligncenter size-full is-resized"><a href="/wp-content/uploads/2024/02/image-2.png"><img loading="lazy" decoding="async" width="758" height="174" src="/wp-content/uploads/2024/02/image-2.png" alt="" class="wp-image-20070" style="width:758px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/image-2.png 758w, https://www.smalsresearch.be/wp-content/uploads/2024/02/image-2-300x69.png 300w" sizes="auto, (max-width: 758px) 100vw, 758px" /></a></figure>



<p>La <a href="https://www.openstreetmap.org/search?query=Rue%20Fran%C3%A7ois%20Michoel%20-%204845#map=17/50.51643/5.92594">rue François Michoel, à Jalhay</a>, n&#8217;a par exemple que des numéros pairs, avec les numéros croissants d&#8217;un côté, et décroissants de l&#8217;autre (voir illustration ci-dessus, où la ligne bleue suit les numéros dans l&#8217;ordre croissant. Selon les données de Best Address, avec OpenStreetMap en fond de carte). On retrouve également cette disposition dans certains clos comme la <a href="https://www.openstreetmap.org/search?query=Dr%C3%A8ve%20des%20Tr%C3%A9vires%20-%201300#map=19/50.72475/4.61254">drève de Trévires à Wavre</a> ou l&#8217;<a href="https://www.openstreetmap.org/search?query=Avenue%20Henri%20Wautier%20-%201480#map=18/50.70594/4.15254">avenue Henri Wautier à Saintes</a>.</p>



<figure class="wp-block-image alignright size-full"><a href="/wp-content/uploads/2024/02/image-3.png"><img loading="lazy" decoding="async" width="285" height="507" src="/wp-content/uploads/2024/02/image-3.png" alt="" class="wp-image-20071" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/image-3.png 285w, https://www.smalsresearch.be/wp-content/uploads/2024/02/image-3-169x300.png 169w" sizes="auto, (max-width: 285px) 100vw, 285px" /></a></figure>



<p>On pourrait aussi citer la <a href="https://www.openstreetmap.org/search?query=Dennenhof%20-%203980#map=19/51.06353/5.09174">Dennenhof à Tessenderlo</a>, rue composée de plusieurs &#8220;secteurs&#8221;, dont un avec les numéros 2, 4, 6, &#8230;, et un autre avec le 2A, 4A, 6A, 8A&#8230; Le 8A n&#8217;est donc pas entre le 8 et le 10, mais entre le 6A et le 8A (idem pour le <a href="https://www.openstreetmap.org/search?query=Begijnenwinning%20-%203980#map=18/51.07175/5.10082">Begijnenwinning</a> dans la même commune).&nbsp;</p>



<p>La situation dans les résidences à chalets ou caravanes est encore plus complexe&nbsp;: au <a href="https://www.openstreetmap.org/search?query=Tulderbos%20-%202382#map=18/51.44906/5.09169">Tulderbos (Ravels)</a>, les numéros semblent avoir été tirés complètement au hasard (voir ci-contre) &#8230; pauvre facteur&nbsp;!</p>



<h2 class="wp-block-heading">Code postal et commune</h2>



<p>Comme déjà expliqué dans <a href="/la-jointure-spatiale-la-cle-de-lanalytique-geographique/">un article précédent</a>, la Belgique est composée, à l&#8217;heure d&#8217;écrire ces lignes, de 581 communes, chacune étant composée d&#8217;une ou plusieurs sous-communes, ou localité. Chaque sous-commune est associée à un code postal, mais celui-ci peut être identique pour chaque sous-commune d&#8217;une même commune, distinct pour chaque sous-commune, ou un mixe entre les deux.&nbsp; On peut donc considérer qu&#8217;un code postal est attribué soit à une commune, soit à ses sous-communes.</p>



<figure class="wp-block-image alignright size-full is-resized"><a href="/wp-content/uploads/2024/02/bru_zipnis_mismatch.png"><img loading="lazy" decoding="async" width="394" height="765" src="/wp-content/uploads/2024/02/bru_zipnis_mismatch.png" alt="" class="wp-image-20065" style="width:263px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/bru_zipnis_mismatch.png 394w, https://www.smalsresearch.be/wp-content/uploads/2024/02/bru_zipnis_mismatch-155x300.png 155w" sizes="auto, (max-width: 394px) 100vw, 394px" /></a></figure>



<p>La région de Bruxelles-Capitale comporte cependant quelques anomalies. Elle est composée de 19 communes, 18 n&#8217;ayant pas de sous-commune, et une (Bruxelles-ville) qui en a 4 (Bruxelles, Laeken, Haren et Neder-over-Hembeek). Dans la pratique, la commune de Saint-Gilles, par exemple, est dénommée indistinctement &#8220;1060 Saint-Gilles&#8221; ou &#8220;1060 Bruxelles&#8221;, comme toutes les autres communes bruxelloises. Dans aucune autre région de Belgique on ne désigne une commune par sa province ou son arrondissement.&nbsp;Ailleurs, on désigne une localité soit par la combinaison du code postal avec le nom de la localité (1301 Bierges), soit avec le nom de la commune (1301 Wavre).</p>



<p>Par ailleurs, la commune de Bruxelles-ville (ou ville de Bruxelles) a au cours du XIX<sup>è</sup> siècle absorbé plusieurs territoires des communes voisines, qui relèvent donc de l&#8217;autorité de la ville de Bruxelles, mais dont le code postal est resté celui de la commune d&#8217;origine. Ainsi, si l&#8217;essentiel du territoire dépendant de la ville de Bruxelles est sur les codes postaux 1000 (en bleu sur la carte), 1020, 1120 et 1130 (les 4 sous-communes), une partie est sur 1040 (quartier Européen, en vert) et une partie est sur 1050 (Avenues Louise et Franklin Roosevelt, en gris). Etterbeek ne possède donc pas la totalité de 1040 (seulement la partie marron), Ixelles ne gère pas l&#8217;entièreté de 1050 (seulement la partie turquoise, coupée en deux par l&#8217;Avenue Louise).</p>



<h2 class="wp-block-heading">En conclusion</h2>



<p>Nous consacrons beaucoup de temps chez Smals Research, que ce soit sur ce blog ou lors de nos projets et missions, à sensibiliser sur la complexité de maintenir des données en adéquation avec le monde réel. Dans cet article, nous illustrons le fait que la réalité est parfois fondamentalement compliquée, à cause du fait que la nomenclature (noms des communes, des rues, attribution des numéros) est laissée à la liberté de chaque commune, sans beaucoup de contrainte. Ce qui mène aux aberrations que nous énonçons ici. Si l&#8217;on rajoute les évolutions historiques, on a vite fait, si l&#8217;on n&#8217;agit pas avec beaucoup de rigueur, d&#8217;envoyer les pompiers à la mauvaise adresse&nbsp;!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><span style="color: #999999;"><em>Ce post est une contribution individuelle de Vandy Berten, spécialisé&nbsp;</em>en<em>&nbsp;data science&nbsp;chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>bePelias, een lokale geocoder gebaseerd op BeSt Address</title>
		<link>https://www.smalsresearch.be/bepelias-een-lokale-geocoder-gebaseerd-op-best-address/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Fri, 26 Apr 2024 09:35:28 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[geocoding]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=20443</guid>

					<description><![CDATA[Geocodering is de bewerking waarbij een tekstueel postadres (‘Fonsnyln 20, 1060 Brussel’) omgevormd wordt tot een in componenten opgesplitste en gestandaardiseerde versie, gelinkt aan een geografische locatie]]></description>
										<content:encoded><![CDATA[
<p><em><a href="/bepelias-un-geocodeur-local-base-sur-best-address/" data-type="post" data-id="20294">Version en français</a></em></p>



<p>Geocodering is de bewerking waarbij een tekstueel postadres (‘Fonsnyln 20, 1060 Brussel’) omgevormd wordt tot een in componenten opgesplitste en gestandaardiseerde versie, gelinkt aan een geografische locatie1<sup data-fn="b7665c04-0011-4cad-a98a-5e516f4a994c" class="fn"><a href="#b7665c04-0011-4cad-a98a-5e516f4a994c" id="b7665c04-0011-4cad-a98a-5e516f4a994c-link">1</a></sup>&nbsp;:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #000000">{</span><span style="color: #0451A5">&quot;street&quot;</span><span style="color: #000000">:  </span><span style="color: #A31515">&quot;Fonslylaan&quot;</span><span style="color: #000000">, </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;number&quot;</span><span style="color: #000000">:  </span><span style="color: #098658">20</span><span style="color: #000000">, </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;zipcode&quot;</span><span style="color: #000000">: </span><span style="color: #098658">1060</span><span style="color: #000000">,  </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;city&quot;</span><span style="color: #000000">:    </span><span style="color: #A31515">&quot;Sint-Gillis&quot;</span><span style="color: #000000">,</span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;lat&quot;</span><span style="color: #000000">:     </span><span style="color: #098658">50.8358216</span><span style="color: #000000">, </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;lon&quot;</span><span style="color: #000000">:     </span><span style="color: #098658">4.3386884</span><span style="color: #000000">}</span></span></code></pre></div>



<p>In een&nbsp;<a href="/geocode-welke-tool-voor-welke-behoefte/">vorig artikel</a> hebben we aangetoond dat er een aantal tools bestaan om deze bewerking uit te voeren en dat het, onder bepaalde omstandigheden, nodig is om over een on-site (on-premise) of lokale tool te beschikken. We zetten eerder al&nbsp;<a href="/geocodage-contourner-les-lacunes-dopenstreetmap-partie-2/">NominatimWrapper</a> in de kijker, een oplossing die we ontwikkeld hebben op basis van <a href="https://openstreetmap.org/">OpenStreetMap</a>.</p>



<p>In België beheert de federale overheidsdienst&nbsp;<a href="https://bosa.belgium.be/nl">“Strategie en Ondersteuning” (BOSA)</a>&nbsp;<a href="https://opendata.bosa.be/index.fr.html">BeSt Address</a>, de authentieke bron voor Belgische adressen. Ze zijn beschikbaar als open data in verschillende formaten. In dit artikel stellen gaan we dieper in op de volgende vraag: <em>is het mogelijk om een lokale geocoder op te stellen gebaseerd op deze gegevens</em>? Het antwoord vergt zekere nuance: Ja, maar&#8230;</p>



<p>Ten eerste stelt BOSA <a href="https://bosa.belgium.be/nl/services/best-address-services">een aantal webservices</a> ter beschikking maar met twee beperkingen:</p>



<ul class="wp-block-list">
<li>Deze zijn enkel beschikbaar voor overheidsdiensten, niet voor bedrijven of burgers.</li>



<li>Ze bieden geen ‘standaardisatie’: je moet de juiste schrijfwijze van een straat of (deel)gemeente kennen om het te gebruiken.</li>
</ul>



<h2 class="wp-block-heading">Pelias</h2>



<p>Met het opensourceproject&nbsp;<a href="https://pelias.io/">Pelias</a>&nbsp;kan een geocoder opgezet worden op basis van je eigen gegevens. In combinatie met <a href="https://openaddresses.io/">OpenAddresses.io</a>, een project dat open adresgegevens samenbrengt, is het mogelijk om Pelias in te zetten voor een reeks landen of steden, <a href="https://github.com/pelias/docker/tree/master/projects/belgium">waaronder België met BeSt Address (in combinatie met OpenStreetMap)</a>.</p>



<p>Hoewel het eenvoudig is om een geocoder op te zetten die Pelias en BeSt Address combineert en die goed lijkt te werken wanneer je hem test op een paar adressen, raak je al snel teleurgesteld wanneer je probeert naar een hogere versnelling te schakelen en hem datasets stuurt van de (Belgische) <a href="https://kbopub.economie.fgov.be/kbo-open-data/login?lang=nl">Kruispuntbank van Ondernemingen</a>, het <a href="https://employer-identification-consult.prd.pub.socialsecurity.be/">werkgeversrepertorium</a> (RSZ) of het rijksregister.</p>



<p>Met Pelias zijn er twee vraagmodi: gestructureerd ({“address”: “Fonsnylaan 20”, “postalcode”: 1060, “locality”: “Sint-Gillis”}) of ongestructureerd ({“query”: “Fonsnylaan 20, 1060 Sint-Gillis”}). Van de gegevens die we gestructureerd (cfr. “pelias_struct” in de grafiek hieronder) getest hebben (10 000 adressen afkomstig van verschillende bronnen in onderstaande legende), was Pelias slechts in staat om 55 % van de adressen exact te lokaliseren. Enkele percentages (1-2) zijn gelokaliseerd wat betreft de straat en in +/- 35% van de gevallen vond Pelias enkel de stad&#8230; met andere woorden niks bruikbaars. En in 7-10 % krijgen we zelfs geen enkel resultaat.&nbsp; &nbsp;</p>



<p>Pelias doet iets beter ‘ongestructureerd’ (pelias), aangezien hij bijna altijd in staat is om een resultaat te verschaffen, en 11 % bijkomende adressen worden exact gelokaliseerd.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-11 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_rrn_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20335" src="/wp-content/uploads/2024/03/matching_rate_rrn_10000-1024x594.png" alt="" class="wp-image-20335" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Registre National</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_rep_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20334" src="/wp-content/uploads/2024/03/matching_rate_rep_10000-1024x594.png" alt="" class="wp-image-20334" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Répertoire des Employeurs</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_best_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20332" src="/wp-content/uploads/2024/03/matching_rate_best_10000-1024x594.png" alt="" class="wp-image-20332" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">BeSt Addresses</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_kbo_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20333" src="/wp-content/uploads/2024/03/matching_rate_kbo_10000-1024x594.png" alt="" class="wp-image-20333" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Banque Carrefour des Entreprises</figcaption></figure>
</figure>



<p>Het is interessant om een paar zaken op te merken:</p>



<ul class="wp-block-list">
<li>Wanneer het resultaat niet exact is, bevat het resultaat geen gegevens van BeSt Address, maar van OpenStreetMap (niveau &#8216;street&#8217;) of WhosOnFirst (niveau &#8216;city&#8217;);</li>



<li>Soms geeft een adres geen resultaat in &#8216;gestructureerde&#8217; modus, maar wel in &#8216;ongestructureerde&#8217; modus, en omgekeerd;</li>



<li>In gestructureerde modus lijkt Pelias vaak in de war te raken door de aanwezigheid van de parameter ‘locality’ naast de ‘postalcode’. Vaak geeft een adres een resultaat op niveau ‘city’ wanneer deze parameter wordt opgegeven, maar een resultaat op niveau ‘building’ wanneer alleen de postcode wordt opgegeven (naast de straat en het nummer). Je kunt het verschil zien in de grafiek op de regel “pelias_struc_noloc”, waar het precies gelokaliseerde deel (‘building’, in groen) met bijna 25% toeneemt. Aan de andere kant verdwijnt het deel gelokaliseerd op stadsniveau, dat grotendeels gebaseerd is op dit ‘locality’-argument, zo goed als;</li>



<li>Het door Pelias geleverde resultaat bevat geen ‘BeSt id’ die het mogelijk zou maken om de unieke en authentieke identificatie van een adres te verkrijgen;</li>



<li>Noch de Franstalige adressen van de Vlaamse faciliteitengemeenten (en vice-versa), noch de Duitstalige adressen van de Oostkantons worden geïmporteerd.</li>
</ul>



<p>Maar op het moment van schrijven is er een nog groter probleem: de gegevens die Pelias gebruikt, dateren van midden 2021, om twee redenen:&nbsp;</p>



<ul class="wp-block-list">
<li>Het door OpenAddresses erkende formaat veranderde rond oktober 2021 en is niet langer compatibel met de door Bosa beschikbaar gestelde bestanden;</li>



<li>OpenAddresses veranderde zijn ‘dataflow’ midden 2021: de voorbereide gegevens werden eerst ter beschikking gesteld op het adres&nbsp;<a href="https://results.openaddresses.io/">https://results.openaddresses.io/</a> dat nog steeds beschikbaar is maar waarvan de gegevens niet meer up-to-date zijn; ze zijn wel up-to-date op&nbsp;<a href="https://batch.openaddresses.io/data">https://batch.openaddresses.io/data</a>. Pelias werd echter niet aangepast en blijft de gegevens van het oude systeem downloaden.</li>
</ul>



<h2 class="wp-block-heading">bePelias</h2>



<p>Het lijkt dus duidelijk dat Pelias in zijn huidige vorm geen serieuze kandidaat is voor een toepassing die geocodering van adressen in België vereist. Zowel de geïmporteerde gegevens (te oud, geen ID, geen gegevens op straatniveau als een nummer niet geïdentificeerd is) als de robuustheid ontbreken. Maar het leek ons dat het potentieel aanwezig was en we gingen aan de slag om het te verbeteren. Er waren twee mogelijkheden:&nbsp;</p>



<ul class="wp-block-list">
<li>Een &#8216;kloon&#8217; van Pelias maken door de code aan te passen. Met het risico om wijzigingen aan te brengen die niet compatibel zouden zijn met de toekomstige ontwikkelingen van Pelias, en een grote inspanning op het vlak van begrip en ontwikkeling;</li>



<li>Een ‘extra laag’ toevoegen, zoals we al met succes hebben gedaan met <a href="https://github.com/SmalsResearch/NominatimWrapper">NominatimWrapper</a>, om de tekortkomingen van Pelias te compenseren. Het is deze tweede optie die we hebben gekozen.</li>
</ul>



<p>Deze tool die we ‘<em>bePelias</em>’ hebben genoemd en die we open source ter beschikking stellen (<a href="https://github.com/SmalsResearch/bePelias">https://github.com/SmalsResearch/bePelias</a>) doet hoofdzakelijk twee dingen:</p>



<figure class="wp-block-image alignright size-full is-resized"><a href="/wp-content/uploads/2024/04/bepelias_archi.png"><img loading="lazy" decoding="async" width="672" height="381" src="/wp-content/uploads/2024/04/bepelias_archi.png" alt="" class="wp-image-20365" style="width:399px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/bepelias_archi.png 672w, https://www.smalsresearch.be/wp-content/uploads/2024/04/bepelias_archi-300x170.png 300w" sizes="auto, (max-width: 672px) 100vw, 672px" /></a></figure>



<ul class="wp-block-list">
<li>Een meer volledige voorbereiding van de ‘BeSt Address-’gegevens, inclusief een reeks aanvullende gegevens (adres- en straatidentificatienummers, NIS-codes voor gemeenten, enz.), die het meertalige aspect vervolledigen en identificatie op straatniveau mogelijk maken wanneer het nummer niet bekend is. We hebben Pelias ook geconfigureerd om interpolatie mogelijk te maken (ervan uitgaande dat de &#8216;8&#8217; van een straat, indien niet bekend, tussen de &#8216;6&#8217; en de &#8217;10&#8217; ligt).</li>



<li>Een tussenlaag tussen Pelias en de client, in de vorm van een REST API, om een reeks varianten van een adres uit te proberen. Een reeks combinaties van de volgende varianten wordt getest, totdat er één een bevredigend resultaat geeft:
<ul class="wp-block-list">
<li>Gestructureerde of ongestructureerde versie van de oproep tot Pelias;</li>



<li><span style="color: initial;">Met de lokaliteit (plaats), of alleen de postcode;</span></li>



<li><span style="color: initial;">Met een reeks reguliere expressies om de straat- of plaatsnaam op te schonen. Meestal zullen we alle tekst tussen haakjes verwijderen, wat heel gebruikelijk is in straatnamen om een opmerking of de naam van de deelgemeente te specificeren;</span></li>



<li>Door het huisnummer op te schonen, dat heel vaak ook een busnummer bevat, wat in de meeste gevallen de locatie niet verandert.</li>
</ul>
</li>
</ul>



<figure class="wp-block-image alignleft size-full is-resized"><a href="/wp-content/uploads/2024/04/transformers.png"><img loading="lazy" decoding="async" width="631" height="409" src="/wp-content/uploads/2024/04/transformers.png" alt="" class="wp-image-20360" style="width:487px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/transformers.png 631w, https://www.smalsresearch.be/wp-content/uploads/2024/04/transformers-300x194.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></a></figure>



<p>In de praktijk zien we dat de ‘basis’ gestructureerde versie (zonder opschoning of selectie) een resultaat geeft voor +/- 53 % van de adressen (voor KBO-gegevens, zie bijgevoegde figuur). Dit wordt gevolgd door 20 % na verwijdering van de lokaliteit, nog steeds in gestructureerde vorm, dan 11% in ongestructureerde vorm, 8% na opschoning in gestructureerde vorm, en dan een reeks andere combinaties voor een klein aantal adressen. Bijna alle combinaties zijn op een bepaald moment bruikbaar.</p>



<h2 class="wp-block-heading"><strong>Resultaten</strong></h2>



<p>Het resultaat is zichtbaar in onderstaande grafieken. De bePelias-oplossing is bijna net zo efficiënt als Here WeGo (here in de grafieken) of Microsofts Bing Maps (bing); beter dan Google Maps (google), dat vrij gevoelig is voor ruis in adressen, zoals tekst tussen haakjes, en NominatimWrapper, dat enkel de straten lokaliseert voor een groot deel van de adressen.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-12 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/04/matching_rate_rep_10000.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20449" src="/wp-content/uploads/2024/04/matching_rate_rep_10000-1024x587.png" alt="" class="wp-image-20449" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_rrn_10000_2.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20351" src="/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-1024x587.png" alt="" class="wp-image-20351" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/04/matching_rate_best_10000_2.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20358" src="/wp-content/uploads/2024/04/matching_rate_best_10000_2-1024x587.png" alt="" class="wp-image-20358" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_kbo_10000_2.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20349" src="/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-1024x587.png" alt="" class="wp-image-20349" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>We hebben ook de nauwkeurigheid van de bePelias-resultaten getest met behulp van een &#8216;majority voting&#8217;-methodologie door dezelfde dataset naar verschillende geocoders te sturen. We presenteerden de resultaten in <a href="/webinar-geocoding-follow-up/">een recent webinar</a>, waaruit bleek dat de prestaties zeer vergelijkbaar zijn met die van Here WeGo of Bing Maps, en opnieuw aanzienlijk beter dan Google Maps, dat naast het feit dat het vaak alleen de straat lokaliseert, een vervelende neiging heeft om te hallucineren en resultaten biedt die duizenden kilometers verwijderd zijn van het juiste antwoord.</p>



<p>Wat snelheid betreft, geeft het feit dat de oplossing lokaal draait een aanzienlijk voordeel, namelijk twee keer zo snel als Google Maps of 5 keer zo snel als Bing Maps. Hiervoor moet de geocoder natuurlijk zo dicht mogelijk bij de toepassing die hem nodig heeft worden geïnstalleerd.</p>



<h2 class="wp-block-heading"><strong>Conclusies: tool bePelias</strong> </h2>



<p>Op basis van bovenstaande stellen wij een werkende oplossing, bePelias, ter beschikking, die je in staat stelt om lokaal een geocoder te instantiëren, met behulp van Docker, uitsluitend gebaseerd op open source code (Pelias) en open data (voornamelijk BeSt Address), met nauwelijks een paar duizend regels extra code in Python of Bash.</p>



<p>Onze oplossing heeft natuurlijk niet alleen maar voordelen:</p>



<ul class="wp-block-list">
<li>bePelias werkt alleen voor België;</li>



<li>bePelias werkt alleen voor adressen. Je krijgt geen antwoord op ‘Smals, Sint-Gillis’ of ‘Bakker, Namen’;</li>



<li>bePelias vereist de installatie, het beheer en het onderhoud (updaten van de server, bePelias en ‘BeSt Address’-gegevens) van een server met ongeveer 15 GB schijfruimte en minstens 8 GB RAM geheugen, wat, afhankelijk van het project, een hogere kost kan betekenen dan het gebruik van een commerciële <em>cloud</em>-oplossing;</li>



<li>In dit stadium is dit nog een onderzoeksproject dat zich moet bewijzen in een industriële omgeving.</li>
</ul>



<p>Daar staat tegenover dat:</p>



<ul class="wp-block-list">
<li>bePelias vergelijkbare prestaties biedt met de grote commerciële spelers in de sector;</li>



<li>bePelias on-premise werkt, wat de problemen van vertrouwelijkheid en GDPR oplost;</li>



<li>bePelias gebaseerd is op BeSt Address, de (recente) authentieke bron van adressen in België. Het verkrijgen van een ‘BeSt id’ maakt het gemakkelijker om te communiceren met een reeks webservices die deze bron hebben geïntegreerd.</li>
</ul>



<p>Feedback is zeer welkom en zal helpen om deze tool, die klaar staat om gebruikt te worden, te verbeteren!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<ol class="wp-block-footnotes"><li id="b7665c04-0011-4cad-a98a-5e516f4a994c">Dit is een vereenvoudigd illustratief voorbeeld, waarvan de syntaxis niet overeenkomt met een bekende tool. <a href="#b7665c04-0011-4cad-a98a-5e516f4a994c-link" aria-label="Jump to footnote reference 1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li></ol>


<p class="has-cyan-bluish-gray-color has-text-color has-link-color wp-elements-c41eb3572da4d9702c8d124766adb49c">Deze post is een individuele bijdrage van Vandy Berten, gespecialiseerd in data science bij Smals Research. Dit artikel is geschreven onder zijn eigen naam en weerspiegelt op geen enkele wijze de standpunten van Smals.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>bePelias, un géocodeur local basé sur BeSt Address</title>
		<link>https://www.smalsresearch.be/bepelias-un-geocodeur-local-base-sur-best-address/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Tue, 23 Apr 2024 07:00:00 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[geocoding]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=20294</guid>

					<description><![CDATA[Le géocodage est l'opération qui permet de transformer une adresse postale textuelle ("av. Fonsny 20, 1060 Bruxelles") en une version décomposée et standardisée, associée à une localisation géographique]]></description>
										<content:encoded><![CDATA[
<p><em><a href="/bepelias-een-lokale-geocoder-gebaseerd-op-best-address/" data-type="post" data-id="20443">Nederlandstalige versie</a></em></p>



<p>Le géocodage est l&#8217;opération qui permet de transformer une adresse postale textuelle (&#8220;av. Fonsny 20, 1060 Bruxelles&#8221;) en une version décomposée et standardisée, associée à une localisation géographique<sup data-fn="b7665c04-0011-4cad-a98a-5e516f4a994c" class="fn"><a href="#b7665c04-0011-4cad-a98a-5e516f4a994c" id="b7665c04-0011-4cad-a98a-5e516f4a994c-link">1</a></sup>&nbsp;:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #000000">{</span><span style="color: #0451A5">&quot;street&quot;</span><span style="color: #000000">:  </span><span style="color: #A31515">&quot;Avenue Fonsny&quot;</span><span style="color: #000000">, </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;number&quot;</span><span style="color: #000000">:  </span><span style="color: #098658">20</span><span style="color: #000000">, </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;zipcode&quot;</span><span style="color: #000000">: </span><span style="color: #098658">1060</span><span style="color: #000000">,  </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;city&quot;</span><span style="color: #000000">:    </span><span style="color: #A31515">&quot;Saint-Gilles&quot;</span><span style="color: #000000">,</span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;lat&quot;</span><span style="color: #000000">:     </span><span style="color: #098658">50.8358216</span><span style="color: #000000">, </span></span>
<span class="line"><span style="color: #000000"> </span><span style="color: #0451A5">&quot;lon&quot;</span><span style="color: #000000">:     </span><span style="color: #098658">4.3386884</span><span style="color: #000000">}</span></span></code></pre></div>



<p>Dans un <a href="/geocodage-quel-outil-pour-quel-besoin/">article précédent</a>, nous avons montré qu&#8217;il existe une série d&#8217;outils pour réaliser cette opération et que, dans certaines circonstances, il est nécessaire de disposer d&#8217;un outil sur site (on-premise), ou local. Nous avons déjà mis en avant <a href="/geocodage-contourner-les-lacunes-dopenstreetmap-partie-2/">NominatimWrapper</a>, une solution que nous avons développée, basée sur <a href="https://openstreetmap.org/">OpenStreetMap</a>.</p>



<p>En Belgique, le service public fédéral <a href="https://bosa.belgium.be/fr">&#8220;Stratégie et Appui&#8221; (BOSA)</a> gère <a href="https://opendata.bosa.be/index.fr.html">BeSt Address</a>, la source authentique des adresses belges. Elles sont disponibles en open data dans différents formats. Dans cet article, nous allons nous pencher sur la question suivante&nbsp;: <em>est-il possible de mettre en place un géocodeur local basé sur ces données</em>&nbsp;? La réponse nécessite une certaine nuance&nbsp;: Oui, mais&#8230;</p>



<p>Précisons d&#8217;abord que BOSA met à disposition <a href="https://bosa.belgium.be/fr/services/best-address-services">une série de web services</a>, mais avec deux limitations&nbsp;: </p>



<ul class="wp-block-list">
<li>Ceux-ci sont uniquement disponibles pour les services publics, pas pour les entreprises ou les citoyens ;</li>



<li>Ils n&#8217;offrent pas l&#8217;aspect &#8220;standardisation&#8221;&nbsp;: il est nécessaire de connaitre l&#8217;orthographe (quasi) exacte d&#8217;une rue ou d&#8217;une (sous-)commune pour l&#8217;utiliser. </li>
</ul>



<h2 class="wp-block-heading">Pelias</h2>



<p>Le projet open source <a href="https://pelias.io/">Pelias</a> permet de mettre en place un géocodeur basé sur ses propres données. En combinaison avec <a href="https://openaddresses.io/">OpenAddresses.io</a>, un projet rassemblant des données d&#8217;adresses ouvertes, il est possible de déployer Pelias pour une série de pays ou de villes, <a href="https://github.com/pelias/docker/tree/master/projects/belgium">dont la Belgique avec BeSt Address (en combinaison avec OpenStreetMap)</a>.</p>



<p>S&#8217;il est facile de mettre en place un géocodeur combinant Pelias et BeSt Address qui semble bien marcher quand on le teste sur quelques adresses, on déchante vite quand on tente de passer à la vitesse supérieure, en lui envoyant des ensembles de données venant de la <a href="https://kbopub.economie.fgov.be/kbo-open-data/login?lang=fr">Banque Carrefour des Entreprises</a> (belge), du <a href="https://employer-identification-consult.prd.pub.socialsecurity.be/">répertoire des employeurs</a> (ONSS) ou encore du registre national. </p>



<p>Pelias permet deux modes d&#8217;interrogation&nbsp;: structuré ({&#8220;address&#8221;: &#8220;Avenue Fonsnsy 20&#8221;, &#8220;postalcode&#8221;: 1060, &#8220;locality&#8221;: &#8220;Saint-Gilles&#8221;}) ou non structuré ({&#8220;query&#8221;: &#8220;Avenue Fonsnsy 20, 1060 Saint-Gilles&#8221;}). Sur les données que nous avons testées (10.000 adresses provenant de diverses sources en légende ci-dessous) en mode structuré (cf. &#8220;pelias_struct&#8221; dans le graphique ci-dessous), Pelias n&#8217;a été capable de localiser précisément que de l&#8217;ordre de 55 % des adresses. Quelques pour cents (1-2) sont localisés au niveau de la rue, et dans +/- 35 % des cas, Pelias n&#8217;a trouvé que la ville &#8230; autant dire, rien d&#8217;exploitable. Et dans 7-10 %, on ne reçoit même aucun résultat.&nbsp; &nbsp;</p>



<p>Pelias fait un petit peu mieux en mode &#8220;non-structuré&#8221; (pelias), puisqu&#8217;il sera presque toujours capable de fournir un résultat, et 11 % des adresses supplémentaires sont localisées précisément.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-13 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_rrn_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20335" src="/wp-content/uploads/2024/03/matching_rate_rrn_10000-1024x594.png" alt="" class="wp-image-20335" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Registre National</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_rep_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20334" src="/wp-content/uploads/2024/03/matching_rate_rep_10000-1024x594.png" alt="" class="wp-image-20334" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rep_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Répertoire des Employeurs</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_best_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20332" src="/wp-content/uploads/2024/03/matching_rate_best_10000-1024x594.png" alt="" class="wp-image-20332" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_best_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">BeSt Addresses</figcaption></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_kbo_10000.png"><img loading="lazy" decoding="async" width="1024" height="594" data-id="20333" src="/wp-content/uploads/2024/03/matching_rate_kbo_10000-1024x594.png" alt="" class="wp-image-20333" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-1024x594.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-300x174.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-768x445.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000-1536x891.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000.png 1843w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Banque Carrefour des Entreprises</figcaption></figure>
</figure>



<p>Il est intéressant de remarquer quelques éléments&nbsp;: </p>



<ul class="wp-block-list">
<li>Quand le résultat n&#8217;est pas précis, le résultat ne contient pas de données provenant de BeSt Address, mais d&#8217;OpenStreetMap (niveau &#8220;street&#8221;) ou WhosOnFirst (niveau &#8220;city&#8221;) ;</li>



<li>Il arrive qu&#8217;une adresse ne donne pas de résultat en mode &#8220;structuré&#8221;, mais en donne en &#8220;non-structuré&#8221;, et vice-versa ;</li>



<li>En mode structuré, Pelias semble fréquemment perturbé par la présence du paramètre &#8220;locality&#8221; en addition du &#8220;postalcode&#8221;. Souvent, une adresse donne un résultat de niveau &#8220;city&#8221; quand on lui fournit ce paramètre, mais de niveau &#8220;building&#8221; quand on lui fournit uniquement le code postal (en plus de la rue et du numéro). On peut voir la différence dans le graphique sur la ligne &#8220;pelias_struc_noloc&#8221;, où la partie localisée précisément (&#8220;building&#8221;, en vert) augmente de près de 25 %. En contrepartie, la partie localisée au niveau de la ville, grandement basée sur cet argument &#8220;locality&#8221;, disparaît quasiment ;</li>



<li>Le résultat fourni par Pelias ne contient pas de &#8220;BeSt id&#8221;, qui permettrait d&#8217;obtenir l&#8217;identifiant unique et authentique d&#8217;une adresse ;</li>



<li>Ni les adresses en français des communes flamandes à facilités (et vice-versa) ni les adresses germanophones des cantons de l&#8217;Est ne sont importées.</li>
</ul>



<p>Mais il y a à l&#8217;heure d&#8217;écrire ces lignes un problème encore plus important&nbsp;: les données utilisées par Pelias datent de mi-2021, et ce pour deux raisons&nbsp;:&nbsp;</p>



<ul class="wp-block-list">
<li>Le format reconnu par OpenAddresses a changé vers octobre 2021 et n&#8217;est plus compatible avec les fichiers mis à disposition par Bosa ;</li>



<li>OpenAddresses a changé son flux de données mi-2021&nbsp;: au préalable, les données préparées étaient mises à disposition à l&#8217;adresse <a href="https://results.openaddresses.io/">https://results.openaddresses.io/</a>, qui est toujours disponible mais dont les données ne sont plus mises à jour ; elles le sont maintenant sur <a href="https://batch.openaddresses.io/data">https://batch.openaddresses.io/data</a>. Mais Pelias n&#8217;a pas été adapté et continue à télécharger les données sur l&#8217;ancien système.</li>
</ul>



<h2 class="wp-block-heading">bePelias</h2>



<p>Il semble donc assez clair que Pelias n&#8217;est en l&#8217;état, pas un candidat sérieux pour une application nécessitant de géocoder des adresses en Belgique. Tant les données importées (trop anciennes, sans ID, sans données au niveau des rues si un numéro n&#8217;est pas identifié) que la robustesse font défaut. Mais il nous semblait que le potentiel était là et avons cherché à l&#8217;améliorer. Il y avait deux pistes&nbsp;:&nbsp;</p>



<ul class="wp-block-list">
<li>Créer un &#8220;clone&#8221; de Pelias, en modifiant son code. Avec le risque de faire des changements qui ne soient pas compatibles avec les futures évolutions de Pelias, et un effort de compréhension et de développement important ;</li>



<li>Rajouter une &#8220;sur-couche&#8221;, comme nous l&#8217;avons déjà fait avec succès dans <a href="https://github.com/SmalsResearch/NominatimWrapper">NominatimWrapper</a>, pour pallier les défaut de Pelias. C&#8217;est cette seconde voie que nous avons choisie.</li>
</ul>



<p>Cet outil, que nous avons appelé &#8220;<em>bePelias</em>&#8221; et que nous mettons à disposition en open source (<a href="https://github.com/SmalsResearch/bePelias">https://github.com/SmalsResearch/bePelias</a>), fait principalement deux choses&nbsp;:</p>



<figure class="wp-block-image alignright size-full is-resized"><a href="/wp-content/uploads/2024/04/bepelias_archi.png"><img loading="lazy" decoding="async" width="672" height="381" src="/wp-content/uploads/2024/04/bepelias_archi.png" alt="" class="wp-image-20365" style="width:399px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/bepelias_archi.png 672w, https://www.smalsresearch.be/wp-content/uploads/2024/04/bepelias_archi-300x170.png 300w" sizes="auto, (max-width: 672px) 100vw, 672px" /></a></figure>



<ul class="wp-block-list">
<li>Une préparation plus complète des données de BeSt Address, incluant une série de données additionnelles (id des adresses, des rues, codes NIS des communes&#8230;), complétant l&#8217;aspect multilingue et permettant l&#8217;identification au niveau de la rue quand le numéro n&#8217;est pas connu. Nous avons par ailleurs configuré Pelias pour permettre l&#8217;interpolation (supposant que le &#8220;8&#8221; d&#8217;une rue, s&#8217;il n&#8217;est pas connu, se situe entre le &#8220;6&#8221; et le &#8220;10&#8221;).</li>



<li>Une couche intermédiaire entre Pelias et le client, sous forme de REST API, pour tenter une série de variantes d&#8217;une adresse. On testera une série de combinaisons des variantes suivantes, jusqu&#8217;à ce qu&#8217;une donne un résultat satisfaisant&nbsp;: 
<ul class="wp-block-list">
<li>Version structurée ou non-structurée de l&#8217;appel à Pelias ;</li>



<li>Avec la localité, ou uniquement le code postal ;</li>



<li>En nettoyant, avec une série d&#8217;expressions régulières, le nom de rue ou de localité. Typiquement, on enlèvera tout texte entre parenthèses, très fréquent dans les noms de rue pour préciser un commentaire ou le nom de la sous-commune ;</li>



<li>En nettoyant le numéro de maison, qui contient très souvent également un numéro de boite, ce qui ne change pas la localisation dans la plupart des cas.</li>
</ul>
</li>
</ul>



<figure class="wp-block-image alignleft size-full is-resized"><a href="/wp-content/uploads/2024/04/transformers.png"><img loading="lazy" decoding="async" width="631" height="409" src="/wp-content/uploads/2024/04/transformers.png" alt="" class="wp-image-20360" style="width:487px;height:auto" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/transformers.png 631w, https://www.smalsresearch.be/wp-content/uploads/2024/04/transformers-300x194.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></a></figure>



<p>Dans la pratique, on constate que la version structurée &#8220;de base&#8221; (sans nettoyage ou sélection) donne un résultat dans +/- 50 % des adresses (pour les données KBO, cf. figure ci-jointe). Viennent ensuite 20 % après suppression de la localité, toujours en structuré, puis 11 % en non structuré, 8 % après nettoyage en structuré, puis une série d&#8217;autres combinaisons pour un petit nombre d&#8217;adresses. Quasiment toutes les combinaisons sont utiles à un moment.</p>



<h2 class="wp-block-heading">Résultats</h2>



<p>Le résultat est visible dans les graphiques ci-dessous. La solution bePelias est quasiment aussi efficace que Here WeGo (here dans les graphiques) ou Bing Maps de Microsoft (bing); meilleure que Google Maps (google), qui s&#8217;avère assez sensible au bruit dans les adresses, comme du texte entre parenthèse, ainsi que NominatimWrapper, qui localise uniquement les rues d&#8217;une grande proportion d&#8217;adresses.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-14 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/04/matching_rate_rep_10000.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20449" src="/wp-content/uploads/2024/04/matching_rate_rep_10000-1024x587.png" alt="" class="wp-image-20449" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_rep_10000.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_rrn_10000_2.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20351" src="/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-1024x587.png" alt="" class="wp-image-20351" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_rrn_10000_2.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/04/matching_rate_best_10000_2.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20358" src="/wp-content/uploads/2024/04/matching_rate_best_10000_2-1024x587.png" alt="" class="wp-image-20358" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/04/matching_rate_best_10000_2.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2024/03/matching_rate_kbo_10000_2.png"><img loading="lazy" decoding="async" width="1024" height="587" data-id="20349" src="/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-1024x587.png" alt="" class="wp-image-20349" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-1024x587.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-300x172.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-768x440.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2-1536x880.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2024/03/matching_rate_kbo_10000_2.png 1866w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>Nous avons également testé l&#8217;exactitude des résultats de bePelias selon une méthodologie de vote par majorité en envoyant un même ensemble de données à plusieurs géocodeurs. Nous avons présenté les résultats lors d&#8217;<a href="/webinar-geocoding-follow-up/">un récent webinaire</a>, qui nous montrent des performances très proches de Here WeGo ou Bing Maps, et, à nouveau, sensiblement meilleures que Google Maps, qui outre le fait qu&#8217;il ne situe fréquemment que la rue, a une fâcheuse à l&#8217;hallucination, en proposant des résultats à des milliers de kilomètres de la bonne réponse.</p>



<p>En termes de vitesse, le fait que la solution soit sur site lui donne un avantage non-négligeable, en étant deux fois plus rapide que Google Maps ou 5 fois que Bing Maps. Ceci nécessitera bien sûr d&#8217;installer le géocodeur au plus près de l&#8217;application qui en a besoin.</p>



<h2 class="wp-block-heading">Conclusions&nbsp;: outil bePelias</h2>



<p>Sur base de ce qui précède, nous proposons une solution fonctionnelle, bePelias, qui permet d&#8217;instancier un géocodeur localement. Ceci se fait à l&#8217;aide de Docker, est basé uniquement sur du code source ouvert (Pelias) et de données ouvertes (principalement BeSt Address), avec à peine un gros milliers de lignes de code additionnel en Python ou Bash.</p>



<p>Elle n&#8217;a bien sûr pas que des avantages&nbsp;:</p>



<ul class="wp-block-list">
<li>Elle ne marche que pour la Belgique ;</li>



<li>Elle ne marche que pour des adresses. Vous n&#8217;aurez pas de réponse à &#8220;Smals, Saint-Gilles&#8221;, ou &#8220;Boulangerie, Namur&#8221; ;</li>



<li>Elle nécessite la mise en place, la gestion et la maintenance (mise à jour du serveur, de bePelias et des données de BeSt Address) d&#8217;un serveur avec une quinzaine de GB de disque et au moins 8 GB de mémoire RAM, ce qui, en fonction du projet, peut représenter un coût supérieur à l&#8217;utilisation d&#8217;une solution <em>cloud</em> commerciale ;</li>



<li>Il s&#8217;agit encore à ce stade d&#8217;un projet de recherche qui doit faire ses preuves dans un environnement industriel.</li>
</ul>



<p>Mais en contrepartie&nbsp;:</p>



<ul class="wp-block-list">
<li>Elle offre des performances comparables aux grands acteurs commerciaux du secteur ;</li>



<li>Elle est on-premise, ce qui règle des problèmes de confidentialité ou liés aux RGPD ;</li>



<li>Elle est basée sur BeSt Address, c&#8217;est-à-dire la (récente) source authentique des adresses en Belgique. L&#8217;obtention d&#8217;un &#8220;BeSt id&#8221; permettra d&#8217;interagir plus facilement avec une série de webservices qui auront intégré cette source.</li>
</ul>



<p>Des retours d&#8217;expérience sont bienvenus et aideront à faire progresser cet outil qui ne demande qu&#8217;à être utilisé&nbsp;!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<ol class="wp-block-footnotes"><li id="b7665c04-0011-4cad-a98a-5e516f4a994c">Il s&#8217;agit d&#8217;un exemple illustratif simplifié, dont la syntaxe ne correspond à aucun outil connu. <a href="#b7665c04-0011-4cad-a98a-5e516f4a994c-link" aria-label="Jump to footnote reference 1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li></ol>


<p><span style="color: #999999;"><em>Ce post est une contribution individuelle de Vandy Berten, spécialisé&nbsp;</em>en<em>&nbsp;data science&nbsp;chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Geocodering: welke tool voor welke behoefte?</title>
		<link>https://www.smalsresearch.be/geocode-welke-tool-voor-welke-behoefte/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Fri, 23 Jun 2023 13:12:39 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[data quality]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[geocoding]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=18710</guid>

					<description><![CDATA[Om een adres te kunnen plaatsen op een kaart, om een reisweg uit te stippelen of om alle winkels in een bepaalde wijk te bepalen, moet er eerst een belangrijke stap genomen worden: geocodering. Deze handeling houdt in dat een postadres zoals "Av. Fonsny 20, 1060 Bruxelles" enerzijds "gestandaardiseerd" kan worden (bordeaux gedeelte van onderstaande afbeelding), en anderzijds dat deze geografische coördinaten toegewezen krijgt ("location" in de afbeelding).]]></description>
										<content:encoded><![CDATA[<p><em><a href="/geocodage-quel-outil-pour-quel-besoin/">Version en français</a></em></p>
<p>Om een adres te kunnen plaatsen op een kaart, om een reisweg uit te stippelen of om alle winkels in een bepaalde wijk te bepalen, moet er eerst een belangrijke stap genomen worden: geocodering. Deze handeling houdt in dat een postadres zoals &#8220;Av. Fonsny 20, 1060 Bruxelles&#8221; enerzijds &#8220;gestandaardiseerd&#8221; kan worden (bordeaux gedeelte van onderstaande afbeelding), en anderzijds dat deze geografische coördinaten toegewezen krijgt (&#8220;location&#8221; in de afbeelding).  </p>


<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2023/05/2023-05-22_15h03_49.png"><img loading="lazy" decoding="async" width="1024" height="390" src="/wp-content/uploads/2023/05/2023-05-22_15h03_49-1024x390.png" alt="" class="wp-image-18590" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49-1024x390.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49-300x114.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49-768x292.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49.png 1335w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>


<p>De standaardisering zal voor een juiste opsplitsing in componenten zorgen van het adres en ook een correctie (&#8220;Av.&#8221; in &#8220;Avenue&#8221;, &#8220;1060 Bruxelles&#8221; in &#8220;1060 Saint-Gilles&#8221;). Er zullen ook niet-relevante elementen voor de geocodering kunnen geschrapt worden, zoals het grijze schuingedrukte gedeelte in &#8220;Av. Fonsny <span style="color: #999999;">20 bte 5 (tegenover het station)</span>&#8220;. Deze stap komt eigenlijk neer op het maken van een correspondentie tussen een ingevoerd adres en de repository waarin elke gestructureerd adres verbonden is met zijn geografische coördinaten. Deze standaardisering maakt dus integraal deel uit van het geocodeproces en is nodig.</p>
<p>De omgekeerde handeling, het vragen naar alle bestaande adressen binnen een bepaalde omtrek van een punt, heet &#8220;reverse geocoding&#8221;.</p>
<p>Geocodering kan gedaan worden met OpenStreetMap door de volgende url op te roepen:</p>
<p><a href="https://nominatim.openstreetmap.org/?q=Av.+fonsny+20,+1060+Bruxelles&amp;format=jsonv2">https://nominatim.openstreetmap.org/?q=Av.+fonsny+20,+1060+Bruxelles&amp;format=jsonv2</a></p>
<p>De &#8220;reverse&#8221; correspondant kan via volgend adres bekomen worden&nbsp;:</p>
<p><a href="https://nominatim.openstreetmap.org/reverse?lat=50.83586776&amp;lon=4.3385087&amp;format=jsonv2">https://nominatim.openstreetmap.org/reverse?lat=50.83586776&amp;lon=4.3385087&amp;format=jsonv2</a></p>
<h1>Tools</h1>
<p>Deze handeling gebeurt normaal gezien via een API die ter beschikking gesteld wordt door een server. Er bestaan talrijke oplossingen en de keuze zal sterk afhangen van de antwoorden op de verschillende vragen die we verder gaan vermelden. We zullen ons richten op geocode van adressen in België, maar behalve enkele specifieke elementen, zullen de vragen algemeen zijn.</p>
<p>We hebben een aantal al dan niet commerciële tools uitgebreid bestudeerd:&nbsp;</p>
<ul>
<li>Commercieel (Cloud)&nbsp;:
<ul>
<li><a href="https://developers.google.com/maps/documentation/geocoding/overview">Google Maps</a></li>
<li><a href="https://learn.microsoft.com/en-us/bingmaps/rest-services/">Bing Maps</a></li>
<li><a href="https://developer.here.com/documentation/geocoding-search-api/dev_guide/index.html">Here</a></li>
<li><a href="https://developer.tomtom.com/geocoding-api/documentation/geocode">TomTom</a></li>
<li><a href="https://docs.mapbox.com/api/search/geocoding/">Mapbox</a></li>
</ul>
</li>
<li>Niet-commercieel (on premise)&nbsp;:
<ul>
<li><a href="https://nominatim.org/release-docs/latest/api/Overview/">Nominatim</a> (OpenStreetMap), &#8220;<a href="https://github.com/mediagis/nominatim-docker/tree/master/4.2">lokaal gedockte</a>&#8221; versie</li>
<li><a href="https://github.com/SmalsResearch/NominatimWrapper/">NominatimWrapper</a>, een oplossing die we ontwikkeld hebben om bepaalde lacunes van Nominatim op te vullen</li>
<li><a href="https://pelias.io/">Pelias</a>, door er data van <a href="https://opendata.bosa.be/index.fr.html">BestAddress</a> op te laden (authentieke bron van adressen in België) en van OpenStreetMap</li>
</ul>
</li>
</ul>
<p>We hebben overigens in &#8220;avant-première&#8221; de <a href="https://bosa.belgium.be/fr/services/best-address-services">API van BestAddress</a>, bestudeerd die niet publiek beschikbaar is. Merk op dat meerdere grote actoren voor GIS-oplossingen ook gerichte oplossingen kunnen bieden, al dan niet (semi-)on-premise. We hebben deze pistes nog niet verder uitgezocht. Ze vereisen complexe commerciële stappen met deze ondernemingen..</p>
<h1>Cloud vs on-premise</h1>
<p>Een eerste vraag die we ons stellen is of we een commerciële API kunnen gebruiken die ‘enkel’ moet opgeroepen worden, of dat het nodig is om een &#8220;on-premise&#8221; geocoder te beheren en installeren binnen de infrastructuur van de onderneming of administratie.</p>
<p>Het voordeel van een commerciële Cloud-oplossing (Google Maps, Here, Bing, &#8230;) is het beheersgemak en gebrek aan infrastructuurkosten. Deze oplossingen zijn in het algemeen ook van goede kwaliteit en bieden een wereldwijde dekking. Er zal echter rekening gehouden moeten worden met kosten per oproep, wat problematisch kan worden voor grote volumes. Vaak wordt er echter een gratis aantal oproepen voorgesteld (40 000/maand voor Google Maps, 30 000/maand voor Here, &#8230;)</p>
<p>Dankzij de on-premise oplossingen kan beantwoord worden aan hogere eisen op het vlak van vertrouwelijkheid of naleving van de GDPR-regelgeving. Ze zullen in het algemeen ook vlugger zijn als het datavolume groter is. Er zal echter rekening gehouden moeten worden met hogere infrastructuur- en beheerskosten, en een wereldwijde dekking zal moeilijk te realiseren zijn, tenzij we beschikken over meerdere terabytes aan gegevens die aan het product gewijd kunnen worden.</p>
<table style="width: 100%; height: 544px;" width="990">
<tbody>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">&nbsp;</td>
<td style="height: 68px;" width="277">
<p><b>Cloud solutions</b></p>
</td>
<td style="height: 68px;" width="330">
<p><b>On-premise</b><b> solutions</b></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>In te voeren complexiteit</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Infrakosten</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>GDPR, Vertrouwelijkheid</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Kosten voor grote volumes (tijd, €)</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Internettoegang</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Kwaliteit</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff6600;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f610.png" alt="😐" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Wereldwijde dekking</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
</tbody>
</table>
<h1>Nauwkeurigheidsniveau</h1>
<p>De eis van nauwkeurigheid, d.w.z. de noodzaak dat het adres zich precies op de juiste plaats bevindt, zal niet dezelfde zijn als het doel is om globale statistieken op te stellen, om uit te zoeken in welke wijk een adres zich bevindt, welke bezorger of inspecteur het in zijn ronde moet opnemen, als wanneer het doel is om een noodhulpteam uit te sturen. In de eerste situaties zullen we accepteren dat bijvoorbeeld een bepaald deel van de adressen zich op straatniveau bevindt en niet op het niveau van een specifiek gebouw.</p>
<h1>Structurering van adressen</h1>
<p>De meeste geocoders aanvaarden als invoer ofwel een gestructureerd adres (straat= &#8220;Av. Fonsny&#8221;, nummer=&#8221;20&#8243;&#8230;) ofwel een niet-gestructureerd adres (adres=&#8221;Av. Fonsny 20, 1060 St-Gilles&#8221;). Maar sommige vereisen dat het adres gestructureerd is, wat voor problemen kan zorgen als we er niet in die vorm over beschikken of wanneer ze verkeerd opgesplitst worden (straat=&#8221;Av. Fonsny 20&#8243;, nummer=&#8221;&#8221;).</p>
<h1>Authentieke bron</h1>
<p>Eenzelfde adres kan meerdere schrijfwijzes hebben afhankelijk van de bron. Zo zijn er in Brussel twee straten genoemd (in het Frans) naar de gemeente &#8220;Tervuren&#8221; (een steenweg in Oudergem, een laan in Etterbeek, Oudergem en Sint-Pieters-Woluwe):</p>
<ul>
<li>Volgens Bing bestaat er &#8220;chaussée de Ter<strong>vur</strong>en&#8221; en &#8220;avenue de Ter<strong>vuer</strong>en&#8221; ;</li>
<li>Volgens Google Maps of OpenStreetMap, bestaat er &#8220;chaussée de Ter<strong>vuer</strong>en&#8221; en &#8220;avenue de Ter<strong>vuer</strong>en&#8221; ;</li>
<li>Volgens BestAddress is er &#8220;Ter<strong>vuer</strong>en&#8221; in Etterbeek en Sint-Pieters-Woluwe, maar &#8220;chaussée&#8221; en &#8220;avenue de Ter<strong>vur</strong>en&#8221; in Ouderghem ;</li>
<li>Volgens het rijksregister gaat het altijd om Ter<strong>vue</strong>ren.</li>
</ul>
<p>Afhankelijk van de context kan het belangrijk zijn om altijd de formulering te bekomen die overeenstemt met een precieze bron. Bijvoorbeeld omdat we per se een versie nodig hebben die bekend is bij een authentieke bron. Of, in het geval van geografische coördinaten, omdat je het gaat weergeven op een achtergrondkaart en je zo consistent mogelijk wilt zijn. Het plaatsen van een adres dat geocodeerd is met OpenStreetMap op een kaart van Google Maps kan in sommige gevallen een kleine afwijking veroorzaken.</p>
<p>Als je gegevens moet verkrijgen van BestAddress (in België), zijn er momenteel drie belangrijke opties:</p>
<ul>
<li>De &#8220;officiële&#8221; API aangeboden door Bosa (momenteel alleen in de testfase)</li>
<li>In lokale installatie, Pelias met de BestAddress-dataset</li>
<li><a href="https://phacochr.github.io/phacochr/">Phacochr</a> (cfr. hieronder), enkel in batchmodus, zonder API.</li>
</ul>
<p>Merk ook op dat er een <a href="https://loc.geopunt.be/">API bestaat verschaft door &#8220;geopunt.be&#8221;</a>, specifiek voor de Belgische adressen in Vlaanderen en Brussel (in het Nederlands).</p>
<h1>Dekking</h1>
<p>Een van de voordelen van Cloud-oplossingen is dat je een adres in Brussel, New York en Taipei tegelijk kunt geocoderen. Hetzelfde doen met een lokale oplossing kan onbetaalbaar veel ruimte in beslag nemen. Voor het (zeer kleine) België heeft OpenStreetMap (Nominatim) 30 GB schijfruimte nodig. Voor de hele wereld zouden meerdere terabytes nodig zijn, en meerdere weken om op te zetten.</p>
<p>Een installatie beperkt tot één land kan echter geschikt zijn voor een administratie die alleen adressen in haar eigen land moet beheren. Er zijn ook hybride mogelijkheden: het is mogelijk om Nominatim te configureren om volledige geocodering aan te bieden voor een selectie van landen, en zich te beperken tot lokalisatie en opschoning op stadsniveau voor de rest van de wereld.</p>
<h1>Behoefte aan een API</h1>
<p>We hebben ons gericht op API&#8217;s, d.w.z. &#8220;technische&#8221; interfaces die de functionaliteit bieden om adressen één voor één te geocoderen. Dit maakt het mogelijk om deze functionaliteit te integreren in een toepassing of een geautomatiseerd datamanagementproces. In sommige gevallen heb je echter een bestand met adressen die je manueel wilt geocoderen vóór een specifieke analyse. Er zijn een aantal tools beschikbaar voor dit doel, zoals <a href="https://www.geoapify.com/tools/geocoding-online">GeoApify</a>, of, voor Belgische adressen met BestAddress-gegevens, Phacochr (<a href="https://phacochr.github.io/phacochr">in een R-script</a>, ou <a href="https://phacochr.github.io/phacochr/articles/shiny_app.html">met de webversie</a>)</p>
<h1>Performantie</h1>
<p>Het is niet voldoende om een oplossing te hebben die aan de bovenstaande criteria voldoet. Het moet ook de juiste performanties leveren. Er moet zeker rekening worden gehouden met het aspect &#8216;snelheid&#8217;, maar we zijn hier vooral geïnteresseerd in &#8220;robuustheid&#8221;, d.w.z. de mogelijkheid om een (nauwkeurig) resultaat te bieden voor het grootste aantal adressen. Voor een reeks steekproeven van Belgische adressen uit verschillende bronnen (officiële en niet-officiële) hebben we een aantal tests uitgevoerd. In de grafieken hieronder staat het blauwe deel voor het aandeel adressen dat de API nauwkeurig kon lokaliseren (op gebouwniveau). In oranje werd de straat gevonden, maar niet het exacte nummer. In groen kon alleen de plaats worden gelokaliseerd.</p>
<p>De steekproeven van elk 1000 adressen komen uit de volgende bronnen (allemaal Belgische):&nbsp;&nbsp;</p>
<ul>
<li>kbo&nbsp;: Kruispuntbank van de Ondernemingen</li>
<li>rep&nbsp;: Werkgeversrepertorium</li>
<li>rrn&nbsp;: Rijksregister</li>
<li>best&nbsp;: BestAddress (Bosa)</li>
<li>resto&nbsp;: de site resto.be</li>
</ul>


<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-15 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_rrn_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18690" src="/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-1024x544.png" alt="" class="wp-image-18690" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_best_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18692" src="/wp-content/uploads/2023/06/matching_rate_best_1000-2-1024x544.png" alt="" class="wp-image-18692" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_kbo_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18693" src="/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-1024x544.png" alt="" class="wp-image-18693" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_rep_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18694" src="/wp-content/uploads/2023/06/matching_rate_rep_1000-2-1024x544.png" alt="" class="wp-image-18694" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_resto_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18695" src="/wp-content/uploads/2023/06/matching_rate_resto_1000-2-1024x544.png" alt="" class="wp-image-18695" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>


<p>Enkele bemerkingen konden geformuleerd worden:</p>
<ul>
<li>Here doet het hier beter dan Google Maps en zijn concurrenten en lokaliseert meer adressen nauwkeurig;</li>
<li>Nominatim is niet erg robuust: afhankelijk van de dataset, behalve voor de BestAddress-gegevens (best_1000, die veel schoner en meer gestandaardiseerd zijn dan de andere datasets), worden tussen 10 en 15% van de adressen gewoon niet gevonden. En van een aanzienlijk deel van de adressen is alleen de straatnaam bekend;</li>
<li>Onze oplossing gebaseerd op Nominatim (<a href="https://github.com/SmalsResearch/NominatimWrapper">NominatimWrapper</a>) verbetert zeer duidelijk de robuustheid. Maar we hebben nog steeds een groot deel van de adressen die alleen op straatniveau liggen;</li>
<li>Op dit moment is Pelias beperkt tot een groot deel van de adressen op stadsniveau. Maar de integratie van BestAddress-gegevens is vrij recent, dus we kunnen in de nabije toekomst verbeteringen verwachten;</li>
<li>De robuustheid van de BOSA API (bestaddress) ligt dicht bij die van Nominatim, maar dit is momenteel een bewuste keuze: het doel is niet echt om een API voor geocodering te verkrijgen, maar om de locatie van een adres mogelijk te maken dat al bekend is, d.w.z. waarvan de plaats- en straataanduidingen bekend zijn, of op zijn minst correct gespeld. De verschillende diensten die door de API worden aangeboden, maken het mogelijk om een lijst met straten voor elke gemeente te verkrijgen, waardoor het mogelijk wordt om een interface met lijsten of automatische aanvulling aan te bieden, zodat de invoergegevens &#8220;schoon&#8221; zijn. Het is dus geen volledige API voor geocodering, aangezien alleen het &#8220;lokalisatie&#8221;-gedeelte wordt aangeboden, en niet het &#8220;opschonen van gegevens&#8221;-gedeelte.</li>
</ul>
<p>Merk op dat het feit dat een resultaat precies is, niet betekent dat het ook correct is. We hebben deze problematiek al aangehaald <a href="/comparer-des-geocodeurs/">in een eerder artikel</a>. Een Python-notebook is eveneens beschikbaar die <a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/Geocoder_Compare.ipynb">een vergelijkingsmethodologie voorstelt</a>.</p>
<p>NominatimWrapper staat sinds juni 2023 in de Re-Use Catalogus van de sociale zekerheid in België: <a href="https://www.ict-reuse.be/nl/service/geocode-met-verbeterde-nominatim">https://www.ict-reuse.be/nl/service/geocode-met-verbeterde-nominatim</a></p>
<h1>Om af te sluiten</h1>
<p>Er zijn veel oplossingen beschikbaar voor geocodering. Soms moet je verder kijken dan de eerste die je te binnen schiet: elke tool heeft zijn voor- en nadelen. Technische en wettelijke beperkingen betekenen dat je jezelf een aantal vragen moet stellen. Het is ook cruciaal om de tool te testen op de soort gegevens die je moet beheren, omdat het kwaliteitsniveau en de structuur van de invoergegevens een grote invloed kunnen hebben op de kwaliteit van het resultaat.</p>
<hr />
<p><span style="color: #999999;"><em>Deze post is een individuele bijdrage van Vandy Berten, gespecialiseerd in data science bij Smals Research. Dit artikel is geschreven onder zijn eigen naam en weerspiegelt op geen enkele wijze de standpunten van Smals</em><em>.</em></span></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Géocodage&#160;: quel outil pour quel besoin&#160;?</title>
		<link>https://www.smalsresearch.be/geocodage-quel-outil-pour-quel-besoin/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Fri, 02 Jun 2023 07:29:11 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[data quality]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[geocoding]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=18567</guid>

					<description><![CDATA[Pour être capable de positionner une adresse sur une carte, pour calculer un itinéraire ou pour identifier l'ensemble des commerces dans un quartier donné, il est nécessaire de passer par une étape fondamentale : le géocodage. Cette opération consiste, à partir d'une adresse postale, comme "Av. Fonsny 20, 1060 Bruxelles", d'une part à la "standardiser" (partie bordeaux de l'image ci-dessous), d'autre part à lui assigner des coordonnées géographiques ("location" dans l'image).  ]]></description>
										<content:encoded><![CDATA[<p><em><a href="/geocode-welke-tool-voor-welke-behoefte/">Nederlandstalige versie</a></em></p>
<p>Pour être capable de positionner une adresse sur une carte, pour calculer un itinéraire ou pour identifier l&#8217;ensemble des commerces dans un quartier donné, il est nécessaire de passer par une étape fondamentale&nbsp;: le géocodage. Cette opération consiste, à partir d&#8217;une adresse postale, comme &#8220;Av. Fonsny 20, 1060 Bruxelles&#8221;, d&#8217;une part à la &#8220;standardiser&#8221; (partie bordeaux de l&#8217;image ci-dessous), d&#8217;autre part à lui assigner des coordonnées géographiques (&#8220;location&#8221; dans l&#8217;image).  </p>


<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2023/05/2023-05-22_15h03_49.png"><img loading="lazy" decoding="async" width="1024" height="390" src="/wp-content/uploads/2023/05/2023-05-22_15h03_49-1024x390.png" alt="" class="wp-image-18590" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49-1024x390.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49-300x114.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49-768x292.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/05/2023-05-22_15h03_49.png 1335w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>


<p>La standardisation va permettre une découpe correcte de l&#8217;adresse en composants, et une rectification (&#8220;Av.&#8221; en &#8220;Avenue&#8221;, &#8220;1060 Bruxelles&#8221; en &#8220;1060 Saint-Gilles&#8221;). Elle pourra aussi supprimer des éléments non pertinents pour le géocodage, comme par exemple la partie en italique grisée dans &#8220;Av. Fonsny 20 <span style="color: #999999;"><em>bte 5 (en face de la gare)</em></span>&#8220;. Cette étape revient en fait à faire la correspondance entre une adresse en entrée et le référentiel dans lequel chaque adresse structurée est associée à ses coordonnées géographiques. Cette étape de standardisation fait donc intégralement partie du processus de géocodage et est nécessaire.</p>
<p>L&#8217;opération inverse, qui consiste à demander toutes les adresses existantes dans un périmètre donné d&#8217;un point, s&#8217;appelle le &#8220;géocodage inverse&#8221; (reverse geocoding).</p>
<p>Le géocodage peut être fait avec OpenStreetMap en appelant l&#8217;URL suivante&nbsp;:</p>
<p><a href="https://nominatim.openstreetmap.org/?q=Av.+fonsny+20,+1060+Bruxelles&amp;format=jsonv2">https://nominatim.openstreetmap.org/?q=Av.+fonsny+20,+1060+Bruxelles&amp;format=jsonv2</a></p>
<p>Le &#8220;reverse&#8221; correspondant peut se faire avec l&#8217;adresse suivante&nbsp;:&nbsp;</p>
<p><a href="https://nominatim.openstreetmap.org/reverse?lat=50.83586776&amp;lon=4.3385087&amp;format=jsonv2">https://nominatim.openstreetmap.org/reverse?lat=50.83586776&amp;lon=4.3385087&amp;format=jsonv2</a></p>
<h1>Les outils</h1>
<p>Cette opération de géocodage se fait typiquement via une API, mise à disposition par un serveur. De nombreuses solutions existent, le choix va fortement dépendre des réponses aux différentes questions que nous allons mentionner dans la suite de ce texte. Nous nous focaliserons sur le géocodage d&#8217;adresses en Belgique, mais à part quelques éléments spécifiques, les questions seront génériques.</p>
<p>Nous avons examiné de façon approfondie une série d&#8217;outils, commerciaux ou non&nbsp;:&nbsp;</p>
<ul>
<li>Commerciaux (Cloud)&nbsp;:
<ul>
<li><a href="https://developers.google.com/maps/documentation/geocoding/overview">Google Maps</a></li>
<li><a href="https://learn.microsoft.com/en-us/bingmaps/rest-services/">Bing Maps</a></li>
<li><a href="https://developer.here.com/documentation/geocoding-search-api/dev_guide/index.html">Here</a></li>
<li><a href="https://developer.tomtom.com/geocoding-api/documentation/geocode">TomTom</a></li>
<li><a href="https://docs.mapbox.com/api/search/geocoding/">Mapbox</a></li>
</ul>
</li>
<li>Non-commerciaux (on premise)&nbsp;:
<ul>
<li><a href="https://nominatim.org/release-docs/latest/api/Overview/">Nominatim</a> (OpenStreetMap), version &#8220;<a href="https://github.com/mediagis/nominatim-docker/tree/master/4.2">dockerisée locale</a>&#8220;</li>
<li><a href="https://github.com/SmalsResearch/NominatimWrapper/">NominatimWrapper</a>, une solution que nous avons développée pour combler certaines lacunes de Nominatim</li>
<li><a href="https://pelias.io/">Pelias</a>, en y chargeant les données de <a href="https://opendata.bosa.be/index.fr.html">BestAddress</a> (source authentique des adresses en Belgique) et d&#8217;OpenStreetMap</li>
</ul>
</li>
</ul>
<p>Nous avons par ailleurs examiné en &#8220;avant-première&#8221; <a href="https://bosa.belgium.be/fr/services/best-address-services">l&#8217;API de BestAddress</a>, qui n&#8217;est pas disponible publiquement. Notons que plusieurs grands acteurs de solutions GIS peuvent aussi offrir des solutions dédiées, (semi-)on-premise ou non. Nous n&#8217;avons pas exploré ces pistes, qui nécessitent des démarches commerciales complexes avec ces entreprises.</p>
<h1>Cloud vs on-premise</h1>
<p>Une première question à se poser est de savoir si l&#8217;on peut utiliser une API commerciale qu&#8217;il &#8220;suffit&#8221; d&#8217;appeler, ou s&#8217;il est nécessaire d&#8217;avoir un géocodeur &#8220;on-premise&#8221;, géré et installé au sein de l&#8217;infrastructure de l&#8217;entreprise ou de l&#8217;administration.</p>
<p>L&#8217;avantage d&#8217;une solution Cloud (Google Maps, Here, Bing&#8230;) commerciale est sa facilité de gestion et l&#8217;absence de coût d&#8217;infrastructure. Ces solutions sont en général également de bonne qualité et offrent une couverture mondiale. Il faudra cependant tenir compte d&#8217;un coût par appel, qui peut devenir problématique pour des volumes importants. Souvent, un quota d&#8217;appels gratuits est cependant proposé (40.000/mois pour Google Maps, 30.000/mois pour Here, &#8230;.)</p>
<p>Les solutions on-premise permettent de répondre à des besoins de confidentialité ou de respect du GDPR plus élevé. Elles seront en général aussi plus rapides si le volume de données est important. Il faudra cependant tenir compte de coûts d&#8217;infrastructure et de gestion plus important, et une couverture mondiale sera difficile à envisager, à moins de disposer de plusieurs téraoctets de données à consacrer au produit.</p>
<table style="width: 100%; height: 544px;" width="990">
<tbody>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">&nbsp;</td>
<td style="height: 68px;" width="277">
<p><b>Cloud solutions</b></p>
</td>
<td style="height: 68px;" width="330">
<p><b>On-premise</b><b> solutions</b></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Complexité à mettre en place</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Coût infra</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>GDPR, Confidentialité</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Coût pour gros volumes (temps, €)</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Accès internet</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Qualité</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff6600;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f610.png" alt="😐" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="383">
<p>Couverture mondiale</p>
</td>
<td style="text-align: center; height: 68px;" width="277">
<p><span style="color: #000000; background-color: #339966;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
<td style="text-align: center; height: 68px;" width="330">
<p><span style="color: #000000; background-color: #ff0000;"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></span></p>
</td>
</tr>
</tbody>
</table>
<h1>Niveau de précision</h1>
<p>L&#8217;exigence de la précision, à savoir la nécessité que l&#8217;adresse soit localisée exactement au bon endroit, ne sera pas la même s&#8217;il s&#8217;agit de faire des statistiques globales, de savoir dans quel quartier se trouve une adresse, quel livreur ou contrôleur devrait l&#8217;intégrer dans sa tournée, que s&#8217;il s&#8217;agit d&#8217;envoyer une équipe de secours. Dans les premières situations, on acceptera que par exemple qu&#8217;une certaine proportion d&#8217;adresses soit localisée au niveau de la rue et pas du bâtiment précis.</p>
<h1>Structuration des adresses</h1>
<p>La plupart des géocodeurs acceptent de recevoir en entrée soit une adresse structurée (rue=&#8217;Av. Fonsny&#8217;, numéro=&#8217;20&#8217;&#8230;) soit une adresse non structurée&nbsp; (adresse=&#8217;Av. Fonsny 20, 1060 St-Gilles&#8217;). Mais certains exigent que l&#8217;adresse soit structurée, ce qui peut poser un problème si on n&#8217;en dispose pas sous cette forme, ou qu&#8217;elles sont souvent mal découpées (rue=&#8217;Av. Fonsny 20&#8242;, numéro=&#8221;).</p>
<h1>Source authentique</h1>
<p>Une même adresse peut connaitre des orthographes différentes en fonction de la source. Par exemple, à Bruxelles, deux rues sont nommées suivant la commune de &#8220;Tervuren&#8221; (une chaussée sur Auderghem, une avenue sur Etterbeek, Auderghem et Woluwé-Saint-Pierre)&nbsp;:</p>
<ul>
<li>Selon Bing, il y a la chaussée de Ter<strong>vur</strong>en et l&#8217;avenue de Ter<strong>vuer</strong>en&nbsp;;</li>
<li>Selon Google maps ou OpenStreetMap, il s&#8217;agit de la chaussée de Ter<strong>vuer</strong>en et l&#8217;avenue de Ter<strong>vuer</strong>en&nbsp;;</li>
<li>Selon BestAddress, on a l&#8217;avenue de Ter<strong>vuer</strong>en à Etterbeek et Woluwé-Saint-Pierre, mais la chaussée et l&#8217;avenue de Ter<strong>vur</strong>en à Auderghem&nbsp;;</li>
<li>Selon le registre national, il s&#8217;agit tout le temps de Ter<strong>vuer</strong>en.</li>
</ul>
<p>En fonction du contexte, il peut être important d&#8217;obtenir toujours la formulation correspondant à une source en particulier. Par exemple parce qu&#8217;on a nécessairement besoin d&#8217;avoir une version connue par une source authentique. Ou, pour les coordonnées géographiques, parce qu&#8217;on va ensuite l&#8217;afficher sur un fond de carte, et qu&#8217;on désire donc être le plus en accord possible. En effet, placer sur une carte de Google Maps une adresse qui a été géocodée avec OpenStreetMap risque dans certains cas de provoquer un léger décalage.</p>
<p>S&#8217;il est nécessaire d&#8217;obtenir des données selon BestAddress (en Belgique), il y a à l&#8217;heure actuelle principalement trois possibilités&nbsp;:&nbsp;</p>
<ul>
<li>L&#8217;API&nbsp; &#8220;officielle&#8221; offerte par Bosa (pour l&#8217;instant uniquement en phase de test)</li>
<li>En installation locale, Pelias en chargeant le dataset de BestAddress</li>
<li><a href="https://phacochr.github.io/phacochr/">Phacochr</a> (cf plus bas), uniquement en mode batch, sans API.</li>
</ul>
<p>Notons aussi qu&#8217;il existe une <a href="https://loc.geopunt.be/">API fournie par &#8220;geopunt.be&#8221;</a>, spécifiquement pour les adresses belges en Flandre et à Bruxelles (en néerlandais).&nbsp;</p>
<h1>Couverture</h1>
<p>Un des avantages des solutions Cloud est qu&#8217;elle permettent à la fois de géocoder une adresse à Bruxelles, à New-York et à Taipei. Faire la même chose avec une solution locale peut exiger un espace prohibitif. Pour la (toute petite) Belgique, OpenStreetMap (Nominatim) nécessite 30 GB d&#8217;espace disque. Le monde entier nécessiterait plusieurs téraoctets, et une mise en place de plusieurs semaines.</p>
<p>Une installation limitée à un pays peut cependant convenir pour une administration qui ne devrait que gérer des adresses dans son pays. Il existe aussi des possibilités hybrides&nbsp;: il est possible de configurer Nominatim pour offrir un géocodage complet pour une sélection de pays, et se limiter à la localisation et nettoyage au niveau des villes pour le reste du monde.</p>
<h1>Besoin d&#8217;une API</h1>
<p>Nous nous sommes focalisés sur les API, c&#8217;est-à-dire les interfaces &#8220;techniques&#8221; offrant la fonctionnalité de géocodage d&#8217;adresses une par une. Ceci permet d&#8217;intégrer cette fonctionnalité dans une application ou dans un processus automatisé de gestion de données. Mais dans certains cas, on possède un fichier d&#8217;adresses, que l&#8217;on souhaite manuellement géocoder avant une analyse spécifique. Des outils permettent cette tâche, par exemple <a href="https://www.geoapify.com/tools/geocoding-online">GeoApify</a>, ou, pour des adresses belges avec en résultat les données de BestAddress, Phacochr (<a href="https://phacochr.github.io/phacochr">dans un script R</a>, ou <a href="https://phacochr.github.io/phacochr/articles/shiny_app.html">avec la version web</a>)</p>
<h1>Performances</h1>
<p>Avoir une solution rencontrant les critères évoqués ci-dessus n&#8217;est pas suffisant. Encore faut-il que les performances soient au rendez-vous. L&#8217;aspect &#8220;vitesse&#8221; doit certainement être pris en considération, mais l&#8217;on s&#8217;intéresse ici surtout à la &#8220;robustesse&#8221;, à savoir la capacité à proposer un résultat (précis) pour le plus grand nombre d&#8217;adresses. Pour une série d&#8217;échantillons d&#8217;adresses belges provenant de diverses sources (officielles ou non), nous avons effectué quelques tests. Dans les graphiques ci-dessous, la partie en bleu représente la proportion d&#8217;adresse que l&#8217;API a été capable de localiser précisément (au niveau du bâtiment). En orange, lorsque la rue a été trouvée, mais pas le numéro précis. En vert, seule la ville a pu être localisée.</p>
<p>Les échantillons de 1000 adresses chacun proviennent des sources suivantes (toutes belges)&nbsp;:&nbsp;</p>
<ul>
<li>kbo&nbsp;: la Banque Carrefour des Entreprises</li>
<li>rep&nbsp;: le Répertoire des Employeurs</li>
<li>rrn&nbsp;: le Registre National</li>
<li>best&nbsp;: BestAddress (Bosa)</li>
<li>resto&nbsp;: le site web resto.be</li>
</ul>


<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-16 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_rrn_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18690" src="/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-1024x544.png" alt="" class="wp-image-18690" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rrn_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_best_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18692" src="/wp-content/uploads/2023/06/matching_rate_best_1000-2-1024x544.png" alt="" class="wp-image-18692" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_best_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_kbo_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18693" src="/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-1024x544.png" alt="" class="wp-image-18693" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_kbo_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_rep_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18694" src="/wp-content/uploads/2023/06/matching_rate_rep_1000-2-1024x544.png" alt="" class="wp-image-18694" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_rep_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="/geocodage-quel-outil-pour-quel-besoin/matching_rate_resto_1000-2/"><img loading="lazy" decoding="async" width="1024" height="544" data-id="18695" src="/wp-content/uploads/2023/06/matching_rate_resto_1000-2-1024x544.png" alt="" class="wp-image-18695" srcset="https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-1024x544.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-300x159.png 300w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-768x408.png 768w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-1536x816.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2023/06/matching_rate_resto_1000-2-2048x1088.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>


<p>Quelques observations peuvent être faites&nbsp;: </p>
<ul>
<li>Here s&#8217;en sort mieux que Google Maps et ses concurrents, en localisant plus d&#8217;adresses précisément ;</li>
<li>Nominatim n&#8217;est pas très robuste&nbsp;: en fonction du jeu de données, mises à part sur les données de BestAddress (best_1000, nettement plus propres et standardisées que les autres jeux de données), entre 10 et 15 % des adresses n&#8217;ont tout simplement pas été trouvées. Et pour une proportion importante des adresses, seule la rue est connue ;</li>
<li>Notre solution basée sur Nominatim (<a href="https://github.com/SmalsResearch/NominatimWrapper/">NominatimWrapper</a>) améliore très nettement la robustesse. Mais on reste avec une proportion importante d&#8217;adresses localisées uniquement au niveau de la rue ;</li>
<li>Pelias se limite, à ce stade, à une grande proportion d&#8217;adresses localisées au niveau de la ville. Mais l&#8217;incorporation des données de BestAddress est assez récente, on peut donc espérer des améliorations prochaines ;</li>
<li>La robustesse de l&#8217;API de BOSA (bestaddress) est proche de celle de Nominatim, mais c&#8217;est à l&#8217;heure actuelle un choix assumé&nbsp;: le but n&#8217;est pas vraiment d&#8217;obtenir une API de géocodage, mais de permettre de localiser une adresse déjà connue, c&#8217;est-à-dire dont les identifiants de commune et rue sont connus, ou à tout le moins correctement orthographiées. Les différents services offerts par l&#8217;API permettent d&#8217;obtenir une liste de rues pour chaque commune, ce qui permet de proposer une interface avec des listes ou de l’auto-complétion, garantissant que les données en entrée soient &#8220;propres&#8221;. Ce n&#8217;est donc pas complètement une API de géocodage, puisque seule la partie &#8220;localisation&#8221; est offerte, et pas la partie &#8220;nettoyage de données&#8221;.</li>
</ul>
<p>Notons que ce n&#8217;est pas parce qu&#8217;un résultat est précis qu&#8217;il est correct. Nous avons déjà abordé cette problématique <a href="/comparer-des-geocodeurs/">dans un article précédent</a>. Un notebook Python est également disponible <a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/Geocoder_Compare.ipynb">proposant une méthodologie de comparaison</a>.</p>
<p>NominatimWrapper est depuis juin 2023 dans le <a href="https://www.ict-reuse.be/fr">Re-Use Catalog</a> de la sécurité sociale en Belgique&nbsp;: <a href="https://www.ict-reuse.be/fr/service/geocodage-avec-nominatim-ameliore">https://www.ict-reuse.be/fr/service/geocodage-avec-nominatim-ameliore</a>.</p>
<h1>Pour conclure</h1>
<p>De multiples solutions sont disponibles pour faire du géocodage. Il faut parfois aller plus loin que de sauter sur la première à laquelle on pense&nbsp;: chaque outil aura ses avantages et inconvénients. Les contraintes techniques et légales nécessitent de se poser une série de questions. Il sera également crucial de tester l&#8217;outil sur des données types que l&#8217;on devra gérer, car le niveau de qualité et la structure des données en entrée peut avoir un impact majeur sur la qualité du résultat. </p>
<hr />
<p><span style="color: #999999;"><em>Ce post est une contribution individuelle de Vandy Berten, spécialisé </em>en<em> data science chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></span></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Autocorrélation spatiale&#160;: qui se rassemble se ressemble&#160;?</title>
		<link>https://www.smalsresearch.be/autocorrelation-spatiale-qui-se-rassemble-se-ressemble/</link>
		
		<dc:creator><![CDATA[Vandy Berten]]></dc:creator>
		<pubDate>Tue, 12 Apr 2022 06:28:17 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">/?p=17059</guid>

					<description><![CDATA[Lorsque l&#8217;on s&#8217;intéresse à la situation socio-économique d&#8217;un pays, on est souvent amené à comparer des indicateurs pour savoir s&#8217;ils sont corrélés&#160;: existe-t-il une corrélation entre le niveau d&#8217;éducation et le revenu&#160;? Entre les taux d&#8217;emploi et de criminalité&#160;? Entre le niveau de pollution et la morbidité&#160;? Il peut également être révélateur d&#8217;évaluer à quel [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Lorsque l&#8217;on s&#8217;intéresse à la situation socio-économique d&#8217;un pays, on est souvent amené à comparer des indicateurs pour savoir s&#8217;ils sont <em>corrélés&nbsp;</em>: existe-t-il une corrélation entre le niveau d&#8217;éducation et le revenu&nbsp;? Entre les taux d&#8217;emploi et de criminalité&nbsp;? Entre le niveau de pollution et la morbidité&nbsp;? Il peut également être révélateur d&#8217;évaluer à quel point un indicateur d&#8217;un territoire (une commune, un quartier&#8230;) est corrélé à la valeur de ce même indicateur dans les territoires voisins. C&#8217;est ce qu&#8217;on appelle l&#8217;<em>autocorrélation spatiale&nbsp;</em>: sachant qu&#8217;une commune a un salaire moyen élevé, à quel point ses communes voisines ont-elles une chance d&#8217;avoir également un salaire élevé&nbsp;? En d&#8217;autres mots, le salaire moyen a-t-il une composante géographique&nbsp;? Dans cet article, accompagné d&#8217;<a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/Spatial_Autocorrelation.ipynb" target="_blank" rel="noreferrer noopener">un notebook Python</a>, nous allons montrer plusieurs méthodes permettant d&#8217;évaluer cette dépendance spatiale.</p>



<p>Pour ce faire, nous allons récolter une série d&#8217;indicateurs à propos des 581 communes de Belgique, disponibles en open-source, sur <a rel="noreferrer noopener" href="https://statbel.fgov.be/fr" target="_blank">https://statbel.fgov.be</a>, <a rel="noreferrer noopener" href="https://data.belgium.be/fr" target="_blank">https://data.belgium.be</a> ou encore <a rel="noreferrer noopener" href="https://www.census2011.be/index_fr.html" target="_blank">https://www.census2011.be</a>.  </p>



<h1 class="wp-block-heading">Corrélation &#8220;classique&#8221;</h1>



<p>Pour comprendre l&#8217;autocorrélation spatiale, il est nécessaire de d&#8217;abord bien saisir celui de <a href="https://fr.wikipedia.org/wiki/Corr%C3%A9lation_(statistiques)" target="_blank" rel="noopener">corrélation statistique</a> au sens &#8220;classique&#8221; du terme. Dans sa version de base (corrélation linéaire entre deux variables quantitatives), on peut évaluer visuellement la corrélation entre deux variables en les représentant sous forme de nuage de points (scatterplot).&nbsp;</p>



<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="820" height="566" src="/wp-content/uploads/2022/03/correlation.png" alt="" class="wp-image-17062 size-full" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/correlation.png 820w, https://www.smalsresearch.be/wp-content/uploads/2022/03/correlation-300x207.png 300w, https://www.smalsresearch.be/wp-content/uploads/2022/03/correlation-768x530.png 768w" sizes="auto, (max-width: 820px) 100vw, 820px" /></figure><div class="wp-block-media-text__content">
<p>Prenons par exemple, pour chaque commune belge, d&#8217;une part le <a href="https://data.belgium.be/en/node/177446">revenu brut moyen annuel</a> (mean_income), et d&#8217;autre part, la <a href="https://visuals.statbel.fgov.be/visuals/data/census.csv">proportion de la population avec un diplôme de l&#8217;enseignement supérieur</a> (with_degree). Dans le graphique suivant, chaque point représente une commune, sa position sur l&#8217;axe vertical est donné par la première variable, celle sur l&#8217;axe horizontal par la seconde.&nbsp;</p>
</div></div>



<p>On y observe une corrélation assez claire&nbsp;: plus un des indicateurs est élevé, plus l&#8217;autre a des chances de l&#8217;être également. Ceci est formalisé par le <a href="https://fr.wikipedia.org/wiki/Corr%C3%A9lation_(statistiques)#Coefficient_de_corr%C3%A9lation_lin%C3%A9aire_de_Bravais-Pearson">coefficient de Pearson</a>, qui vaut ici 0.79, indicateur entre -1 et 1, valant 1 si la connaissance d&#8217;une valeur permet de déterminer exactement la valeur de l&#8217;autre, avec une relation croissante (-1 si la relation est décroissante), 0 s&#8217;il n&#8217;existe aucune corrélation (linéaire) entre les deux variables. Notons qu&#8217;il ne faut pas commettre le<a href="https://fr.wikipedia.org/wiki/Cum_hoc_ergo_propter_hoc" target="_blank" rel="noopener"> sophisme Cum hoc ergo propter hoc&nbsp;:</a> la corrélation entre deux variables n&#8217;indique pas nécessairement une relation de causalité entre les deux.</p>



<h1 class="wp-block-heading">Avant tout&nbsp;: visualiser</h1>



<p>En analyse de données, une des premières choses à faire avant de se lancer dans une analyse statistique complexe, est de visualiser les données. On se concentre maintenant sur une seule variable&nbsp;: dans la suite de cet article, nous analyserons le<a href="https://data.belgium.be/en/node/177446"> revenu moyen par commune</a> (d&#8217;autres indicateurs sont disponibles dans le <a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/Spatial_Autocorrelation.ipynb" target="_blank" rel="noopener">notebook évoqué dans l&#8217;introduction</a>).</p>
<p>&nbsp;</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-17 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2022/03/map_random-1.png"><img loading="lazy" decoding="async" width="680" height="574" data-id="17068" src="/wp-content/uploads/2022/03/map_random-1.png" alt="" class="wp-image-17068" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/map_random-1.png 680w, https://www.smalsresearch.be/wp-content/uploads/2022/03/map_random-1-300x253.png 300w" sizes="auto, (max-width: 680px) 100vw, 680px" /></a><figcaption>Valeur aléatoire</figcaption></figure>



<figure class="wp-block-image size-full"><a href="/wp-content/uploads/2022/03/map_mean_income-1.png"><img loading="lazy" decoding="async" width="680" height="574" data-id="17069" src="/wp-content/uploads/2022/03/map_mean_income-1.png" alt="" class="wp-image-17069" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/map_mean_income-1.png 680w, https://www.smalsresearch.be/wp-content/uploads/2022/03/map_mean_income-1-300x253.png 300w" sizes="auto, (max-width: 680px) 100vw, 680px" /></a><figcaption>Revenu moyen</figcaption></figure>
</figure>



<p>Dans les deux cartes ci-dessus, celle de gauche représente une valeur aléatoire assignée à chaque commune, alors que celle de droite montre le revenu moyen. Il saute clairement aux yeux que cette dernière variable a une composante géographique forte&nbsp;: le nord de Bruxelles est caractérisé par des faibles revenus (couleur claire), alors que le sud et le pourtour Bruxellois, comme les communes proches du Luxembourg, offrent des salaires élevés. Mais cette approche visuelle, bien que puissante, ne permet pas, par exemple, de savoir si la composante géographique du revenu est plus forte que celle de taux de diplômés. Ni d&#8217;identifier facilement s&#8217;il existe des zones où la dépendance spatiale est plus fortes que d&#8217;autres. Les approches suivantes nous permettront de le faire.</p>



<h1 class="wp-block-heading">Décalage spatial (spatial lag)</h1>



<p>Le &#8220;spatial lag&#8221; (ou décalage spatial) d&#8217;un secteur (dans notre cas, une commune) se calcule en effectuant la moyenne de la valeur considérée sur tous les secteurs voisins. <a href="/wp-content/uploads/2022/03/spatial_lag.png"><img loading="lazy" decoding="async" class="alignleft size-full wp-image-17071" src="/wp-content/uploads/2022/03/spatial_lag.png" alt="" width="164" height="149"></a>Dans la figure ci-contre, le &#8220;spatial lag&#8221; du secteur bleu sera de 5 (la moyenne de 3, 4, 6 et 7, sans tenir compte de la valeur du secteur lui-même). Notons que ceci ne peut pas se calculer simplement sur base d&#8217;une liste contenant l&#8217;indicateur pour chaque secteur&nbsp;: il faut également connaitre la géographie, pour savoir quels sont les voisins de chaque secteur. Les détails de ce calcul sont donnés dans le notebook joint. Une fois le spatial lag calculé pour chaque commune, on peut réaliser un <em>nuage de point de Moran</em>, en positionnant chaque commune selon sa valeur sur l&#8217;axe horizontal, et le décalage spatial de cette même valeur sur l&#8217;axe vertical, comme illustré ci-dessous.</p>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot.png"><img loading="lazy" decoding="async" width="1024" height="382" src="/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot-1024x382.png" alt="" class="wp-image-17076" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot-1024x382.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot-300x112.png 300w, https://www.smalsresearch.be/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot-768x287.png 768w, https://www.smalsresearch.be/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot-1536x573.png 1536w, https://www.smalsresearch.be/wp-content/uploads/2022/03/spatial_lag_moran_scatterplot.png 1966w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Le graphique de gauche illustre une valeur aléatoire. On peut y voir que, assez naturellement, aucune corrélation ne peut être établie entre la valeur d&#8217;une commune et la valeur moyenne de son voisinage. Celle de droite concerne le revenu moyen, et une corrélation forte y apparaît, confirmant une importante dépendance spatiale pour cette métrique. La valeur centrale se rapport à la superficie d&#8217;une commune. On y voit qu&#8217;une petite commune a plutôt tendance à être entourée de petites communes (coefficient de Pearson&nbsp;: 0.59), bien qu&#8217;il y ait quelques &#8220;anomalies&#8221;, mais avec une corrélation moins marquée que pour le revenu moyen (coefficient de Pearson&nbsp;: 0.82).&nbsp;</p>
<p>Les lignes en pointillées représentent la moyenne de la valeur (verticale) et du décalage spatial (horizontale). Elle découpe donc le graphique en quatre quadrants&nbsp;: celui en haut à droite reprend les communes avec un haut revenu (plus élevé que la moyenne) entourées de communes avec un haut revenu, bien plus nombreuses que celles en bas à droite, communes avec un haut revenu entourées de communes avec un bas revenu.</p>



<h1 class="wp-block-heading">Autocorrélation globale</h1>



<p>La méthode de &#8220;Join Count&#8221; vise à résumer le degré d&#8217;autocorrélation par une métrique. Celle-ci s&#8217;établit de la façon suivante&nbsp;: on attribue premièrement à chaque secteur une valeur binaire, valant &#8220;Black&#8221; si la valeur est supérieure à la valeur médiane, et &#8220;White&#8221; si elle est inférieure.<a href="/wp-content/uploads/2022/03/join_count.png"><img loading="lazy" decoding="async" class="alignleft wp-image-17077 " src="/wp-content/uploads/2022/03/join_count.png" alt="" width="436" height="326" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/join_count.png 828w, https://www.smalsresearch.be/wp-content/uploads/2022/03/join_count-300x224.png 300w, https://www.smalsresearch.be/wp-content/uploads/2022/03/join_count-768x574.png 768w" sizes="auto, (max-width: 436px) 100vw, 436px" /></a> On va ensuite compter le nombre de &#8220;jonction Black-Black&#8221;, c&#8217;est-à-dire le nombre de situations où une commune &#8220;Black&#8221; touche une autre commune &#8220;Black&#8221;. Dans le cas du revenu moyen, ce comptage vaut 646. Cette valeur est-elle élevée&nbsp;? Pour le savoir, on va exécuter un grand nombre de tirages aléatoires, dans lequel on attribuera aléatoirement les valeurs &#8220;Black&#8221; et &#8220;White&#8221; à l&#8217;ensemble des secteurs, pour ensuite en compter le nombre de jonctions &#8220;Black-Black&#8221; de chacun de ces tirages.&nbsp;&nbsp;</p>



<p>Ces nombreux tirages (souvent de l&#8217;ordre de 1000), permettent d&#8217;obtenir une distribution, présentée ci-contre sous forme de cloche bleue.<a href="/wp-content/uploads/2022/03/join_cuts-1.png"><img loading="lazy" decoding="async" class="wp-image-17079  alignright" src="/wp-content/uploads/2022/03/join_cuts-1-300x258.png" alt="" width="408" height="352" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/join_cuts-1-300x258.png 300w, https://www.smalsresearch.be/wp-content/uploads/2022/03/join_cuts-1-768x662.png 768w, https://www.smalsresearch.be/wp-content/uploads/2022/03/join_cuts-1.png 830w" sizes="auto, (max-width: 408px) 100vw, 408px" /></a> Les lignes horizontales rouges (dont la hauteur n&#8217;a pas d&#8217;importance) représentent les comptages pour les différentes métriques que nous avons considérées&nbsp;: salaire moyen (mean_income) ou médian (median_income), proportion de la population avec un diplôme (with_degree), superficie (area), ou nombre moyen de voitures par ménage (car_per_hh). Plus la métrique s&#8217;éloigne de la gaussienne, plus faible est la probabilité qu&#8217;elle ait été obtenue par un tirage aléatoire, et donc plus forte est sa composante spatiale.</p>



<h1 class="wp-block-heading">Autocorrélation locale</h1>



<p>La métrique globale présentée ci-dessus caractérise l&#8217;ensemble du territoire selon sa dépendance spatiale. Mais elle ne permet pas de mettre en évidence des parties du territoire qui seraient plus spatialement dépendantes que d&#8217;autres. On peut également (nous passons les détails techniques, qui sont donnés dans le notebook associé), avec une généralisation (également due au <a href="https://en.wikipedia.org/wiki/P._A._P._Moran">statisticien Moran</a>)&nbsp; des techniques présentées ci-dessus, associer à chaque secteur (entre autres) deux valeurs&nbsp;:&nbsp;</p>
<ul>
<li>Le &#8220;quadrant&#8221;, déjà présenté ci-dessus, qui indique que le secteur a une valeur haute ou basse, entouré de valeurs hautes ou basses&nbsp;;</li>
<li>Une &#8220;p-value&#8221;, qui indique à quel point la valeur a des chances d&#8217;être issue d&#8217;un tirage aléatoire. Entre d&#8217;autres mots, à quel point ce secteur est corrélé à son voisinage.</li>
</ul>
<p>Ces deux valeurs permettent de construire la carte ci-dessous, où on retrouve&nbsp;:&nbsp;</p>
<ul>
<li>En gris, les zones avec une &#8220;trop grande p-value&#8221;, c&#8217;est-à-dire où la composante spatiale n&#8217;est pas assez significative&nbsp;;</li>
<li>En rouge les &#8220;hot spots&#8221;, soit les communes à haut salaire, entourées de communes à haut salaire ;</li>
<li>En bleu les &#8220;cold pots&#8221;, idem pour les communes à bas salaire&nbsp;;</li>
<li>En rose, les &#8220;diamonds&#8221;, les communes à haut salaire entourées de commune à bas salaire&nbsp;;</li>
<li>En bleu pâle, les &#8220;doughnuts&#8221;, les communes à bas salaire entourées de communes à haut salaire.</li>
</ul>



<figure class="wp-block-image size-large"><a href="/wp-content/uploads/2022/03/hostposts.png"><img loading="lazy" decoding="async" width="1024" height="840" src="/wp-content/uploads/2022/03/hostposts-1024x840.png" alt="" class="wp-image-17083" srcset="https://www.smalsresearch.be/wp-content/uploads/2022/03/hostposts-1024x840.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2022/03/hostposts-300x246.png 300w, https://www.smalsresearch.be/wp-content/uploads/2022/03/hostposts-768x630.png 768w, https://www.smalsresearch.be/wp-content/uploads/2022/03/hostposts.png 1076w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<h1 class="wp-block-heading">Conclusions</h1>



<p>L&#8217;autocorrélation spatiale a de multiples applications. On peut par exemple évaluer la composante géographique du taux de mortalité dû à une maladie spécifique, en la comparant à la même analyse appliquée à la présence d&#8217;un polluant ou d&#8217;un certain type d&#8217;industrie ou d&#8217;infrastructure. Par ailleurs, il est aussi possible d&#8217;étendre l&#8217;analyse non plus à des polygones, mais à des points (commerces, chantiers, voire adresses d&#8217;individus) pour mettre en évidence des anomalies (&#8220;diamonds&#8221; ou &#8220;doughnuts&#8221;) selon une métrique pour laquelle on s&#8217;attend à voir une dépendance spatiale forte.</p>
<p>Il est également possible d&#8217;évaluer la corrélation entre deux variables, en tenant compte de leur composante géographique&nbsp;: ceci se fait classiquement en étudiant la corrélation (classique) entre une variable et le décalage spatial de l&#8217;autre variable (<em>Bivariate Moran&#8217;s I</em>).</p>
<p>Il est possible, comme dans le <a href="https://github.com/SmalsResearch/GISAnalytics/blob/main/Spatial_Autocorrelation.ipynb">notebook joint</a>, de faire cette analyse en Python, avec quelques librairies spécialisées (geopandas, libpysal, esda). Mais certains outils OpenSource, comme <a href="https://geodacenter.github.io/">GeoDa</a>, offrent une interface graphique permettant d&#8217;effectuer un grand nombre d&#8217;algorithmes d&#8217;analytique spatiale, dont l&#8217;autocorrélation spatiale.</p>
<p>Il faut cependant être attentif au fait que, tout comme la corrélation statistique en deux variables n&#8217;implique pas la causalité de l&#8217;une sur l&#8217;autre, la présence d&#8217;une forte autocorrélation spatiale ne permettra pas non plus de conclure automatiquement que la zone géographique impacte directement la variable étudiée A. Il se peut par exemple qu&#8217;une variable intermédiaire B soit, elle, impactée par la géographie, et qu&#8217;il existe une corrélation entre A et B. Établir une (auto)corrélation n&#8217;est jamais que le point de départ ; il est ensuite nécessaire d&#8217;observer les choses de façon plus globale pour établir les liens de cause à effet.</p>
<p> </p>



<hr class="wp-block-separator has-text-color has-background has-cyan-bluish-gray-background-color has-cyan-bluish-gray-color"/>



<p><span style="color: #808080;"><em>Ce post est une contribution individuelle de Vandy Berten, spécialisé </em>en<em> data science&nbsp;chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></span></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
