EX-Raid-Arenen in Pokémon GO identifizieren

6 Kommentare

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:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "name": "codecentric HQ",
        "marker-color": "#008800",
        "marker-symbol": "building"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [7.007, 51.162]
      }
    }
  ]
}

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:

Mettmann Raw GeoJSON

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.

"Treppen-Brunnen",51.250384,6.976046
"Neanderphal",51.24796,6.974209
"Metzgerei Vogt",51.249137,6.971042
...

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:

osmcoverer  -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:

Mettmann Übersicht

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:

Mettmann Interaktiv

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

osmcoverer -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:

Mettmann optimiert

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:

# Level 10 S2-Zellen
osmcoverer -grid=10 ... -skipmarkerless mettmann.geojson
 
# Level 13 S2-Zellen
osmcoverer -grid=13 ... -skipmarkerless mettmann.geojson

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

EX-Raid S2 L10

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:

EX-Raid Markierung

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

Tobias Trelle

Diplom-Mathematiker Tobias Trelle ist Senior IT Consultant bei der codecentric AG, Solingen. Er ist seit knapp 20 Jahren im IT-Business unterwegs und interessiert sich für Software-Architekturen und skalierbare Lösungen. Tobias hält Vorträge auf Konferenzen und Usergruppen und ist Autor des Buchs „MongoDB: Ein praktischer Einstieg“.

Kommentare

  • Lars B.

    19. Februar 2018 von Lars B.

    Toller Artikel!
    Ich habe leider auch nach vielem recherchieren, probieren und debuggen keinen Erfolg, da der osmcoverer leider den folgenden Fehler liefert „panic: invalid character ‚,‘ after top-level value“. Dabei handelt es sich um eine lupenreine CSV-Datei… Der Fehler ist mit diversen Versionen reproduzierbar, was nahelegt, dass ich etwas falsch mache. Anscheinend reagiert der Parser auch sehr empfindlich auf das Encoding, aber ich habe auch hier schon diverse probiert.
    Ich wäre sehr dankbar übe reinen Tipp… thx.

  • Tobias Trelle

    Ich hatte teilweise mit auch Umlauten Probleme, die ich händisch beheben musste.

  • Philipp Flückiger

    17. Mai 2018 von Philipp Flückiger

    Hallo!
    Genialer Artikel!
    Leider zu genial für mich.
    Obwohl es super dargestellt ist, scheint es zu hoch für mich, ohne „tiefere“ IT Erfahrung.
    Wenn dann noch von Fehlermeldungen und debuggen geredet wird, weiss ich dass ich es gar nicht erst versuchen muss.
    Schade.

    Weiss jemand ob dies irgendjemand auf der Welt vieleicht in eine App gebastelt hat, oder online einfach abrufbar gemacht hat?
    Mich würde eben interessieren welche Arenen hier in Basel (Schweiz), als EX-Raid Arenen in Frage kämen.
    Ich hörte von Gerüchten, dass die zwei Arenen im „Schützenmattpark“ solche sein sollten.
    Oder evt. waren, da Niantic evt. etwas geändert hat?

  • Tobias Trelle

    Hallo Philipp,

    viel weniger technisch geht es leider nicht. Meines Wissens nach gibt es keine fertige App zu diesem Thema.

    Im Wesentlichen kannst Du aber auch unter „Schritt 1: Parkflächen identifieren“

    a) diesen Link aufrufen: http://overpass-turbo.eu/s/uYm
    b) dort Deinen Ort suchen
    c) oben links „Run“ klicken

    Das dauert ein Zeit und danach werden die Flächen, von denen man vermutet, das Niantic sie als Park definiert hat, markiert. Wenn Du weißt, wo Deine verdächtigen Arenen liegen, kannst Du schauen, ob sie in einer der blau markierten Flächen liegen.

    HTH, Tobias

  • Philipp

    23. Mai 2018 von Philipp

    Hallo
    Super! Danke!

    Das hat sehr geholfen und in deisem Fall das Gerücht bestätigt.
    ebenfalls ist es so einfach neue (vermeindliche) Ex-Raid Arenen zu finden!
    Genial!

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.