Keine Angst vor sperrigen Ausdrücken im QGIS!
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 119 | |
Author | ||
Contributors | ||
License | CC Attribution 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/67605 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
GeometryScale (map)RotationWeb browserDatabaseEnergieInternetdienstCalculatorsService (economics)WordHausdorff spaceFunction (mathematics)KommunikationIntegerDigital signalSphereMathematicsAttribute grammarQuery languageLevel (video gaming)Address spaceSoftwareFreewareLine (geometry)BitSoftware developerWave packetRoundness (object)Text editorConnectivity (graph theory)Field (computer science)Electronic mailing listAuthorizationTelecommunicationComputer configurationFunctional (mathematics)Sparse matrixForestTheory of relativityEvent horizonDigitizingHeegaard splittingOperator (mathematics)CASE <Informatik>AreaLecture/ConferenceComputer animation
05:14
Computer fileSQLXMLVariable (mathematics)RectangleInternetdienstScale (map)RotationEnergieDatabaseAnalytic geometryGeometryWeb browserRotationRectangleDrehwinkelPolygonLevel (video gaming)Film editingAngleFitness functionDirection (geometry)RotationSource codeXMLComputer animation
06:09
SQLXMLComputer fileVariable (mathematics)AngleDegree (graph theory)RectangleVariable (mathematics)DrehwinkelPolygonExpressionAngleCuboidRotationMereologyComputer animation
07:23
Web browserRotationScale (map)Vector graphicsDatabaseInternetdienstAnalytic geometryGeometryVariable (mathematics)SQLComputer fileXMLDrehwinkelRectangleAngleEnergieVersion <Informatik>AlgorithmoutputParameter (computer programming)KanteInequality (mathematics)ExpressionMereologyCuboidGeometryoutputPolygonAreaAngleRectangleGeometryInterface (chemistry)DrehwinkelPerimeterComputer animation
09:33
GeometryDatabaseVector graphicsAlgorithmVersion <Informatik>Regulärer Ausdruck <Textverarbeitung>EnergieInternetdienstoutputVariable (mathematics)RectangleSQLXMLDrehwinkelAngleVariable (mathematics)Line (geometry)Pairwise comparisonExpression
10:24
GeometryEnergieInternetdienstDatabaseVector graphicsMathematicsDrehwinkelSQLXMLComputer fileAngleVariable (mathematics)Analytic geometryParameter (computer programming)LinieAlgorithmLinieFunction (mathematics)Line (geometry)BitXMLComputer animation
11:12
Variable (mathematics)RectangleDrehwinkelWeb browserSQLXMLComputer fileAngleAnalytic geometryGeometryDatabaseExpressionEnergieGeometryMereologyFunctional (mathematics)RectangleQuery languageStreckeComputer animation
11:58
Variable (mathematics)RectangleDrehwinkelSQLComputer fileXMLLine (geometry)AngleLinieStreckeBlock (periodic table)Variable (mathematics)DrehwinkelComputer animation
12:57
GeometryAnalytic geometryVector graphicsDatabaseAngleVariable (mathematics)SQLXMLComputer fileRectangleDegree (graph theory)GeometryKanteGeometryAnglePoint (geometry)DrehwinkelComputer animation
13:39
RectangleE (mathematical constant)Cartesian coordinate systemBlock (periodic table)Heegaard splittingExpressionWell-formed formulaComputer animation
14:45
Computer fileSQLXMLAngleVariable (mathematics)Degree (graph theory)Knowledge-based systemsRectangleDrehwinkelWell-formed formulaHaar measureExpressionWritingText editorCondition numberMultiplication signQuery languageMereologyBitLINUXSQLPersonal digital assistantWINDOWS <Programm>Computer animation
16:39
GeometryAnalytic geometryAlgorithmDatabaseVector graphicsScale (map)RotationLine (geometry)Heegaard splittingNumberText editorLetterpress printingType theoryGreatest elementCondition numberSocial classAttribute grammarObject (grammar)Ende <Graphentheorie>Variable (mathematics)Query languageInterface (chemistry)Computer animation
22:02
DatabaseVector graphicsScale (map)Web browserComputer fileString (computer science)OperatorXMLSQLSocial classGeometryRotationFeldrechnerGreatest elementTable (information)VirtualizationNumberGroup actionText editorView (database)Maxima and minimaCalculationShape (magazine)Field (computer science)BitDoubling the cubeEccentricity (mathematics)ExpressionCASE <Informatik>Regulärer Ausdruck <Textverarbeitung>MathematicsMaximum (disambiguation)FeldrechnerParameter (computer programming)Well-formed formulaComputer animationSource codeXML
25:47
SQLXMLComputer fileParameter (computer programming)Maximum (disambiguation)Query languageRotationScale (map)Vector graphicsDatabaseGroup actionMixed realityDoubling the cubeBitPredicate (grammar)NumberAreaDifferent (Kate Ryan album)ExpressionMaxima and minimaCASE <Informatik>Attribute grammarGreatest elementMaximum (disambiguation)Well-formed formulaRow (database)CladeFiltrationSource codeXMLComputer animation
30:40
Web browserDatabaseVector graphicsScale (map)Term (mathematics)Computer fileKnowledge-based systemsFilter <Informatik>XMLSQLQuery languageParameter (computer programming)Greatest elementRotationComponent-based software engineeringMaximum (disambiguation)Laden <Datenverarbeitung>Gebiet <Mathematik>Selectivity (electronic)Inequality (mathematics)NumberDoubling the cubeGoodness of fitCurveGreatest elementObject (grammar)Computer animationSource codeXML
34:34
Computer fileKnowledge-based systemsInterface (chemistry)Query languageParameter (computer programming)Greatest elementSQLXMLFilter <Informatik>Maximum (disambiguation)BitCASE <Informatik>Group actionNumberSimilarity (geometry)Computer animation
35:19
SQLXMLComputer fileMaximum (disambiguation)Greatest elementFilter <Informatik>Cluster analysisAnalytic geometryUnified threat managementVector graphicsDatabaseInterpolationScale (map)RotationEnergieGebiet <Mathematik>InternetdienstObject (grammar)Game theoryComputer programmingSelectivity (electronic)Computer animation
36:22
String (computer science)SQLComputer fileXMLMaximum (disambiguation)Filter <Informatik>InterpolationSystems analysisAnalytic geometryVector graphicsScale (map)RotationDatabaseLEKTOR <Programmiersprache>EnergieInternetdienstSummierbarkeitElectronic mailing listMultiplication signBitComputer animation
37:22
XMLSQLComputer fileFilter <Informatik>Maximum (disambiguation)EckeRotationScale (map)EnergieVector graphicsDatabaseInternetdienstGeometryString (computer science)TwitterSign (mathematics)NumberElectronic mailing listDoubling the cubeComputer animation
38:55
String (computer science)RotationDatabaseGame theoryMaximum (disambiguation)Filter <Informatik>XMLComputer fileSQLScale (map)Vector graphicsEnergieInternetdienstOrder (biology)Cellular automatonFunctional (mathematics)Social classElectronic mailing listIntegrated development environmentCurveDifferent (Kate Ryan album)Field (computer science)ChainVirtual machineArray data structureBitGame theoryBoundary value problemNumber1 (number)Heegaard splittingQuicksortProgram slicingString (computer science)Function (mathematics)Group actionAttribute grammarGenerating functionListe <Informatik>XMLComputer animation
46:06
XMLComputer fileSQLMaximum (disambiguation)Filter <Informatik>Scale (map)RotationVector graphicsDatabaseAnalytic geometryWeb browserEnergieInternetdienstHeegaard splittingGame controllerQuicksortObject (grammar)Computer animationXML
46:56
SQLXMLComputer fileDrehwinkelWeb browserVariable (mathematics)RectangleBitExpressionText editorLatent heatDrill commandsSoftware developerPresentation of a groupTelecommunicationOverhead (computing)GeometryFunctional (mathematics)Control flowLine (geometry)Data conversionNumberProgramming languagePoint (geometry)Parameter (computer programming)Pairwise comparisonVariable (mathematics)DatabaseFormal languageComputer fontFunction (mathematics)Complex (psychology)CubeArtistic renderingAreaLINUXPersonal digital assistantJohann Peter HebelCache (computing)Haar measureDatabaseWINDOWS <Programm>KommunikationSQLWell-formed formulaFeldrechnerString (computer science)XMLLecture/ConferenceComputer animation
Transcript: German(auto-generated)
00:07
Ja, hallo. Moin, Klaas and Anna ist mein Name. Ich freue mich, dass so viele Leute gekommen sind zu diesem Thema. Und vielleicht zwei Worte zu mir. Ich bin eigentlich von Haus aus Landschaftsplaner, seit vielen Jahren immer mehr in den GISS-Bereich mutiert
00:26
und bin seit 2015 freiberuflich selbstständig und biete halt Dienstleistungen rund um freie GISS-Software an und mache auch viele Schulungen von irgendwelchen speziellen Themen bis hin zu Anfängerschulungen. Und da habe ich natürlich auch häufig diesen Auszugseditor zum Thema oder das spielt, sage ich jetzt mal, ja immerhin nicht eine Rolle.
00:49
Und es ist denn oft so bei Anfängerschulungen, dass man dann doch sehr schnell dahin kommt, dass man irgendwelche Zeilen eingeben muss und dann sagen wir schnell, muss das sein? Ja, muss sein. Weil sonst kann man sehr wenig machen im Kugels.
01:10
Also man stößt dann irgendwie auf irgendwelche Wände und das fängt ja auch alles irgendwie ganz einfach an. Ich sage mal das Erste, was ich mal irgendwie eingegeben habe, also ich habe tatsächlich mit diesem Eingeben von irgendwelchen Zeilen,
01:21
war dieser Auszugseditor, das erste Jahr, ich habe da irgendwie einen Layer, gibt es eine Spalte Nutzung, ich suche den Wald, das kommt irgendwie aus dem digitalen Landschaftsmodell, Nutzung gleich Algswald. Das ist erst mal nicht sperrig, das ist erst mal relativ übersichtlich. Und wir wollen aber heute so ein bisschen mit diesen mehr sperrigen Sachen auseinandersetzen.
01:45
Also sperrig ist ja irgendwie ein bisschen relativ. Wer den Auszugseditor vor vielen, vielen Jahren das erste Mal gesehen hat, also dieses kombinierte Abfragen- und Berechnungswerkzeug, der sah das Ganze sehr übersichtlich. Also man hatte hier irgendwie diese Operatoren, wo man irgendwie so ein
02:03
bisschen wie ein Taschenrechner dies und das machen kann und ein paar Funktionen. Und vom Grundsatz her sind diese Werkzeuge in irgendwelchen GISS-Programmen, mit denen ich berechne oder Abfragen durchführen, eigentlich auf Zeilen orientiert. Also das heißt, ich wähle bestimmte Zeilen aus.
02:21
In einem Layer, in dem ich mich befinde oder berechne den Teil neu. Und dann sind aber die KUGIS-Entwickler und Entwicklerinnen offensichtlich auf die Idee gekommen und dachten, naja, manchmal möchte ich gerne auch zu einem anderen Layer hinschauen und ruhle Daten aus einem anderen Layer. Und dann fängt das an irgendwie so ein bisschen besonders zu werden,
02:42
weil eigentlich ist man gar nicht so richtig dafür gedacht vom Ursprung, aber dieses Tool ist halt jetzt sehr aufgebohrt. Also das heißt, ich kann Kartenlayer ansprechen außerhalb von dem, wo ich bin und kann über räumliche Beziehungen oder über Attribute da eine Beziehung herstellen.
03:01
Und dann ist es so, ich kann ja, das zweite, was so ein bisschen aufgebaut ist, ich kann in so einer Tabelle, wenn ich in so einem Abfragewerkzeug bin, kann ich eigentlich nicht wirklich Zeilen aggregieren. Wer so ein bisschen im SQL zu Hause ist, weiß, naja, ich kann da irgendwie über Group By, was weiß ich, ich habe irgendwelche Gemeinden und dann sagt er Group By nach Landkreis-ID,
03:20
dann bekomme ich nicht mehr 400 Gemeindezeilen, sondern irgendwie 25 Zeilen der Landkreise. Das kann ich ja hier nicht machen, die Zeilen bleiben immer die gleiche, aber trotzdem kann ich hier jetzt aggregieren, also kann da solche aggregierten Sachen schreiben. Das ist diese Rubrik, die einen erst mal so ein bisschen nervös macht.
03:40
Wenn man anfängt, dann ist es so, manche von diesen Rubriken sind ja so ein bisschen selbsterklärend, also wenn ich jetzt irgendwie was runden will, dann denke ich, und ich weiß nicht, ob dieses Werkzeug das kann, dann denke ich, da schaue ich mal irgendwie unter Mathematik und dann gucke ich irgendwie und denke so, ja, round, round, das sieht so aus, als wenn ich da irgendwas mit runden kann.
04:02
Und dann finde ich mich da vielleicht zurecht. Das Schöne ist, beim Ausdruckseditor sind alle Funktionen irgendwie erklärt und eigentlich auch ganz gut erklärt, aber man muss sich so ein bisschen an diese Kommunikation gewöhnen, die jetzt die Autoren und Autoren in dieser Dokumentation da betreiben.
04:21
Also jetzt steht hier irgendwie round, value, eckige Klammer auf, places. Dann fangen ganz viele Menschen an, da irgendwelche eckigen Klammern einzugeben, weil irgendwie, vielleicht muss ich irgendwas in eckige Klammer eingeben, da steht aber A, das Kennzeichen und optionale Komponenten, also das heißt, die Stellen, nach denen ich runden will, kann ich mit einem Komma dahinter eingeben,
04:44
oder auch nicht, wenn ich sie nicht eingebe, dann rundet er auf die ganze Zahl. So, also Mathematik kann man sich was darunter vorstellen, aber dann kommen so Sachen, wo jetzt sich viele Menschen erst mal nichts darunter vorstellen können, also arrays irgendwie, ach du meine Güte, eine ewig lange Liste, da kommen wir auch hin,
05:02
das ist zum Beispiel sehr, sehr spannend, weil ich da auf ein Listenfeld zugreifen kann, also ich habe mehrere Werte, erzähle, was das so auf sich hat, das gucken wir uns nochmal an. Also, es kann alles ganz einfach aussehen, wie hier mit AX2, es kann aber auch irgendwie ganz sperrig aussehen, hier ist so ein Ausdruck,
05:25
der ist so ein bisschen unübersichtlich, den gehe ich jetzt auch nur am Rand, weil ich daran so ein paar Sachen zeigen will. Also, was macht das, das ging darum, man sieht ja hier auf dieser Karte, dass die gemeinden Namen alle irgendwie so ein bisschen gedreht sind,
05:43
das ist vielleicht ein bisschen übertrieben, aber man sieht schon, dass das eigentlich passend gedreht ist. Und ich habe irgendwann mal versucht, einfach so einen sinnvollen Drehwinkel für Polygone oder auch für einfache Rechtecke rauszufinden, wenn ich zum Beispiel so einen Blattschnitt habe, der da irgendwie durch die Weltgeschichte geht und ich möchte in meinem Kartenlayout, in meinem Atlas
06:03
das immer ein waagerechtes Rechteck haben, wie kriege ich die Drehung zur Nordrichtung raus. Und da ist mir jetzt sowas hier eingefallen. Das gemeine an der Sache ist, ich hatte das irgendwann rausgefunden, dokumentiert, das ist sehr schön, aber jetzt geht das ganz einfach, nämlich mit diesem Main Angel,
06:22
ich weiß gar nicht seit wann es diesen Ausdruck gibt, wenn man mich darüber gestolpert. Aber trotzdem jetzt, was haben wir hier gemacht, jetzt gibt es so Sachen, hier steht oben zweimal with variable, also das heißt, ich kann hier auch Variablen vergeben,
06:45
also kann praktisch Teile eines Ausdrucks, die ich an verschiedenen Stellen benötige, kann ich eine Variable zuweisen und kann das doppelt verwenden, weil wenn man jetzt sieht, dieses Teil gibt mir praktisch, das erzeugt mir erstmal so eine bounding Box,
07:07
also so ein Kasten um ein Polygon und zwar eine orientierte Bi-Box, also das heißt, das Ganze wird so ein bisschen gedreht, damit das Polygon reinpasst und das ist sozusagen der erste Schritt für diesen Drehwinkel,
07:20
dann hole ich mir irgendwie den Rand raus und um jetzt den Drehwinkel in so einer Gemeinde da zu finden, muss ich ja irgendwie verschiedene Vergleiche durchführen, also was weiß ich, geht das von Nord nach Süd oder von Süd nach Nord oder ich suche erstmal die längere Kante von dem Polygon,
07:44
ich zeige jetzt einfach mal einen Teil von diesem Ausdruck als Intro, wenn man so will, also ich habe hier diese orientierte Box, jetzt gibt es, wenn ich was mit Geometrien mache, das ist ja auch nochmal die Stärke von diesem Ausdrucks-Editor, dass ich ganz viel mit Geometrien machen kann,
08:04
also in der ersten Kugelsversion, wo es dieses Werkzeug gab, da konnte ich irgendwie mit Geometrien die Fläche berechnen und einen Umfang und plötzlich kann man alles Mögliche machen, da gibt es hier dieses Werkzeug Geometrie nach Ausdruck, da ist die Vorgabe, steht irgendwie Dollar Geometrie,
08:21
wenn ich das einfach ausführe, dann kommt einfach die Geometrie so raus, wie sie ist, das kann man ja alles ein bisschen größer machen mit dem Mausrad, jetzt kommt Orientite B-Box, da sieht man sozusagen, was das ist,
08:41
liefert das minimal gerichtete einhüllende Rechteck einer Eingabe-Geometrie, das heißt da kommt ein Polygon raus und jetzt starte ich das Ganze einmal und jetzt sieht man, oh jetzt habe ich hier irgendwas vergessen, ich wollte ja nur ein ausgewähltes Objekt machen,
09:01
weil sonst ist das sehr unübersichtlich, so ich mache mal das hier, das heißt nur gewählte Objekte, start, jetzt sieht man praktisch diese orientierte Box
09:21
und das kann man sich vorstellen, also hieran kann ich jetzt irgendwie auch einen Drehwinkel ermitteln, nämlich ich will den Winkel zur Nordrichtung der längsten Seite haben und vorher möchte ich das Ganze, aber muss ich die einzelnen Seiten da raus extrahieren und das ist jetzt praktisch dieser Weg, dass ich hier den Rand, die Boundary
09:44
und dann das Ganze irgendwie zu Linien umwandle und diese Zeile, das wird die Variable Segment und die taucht dann hier mit diesem Ad-Seg auf, also das heißt ich hätte sonst hier jedes Mal diese Wurst in diesem Vergleich,
10:05
muss ich immer wieder neu angeben und dann ist das nochmal verschachtelt, dann wird der Ausdruck irgendwann so, dass man ihn gar nicht lesen kann und das ist durch dieses With Variable, Name der Variable, der Ausdruck, dann kommt ein Komma und dahinter kann ich das Ding verwenden, sieht man das ist hier 1, 2, 3, 4 mal verwendet worden,
10:24
ich gehe jetzt hier nochmal rein, jetzt muss die Ausgabe eine Linie sein, ich muss mir hier nochmal kopieren, 3 und V,
10:44
jetzt kommt hier irgendwie eine Linie raus, zack, starten, so die Linie mache ich mal ein bisschen dicker, dann sieht man sie ja auch,
11:08
das ist jetzt eine Linie und vom Prinzip geht das dann weiter, dass ich hier praktisch eine Abfrage mache, also mit dieser Funktion Geometry N, das ist praktisch, wenn man so will,
11:27
wenn ich ein mehrteiliges Objekt habe, die Teilgeometrien, also das heißt die erste Teilgeometrie und die zweite werden hier verglichen
11:42
und wenn ich jetzt so einen Rechteck habe, dann ist die erste, könnte zum Beispiel das hier sein und die zweite könnte das hier sein und dann habe ich einfach einmal eine kürzere Strecke, einmal eine längere Strecke und kann das hier vergleichen, wenn die Strecke des ersten Segmentes kürzer ist als das zweite Segment,
12:14
dann nehmen das erste Segment, also das längere und sonst das zweite und so kriege ich praktisch die längere Linie raus, wenn man so will
12:23
und dann geht das Ganze weiter und dann wird der Winkel ermittelt und so weiter, das gehe ich jetzt nicht im Detail darauf ein, weil dieses Dokument, das könnt ihr euch ja auch runterladen, sondern man kommt dann wirklich am Ende irgendwo hin, wo man praktisch den Drehwinkel bekommt und sieht man, das ist hier eine verschachtelte Variable,
12:46
also diese Variable geo, das ist sozusagen dieser ganze Block hier und jetzt, das ist also praktisch eine Liniengeometrie, was übrig bleibt, nämlich die längere Kante und dann wird hier praktisch aus dieser Geometrie ermittelt
13:08
verläuft die von Nord nach Süd oder von Süd nach Nord, also wenn die Y-Koordinate vom Startpunkt größer ist als vom Endpunkt, dann ist der Startpunkt im Norden und umgekehrt und dann wird hier irgendwie der Winkel ermittelt
13:24
und dann kriege ich einen Drehwinkel und heute geht das ganz einfach mit dieser Main Angel Dollar Geometrie. Okay, jetzt machen wir aber nochmal was, was so ein bisschen übersichtlicher wird.
13:43
Jetzt machen wir so auf so ein paar allgemeine Sachen rein. Ich mache jetzt ja keinen Direktkurs mit dem Ausdruckseditor, wie man den benutzt. Ich vermute, die meisten von euch, von Ihnen, haben damit schon gearbeitet, weil sie wollen sich jetzt ja so ein bisschen sperrige Ausdrucke angucken. Ganz wichtig ist, wenn man jetzt so kompliziertere Sachen schreibt, dass man das ein bisschen lesbarer macht, indem man Sachen einrückt.
14:05
Ich habe hier mal so eine gefürchtete Replace-Kaskade. Also ich möchte auf einmal die Ös in OE, die Üs in UE und die Äs in AE umwandeln und da verschachtle ich praktisch diese Replace-Abfrage. Also Replace, Spaltennamen, GN, das ist in dem Beispiel der Gemeindenamen,
14:23
Wandel Ö in OE um. Jetzt füge ich das immer in sich ein und wenn ich das so ein bisschen verschachtle, wenn ich das so ein bisschen einrücke, dann ist das besser lesbar. Und ich kann auch mir Kommentare da reinschreiben mit diesem Minusminus oder Blog-Kommentare mit einem Schrägstrich unten im Sternchen.
14:45
Das sieht man nochmal hier an diesem Beispiel. Hier habe ich es in einer Zeile Schrägstrich Sternchen auf, Sternchen Schrägstrich zu und dann kann ich Kommentare da reinschreiben. Das ist auch ganz nützlich, weil wenn ihr euch jetzt irgendwelche
15:02
komplizierteren Ausdrücke zusammen bastelt, wo ihr euch irgendwie so ein bisschen die Haare auch raufmusset und was einem am Anfang nicht immer so ganz leicht fällt, dann ist es sinnvoll, die irgendwie abzulegen. Das kann man im Ausdrucks-Editor selber machen, aber manchmal ist es einfach, man legt sich ein Textdokument an, so wie hier,
15:20
und schreibt da die Ausdrücke rein und wenn man dann einen Text-Editor hat, der so eine Syntax-Hervorhebung hat und ich speichere das Ganze mit der Datei-Endung .sql ab, dann habe ich meistens schon so eine Syntax-Hervorhebung, dass jetzt irgendwie unter Linux der Cade-Editor unter Windows unterwegs ist, mit diesem Notepad plus kann man das sehr schön machen,
15:41
benennen das mit .sql und dann sieht das gleich ein bisschen geordnet aus, weil ein Großteil dieser Ausdrücke, die man in dem Ausdrucks-Editor schreibt, dieser Syntax stammt aus der Datenbankabfrage Sprache .sql. So, jetzt gehen wir hier mal ein Stück weiter.
16:00
Jetzt kommt ein sehr schönes Thema, was es jetzt schon längere Zeit im KUKES-Ausdrucks-Editor gibt, aber was damals auch so ein erstes Aufbohren war, ich kann nicht nur einfach irgendwas abfragen und berechnen, und wenn ich jetzt vorher eine Bedingung haben will, dann muss ich erst mal eine Abfrage machen und sagen,
16:21
ja, das bitte nur für die ausgewählten Features. Ich kann auch eine bedingte Abfrage machen. Das ist hier mal so ein Beispiel mit Case, Wenn und so weiter. Ich ziehe das mal rüber in den Ausdrucks-Editor. Wir haben jetzt ja hier ganz viele Gemeinden,
16:44
und diese Gemeinden, die haben auch eine Einwohnerzahl in der Attributtabelle. Und jetzt möchte ich hier praktisch Klassen erzeugen. Was ist eine große und was ist eine kleine Gemeinde? So, ich mache das mal ein bisschen größer.
17:01
Gehe hier auf Bedingungen. Bei Bedingungen gibt es hier einmal, interessant, da kann ich praktisch eine Bedingung machen. Ich gehe jetzt auf dieses Case ein. Da kann ich ganz viele Bedingungen untereinander schreiben. Und es wird auch ganz gut erklärt. Diese Bedingungsausdrücke fangen immer irgendwie an mit Case.
17:22
Und Enden mit End. Das ist sinnvoll, das schon mal reinzutippen, vorne und hinten, weil wenn ich dann zwischendrin Dinge hineintippe, dann sehe ich sofort, ob ich einen Syntaxfehler habe. Und wenn ich das von oben nach unten durchschreibe, dann zeigt er mir immer einen Syntaxfehler an, bis ich das End geschrieben habe. So, und jetzt ist es so, die Bedingung ist immer Wenn.
17:45
Und dann kann ich jetzt hier alles schreiben, was die Syntax hergibt. Also zum Beispiel Spalte ewz größer gleich 500.000. Und dann kommt Wenn. Und dann schreibe ich, was passieren soll. Da darf ich auch alles schreiben, was die Syntax hergibt.
18:02
Hier habe ich jetzt einfach einen Textwert. Das heißt, ihr schreibt in die neue Attributspalterei riesig. Ich könnte auch dann auf eine Spalte verweisen. Wenn das und das passiert, dann hole ich den Wert aus Spalte so und so. Oder dann addiere ich Spalte eins plus Spalte zwei oder was auch immer. Oder brechne die Fläche oder wie auch immer. Das heißt, an beiden Seiten kann ich machen, was ich will.
18:22
Und jetzt kann ich hier diverse Zeilen machen. Wenn nichts zutrifft, schreibt der Ausdruckseditor Null rein. Wenn ich aber möchte, dass statt Null irgendetwas anderes passiert, kann ich hier mit else noch so einen Unbekannten machen.
18:42
Wenn man sich dieses Beispiel jetzt anschaut, dann denkt man, naja, okay. Wenn ewz kleiner als 2000, dann winzig. Es kommt größer gleich 2000 sehr klein. Und jetzt kommt größer gleich 15.000 gleich klein. Dann denkt man, naja, aber dieser hier ist ja gleichzeitig auch klein.
19:07
Dieses Größe als 2000 trifft ja auch hier drauf zu. Eigentlich müsste ich jetzt die Bedingungen noch weiter spezifizieren und sagen, und ewz ist größer gleich 15.000, ist kleiner als 50.000.
19:41
Das heißt, wenn ewz größer gleich 15.000 und kleiner als 50.000, dann ist klein. Jetzt müsste ich das eigentlich immer so weitertreiben, also von der Logik her. Aber tatsächlich funktioniert das anstandsfrei, anstandslos, wenn ich das einfach so schreibe.
20:00
Weil dieser Ausdruckseditor arbeitet das irgendwie von unten nach oben durch. Wenn ewz kleiner als 2000, klar, das ist nur ein Bereich, wenn ewz größer gleich 2000, dann sehr klein. Dann schreibt er praktisch jetzt überall sehr klein rein. Also auch in Frankfurt mit 600.000 Einwohnern, weil das ist größer gleich 2000.
20:22
Dann kommt größer gleich als 15.000, dann schreibt da so überall klein rein, wenn man so will. Und so überschreibt er das immer weiter. So stelle ich mir das jetzt vor, also wie das jetzt intern geht, weiß ich nicht. Bis am Ende die Abfrage kommt, wenn ewz größer gleich 500.000 ist dann riesig, dann haut er oben bei den richtig großen Städten in Hessen riesig rein.
20:41
Also da kann man sich dieses and und so weiter, kann man sich da sparen. So und dann schreibe ich jetzt mal irgendwo rein. Ich muss jetzt natürlich einen Text wertschreiben, weil da kommt ein Text rein und ich will jetzt auch keine Auswahl haben, sondern das Ganze nenne ich jetzt Größenklasse oder einfach Klasse. Und jetzt habe ich praktisch eine Klassifikation,
21:01
wo ich ohne diese Bedingungsgeschichte eigentlich erstmal in den Abfrageeditor reingehen müsste. Ewz größer gleich 500.000, Auswahl. Und dann schreibe ich rein riesig, nur für gewählte Objekte. Und jetzt kann ich das eben auf einem Rutsch machen, oder fast jetzt, ein bisschen länger. Und wenn ich das jetzt mache, dann bekomme ich hier mein größer und kleiner.
21:26
Ich ordne das mal ein bisschen weiter nach rechts an, dann sieht man das direkt hinter der Einwohnerzahl. So, jetzt sortiere ich die Einwohnerzahl nach oben und jetzt sieht man, Frankfurt 763.000, was so groß ist, Frankfurt ist relativ neu, die Zahlen.
21:42
763.000 Einwohner, riesig. Also das ist immer relativ für hessische Verhältnisse. Dann kommen irgendwie Wiesbaden, also ich finde das auch ganz schön groß, Frankfurt. Aber ich bin auch eher provenziell. Wiesbaden, Kassel, Darmstadt, Offenbach sind irgendwie über 100.000 groß. So habe ich jetzt irgendwelche Klassen gebildet.
22:02
So, das sind die Bedingungen. Hier steht sehr viel drin. Ich habe jetzt immer wieder verschiedene Wartepunkte gesucht. So, jetzt kommt das Aggregieren. Also das ist das, was ich gerade erzählt hatte. Ich kann ja im Kugus zum Beispiel eine virtuelle Layer, kann ich richtig eine aggregierte Tabelle bauen,
22:22
dann habe ich meinetwegen, sage Group By, was weiß ich, dann bekomme ich nur die Zeilen. Das geht hier natürlich nicht, die Zeilen sind fest, aber der kann jetzt gruppierte Sachen einfach dahinter schreiben. Das fängt glücklicherweise ganz einfach an. Also zum Beispiel will ich jetzt die größte und kleinste Einwohnerzahl, Maximum, Minimum. Ich gehe hier mal zurück in den Ausdruckseditor.
22:46
Ich gehe hier mal in die Gestalt des Feldrechners machen. Dieser Ausdruckseditor hat so unterschiedliche Gestalten. Mal ist es der Erbsfrageeditor, mal ist es das Berechnungstool, aber die Syntax ist immer gleich.
23:01
So, By Aggregate finde ich jetzt sowas wie Maximum. Nichts zu verwechseln mit der Funktion unter Mathematik Max. Max ist, wenn ich meinetwegen irgendwie so eine Liste habe, 1,2,3,5, schreibe das in Klammern, und davor Max, dann kommt irgendwie 5 raus.
23:21
So, jetzt habe ich Maximum, Expression, also Maximum, und Expression ist im einfachsten Fall einfach eine Spalte. Dann taucht ihr in der Vorausgabe 73.380 auf. Das ist die größte Stadt, also Frankfurt.
23:45
Ich mache es hier gerade mal ein bisschen größer. Das habe ich sehr spät entdeckt. Man kann hier die Beschriftung einfach mit dem Mausrad größer machen. Bei irgendwelchen Kursbesuchern waren alle ganz froh, vor allem die, die nicht mehr so gute Augen haben. So, Minimum EWZ 0.
24:03
Es ist jetzt natürlich ein bisschen lustig, was gibt es da so für die menschenleeren Gemeinden in Hessen. Es gibt irgendwelche gemeindefreien Bezirke. Deswegen funktioniert es jetzt nicht mit 0, aber jetzt gucken wir ja mal weiter zu dem Minimum. Aha, da gibt es noch irgendwie Group By und Filter.
24:23
Das heißt, ich habe ja zwei Parameter. So, mit Filter, da könnte ich jetzt sagen, die Einwohnerzahl sollte erstmal größer sein als 0. Jetzt ist das Problem, wenn ich jetzt, erst muss eigentlich Group By kommen. Jetzt will ich aber gar nicht Group By machen.
24:41
Dann ist es so, dass ich bei diesen ganzen Ausdrücken praktisch benannte Parameter verwenden kann. Da gibt es auch immer so Beispiele. Jetzt ist hier irgendwie so ein bisschen eine exzentrische Phrase. Group By Doppelpunkt Gleich irgendwie. Also Group By will ich ja gar nicht wie jetzt irgendwie die Filter-Phrase machen.
25:04
Deswegen mache ich jetzt Filter, Doppelpunkt Gleich und jetzt kommt irgendwie EWZ größer 0.
25:25
Ach so, ja, ich muss natürlich richtig schreiben. 974. Jetzt habe ich sozusagen diese Abfrage gefiltert. Und das ist also auch irgendwie, es kommt 974 raus.
25:41
Bei der kleinsten Maximum ist es sozusagen, logischerweise ist es jetzt egal. Und jetzt ist es so, in diesem Datensatz, da gibt es so eine Spalte Bez, Gemeinde, gemeindefreies Gebiet und Stadt.
26:02
Jetzt ist es ja so, ich will ja häufig jetzt nicht irgendwie eine Gruppierung so durchführen, dass ich einfach für den ganzen Datensatz das mache, sondern ich möchte das vielleicht für so eine Typologie machen. Und jetzt Gemeinde, gemeindefreies Gebiet. Jetzt brauchen wir dieses Group By.
26:24
Ich gehe nochmal wieder zurück zu meinem Minimum. Es steht ja Minimum Expression Group By Filter. Wenn ich jetzt meinetwegen hier hingehe und ich nehme jetzt mal dieses benannte Ding da raus und gehe jetzt hin und schreibe jetzt hier hin.
26:46
Bez, Bez, das war ja wieder diese komische Geschichte, schreibe da hin. Bez gleich Stadt, so.
27:00
Jetzt sucht er nur diejenigen Gemeinden, die dieses Prädikat Stadt haben. Und jetzt sieht man, dass es gibt in Hessen also wirklich sehr kleine Städte. Nämlich es gibt eine Stadt mit 974 Einwohnern. Das hat mal irgendwie eine Stadtmauer gekriegt, aber hat sich dann entschlossen nicht weiterzuwachsen.
27:25
So, bei Gemeinde. Jetzt muss ich mal kurz überlegen, habe ich jetzt hier irgendwie was? Das kann ja eigentlich nicht sein. Jetzt bin ich ein bisschen durcheinander. Bitte? Ja, ich schreibe das jetzt mal wieder. Ich wollte jetzt noch einmal zeigen, warum das sinnvoll ist mit solchen benannten Sachen da zu machen,
27:43
denn dann ist die Verwirrung gleich weniger. Also jetzt mache ich das mal mit benannten Ausdrücken und ich mache jetzt auch mal Zeilenumbrüche rein, weil dann wird es auch gleich lesbarer. Jetzt kommt irgendwie Group bei Doppelpunkt gleich.
28:05
Doppelpunkt gleich. Bez gleich Stadt. Wenn ich das einmal mache, dann muss ich das bei allen machen. Ich kann das jetzt nicht irgendwie mischen. Die Filter könnte ich jetzt eigentlich raus machen, aber ich mache das jetzt trotzdem mal.
28:22
Filter, Doppelpunkt gleich, ewz, Größe 0. Ich schreibe das jetzt mal rein. Ich komme jetzt hier irgendwie so ein bisschen hier. Ach ja, Minimum. Ich mache das jetzt mal mit Maximum.
28:46
Ich hasse vorführeffekte. So, Maximum Einwohnerzahl, Group bei bez gleich Stadt. Das nehme ich jetzt hier einmal kurz raus. Irgendwie habe ich da was anderes in Erinnerung.
29:05
Ach so, jetzt, Entschuldigung. Ich bin jetzt leider gerade kurz konfus, aber das ändern wir sofort. Er zeigt mir alles an von der ersten Zeile. Und ich muss das einfach mal in die Attributtabelle reinschreiben. Das ist so ein dummes Zeug irgendwie so.
29:22
Jetzt habe ich, wobei das ist, jetzt mache ich das nochmal mit Minimum. Also es ist wirklich ein bisschen so. Ich schreibe das jetzt mal in die Attributtabelle rein.
29:51
Die größte Einwohnerzahl, und zwar Group by, und das ist natürlich jetzt auch schon wieder dummes Zeug was ich mache, diese Filterung. So, jetzt haben wir es irgendwie schon mal vernünftiger.
30:01
Also Group bei bez, und das Minimum ist hier in diesem Fall für den Wert Einwohnerzahl. Jetzt schreibe ich das hier in diese Spalte rein, und das nenne ich jetzt Kleinste.
30:23
So, und jetzt sieht man das bei den Städten. Die Kleinste ist 1159, und bei den Gemeinden ist es 974. So, und jetzt kann man das Ganze natürlich mal dazu verwenden, dass wir jetzt die kleinste Stadt suchen.
30:53
Da gehen wir jetzt ins Auswahlwerkzeug rein, und wenn ich jetzt eine Auswahl suche, dann muss ich ja sagen,
31:00
Okay, ich möchte gerne, dass die Einwohnerzahl, der Einwohnerzahl entspricht, die jetzt die kleinste Stadt ist. Da kommen wir wieder zu meiner Aggregatfunktion. Jetzt sagen wir Minimum ewz, und jetzt kommt Group by, Doppelpunkt gleich, und das war jetzt diese Spalte bez,
31:48
wo es ja kleiner drin steht, und jetzt kommt nochmal Filter, Doppelpunkt gleich ewz, größer gleich 0.
32:12
Also jetzt soll er prüfen, wo ist die Einwohnerzahl entsprechend dieser Aggregierung. Also den kleinsten Wert jeweils gruppiert nach bez. So, und Objekte wählen.
32:32
So, sechs Stück, das ist natürlich mal nach oben.
32:47
Da haben wir, ich sortiere das mal einmal hier, da haben wir diese merkwürdigen Gutsbezirke, und wir haben Michelbuch, Schwarzenborn und Weißenborn.
33:00
Wenn ich jetzt hier hingehe, sehen wir, das sind einmal 974 Einwohner, das ist die Gemeinde, und Schwarzenborn ist die kleinste Stadt mit 1159, und jetzt haben diese Gutsbezirke, haben Nullwert, das heißt, das hätte ich jetzt irgendwie noch abfangen müssen, aber die haben ja sowieso alle irgendwie 0.
33:24
Also eigentlich hätte ich die auch rausfiltern können. Wenn ich jetzt sage, diese komischen gemeindefreien Bezirke will ich überhaupt nicht haben, dann sage ich jetzt stattdessen bez ist ungleich, so bez, ungleich gemeindefreies Gebiet.
33:54
So, jetzt bleiben wir noch über diejenigen, die sich Stadt nennen und diejenigen, die sich Gemeinde nennen.
34:01
Und jetzt sollte die größte und die kleinste Stadt rauskommen, Objekte wählen. So, und jetzt bleiben noch zwei über, und das ist die Stadt. Ich muss das Ding hier mal wegnehmen.
34:21
Es ist die Stadt. Nun, gerorchen wir mal hier, Maschine. Witzig, ich habe jetzt irgendwas, das war jetzt nicht eingeplant. Also normalerweise verschluckt sich Kugis jetzt bei so einfachen Aufgabenstellungen nicht.
34:44
Also, vom Prinzip hier, hier nochmal in dem Skript ist es so ein bisschen ähnlich. Da sucht er die kleinste Gemeinde, group by bez, und dann sagt er hier filter bez gleich Stadt und Einwohnerzahl größer als Null, da wird sozusagen nur die kleinste Stadt gesucht.
35:07
Jetzt habe ich hier nochmal so einen anderen Fall. Jetzt müssen wir mal gucken, ob das Kugis jetzt, komm mal wieder hier irgendwie.
35:24
Ich war jetzt nicht unfreundlich zum Kugis.
35:43
Zack, Gemeinde. Also wenn sich das Programm aufhängt, merkt sich das trotzdem den letzten Ausdruck normalerweise. Objekte wählen, schließen, zwei Objekte gefunden und wir haben Schwarzenborn und Weißenborn.
36:06
Das wird total lustig, ne? Stadt und Gemeinde irgendwie. Wer hat sich denn das ausgedacht irgendwie? Also Schwarzenborn ist die kleinste Stadt Hessens, Weißenborn die kleinste Gemeinde, die sich nicht stattnimmt.
36:22
Jetzt haben wir hier so ein Spiel mit den Aggregatfunktionen. Wir wollen das jetzt nochmal weitertreiben, wir suchen jetzt die zehn größten Städte Hessens. Das ist jetzt ein bisschen anstrengender.
36:40
Also da brauchen wir natürlich auch wieder diese Aggregatfunktionen, jetzt mal so das Maximum, Minimum, Summen. Das haben die meisten Leute, also wer da jetzt nicht reinkommt, kann sich da was darunter vorstellen. Dieser Begriff Concatenate ist mir persönlich das erste Mal auch in der GISS-Welt begegnet. Das ist praktisch eine Funktion, wo ich einfach Sachen aufzählen kann.
37:04
Also ich habe eine Aggregatfunktion und sag mal, wenn ich das jetzt so ähnlich machen würde wie eben Concatenate, ein Ausdruck für alle Städte, dann würde ich jetzt eine Liste bekommen von allen Städten oder so. Also gehen wir jetzt mal hier hin. Concatenate und jetzt möchte ich gerne, so jetzt muss mal, das ist jetzt hier in der Aufregung mein Konzept, genau.
37:28
Jetzt möchte ich eine Liste von allen Gemeinden haben, von allen Gemeinden Namen und die sollen nachher irgendwie nach Einwohnerzahl sortiert werden. Also die Gemeinden Namen, die habe ich in der Spalte GN, Klammer zu.
37:46
Und jetzt sieht man, Darmstadt, Frankfurt, Offenbach, das ist jetzt außerdem überhaupt kein Trendzeichen hinter. Jetzt gehen wir mal auf dieses Concatenate und jetzt gibt es da irgendwo auch den Concatenator.
38:01
Das ist das Trendzeichen. So, zack, zack, zack. Concatenator, Doppelpunkt gleich. Es soll jetzt bitte das Komma sein.
38:21
Also wenn ich jetzt das Komma als Aufzählungszeichen kennzeichnen will, dann muss ich das natürlich als Zeichenkette übergeben. Also Hochkomma, Komma, Hochkomma, Klammer zu. Witzigerweise, jetzt zeigt er das trotzdem nicht an. Das ist irgendwie eine Allüre vom Kugis. Wenn ich das nochmal jetzt aufrufe und leichter reinschreibe,
38:44
dann zeigt er mir das Komma an. So, jetzt habe ich hier irgendwie eine Liste. Und jetzt möchte ich die gerne ordnen.
39:04
Ich will ja die zehn größten Gemeinden haben. Und jetzt sieht man hier irgendwie Darmstadt, Frankfurt, Offenbach, das ist schon irgendwie so ein bisschen groß. Aber Frankfurt ist größer als Darmstadt. Ich will das jetzt irgendwie ordnen und zwar nach Einwohnerzahl. Also gehe ich jetzt zu meinem Aggregate Concatenate.
39:25
Dann gibt es halt Order by. Jetzt will ich es nach Einwohnerzahl ordnen. Also, ich mache es mal wieder ein bisschen größer hier. Order by.
39:41
Und wieder dieses Doppelpunkt gleich. Und das soll jetzt bitte die Spalte sein im ewz. Dahinter muss ein Komma. So, und jetzt sehen wir schon mal. Das fängt schon mal gut an. Irgendwie Gutbezirkskaufung. Das sind jetzt wieder diese Dinger da ohne Einwohnerzahl.
40:02
Also schreibe ich jetzt nochmal wieder hin. Filter Doppelpunkt gleich ewz größer null Komma.
40:20
So, jetzt haben wir wieder unsere weißen Bohren, schwarzen Bohren. Die beiden kleinsten. Und jetzt möchte ich aber, das große soll vorne stehen. Jetzt stehen die kleinsten vorne. Dann machen wir jetzt einfach einen Kehrwert. Eins durch.
40:41
Also, denn es ist ja umgekehrt. So, jetzt haben wir Frankfurt am Main, Wiesbaden, Kassel, Darmstadt, Offenburg. Und das ist jetzt schon mal die richtige Ordnung. Das ist gar nicht schlecht. Jetzt muss ich einfach nur die ersten zehn Einträge in der Liste haben.
41:04
Und schon habe ich die zehn größten Gemeinden. Und dann muss ich einfach nur sagen, GEN gleich. Wo kriege ich das jetzt her? Also, wenn man jetzt nicht weiß, was man tun will, dann schreibt man sich am besten erst mal in den Kommentar rein,
41:20
was man eigentlich machen will. Zeige mir die ersten zehn Einträge der Liste. Also, das mache ich auch mal in Kurs. Dann kannst du ja erst mal so sprechen,
41:41
wie du mit lebenden, denkenden Menschen sprechen würdest. Und dann überlegst du mir, wie die olle Maschine das versteht. Also, zeigen wir die ersten zehn Einträge der Liste. Und ich muss irgendwie auf diese Liste zugreifen. Und jetzt kommen diese Arrays ins Spiel. Das kommt irgendwie aus dem Programmierumfeld.
42:02
Im Kugel sind das halt so Listenfelder. Also, das heißt, jetzt ist was, was da rauskommt. Frankfurt am Main, Wiesbaden, das ist ein Wert. Das ist einfach eine Zeichenkette. Und jetzt will ich praktisch, dass Frankfurt am Main ist ein Wert, Wiesbaden ist ein Wert, das sind alles einzelne Werte. Und dann muss ich hier so ein Array erzeugen.
42:22
Die Gruppe enthält Ausdrucksfunktionen zur Erzeugung und Manipulation von Arrays, auch als Listen bekannt. Ich habe ja irgendwie Liste geschrieben. Das hört sich dann auch so ein bisschen bürgerlicher oder verständlicher an. Jetzt ist das Problem, ich habe eine Liste, muss ein Array machen. Und dann gucke ich irgendwie, da gibt es so etwas.
42:42
Ja, String to Array, also Zeichenkette zu Array. Bevor ich jetzt irgendwie überhaupt irgendwas machen kann, muss ich das erstmal umwandeln in so ein Array. Und dann sieht man, naja, da gibt es ja so Sachen. Array Sword, und dann denkt man jetzt mit, ja, da kann ich bestimmt was sortieren und so weiter und so fort.
43:00
Und dann gibt es auch Array, Array, wie heißt das nochmal? Slice, das sagt einen jetzt nicht so viel, aber da ist es nachher ganz interessant. Es gibt auch Array Min, Array Max, also alle möglichen Sachen, die ich auf diese Liste machen kann. Also machen wir jetzt erstmal aus dieser Zeichenkette so ein Array.
43:21
Ich kann da auch angeben, hier steht Delimiter-Doppelpunkt. Das ist irgendwie so ein bisschen wie der Korn-Catenator, nur umgekehrt. Also da sage ich einfach, wo er die Grenzen zwischen den Werten finden soll. Das muss ich jetzt aber nicht schreiben, weil normal geht er davon aus, also wenn ich nichts anderes sage, dann nimmt er gerne ein Komma.
43:41
Und jetzt mache ich die Klammer zu, und jetzt sieht das anders aus. In der Vorgabe ist so eine eckige Klammer, Frankfurter Main, Wiesbaden, und das ist jetzt so ein Array. Das ist nochmal ganz wichtig auch zu verstehen, wenn man das sieht, weil es gibt wieder auch andere Funktionen, die werfen so ein Array raus, und du willst vielleicht so eine Liste haben und denkst,
44:00
schreibst du mal schön in die Attributspalte rein, und dann ist danach irgendwie Null als Leerwerte. Was hast du jetzt wieder verbrochen? Dieses Array kann man nicht direkt in eine Zelle reinschreiben, den müsste ich praktisch wieder erstmal hingehen und das Umgekehrte machen, Array to String. Aber jetzt will ich ja vorher die zehn größten Einträge davon haben,
44:24
und das ist jetzt erstmal nicht so ganz intuitiv, also so denkt man, ja, Array distinct, egal, jetzt gucken wir mal hier dieses Array slice, Array start post, end post, das heißt, hier sieht man es nochmal, hier ist ein Array slice,
44:42
hier ist ein Array aus eins, zwei, drei, vier, fünf, und jetzt sagt der Null, Komma, drei, und dann kommt da raus eins, zwei, drei, vier. Das heißt, diese Stellwerte, also ich kann jetzt einfach sagen, das was wir wollen, gebe mir die ersten so und so viel Stellen raus, und er zählt das einfach durch.
45:00
Das fängt aber nicht bei eins an, sondern bei null. Also viele Sachen kommen hier aus SQL, und das kommt wahrscheinlich irgendwie aus Python, weil Python zählt auch, fängt auch immer mit null an zu zählen. So, also das Ganze null, drei, also gehe ich jetzt hin und sage jetzt Array slice, und jetzt kommt,
45:31
achso, nee, jetzt muss ich ihm sagen, welche Stellwerte wollen wir jetzt haben,
45:43
und das wäre jetzt die erste Stelle ist null, das ist halt einfach der erste Platz, das ist ein, ja, sind wir schon durch, ist schon okay, aber das muss ich jetzt noch einmal, darf ich das noch zählen, das geht nicht, ich machs jetzt schnell, zack.
46:03
So, jetzt, ich werf das einmal jetzt als ganzes, ganzes rein, das hab ich jetzt hier nochmal erläutert, zack, zack, Steuerung A, äh, Steuerung A, so, zack.
46:21
So, jetzt sind da hier noch diese ganzen Kommentare drin, aber vom Prinzip ist es so, jetzt holt er diese null bis neun rein und vergleicht die mit dieser Spalte GEN, und dann haben wir zwei Objekte gewählt, kommen nach oben, ich sortier das mal,
46:42
und dann sehen wir hier, von 65.000 bis 763.000 Einwohner, Rüsselsheim bis Frankfurt am Main. So, okay, das ging ganz schnell, ich hab noch mehr drauf, aber es kommen ja ein paar Leute in dem Workshop irgendwie, und das war jetzt mal einfach so ein Beispiel,
47:02
dass man auch ganz erstaunliche Sachen rausbekommt. Ja, danke für die Aufmerksamkeit. Wir danken auch für den ausführlichen Vortrag, und es gibt schon einige Fragen im Vendüles. Weißt du, warum es Ad-Geometry und Dollar-Geometry gibt?
47:24
Also, ich hab das so verstanden, also das steht im Feldrechner drin, das ist einfach diese Dollar-Konvention, das haben sich die Kursentwickler irgendwann mal ausgedacht, und dann sind sie irgendwie auf die gekommenen Variablen, machen wir mit Ad, und das ist so eine Angleichgeschichte, und da steht ja so eine Warnung drin,
47:41
mach das lieber mit Ad, weil irgendwann fliegt Dollar-Geometry raus, das ist einfach, wenn ich das verstanden hab, so eine Vereinheitlichungsgeschichte. Einmal bitte das Mikro benutzen. Also, das Dollar war früher für Funktionen ohne Parameter,
48:02
aber jetzt, wie du richtig gesagt hast, sollte man das nicht mehr verwenden, ist deprecated. Wo jetzt Dollar-Area bleibt Dollar-Area, wenn ich das richtig verstanden hab, aber das ist diese Konvention mit den Variablen, mit dem Ad im Kugel. Danke, dann gibt es die Frage, komplexe Ausdrücke verlangsamen das Rendering,
48:21
gibt es hier die Möglichkeit Caching zu benutzen? Da bin ich jetzt technisch überfragt, irgendwo, ich glaube zum Beispiel bei diesen Overlay-Funktionen, da steht glaube ich irgendwas drin, aber da bin ich jetzt technisch überfragt, das weiß wahrscheinlich der Andreas wieder besser als ich vermute ich.
48:43
Kannst du nochmal die Frage, ich hab's nicht ganz mitgekriegt im Beginn. Komplexe Ausdrücke verlangsamen das Rendering, gibt es die Möglichkeit Caching zu benutzen? Nein, ist mir nicht bekannt. Aber ich würde vielleicht eher dann mit Broskis oder so arbeiten, wenn es kritisch wird.
49:00
Ein guter Hinweis, danke. Welche Programmiersprache wird im Auto-Ausdrucks-Editor genutzt? Ist das SQL oder ein spezifischer Dialekt? Na ja, es ist erstmal im Wesentlichen, das ist ja so eine Datenbank, aber ist das SQL? Also wenn man so will, ist das die Rare-Klausel im SQL, aber dieses Aufbohren, das hat halt wie mit diesem Group-By-Doppelpunkt-Lay
49:20
so ein bisschen eine Eigenkonstruktion, da kommen dann auch so Ideen aus dem Python rein. Also ich würde sagen, das ist eigentlich SQL ein bisschen mit Python gewürzt und auch ein bisschen mit kreativen Ideen erweitert. Welcher Texteditor kann empfohlen werden? Ich sag mal, unter Windows, würden wir jetzt einfach in dieser Notepad Plus
49:41
und unter Linux gibt es sowieso ganz viele und beim Mac kenne ich mich nicht aus. Also einfach ausprobieren irgendwas, was so eine Syntax-Erfahrung hat. Dann gibt es große Auswahl, aber unter Windows dieser Notepad Plus ist eigentlich ganz gut, finde ich. Kann man auch im Ausdruckseditor Kommentare einfügen? Ja, also das war ja diese Geschichte mit diesem Schrägstrich Stern
50:05
und beendet mit Stern Schrägstrich. Das sind mehrseitige Ausdrücke und wenn ich irgendwo Minus-Minus inschreibe, wie jetzt bei dieser Geschichte, hier steht ja immer mal ein Minus-Minus rum, kann ich das so wie es ist mit den Kommentaren auch in den Ausdruckseditor reinschmeißen, ohne dass was passiert, also ohne was Schlimmes passiert.
50:22
Gut, dann haben wir noch eine letzte Frage. Welche Programmiersprache wird im Erlebten? Was sollte jemand lernen, der solche Ausdrücke selber entwickeln würde? Üben, üben, üben, oder? Also, das ist ja, man muss sich einfach langsam da reinarbeiten in die Denke.
50:41
Ich sage immer, wenn du so ein Werkzeug benutzt, ist das irgendwie so eine Kommunikation zwischen Entwickler und dir und der Entwickler oder die Entwicklerin sitzt am längeren Hebel. Das heißt, du musst dich irgendwie auf die Art und Weise, wie mit dir kommuniziert wird, musst du dich einrichten. Und das ist ja auch, wie gesagt, diese Hilfefunktion,
51:03
die sind nicht schlecht, aber es ist so ein bisschen so eine Sprache, an die man sich erst gewöhnen muss. Ansonsten ist es wirklich üben, üben, üben, üben. Es ist wie gesagt SQL-basiert. Alles, was man in diesem Werkzeug lernt, kann man zum Beispiel auch in einer Datenbank im SQL
51:21
oder eigentlich alles viele Sachen verwenden. Und das ist eigentlich ein schöner Ausgangssache. Also das ist irgendwie, man baut die Möglichkeiten im Kugis auf, weil das taucht ja überall und nirgendwo auf, bei Schriftgrößen und und und. Und man kann es sogar noch woanders verwenden. Also das, was man da lernt. Also ich bin von diesen Dingen irgendwie an die Datenbanken gekommen und so.
51:42
Das ist schon wirklich sehr nützlich. Einfach üben, zwischendurch Haare raufen und dann wird es schon. Ja, dann danke schon mal an die Fragen in den Venues. Gibt es ja aus dem Publikum noch Fragen? Das sieht man da doch.
52:06
Vor dem ersten Ausdruck stand, glaube ich, 2int, wenn ich das richtig gesehen habe. Kann das sein? Ja, ja. Genau, was macht denn das? Das ist, das war jetzt hier nicht lebensnotwendig. Das ist praktisch eine Umwandlung in einen ganz zahligen Wert. Also das praktisch, wenn irgendwie ein Textwert rauskommt,
52:23
und du schreibst das in irgendeine Datenbank, die also aber wirklich ganz genau ist, dann musst du das eigentlich umwandeln. Wenn du in einem Geo-Package ist, ist das dann eher so ein bisschen für die Ästhetik, sage ich jetzt mal, dass da nicht mehr die Hochkommas stehen. Weil zum Beispiel im Geo-Package, das biegt das sowieso um. Das sieht da kommt eine Zeichenkette 1, 2 an.
52:42
Und das ist aber ein Zahlenfeld. Okay, 1, 2, mache ich halt eine 12 draus. Und das ist praktisch, es gibt 2int, 2string, 2real oder so. Das ist so eine Umwandlungsgeschichte. Gut, jetzt keine weiteren Fragen. Dann wünsche ich eine schöne Frühstückspause. Vielen Dank.