Last active
March 18, 2022 18:24
-
-
Save Korto19/c36928a06f1d01f1eda8ee45378a2790 to your computer and use it in GitHub Desktop.
A QGIS Console script for list to csv Field Calc Groups, number of function for group and group / function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Korto19 2022 | |
# Script da console | |
# Lista su un csv dei gruppi e delle funzioni del field calc | |
# Stampa in console gruppo e n espressioni contenute | |
# File csv risultante: impostare nome e percorso,con permesso di scrittura, alla riga 31 | |
# Korto19 2022 | |
from qgis.core import QgsExpression | |
import csv | |
#creo due dizionari | |
gruppi_funzioni = {} | |
gruppi = {} | |
#popolo il primo con le coppie funzione, gruppo ed il secondo con gruppo e contatore | |
for i in range(0, len(QgsExpression.Functions())): | |
gruppi[QgsExpression.Functions()[i].group()] = 0 | |
gruppi_funzioni[QgsExpression.Functions()[i].name()] = QgsExpression.Functions()[i].group() | |
#uso il secondo gruppo per classificare il primo e conto | |
for key, value in gruppi_funzioni.items(): | |
gruppi[value] = gruppi[value] + 1 | |
#riordino per gruppo | |
ordered = {k: v for k, v in sorted(gruppi_funzioni.items(), key=lambda item: item[1])} | |
#riordino nei gruppi | |
gruppi_ordered = {k: v for k, v in sorted(gruppi.items())} | |
#apro un file csv, nome file e directory da inserire!! | |
f = open('C:/gruppi_espressioni.csv', 'w', newline='') | |
writer = csv.writer(f) | |
#intestazioni parte gruppi / n espressioni | |
data = ["Gruppo", "n_espressioni"] | |
writer.writerow(data) | |
for keys,values in gruppi_ordered.items(): | |
data = [keys, values] | |
writer.writerow(data) | |
print(data) | |
#riga vuota di separazione | |
data = ["", ""] | |
writer.writerow(data) | |
#intestazioni parte gruppo / espressione | |
data = ["Gruppo", "Espressione"] | |
writer.writerow(data) | |
for keys,values in ordered.items(): | |
data = [values, keys] | |
writer.writerow(data) | |
#chiudo il file | |
f.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment