
Knime
Lessons Learnt in Knime
KNIME, der „Konstanz Information Miner“, ist eine freie Software für die interaktive Datenanalyse. Die Low-Code-Entwicklungsplattform KNIME ermöglicht durch das modulare knotenbasierte Konzept die Integration zahlreicher Verfahren des maschinellen Lernens und des Data-Mining. Die graphische Benutzeroberfläche ermöglicht das einfache und schnelle Aneinandersetzen von Modulen für die Datenvorverarbeitung (ETL: Extraction, Transformation, Loading), der Modellierung und Analyse und der Visualisierung. (Wikipedia, Stand 7. Juli 2023, 8:15)
Standardmässig sind in KNIME 5.2.3 nach der Erstinstallation nur die "Starter Nodes" sichtbar. Das kann in den Einstellungen verändert werden:
Menü "Preferences" (Titelleiste rechts oben, zwischen "Menu" und "Help"
- KNIME MODERN UI
- Nodes included in the node repository and node recommendations
- All nodes
- Starter nodes
- Nodes included in the node repository and node recommendations
Erste Schritte in Knime
Manche Extensions lassen sich weder über den Installer noch über Drag & Drop installieren.
- Installationstipps: Hier gibt es Installationstipps - https://nodepit.com/product/palladian/installation
- Preferences
- Install/Update
- Aviable Software Sites
- Add
- Aviable Software Sites
- Install/Update
- NodePit installieren:
- Preferences > Install/Update > Aviable oftware Sites > Add
- Link passend zur Version eintragen: z.B. https://download.nodepit.com/5.3
- Details: https://nodepit.com/product/nodepit/installation
- Preferences > Install/Update > Aviable oftware Sites > Add
- Extensions können rechts oben über Menü > install Extensions installiert werden.
- ggf. Müssen "Aviable Software Sites" installiert werden
- Alternativ können Nodes und Extensions per Drag & Drop installiert werden (siehe Video)
https://forum.knime.com/t/known-macos-15-4-issue-w...
Einige Conda-Bibliotheken – insbesondere libgfortran (verwendet von Numpy) – enthalten doppelte RPATH-Einträge, wodurch sie unter macOS 15.4 nicht geladen werden können. Dies ist nicht auf KNIME beschränkt; es beruht auf einem bekannten Problem im Numpy-Conda-Forge-Feedstock (https://github.com/conda-forge/numpy-feedstock/iss... 9), für das noch keine dauerhafte Lösung verfügbar ist. In der Zwischenzeit haben wir ein Skript vorbereitet, um doppelte RPATH-Einträge zu entfernen und Bibliotheken bei Bedarf neu zu signieren.
Weiterlesen

Unter Menu > Install Extentions > ist ein Link
- "What is already installed?"
- Hier wird die installierte Software und die Installations-History offengelegt
Für mich wichtige Extensions
- Geospatial Analytics
- Palladian for Knime (via Node-Pit)
- AF Utility Nodes
- Knime Textprocessing
- KNIME Report Designer (BIRT)
Regex
Im Datensatz stehen Postleitzahl, Strasse und Hausnummer in einer Zeile
\d{4}\s\w\D.*
- \d{4} - 4 Ziffern (digits), Grundmuster der Postleitzahl
- \s - 1 Leerzeichen (space) - Schliesst längere Nummern aus (aber auch Zeilenumbrüche)
- \w - 1 Buchstabe (word) - Um Telefonnummern auszuschliessen
- \D - 1 NICHT-Ziffer (Not Digit) - Um Telefonnummern auszuschliessen
- .* - Alles bis zum Zeilenumbruch
Im Datensatz sind E-Mail-Adressen eingebettet als
E-Mail: <a href="mailto:xxxxx@xxxxx.xx">xxxxx@xxxxx.xx</a>
Zielführende RegEx
(?<=E-Mail: <a href="mailto:)(.*)(?=">)
- (?<= - Start-String
- E-Mail: <a href="mailto:) - Merkmal (Start)
- ) - Ende Start String
- (.*) - gesuchter String
- (?= - End-String
- "> - Merkmal (Ende)
- ) - Ende End-String
Im Datensatz sind Titel zwischen <title> und </title> verortet
<title>\s*(.*?)\s*<\/title>
Im Datensatz sind Adressen in einem Container <div class="card-box-inner"> bis </strong> verortet
Zielführende RegEx muss mit dem Flag /gms oder /gs gekennzeichnet sein
- g (global),
- m (multi line)
- s (single line)
<div class="card-box-inner">\s*(.*?)\s*<\/strong
Erste Übungen

Schritt 1: CSV-Reader
- Dateipfad auswählen
- Trennzeichen anpassen (Column delimiter)
- Hat der Datensatz Überschriften? (Has column header)
Schritt 2: Box Plot
- Mit dem Boxplott können rasch die erwünschten Ausreisser gefunden werden.
- Mit den Ausreisser werden auch die Schwellwerte identifiziert (falls diese nicht fachlich argumentiert gesetzt werden)
Schritt 3: Row Filter
- Filter-Spale festlegen (z.B. Puls)
- Operator festlegen (z.B. grösser als)
- Schwellwert festlegen (z.B. 100)

Schritt 1: CSV-Reader
Datensatz mit Adressdaten einlesen (Strasse Hausnummer, Ort, Land, optional: Label)
- Dateipfad auswählen
- Trennzeichen anpassen (Column delimiter)
- Hat der Datensatz Überschriften? (Has column header)
Schritt 2: OpenCage Geocoder
- Für den OpenCage Geocoder ist ein API-Schlüssel notwendiig
- In der Kostenlosen Version können nach Registrierung 2.500 Adressen pro Tag (Stand: 9.05.2023) in Koordinaten verwandelt werden.
- Die Registrierung ist hier möglich https://opencagedata.com/users/sign_up
- Der Geocoder generiert für alle Adressen ein Koordinaten-Paar. Die Input-Spalte wird in unserem Beispiel auf die Angrenzenden Spalten erweitert.
- Alternativ kann auch ein "Column Combiner" und optional ein "Column Filter" vorangestellt werden.
Schritt 3: Map Viewer
Alle. Einstellungen können in der View-Ansicht (Lupen-Symbol am Node oben rechts) verändert werden. Die Karte kann als PNG und SVG exportiert werden.
- Coordinates-Spalte festlegen
- Falls erwünscht: Label festlegen
- Markierungsoption auswählen
- Teardrop = Tränenform
- Circle = Kreis
- Label = Text
- Basiskarte Festlegen
- Apple Maps
- Open Street Maps
- Stamen (Toner, Terrain. Watercolor) --> Hat bei mir am 9.5.2025 nicht funktioniert
- Virtual Earth (Bing)
- Wikimedia
- Hey Gemini, kannst Du mir eine Tabelle mit allen Hauptstädten deutschsprachiger Hauptstädte auf Länder- bzw. kantonaler Ebene erstellen. Die Spalten der Tabelle sollen heissen 1 - Land (National), 2 - Bundesland/Kanton etc. 3 - Stadt, 4 - Latitude, 5 - Longitude
- Kannst Du die Spalten Latitude und longitude aufteilen in die Ziffern vor dem Trennpunkt und den Ziffern nach dem Trennpunkt?
Land (National) | Bundesland/Kanton etc. | Stadt | Latitude (Grad) | Latitude (Minuten) | Longitude (Grad) |
Longitude (Minuten)
|
Lat 2 | Long 2 | |
Deutschland | Baden-Württemberg | Stuttgart | 48 | 7758 | 9 | 1829 | 48.7758 | 9.1829 | |
Deutschland | Bayern | München | 48 | 1371 | 11 | 5754 | 48.1371 | 11.5754 | |
Deutschland | Berlin | Berlin | 52 | 5200 | 13 | 4050 | 52.5200 | 13.4050 | |
Deutschland | Brandenburg | Potsdam | 52 | 3989 | 13 | 589 | 52.3989 | 13.589 | |
Deutschland | Bremen | Bremen | 53 | 758 | 8 | 8078 | 53.758 | 8.8078 | |
Deutschland | Hamburg | Hamburg | 53 | 5511 | 9 | 9937 | 53.5511 | 9.9937 | |
Deutschland | Hessen | Wiesbaden | 50 | 828 | 8 | 2358 | 50.828 | 8.2358 | |
Deutschland | Mecklenburg-Vorpommern | Schwerin | 53 | 6317 | 11 | 4008 | 53.6317 | 11.4008 | |
Deutschland | Niedersachsen | Hannover | 52 | 3759 | 9 | 7320 | 52.3759 | 9.7320 | |
Deutschland | Nordrhein-Westfalen | Düsseldorf | 51 | 2277 | 6 | 7735 | 51.2277 | 6.7735 | |
Deutschland | Rheinland-Pfalz | Mainz | 49 | 9935 | 8 | 2403 | 49.9935 | 8.2403 | |
Deutschland | Saarland | Saarbrücken | 49 | 2373 | 7 | 147 | 49.2373 | 7.147 | |
Deutschland | Sachsen | Dresden | 51 | 504 | 13 | 7373 | 51.504 | 13.7373 | |
Deutschland | Sachsen-Anhalt | Magdeburg | 52 | 1317 | 11 | 6466 | 52.1317 | 11.6466 | |
Deutschland | Schleswig-Holstein | Kiel | 54 | 3233 | 10 | 1228 | 54.3233 | 10.1228 | |
Deutschland | Thüringen | Erfurt | 50 | 9833 | 11 | 233 | 50.9833 | 11.233 | |
Österreich | Burgenland | Eisenstadt | 47 | 8458 | 16 | 5222 | 47.8458 | 16.5222 | |
Österreich | Kärnten | Klagenfurt | 46 | 6258 | 14 | 3053 | 46.6258 | 14.3053 | |
Österreich | Niederösterreich | St. Pölten | 48 | 2050 | 15 | 6333 | 48.2050 | 15.6333 | |
Österreich | Oberösterreich | Linz | 48 | 3062 | 14 | 2867 | 48.3062 | 14.2867 | |
Österreich | Salzburg | Salzburg | 47 | 7978 | 13 | 426 | 47.7978 | 13.426 | |
Österreich | Steiermark | Graz | 47 | 707 | 15 | 4395 | 47.707 | 15.4395 | |
Österreich | Tirol | Innsbruck | 47 | 2692 | 11 | 4041 | 47.2692 | 11.4041 | |
Österreich | Vorarlberg | Bregenz | 47 | 5005 | 9 | 7497 | 47.5005 | 9.7497 | |
Österreich | Wien | Wien | 48 | 2082 | 16 | 3738 | 48.2082 | 16.3738 | |
Schweiz | Aargau | Aarau | 47 | 3927 | 8 | 494 | 47.3927 | 8.494 | |
Schweiz | Appenzell Ausserrhoden | Herisau | 47 | 3833 | 9 | 2833 | 47.3833 | 9.2833 | |
Schweiz | Appenzell Innerrhoden | Appenzell | 47 | 3300 | 9 | 4100 | 47.3300 | 9.4100 | |
Schweiz | Basel-Landschaft | Liestal | 47 | 4861 | 7 | 7347 | 47.4861 | 7.7347 | |
Schweiz | Basel-Stadt | Basel | 47 | 5584 | 7 | 5733 | 47.5584 | 7.5733 | |
Schweiz | Bern | Bern | 46 | 9480 | 7 | 4474 | 46.9480 | 7.4474 | |
Schweiz | Fribourg | Fribourg | 46 | 8028 | 7 | 1500 | 46.8028 | 7.1500 | |
Schweiz | Genève | Genf | 46 | 2044 | 6 | 1431 | 46.2044 | 6.1431 | |
Schweiz | Glarus | Glarus | 47 | 422 | 9 | 658 | 47.422 | 9.658 | |
Schweiz | Graubünden | Chur | 46 | 8568 | 9 | 5330 | 46.8568 | 9.5330 | |
Schweiz | Jura | Delémont | 47 | 3681 | 7 | 3403 | 47.3681 | 7.3403 | |
Schweiz | Luzern | Luzern | 47 | 502 | 8 | 3064 | 47.502 | 8.3064 | |
Schweiz | Neuchâtel | Neuchâtel | 46 | 9928 | 6 | 9319 | 46.9928 | 6.9319 | |
Schweiz | Nidwalden | Stans | 46 | 9633 | 8 | 3650 | 46.9633 | 8.3650 | |
Schweiz | Obwalden | Sarnen | 46 | 9167 | 8 | 2500 | 46.9167 | 8.2500 | |
Schweiz | Schaffhausen | Schaffhausen | 47 | 6972 | 8 | 6333 | 47.6972 | 8.6333 | |
Schweiz | Schwyz | Schwyz | 47 | 167 | 8 | 6500 | 47.167 | 8.6500 | |
Schweiz | Solothurn | Solothurn | 47 | 2077 | 7 | 5317 | 47.2077 | 7.5317 | |
Schweiz | St. Gallen | St. Gallen | 47 | 4239 | 9 | 3747 | 47.4239 | 9.3747 | |
Schweiz | Tessin | Bellinzona | 46 | 1950 | 9 | 236 | 46.1950 | 9.236 | |
Schweiz | Thurgau | Frauenfeld | 47 | 5567 | 8 | 8967 | 47.5567 | 8.8967 | |
Schweiz | Uri | Altdorf | 46 | 8800 | 8 | 6467 | 46.8800 | 8.6467 | |
Schweiz | Valais/Wallis | Sion | 46 | 2333 | 7 | 3667 | 46.2333 | 7.3667 | |
Schweiz | Vaud | Lausanne | 46 | 5197 | 6 | 6323 | 46.5197 | 6.6323 | |
Schweiz | Zug | Zug | 47 | 1667 | 8 | 5167 | 47.1667 | 8.5167 | |
Schweiz | Zürich | Zürich | 47 | 3769 | 8 | 5417 | 47.3769 | 8.5417 | |
Liechtenstein | - | Vaduz | 47 | 1410 | 9 | 5215 | 47.1410 | 9.5215 |
Datenkontrolle (nicht umgesetzt)
Liste der Hauptstädte der Schweiz
http://kantone-staedte.infos-schweiz.ch/
https://mein-lernen.at/geographie/oesterreich-geog...
https://www.sofatutor.com/sachunterricht/videos/bu...

Schritt 1: OSM Boundary Map
Geoshapes können geladen bzw. erzeugt werden. Place Names sind z.B.
- National:
- Switzerland
- Schweiz
- CH
- Germany
- Deutschland
- DE
- Kantonal
- SG, switzerland
- Bayern
- Stadt
- St. Gallen
- München
Schritt 2: Geospatial View
Geomery-Datentypen werden automatisch ausgelesen. Darüber hinaus können eingestellt werden:
- Grösse der Punkte
- Farben
- Basiskarte (auch "Dont Show a base map")
Weiterführende Schritte
- Mit "Concatenate" können Punkte und Boundarys zusammengeführt werden
- Punkte werden generiert eingelesen mittels:
- Table Creator (alteranativ CSV-Reader): Stellt adressdaten zur Verfügung
- OpenCAge Geocoder: wandelt Adressen zu Koordinaten um
- Cell Splitter: Trennt Längengrad von Breitengrad
- Column Renamer: Sorgt für Klarheit und benennt die Spaltend es Cell-Splitters um
- Lat/Lon to Geometry: Wandelt die Koordinaten in Geometrys um.
https://forum.knime.com/t/known-macos-15-4-issue-w...
Einige Conda-Bibliotheken – insbesondere libgfortran (verwendet von Numpy) – enthalten doppelte RPATH-Einträge, wodurch sie unter macOS 15.4 nicht geladen werden können. Dies ist nicht auf KNIME beschränkt; es beruht auf einem bekannten Problem im Numpy-Conda-Forge-Feedstock (https://github.com/conda-forge/numpy-feedstock/iss... 9), für das noch keine dauerhafte Lösung verfügbar ist. In der Zwischenzeit haben wir ein Skript vorbereitet, um doppelte RPATH-Einträge zu entfernen und Bibliotheken bei Bedarf neu zu signieren.
Weiterlesen