Wie nutzt man Geo-Facing?

Ich würde gerne bestimmte Router für eine Karte ausfiltern.

Filterkriterien wären Freifunkname und oder Region

Ich hatte da mal was für meine Community gebastelt. Meine Programmierung ist leider nicht so verständlich und flexibel wie man sich das wünscht. Ist hält nichts „vorzeigbares“ Deshalb habe ich das nicht veröffentlicht. Wer sich traut kann sich trotzdem gerne melden. :wink:

1 „Gefällt mir“

Ähm ich sehe gerade, dass Geofacing nix mit Geofencing zu tun hat. Forget I said anything. :wink:

Auf Dauer würde ich mir sowieso wünschen, dass wir einen gemeinsamen Standard entwickeln, wie wir die Knoten zwischen den in der Freifunk-API registrierten Communities (im Moment Aachen, Düren, Jülich, da können Interessenten aber noch weitere Communities hinzufügen) aufteilen.

Dann sollten wir für jede Community eine Nodelist erstellen und in der API ankündigen. Dann sind nämlich auch direkt die Community-Einträge auf freifunk-karte.de korrekt. Und wir hätten das Problem der Knoten eindeutig gelöst, und einen Prozess für die Zukunft definiert.

1 „Gefällt mir“

Kann man wie folgt machen:

  • Routerdaten aus der Karte der Community oder der JSON der Freifunk-Karte laden
  • Gemeinde- oder Kreisgrenzen als Shapefile aus offiziellen Quellen laden oder z. B. via Overpass-API http://overpass-turbo.eu/ als GeoJSON aus der OpenStreetmap exportieren
  • Anschließend z. B. mit der QGIS-Funktion „Attribute nach Position zusammenführen“ die Routerdaten mit der entprechenden Gemeide in dem er sich lt. Koordinaten befindet verknüpfen. www.qgis.org
  • Schließlich die Daten nach Kommune und Metacommunity aufsummieren, z. B. via Pivot-Tabelle.

Hier das ganze für NRW (die KBU-Karte war zum Zeitpunkt der Datenabfrage offline)
http://data.jostlemke.de/ffnodes-nrw-table.csv

Wenn gewünscht, gibt es eine Schritt-für-Schritt-Anleitung, falls ich die Zeit finde.

Du möchtest dafür sorgen, dass sich Router via MeshVPN nur verbinden können, wenn die Source-IP in einem gewissen geographischen Gebiet liegt, also z.B. Deutschland oder NRW?

Also echtes „Aussperren“ von Leuten, die z.B. über andere Tunnel kommen, korrekt?

Nein, er möchte abhängig von den Koordinaten eines Routers diesen in
Listen berücksichtigen. z. B. Router in Stadt/Stadtteil XY.

Dann würde ich vorschlagen hier nicht den Begriff „Geofencing“ zu nutzen, denn da geht es um das Aussperren von Nutzungswilligen, meist aus Lizenzrechtlichen Gründen.

Es geht hier um Geo-Facing (Geographisches Aussehen) und nicht um Geo-Fencing (Geographische Zäune).

2 „Gefällt mir“

Quatsch, Geofencing (so wie ich es auch nutze) ist z.B…

  • Dass bei mir zuhause bestimmte Verbraucher ausgeschaltet werden, wenn ich weiter als 50m von meiner Wohnung entfernt bin (Also ausserhalb des „Zauns“ bin).

  • Dass mein privates Mobiltelefon auf Stumm geschaltet ist, wenn ich mich im Umkreis von 50m meines Arbeitsplatzes befinde (Also innerhalb des „Zauns“ bin).

  • Dass bei Facebook ein Eintrag "Befindet sich hier: Gaststätte zum ‚schmutzigen Löffel‘ " gibt, wenn ich den Umkreis (oder wie du es nennst: Zaun) von 30m dieser Kneipe betrete.

1 „Gefällt mir“

Hallo,

nochmal zur Klärung. Ich will eine Liste/ Karte mit bestimmten Freifunk Routern. Mehr nicht.

Ich möchte nichts sperren oder ähnliches.

Guido

1 „Gefällt mir“

Hier noch die komplette Tabelle für NRW: http://data.jostlemke.de/ffnodes-nrw-kommunen.csv

Die Spalten zwei bis zwölf sind aus der Freifunk-Karte, alles danach aus der OpenStreemap (lizensiert unter der ODbL, (c) OpenStreetMap-Mitwirkende)

Am Ehesten werden die Spalten „name“, „meta“ und „name_2“ von Nutzen sein.

2 „Gefällt mir“

Das wäre super! Klasse Arbeit jedenfalls!

1 „Gefällt mir“

Wenn es rein um das Filtern nach Namen geht…

1 „Gefällt mir“

Hallo dgoersch,
Ich schau mir das mal an, darf ich bei Rückfragen auf dich zurück kommen, da ich bei dem Thema auf unbekannten Terrain bewege.

Gruss
Guido

1 „Gefällt mir“

Anleitung ja…die könnte ich brauchen! :relaxed:

Hier ein Beispiel:

Vorweg: Das hier ist eine mögliche Variante, je nach Zweck, Umfang der Datenmenge und Häufigkeit der Auswertung gibt es diverse andere Methoden.

Ziel: Einer Liste von Freifunk-Knoten wird das Gebiet (z. B. Gemeinde) zugeordnet, in dem sich der jeweilige Knoten laut Koordinaten befindet.

Benötigte Werkzeuge:

Benötigte Daten:

  • Einen Datensatz der Freifunk-Router. Im Beispiel sind es die Daten der Metacommunity München: http://map.freifunk-muenchen.de/nodes.json
  • Geodaten der Gebiete, die man zuordnen möchte. Im Beispiel die Kommunen von Bayern. Eine Möglichkeit ist, die Daten aus der OpenStreetMap zu exportieren. Einfacher geht es in der Regel mit den offiziellen OpenData-Quellen: In diesem Fall http://vermessung.bayern.de/opendata.html unter „Verwaltungsgebiete im Vektorformat zum Download“ > „Verwaltungsgebiete.zip (kml, EPSG:4326)“ (48 MB). Nach Möglichkeit derartige Daten gleich im System WGS 84 (EPSG:4326) herunterladen. Dann ist das verwendetet Koordinatensystem zu den Routerdaten kompatibel und muss nicht mehr konvertiert werden.

Die heruntergeladenen Dateien: Bayerische Geodaten, das Münchener JSON-File sowie die daraus konvertierten Daten als CSV-Datei.

An die Arbeit:

  1. QGIS starten

  2. Einbinden der Gemeindegrenzen (hier „gmd_ex.kml“) laden, das geht einfach per Drag&Drop.

  3. Optional: Füllfarbe der Gebiete deaktivieren. Das geht via Doppelklick auf den Layer „Gemeinden“ → Stil. Näheres dazu bitte der einschlägigen Dokumentation entnehmen.

  4. Routerdaten laden „Textdatei als Layer importieren“. Wichtig: Auf die korrekte Zuordnung achten. „X“ = geographisch Länge, „Y“ = geographische Breite. Vor dem Klick auf „OK“ bitte Punkt 5 lesen.

  5. Im nächsten Dialog das Koordinatenbezugssystem (KBS) für den importierten Layer auf „WGS 84 (EPSG:4326)“ festlegen. Diese Einstellung ist entscheidend. Falls man ein falsches KBS ausgewählt hat, kann man dies jeder Zeit via Rechtsklick auf den Layer unter der Option „KBS für Layer setzen“ anpassen.


  6. Der entscheidende Schritt: Die beiden Datensätze zusammenfassen. Hierfür müssen die beiden Datensätze im gleichen KBS vorliegen, was hier (beide KBS = WGS 84) allerdings schon der Fall ist. Dazu bedient man sich der Funktion „Vektor“ → „Datenmanagement-Werkzeuge“ → „Attribute nach Position zusammenführen“

  7. Als Zielvektorlayer den Layer mit den Knoten auswählen und als „Quell“-Layer die Gemeindegrenzen. Ausgabe-Shapefile festlegen und „OK“ klicken. Den neuen Layer der Karte hinzufügen und anschließend diesen als CSV-Datei speichern.



  8. Die gespeicherte CSV-Datei kann dann z. B. mit LibreOffice Calc geöffnet und ausgewertet werden.

Viel Spaß!

4 „Gefällt mir“

Und ich habe die ganze Zeit an ein Script für die gestellte Aufgabe gedacht.

Ein Versuch liegt auf http://www.kryger.de/tmp/filter_ff_nodes. Ist Python3, zieht die Aachener nodes.json und die bei OSM für das Gebiet »Aachen-Mitte« hinterlegte Relation. Es werden alle Nodes, die nicht in dem Bereich liegen und deren Name nicht mit „ffac“ anfängt, aussortiert. Der Rest wird in eine GPX-Datei geschrieben.

Hier noch ein weiteres Beispiel (Landkreise in Bayern und Routerdaten aus der Freifunk-Karte.

Ich hab den Workflow für solche Bezirksstatistiken („Knoten pro Polygon“) mal in ein Pythonskript gegossen.

Im Skript district-node-stats.py sind Konfigurationsoptionen, sodass man einfach seine Shapefiles (WGS84 Projektion) und nodes.json füttern sollen könnte, und dann als Output die Statistiken als JSON kriegt.

Als Default wird die Aachener Domäne analysiert und geschaut, wie sich Knoten auf die einzelnen Bezirke in der Stadt Aachen verteilen.

Kann man ja vielleicht auf seinem Community-Webserver als Cronjob einrichten um Statistiken anzuzeigen, oder ein Overlay für seine Map basteln. Ich hoffe das Skript hilft dabei!

3 „Gefällt mir“