[FOSSGIS-Talk] QGIS: eindeutige Werte in einer Spalte als jeweils eigene Spalte erzeugen
Thomas B
rdbath.regiodata at gmail.com
Do Mär 23 16:02:39 CET 2023
Hallo Günter,
mit automatischem Berechnen der Flächen sind es eine Handvoll mehr
Zeilen... siehe Update unter
https://gist.github.com/thbaumann/234ada8deda059b4dd88d91e829ebb3b
Ich hab auch noch eine Variable 'anzahl_spaltenzeichen' eingebaut, damit
man festlegen kann, wie viele Buchstaben lang die erzeugten Spaltennamen
sein sollen.
Von der Grundidee her:
# in einer Schleife durch alle Features gehen... :
anzahl_spaltenzeichen= 8 (max Anzahl an Zeichen für die
Spaltenueberschrift)
request = QgsFeatureRequest()
with edit(vectorLayer): # Layer editieren... der Layer sollte dazu nicht
schon im Editiermodus sein
for feature in vectorLayer.getFeatures(request): #schleife
relevantes_feld= feature[spaltenname] #aktueller inhalt der
spalte mit eindeutigen werten bsp Wert ax_wald in Spalte name (siehe
Screenshot)
feature[relevantes_feld[0:anzahl_spaltenzeichen]]
=feature.geometry().area() # bsp: spalte (im Bsp. ax_wald) fuellen mit
ermittelter flaeche
vectorLayer.updateFeature(feature) #feature updaten
[image: grafik.png]
VG
Thomas
Am Mi., 22. März 2023 um 16:53 Uhr schrieb G. Wagner, Wagner-IT <
info at wagner-it.de>:
> Hallo Thomas,
>
>
>
> super – funktioniert einwandfrei.
>
>
>
> Wenn ich jetzt noch die Flächenberechnung mit in das Script hineinbekomme
> ist es perfekt.
>
> (ich muss mich wohl doch endlich mal wieder mit Python beschäftigen)
>
>
>
> Vielen Dank und Grüße
>
>
>
> Günter
>
>
>
>
>
> *Von:* Thomas B <rdbath.regiodata at gmail.com>
> *Gesendet:* Mittwoch, 22. März 2023 15:47
> *An:* G. Wagner, Wagner-IT <info at wagner-it.de>
> *Cc:* Bernd Vogelgesang <bernd.vogelgesang at gmx.de>;
> fossgis-talk-liste at fossgis.de
> *Betreff:* Re: [FOSSGIS-Talk] QGIS: eindeutige Werte in einer Spalte als
> jeweils eigene Spalte erzeugen
>
>
>
> Hallo Günter,
>
> ein bestehendes Werkzeug, was das macht, ist mir auf Anhieb nicht bekannt.
>
> Ein auf die Schnelle zusammengestelltes Code-Schnipsel, was das in QGIS
> macht, ist mit ca. 20 Zeilen Code relativ überschaubar:
>
> https://gist.github.com/thbaumann/234ada8deda059b4dd88d91e829ebb3b
>
> Kannst es ja (auf einen Testdatensatz !) mal loslassen in der
> Python-Console(bzw. dem mehrzeiligen Editor in der Console).
>
> Die eigentliche Arbeit beginnt, wenn man es dann generischer bauen will
> (dynamische Auswahl der Datentypen der zu erzeugenden Spalten, Abfangen
> aller möglicher Fehler, in die ein breiterer Nutzerkreis als man selbst
> dann reinläuft... etc.
>
> Ein Kürzen zu langer Spaltennamen bzw. Ersetzen von Umlauten in zu
> erzeugenden Spaltennamen etc. ist auch noch nicht drin aber auch nicht
> weiter wild.
>
>
>
> VG
>
> Thomas
>
>
>
>
>
>
>
> Am Mi., 22. März 2023 um 15:31 Uhr schrieb G. Wagner, Wagner-IT <
> info at wagner-it.de>:
>
> Hallo Bernd,
>
> gerne:
> Ich habe z.Bsp. Flurstücksteile mit verschiedenen Nutzungsarten in einer
> Textspalte "nutzung". Das können 20.000 Datensätze sein, wobei es
> vielleicht 40 eindeutige Werte sind.
> (z.Bsp. Friedhof, Gehölz, Halde, Weg, ...).
> Nun soll für jede Nutzungsart eine eigene Spalte im Layer angelegt werden,
> also die Spalten "Friedhof", "Gehölz", ... In diese Spalten sollen dann
> die entsprechende Flächenangaben ($area).
> Ziel ist, als Ergebnis eine Datenzeile pro Flurstück (nach Aggregieren
> über Flurstückskennzeichen) zu erhalten, in der dann die einzelnen
> Nutzungsarten mit deren Fläche aufgeführt werden (das soll dann ins Excel
> übernommen werden).
>
> Wenn die ausgeschriebenen, z.T. relativ langen Namen der Nutzungsarten wie
> "Gebäude- und Freifläche Entsorgungsanlage, Abwasserbeseitigung" ein
> Problem sind, so könnte das auch kürzer über die entsprechende ALKIS-Werte
> wie " 41002:2611" erfolgen (setzt sich aus Nutzung und Funktion zusammen,
> daher der ":").
>
> Ich hoffe jetzt ist es klarer.
>
> Gruß
> Günter
>
>
> -----Ursprüngliche Nachricht-----
> Von: Bernd Vogelgesang <bernd.vogelgesang at gmx.de>
> Gesendet: Mittwoch, 22. März 2023 14:54
> An: G. Wagner, Wagner-IT <info at wagner-it.de>;
> fossgis-talk-liste at fossgis.de
> Betreff: Re: [FOSSGIS-Talk] QGIS: eindeutige Werte in einer Spalte als
> jeweils eigene Spalte erzeugen
>
> Hi Günter,
>
> kannst Du mal einen Beispieldatensatz posten, damit ich mir was drunter
> vorstellen kann?
>
> Am 22.03.23 um 12:27 schrieb G. Wagner, Wagner-IT:
> > Hallo zusammen,
> >
> > es gibt in QGIS ja unzählige Funktionen für unzählige Anwendungsfälle.
> Vielleicht auch hierfür:
> >
> > In einer Spalte stehen verschiedene Werte (z.Bsp. differenzierte
> Nutzungsarten). Nun würde ich gerne für jede vorhandene Nutzungsart eine
> eigene Spalte anlegen, um z.Bsp. darin die Fläche zu berechnen.
> >
> > Gibt es dazu etwas, bzw. hat jemand eine Idee Wie ich eine eigene
> > Spalte pro Wert anlegen kann, bzw. den Wert abfragen kann, ist mir
> > bekannt, nur vielleicht geht das Anlegen der Spalten auch automatisch
> > (so im weitesten Sinne ein Gegenpart zur Aggregat-Funktion)
> >
> > Danke und Grüße
> >
> > Günter
> >
>
>
> --
> ....................................................................
> FOSSGIS-Konferenz 2023 mit OpenStreetMap-Event in Berlin!
> 15.-18. März 2023 an der Humboldt-Universität
> https://www.fossgis-konferenz.de - https://twitter.com/FOSSGIS_Konf
>
> FOSSGIS Vereinstermine:
> https://fossgis.de/aktivit%C3%A4ten/termine/
>
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
> GIS-Bereich und Freier Geodaten!
> https://www.fossgis.de/ https://mastodon.online/@FOSSGISeV
> https://twitter.com/FOSSGIS_Verein
> ____________________________________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>
>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : grafik.png
Dateityp : image/png
Dateigröße : 162554 bytes
Beschreibung: nicht verfügbar
URL : <http://lists.fossgis.de/pipermail/fossgis-talk-liste/attachments/20230323/bec4a95c/attachment.png>
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste