Pandas logoPandas 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 to use MySQL and Postgres, allow to do data analysis and engineering.

Here we will use PyCharm (Community Edition), but it is not mandatory.

First install or check Python and Pip, then the 3 libraries:

pip install pandas
pip install matplotlib
pip install openpyxl

 

Sous Windows, pour utiliser efficacement psql, shp2pgsql, pgsql2shp, ogr2ogr... Et après avoir installé QGIS (car il embarque GDAL/OGR et PROJ), et/ou MySQL, et/ou Postgres, il faudra sans doute préciser quelques variables d'environnement.

Ceci pour que Windows, et vous, puissiez accéder à ces outils en ligne de commande. Lignes de commande que vous pourrez ensuite inclure dans votre langage de programmation préféré (Python, PHP, Java...), permettant donc des combos très puissants.

À savoir 🙂

  • Préférez l'installation classique de QGIS (à l'architecture plus claire il me semble), et non pas l'installateur réseau OSGeo4W (à l'architecture plus complexe). De plus les versions QGIS 3.28.X me semblent avoir une architecture plus simple à comprendre pour identifier les différentes librairies (par rapport aux versions 3.34.X par exemple).
  • Plusieurs versions de Python, Pip et QGIS peuvent co-exister sur votre machine (et co-existeront probablement, lol).
  • Selon les versions de QGIS, les chemins peuvent avoir changé, c'est à vous de les identifier avant de les utiliser dans les variables d'environnement. Les exemples ci-dessous s'inspirent de QGIS 3.28.13 sur Windows 11.
  • Plus bas dans cet article, un script Python peut vous aider à identifier les chemins des librairies et à vérifier leurs bons ajouts dans vos variables d'environnement.
  • Très généralement, Pip est déjà embarqué dans le Python de QGIS (et donc déjà disponible depuis le shell d'OSGeo, mais pas nativement depuis celui de Windows).
  • Pour une modification soit prise en compte, il faudra fermer toutes les fenêtes qui vous ont permis d'accéder aux variables d'environnement. Il faudra aussi relancer le shell Windows (l'invite de commandes), afin de prendre en compte certaines modifications des variables d'environnement.
  • Si vous avez déjà installé Postgres, il est possible que certaines variables liées à GDAL/OGR et PROJ aient déjà été créées, mais nous allons ici préférer les versions de QGIS, plus claires, modifiez donc les éventuelles variables existantes.
  • On ne touchera ici qu'aux variables système.

Some PyQGIS tips, from the most common to the most practical, to learn or optimize your use of QGIS with Python.

 

Some links:


Open layers

Open some shapes

# Main path
myPath = r'C:\\Users\\Georges\\Downloads\\'
 
project = QgsProject.instance()
project.removeAllMapLayers()
project.clear()
iface.mapCanvas().refresh()
 
# Path of layers
peaks = QgsVectorLayer(myPath + 'peaks_selection/peaks_selection.shp', 'Sommets', 'ogr')
glaciers = QgsVectorLayer(myPath + 'glaciers/glaciers.shp', 'Glaciers', 'ogr')
eau = QgsVectorLayer(myPath + 'eau/eau.shp', 'Fleuves', 'ogr')
troncons_routes = QgsVectorLayer(myPath + 'troncons_routes/troncons_routes.shp', 'Grandes routes', 'ogr')
iris = QgsVectorLayer(myPath + 'iris/iris.shp', 'IRIS', 'ogr')
 
# Open layers
project.addMapLayer(peaks)
project.addMapLayer(glaciers)
project.addMapLayer(eau)
project.addMapLayer(troncons_routes)
project.addMapLayer(iris)
 
iface.mapCanvas().refresh()

MS Excel/Access is enought supported, so I would list only specific cases which took me more than 1 minute to solve.


Excel

Find "?"

~?

AltGr+2é x2 then delete

Find \n

Ctrl+J

Convert french date to SQL date

IF the excel date is in true date (align to the right): 

=CONCAT(TEXTE(C2;"aaaa-mm-jj");" 00:00:00")

 


Access

Get the first letter from each word in upper case in a query (Title Case)

Get the first letter from each word in upper case and the remaining in lower case is easy with Excel (=PROPER), but with Access I searched for a long time ...

StrConv([field],3)
TitleCase:UCASE(LEFT([country];1))&LCASE(RIGHT([country];LEN([country])-1))

 

Les permissions

Les permissions des fichiers et dossiers (CHMOD, abréviation de Change Mode) recommandées sur Joomla (ou d'autres applications PHP) dépendent en partie des hébergeurs.

Un même droit est parfois interprêté différemment selon l'hébergeur (déjà vu), une même application requiert parfois différents droits selon l'hébergeur. Certains serveurs vont automatiquement bloquer certains droits sur certains contenus.

Mais quand un site commence à être mature, il subit de moins en moins de modifications structurelles. On peut alors fermer certaines portes - comme on fermerait l'accès au compteur électrique - et mettre en place une politique des moindres privilèges.

La mise en place d'une politique des moindres privilèges doit être suivie de tests et d'une communication fine avec son hébergeur. Il n'y a rien d'exhautif et rien de parfait, n'hésitez pas à modifier progressivement les permissions vers le bas selon vos propres observations. Il s'agit de fermer au maximum, puis de ne ré-ouvrir que le strict nécessaire.

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é).

emc1

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.