We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

OpenStreetMap und R

00:00

Formal Metadata

Title
OpenStreetMap und R
Subtitle
Integration freier Geodaten in die Lingua franca der Statistik
Title of Series
Number of Parts
47
Author
License
CC Attribution 3.0 Unported:
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
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Dieser Vortrag stellt eine Schnittstelle zwischen der freien Statistiksoftware R und der OpenStreetMap-Datenbank vor. Das R Add-On Paket "osmar" ermöglicht einen einfachen Zugriff auf OSM-Daten aus verschiedenen Quellen, ein - für den R-Benutzer - gewohntes Arbeiten mit diesen Daten und das Konvertieren der OSM-Daten in Objekte anderer R Add-On Pakete. Das freie Projekt R hat sich in den letzten Jahren zu einer ernstzunehmenden Softwareumgebung in der akademischen Statistik entwickelt. Durch die Möglichkeit Add-On Pakete zu schreiben, bietet R inzwischen einen gewaltigen Funktionsumfang in allen möglichen Teilbereichen der Statistik und Datenanalyse. Die Verknüpfung eigener Daten mit Geodaten stellt in vielen Fällen eine Bereicherung der Analyse dar. Und auch durch die statistische Auswertung der Geodaten ansich, können sich spannende Analysen und neue Erkenntnisse ergeben. Aus diesem Grund, bietet das Add-On Paket "osmar" eine Integration der OpenStreetMap-Daten in das R-Projekt an. Dieser Vortrag gibt eine kurze allgemeine Einführung in das R-Projekt und stellt dann das Add-On Paket "osmar" vor. Anhand von Beispielanwendung werden die drei Kernpunkte des Paketes dargestellt: (1) Der Zugrif auf OSM-Daten aus unterschiedlichen Quellen (API v0.6 und Planet files). (2) Das einfache Arbeiten mit diesen Daten in gewohnter R Manier; d.h., das Begutachten, Zusammenfassen und Visualisieren, sowie das Suchen und Bilden von Teildatensätzen. (3) Das Konvertieren der OSM-Daten in Objekte anderer Add-On Pakete; zum Beispiel in die Pakete "sp" und "igraph", welche Strukturen und Analysemethoden für räumliche Daten bzw. Graphen bereitstellen.
17
27
29
34
Thumbnail
25:44
47
PlotterProgramming languageRun-time systemData analysisOpen sourceStatistikerSummierbarkeitMAX <Programm>HaXe <Programmiersprache>Router (computing)Version <Informatik>Customer relationship managementDatabaseFunction (mathematics)Maximum (disambiguation)Moment (mathematics)DatabaseSoftwareXMLZahlVelocityRow (database)StatisticsState of matterVersion <Informatik>Vector graphicsEckeObject (grammar)Attribute grammarRootkitSummationCorrelation and dependenceComputer programmingGeodesicLinear regressionRoute of administrationFRAMEWORK <Programm>Digital-to-analog converterWordDownloadSpring (hydrology)CodeIntegerAverageDepictionSummierbarkeitOpen sourceStatistikerData analysisComputer animation
APISocial classLocal area networkWeb serviceOnline chatSubsetField extensionMetreNumberVersion <Informatik>TOSRaw image formatConvolutionSocial classPoint (geometry)Element (mathematics)Row (database)Attribute grammarMotion (physics)RectangleSpeciesZusammenhang <Mathematik>SubsetFunction (mathematics)Source codeWeb browserClefCoordinate systemObject (grammar)SquareDesktopMetreAPIDownloadListe <Informatik>Equivalence relationFrame problemRuby on RailsSet (mathematics)PlotterComputer animation
GeodesicInterpolationHome pageDigital-to-analog converterLecture/Conference
HTTPFamilySubsetClefWeb serviceMetreStatisticsRow (database)LengthInformationTermumformungData analysisTable (information)MetreRAMStatistikerNapster <Programm>Route of administrationPoint (geometry)Flock (web browser)Asset <Informatik>VorverarbeitungDatabaseExecution unitComputer fileComputer animation
Transcript: German(auto-generated)
Also ich stelle euch jetzt das Thema OpenStreetMap und R vor. Integration freier Geodaten in die lingua franca der Statistik. Mein Name ist Thomas Stesinger und kurz was zu mir. Ich studiere im zweiten Mastersemester Statistik an der LMU München. Mein Bachelor habe ich auch in Statistik in München gemacht und bin jetzt hier und stelle ich das Thema vor.
Wie wird der Vortrag jetzt ablaufen? Erstmal gibt es eine ganz kurze Einführung in R für Personen, die damit noch nichts zu tun hatten. Und dann kommen wir auch schon zum Thema, wie ich OpenStreetMap in R eingebunden habe. Mit Hilfe eines Packages. Also erstmal ein paar Fakten zu R. Was ist R überhaupt? R ist eine Proamiersprache und Proamierergebung für die statistische Datenanalyse.
Basiert auf der Sprache S. Und ja, bis so. Basiert auf der Sprache S. Und wird vor allem im akademischen Bereich benutzt. Es ist vor allem dafür da, effektiv Daten zu analysieren und hübsche Grafiken zu erstellen auch.
Und es wird geschätzt, dass es 250.000 Benutzer gibt, die vor allem im akademischen Bereich in der Forschung arbeiten. R ist auch eine Open Source Software, die man sich runterlädt und damit dann mit R arbeiten kann. Insgesamt gibt es dafür etwa 3600 Packages mit Funktionen, die schon für Statistiker da sind.
Um damit weiter zu arbeiten. Und R nimmt vor allem auch eine Vorreiterolle im bedeckten neuer statistischen Methoden ein. Denn wenn sich Statistiker irgendwelche sich neue Theorie überlegen, wird das meistens zuerst in R in Funktionen implementiert. Und dann weiter in kommerzielle Software wie SPSS oder SAS weiterverarbeitet.
Also wer in Statistik up to date sein will, sollte auf jeden Fall R benutzen. Dann, wie sieht R überhaupt aus? R basiert sehr viel auf Vektoren, also sehr viel mit Vektoren gearbeitet. Beispielhaft ist jetzt hier ein Zahlenvektor erstellt worden. 159 habe ich jetzt unter A abgespricht und wenn man A enttippen würde mit Enter, würde jetzt 159 rauskommen.
Mit diesem Vektor kann man noch einiges anstellen. Man kann darauf Funktionen anwenden. Funktionen sehen so in der Art aus, dass man ein Wort hat mit roten Klammern rum. Die füttert man dann mit irgendwelchen Objekten. Also ein Vektor, der aus Nummer besteht oder aus Buchstaben oder sonst irgendwas, was es in R so gibt.
Und dann wird dieses Objekt evaluiert. Hier habe ich jetzt die Wurzelfunktion SQRT, Square Root benutzt. Und das wird jetzt die Wurzel jedes dieser einzelnen Elemente erzeugt. Man kann auch auf die einzelnen Stellen dieses Vektors zugreifen mit Eckenklammern. A Ecke Klammer 3 wäre die 9. Wurzel aus 9 ist 3.
Dann Grundechniken sind auch in R implementiert. Hier haben wir zum Beispiel Mal 5. Der würde immer diesen ganzen Vektor mal 5 nehmen. Und die Summenfunktion ist auch eine wichtige Funktion. Also man müsste jetzt zum Beispiel keine Fortschleife schreiben, um irgendwie die Summe dazu zu machen. Um die ganzen Zahlen zu addieren. Er würde jetzt einfach nur Summen von A und 15 rauskommen.
Ein anderes wichtiges Objekt ist der DataFrame. Nämlich die ganzen Datensätze werden im Regelfall so dargestellt. Hier haben wir jetzt den typischen Datensatz in Aircast, der auch schon in der Airsoft implementiert ist. Die ersten 6 Zeilen. Einmal die Geschwindigkeit und die Bremsdistance von verschiedenen Autos. Man kann auch auf die einzelnen Varianten zugreifen mit Hilfe des Dollar-Symbols.
Die ersten 5 Zeilen sehen wir hier. Das entspricht auch genau dem, was wir hier sehen. 4, 4, 7, 7, 8. Auf ein DataFrame kann man auch Funktionen anwenden. In dem Fall die Sammelfunktion ist sehr wichtig. Sammelfunktionen gibt es eigentlich für fast alle Objekte, die in Air existieren.
In dem Fall Minimo, Maximo, Median, Mittelwert usw. Noch wichtig ist die Plot-Funktion. Auf den Code oben würde ich jetzt nicht genauer eingehen. Aber man sieht, dass man mit 3, wenn man sich mit Air auskennt, sind die 3 Zeilen Code wirklich sehr einfach. Und mit diesen 3 Zeilen kann man eigentlich schon relativ außererkräftige Grafik erstellen.
Man hat hier unter X-Achse die Geschwindigkeit der Autos. Dann die Bremsdistance. Die einzelnen Punkte sollen die einzelnen Autos darstellen. Lineare Regressionen und oben die Korrelation. Das war es erstmal zu Air. Ihr wisst ungefähr, wie es aussieht. Jetzt kommen wir schon zum Thema OSMA.
OSMA ist ein Paket für Air. Ein Paket ist eine Sammlung von Funktionen, die die User geschrieben haben. Und die man sich dann herunterladen kann. Das Ziel von OSMA war, die Daten der OpenStreetMap-Community herunterzuladen und dem Air-User zur Verfügung zu stellen.
Damit der Air-User dann damit weiterarbeiten kann in einer Art, wie es gewohnt ist. OSMA leitet sich aus dem Namen OpenStreetMapMapA, OSMA, OSMA ab. Und das ist im Rahmen meiner Bachelorarbeit OpenStreetMapMapA entstanden. Genau, die habe ich geschrieben.
Das Programmiertechnische haben allerdings der Manuel Eugster und ich zusammen gemacht. Der Manuel Eugster ist gerade in München, aber ich stelle es jetzt hier vor. Die Version 1.0 ist am 1.9.2011 auf Ceran hochgeladen worden.
Ceran ist quasi die ganze Datenbank, auf der die ganzen Funktionssammlungen der User zu fitten sind. Und man kann auf AUS-R direkt darauf zugreifen und sich die Neufunktionalität herunterladen. So, jetzt eine schematische Darstellung dieses OSMA-Konzepts. Man bekommt die Daten im Regelfall über Planet-Files, also Osmosis über Planet-Dumps
oder direkt über die Datenbank, also über die AP in der Version 0.6. Zurückbekommen tut man immer dieses OSM.xml-File. Und die Funktion, die wir implementiert haben, getOSM, wandelt dieses OSM.xml-File in ein objekt um, mit dem der AUSER weiterarbeiten kann, ein sogenanntes OSMA-Objekt.
Auf dieses OSMA-Objekt, dazu komme ich später noch, wie das genau aussieht, kann man Standard-R-Funktionen, die wir auch implementiert haben, anwenden.
Hier in dem Punkt muss man sagen, ist es eigentlich schon das Ziel von dem OSMA-Projekt erreicht. Denn wir haben jetzt die Daten, die man durch verschiedene Quellen bekommt, verlustfrei konvertiert in eine Art, in der der AUSER damit weiterarbeiten kann, ohne wirklich Ahnung von diesem ganzen Framework hier zu haben, wie man die Daten bekommt und wie dieses OSM.xml-Objekt wirklich aussieht.
Weil wir auch Spaß an der Sache hatten, haben wir ein bisschen weiter gearbeitet und probiert dieses OSMA-Objekt in weitere Packages, wie das iGraph-Package, was zum Beispiel Navigation erlaubt, oder das SP-Package, was sehr wichtig für Geodaten in R ist. Das haben wir weiter implementiert, dazu komme ich aber später noch mal ein bisschen.
Und SP-Pump-Pump-Pump soll schon andeuten, dass es eigentlich keine Grenzen gibt. Das heißt, andere User können sich noch andere Konverter überlegen, um damit weiter zu arbeiten mit den Daten in R. Dann jetzt nochmal, das wird den meisten wahrscheinlich schon bekannt vorkommen, aber nochmal eine kurze Struktur der OBS-DeepNet-Datenbank.
Es besteht aus Nodes, Rays und Relations. In Nodes befinden sich die iGraphischen Punkte. Rays bestehen immer aus mehreren Nodes und Relations zeigen Verbindungen zwischen Nodes, Rays und Relations an. Sämtliche Objekte enthalten immer eine eindeutige ID, ein User, dann ein Timestamp, also einen Zeitpunkt, eine Version und andere Attribute.
Und der Inhalt dieser einzelnen Objekte wird durch Text dargestellt in der Form Key-Gleich-Value, Beispiel High-Value-Gleich-Traffic-Signal, also eine Ampel. Zusätzlich haben Nodes nur diese geografische Formation enthalten, also die Breiten- und Längengrade. Also die Breiten- und Längengrade, genau, die sind in Rays und Relations so an sich nicht enthalten.
In Rays und Relations sind immer nur Referenzen zu diesen Nodes enthalten, damit man weiß, wo sich die Rays und Relations denn wirklich befinden. Also quasi die Verbindung zu den anderen Objekten. So, dann kommen wir jetzt zu ein paar Funktionen, die Osmar schon bietet. Wir fangen an mit dem Datenimport. Es gibt immer zwei Möglichkeiten, über die API in Version 0.6 oder über die Planet Files.
Im Beispiel habe ich jetzt hier die API genommen. Wir müssen erstmal die Source angeben, osm.source.api, über die ul. Wer sich mit der API auskennt, weiß, das muss man immer normalerweise im Browser eingeben. Dann haben wir die Funktion enthüllt CenterBeeBox. Der muss man übergeben einen Längengrad und einen Breitengrad, das ist ungefähr hier, also vielleicht ein paar Straßen weiter.
Und eine Größe dieser Box, in dem Fall 2000 x 2000 Meter. Also eine rechteckige Box, die wir dann drum herum bilden. Das speichern wir unter dem Buchstaben BB ab, für BeeBox.
Als nächstes übergibt man der Funktion getOSM. Diese BeeBox, also diesen Kasten, diesen vordefinierten Kasten, den wir vorgedefiniert haben. Und eine Quelle, wo wir das dann her haben wollen. Und speichern das unter Dessau ab. Und Dessau ist jetzt nun ein Objekt der Klasse Osmar, wie wir sehen, Klasse Dessau Osmar.
Also es wurden jetzt quasi alle, also sämtliche Daten, diese OSM XML Files wurden jetzt konvertiert in dieses Osmar Objekt. Wie sieht dieses Osmar Objekt aus? Es ist eine Liste aus drei Elementen. Äquivalenz zu dem der OSM Datenbank, nämlich Nodes, Rays und Relations.
Und jedes der einzelnen Elemente ist wiederum eine Liste aus jeweils zwei beziehungsweise drei Data Frames mit dem ganzen Inhalt. Beispielhaft sehen wir jetzt hier zum Beispiel aus dem Dessau Objekt im Node Element die Attribute, die ersten sechs Teilen.
Haben wir jetzt hier in einer, genau in R-Manier umgeformt, sodass wir ein hübsches Data Frame haben. Es geht natürlich noch weiter, also wir sehen hier in der Folie vorher, es gibt zusammen 10.400 Nodes, die werden in diesem Objekt enthalten. Hier haben wir jetzt die ersten sechs Zahlen mit den Attributen, die man aus der OSM XML Files schon kennt.
ID, Breitengrad, User, User ID, Visible, unten geht es weiter, Vision, Change Set und Timestamp. Tags und References sind auch in einer Data Frame Art implementiert. Hier ist es so, dass wir die ersten vier Zahlen jetzt angezeigt bekommen vom Rays Objekt in diesem Dessau Objekt.
Zu lesen ist es so, dass die ID 1, 9, 2, 2, 7, 2, 5, 4 hat die beiden Keys, Highway und Surface, jeweils mit dem Value, Foot, Rail gleich unpaved. Und diese ID hat jeweils dieses Key und Value und das geht so weiter. Also es ist auch keine Grenze gesetzt, wie viele Keys und Values ein ID haben kann, das wird einfach alles verlustfrei konvertiert.
Bei den References ist es genauso. Wir sehen jetzt, diese ID besteht aus diesen Node IDs. Und diese Node IDs müssen wir jetzt noch mal separat in diesem Node Listen Element nachgucken, damit man weiß, wo sich dieses Value überhaupt befindet. Weiter geht es mit den Funktionen Summary, Find und Subset.
Die Summary Funktion könnte man anwenden auf das Dessau Objekt, indem man Summary Dessau eingibt. Der Output will jetzt aber die Folie ein bisschen sprengen, darum habe ich es probiert so ein bisschen zusammenzufassen. Ausgegeben wären zum Beispiel die Bounding Box, also in welchem Bereich befindet sich überhaupt, dass sie heruntergeladen haben.
Wer sich mit der API auskennt, weiß, dass immer so ein bisschen mehr heruntergeladen wird, als man eigentlich braucht, durch Rays, die vielleicht rausführen. Und da man auch nicht nur in die B-Box funktionieren kann, sondern auch nur einzelne Relations Rays und Nodes herunterladen kann, ist sie vielleicht ganz nützlich. Also in welchem Bereich befindet sich das überhaupt? Und eine Auflistung der häufigsten Key-Value-Kombination in dieser Form.
Wir sehen jetzt hier, dass bei den Rays sehr häufig Building gleich jetzt vorkommt, 1300 Mal, oder Surface gleich paved. Das ist vor allem wichtig für User, die mit dem OSM-Framwork jetzt nicht so bekannt, also nicht so viel zu tun haben, damit sie wissen, wie sie denn die Find- und Subset-Funktion anwenden können.
Hier habe ich jetzt probiert, in diesem vordefinierten Desktop-Objekt sämtliche Nodes zu finden, die den Tag mit der Key-Entity und Value-Gleich-Bench haben, also Sitzbänke sind. Der kam relativ häufig hier in der Gegend vor. Zu heraus bekommen wir dann die IDs, hier die ersten 5 aufgelistet, die jetzt einfach nur die IDs, der Nodes sind, die diesen Kriterien entsprechen.
Mit den IDs können wir noch nicht so viel anfangen. Darum bilden wir jetzt mit Hilfe dieser Subset-Befehls eine Timing aus diesem Desktop-Objekt. Und übergeben wir jetzt das OSM-Objekt Desktop.
Unter Node-IDs übergeben wir jetzt die Bench-IDs, die wir vorher hier herausgefiltert haben. Und heraus bekommen wir ein neues OSM-Objekt mit 51 Nodes. Das heißt, in diesem OSM-Objekt befinden sich jetzt sämtliche Sitzbänke, die in diesem 2000 x 2000 Meter Kasten, den wir voruntergeladen haben, sich befinden.
Das Ganze können wir jetzt auch noch plotten. Mit Plot... da kommt es theoretisch besser hin, aber hier habe ich jetzt noch ein bisschen mehr gemacht. Einmal haben wir diesen 2000 x 2000 Meter Bounding-Box hier geplottet. Mit den roten Sternchen sind jetzt die Sitzbänke markiert. Das blaue Sternchen ist jetzt ungefähr unser Standort.
Und mit grün sind das noch alle Straßen mit den Tags MaxSpeedBlight30, das heißt alle 30er-Zonen eingezeichnet. Zu sagen ist, dass es nur eine Darstellung von den Rohdaten ist, ohne irgendwelche Transformationen in den Wege S84-Elepsuiden und so weiter. Das heißt, wenn wir jetzt keine rechteckige Bounding-Box heruntergeladen hätten, sagen wir mal 100 x 2000 Meter,
dann würde er das trotzdem auf ein Quadrat zerren und die Formen, die in Wirklichkeit da sind, würden noch nicht so gemacht werden. Dafür bräuchte man allerdings dann das SP-Package, wo ich dann gleich zukomme. Jetzt erstmal ein paar Anwendungsbeispiele, was man mit Ausländer überhaupt machen kann.
Wenn wir jetzt mal ganz unabhängig davon ausgehen, wir würden jetzt verschiedene Koordinaten von Sitzbänken haben, Längen und Breitengrade. Wir wollen jetzt wissen, was für einen Zusammenhang gibt es zwischen den Straßenarten und den Sitzbänken.
Also sind Sitzbänke eher an Hauptstraßen oder an Gehwegen oder in Perks und so weiter. Wir haben aber echt nur diese Koordinaten dieser Sitzbänke. Dann könnten wir jetzt mit Hilfe des Paketes einfach diesen Datensatz erweitern, indem wir jetzt für jede Koordinate einen 50 x 50 Meter Box herunterladen.
In dieser Box zählen, was für Straßenarten und Gebäude sind dann da und diese dann zum DataFrame hinzufügen. Außerdem würde das Ergebnis dann so, die ersten fünf Zeilen zum Beispiel, dass wir dann unser Ursprungs-DataFrame, was so aussieht, erweitert haben. Mit den Values, die man von dem Key-Highway vielleicht schon kennt, Footwear, Secondary, Primary, Residential und Building.
Das heißt, wir haben jetzt quasi unser Datensatz, der vorne so klein wie erweitert wird, mit neuen Daten, die OpenSeatMap zur Verfügung stellt. Die schon in OpenSeatMap eingetragen sind. Ein weiteres Beispiel wäre das Compressor-Grafik, die jetzt auch schon für die Sitzbänke schon transformiert wurde.
Hier habe ich jetzt ein 10 x 10 Kilometer, also 10 Kilometer x 10 Kilometer Bereich oben. Wer jetzt den Startpunkt herunterladen und diesen in 1150 Rastepunkte eingetragen hat, also 34 x 34, und jeden dieser Punkte gezählt, wie viel man noch gibt überhaupt, und dann diesen Rastepunkt eingetragen, vom Weißen zu Brot, das heißt, wenig noch, viel noch.
Zur Orientierung ist oben nochmal die M eingetragen und letztliche Weights für die Key-Builder jetzt. Die Aufnahme läuft. Das würde man natürlich noch verwalten, indem man vielleicht die Trenntrags begreift. Das ist für ganz Deutschland zum Beispiel so, das habe ich auch echt nicht gemacht, aber das war schon ein bisschen, was da rauskommt.
Dann Weißepakete, dann das eigene Package, was du vorhin schon erwähnt hast. Das erlaubt zum Beispiel mit Hilfe der Ausgangslagen eher die Nutzung als Migration. Das wird dann auf einem Paper, was wahrscheinlich im Sommer im Erdlaune erscheint wird, nochmal genauer erwähnt.
Und auf der Homepage schiebst du auch nochmal ein Beispiel, wie man das macht. Dann die Konvertierung ins SP-Package. Erlaubt noch die Arbeit über Weißepaketen, die andere Geodaten zufügen haben. Also das heißt, wenn man irgendwelche Geodaten mehr zufügen hat, sollte man auf jeden Fall nicht auf das SP-Package angucken,
weil fast letztlich die Packages haben irgendwie was mit SP zu tun, beziehungsweise sind sie basiert auf den Objekten, die von SP zufügen gestellt wurden. Darum haben wir vielleicht den Konverter eingebaut, um dieses Poster-Objekt, oder diese Art von Laterframes, um das SP-Package, also das SP-Package umzuwandeln. Und das ermöglicht dann auch noch zum Beispiel rollende Daten hinzuzufügen,
zwischen rollende Divisionen, bis wir das von den Sitzwerken erwähnt haben, also was zum Beispiel zwischen Straßenladung und Sitzwerk und den Fliegen aus der Art rollende Interpolation ist. Als Ausblick legen wir auf das Ziel, das ganze Schema, was vorher war,
also von rechts nach links, also von der USMX-Analyse, in das Auswahlwerk-Leiterpaket umzukehren. Das heißt, wenn Personen mit irgendeinem SP-Analyse oder Auswahlwerk ankehren, mit verschiedenen Daten, dass wir das dann irgendwie umkehren und rollen auf die USM-Daten ab. Oder wenn diese Daten zum Beispiel noch nicht da sind.
Dann nochmal eine kurze Zusammenfassung. Was ist er nochmal? Also er ist eine OBS-Software für statistische Datenanalyse. Das Auswahlpaket erweitert er um die Datenbacken der OBS 7 Community und ermöglicht statistische Analysen. Also es ermöglicht einem neuen Kreis von Benutzern, die noch nicht wirklich viel mit OBS 7 zu tun haben,
einfach mit den Daten von OBS 7 zu arbeiten und damit irgendwas anzustellen. Und durch das OBS Source-Konzept können Sie damit auch weiterarbeiten. Weitere Informationen gibt es auf der Seite osma.airproject.org, wo auch nochmal die Präsentation drauf ist. Und wie die Grafik hier entdeckt zu diesen Grafiken ist hier auch nochmal drauf.
Genau. Dann danke für die Aufmerksamkeit und könnt jetzt Fragen stellen. Ja, vielen Dank und ich sehe auch schon die ersten Hände, die Fragen haben.
Hallo. Wie sieht denn das mit der Performance in R mit den Geo-Daten oder mit den OSM-Daten aus? Also ich selber habe auch schon eine Weile mit R zu tun und wir arbeiten mit 32.000 Datensätzen und da rechnet der schon eine Weile. Ja, das rechnet schon ein bisschen länger. Also kann man schon sagen. Also mit ganz großen Datensätzen haben wir es jetzt nicht ausprobiert, aber
also das, was sich diese Grafik hat jetzt zum Beispiel schon ein bisschen gedauert, bis ich da irgendwie alles sortiert habe, aber das ist ja auch nur ein Anfang. Also da ist vielleicht noch mehr. Also das Ziel war halt erst mal, die Daten dem AIO zu Verfügung zu stellen und dann damit kann er dann machen, was wir wollen. Die Weiterarbeit kommt jetzt noch so ein bisschen. Genau.
Weitere Fragen? So komme ich auch zu meinem Spot. Verstehe ich das richtig? Ihr lest die XML-Datei und ladet die Daten dann in den Speicher
oder werden die in irgendeinem R-internen Format dann auch wieder abgespeichert oder existieren die nur im RAM oder wie läuft das? Also in R gibt es wiederum einen XML-Package, was diese XML-Datei reinlädt und mit dem arbeiten wir dann um das umzuformen. Aber wo das genau gespeichert ist, weiß ich nicht.
Also muss man diese Umformung jedes Mal wieder machen, wenn ich das R neu starte und irgendwie wieder mit den Daten arbeiten will oder habe ich dann eine persistente Datenbank, wo das alles drin ist? Also man kann sich diesen, wenn man das in R schon einmal gemacht hat, kann man sich quasi das, was man R schon gemacht hat, speichern
und dann irgendwann nochmal aufrufen. Das geht dann. Also man kann sich diesen Workspace, die man schon, selbst die Variable, die man da irgendwie schon erstellt hat, kann man speichern und damit später noch weiterarbeiten. Okay. Also so muss ich alles nochmal herunterladen. Was mich mal interessieren würde, magst du mal zu der Folie mit dem Banken zurückgehen? Mit dem Banken, ja. Weil, also ich bin überhaupt gar kein Mathe-Freak.
Ja, ich weiß nicht genau, wo das... Ja, hier? Das war das? Nee, nicht die Grafische, die statistische Aufzeitung für die Tabelle war. Nee, noch weiter nach vorne bitte. Stopp. Das hier? Nee, nach vorne bitte. Und zwar... Nee, kacke, wo waren das? Das ist nicht das Banken, nee. Das Einzige mit Banken war hier, da habe ich das sortiert und...
Du hattest da, glaube ich, und da hattest du irgendwie gesagt, naja, und da kann man ablesen, wo jetzt eine Parkbank ist bezogen an die Straße. Und da wollte ich einfach bloß mal dich fragen, wie man das dann interpretiert. Das hier? Oder? Genau, genau. Und wenn ich das, also wenn ich jetzt mal anfange, das probiere zu lesen,
dann heißt das, logischerweise ist eine Bank immer beim Foodway oder häufig beim Foodway steht in dem Suchraster, weil da ist bei jeder Zeile irgendwie was. Richtig? Also in diesem, also jetzt bei den ersten 5 Banken ist es so, dass wir diesen 50 x 50 Meter Bereich bei dieser Bank 2 Foodways gefunden haben. Und das ist ja durchaus richtig, weil die stehen.
Ja, genau, ja. Okay, das wollte ich bloß mal abklopfen. Ja, genau, ja. Okay, gut. Ja, wir hätten noch ein paar Plätze, ein paar Fragen. Ich hätte mal eine Frage, ich kenne mich mit R eigentlich nicht wirklich aus,
aber du hast jetzt sozusagen die Suche mit diesem 50 x 50 Baunibox gemacht. Gibt es denn die Möglichkeit, um mehr oder weniger so den nächsten Punkt zu finden, oder musst du sozusagen erst einmal kurz ein Thema erzählen, gucke, ob ich etwas finde, wenn ich nichts finde, mache ich weiter. Weil theoretisch ist es natürlich interessant zu sehen, wie häufig sind da Straßen, aber es wäre interessant zu wissen, was ist vermeintlich der nächste Straßen, wenn du natürlich zweimal einen Fußweg findest,
aber irgendwie 5 Hauptstraßen, weiß man ja auch nicht unbedingt zwangsläufig, ob es da irgendwie eine Möglichkeit gibt, die Suche sozusagen zu verfeinern. Also hier habe ich es jetzt so gemacht, indem ich immer diese 50 x 50 Meter Baunibox neu heruntergeladen habe. Aber theoretisch könnte man sich auch direkt ein großes Objekt runterladen und dann immer diese Baunibox erweitern und gucken, ob da etwas kommt.
Aber da müsste man dann halt programmieren mit verschiedenen Streifen. Also es wäre auf jeden Fall möglich, so zu machen. Keine Frage, sondern ein Kommentar. Also ich habe für den Vortrag, den ich gestern gehalten habe, auch teilweise ja benutzt, um Statistiken zu machen.
Ich habe aber einfach die Daten vorverarbeitet. Das heißt, ich habe mit Osmium, was ihr ja vorhin alle gehört habt, die Daten durchgelesen, habe nur die Daten rausgezogen, die ich auch wirklich brauche und dadurch auch den ganzen Planet und so mal in einer halben Stunde durchlesen können und nur die tausend Tags rausziehen, die mich interessieren und die dann in R einlesen und dann damit arbeiten.
Und dadurch habe ich natürlich nicht die Flexibilität, die du jetzt da hast mit dem Ganzen, was du zeigst, aber ich kann natürlich größere Datenmengen relativ schnell verarbeiten. Also für Leute, die da rumspielen wollen, das ist auch ein guter Weg. Und das R ist gewöhnungsbedürftig. Also ich bin da auch ein relativer Neuling.
Es ist wirklich gewöhnungsbedürftig, aber es ist ziemlich genial, was da alles drin ist und gerade auch, wie man damit schöne Grafik machen kann und so. Also ich kann es glaube ich auch empfehlen, dass man sich das mal ein bisschen näher anschaut. Noch weitere Fragen? Nützt die Chance?
Noch habt ihr sie? Okay, dann bedanke ich mich noch mal recht herzlich für den Vortrag.