Koordinatenliste mit FME ausdünnen (Geodäsie/Vermessung)
Guten Tag,
mir liegt eine Koordinatenliste mit mehr als 410.000 Punkten vor, die ich gerne auf einen Bestand von ca. 1000 Punkten ausdünnen würde.
Die Textdatei ist folgendermaßen aufgebaut (wobei vermutlich nur die ersten 3 Spalten E,N,Z von Bedeutung sind):
512771.8410 5402968.4750 301.8540 203 203 203 120571
512771.8410 5402968.4720 301.8530 202 202 202 120571
512771.8420 5402968.4670 301.8530 199 199 199 120571
512771.8430 5402968.4630 301.8520 198 198 198 120571
Ausdünnen kann ja prinzipiell mit der Software FME und deren Transformatoren.
Nur ich komme nicht dahinter mit welchen Einstellungen/Transformatoren.
Ist hier jemand der sich damit auskennt?
Vielen Dank im Voraus!
Grüße,
Sebastian
Koordinatenliste mit FME ausdünnen
MichaeL , Bad Vilbel, Friday, 24.03.2017, 20:06 (vor 2801 Tagen) @ Sebastian
Hallo Sebastian,
mir liegt eine Koordinatenliste mit mehr als 410.000 Punkten vor, die ich gerne auf einen Bestand von ca. 1000 Punkten ausdünnen würde.
Nach welchen Kriterien soll das passieren - nur jeder x-te Punkt oder nach anderen/komplexeren Kriterien?
Ist hier jemand der sich damit auskennt?
Ich nicht aber ggf. gehts ja auch viel einfacher aber hierzu müsstest Du erst einmal spezifizieren, WIE Du ausdünnen willst. Sonst kannst Du ja auch einfach die ersten 1000 Punkte nehmen und den Rest wegschmeißen.
Viele Grüße
Micha
--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences
Koordinatenliste mit FME ausdünnen
Sebastian, Saturday, 25.03.2017, 12:05 (vor 2800 Tagen) @ MichaeL
Hallo Micha,
da hast du natürlich Recht.
Die Koordinatenliste ist ein Auszug einer Straßenaufnahme (lediglich ein kleiner Bereich). Ich will die Anzahl der Punkte so ausdünnen, dass es im besten Fall ein regelmäßiges Raster -mit ca. 1000 Punkten oder weniger- ergibt.
Für das Ausdünnen muss es nicht die Software FME sein. Falls es auch anderweitige Ideen gibt diese Punktwolke so auszudünnen wäre es auch super.
Grüße,
Sebastian
Koordinatenliste mit FME ausdünnen
MichaeL , Bad Vilbel, Saturday, 25.03.2017, 12:30 (vor 2800 Tagen) @ Sebastian
Hallo,
Ich will die Anzahl der Punkte so ausdünnen, dass es im besten Fall ein regelmäßiges Raster -mit ca. 1000 Punkten oder weniger- ergibt.
Wenn Du keine Rasteraufnahme gemacht hast, wirst Du auch durch streichen von Datensätzen nicht auf einmal eins erhalten. Wie soll das gehen?
Falls es auch anderweitige Ideen gibt diese Punktwolke so auszudünnen wäre es auch super.
Ich hätte es vermutlich mit Matlab/Octave gemacht. Ein Raster kann mit meshgrid erzeugt werden aber da ich noch immer nicht verstanden habe, nach welchen Kriterien nun Deine Daten ausgedünnt werden sollen, wird jetzt schwierig zu sagen, wie es weitergeht.
Viele Grüße
Micha
--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences
Koordinatenliste mit FME ausdünnen
Sebastian, Sunday, 26.03.2017, 14:14 (vor 2799 Tagen) @ MichaeL
Hallo Micha,
im Grunde will ich nur jeden x-ten Punkt verwenden.
Allerdings mit dem Ziel, dass kein Übergewicht an Punkten innerhalb des Gebietes besteht.
Die Punkte sollen nach dem Ausdünnen möglichst gut verteilt im Gebiet vorliegen.
Eine simple Methode wäre über Excel anhand eines Filters auszudünnen. Allerdings tritt hier -wenn ich die ausgedünnte Punktwolke in zB ArcMap einlade und optisch betrachte- dann das Problem des Übergewichtes an Punkten an bestimmten Bereichen auf, wohingegen andere Bereiche keine Koordinatenwerte mehr aufweisen.
Ich hoffe so ist es etwas klarer geworden
Grüße,
Sebastian
Koordinatenliste mit FME ausdünnen
MichaeL , Bad Vilbel, Sunday, 26.03.2017, 14:56 (vor 2799 Tagen) @ Sebastian
Hi,
Ich hoffe so ist es etwas klarer geworden
Okay, dann erzeug Dir doch enfach ein regelmäßiges Raster über Dein Gebiet. Für jeden Rasterpunkt suchst Du nun den dichtesten Punkt und speicherst diesen ggf. prüfst Du die Entfernung und verwirfst diese, damit kein Punkt doppelt gefunden wird. Das unten stehende Matlab/Octave Script erzeugt folgende Lösung:
Die grauen Punkte sind die Messungen (hier Zufallszahlen). Die Roten Punkte sind das Raster und die blauen Diamanten sind die Rasterpunkte nach der Ausdünnung.
Viele Grüße
Micha
clear all close all format long g clc data = [ -7.7114 16.4498 -40.5771 8.1479 9.8524 73.9882 -2.9076 -47.0442 19.5949 -36.3852 19.9888 -76.1571 13.8531 87.9659 -46.6396 29.1104 -43.1194 -4.1074 -18.0400 27.8634 3.0864 8.9432 15.4446 29.4623 -9.2381 8.7772 31.9981 44.2093 21.8359 4.4991 46.8649 98.7409 3.1334 -56.2647 -17.4854 -78.8403 -39.4371 -78.0605 11.0959 -87.2817 27.8802 -19.0840 -7.6547 -10.3254 -40.9177 -26.8368 -23.3529 52.7009 -34.6343 25.5793 -21.8995 54.3961 -5.9915 86.5707 2.7143 94.5482 -4.2576 -61.5943 37.5372 -72.2252 1.8052 39.2533 44.3623 -81.2360 13.7709 5.0809 45.7694 6.0688 -25.9293 72.2280 17.6122 -3.0293 -21.0935 -21.3087 17.1808 34.2862 19.5140 48.2516 -43.2007 4.0105 -24.5210 -30.4575 -27.5960 -70.0005 16.7833 17.2184 34.4392 -47.5709 -15.5538 -91.1092 28.0520 50.9867 17.5332 -51.4429 -49.3285 -11.5195 10.2170 37.5592 -11.3229 -28.1544 41.5991 47.2680 -49.8849 -21.0585 -3.7551 36.6832 -7.5651 40.8095 -3.9084 -11.5389 27.0160 -96.0845 -17.7528 -33.8284 28.4739 -15.1381 -2.8643 -45.9459 -46.4237 -60.5892 -32.4126 64.3442 22.1758 -14.0157 -2.6514 77.5542 -34.7279 -21.7634 -15.8875 53.8229 10.7389 -20.6417 -30.8255 61.7028 23.8427 51.0154 -25.7150 -24.5209 41.7424 -56.7962 -23.0938 58.0814 26.5500 89.8608 -31.1338 -34.4869 -21.2502 34.2529 -40.8887 -12.2710 7.6209 66.7001 18.3363 53.7709 4.6593 -66.5493 -7.4271 72.3961 14.4443 97.9744 14.7618 2.8847 17.9017 76.8562 13.5787 17.6052 44.5174 -69.0495 -29.1065 -60.0274 20.9282 -18.6090 -26.3769 49.7411 -38.0604 65.1168 10.7304 57.9926 -4.9862 -36.2952 -4.1275 6.8128 16.1945 -82.0099 27.0286 -77.6589 -14.9782 -72.7415 16.2010 35.7305 -8.3841 -0.9646 34.1929 -62.0579 33.2917 -0.9988 -24.3559 -70.4784 11.3461 -89.0052 ]; plot(data(:,1), data(:,2), '.', 'Color', [0.6 0.6 0.6]) grid on axis equal hold on; gridWidth = 25; minX = min(data(:,1)) - 0.5*gridWidth; minY = min(data(:,2)) - 0.5*gridWidth; maxX = max(data(:,1)); maxY = max(data(:,2)); X = minX:gridWidth:maxX+gridWidth; Y = minY:gridWidth:maxY+gridWidth; myGrid = zeros(1,2); gi = 1; for i=1:length(X) xi = X(i); for j=1:length(Y) yj = Y(j); plot(xi, yj, '+r'); dist = sqrt(sum(abs(data - kron([xi yj], ones(size(data,1),1))).^2,2)); minDist = min(dist); if minDist < 0.5 * gridWidth myGrid(gi, :) = data(dist == minDist,:); gi = gi + 1; end end end plot(myGrid(:,1), myGrid(:,2), 'db')
--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences