Fin de la partie filtrage des données avec osmium.

This commit is contained in:
Guyot 2021-05-30 20:00:46 +02:00
parent 0f13807426
commit a6876961ea
2 changed files with 24 additions and 1 deletions

Binary file not shown.

View File

@ -1140,7 +1140,7 @@ Outre le fait qu'osmium soit un outil en ligne de commande, il permet une gestio
\subsection{Filtrage des données}
Une fois les données extraites, pour pouvoir en faire ce qu'on veut, il faut qu'on puisse les sélectionner. Or, il est parfois malaisé de le faire pour des centaines d'éléments. Par exemple. sur la figure \ref{figure:exportparcs}, page \pageref{figure:exportparcs}, se trouve, comme déjà mentionné, deux types de points. Des arbres et des réverbères. Essentiellement, dans le parc Gallet (au Sud, en bas) se trouvent des arbres et dans le parc des Crêtets (au Nord, en haut) des réverbères. On voit sur l'encadré en haut à gauche, qu'OSM ne présente pas les réverbères. Ainsi, pour permettre une représentation différentes des deux éléments, il serait intéressant de pouvoir sélectionner uniquement les arbres.
\subsubsection{Qgis}
\subsubsection{QGIS}
Évidemment, la base de donnée des éléments ayant été récupérée par QGIS, il est possible de l'utiliser pour le filtrage.
Un premier type de filtrage est possible en raison de la structure en couche récupérée des données extraites. Toujours sur la figure \ref{figure:exportparcs}, page \pageref{figure:exportparcs}, on voit en bas à droite l'ensemble des couches issues d'OSM. Celles-ci sont sélectionnables et on peut ainsi visualiser uniquement les éléments qui les constituent.
@ -1168,6 +1168,29 @@ En remplissant alors la catégorie \emph{highway} par l'attribut \emph{street\_l
\subsubsection{Osmium}
Une autre manière de procéder est d'opérer le filtrage avant l'import dans QGIS, cela en ligne de commande avec Osmium.
\fbox{
\begin{minipage}{0.9\textwidth}
Relevons ici de manière générale non seulement l'importance de disposer de multiples manières de réaliser des opérations identiques, mais aussi de pouvoir les réaliser dans un cadre conceptuel différent.
Savoir réaliser une sélection d'objets à l'aide de QGIS pourrait sembler suffisant. Cela serait passer un peu vite sur l'histoire qui met en lumière le fait qu'aucun logiciel n'est vraiment pérenne et que si certains peuvent être très efficaces à un moment donné, ils peuvent ne plus l'être à un autre.
De plus, si il peut sembler naturel d'utiliser une interface graphique pour réaliser des opération sur des éléments cartographiques, c'est loin d'être le cas pour la manipulation des bases de données. Dans ce dernier contexte, la localisation de bases distantes implique bien souvent une utilisation plus aisée en ligne de commande.
Finalement, l'utilisation de la ligne de commande est bien moins énergivore et souvent bien plus complète que celle des interfaces graphiques comme nous avons pu le voir pour l'extraction de données dans l'interface d'OSM et via Osmium sur des fichiers comme ceux de Geofabrik.
\end{minipage}
}
\bigskip
Pour procéder au filtrage, il faut connaître la syntaxe d'Osmium pour cela. Voyons donc comment extraire du fichier \emph{parcs.pbf} l'ensemble des lampadaires. Le listing \ref{listing:filtrelampadaires} présente la commande.
\begin{lstlisting}[language=bash,caption={Filtrage des lampadaires avec Osmium},label={listing:filtrelampadaires},numbers=right,numberstyle=\tiny,numbersep=6pt]
osmium tags-filter parcs.pbf n/highway=street_lamp --overright -o parc_lampadaires.pbf
\end{lstlisting}
La méthode \emph{tags-filter} d'Osmium est donc celle utilisée sur le fichier précédemment extrait de la base suisse via la commande du listing \ref{listing:osmiumextract}. Le motif de sélection est \textbf{n/highway=street\_lamp}. On y voit évidemment la clé \emph{highway} et sa valeur \emph{street\_lamp}. Mais, ceux-ci sont précédés de \textbf{n/}. De quoi s'agit-il ? Simplement, Osmium permet le filtrage des quatre éléments cartographiques que sont les noeuds (nodes~: n), les chemins (ways~: w), les aires (areas~: a) et les relations (relations~: r). Par défaut, c'est-à-dire si on omet le \emph{n/} par exemple, l'ensemble des éléments est utilisé pour la recherche. Mais si l'un ou l'autre, ou plusieurs simultanément, comme \emph{nw/} par exemple, de ceux-ci sont préciser, la recherche ne se fera que sur eux.
Ainsi la commande du listing \ref{listing:filtrelampadaires} filtre les lampadaires uniquement. Mais attention, le mot \emph{filtre} est quelque peu galvaudé, puisqu'il s'agit bel et bien d'une extraction, mais qui peut porter sur de multiples types d'éléments. En effet, avec un fichier de sortie comme \emph{parc\_lampadaires.pbf} par exemple, à l'import dans QGIS, on voit apparaître les quatre couches d'éléments. Mais celles-ci sont toutes vides, à l'exception de celle des points qui sont de lampadaires. Le mot \emph{filtrer} qui laisse supposer qu'on ne présente que certains élément visuellement, comme c'est le cas dans QGIS, puisque le fichier pbf n'y est pas touché, seule la présentation filtre réellement les lampadaires, est donc quelque peu mal choisi, puisque seuls les lampadaires restent présents dans la base pbf filtrée par Osmium. Cela dit, pour de gros fichiers, c'est évidemment un avantage. Tout dépend de ce que l'on veut réaliser.
\subsection{Ajouts de données}
...