Am Schwerpunkt von Freiburg

Bewerte diesen Beitrag

schwerpunktDa hat sich following einen schönen Reverse-Cache (aka. Safari-Cache) ausgedacht. Die Aufgabe bei „Am Mittelpunkt“ besteht darin, den Schwerpunkt eines bestimmten Gebietes (beispielsweise einer Stadt oder eines Landes) zu bestimmen und dann vor Ort Fotos zu machen um. Als Methoden zur Schwerpunktbestimmung werden zum einen die „Papier-und-Schere-Methode“ (Kartenausschnitt des Gebiets ausdrucken, ausschneiden und den Schwerpunkt mittels Balancierung und einer ruhigen Hand bestimmen) und zum anderen die „Mathematische Methode“ mit der Gaußschen Dreiecksformel vorgeschlagen.

Als Informatiker habe ich natürlich die mathematische Herangehensweise gewählt um den Schwerpunkt meines Heimatstadt Freiburg zu bestimmen.

Dazu musste ich mir zuerst die Daten der Stadtgrenze in maschinenlesbarer Form besorgen. Die gibt es natürlich bei Openstreetmap. Nach ein wenig Shell-Scripting-Voodoo lagen die Daten in Reinform als hübsche Koordinaten-Paare vor mir.
Dann alles in ein Python-Skript gepackt, und — schwupps — hatte ich den Schwerpunkt bestimmt: N 47 59.558 E 007 49.111 sollte es sein.

Schwerpunktberechnung in Python:

#!/usr/bin/python

def area(p):
    a = 0
    imax = len(p) - 1
    for i in range(0,imax):
        a += (p[i][0] * p[i+1][1]) - (p[i+1][0] * p[i][1])
    a += (p[imax][0] * p[0][1]) - (p[0][0] * p[imax][1])
    return a / 2.

def centroid(p):
    a = area(p)
    imax = len(p) - 1

    c_x = 0
    c_y = 0
    for i in range(0,imax):
        f = ((p[i][0] * p[i+1][1]) - (p[i+1][0] * p[i][1]))
        c_x += (p[i][0] + p[i+1][0]) * f
        c_y += (p[i][1] + p[i+1][1]) * f
    f = ((p[imax][0] * p[0][1]) - (p[0][0] * p[imax][1]))
    c_x += (p[imax][0] + p[0][0]) * f
    c_y += (p[imax][1] + p[0][1]) * f
    c_x /= (a * 6.0)
    c_y /= (a * 6.0)

    return [c_x, c_y]

coords = []
with open('coords') as f:
    coords = [[float(x) for x in line.split()] for line in f]

print centroid( coords )

schwerpunkt-gpsVor Ort war es gar nicht so einfach die gestellte Aufgabe zu erfüllen und den Schwerpunkt zu erreichen, denn die Freiburger Variante liegt exakt mitten im Haslacher Dorfbach! Ohne nasse Füße zu bekommen, konnte ich mich dem Schwerpunkt deshalb nur bis auf 3 Meter nähern 🙁

Insgesamt finde ich die Cache-Idee wirklich toll und lehrreich — und das kommt selten vor…

3 Gedanken zu „Am Schwerpunkt von Freiburg“

Schreibe einen Kommentar

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