Différentes phases de geocoding et de mesures de distance sont réalisées dans le package evavelo

Geocoding

Le géocodage est réalisé lors de l’appel à la fonction geocode_evavelo() qui est elle-même appelée par process_evavelo()

Ville françaises

Les champs suivants sont géocodés:

  • onglet table_communes
    • nom_commune (associé à cog)
  • onglet enquête
    • ville_res (associé à cp_res et pays_res)
    • ville_heb
    • iti_depart_itineraire
    • iti_arrivee_itineraire
    • nom_site_enq

Le gécodage de ces communes est d’abord réalisé localement en cherchant une correpondance exacte avec la Base officielle des codes postaux réalisé par La Poste.

Les villes qui n’ont pas été détectées lors de cette recherche sont ensuite recherchées en utilisant le package banR qui fait lui même appel à la Base Adresse Nationale (BAN).

Cette deuxième recherche permet de faire une recherche “approximative” et ainsi interpréter des communes mal nommées ou proposer des corrections.

Villes Etrangères

La recherche de ville étrangère est réalisée uniquement sur le champ ville_res quand pays_res est différent de “France”.

Un premier géocodage est réalisé localement en utilisant la Base de données world.cities du package {maps}. La description de cette base de données est la suivante:

This database is primarily of world cities of population greater than about 40,000. Also included are capital cities of any population size, and many smaller towns.

Les villes qui n’ont pu être géocodées sont ensuite recherchées en utilisant le package tidygeocoder qui fait appel au service Nomatim de Open Street Map

Ce service étant gratuit, les requêtes sont bridées à 1 demande par seconde. Le géocodage peut donc prendre plusieurs minutes en fonction du nombre de villes étrangères à géocoder.

Mesures de distance

Détection de la ville d’itinéraire la plus proche

Les champs iti_dep_iti_valide et iti_arr_iti_valide sont renseignés en indiquant la commune appartenant à table_commune étant la plus proche des champs respectifs iti_depart_itineraire et iti_arrivee_itineraire

Ces champs ne sont pas renseignés si la commune la plus proche est située à une distance à vol d’oiseau de plus de 30km.

La détection de la commune la plus proche ainsi que la limite des 30km sont calculées en utilisant la méthode mapbbox cheap ruler qui permet de faire des calculs de distance extrêmement rapidement avec une précision suffisamment élevée pour ce type de distances.

Distance [hébergement - lieu d’enquête] et [domicile - lieu d’enquête]

La distance hébergement - lieu d’enquête (distance_heb_enq) est calculée en utilisant la méthode d’Haversine entre les points ville_res et nom_site_enq.

Nous déterminons ensuite une distance réelle (distance_heb_enq_reelle) en utilisant la formule du cabinet Indiggo:

[distance_heb_enq_reelle] = [distance_heb_enq]*(1,1 + 0,3*EXP(-[distance_heb_enq] / 20))

Distance [domicile - lieu d’enquête]

De la même manière que pour la distance, hébergement-lieu d’enquête, la méthode Haversine est utilisée pour calculer distance_domicile_enq et la méthode Indiggo pour calculer distance_dom_enq_reelle.