Tutoriel avancé QGIS et Python (PyQGIS)
- Détails
- 87291
Mots-clefs : interopérabilité Python/QGIS, variable, boucle, fonction, condition, liste, argument, chaîne formatée, fonctions géométriques, création de fichiers, génération de cartes, fonctions cartographiques, fonctions standalone, traitement de données cartographiques, workflow, milieu alpin
Enseignant responsable : Georges Hinot
Pré-requis : une bonne connaissance d'un logiciel SIG supportant Python (QGIS ou ArcGIS par exemple) et des problématiques/besoins/enjeux de la géomatique.
Compétences visées : mettre en place un protocole de développement autour d'une problématique géomatique, de la « re-contextualisation du besoin » jusqu'à l'écriture d'un script Python répondant à ce besoin.
Enjeux du cours : rendre les étudiants autonomes dans la création et l'entretien de scripts « automatisants ». Dans ce type de tâche, l’autonomie consiste à savoir interpréter un besoin humain, ré-interpréter ses propres problématiques de programmation et à écrire/chercher/modifier les blocs de code nécessaires.
Programme pédagogique : initiation aux fondamentaux du langage puis mise en situation (générer des cartes à partir de données géographiques). En plus de la simple automatisation des cartographies, le cours nous donnera l'occasion, toujours en Python, d'utiliser des API, de traiter des données et de mettre en place des modes d'affichages customisés sur QGIS. Selon l'avancée du cours, nous pourrons aussi aborder le mode « standalone » permis par le duo QGIS-Python, la création de plugins QGIS et les possibilités de webmapping/analyse/ingénierie de données permises par Python.
Python et l'API Wikipedia
- Détails
- 3587
Récemment j'ai voulu ré-utilisé l'API Wikipedia avec Python. Mais celle-ci avait tellement évoluée, que ce soit l'API ou l'organisation de la BDD Wikipedia, que mon projet était envahi d'erreurs, que ce soit sur la pertinence des résultats, du fait de DisambiguationError
ou d'autres exceptions.PageError
...
J'ai donc décidé de revoir complètement ma façon d'utiliser l'API Wikipedia, ci-dessous un petit retour d'expérience.
Ce n'est pas parfait, mais ça permet de maximiser le retour de résultats, de vérifier leur pertinence, de les mettre en forme et d'éviter un certain nombre de messages d'erreur. Et surtout, ça donne une base solide sur laquelle améliorer encore sa façon d'utiliser l'API.
Les versions utilisées sont Python 3.9 et Wikipedia 1.4.
Et pour les plus pressés, le code complet est sur GitHub !
Data management with Python, Pandas, Geopandas, Sqlachemy, Matplotlib and Openpyxl
- Détails
- 77576
Pandas is an excellent Python librarie to manage data. Matplotlib allows to create advanced charts and Openpyxl is very usefull to read/write Excel files. These 3 tools, combined with other classic Python features, allow to do data analysis and engineering.
First install or check Python and Pip, then the 3 libraries:
pip install pandas pip install matplotlib pip install openpyxl
Data management with Python, Pandas, Geopandas, Sqlachemy, Matplotlib and Openpyxl
Acymailing, mass sending et bonnes pratiques
- Détails
- 72389
Acymailing est une extension Joomla permettant de mettre en place des outils newsletter du plus simple au plus puissant (filtres, vitesses d'envoi, tracking, stats, relai SMTP...). Ce système open-source existe en version gratuite (déjà très performante) ou payante (très abordable). L'extension peut bien sûr être overridée.
Cependant son développement régulier rend l'utilisation des overrides plus lourd que la modification directe du code source. En effet dans certains contextes (multi-utilisateurs, multi-bases, flotte d'outils...), les overrides risquent d'être complexes à maintenir dans le temps.
C'est en tout cas mon impression en utilisation intensive d'Acy. Certaines MAJ peuvent toucher les fichiers originaux et ne pas être prises en compte dans vos overrides... Mieux vaut donc connaître un minimum le code de l'extension et avoir quelques repères.
Ici quelques notes personnelles me permettant de maintenir facilement mes outils. Rappellons l'ancien forum encore en ligne d'où proviennent certaines de ces astuces (le support a évolué vers un système plus personnalisé).
Cet article est principalement destiné aux joomlistes avancés souhaitant personnaliser ou optimiser leurs applications newsletter.
Le paragraphe Quelques liens s'adresse généralement à tous webworkers digitaux (marketeurs, intégrateurs, graphistes...).
Le paragraphe Relai SMTP évoque le relai Elastic Email en contexte de mass sending.
Et non, je ne travaille pas pour eux.
Astuces PHP sur le CCK Fabrik
- Détails
- 276739
Fabrik est une (excellente) extension gratuite et open-source disponible sur Joomla, et permettant de construire des applications de bases de données. Un article présentant globalement le CCK Fabrik est déjà disponible sur ce site.
L'article ci-dessous est plus détaillé, et regroupe une série de pratiques courantes ou avancées, mais peu documentées en français. L'article reprend aussi des fonctionnalités PHP classiques mais ici adaptées à l'API Joomla.
Bien sûr cette page n'a rien d'exhaustif, et ne pourrait exister sans le forum Fabrik. Merci encore à toute l'équipe Fabrik et au projet Joomla. Et non, je ne travaille pas pour eux.
Migration d'un site Joomla avec Python
- Détails
- 538
J'ai régulièrement besoin d'organiser le transfert des données de sites Joomla vers une copie de ces sites, pour plusieurs raisons (nettoyage, mise-à-jour, sauvegardes spécifiques, évolutions...).
Là-dessus, vous allez me dire : beh euuuh, tu connais pas Akeeba ? Si si, je connais, et je valide. J'utilise AkeebaBackup sur tous mes sites Joomjoom, à des fins de sauvegardes. Mais ça ne correspond pas à tous mes besoins. Soit trop lourd, soit trop spécifique, soit trop long...
Imaginez par exemple que vous souhaitiez préparer la nouvelle version d'un site - en modifiant des menus, modules, catégories, etc - tout en y insérant les données du site en production😎Pas simple hein ? Maintenir la cohérence des données tout en travaillant sur les évolutions est un vrai défi, et Akeeba ne fait plus du tout l'taf.
Il s'agit donc de transférer les données cœur de Joomla : articles, catégories, tags, utilisateurs, groupes, droit d'accès, etc - comprenant également certaines tables, lignes ou valeurs spécifiques : id super-utilisateur, #_assets, #_ucm, #_workflows, etc - sans toucher aux données structurelles de Joomla. Ce qui peut être un sacré bazar, car Joomjoom a parfois ses raisons que l'amour irradie... ou ignore... ou... bref🥴
De plus, dans certains cas, ce n'est pas seulement les données cœur que je souhaite transférer, mais aussi certaines tables métiers, créées à côté de Joomla (avec Fabrik par exemple).
Dans d'autres cas, j'ai besoin de le faire régulièrement, parfois même très, très, très régulièrement😥: pour tester des templates, des mises-à-jour suspectes, des triggers SQL... Avec donc le besoin d'être rapide et depouvoir vidanger le site de destination à chaque opération.
Page 1 sur 6