From 4f91c3104724075bb2b82e1fc72c112e6a589b1d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 04:11:13 +0000 Subject: [PATCH 01/36] build(deps): update mkdocs-rss-plugin requirement Updates the requirements on [mkdocs-rss-plugin](https://github.com/Guts/mkdocs-rss-plugin) to permit the latest version. - [Release notes](https://github.com/Guts/mkdocs-rss-plugin/releases) - [Changelog](https://github.com/Guts/mkdocs-rss-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/Guts/mkdocs-rss-plugin/compare/1.14.0...1.16.0) --- updated-dependencies: - dependency-name: mkdocs-rss-plugin dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2ddfb4b213..7917fc3077 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,5 +18,5 @@ mkdocs-glightbox>=0.3,<0.5 mkdocs-macros-plugin>=0.5,<1.3 mkdocs-minify-plugin<0.9 mkdocs-redirects<1.3 -mkdocs-rss-plugin>=1.14,<1.16 +mkdocs-rss-plugin>=1.14,<1.17 termynal>=0.10,<1 From aa6df3b511c3c1b9acb5530b443fcbc2ede70747 Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Fri, 1 Nov 2024 09:35:21 +0100 Subject: [PATCH 02/36] fix(borken-image): replace broken remote image by CDN reuploaded version --- content/rdp/2012/rdp_2012-02-03.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/rdp/2012/rdp_2012-02-03.md b/content/rdp/2012/rdp_2012-02-03.md index dd0eb16034..ba73d24b02 100644 --- a/content/rdp/2012/rdp_2012-02-03.md +++ b/content/rdp/2012/rdp_2012-02-03.md @@ -74,7 +74,7 @@ Souvent apôtre de l'HTML 5, il faut reconnaître que cet outil en flash parait [Safety Maps](http://safety-maps.org/) est un site réaliśe par [Do projects](http://doprojects.org/) et qui permet de réaliser une carte indicant un lieu de rencontre en cas d'un évenement majeur (tremblement de terre, incendie ou autres) et à distribuer à ses proches. La carte, accompagnée d'un petit texte, est ensuite imprimable et à garder avec soi. Les données cartographiques sont celles d'OpenStreetMap. -![Safety Maps - Introduction](http://www.safety-maps.org/wp-content/uploads/2018/11/introduction-animation.gif "Safety Maps - Animation processus"){: .img-center loading=lazy } +![Safety Maps - Introduction](https://cdn.geotribu.fr/img/articles-blog-rdp/divers/safety-maps_introduction-animation.gif){: .img-center loading=lazy } ### OpenLayers en 3D From 03d8ee8f6202ad5a55ae61a39038a9381f20dbd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 08:54:27 +0000 Subject: [PATCH 03/36] build(deps): update mkdocs-git-revision-date-localized-plugin requirement Updates the requirements on [mkdocs-git-revision-date-localized-plugin](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin) to permit the latest version. - [Release notes](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases) - [Commits](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.0.0...v1.3.0) --- updated-dependencies: - dependency-name: mkdocs-git-revision-date-localized-plugin dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7917fc3077..efbad5fc56 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ mkdocs-awesome-pages-plugin>=2.6,<2.10 mkdocs-exclude>=1.0,<1.1 mkdocs-git-authors-plugin<0.10 mkdocs-git-committers-plugin-2>=2.2.3,<2.5 -mkdocs-git-revision-date-localized-plugin>=1,<1.3 +mkdocs-git-revision-date-localized-plugin>=1,<1.4 mkdocs-glightbox>=0.3,<0.5 mkdocs-macros-plugin>=0.5,<1.3 mkdocs-minify-plugin<0.9 From 40be6746d6075c89e4e267b4aeffcbbda8acd52f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 08:59:47 +0000 Subject: [PATCH 04/36] build(deps): update mkdocs-macros-plugin requirement Updates the requirements on [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) to permit the latest version. - [Release notes](https://github.com/fralau/mkdocs_macros_plugin/releases) - [Changelog](https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/fralau/mkdocs_macros_plugin/compare/v0.5.0...v1.3.7) --- updated-dependencies: - dependency-name: mkdocs-macros-plugin dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index efbad5fc56..a5312fc4a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,7 +15,7 @@ mkdocs-git-authors-plugin<0.10 mkdocs-git-committers-plugin-2>=2.2.3,<2.5 mkdocs-git-revision-date-localized-plugin>=1,<1.4 mkdocs-glightbox>=0.3,<0.5 -mkdocs-macros-plugin>=0.5,<1.3 +mkdocs-macros-plugin>=0.5,<1.4 mkdocs-minify-plugin<0.9 mkdocs-redirects<1.3 mkdocs-rss-plugin>=1.14,<1.17 From ff3d8a018511be2447d4720cadc635b1720024e4 Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Fri, 1 Nov 2024 10:18:31 +0100 Subject: [PATCH 05/36] =?UTF-8?q?chore(deps):=20MAJ=20la=20version=20du=20?= =?UTF-8?q?th=C3=A8me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements-insiders.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-insiders.txt b/requirements-insiders.txt index 717fa8368f..9adff2b347 100644 --- a/requirements-insiders.txt +++ b/requirements-insiders.txt @@ -1,7 +1,7 @@ # Insiders # -------- -git+https://${GH_TOKEN_MATERIAL_INSIDERS}@github.com/squidfunk/mkdocs-material-insiders.git@9.5.39-insiders-4.53.14#egg=mkdocs-material +git+https://${GH_TOKEN_MATERIAL_INSIDERS}@github.com/squidfunk/mkdocs-material-insiders.git@9.5.43-insiders-4.53.14#egg=mkdocs-material # git+https://${GH_TOKEN_MATERIAL_INSIDERS}@github.com/squidfunk/mkdocs-material-insiders.git # social plugin requirements From 94b0d250f40a5bb72039ebb7cbc0698a8b5ccfc2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 22:58:25 +0000 Subject: [PATCH 06/36] =?UTF-8?q?[pre-commit.ci]=20Mise=20=C3=A0=20jour=20?= =?UTF-8?q?des=20git=20hooks.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.6.0...v5.0.0) - [github.com/asottile/pyupgrade: v3.17.0 → v3.19.0](https://github.com/asottile/pyupgrade/compare/v3.17.0...v3.19.0) - [github.com/astral-sh/ruff-pre-commit: v0.6.3 → v0.7.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.6.3...v0.7.2) - [github.com/psf/black: 24.8.0 → 24.10.0](https://github.com/psf/black/compare/24.8.0...24.10.0) - [github.com/igorshubovych/markdownlint-cli: v0.41.0 → v0.42.0](https://github.com/igorshubovych/markdownlint-cli/compare/v0.41.0...v0.42.0) --- .pre-commit-config.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 56cc50e885..945a578c0f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ repos: - id: check-hooks-apply - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files - id: check-case-conflict @@ -21,21 +21,21 @@ repos: - --markdown-linebreak-ext=md - repo: https://github.com/asottile/pyupgrade - rev: v3.17.0 + rev: v3.19.0 hooks: - id: pyupgrade args: - "--py39-plus" - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.6.3" + rev: "v0.7.2" hooks: - id: ruff args: - --fix-only - repo: https://github.com/psf/black - rev: 24.8.0 + rev: 24.10.0 hooks: - id: black @@ -57,7 +57,7 @@ repos: - --select=E9,F63,F7,F82 - repo: https://github.com/igorshubovych/markdownlint-cli - rev: v0.41.0 + rev: v0.42.0 hooks: - id: markdownlint args: From b815452a48d41adb84dffac87f3542b37e5182b2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 22:59:10 +0000 Subject: [PATCH 07/36] =?UTF-8?q?[pre-commit.ci]=20Corrections=20automatiq?= =?UTF-8?q?ues=20appliqu=C3=A9es=20par=20les=20git=20hooks.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/rdp/2016/rdp_2016-02-12.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/rdp/2016/rdp_2016-02-12.md b/content/rdp/2016/rdp_2016-02-12.md index fbf4456a4c..2fec5d61a1 100644 --- a/content/rdp/2016/rdp_2016-02-12.md +++ b/content/rdp/2016/rdp_2016-02-12.md @@ -119,7 +119,7 @@ L'école comportera 3 jours de travaux pratiques dans l'environnement Gnu/Linux ![icône globe](https://cdn.geotribu.fr/img/internal/icons-rdp-news/world.png "icône globe"){: .img-thumbnail-left } L'utilité du LIDAR n'est plus à démontrer pour la gestion du risque inondation. Un des effets de bord de l'utilisation de cette technologie est de mettre en évidence tous les micro-reliefs résiduels après la disparition de bâtiments ou autres constructions. Du coup, cela en fait un outil très efficace pour les archéologues. -[Cet article publié par le gouvernement britannique](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) donne un exemple particulièrement frappant de son utilisation pour retrouver le réseau de voies romaines autour d'un fort romain.[ +[Cet article publié par le gouvernement britannique](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) donne un exemple particulièrement frappant de son utilisation pour retrouver le réseau de voies romaines autour d'un fort romain.[ ](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) *Contribution externe : merci, Michel Wurtz !* From 98124564a38f8ece4e659fe40670d1514f50d45a Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Tue, 5 Nov 2024 09:27:32 +0100 Subject: [PATCH 08/36] fix(syntax): corrige certains soucis de syntaxe markdown --- ...5_de-la-tolerance-en-sig-geometrie-08-algorithmes-code.md | 3 +-- content/rdp/2013/rdp_2013-09-13.md | 3 +-- content/rdp/2016/rdp_2016-02-12.md | 5 ++--- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/content/articles/2024/2024-09-05_de-la-tolerance-en-sig-geometrie-08-algorithmes-code.md b/content/articles/2024/2024-09-05_de-la-tolerance-en-sig-geometrie-08-algorithmes-code.md index fab6f41fe5..e094c1b1b3 100644 --- a/content/articles/2024/2024-09-05_de-la-tolerance-en-sig-geometrie-08-algorithmes-code.md +++ b/content/articles/2024/2024-09-05_de-la-tolerance-en-sig-geometrie-08-algorithmes-code.md @@ -224,8 +224,7 @@ Vous devriez avoir cette sortie : `Les nombres 0.30000000000000004 et 0.3 sont égaux avec une tolérance de 1e-09.` -Pour une étude plus approfondie, je vous encourage à lire l'article [Comparing Two Floating-Point Numbers -](https://embeddeduse.com/2019/08/26/qt-compare-two-floats/). +Pour une étude plus approfondie, je vous encourage à lire l'article [Comparing Two Floating-Point Numbers](https://embeddeduse.com/2019/08/26/qt-compare-two-floats/). Comme vous avez pu le deviner, c'est ce que fait ArcGIS. Dans plusieurs endroits de nos SIG, il existe des comparaisons floues, peut-être que les prochaines versions de GEOS intègreront cette tolérance pour les relations. :wink: diff --git a/content/rdp/2013/rdp_2013-09-13.md b/content/rdp/2013/rdp_2013-09-13.md index 2ac64b1b70..34c4b867e0 100644 --- a/content/rdp/2013/rdp_2013-09-13.md +++ b/content/rdp/2013/rdp_2013-09-13.md @@ -44,8 +44,7 @@ Bonne lecture ! [TileMill](http://www.mapbox.com/tilemill/) ne doit plus être un outil inconnu pour vous, on vous en parle de temps en temps! Vous savez cet outil créé par MapBox et porté par ce slogan: *Make beautiful interactive maps* ! Cette semaine, TileMill revient sur le devant de la scène avec le projet de [Christopher Wesson](http://christopherwesson.azurewebsites.net/contact/). Grâce à TileMill, il a réalisé [quelques cartes](http://christopherwesson.azurewebsites.net/2013/08/19/tilemill-more-than-just-a-headline/) vraiment sympas qui illustrent les unes de journaux les plus populaires par pays... Il nous livre sa méthode. Si sa démarche a réveillé en vous des idées et que vous souhaitez désormais dompter l'outil, la référence reste la [documentation officielle](http://www.mapbox.com/tilemill/docs/crashcourse/introduction/) du projet. Nous vous invitons aussi à profiter d'une [petite démo](http://norbertrenner.de/osm/mapsplit-map/) qui montre le passage aux tuiles vectorielles dans TileMill version 2 (cela permet de styler dans le navigateur plutôt qu'avoir des images statiques). -[![Exemple TileMill](https://cdn.geotribu.fr/img/articles-blog-rdp/capture-ecran/tile_mill_newspaper.png "Exemple TileMill"){: .img-center loading=lazy } -](http://christopherwesson.azurewebsites.net/2013/08/19/tilemill-more-than-just-a-headline/) +![Exemples TileMill](https://cdn.geotribu.fr/img/articles-blog-rdp/capture-ecran/tile_mill_newspaper.png "Exemple TileMill"){: .img-center loading=lazy } ### Géoréférencer votre carte trouvée sur le web ! diff --git a/content/rdp/2016/rdp_2016-02-12.md b/content/rdp/2016/rdp_2016-02-12.md index 2fec5d61a1..b4327ce345 100644 --- a/content/rdp/2016/rdp_2016-02-12.md +++ b/content/rdp/2016/rdp_2016-02-12.md @@ -119,10 +119,9 @@ L'école comportera 3 jours de travaux pratiques dans l'environnement Gnu/Linux ![icône globe](https://cdn.geotribu.fr/img/internal/icons-rdp-news/world.png "icône globe"){: .img-thumbnail-left } L'utilité du LIDAR n'est plus à démontrer pour la gestion du risque inondation. Un des effets de bord de l'utilisation de cette technologie est de mettre en évidence tous les micro-reliefs résiduels après la disparition de bâtiments ou autres constructions. Du coup, cela en fait un outil très efficace pour les archéologues. -[Cet article publié par le gouvernement britannique](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) donne un exemple particulièrement frappant de son utilisation pour retrouver le réseau de voies romaines autour d'un fort romain.[ -](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) +[Cet article publié par le gouvernement britannique](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) donne un exemple particulièrement frappant de son utilisation pour retrouver le réseau de voies romaines autour d'un fort romain. -*Contribution externe : merci, Michel Wurtz !* +> Contribution externe : merci, Michel Wurtz ! [![LIDAR - Voie Romaine](https://cdn.geotribu.fr/img/articles-blog-rdp/divers/inglewhite-lidar-captions_GOVUK.jpg "LIDAR - Voie Romaine"){: .img-center loading=lazy }](https://www.gov.uk/government/news/lasers-reveal-lost-roman-roads) From f1be598181efcd553d408eb20bb7ffb3f9148aa6 Mon Sep 17 00:00:00 2001 From: gounux Date: Fri, 8 Nov 2024 12:15:25 +0100 Subject: [PATCH 09/36] ajout gounux assignees issue news rdp --- .github/ISSUE_TEMPLATE/RDP_NEWS.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/RDP_NEWS.yml b/.github/ISSUE_TEMPLATE/RDP_NEWS.yml index 779f3f8330..b3e430da54 100644 --- a/.github/ISSUE_TEMPLATE/RDP_NEWS.yml +++ b/.github/ISSUE_TEMPLATE/RDP_NEWS.yml @@ -5,6 +5,7 @@ assignees: - aurelienchaumet - guts - igeofr + - gounux body: - type: markdown From fb3777a9b9de19ec44a71d41aec33bfed9993d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Wed, 13 Nov 2024 18:44:08 +0100 Subject: [PATCH 10/36] =?UTF-8?q?article:=20Suivre=20le=20Vend=C3=A9e=20Gl?= =?UTF-8?q?obe=202024=20depuis=20un=20SIG=20(1=C3=A8re=20version)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2024-11-20_vendee_globe_donnees_sig.md | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md new file mode 100644 index 0000000000..8774662164 --- /dev/null +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -0,0 +1,151 @@ +--- +title: "Suivre le Vendée Globe 2024 depuis un SIG" +subtitle: "Vendée Globe et données SIG" +authors: + - Florent FOUGÈRES +categories: + - article +comments: true +date: 2024-11-20 +description: "Créer et visualiser les données SIG de l'avancement de la course du Vendée Globe 2024" +icon: material/sail-boat +image: https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/trajectoire.png +license: beerware +robots: index, follow +tags: + - Geopandas + - Pandas + - Python + - QGIS + - Vendée Globe + - Voile + +--- + +# Suivre le Vendée Globe 2024 depuis un SIG + +## Le Vendée Globe, c’est quoi ? + +Avant de commencer à parler SIG et aspects techniques, parlons du Vendée Globe. + +C’est une course à la voile en solitaire, sans escale et sans assistance, autour du monde. Elle a lieu tous les 4 ans depuis 1989. Le départ se fait aux Sables d’Olonne. Le parcours consiste à descendre l’Atlantique, puis passer successivement sous l’Afrique et le Cap de Bonne Espérance, sous l’Australie et le Cap Leeuwin et enfin sous l’Amérique du Sud et le Cap Horn, pour remonter en Vendée le plus rapidement possible. Le record a été établi par Armel Le CLéac'h lors de l'édition 2016-2017 avec un trajet de 74 jours 3 heures et 35 minutes. + +![carte](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_vendee_globe.svg){: .img-center loading=lazy } + +## Suivre l’avancée + +Qui dit course autour du monde, dit forcément carte pour suivre l’évolution des participants. Le site officiel de l’épreuve propose une [carte interactive](https://www.vendeeglobe.org/cartographie) pour visualiser cette avancée. + +![carte_interactive](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_interactive.png){: .img-center loading=lazy } + +J’ai donc cherché s’il existait une API ou un web service fournissant les données de positionnement pour les visualiser dans un SIG, comme QGIS par exemple. Après quelques recherches, je n’ai rien trouvé de tel. + +J’ai trouvé une [discussion](https://www.reddit.com/r/Vendee_Globe/s/Gbli34xyQO) sur Reddit à ce sujet, mais sans réponse concluante. + +En revanche, j’ai fini par découvrir que le site officiel publie toutes les 4 heures un fichier Excel contenant les données de navigation et les coordonnées des bateaux. + +![tableur](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/tableur.png){: .img-center loading=lazy } + +Ce fichier communique chaque jour les positions à 2h, 6h, 10h, 14h, 18h et 22h, avec un retard de 1h. Par exemple, le fichier de 10h est fourni à 11h (c’est un élément qui sera à prendre en compte dans l’industrialisation du processus). Pour télécharger ce fichier il faut se rendre dans la section [classement](https://www.vendeeglobe.org/classement). + +Ce tableau contient le rang, le nom du bateau et du skipper, mais également la vitesse et le cap sur les dernières 30 min, les dernières 24h et depuis le dernier pointage. + +À partir de ce tableur, le but sera donc de construire des données géographiques de la course, que ce soit pour tracer la trajectoire, mais aussi pour agréger tous les pointages. + +## Les étapes à suivre + +Il faut commencer par récupérer les informations relatives aux positions des bateaux. Cela signifie télécharger les fichiers Excel, car le site ne permet pas de les récupérer en masse. J'ai donc étudié la structure de l'URL pour comprendre comment elles étaient générées et ainsi pouvoir reconstruire ces liens de téléchargement. + +Ensuite, il est nécessaire de traiter la manière dont les données de localisation sont présentées. En effet, les positions des bateaux sont souvent fournies sous un format de coordonnées géographiques en degrés, minutes et secondes (DMS). Bien que ce format soit utile, il n'est pas directement compatible avec les outils de géomatique. Il est donc indispensable de les convertir en degrés décimaux, un format plus standard et précis, qui permet de travailler facilement avec des cartes et des systèmes d'information géographique (SIG). + +Enfin, il est important d'exporter ces données SIG dans un format compatible, comme le Geopackage ou le GeoJSON. Une fois converties, ces données peuvent être utilisées dans n'importe quel SIG, qu'il s'agisse d'un SIG bureautique comme QGIS ou d'une carte web SIG avec des outils comme MapLibre ou Leaflet. + +## Industrialiser la méthode + +Pour automatiser le processus décrit ci-dessus, j’ai créé un [projet GitHub](https://github.com/florentfgrs/Vendee-Globe-2024) qui automatise ces tâches avec des scripts Python. Il fonctionne en lignes de commande, et elles sont pour le moment au nombre de deux (voir plus bas). + +Pour le téléchargement, j’utilise la bibliothèque tierce `requests`. + +Pour la lecture du tableur, le nettoyage des données et la création de géométrie, j’utilise `pandas`, `geopandas` et `shapely`. Il y a un peu de nettoyage de données à faire, car les cellules contiennent des sauts de ligne. + +Pour aller plus dans le détail technique, une fois le fichier téléchargé, les étapes successives sont : + +1. **Ouverture du fichier dans un dataframe en ne gardant que les colonnes et les lignes qui nous intéressent.** +Il s'agit de charger le fichier Excel et d'extraire dans un dataframe, on garde uniquement les données pertinentes pour la suite du traitement, tout en ignorant les informations superflues. + +2. **Création des en-têtes (headers).** +Les en-têtes du fichier Excel sont souvent constitués de cellules fusionnées, ce qui rend leur récupération difficile. De plus, les noms de colonnes sont parfois trop verbeux, il faut donc les simplifier pour les rendre plus exploitables. + +3. **Nettoyage des données.** +Cette étape consiste à supprimer les sauts de ligne, les caractères spéciaux ou toute autre anomalie qui pourrait perturber le traitement des données. + +4. **Création du timestamp.** +Un timestamp doit être généré pour chaque pointage afin de pouvoir suivre l'évolution de la position des bateaux au fil du temps. Il sera également utile pour construire la trajectoire. + +5. **Conversion des colonnes latitude et longitude de degrés DMS vers degrés décimaux.** +Il faut d'abord parser les coordonnés pour obtenir les degrés, minutes, secondes et orientation. Puis faire la conversion. + +6. **Création de la géométrie.** +À partir des coordonnées converties, il faut générer des géométries. Cela consiste à générer des points pour les positions des bateaux (lors des pointages) ou des lignes pour tracer les trajectoires. + +7. **Exportation vers un format SIG vectoriel.** +Export vers le format [Geopackage](https://www.geopackage.org/). + +Pour l’instant, ce projet propose deux fonctionnalités : + +### Obtenir le dernier pointage + +Il s’agit d’une couche de points indiquant la dernière position communiquée des concurrents. Le format obtenu est un geopackage. + +```shell title="Obtenir un GPKG avec le dernier pointage en date" +python get_last_ranking.py --output-dir ./data_vg +``` + +Le résultat obtenu est une couche de points du dernier pointage en date. Par exemple, si j'exécute cette ligne de commande à 14h45, j'aurai le pointage de 10h (et non celui de 14h à cause du décalage de publication de 1h). + +Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le résultat : + +![dernier_pointage](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/dernier_pointage.png){: .img-center loading=lazy } + +!!! tip "Expression QGIS pour afficher uniquement le nom des navigateurs sur les étiquettes" + ```python + regexp_substr("bateau", '^[^-]+') + ``` + +### Obtenir l’intégralité des pointages et la trace depuis le départ + +Il s’agit d’une couche de points indiquant tous les pointages de chaque bateau depuis le départ, ainsi qu’une couche de lignes reliant ces points pour former la trajectoire des bateaux. Le format obtenu est également un geopackage. + +```shell title="Obtenir un GPKG avec l'intégralité de la trace et des pointages" +python get_race_progress.py --output-dir ./data_vg +``` + +On obtient un geopackage qui contient deux couches : + +- Une couche de l'historique de tous les pointages depuis le départ. +- Une couche de ligne qui reproduit la trajectoire de chaque bateau. + +![trajectoire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/trajectoire.png){: .img-center loading=lazy } + +### Les données attributaires + +Dans les deux fonctionnalités ont retoruvent la table atttributaire des couches toutes les informations du tableur. J'ai seulement ajouter une colonne timestamp, elle est utilise pour relier les pointages entre eux et créer la couche des trajectoire. + +![table attributaire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/table_attrib.png){: .img-center loading=lazy } + +!!! info "Signification des préfixes dans les noms de colonnes" + - `30m` = Depuis 30 minutes + - `last_rank` = Depuis le pointage précédent + - `24h` = Depuis 24h + +Peut être faudrait-il enlever les unités dans les données pour avoir des valeurs numériques ? Dans ce cas, il faudrait peut-être ajouté les unités dans les noms de colonnes. C'est un des pistes d'amélioration. J'aimerais aussi séparer le nom du skipper et le nom du bateau dans deux colonnes distinct. Les contributions pour améliorés ce code sont les bienvenues. + +## Pour aller plus loin + +Cette première étape n’est qu’un POC (Proof of Concept) le code peut encore être optimisé et je vais continuer de le faire tout au long de la course (en espérant que le formalisme et les horaires de publication du tableur ne change pas). Par la suite, plusieurs idées pourraient être explorées. Je vais surement exploré l'une d'entre elle. + +- **Créer un plugin QGIS** : Un plugin QGIS pourrait permettre de charger le classement, la dernière position des navires, et leur trajectoire. On pourrait imaginer que le post-traitement du fichier Excel vers des données SIG soit effectué par l’intégration continue (CI) et exporté en GeoJSON, et que le plugin charge ces GeoJSON hébergés dans le projet GitHub. + +- **Fournir les données via une API** : On pourrait imaginer un projet qui récupère automatiquement ces données, les convertit et les structure, puis expose une API qui fournit une position ou une trajectoire en fonction du numéro d’un concurrent, par exemple. + +- **Créer une application web cartographique** pour visualiser l'avancé des bateaux avec plus de pssibilité que ce que propose l'interface cartographique officiel. J'avais imaginé utilisé [mviewer](https://mviewer.github.io/fr/) pour cela. From 27e470db1073f7b8b23e5d3164eadbe614c8a42c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Thu, 14 Nov 2024 14:27:28 +0100 Subject: [PATCH 11/36] =?UTF-8?q?Mise=20=C3=A0=20jour=20page=20auteur=20Fl?= =?UTF-8?q?orent=20Foug=C3=A8res?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/team/florent-fougeres.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/team/florent-fougeres.md b/content/team/florent-fougeres.md index 4964bc26c6..0e8026c356 100644 --- a/content/team/florent-fougeres.md +++ b/content/team/florent-fougeres.md @@ -4,16 +4,16 @@ categories: - contributeur social: - bluesky: - - github: - - gitlab: - - linkedin: - - mail: + - github: "https://github.com/florentfgrs" + - gitlab: "https://gitlab.com/florent_fougeres" + - linkedin: "https://www.linkedin.com/in/florent-foug%C3%A8res-083597b8/" + - mail: "florent.fougeres@gmail.com" - mastodon: - - instance: - - username: + - instance: "mapstodon.space" + - username: "florent001" - openstreetmap: - - osgeo: - - twitter: + - osgeo: "https://www.osgeo.org/member/fougeres/" + - twitter: "https://x.com/florent1foug" - website: --- @@ -23,8 +23,8 @@ social: ![Portrait Florent Fougères](https://cdn.geotribu.fr/img/internal/contributeurs/ffou.jpeg "Portrait Florent Fougères"){: .img-thumbnail-left } -Géographe et Géomaticien de formation issu du Master [SIGAT](https://formations.univ-rennes2.fr/fr/formations/master-37/master-mention-geomatique-parcours-systeme-d-information-geographique-et-analyse-des-territoires-sigat-JEOC8L9A.html), j'ai commencé ma carrière professionnelle en tant que Géomaticien dans un bureau d'études sur des projets de fibre optique. Désormais, je travaille chez [Oslandia](https://oslandia.com/) en tant que développeur SIG. Je blog ici sur mon temps libre, sans lien avec mon employeur. +Géographe et Géomaticien de formation issu du Master [SIGAT](https://formations.univ-rennes2.fr/fr/formations/master-37/master-mention-geomatique-parcours-systeme-d-information-geographique-et-analyse-des-territoires-sigat-JEOC8L9A.html), j'ai commencé ma carrière professionnelle en tant que Géomaticien dans un bureau d'études. Désormais, je travaille chez [Oslandia](https://oslandia.com/) en tant que développeur SIG. Je blog ici sur mon temps libre, sans lien avec mon employeur. -Passionné de géographie, de sport et d'informatique, j'aime jouer avec les données géographiques (open source si possible) pour les traiter et les représenter. Je suis actif sur [X](https://twitter.com/florent1foug) et [Linkedin](https://www.linkedin.com/in/florent-foug%C3%A8res-083597b8/). +Passionné de géographie, de sport et d'informatique, j'aime jouer avec les données géographiques (open source si possible) pour les traiter et les représenter. From 3bfe518070f7eeee952be5d938156efa5df7bc14 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 13:31:20 +0000 Subject: [PATCH 12/36] =?UTF-8?q?[pre-commit.ci]=20Corrections=20automatiq?= =?UTF-8?q?ues=20appliqu=C3=A9es=20par=20les=20git=20hooks.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 8774662164..dd841d04ad 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -108,6 +108,7 @@ Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le ré ![dernier_pointage](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/dernier_pointage.png){: .img-center loading=lazy } !!! tip "Expression QGIS pour afficher uniquement le nom des navigateurs sur les étiquettes" + ```python regexp_substr("bateau", '^[^-]+') ``` From dada254bb4194fcc2e413744f5b8b111a8e60c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Thu, 14 Nov 2024 18:44:48 +0100 Subject: [PATCH 13/36] Changement du nom des fichiers --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index dd841d04ad..3b6e1c670c 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -98,7 +98,7 @@ Pour l’instant, ce projet propose deux fonctionnalités : Il s’agit d’une couche de points indiquant la dernière position communiquée des concurrents. Le format obtenu est un geopackage. ```shell title="Obtenir un GPKG avec le dernier pointage en date" -python get_last_ranking.py --output-dir ./data_vg +python dernier_pointage.py --output-dir ./data_vg ``` Le résultat obtenu est une couche de points du dernier pointage en date. Par exemple, si j'exécute cette ligne de commande à 14h45, j'aurai le pointage de 10h (et non celui de 14h à cause du décalage de publication de 1h). @@ -118,7 +118,7 @@ Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le ré Il s’agit d’une couche de points indiquant tous les pointages de chaque bateau depuis le départ, ainsi qu’une couche de lignes reliant ces points pour former la trajectoire des bateaux. Le format obtenu est également un geopackage. ```shell title="Obtenir un GPKG avec l'intégralité de la trace et des pointages" -python get_race_progress.py --output-dir ./data_vg +python trajectoires_pointages.py --output-dir ./data_vg ``` On obtient un geopackage qui contient deux couches : From 5a15e7b115dafaf025aec87ca4a588caf886502b Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:35:59 +0100 Subject: [PATCH 14/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com> Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 3b6e1c670c..1b1ae45975 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -28,7 +28,7 @@ tags: Avant de commencer à parler SIG et aspects techniques, parlons du Vendée Globe. -C’est une course à la voile en solitaire, sans escale et sans assistance, autour du monde. Elle a lieu tous les 4 ans depuis 1989. Le départ se fait aux Sables d’Olonne. Le parcours consiste à descendre l’Atlantique, puis passer successivement sous l’Afrique et le Cap de Bonne Espérance, sous l’Australie et le Cap Leeuwin et enfin sous l’Amérique du Sud et le Cap Horn, pour remonter en Vendée le plus rapidement possible. Le record a été établi par Armel Le CLéac'h lors de l'édition 2016-2017 avec un trajet de 74 jours 3 heures et 35 minutes. +C’est une course à la voile en solitaire, sans escale et sans assistance, autour du monde. Elle a lieu tous les 4 ans depuis 1989. Le départ se fait aux Sables d’Olonne. Le parcours consiste à descendre l’Atlantique, puis passer successivement sous l’Afrique et le Cap de Bonne Espérance, sous l’Australie et le Cap Leeuwin et enfin sous l’Amérique du Sud et le Cap Horn, pour remonter en Vendée le plus rapidement possible. Le record a été établi par Armel Le Cléac'h lors de l'édition 2016-2017 avec un trajet de 74 jours 3 heures et 35 minutes. ![carte](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_vendee_globe.svg){: .img-center loading=lazy } From 3642924031a0967e2e07dbd2c4f8bfe04329181e Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:36:07 +0100 Subject: [PATCH 15/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com> Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 1b1ae45975..d7d6005c2a 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -130,7 +130,7 @@ On obtient un geopackage qui contient deux couches : ### Les données attributaires -Dans les deux fonctionnalités ont retoruvent la table atttributaire des couches toutes les informations du tableur. J'ai seulement ajouter une colonne timestamp, elle est utilise pour relier les pointages entre eux et créer la couche des trajectoire. +Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couches toutes les informations du tableur. J'ai seulement ajouté une colonne timestamp, elle est utilisée pour relier les pointages entre eux et créer la couche des trajectoires. ![table attributaire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/table_attrib.png){: .img-center loading=lazy } From dcf5bd609c713fff7633baeef9b21dc2ac2b95da Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:36:13 +0100 Subject: [PATCH 16/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com> Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index d7d6005c2a..7558ecb686 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -139,7 +139,7 @@ Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couc - `last_rank` = Depuis le pointage précédent - `24h` = Depuis 24h -Peut être faudrait-il enlever les unités dans les données pour avoir des valeurs numériques ? Dans ce cas, il faudrait peut-être ajouté les unités dans les noms de colonnes. C'est un des pistes d'amélioration. J'aimerais aussi séparer le nom du skipper et le nom du bateau dans deux colonnes distinct. Les contributions pour améliorés ce code sont les bienvenues. +Peut-être faudrait-il enlever les unités dans les données pour avoir des valeurs numériques ? Dans ce cas, il faudrait peut-être ajouter les unités dans les noms des colonnes. C'est une des pistes d'amélioration. J'aimerais aussi séparer le nom du skipper et le nom du bateau dans deux colonnes distinctes. Les contributions pour améliorer ce code sont les bienvenues. ## Pour aller plus loin From eadf8b8ab1f47330030a88a75eded8c8511be388 Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:36:17 +0100 Subject: [PATCH 17/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com> Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 7558ecb686..a267753aa9 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -134,7 +134,7 @@ Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couc ![table attributaire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/table_attrib.png){: .img-center loading=lazy } -!!! info "Signification des préfixes dans les noms de colonnes" +!!! info "Signification des préfixes dans les noms de colonne" - `30m` = Depuis 30 minutes - `last_rank` = Depuis le pointage précédent - `24h` = Depuis 24h From 17f37c85045454cc6fd4e67cf972db6dc04f9b69 Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:36:24 +0100 Subject: [PATCH 18/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com> Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index a267753aa9..d049e6e628 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -149,4 +149,4 @@ Cette première étape n’est qu’un POC (Proof of Concept) le code peut encor - **Fournir les données via une API** : On pourrait imaginer un projet qui récupère automatiquement ces données, les convertit et les structure, puis expose une API qui fournit une position ou une trajectoire en fonction du numéro d’un concurrent, par exemple. -- **Créer une application web cartographique** pour visualiser l'avancé des bateaux avec plus de pssibilité que ce que propose l'interface cartographique officiel. J'avais imaginé utilisé [mviewer](https://mviewer.github.io/fr/) pour cela. +- **Créer une application web cartographique** pour visualiser l'avancée des bateaux avec plus de possibilités que ce que propose l'interface cartographique officielle. J'avais imaginé utiliser [mviewer](https://mviewer.github.io/fr/) pour cela. From 9525bcdd52621717aa7b64beeec4617c9ba50f47 Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:36:31 +0100 Subject: [PATCH 19/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com> Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index d049e6e628..764a2ccaca 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -143,7 +143,7 @@ Peut-être faudrait-il enlever les unités dans les données pour avoir des vale ## Pour aller plus loin -Cette première étape n’est qu’un POC (Proof of Concept) le code peut encore être optimisé et je vais continuer de le faire tout au long de la course (en espérant que le formalisme et les horaires de publication du tableur ne change pas). Par la suite, plusieurs idées pourraient être explorées. Je vais surement exploré l'une d'entre elle. +Cette première étape n’est qu’un POC (Proof of Concept) le code peut encore être optimisé et je vais continuer de le faire tout au long de la course (en espérant que le formalisme et les horaires de publication du tableur ne changent pas). Par la suite, plusieurs idées pourraient être explorées. Je vais sûrement explorer l'une d'entre elles. - **Créer un plugin QGIS** : Un plugin QGIS pourrait permettre de charger le classement, la dernière position des navires, et leur trajectoire. On pourrait imaginer que le post-traitement du fichier Excel vers des données SIG soit effectué par l’intégration continue (CI) et exporté en GeoJSON, et que le plugin charge ces GeoJSON hébergés dans le projet GitHub. From ea0e685f62556a27cf61b04e961f16e78138f1cb Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Fri, 15 Nov 2024 15:46:45 +0100 Subject: [PATCH 20/36] =?UTF-8?q?update(vend=C3=A9eglobe):=20corrections?= =?UTF-8?q?=20de=20syntaxe=20et=20orthos,=20ajout=20des=20=C3=A9l=C3=A9men?= =?UTF-8?q?ts=20manquants=20(licence,=20bloc=20auteur...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2024-11-20_vendee_globe_donnees_sig.md | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 764a2ccaca..7ddbcfc3c9 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -1,29 +1,30 @@ --- -title: "Suivre le Vendée Globe 2024 depuis un SIG" -subtitle: "Vendée Globe et données SIG" +title: Suivre le Vendée Globe 2024 depuis un SIG +subtitle: Vendée Globe et données SIG authors: - Florent FOUGÈRES categories: - article comments: true date: 2024-11-20 -description: "Créer et visualiser les données SIG de l'avancement de la course du Vendée Globe 2024" +description: Créer et visualiser les données SIG de l'avancement de la course du Vendée Globe 2024 à partir des tableurs officiels. icon: material/sail-boat image: https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/trajectoire.png license: beerware robots: index, follow tags: - - Geopandas + - GeoPandas - Pandas - Python - QGIS - Vendée Globe - - Voile - + - voile --- # Suivre le Vendée Globe 2024 depuis un SIG +:calendar: Date de publication initiale : {{ page.meta.date | date_localized }} + ## Le Vendée Globe, c’est quoi ? Avant de commencer à parler SIG et aspects techniques, parlons du Vendée Globe. @@ -32,11 +33,13 @@ C’est une course à la voile en solitaire, sans escale et sans assistance, aut ![carte](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_vendee_globe.svg){: .img-center loading=lazy } +---- + ## Suivre l’avancée Qui dit course autour du monde, dit forcément carte pour suivre l’évolution des participants. Le site officiel de l’épreuve propose une [carte interactive](https://www.vendeeglobe.org/cartographie) pour visualiser cette avancée. -![carte_interactive](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_interactive.png){: .img-center loading=lazy } +![Vendée Globe- Carte interactive officielle](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_interactive.png){: .img-center loading=lazy } J’ai donc cherché s’il existait une API ou un web service fournissant les données de positionnement pour les visualiser dans un SIG, comme QGIS par exemple. Après quelques recherches, je n’ai rien trouvé de tel. @@ -44,7 +47,7 @@ J’ai trouvé une [discussion](https://www.reddit.com/r/Vendee_Globe/s/Gbli34xy En revanche, j’ai fini par découvrir que le site officiel publie toutes les 4 heures un fichier Excel contenant les données de navigation et les coordonnées des bateaux. -![tableur](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/tableur.png){: .img-center loading=lazy } +![Vendée Globe - Tableur des données de navigation](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/tableur.png){: .img-center loading=lazy } Ce fichier communique chaque jour les positions à 2h, 6h, 10h, 14h, 18h et 22h, avec un retard de 1h. Par exemple, le fichier de 10h est fourni à 11h (c’est un élément qui sera à prendre en compte dans l’industrialisation du processus). Pour télécharger ce fichier il faut se rendre dans la section [classement](https://www.vendeeglobe.org/classement). @@ -52,6 +55,13 @@ Ce tableau contient le rang, le nom du bateau et du skipper, mais également la À partir de ce tableur, le but sera donc de construire des données géographiques de la course, que ce soit pour tracer la trajectoire, mais aussi pour agréger tous les pointages. + + +[Commenter cet article :fontawesome-solid-comments:](#__comments "Aller aux commentaires"){: .md-button } +{: align=middle } + +---- + ## Les étapes à suivre Il faut commencer par récupérer les informations relatives aux positions des bateaux. Cela signifie télécharger les fichiers Excel, car le site ne permet pas de les récupérer en masse. J'ai donc étudié la structure de l'URL pour comprendre comment elles étaient générées et ainsi pouvoir reconstruire ces liens de téléchargement. @@ -60,6 +70,8 @@ Ensuite, il est nécessaire de traiter la manière dont les données de localisa Enfin, il est important d'exporter ces données SIG dans un format compatible, comme le Geopackage ou le GeoJSON. Une fois converties, ces données peuvent être utilisées dans n'importe quel SIG, qu'il s'agisse d'un SIG bureautique comme QGIS ou d'une carte web SIG avec des outils comme MapLibre ou Leaflet. +---- + ## Industrialiser la méthode Pour automatiser le processus décrit ci-dessus, j’ai créé un [projet GitHub](https://github.com/florentfgrs/Vendee-Globe-2024) qui automatise ces tâches avec des scripts Python. Il fonctionne en lignes de commande, et elles sont pour le moment au nombre de deux (voir plus bas). @@ -107,11 +119,13 @@ Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le ré ![dernier_pointage](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/dernier_pointage.png){: .img-center loading=lazy } + !!! tip "Expression QGIS pour afficher uniquement le nom des navigateurs sur les étiquettes" - ```python - regexp_substr("bateau", '^[^-]+') - ``` + ```python + regexp_substr("bateau", '^[^-]+') + ``` + ### Obtenir l’intégralité des pointages et la trace depuis le départ @@ -130,7 +144,7 @@ On obtient un geopackage qui contient deux couches : ### Les données attributaires -Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couches toutes les informations du tableur. J'ai seulement ajouté une colonne timestamp, elle est utilisée pour relier les pointages entre eux et créer la couche des trajectoires. +Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couches toutes les informations du tableur. J'ai seulement ajouté une colonne `timestamp`, elle est utilisée pour relier les pointages entre eux et créer la couche des trajectoires. ![table attributaire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/table_attrib.png){: .img-center loading=lazy } @@ -150,3 +164,9 @@ Cette première étape n’est qu’un POC (Proof of Concept) le code peut encor - **Fournir les données via une API** : On pourrait imaginer un projet qui récupère automatiquement ces données, les convertit et les structure, puis expose une API qui fournit une position ou une trajectoire en fonction du numéro d’un concurrent, par exemple. - **Créer une application web cartographique** pour visualiser l'avancée des bateaux avec plus de possibilités que ce que propose l'interface cartographique officielle. J'avais imaginé utiliser [mviewer](https://mviewer.github.io/fr/) pour cela. + +---- + + + +{% include "licenses/beerware.md" %} From 5ca7e69113491404d7ecc92e744ac995f8209437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Fri, 15 Nov 2024 19:02:32 +0100 Subject: [PATCH 21/36] =?UTF-8?q?update(vend=C3=A9eglobe):=20L=C3=A9gende?= =?UTF-8?q?=20des=20images?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 7ddbcfc3c9..46a8690d27 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -39,7 +39,7 @@ C’est une course à la voile en solitaire, sans escale et sans assistance, aut Qui dit course autour du monde, dit forcément carte pour suivre l’évolution des participants. Le site officiel de l’épreuve propose une [carte interactive](https://www.vendeeglobe.org/cartographie) pour visualiser cette avancée. -![Vendée Globe- Carte interactive officielle](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_interactive.png){: .img-center loading=lazy } +![Vendée Globe - Carte interactive officielle](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_interactive.png){: .img-center loading=lazy } J’ai donc cherché s’il existait une API ou un web service fournissant les données de positionnement pour les visualiser dans un SIG, comme QGIS par exemple. Après quelques recherches, je n’ai rien trouvé de tel. @@ -117,7 +117,7 @@ Le résultat obtenu est une couche de points du dernier pointage en date. Par ex Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le résultat : -![dernier_pointage](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/dernier_pointage.png){: .img-center loading=lazy } +![Screenshot QGIS - Couche des positions du dernier pointage](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/dernier_pointage.png){: .img-center loading=lazy } !!! tip "Expression QGIS pour afficher uniquement le nom des navigateurs sur les étiquettes" @@ -140,13 +140,13 @@ On obtient un geopackage qui contient deux couches : - Une couche de l'historique de tous les pointages depuis le départ. - Une couche de ligne qui reproduit la trajectoire de chaque bateau. -![trajectoire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/trajectoire.png){: .img-center loading=lazy } +![Screenshot QGIS - Couches des trajectoires depuis le départ et intégralité des pointages](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/trajectoire.png){: .img-center loading=lazy } ### Les données attributaires Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couches toutes les informations du tableur. J'ai seulement ajouté une colonne `timestamp`, elle est utilisée pour relier les pointages entre eux et créer la couche des trajectoires. -![table attributaire](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/table_attrib.png){: .img-center loading=lazy } +![Screenshot QGIS - Table attributaire des données](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/table_attrib.png){: .img-center loading=lazy } !!! info "Signification des préfixes dans les noms de colonne" - `30m` = Depuis 30 minutes From c53780815484abf6f2b6f3585b3cb63fff544cbd Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Sun, 17 Nov 2024 09:33:13 +0100 Subject: [PATCH 22/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Loïc Bartoletti Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 46a8690d27..21f694ee82 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -18,7 +18,7 @@ tags: - Python - QGIS - Vendée Globe - - voile + - Voile --- # Suivre le Vendée Globe 2024 depuis un SIG From 7f5c07e8d785161e479bf3519e1972a0f34d8b8a Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Sun, 17 Nov 2024 09:34:28 +0100 Subject: [PATCH 23/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Loïc Bartoletti Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 21f694ee82..3f5b5590b5 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -68,7 +68,7 @@ Il faut commencer par récupérer les informations relatives aux positions des b Ensuite, il est nécessaire de traiter la manière dont les données de localisation sont présentées. En effet, les positions des bateaux sont souvent fournies sous un format de coordonnées géographiques en degrés, minutes et secondes (DMS). Bien que ce format soit utile, il n'est pas directement compatible avec les outils de géomatique. Il est donc indispensable de les convertir en degrés décimaux, un format plus standard et précis, qui permet de travailler facilement avec des cartes et des systèmes d'information géographique (SIG). -Enfin, il est important d'exporter ces données SIG dans un format compatible, comme le Geopackage ou le GeoJSON. Une fois converties, ces données peuvent être utilisées dans n'importe quel SIG, qu'il s'agisse d'un SIG bureautique comme QGIS ou d'une carte web SIG avec des outils comme MapLibre ou Leaflet. +Enfin, il est important d'exporter ces données SIG dans un format compatible, comme le GeoPackage ou le GeoJSON. Une fois converties, ces données peuvent être utilisées dans n'importe quel SIG, qu'il s'agisse d'un SIG bureautique comme QGIS ou d'une carte web SIG avec des outils comme MapLibre ou Leaflet. ---- From c8821b2f6ba2381f477440ec7dd68e7c7c70c0d3 Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Sun, 17 Nov 2024 10:11:56 +0100 Subject: [PATCH 24/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Loïc Bartoletti Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 3f5b5590b5..0371a5a579 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -129,7 +129,7 @@ Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le ré ### Obtenir l’intégralité des pointages et la trace depuis le départ -Il s’agit d’une couche de points indiquant tous les pointages de chaque bateau depuis le départ, ainsi qu’une couche de lignes reliant ces points pour former la trajectoire des bateaux. Le format obtenu est également un geopackage. +Il s’agit d’une couche de points indiquant tous les pointages de chaque bateau depuis le départ, ainsi qu’une couche de lignes reliant ces points pour former la trajectoire des bateaux. Le format obtenu est également un GeoPackage. ```shell title="Obtenir un GPKG avec l'intégralité de la trace et des pointages" python trajectoires_pointages.py --output-dir ./data_vg From 86e1796f5672fb7d71021c86fa4affd20345108f Mon Sep 17 00:00:00 2001 From: florentfgrs Date: Sun, 17 Nov 2024 10:14:18 +0100 Subject: [PATCH 25/36] =?UTF-8?q?article=20vend=C3=A9e=20globe:=20expressi?= =?UTF-8?q?on=20QGIS=20plus=20utile=20il=20y=20a=20une=20colonne=20avec=20?= =?UTF-8?q?le=20nom=20du=20skipper=20et=20le=20nom=20du=20bateau.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 0371a5a579..e9a19e1fc8 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -119,14 +119,6 @@ Une fois affiché dans QGIS et avec un peu de travail sur le style, voici le ré ![Screenshot QGIS - Couche des positions du dernier pointage](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/dernier_pointage.png){: .img-center loading=lazy } - -!!! tip "Expression QGIS pour afficher uniquement le nom des navigateurs sur les étiquettes" - - ```python - regexp_substr("bateau", '^[^-]+') - ``` - - ### Obtenir l’intégralité des pointages et la trace depuis le départ Il s’agit d’une couche de points indiquant tous les pointages de chaque bateau depuis le départ, ainsi qu’une couche de lignes reliant ces points pour former la trajectoire des bateaux. Le format obtenu est également un GeoPackage. From 12b59f34fe94bb9ea8424ae0cc43b301ebd6ce2b Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Sun, 17 Nov 2024 10:14:37 +0100 Subject: [PATCH 26/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Flø Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index e9a19e1fc8..21ce6c6061 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -27,6 +27,8 @@ tags: ## Le Vendée Globe, c’est quoi ? +![logo Vendée Globe](https://cdn.geotribu.fr/img/logos-icones/divers/vendee_globe.png){: .img-thumbnail-left } + Avant de commencer à parler SIG et aspects techniques, parlons du Vendée Globe. C’est une course à la voile en solitaire, sans escale et sans assistance, autour du monde. Elle a lieu tous les 4 ans depuis 1989. Le départ se fait aux Sables d’Olonne. Le parcours consiste à descendre l’Atlantique, puis passer successivement sous l’Afrique et le Cap de Bonne Espérance, sous l’Australie et le Cap Leeuwin et enfin sous l’Amérique du Sud et le Cap Horn, pour remonter en Vendée le plus rapidement possible. Le record a été établi par Armel Le Cléac'h lors de l'édition 2016-2017 avec un trajet de 74 jours 3 heures et 35 minutes. From 9724a03e1fc9ce9bacb5e070da3a4c1e93803934 Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Sun, 17 Nov 2024 10:14:55 +0100 Subject: [PATCH 27/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Flø Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 21ce6c6061..7547dea51e 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -39,6 +39,8 @@ C’est une course à la voile en solitaire, sans escale et sans assistance, aut ## Suivre l’avancée +![logo Smarty Pins](https://cdn.geotribu.fr/img/logos-icones/entreprises_association/google/SmartyPins.png){: .img-thumbnail-left } + Qui dit course autour du monde, dit forcément carte pour suivre l’évolution des participants. Le site officiel de l’épreuve propose une [carte interactive](https://www.vendeeglobe.org/cartographie) pour visualiser cette avancée. ![Vendée Globe - Carte interactive officielle](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/carte_interactive.png){: .img-center loading=lazy } From 1c80fb415904e55f1c5163672c644670eac9d82a Mon Sep 17 00:00:00 2001 From: Florent <36446612+florentfgrs@users.noreply.github.com> Date: Sun, 17 Nov 2024 10:15:01 +0100 Subject: [PATCH 28/36] Update content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Flø Signed-off-by: Florent <36446612+florentfgrs@users.noreply.github.com> --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 7547dea51e..fbe5400a8a 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -78,6 +78,8 @@ Enfin, il est important d'exporter ces données SIG dans un format compatible, c ## Industrialiser la méthode +![logo usine](https://cdn.geotribu.fr/img/logos-icones/divers/factory.png){: .img-thumbnail-left } + Pour automatiser le processus décrit ci-dessus, j’ai créé un [projet GitHub](https://github.com/florentfgrs/Vendee-Globe-2024) qui automatise ces tâches avec des scripts Python. Il fonctionne en lignes de commande, et elles sont pour le moment au nombre de deux (voir plus bas). Pour le téléchargement, j’utilise la bibliothèque tierce `requests`. From 6f5bb071dbe344300e7865afbb105dc47be9210a Mon Sep 17 00:00:00 2001 From: florentfgrs Date: Sun, 17 Nov 2024 10:19:11 +0100 Subject: [PATCH 29/36] =?UTF-8?q?articl=20vend=C3=A9e=20globe:=20url=20du?= =?UTF-8?q?=20tableur=20des=20pointages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index fbe5400a8a..41b54af2f8 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -70,6 +70,12 @@ Ce tableau contient le rang, le nom du bateau et du skipper, mais également la Il faut commencer par récupérer les informations relatives aux positions des bateaux. Cela signifie télécharger les fichiers Excel, car le site ne permet pas de les récupérer en masse. J'ai donc étudié la structure de l'URL pour comprendre comment elles étaient générées et ainsi pouvoir reconstruire ces liens de téléchargement. +```shell title="Format de l'URL de téléchargement du tableur des pointages" +https://www.vendeeglobe.org/sites/default/files/ranking/vendeeglobe_leaderboard_AAAMMJJ_HHMMSS.xlsx +``` + +Il faut donc complèter la date (format AAAAMMJJ) et l'heure du pointages (HHMMSS) pour construire l'url de téléchargement. + Ensuite, il est nécessaire de traiter la manière dont les données de localisation sont présentées. En effet, les positions des bateaux sont souvent fournies sous un format de coordonnées géographiques en degrés, minutes et secondes (DMS). Bien que ce format soit utile, il n'est pas directement compatible avec les outils de géomatique. Il est donc indispensable de les convertir en degrés décimaux, un format plus standard et précis, qui permet de travailler facilement avec des cartes et des systèmes d'information géographique (SIG). Enfin, il est important d'exporter ces données SIG dans un format compatible, comme le GeoPackage ou le GeoJSON. Une fois converties, ces données peuvent être utilisées dans n'importe quel SIG, qu'il s'agisse d'un SIG bureautique comme QGIS ou d'une carte web SIG avec des outils comme MapLibre ou Leaflet. From 8ee8728db1c41d62238e2aaee4e32920aea8b85a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Mon, 18 Nov 2024 13:56:33 +0100 Subject: [PATCH 30/36] article: ajouter une section sur le controleur temporel de QGIS --- .../2024-11-20_vendee_globe_donnees_sig.md | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 41b54af2f8..b76b804135 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -103,15 +103,55 @@ Les en-têtes du fichier Excel sont souvent constitués de cellules fusionnées, 3. **Nettoyage des données.** Cette étape consiste à supprimer les sauts de ligne, les caractères spéciaux ou toute autre anomalie qui pourrait perturber le traitement des données. +```shell title="DataFrame avant nettoyage" + rang code nom heure ... 24h_vmg 24h_distance dtf dtl +0 1 GBR\r\nFRA 100 Sam Goodchild\r\nVULNERABLE 10:30 FR\r\n ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm +1 2 FRA\r\nFRA 112 Sébastien Simon\r\nGroupe Dubreuil 10:30 FR\r\n ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm +2 3 FRA\r\nFRA 59 Thomas Ruyant\r\nVULNERABLE 10:30 FR\r\n ... 10.7 kts 288.1 nm 22352.7 nm 52.0 nm +3 4 FRA\r\nFRA85 Nicolas Lunven\r\nHOLCIM - PRB 10:30 FR\r\n ... 12.7 kts 306.4 nm 22378.5 nm 77.8 nm +4 5 FRA\r\nFRA 29 Jean Le Cam\r\nTout commence en Finistère - Ar... 10:30 FR\r\n ... 5.0 kts 158.5 nm 22379.0 nm 78.3 nm +5 6 FRA\r\nFRA 15 Clarisse Crémer\r\nL'Occitane en Provence 10:30 FR\r\n ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm +``` + +```shell title="DataFrame après nettoyage" + rang code nom heure ... 24h_vmg 24h_distance dtf dtl +0 1 GBR - FRA 100 Sam Goodchild - VULNERABLE 10:30 FR - ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm +1 2 FRA - FRA 112 Sébastien Simon - Groupe Dubreuil 10:30 FR - ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm +2 3 FRA - FRA 59 Thomas Ruyant - VULNERABLE 10:30 FR - ... 10.7 kts 288.1 nm 22352.7 nm 52.0 nm +3 4 FRA - FRA85 Nicolas Lunven - HOLCIM - PRB 10:30 FR - ... 12.7 kts 306.4 nm 22378.5 nm 77.8 nm +4 5 FRA - FRA 29 Jean Le Cam - Tout commence en Finistère - Arm... 10:30 FR - ... 5.0 kts 158.5 nm 22379.0 nm 78.3 nm +5 6 FRA - FRA 15 Clarisse Crémer - L'Occitane en Provence 10:30 FR - ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm +``` + 4. **Création du timestamp.** Un timestamp doit être généré pour chaque pointage afin de pouvoir suivre l'évolution de la position des bateaux au fil du temps. Il sera également utile pour construire la trajectoire. +```shell title="Création de la colonne timestamp à partir de la colonne heure et de la date du fichier excel" + heure timestamp +0 10:30 FR - 2024-11-18 10:30:00 +1 10:30 FR - 2024-11-18 10:30:00 +2 10:30 FR - 2024-11-18 10:30:00 +3 10:30 FR - 2024-11-18 10:30:00 +4 10:30 FR - 2024-11-18 10:30:00 +5 10:30 FR - 2024-11-18 10:30:00 +``` + 5. **Conversion des colonnes latitude et longitude de degrés DMS vers degrés décimaux.** Il faut d'abord parser les coordonnés pour obtenir les degrés, minutes, secondes et orientation. Puis faire la conversion. 6. **Création de la géométrie.** À partir des coordonnées converties, il faut générer des géométries. Cela consiste à générer des points pour les positions des bateaux (lors des pointages) ou des lignes pour tracer les trajectoires. +```shell title="Conversion des latitude/longitude DMS en décimal puis création de la colonne de géométrie" + latitude longitude latitude_decimal longitude_decimal geometry +0 17°56.15'N 31°09.06'W 17.937500 -31.151667 POINT (-31.15167 17.9375) +1 18°32.68'N 30°10.63'W 18.552222 -30.184167 POINT (-30.18417 18.55222) +2 18°19.45'N 33°17.34'W 18.329167 -33.292778 POINT (-33.29278 18.32917) +3 18°59.38'N 32°23.11'W 18.993889 -32.386389 POINT (-32.38639 18.99389) +4 19°17.37'N 19°24.52'W 19.293611 -19.414444 POINT (-19.41444 19.29361) +5 19°58.12'N 30°22.88'W 19.970000 -30.391111 POINT (-30.39111 19.97) +``` + 7. **Exportation vers un format SIG vectoriel.** Export vers le format [Geopackage](https://www.geopackage.org/). @@ -159,6 +199,42 @@ Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couc Peut-être faudrait-il enlever les unités dans les données pour avoir des valeurs numériques ? Dans ce cas, il faudrait peut-être ajouter les unités dans les noms des colonnes. C'est une des pistes d'amélioration. J'aimerais aussi séparer le nom du skipper et le nom du bateau dans deux colonnes distinctes. Les contributions pour améliorer ce code sont les bienvenues. +## Animer la progression avec le Temporal Control de QGIS + +*Pour ce tutoriel, il faut utiliser la couche `pointages` produite par `trajectoires_pointages.py`.* + +### Configurer la couche + +Après avoir accédé aux propriétés de la couche (clic droit > Propriétés), rendez-vous dans l'onglet **Temporel**. Configurez les paramètres comme suit : + +![QGIS - Configuration de l'onglet Temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/temporel.png){: .img-center loading=lazy } + +### Afficher la barre d'outils temporelle + +- Clic droit en haut dans les barres d'outils. +- Cochez (si ce n'est pas déjà fait) **Panneau contrôleur temporel** dans la section **Panneaux**. + +### Configurer la barre d'outils + +- Ajustez la date de départ au début de l'épreuve. +- Indiquez un pas de 4 heures (c'est le delta entre deux pointages). + +![QGIS - Configuration du contrôleur temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/controleur.png) + +### Animation de la couche + +Après avoir cliqué sur Play, voici le résultat que vous devriez obtenir : + +![QGIS - Animation du contrôleur temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/qgis-temporal.gif) + + +!!! tip "Pour suivre uniquement un concurent vous pouvez filtrer la couche" + + ```sql + "skipper" = 'Maxime Sorel' + ``` + + ## Pour aller plus loin Cette première étape n’est qu’un POC (Proof of Concept) le code peut encore être optimisé et je vais continuer de le faire tout au long de la course (en espérant que le formalisme et les horaires de publication du tableur ne changent pas). Par la suite, plusieurs idées pourraient être explorées. Je vais sûrement explorer l'une d'entre elles. From a297bc18ea0fadcbd5a9524ba041ca8325199c05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Mon, 18 Nov 2024 14:00:14 +0100 Subject: [PATCH 31/36] article: mauvaise indentation des blocs de code --- .../2024-11-20_vendee_globe_donnees_sig.md | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index b76b804135..4519ffc0e1 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -103,38 +103,38 @@ Les en-têtes du fichier Excel sont souvent constitués de cellules fusionnées, 3. **Nettoyage des données.** Cette étape consiste à supprimer les sauts de ligne, les caractères spéciaux ou toute autre anomalie qui pourrait perturber le traitement des données. -```shell title="DataFrame avant nettoyage" - rang code nom heure ... 24h_vmg 24h_distance dtf dtl -0 1 GBR\r\nFRA 100 Sam Goodchild\r\nVULNERABLE 10:30 FR\r\n ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm -1 2 FRA\r\nFRA 112 Sébastien Simon\r\nGroupe Dubreuil 10:30 FR\r\n ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm -2 3 FRA\r\nFRA 59 Thomas Ruyant\r\nVULNERABLE 10:30 FR\r\n ... 10.7 kts 288.1 nm 22352.7 nm 52.0 nm -3 4 FRA\r\nFRA85 Nicolas Lunven\r\nHOLCIM - PRB 10:30 FR\r\n ... 12.7 kts 306.4 nm 22378.5 nm 77.8 nm -4 5 FRA\r\nFRA 29 Jean Le Cam\r\nTout commence en Finistère - Ar... 10:30 FR\r\n ... 5.0 kts 158.5 nm 22379.0 nm 78.3 nm -5 6 FRA\r\nFRA 15 Clarisse Crémer\r\nL'Occitane en Provence 10:30 FR\r\n ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm -``` + ```shell title="DataFrame avant nettoyage" + rang code nom heure ... 24h_vmg 24h_distance dtf dtl + 0 1 GBR\r\nFRA 100 Sam Goodchild\r\nVULNERABLE 10:30 FR\r\n ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm + 1 2 FRA\r\nFRA 112 Sébastien Simon\r\nGroupe Dubreuil 10:30 FR\r\n ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm + 2 3 FRA\r\nFRA 59 Thomas Ruyant\r\nVULNERABLE 10:30 FR\r\n ... 10.7 kts 288.1 nm 22352.7 nm 52.0 nm + 3 4 FRA\r\nFRA85 Nicolas Lunven\r\nHOLCIM - PRB 10:30 FR\r\n ... 12.7 kts 306.4 nm 22378.5 nm 77.8 nm + 4 5 FRA\r\nFRA 29 Jean Le Cam\r\nTout commence en Finistère - Ar... 10:30 FR\r\n ... 5.0 kts 158.5 nm 22379.0 nm 78.3 nm + 5 6 FRA\r\nFRA 15 Clarisse Crémer\r\nL'Occitane en Provence 10:30 FR\r\n ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm + ``` -```shell title="DataFrame après nettoyage" - rang code nom heure ... 24h_vmg 24h_distance dtf dtl -0 1 GBR - FRA 100 Sam Goodchild - VULNERABLE 10:30 FR - ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm -1 2 FRA - FRA 112 Sébastien Simon - Groupe Dubreuil 10:30 FR - ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm -2 3 FRA - FRA 59 Thomas Ruyant - VULNERABLE 10:30 FR - ... 10.7 kts 288.1 nm 22352.7 nm 52.0 nm -3 4 FRA - FRA85 Nicolas Lunven - HOLCIM - PRB 10:30 FR - ... 12.7 kts 306.4 nm 22378.5 nm 77.8 nm -4 5 FRA - FRA 29 Jean Le Cam - Tout commence en Finistère - Arm... 10:30 FR - ... 5.0 kts 158.5 nm 22379.0 nm 78.3 nm -5 6 FRA - FRA 15 Clarisse Crémer - L'Occitane en Provence 10:30 FR - ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm -``` + ```shell title="DataFrame après nettoyage" + rang code nom heure ... 24h_vmg 24h_distance dtf dtl + 0 1 GBR - FRA 100 Sam Goodchild - VULNERABLE 10:30 FR - ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm + 1 2 FRA - FRA 112 Sébastien Simon - Groupe Dubreuil 10:30 FR - ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm + 2 3 FRA - FRA 59 Thomas Ruyant - VULNERABLE 10:30 FR - ... 10.7 kts 288.1 nm 22352.7 nm 52.0 nm + 3 4 FRA - FRA85 Nicolas Lunven - HOLCIM - PRB 10:30 FR - ... 12.7 kts 306.4 nm 22378.5 nm 77.8 nm + 4 5 FRA - FRA 29 Jean Le Cam - Tout commence en Finistère - Arm... 10:30 FR - ... 5.0 kts 158.5 nm 22379.0 nm 78.3 nm + 5 6 FRA - FRA 15 Clarisse Crémer - L'Occitane en Provence 10:30 FR - ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm + ``` 4. **Création du timestamp.** Un timestamp doit être généré pour chaque pointage afin de pouvoir suivre l'évolution de la position des bateaux au fil du temps. Il sera également utile pour construire la trajectoire. -```shell title="Création de la colonne timestamp à partir de la colonne heure et de la date du fichier excel" - heure timestamp -0 10:30 FR - 2024-11-18 10:30:00 -1 10:30 FR - 2024-11-18 10:30:00 -2 10:30 FR - 2024-11-18 10:30:00 -3 10:30 FR - 2024-11-18 10:30:00 -4 10:30 FR - 2024-11-18 10:30:00 -5 10:30 FR - 2024-11-18 10:30:00 -``` + ```shell title="Création de la colonne timestamp à partir de la colonne heure et de la date du fichier excel" + heure timestamp + 0 10:30 FR - 2024-11-18 10:30:00 + 1 10:30 FR - 2024-11-18 10:30:00 + 2 10:30 FR - 2024-11-18 10:30:00 + 3 10:30 FR - 2024-11-18 10:30:00 + 4 10:30 FR - 2024-11-18 10:30:00 + 5 10:30 FR - 2024-11-18 10:30:00 + ``` 5. **Conversion des colonnes latitude et longitude de degrés DMS vers degrés décimaux.** Il faut d'abord parser les coordonnés pour obtenir les degrés, minutes, secondes et orientation. Puis faire la conversion. @@ -142,15 +142,15 @@ Il faut d'abord parser les coordonnés pour obtenir les degrés, minutes, second 6. **Création de la géométrie.** À partir des coordonnées converties, il faut générer des géométries. Cela consiste à générer des points pour les positions des bateaux (lors des pointages) ou des lignes pour tracer les trajectoires. -```shell title="Conversion des latitude/longitude DMS en décimal puis création de la colonne de géométrie" - latitude longitude latitude_decimal longitude_decimal geometry -0 17°56.15'N 31°09.06'W 17.937500 -31.151667 POINT (-31.15167 17.9375) -1 18°32.68'N 30°10.63'W 18.552222 -30.184167 POINT (-30.18417 18.55222) -2 18°19.45'N 33°17.34'W 18.329167 -33.292778 POINT (-33.29278 18.32917) -3 18°59.38'N 32°23.11'W 18.993889 -32.386389 POINT (-32.38639 18.99389) -4 19°17.37'N 19°24.52'W 19.293611 -19.414444 POINT (-19.41444 19.29361) -5 19°58.12'N 30°22.88'W 19.970000 -30.391111 POINT (-30.39111 19.97) -``` + ```shell title="Conversion des latitude/longitude DMS en décimal puis création de la colonne de géométrie" + latitude longitude latitude_decimal longitude_decimal geometry + 0 17°56.15'N 31°09.06'W 17.937500 -31.151667 POINT (-31.15167 17.9375) + 1 18°32.68'N 30°10.63'W 18.552222 -30.184167 POINT (-30.18417 18.55222) + 2 18°19.45'N 33°17.34'W 18.329167 -33.292778 POINT (-33.29278 18.32917) + 3 18°59.38'N 32°23.11'W 18.993889 -32.386389 POINT (-32.38639 18.99389) + 4 19°17.37'N 19°24.52'W 19.293611 -19.414444 POINT (-19.41444 19.29361) + 5 19°58.12'N 30°22.88'W 19.970000 -30.391111 POINT (-30.39111 19.97) + ``` 7. **Exportation vers un format SIG vectoriel.** Export vers le format [Geopackage](https://www.geopackage.org/). From c4e73a0ed1cad7bad53f051ac3ee01e911b52182 Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Mon, 18 Nov 2024 14:09:49 +0100 Subject: [PATCH 32/36] update(docs): rm icon of vscode dev (deprecated) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 997be849ea..65cf0a0f25 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ [![🎳 Vérification des liens](https://github.com/geotribu/website/actions/workflows/links_checker.yml/badge.svg)](https://github.com/geotribu/website/actions/workflows/links_checker.yml) [![🤖 Réponse automatique à un ticket de proposition de contenu](https://github.com/geotribu/website/actions/workflows/issue_comment.yml/badge.svg)](https://github.com/geotribu/website/actions/workflows/issue_comment.yml) -[![Ouvrir dans l'éditeur en ligne](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/geotribu/website) - [![Built with Material for MkDocs](https://img.shields.io/badge/Material_for_MkDocs-526CFE?style=for-the-badge&logo=MaterialForMkDocs&logoColor=white)](https://squidfunk.github.io/mkdocs-material/) Sources et contenus du site de Geotribu, accessible via les URLs suivantes : From 269be68ab1887ad94ab5be9cfda2fb648a6b50d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Foug=C3=A8res?= Date: Mon, 18 Nov 2024 14:14:44 +0100 Subject: [PATCH 33/36] article: changement de balise de code --- .../articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index 4519ffc0e1..efbbbf8902 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -103,7 +103,7 @@ Les en-têtes du fichier Excel sont souvent constitués de cellules fusionnées, 3. **Nettoyage des données.** Cette étape consiste à supprimer les sauts de ligne, les caractères spéciaux ou toute autre anomalie qui pourrait perturber le traitement des données. - ```shell title="DataFrame avant nettoyage" + ```pandas title="DataFrame avant nettoyage" rang code nom heure ... 24h_vmg 24h_distance dtf dtl 0 1 GBR\r\nFRA 100 Sam Goodchild\r\nVULNERABLE 10:30 FR\r\n ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm 1 2 FRA\r\nFRA 112 Sébastien Simon\r\nGroupe Dubreuil 10:30 FR\r\n ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm @@ -113,7 +113,7 @@ Cette étape consiste à supprimer les sauts de ligne, les caractères spéciaux 5 6 FRA\r\nFRA 15 Clarisse Crémer\r\nL'Occitane en Provence 10:30 FR\r\n ... 7.3 kts 211.9 nm 22410.7 nm 110.1 nm ``` - ```shell title="DataFrame après nettoyage" + ```pandas title="DataFrame après nettoyage" rang code nom heure ... 24h_vmg 24h_distance dtf dtl 0 1 GBR - FRA 100 Sam Goodchild - VULNERABLE 10:30 FR - ... 10.5 kts 255.1 nm 22300.7 nm 0.0 nm 1 2 FRA - FRA 112 Sébastien Simon - Groupe Dubreuil 10:30 FR - ... 7.4 kts 223.1 nm 22324.7 nm 24.0 nm @@ -126,7 +126,7 @@ Cette étape consiste à supprimer les sauts de ligne, les caractères spéciaux 4. **Création du timestamp.** Un timestamp doit être généré pour chaque pointage afin de pouvoir suivre l'évolution de la position des bateaux au fil du temps. Il sera également utile pour construire la trajectoire. - ```shell title="Création de la colonne timestamp à partir de la colonne heure et de la date du fichier excel" + ```pandas title="Création de la colonne timestamp à partir de la colonne heure et de la date du fichier excel" heure timestamp 0 10:30 FR - 2024-11-18 10:30:00 1 10:30 FR - 2024-11-18 10:30:00 @@ -142,7 +142,7 @@ Il faut d'abord parser les coordonnés pour obtenir les degrés, minutes, second 6. **Création de la géométrie.** À partir des coordonnées converties, il faut générer des géométries. Cela consiste à générer des points pour les positions des bateaux (lors des pointages) ou des lignes pour tracer les trajectoires. - ```shell title="Conversion des latitude/longitude DMS en décimal puis création de la colonne de géométrie" + ```pandas title="Conversion des latitude/longitude DMS en décimal puis création de la colonne de géométrie" latitude longitude latitude_decimal longitude_decimal geometry 0 17°56.15'N 31°09.06'W 17.937500 -31.151667 POINT (-31.15167 17.9375) 1 18°32.68'N 30°10.63'W 18.552222 -30.184167 POINT (-30.18417 18.55222) From 70ad4174f8075ebb86b0ae0b83bec58ed2ae0507 Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Mon, 18 Nov 2024 14:18:48 +0100 Subject: [PATCH 34/36] update(vendee): balises image --- .../2024/2024-11-20_vendee_globe_donnees_sig.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index efbbbf8902..a1339ddfcf 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -199,9 +199,11 @@ Dans les deux fonctionnalités, on retrouve dans la table atttributaire des couc Peut-être faudrait-il enlever les unités dans les données pour avoir des valeurs numériques ? Dans ce cas, il faudrait peut-être ajouter les unités dans les noms des colonnes. C'est une des pistes d'amélioration. J'aimerais aussi séparer le nom du skipper et le nom du bateau dans deux colonnes distinctes. Les contributions pour améliorer ce code sont les bienvenues. +---- + ## Animer la progression avec le Temporal Control de QGIS -*Pour ce tutoriel, il faut utiliser la couche `pointages` produite par `trajectoires_pointages.py`.* +Pour ce tutoriel, il faut utiliser la couche `pointages` produite par `trajectoires_pointages.py`. ### Configurer la couche @@ -219,16 +221,16 @@ Après avoir accédé aux propriétés de la couche (clic droit > Propriétés), - Ajustez la date de départ au début de l'épreuve. - Indiquez un pas de 4 heures (c'est le delta entre deux pointages). -![QGIS - Configuration du contrôleur temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/controleur.png) +![QGIS - Configuration du contrôleur temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/controleur.png){: .img-center loading=lazy } ### Animation de la couche Après avoir cliqué sur Play, voici le résultat que vous devriez obtenir : -![QGIS - Animation du contrôleur temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/qgis-temporal.gif) +![QGIS - Animation du contrôleur temporel](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/vendee_globe_donnees_sig/qgis-temporal.gif){: .img-center loading=lazy } -!!! tip "Pour suivre uniquement un concurent vous pouvez filtrer la couche" +!!! tip "Expression QGIS pour filtrer le suivi sur un concurent" ```sql "skipper" = 'Maxime Sorel' From 3ae580f59ea2483f10b432c8cce7a973a2e79a8d Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Mon, 18 Nov 2024 14:22:14 +0100 Subject: [PATCH 35/36] =?UTF-8?q?update(mkdocs):=20d=C3=A9sactive=20l'ic?= =?UTF-8?q?=C3=B4ne=20de=20s=C3=A9lection=20de=20lignes=20de=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkdocs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 5312f1ade2..774540bef2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -125,7 +125,6 @@ theme: - content.action.view - content.code.annotate - content.code.copy - - content.code.select - content.footnote.tooltips - content.tabs.link - content.tooltips From b0888cd7dab7edea6fa1e128681b4d5793d67645 Mon Sep 17 00:00:00 2001 From: GeoJulien Date: Mon, 18 Nov 2024 14:25:20 +0100 Subject: [PATCH 36/36] update(mkdocs): ajout intro tuto --- content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md index a1339ddfcf..b9ee8ef1a0 100644 --- a/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md +++ b/content/articles/2024/2024-11-20_vendee_globe_donnees_sig.md @@ -203,6 +203,9 @@ Peut-être faudrait-il enlever les unités dans les données pour avoir des vale ## Animer la progression avec le Temporal Control de QGIS +![logo QGIS](https://cdn.geotribu.fr/img/logos-icones/logiciels_librairies/qgis.png "logo QGIS"){: .img-thumbnail-left } + +Pour visualiser les données, QGIS est tout indiqué et comme les données ont une dimension temporelles, c'est l'occasion de jouer avec le contrôleur temporel. Pour ce tutoriel, il faut utiliser la couche `pointages` produite par `trajectoires_pointages.py`. ### Configurer la couche