Visualisierung - Karte
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 | 11 | |
Author | ||
License | CC Attribution - ShareAlike 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 and the work or content is shared also in adapted form only under the conditions of this | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2023 | |
Production Place | Aachen |
Content Metadata
Subject Area | |
Genre |
1
2
3
4
5
6
7
9
10
11
00:00
AachenComputer animation
Transcript: German(auto-generated)
00:06
Jetzt zeige ich Ihnen noch einmal, wie Sie mit Python die Probleme auch auf einer Karte darstellen können und auch die Lösung. Dafür benutzen wir einmal GeoPandas. In dem Online Kurs haben wir Ihnen auch die entsprechende
00:25
Installationsanleitung dafür verlinkt und dann brauchen wir, um eine Karte zu halten, ist der Programmcode relativ einfach, aber wir brauchen eine Grundlage für die Karte. Im Online Kurs finden Sie die Landkreise von NRW als GeoJSON
00:46
verlinkt. Dann müssen Sie, wie hier gesagt am Landkreis GeoJSON, brauchen Sie die Datei direkt in Ihrem Ordner und müssen ihn dort rein kopieren. Mit GeoPandas können wir dann eine einfache ReadFile-Funktion aufrufen, ein paar Farben und
01:06
dann plotten wir die Karte direkt. Das geht einfach mit einer einfachen Funktion plot, die wir dann einmal an die Figur von Matplotlib binden müssen. Dann kann man
01:21
einfach die Funktion plotMap und erhält eine Karte von NRW und hier haben wir die Longitude und Latitude und das gibt sich direkt aus der GeoJSON-Funktion.
01:52
Wir wollen jetzt nicht nur die Karte malen, sondern wir wollen auch die Produktionsstandorte und die Abnehmer oder die Kunden schreiben. Was wir dafür tun,
02:05
wir müssen die Daten vorbereiten. Das habe ich jetzt hier einmal gemacht. Also das sehen wir hier. Wir sehen einen Array, wo wir die möglichen Produktionsanlagen mit ihren
02:22
Koordinaten aufgenommen haben. Die Koordinaten haben wir einfach aus Online-Ressourcen genommen und hier eingefügt und untergeschrieben. Wie stelle ich jetzt, wie bringe ich jetzt
02:41
diese Daten auf die Karte? Was ich tun kann, es gibt eine sogenannte Scatter-Funktion auf den Matplotlib-Figuren und dafür muss ich immer unterteilen, was sind meine Achsenwerte.
03:14
Das heißt, ich muss aus der Produktion hier aussuchen, was meine X-Achse ist und das ist
03:21
die Stelle 2. Also wir ziehen wieder 0, 1, 2. Was ich damit tue, ich nehme jetzt value an der Stelle 2 for value in production. Das heißt, ich halte jetzt immer genau die Werte, die X-Werte.
03:49
Dann muss ich das Ganze noch mit dem Y-Wert machen. Hier ist es 1 und hier ist es 1,
04:17
weil hier der erste Wert ich übernehme. Also dann habe ich die letzte Funktion AX,
04:35
Y-Values und dann kann ich noch zum Beispiel eine Farbe angeben. In diesem Fall gelb,
04:49
yellow und ich kann auch ein Label angeben, Produktion. Und da ich hier immer noch weiter
05:03
in der gleichen Figur gebunden bin, müsste ich jetzt die Produktionsstandorte auf der Karte erhalten. Und Sie sehen, das funktioniert. Ich habe hier genau die Produktionsstandorte in Krefeld, Erne und Paderborn auf der Karte von NRW. Ich kann jetzt das Gleiche mit den
05:27
Kunden machen. Das funktioniert direkt analog. Das heißt, ich habe es jetzt hier einmal einkopiert. Ich nehme wieder hier oben meine Kunden oder auch Sinks und wähle wieder für
05:41
die X-Varianten den zweiten Schritt aus. Für die Y-Werte Nummer 1. Als Erinnerung, hier vorne, wenn ich die Namen annehmen würde, müsste ich value 0 benutzen und wähle die Farbe und kriege dann auch meine Kunden. Ich schüre es aus und sehe dann die Abnahmezentren auch
06:06
auf die Karte gemacht. Jetzt habe ich die Labels ja nicht einfach so hinzugefügt. Ich möchte auch zum Beispiel eine Legende haben. Das werde ich jetzt nicht im Detail erklären.
06:26
Dann muss man ein paar der Funktionen der Modplotlib benutzen, um die Legende zu positionieren. Das schauen Sie bitte in der Dokumentation nach, wenn Sie das interessiert.
06:44
Aber wenn ich die Funktion einfüge, halte ich jetzt die Legende an der Seite und habe dann Produktion und rote Kunden. Wie wir es auch schon vorher gesehen haben, kann ich jetzt zum Beispiel auch wieder und kann mir sagen, okay, das ist jetzt eigentlich meine Problembeschreibung.
07:15
Das heißt, ich füge das aus und sage, okay, meine Problembeschreibung, das sind meine Produktionsstandorte, meine Kundenstandorte. Ich möchte die jetzt verbinden, aber so kann
07:28
schon einfach einmal ausgeben, okay, ich habe ein Problem BNG, das ich dann auch öffnen kann und benutzen kann. Ich möchte jetzt natürlich nicht nur das Problem zeichnen, sondern ich
07:44
möchte auch eine Lösung zeichnen. Dafür werde ich jetzt einige Hilfsfunktionen beschreiben, da ich zum Beispiel diese Funktionsteile, wo ich die Produktionsstandorte und die Kunden oder Abnahmezentren auf die Karte male, die möchte ich auch dafür verwenden,
08:05
wenn ich später die Verbindung zeichne. Das heißt, was ich mache, ich sage jetzt zum Beispiel, ich definiere eine Funktion, Plot Modules, übernehme dann hier die Produktion,
08:29
kopiere das heraus und füge einfach die Funktion hier ein. Ich übergebe die Figur
08:45
und ich tue das gleiche mit Plot Sinks. Das heißt, das hilft mir gleich helfen,
09:00
den gleichen Programmcode wieder zu verwenden, wenn ich statt Plot Map auch Plot Solution benutzen möchte. Das heißt, man könnte das jetzt noch weiter machen, das heißt,
09:23
ich abstrahiere noch mehr das Einlesen der Karte und das Positionieren der Legende, aber ich denke, sie haben das Konzept verstanden. Das heißt, was ich jetzt machen werde, ich werde eine Funktion schreiben, ich werde einmal das hier kopieren,
09:40
die Plot Solution heißt und ich verwende jetzt hier Code wieder. Also was muss ich jetzt tun? Ich muss eine Lösung haben, die ich aus der Case Study benutze. Ich kann
10:06
jetzt hier zum Beispiel direkt die Pythons, die Korobi Variablen reingeben. Das heißt, ich nehme zum Beispiel, wie wir es in der Case Study haben, ich könnte jetzt das Feld
10:22
Xij übergeben an die Visualisierungsfunktion und dann kann ich das so aufrichten, also wo ich hier praktisch rausschreibe, gebe ich dann meiner Bildsprache, dass ich eine Verbindungslinie zwischen diesen ziehen soll. Also, da habe ich hier beiden
10:44
gemalt und das heißt, ich werde jetzt intervieren über die Produktionsstandorte.
11:02
Also, ich interviere über die hier, das ist praktisch eine Range von 0 bis 2 und für jeden Produktionsstandort möchte ich sehen, zu welchem Kunden er liefert. Das heißt,
11:22
für J der Kunde und in diesem Fall des Sinks. So, und was ich jetzt mache, ich frage jetzt aus der Solution die Varianten ab. Also, was tue ich? Ich habe hier Solution,
11:45
übergebe ich die X-Variable, das heißt, ich kann jetzt zum Beispiel Solution an der
12:01
Stelle i,j.x, das ist ja, wie wir Gorubi-Variablen auslesen. Jetzt kann ich sagen, wenn die größer als 0 ist, dann plotte mir doch bitte eine Linie zwischen der Produktionsstandort
12:29
und dem Kunden. So, was ich jetzt denken muss, ist, dass ich wieder genau wie vorher erst
12:41
die beiden X-Werte beschreiben muss in einem Array. Also, wie wir es hier oben hatten, das Value 2 auslesen muss und dann muss ich die Y-Werte beschreiben. Also, an der Stelle i und 2 für die X-Werte, das ist mein erster X-Wert, und dann nehme ich Sinks
13:13
wieder an der Stelle j, weil das ja unsere Kunden sind, und dann wähle ich den zweiten Wert, wie hier oben beschrieben, aus. Das sind unsere X-Werte. Das heißt, jetzt muss ich das
13:31
gleiche mit den Y-Werten machen, also ich kann das hier kopieren, füge das ein und wähle jeweils den Y-Wert aus. Dann kann ich dem Ganzen noch, wie vorher, auch eine Farbe geben,
13:48
die mir gefällt, zum Beispiel K. Und jetzt wird diese Schleife durchlaufen mit der Lösung. Was ich jetzt noch machen muss, ich muss, wie auch vorher, ich muss diese Funktion plotSolution
14:04
einlesen und importieren, also brauche ich hier plotK. Und jetzt muss ich hier unten, ruf ich auch wieder unter plotSolution. Und jetzt hatten wir ja gesagt, dass plotSolution
14:27
genau die X-Gorobi-Werte als Wert nimmt. Alles klar, dann muss ich das hier einmal ausführen. Und dann erhalte ich das Zeichnen von Produktion an Kunden, wenn genau der Wert so gesetzt ist.
14:51
Also was sehen wir hier? Von zum Beispiel Standort 3 eröffnen wir gar nicht, was hier ein Paderborn ist. Und wir sehen, es werden auch keine Verbindungen gezeichnet und von
15:05
Standort 3 und 5 gezeichnet und von Standort 1 wird nur zu Kunde 4 und 5 gezeichnet. Wir sehen, hier gibt es keine Verbindungen. Jetzt sehen Sie aber auch, dass die Auflösung des Bildes zum Beispiel nicht gut ist, dass sich teilweise die Skalierung hier unterscheiden.
15:30
Ich bitte Sie dann in matplotlib zu schauen, um zu sehen, was Sie alles tun können, um das
15:40
anzupassen. Im Online-Kurs sehen Sie auch ein paar Vorschläge, das habe ich jetzt hier auch einmal eingefügt, um das Bild zu skalieren, weil so sieht man es nicht relativ gut. Sie können auch Auflösungen anpassen und so weiter. Wie gesagt, ich empfehle Ihnen die Dokumentation zu lesen und dann können Sie die Bilder auch in einer Größe
16:11
anpassen, wie ich es jetzt hier getan habe. Und Sie sehen das Ganze mit einem deutlich größeren Detailgrad als vorher. Wenn Sie hier oben reinschauen, können Sie auch
16:22
sehen, das war die frühere Darstellung und jetzt haben wir das Ganze mit einem deutlich höheren Detailgrad dargestellt.