Skip to content

Commit

Permalink
Merge branch 'master' into article/introducing-cli-geotribu
Browse files Browse the repository at this point in the history
Signed-off-by: Julien <[email protected]>
  • Loading branch information
Guts authored Aug 13, 2023
2 parents 9752851 + 32c1616 commit b8bd965
Show file tree
Hide file tree
Showing 41 changed files with 708 additions and 161 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/ARTICLE.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ body:
label: Mots-clés
description: |
Liste de mots-clés séparés par une virgule.
De préférence, choisir parmi les [mots-clés existants](https://static.geotribu.fr/tags/).
De préférence, choisir parmi les [mots-clés existants](https://geotribu.fr/tags/).
validations:
required: true

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/RDP_NEWS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ body:
label: Mots-clés
description: |
Liste de mots-clés séparés par une virgule.
De préférence, choisir parmi les [mots-clés existants](https://static.geotribu.fr/tags/), en respectant la casse.
De préférence, choisir parmi les [mots-clés existants](https://geotribu.fr/tags/), en respectant la casse.
validations:
required: true

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ jobs:

- name: Build static website
run: |
python scripts/mkdocs_populate_latest.py
python scripts/mkdocs_config_merger.py -c mkdocs.yml
python scripts/050_mkdocs_populate_latest.py -c mkdocs.yml
python scripts/100_mkdocs_config_merger.py -c mkdocs.yml
mkdocs build --clean --config-file mkdocs.yml --verbose --strict
env:
MKDOCS_ENABLE_PLUGIN_GIT_AUTHORS: true
Expand All @@ -77,7 +77,7 @@ jobs:
uses: actions/configure-pages@v3

- name: Upload artifact
uses: actions/upload-pages-artifact@v1
uses: actions/upload-pages-artifact@v2
with:
# Upload entire repository
path: "build/mkdocs/site"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/links_checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ jobs:
- name: Build static website
run: |
python scripts/mkdocs_populate_latest.py
python scripts/mkdocs_config_merger.py -c mkdocs.yml
python scripts/050_mkdocs_populate_latest.py
python scripts/100_mkdocs_config_merger.py -c mkdocs.yml
mkdocs build --clean --config-file mkdocs.yml --quiet --strict
env:
MKDOCS_ENABLE_PLUGIN_RSS: true
Expand Down
11 changes: 3 additions & 8 deletions .github/workflows/pr_checker_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,18 +69,13 @@ jobs:
MKDOCS_SITE_NAME: "Geotribu PREVIEW - PR ${{ github.event.pull_request.number }}"
MKDOCS_SITE_COPYRIGHT: '<a href="https://www.netlify.com/"><img alt="Deploys by Netlify" src="https://www.netlify.com/img/global/badges/netlify-color-accent.svg" style="float: right;"></a>'
run: |
echo $PR_NUMBER
echo $GITHUB_HEAD_REF
echo $MKDOCS_EDIT_URI
echo $MKDOCS_SITE_NAME
# store custom env vars that need resolution
export MKDOCS_EDIT_URI="edit/${GITHUB_HEAD_REF}/content"
echo $MKDOCS_EDIT_URI
MKDOCS_SITE_URL="https://${NETLIFY_SITE_PREFIX}--${NETLIFY_SITE_NAME}.netlify.app/"
export MKDOCS_SITE_URL="https://${NETLIFY_SITE_PREFIX}--${NETLIFY_SITE_NAME}.netlify.app/"
# merge different configs
python scripts/mkdocs_populate_latest.py
python scripts/mkdocs_config_merger.py -c ${{ env.MKDOCS_CONFIG_FILENAME }}
python scripts/050_mkdocs_populate_latest.py -c ${{ env.MKDOCS_CONFIG_FILENAME }}
python scripts/100_mkdocs_config_merger.py -c ${{ env.MKDOCS_CONFIG_FILENAME }}
# build
mkdocs build --config-file ${{ env.MKDOCS_CONFIG_FILENAME }} --strict
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -228,3 +228,4 @@ authors.json
md_linter_report.txt
config/extra_latest.yml
linkchecker_report.html
!content/theme/assets/images/geotribu/background_geotribu.png
8 changes: 4 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,20 @@ repos:
args: [--markdown-linebreak-ext=md]

- repo: https://github.com/asottile/pyupgrade
rev: v3.8.0
rev: v3.10.1
hooks:
- id: pyupgrade
args:
- "--py38-plus"

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.0.276"
rev: "v0.0.281"
hooks:
- id: ruff
args: ["--fix-only"]

- repo: https://github.com/psf/black
rev: 23.3.0
rev: 23.7.0
hooks:
- id: black

Expand All @@ -43,7 +43,7 @@ repos:
args: ["--profile", "black", "--filter-files"]

- repo: https://github.com/pycqa/flake8
rev: 6.0.0
rev: 6.1.0
hooks:
- id: flake8
language: python
Expand Down
7 changes: 5 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"editor.guides.bracketPairs": "active",
"files.associations": {
"./requirements*.txt": "pip-requirements",
".linkcheckrrc": "ini"
".linkcheckrrc": "ini",
"*.html": "jinja"
},
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
Expand All @@ -31,6 +32,8 @@
"!ENV sequence",
"tag:yaml.org,2002:python/name:materialx.emoji.to_svg",
"tag:yaml.org,2002:python/name:materialx.emoji.twemoji",
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format"
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format",
"tag:yaml.org,2002:python/name:material.plugins.tags.plugin.casefold",
"tag:yaml.org,2002:python/name:material.plugins.tags.page_url"
],
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Sources et contenus du site de Geotribu, accessible via les URLs suivantes :

- <https://static.geotribu.fr>
- <https://geotribu.fr>
- <http://geotribu.fr>
- <http://geotribu.net>

Expand Down
2 changes: 1 addition & 1 deletion config/extra_social.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
social:
- icon: "fontawesome/solid/rss"
link: "https://static.geotribu.fr/feed_rss_created.xml"
link: "https://geotribu.fr/feed_rss_created.xml"
name: "S'abonner aux nouveaux contenus via RSS"
- icon: "fontawesome/brands/github-alt"
link: "https://github.com/geotribu/"
Expand Down
2 changes: 1 addition & 1 deletion config/plugins_redirections.yml
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ redirects:
rdp/2010/rdp_2010-10-14.md: rdp/2010/rdp_2010-10-15.md
rdp/2015/rdp_2015-04-07.md: rdp/2015/rdp_2015-04-10.md
rdp/rdp_2020-04-30.md: rdp/2020/rdp_2020-04-30.md
# rss.md: https://static.geotribu.fr/feed_rss_created.xml
# rss.md: https://geotribu.fr/feed_rss_created.xml

# migration des contenus en 2022
articles/2008/art_2008-11-03.md: articles/2008/2008-11-03_premiers-pas-dans-la-cour-des-grands.md
Expand Down
2 changes: 1 addition & 1 deletion content/CNAME
Original file line number Diff line number Diff line change
@@ -1 +1 @@
static.geotribu.fr
geotribu.fr
2 changes: 1 addition & 1 deletion content/articles/2014/2014-03-07_dans_le_geotipi.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Nous aurions aimé vous dire que nous sommes une [équipe](/team/contributors/)

En plus de l'aspect humain, nous discutons également au préalable sur notre mailing list des thématiques qui seront abordées. Cela a d'ailleurs donné lieu à des discussions enflammées. C'est d'ailleurs de là que vient l'origine de ce billet et surtout de la super image que Jérémie nous a créée pour l'occasion !

[![Réunion d'équipe](https://cdn.geotribu.fr/img/articles-blog-rdp/capture-ecran/g3022.png "Réunion d'équipe"){: .img-center loading=lazy }](https://static.geotribu.fr/team/contributors/)
[![Réunion d'équipe](https://cdn.geotribu.fr/img/articles-blog-rdp/capture-ecran/g3022.png "Réunion d'équipe"){: .img-center loading=lazy }](https://geotribu.fr/team/contributors/)

Notre implication quotidienne nous forge une expérience riche d'enseignement ! Pendant ce temps, Geotribu grandit et désormais un travail de management d'équipe est nécessaire !

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Je vous présente donc PyQGIS Icons Cheatsheet :

## Un site tout totomatique

En soi, le site n'est pas bien différent de la page que j'avais publiée ici suite à mon deuxième article ([voir dans Web Archive](https://web.archive.org/web/20211024083001/https://static.geotribu.fr/toc_nav_ignored/qgis_resources_preview_table/)), sinon que les icônes sont à jour par rapport à celles présentes réellement dans QGIS.
En soi, le site n'est pas bien différent de la page que j'avais publiée ici suite à mon deuxième article ([voir dans Web Archive](https://web.archive.org/web/20211024083001/https://geotribu.fr/toc_nav_ignored/qgis_resources_preview_table/)), sinon que les icônes sont à jour par rapport à celles présentes réellement dans QGIS.

C'est sous le capot que les choses ont changé : tout est automatisé via [un workflow GitHub](https://github.com/geotribu/pyqgis-icons-cheatsheet/blob/main/.github/workflows/deploy.yml), programmé pour s'exécuter tous les mois, déroulant alors le scénario suivant :

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Voilà 3 ans que Geotribu est de retour après une [coupure de service de... 3 a

3 ans que ce nouveau site est en place.
3 ans à en améliorer l'ergonomie, les fonctionnalités et surtout à réintégrer et nettoyer les anciens contenus.
3 ans qu'il est accessible sur <https://static.geotribu.fr>
3 ans qu'il est accessible sur <https://geotribu.fr>

Il est temps de rebasculer le site sur l'adresse principale.

Expand All @@ -48,8 +48,8 @@ flowchart TB
C(http://geotribu.fr) -->|https| U
D(http://www.geotribu.net) -->|https| E
E(https://www.geotribu.net) -->|Redirection DNS| U
F(http://static.geotribu.fr) -->|https| G
G(https://static.geotribu.fr) -->|Redirection DNS| U
F(http://geotribu.fr) -->|https| G
G(https://geotribu.fr) -->|Redirection DNS| U
U{"https://geotribu.fr/ <br /> (Apex)"}
```

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
title: Obtenir la version de PROJ installée en Python
subtitle: "EPSG:9.2.1"
icon: material/spotlight
authors:
- Julien MOURA
categories:
- article
date: 2023-07-25 10:20
description: "Mémo technique : comment récupérer la version de PROJ installée depuis un script Python, avec GDAL, PyProj ou le binaire proj."
image:
license: beerware
robots: index, follow
tags:
- expression régulière
- PROJ
- Python
---

# Python : obtenir la version de PROJ installée

:calendar: Date de publication initiale : 25 juillet 2023

![icône projection](https://cdn.geotribu.fr/img/logos-icones/divers/projection.png){: .img-rdp-news-thumb }

En butant sur un souci de reconnaissance de SRS lié aux [choix éclairés de l'IGN en matière de registre spécifique](https://twitter.com/EvenRouault/status/1437818895604269059), j'ai eu besoin de vérifier la version de PROJ installée de façon à pouvoir adapter le comportement du script.
Formulé comme ça, mon candide moi s'est dit :

> allez zou, un coup de `proj --version` ou `-V` dans un subprocess et on n'en parle plus !
C'est alors que mon surmoi de galérien a pris le dessus !

Je me note donc ça ici, histoire de pas oublier et que ça puisse resservir.

[Commenter cet article :fontawesome-solid-comments:](#__comments){: .md-button }
{: align=middle }

## Avec pyproj

![logo PyProj](https://cdn.geotribu.fr/img/logos-icones/logiciels_librairies/pyproj.png){: .img-rdp-news-thumb }

Si pyproj est installé :

```sh
pip install pyproj
```

Alors tout est presque trop facile :

```python
import pyproj

print(pyproj.__proj_version__)
```

## Avec les bindings GDAL

![logo GDAL](https://cdn.geotribu.fr/img/logos-icones/logiciels_librairies/gdal.png){: .img-rdp-news-thumb }

Si GDAL est installée, ainsi que ses bindings Python :

```sh
pip install gdal
```

Alors on peut utiliser le package `osr` (dédié à l'abstraction sur les systèmes de coordonnées) :

```python
from osgeo import osr

print(
f"{osr.GetPROJVersionMajor()}."
f"{osr.GetPROJVersionMinor()}."
f"{osr.GetPROJVersionMicro()}"
)
```

## Avec le binaire proj et une regex

![logo PROJ](https://cdn.geotribu.fr/img/logos-icones/logiciels_librairies/proj.png){: .img-rdp-news-thumb }

Mais si on ne peut compter sur aucune des couches d'abstraction précédentes, alors ça se corse. Il faut appeler l'exécutable de proj et se débrouiller avec la sortie par défaut puisqu'il n'y a pas d'option `--version` :

```sh
> proj
Rel. 8.2.1, January 1st, 2022
usage: proj [-bdeEfiIlmorsStTvVwW [args]] [+opt[=arg] ...] [file ...]
```
Et qu'est ce qu'on fait quand on a doit chercher une structure de texte dans un texte non formaté ? eh bien on ~~se débat~~ s'exprime à la régulière. Joie.
```python
import re
import subprocess
proj_output = check_output(["proj"], stderr=STDOUT, text=True)
version_match = re.search(r"Rel\. ([0-9.]+)", proj_output):
if version_match:
print(version_match.group(1))
```
## Mais ça, c'était aujourd'hui
![logo open source](https://cdn.geotribu.fr/img/logos-icones/opensource.png){: .img-rdp-news-thumb }
En tout cas, ça valait le coup de demander autour de moi et auprès de mes collègues puisque Loïc Bartoletti a proposé d'intégrer l'option `--version` à proj ! C'est dans cette [Pull Request](https://github.com/OSGeo/PROJ/pull/3836) que ça se passe et on y apprend plein de choses :
- que certains des [utilitaires packagés avec proj](https://proj.org/en/9.2/apps/index.html) disposent eux d'une option `--version` : `cct --version` et `gie --version`. Il y a donc une incohérence entre les différents CLI qu'il fait bon de mettre en lumière et résoudre.
- que la [demande ne date pas d'hier](https://github.com/OSGeo/PROJ/issues/2640) (mais qu'un malheureux bot avait occulté)
- que j'aurais pu creuser davantage quand j'ai regardé [comment pyproj se débrouille pour déterminer la version de PROJ](https://github.com/pyproj4/pyproj/blob/1452ba404be58c14a6b64d4551c320022f5aafcf/setup.py#L33-L53)
Et surtout que l'open source communautaire, c'est fichtrement vertueux !
----
## Auteur {: data-search-exclude }
--8<-- "content/team/jmou.md"
{% include "licenses/beerware.md" %}
1 change: 1 addition & 0 deletions content/rdp/2014/rdp_2014-03-21.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ categories:
- revue de presse
date: 2014-03-21
description: "Revue de presse du 21 mars 2014"
image: https://cdn.geotribu.fr/img/articles-blog-rdp/capture-ecran/dessine-toulouse.png
tags:
- 3D
- IGN
Expand Down
2 changes: 1 addition & 1 deletion content/rdp/2020/rdp_2020-09-04.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Pour le reste, on vous laisse avec la carte proposée sur TF1 car nous ne saurio

- on a publié un article sur notre [brève histoire](/articles/2020/2020-08-31_geotribu_histoire/)
- on a ajouté la possibilité [d'intégrer des schémas dans les articles via la syntaxe MermaidJS]({{ config.extra.url_contribuer }}guides/diagrams/)
- les flux RSS ont été améliorés (prise en charge des images d'illustration) et des [boutons de suivi sur Feedly](https://feedly.com/i/subscription/feed%2Fhttps%3A%2F%2Fstatic.geotribu.fr%2Ffeed_rss_created.xml) ont été ajoutés
- les flux RSS ont été améliorés (prise en charge des images d'illustration) et des [boutons de suivi sur Feedly](https://feedly.com/i/subscription/feed%2Fhttps%3A%2F%2Fgeotribu.fr%2Ffeed_rss_created.xml) ont été ajoutés

----

Expand Down
2 changes: 1 addition & 1 deletion content/rdp/2020/rdp_2020-10-30.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ A noter que si vous devez régulièrement naviguer dans l'hétérogénéité des

![icône rdp](https://cdn.geotribu.fr/img/internal/icons-rdp-news/pointillisme.png "globe pointillisme"){: .img-rdp-news-thumb }

[MapShaper](https://mapshaper.org/) est un outil développé par Matthew Bloch, data-journaliste au New York Times. On en a parlé [à plusieurs reprises il y a quelques années](https://www.google.com/search?q=site%3Astatic.geotribu.fr+mapshaper) ici, notamment car l'application web prenait le relai de Kartograph ou d'autres applications web permettant des manipulations plus ou moins basiques de données spatiales à partir d'un simple glisser/déposer.
[MapShaper](https://mapshaper.org/) est un outil développé par Matthew Bloch, data-journaliste au New York Times. On en a parlé [à plusieurs reprises il y a quelques années](https://www.google.com/search?q=site%3Ageotribu.fr+mapshaper) ici, notamment car l'application web prenait le relai de Kartograph ou d'autres applications web permettant des manipulations plus ou moins basiques de données spatiales à partir d'un simple glisser/déposer.

Récemment, j'y ai eu recours et envisageait un petit tutoriel pour l'installer, le prendre en main et aller assez loin. Mais je n'ai pas eu besoin de me donner cette peine, Éric Mauvière a pris le soin de le faire dans [un article joliment détaillé comme il faut](https://www.icem7.fr/outils/mapshaper-visualiser-et-affiner-des-fonds-de-carte-en-ligne/).

Expand Down
2 changes: 1 addition & 1 deletion content/rdp/2021/rdp_2021-04-09.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Bonne lecture.

- :regional_indicator_q: Publication de [QTribu notre plugin pour QGIS](/articles/2021/2021-04-01_qtribu_plugin_qgis_geotribu/) qui permet de consulter le site directement depuis QGIS, mais surtout de donner des exemples concrets à nos tutoriels sur QGIS.
- :material-comment-check: Remplacement de Disqus par [Isso](https://posativ.org/isso/) pour la gestion des commentaires. Désormais, c'est de l'auto-hébergé : plus de tracking ni de publicités, juste de quoi commenter. En prime, on a même récupéré les commentaires laissés auparavant.
- :fishing_pole_and_fish: Pour le premier avril, le site a bénéficié d'un relooking à la mode des années 80s, grâce au travail de [Lukas Ramage](https://gitlab.com/lramage/mkdocs-bootstrap386), lui-même basé sur le thème Bootstrap [BOOTSTRA.386 de Chris Mckenzie](https://kristopolous.github.io/BOOTSTRA.386/). Si vous voulez revivre cette expérience, [c'est par ici sur la Internet Wayback Machine](https://web.archive.org/web/20210401/https://static.geotribu.fr/).
- :fishing_pole_and_fish: Pour le premier avril, le site a bénéficié d'un relooking à la mode des années 80s, grâce au travail de [Lukas Ramage](https://gitlab.com/lramage/mkdocs-bootstrap386), lui-même basé sur le thème Bootstrap [BOOTSTRA.386 de Chris Mckenzie](https://kristopolous.github.io/BOOTSTRA.386/). Si vous voulez revivre cette expérience, [c'est par ici sur la Internet Wayback Machine](https://web.archive.org/web/20210401/https://geotribu.fr/).
- :bus: Article sur la [représentation d'un réseau de bus](/articles/2021/2021-04-07_carte_reseau_bus/) à l'aide de PostGIS et QGIS.

![Geotribu 386](https://cdn.geotribu.fr/img/tuto/static_web/geotribu_theme_i386_poisson_avril_2021.png "Poisson d'avril 2021 - Geotribu en mode 386"){: .img-center loading=lazy }
Expand Down
Loading

0 comments on commit b8bd965

Please sign in to comment.