Angenommen, ich habe eine Reihe von Ergebnissen aus einer Studie über das Verhalten eines bestimmten Zugvogel. Der Vogel wurde markiert, und ein GPS-Empfänger zeichnet den Migrationspfad auf, den er jedes Jahr über einen Zeitraum von fünf Jahren verfolgt. Die Ergebnisse werden in einer SQL Server-Tabelle gespeichert, die eine geografische Linienfolge für den Pfad jedes Jahres enthält.Wie man zwei oder mehr Geografie-Linienfolgen mit C#/SQL Server 2008 räumlich "durchschnitt"
Wie würden Sie die Linienfolge definieren, die den "durchschnittlichen" Pfad darstellt, der über den Zeitraum von fünf Jahren verfolgt wurde?
Beachten Sie, dass jede Beispiellinienfolge eine andere Anzahl von Punkten enthalten kann. Sie beginnen und enden auch nicht an genau denselben Punkten.
Der beste Ansatz, den ich bisher habe, ist die Verwendung von Interpolation, um die Punkte in bestimmten festgelegten Proportionen entlang jeder Linienfolge zu bestimmen. So zum Beispiel der Startpunkt, ein Viertel des Weges entlang, auf halbem Weg entlang jeder Route usw. Dann berechnen Sie den mittleren Durchschnittswert lat/long dieser Positionen auf allen Routen und konstruieren Sie eine neue geografische Linienfolge aus diesen gemittelten Punkten.
Ich habe in ein paar Computergestützte Geometriebücher geschaut, um zu sehen, ob es einen bekannteren Algorithmus oder eine bessere Technik dafür gibt, aber es scheint nichts Relevantes zu geben. Ich kann nicht glauben, dass es nicht etwas ist, das jemand anderes vorher noch nicht gemacht hat ...
Ich brauche keinen genauen Code - nur Vorschläge für bessere allgemeine Ansätze. Ich brauche auch keine "Super-Genauigkeit". Als eine Nebenbemerkung würde ich idealerweise wie der Ansatz auch auf zwei oder mehr Polygone anwendbar sein.
Vielen Dank für Anregungen!
Ich sehe: selektiv jede Linie verdichten, bis sie alle die gleiche Anzahl von Ankerpunkten bei der gleichen relativen Abstand, dann berechnen Sie die mittlere Position für jeden Ankerpunkt. Ich mag es - danke! –
Viel Glück, ich hoffe, es funktioniert für Sie. – wageoghe