Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

//

EX-Raid-Arenen in Pokémon GO identifizieren

5.2.2018 | 5 Minuten Lesezeit

Heute betreiben wir ein wenig Data Mining mit Geo-Daten, um herauszufinden, wie man potentielle EX-Raid Arenen im Augmented Reality -Spiel Pokémon GO identifizieren kann.

Pokémon GO Basics

In Pokémon GO geht es darum, möglichst viele der kleinen Pokémon zu sammeln. Dabei interagiert der Spieler mit bestimmten Orten der realen Welt, den Pokestops und Arenen. In Arenen treten die Pokémon von Spielern verschiedener Teams gegeneinander an. Zu bestimmten Zeitpunkten können die Spieler an diesen Arenen besondere Kämpfe, die sog. Raids, gegen teilweise sehr seltene und mächtige Pokémon durchführen.

Einige dieser Arenen qualifizieren sich als sogenannte EX-Raid-Arenen (abgeleitet von EXclusive Raid), an denen man Einladungen zu Raids gegen ultra-seltene Pokémon (zurzeit Deoxys, und vormals Mewtu) erhalten kann. Diese Einladungen sind bei den Spielern heiß begehrt.

Allerdings sind die Kriterien für eine EX-Raid-Arena nicht offengelegt. In der Spieler-Community hat man durch Beobachtungen und Spekulationen folgende Kriterien für solche Arenen festgestellt:

  • Die Arena liegt in einer Park- bzw. Grünfläche
  • In einer S2-Zelle der Stufe 12 gibt es immer nur eine EX-Raid-Arena

Wie man für eine bestimmte Region die Kriterien miteinander kombiniert und visualisiert, werde ich im Folgenden vorstellen. Das Verfahren erhebt dabei keinen Anspruch auf Vollständigkeit und garantiert auch nicht, dass die mit ihm aufgefundenen Arenen tatsächlich EX-Raid-Arenen sind oder werden können.

Als Beispiel werde ich eine Analyse für die Stadt Mettmann in NRW durchführen.

Schritt 1: Parkflächen identifizieren

Zum Auffinden der Parkflächen verwenden wir die Datenbasis des freien Kartendienstes OpenStreetMap . Dort sind Flächen mit bestimmten Tags versehen. Für die aktuell vermuteten Tags gibt es eine vorgefertigte Suchanfrage . Navigieren Sie auf dieser Karte zu der Region Ihrer Wahl (Ausschnitt nicht zu groß wählen!) und drücken Sie in der Button-Leiste am oberen Rand auf Ausführen. Nach der Verarbeitung sieht man auf der rechten Seite die Polygone der Parkflächen. Diese exportieren Sie nun mittels Export im Hautpmenü und speichern die Daten im GeoJSON-Format ab. Ich wähle als Dateiname mettmann.geojson.

Exkurs: GeoJSON

GeoJSON ist eine standardisierte JSON -basierte DSL, die Geodaten wie Punkte, Linien und Polygone beschreibt. Hier ein kleines Beispiel, das die Position meines Arbeitgebers beschreibt:

1{
2  "type": "FeatureCollection",
3  "features": [
4    {
5      "type": "Feature",
6      "properties": {
7        "name": "codecentric HQ",
8        "marker-color": "#008800",
9        "marker-symbol": "building"
10      },
11      "geometry": {
12        "type": "Point",
13        "coordinates": [7.007, 51.162]
14      }
15    }
16  ]
17}

Zur Visualisierung von GeoJSON-Daten können Sie z.B. das optionale Package geo-editor für den Atom-Editor verwenden oder Online-Dienste wie geojson.io . Letzteren verwende ich und lade dort die zuvor gespeicherte Datei mettmann.geojson hoch:

Die Polygone auf der Karte lassen sich selektieren und geben auch Detail-Informationen preis. Auf der rechten Seite sieht man die entsprechenden GeoJSON-Strukturen, die im Wesentlichen aus der großen Liste sogenannter Features bestehen. Das jeweilige Polygon besteht aus einer Liste von Koordinaten aus Längen- und Breitengrad.

Noch ein interessanter Fakt am Rande: Das Sourcecode Repository GibHub rendert ebenfalls direkt im Browser GeoJSON-Dateien .

Eine ausführlichere Einleitung zum Thema GeoJSON gibt es in meinem GeoJSON Tutorial .

Jetzt wissen wir also, welche Flächen Parks sind und daher möglicherweise EX-Raid-Arenen beinhalten können.

Schritt 2: Arena-Standorte

Nun gilt es, eine Schnittmenge zwischen den ermittelten Parkflächen und allen Arenen im betrachteten Gebiet zu finden. Leider gibt es keinen öffentlich zugänglichen Dienst, um Längen- und Breitengrad von Arenen abzugreifen. Da die Menge aber überschaubar ist, kann man das manuell mit einer Google Map oder einem Hardware-GPS-Tracker erledigen.

Für die spätere Verarbeitung benötigen wir eine CSV-Datei mit drei Spalten für den Namen der Arena, Breiten- und Längengrad.

1"Treppen-Brunnen",51.250384,6.976046
2"Neanderphal",51.24796,6.974209
3"Metzgerei Vogt",51.249137,6.971042
4...

Hier die von mir verwendete CSV-Datei für Mettmann: gyms.csv .

Exkurs: S2-Zellen

Vieles deutet darauf hin, dass die sogenannten S2-Zellen in vielerlei Hinsicht relevant für die Spielmechanik sind . Die S2-Geometrie stammt von Google und daher ist es kein Wunder, dass Niantic in Spielen wie Ingress oder nun auch Pokémon GO darauf aufbaut.

Für EX-Raid-Arenen sind vermutlich die S2-Zellen der Level 12 und 20 relevant. In einer L12-Zelle ist immer nur ein EX-Raid zur gleichen Zeit aktiv. Nur wenn sich das Zentrum einer L20-Zelle in einem der bereits ermittelten Park-Polygone befindet, dann liegt eine Arena innerhalb dieses Polygon auch aus Sicht von Pokémon GO im Park, ansonsten nicht.

Wer nur mal schnell die S2-Zellen in seiner Region sehen möchte, kann z.B. einen Dienst wie den S2 Region Converter verwenden.

Schritt 3: EX-Raid Kandidaten

Nun werden wir die zuvor ermittelten Ergebnisse (Parkflächen und Arena-Liste) aggregieren. Das versetzt uns dann in die Lage, potentielle EX-Raid-Arenen zu benennen. Dazu verwenden wir das in Go implementierte Tool osmcoverer .

Dieses rufen wir wie folgt auf:

1osmcoverer  -grid=12 -minlevel=5 -maxlevel=20 -markers=gyms.csv mettmann.geojson

Mit grid=12 zeichnen wir die Level 12 S2-Zellen ein, minlevel und maxlevel legen den Detailgrad fest, mit dem die Polygone der Parkflächen durch S2-Zellen überdeckt werden und -markers=gyms.csv verweist auf die CSV-Datei mit den Markern für die Arenen. Das Endergebnis sieht dann so aus:

Legende:

  • Grauer Marker: Arena außerhalb einer Parkfläche
  • Grüner Marker: Arena innerhalb einer Parkfläche

Darüber hinaus ist auch gut zu erkennen, dass beide potentiellen Arenen in der gleichen S2-Zelle mit Level 12 liegen.

Grundsätzlich besteht auch die Möglichkeit, eine interaktive Karte zu teilen. Je nach Netzwerkanbindung und Rechenleistung kann der Aufbau dieser Karte variieren. Beim Klick auf eine Arena wird hier dann auch der Name angezeigt:

Man kann auch die Parkflächen weglassen, in denen keine Arena liegt:

1osmcoverer -grid=12 -minlevel=5 -maxlevel=20 -markers=gyms.csv -skipmarkerless mettmann.geojson

Dann werden nur die Parkflächen-Polygone, die eine Arenea enthalten, mit einer S2-Kachelung überdeckt:

Das macht die entsprechende interaktive Map wesentlich schneller.

Fazit

Mit relativ einfachen Mitteln und ein wenig Eigenleistung (Koordinaten der Arenen zusammentragen) ist es möglich, potentielle EX-Raid Arenen in Pokémon GO zu ermitteln.

An der nach dem vorgestellten Verfahren identifizierten Arena Mettmann Jubiläumsstein 1000 haben auch bereits die ersten EX-Raids am 16.01.2018 und 03.02.2018 stattgefunden. Alle weiteren in Mettmann stattfindenden EX-Raids werden hier dokumentiert.

Ich wünsche allen Trainern viel Erfolg mit der eigenen lokalen EX-Raid-Karte!

Nachtrag vom 14.02.2018

Kurz nach Erscheinen dieses Beitrags soll Niantic die Spielmechanik dahingehend geändert haben, dass nun S2-Zellen vom Level 10 bzw. 13 zur Aktivierung der EX-Raids herangezogen werden. Konzeptionell bleibt dadurch das zuvor gesagte im Wesentlichen gleich. Ihr müsst eigentlich nur beim osmcoverer einen anderen Wert für den Parameter grid bei ansonsten gleichen Parametern verwenden, um das Overlay für die S2-Zellen mit einem anderen Level zu rendern:

1# Level 10 S2-Zellen
2osmcoverer -grid=10 ... -skipmarkerless mettmann.geojson
3 
4# Level 13 S2-Zellen
5osmcoverer -grid=13 ... -skipmarkerless mettmann.geojson

Für das von mir untersuchte Gebiet sehen die Level 10 Zellen z.B. so aus:

Nachtrag vom 28.09.2018

Im September 2018 wurde das Arena-System dahingehend erweitert, dass potentielle EX-Raid Arenen nun auch im Spiel angezeigt werden. Dies ist oben rechts in der Darstellung der Arena zu erkennen. Die Arena Holzskulptur mit Kalksteine ist als EX-Raid Arena gekennzeichnet:

Bei der bisherigen EX-Raid Arena Mettmann Jubiläumsstein 1000 fehlt diese Kennzeichnung allerdings.

Beitrag teilen

Gefällt mir

1

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.