Chargement des librairies

library(datalibaba)
library(dplyr)
library(glue)
library(sf)
library(yaml)

Chargement des variables

# Lire le fichier de configuration
config <- yaml::read_yaml("../config.yml")

# Accéder à la valeur pour fichier_gpkg
fichier_gpkg <- config$fichier_gpkg
# Récupérer les variables liées à la base de données
database <- config$database
schema_name <- config$schema_name
primary_key <- config$primary_key
role <- config$role

Aérodromes

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dand un dataframe :

# Paramétrer le nom de la couche
table_name <- "aerodrome"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(aerodrome) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = aerodrome, 
                        table = "n_bdt_aerodrome_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_aerodrome_s_r52
    IS 'Équipement, construction ou aménagement relatif à un réseau de transport terrestre, maritime ou aérien. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_aerodrome.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_aerodrome, 
               table = "n_bdt_aerodrome_s_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Équipements de transport

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "equipement_de_transport"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(equipement_de_transport) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = equipement_de_transport, 
                        table = "n_bdt_equipement_de_transport_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_equipement_de_transport_s_r52
    IS 'Équipement, construction ou aménagement relatif à un réseau de transport terrestre, maritime ou aérien. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_equipement_de_transport.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_equipement_de_transport, 
               table = "n_bdt_equipement_de_transport_s_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Autres itinéraires

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "itineraire_autre"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(itineraire_autre) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = itineraire_autre, 
                        table = "n_bdt_itineraire_autre_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_itineraire_autre_s_r52
    IS 'Itinéraire divers balisé et entretenu sur le terrain, non labellisé par la FFRandonnée ni par le Club
Vosgien. Parfois itinéraire référencé dans le PDIPR (Plan Départemental des Itinéraires Pédestres de Randonnée). (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_itineraire_autre.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_itineraire_autre, 
               table = "n_bdt_itineraire_autre_s_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Non communication

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "non_communication"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(non_communication) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = non_communication, 
                        table = "n_bdt_non_communication_p_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_non_communication_p_r52
    IS 'Noeud du réseau routier indiquant l''impossibilité d''accéder à un Tronçon de route ou à un enchaînement de plusieurs tronçons particuliers à partir d''un tronçon de départ donné. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_non_communication.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_non_communication, 
               table = "n_bdt_non_communication_p_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Pistes d’aérodrome

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "piste_d_aerodrome"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(piste_d_aerodrome) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = piste_d_aerodrome, 
                        table = "n_bdt_piste_d_aerodrome_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_piste_d_aerodrome_s_r52
    IS 'Aire située sur un aérodrome, aménagée afin de servir au roulement des aéronefs, au décollage et à l’atterrissage. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_piste_d_aerodrome.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_piste_d_aerodrome, 
               table = "n_bdt_piste_d_aerodrome_s_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Points de repère

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "point_de_repere"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(point_de_repere) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = point_de_repere, 
                        table = "n_bdt_point_de_repere_p_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_point_de_repere_p_r52
    IS 'Point créé par le gestionnaire du réseau routier le long d''un Tronçon de route et utilisé pour assurer le référencement linéaire d''objets ou d’événements le long de cette route. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_point_de_repere.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_point_de_repere, 
               table = "n_bdt_point_de_repere_p_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Points du réseau

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "point_du_reseau"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(point_du_reseau) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = point_du_reseau, 
                        table = "n_bdt_point_du_reseau_p_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")
# Paramétrage du nom du schéma
schema_name <- "bdtopo_2025_09"

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_point_du_reseau_p_r52
    IS 'Point particulier d''un réseau de transport pouvant constituer, un obstacle permanent ou temporaire à la circulation. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_point_du_reseau.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_point_du_reseau, 
               table = "n_bdt_point_du_reseau_p_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Routes numérotées ou nommées

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "route_numerotee_ou_nommee"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(route_numerotee_ou_nommee) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = route_numerotee_ou_nommee, 
                        table = "n_bdt_route_numerotee_ou_nommee_l_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_route_numerotee_ou_nommee_l_r52
    IS 'Voie de communication destinée aux automobiles, aux piétons, aux cycles ou aux animaux et possédant un numéro ou un nom particulier. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_route_numerotee_ou_nommee.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_route_numerotee_ou_nommee, 
               table = "n_bdt_route_numerotee_ou_nommee_l_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Sections de points de repère

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "section_de_points_de_repere"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(section_de_points_de_repere) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = section_de_points_de_repere, 
                        table = "n_bdt_section_de_points_de_repere_l_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_section_de_points_de_repere_l_r52
    IS 'Section des points de repère. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_section_de_points_de_repere.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_section_de_points_de_repere, 
               table = "n_bdt_section_de_points_de_repere_l_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Tronçons de route

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "troncon_de_route"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(troncon_de_route) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = troncon_de_route, 
                        table = "n_bdt_troncon_de_route_l_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_troncon_de_route_l_r52
    IS 'Portion de voie de communication destinée aux automobiles, aux piétons, aux cycles ou aux animaux, homogène pour l''ensemble des attributs et des relations qui la concernent. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_troncon_de_route.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_troncon_de_route, 
               table = "n_bdt_troncon_de_route_l_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Tronçons de voie ferrée

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "troncon_de_voie_ferree"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(troncon_de_voie_ferree) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = troncon_de_voie_ferree, 
                        table = "n_bdt_troncon_de_voie_ferree_l_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_troncon_de_voie_ferree_l_r52
    IS 'Portion de voie ferrée homogène pour l''ensemble des attributs qui la concernent. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_troncon_de_voie_ferree.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_troncon_de_voie_ferree, 
               table = "n_bdt_troncon_de_voie_ferree_l_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Voies ferrées nommées

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "voie_ferree_nommee"
# Importer la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(voie_ferree_nommee) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = voie_ferree_nommee, 
                        table = "n_bdt_voie_ferree_nommee_l_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_voie_ferree_nommee_l_r52
    IS 'Itinéraire ferré décrivant une voie ferrée nommée, touristique ou non, un vélo-rail. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_voie_ferree_nommee.R")

# Ajouter les commentaires sur les champs
post_dico_attr(dico = dico_voie_ferree_nommee, 
               table = "n_bdt_voie_ferree_nommee_l_r52", 
               schema = schema_name, 
               db = database,
               user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)