|
|
Interpolation / nearest neighbour |
|
flo |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 14.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R13 V6.5
|
|
|
|
|
|
Verfasst am: 14.04.2008, 15:26
Titel: Interpolation / nearest neighbour
|
|
|
|
|
Grüß Gott zusammen,
mein erster Beitrag und gleich eine Frage, entschuldigt bitte
Ich habe folgendes Problem:
Bin im besitz einer ASCII datei mit 3 spalten und ~4Mio Zeilen, wobei
Spalte 1 für x-Koordinate, Spalte 2 für y-Koord. und Spalte 3 für Z-Koord. steht. Jede Zeile definiert mir einen Punkt im Raum.
Kurzes Beispiel:
Punkt x-Richtung y-Richtung z-Richtung
1 0.01 0.01 8e-5
2 0.012 0.01 8e-5
...
1000 0.01 0.02 1.6e-4
...
Letzlich kann man das auch als 1691 Ebenen in Z-Richtung verstehen mit
unterschiedlicher Anzahl an Punkten in X-Y-Ebene.
So, aus diesen Daten muss ich eine 3D-FEM-Modell generieren (mit ADINA).
Um jetzt aber nicht jeden einzelnen Punkt von Hand anklicken zu müssen, würde ich gerne Matlab benutzen, um mir die nächsten Nachbarn meiner Punkte ausgeben zu lassen (als .txt oder .dat), welches ich dann in ADINA laden kann, um mein MESH zu generieren.
Problem ist, ich bin (a) kein Mathematiker und (b) erst seit 1 woche im besitz von matlab, daher blutiger anfänger!
Falls also irgendjemand von euch eine Idee haben sollte, wie ich das mit Matlab gebacken bekomme, würde ich mich sehr sehr freuen. Für den Fall dass jemand sich gut mit FEM (oder gar mir ADINA) auskennt oder/und eine alternative Methode zur Grid/Mesh-Generierung aus diesem datensatz kennt, so würde mich das auch sehr freuen!
Sorry für den langen Text
Herzlichen dank
flo
|
|
|
|
|
Michaela |
Forum-Century
|
|
Beiträge: 239
|
|
|
|
Anmeldedatum: 12.07.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: bis 2007b
|
|
|
|
|
|
Verfasst am: 14.04.2008, 18:26
Titel:
|
|
schau dir mal den befehl trimesh und kollegen an. Eventuell hilft dir das weiter.
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
flo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 14.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R13 V6.5
|
|
|
|
|
|
Verfasst am: 14.04.2008, 20:36
Titel:
|
|
abend,
danke für den tip!
die kollegen trimesh, delaunay hab ich mir angeschaut, aber leider nicht
ganz dass was ich mir davon erhofft hatte...
hatte auch eine andere idee, es per convhull zu versuchen, allerdings
werden da viele punkte einfach ignoriert, aber gerade auf die oberfläche kommt es mir an (in 3D)!!
gibt es eine einfache möglichkeit mir die äußersten punkt einer ebene verbinden zu lassen und mir die punkte ausgeben zu lassen?
|
|
|
Michaela |
Forum-Century
|
|
Beiträge: 239
|
|
|
|
Anmeldedatum: 12.07.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: bis 2007b
|
|
|
|
|
|
Verfasst am: 14.04.2008, 20:57
Titel:
|
|
Hmm dann gibts wohl nur eins: die Definition von nächste Nachbarn (nur einer, zwei oder drei?) nachschlagen und genau das in matlab iterativ nachprogrammieren (for ii = 1:4mio; nehme punkt ii, schaue welche der 4Mio-1 Punkte dazu nächste Nachbarn sind... etcetera) ich denke, das wird einige Rechenzeit kosten - aber dafür nur wenig Programmieraufwand....
Vielleicht hat jemand noch eine bessere Idee: Ansonsten kennst Du den fileexchange bei mathworks? Das ist eine grosse freeware- und sharewaresammlung. Vielleicht ist da etwas dabei?
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
Michaela |
Forum-Century
|
|
Beiträge: 239
|
|
|
|
Anmeldedatum: 12.07.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: bis 2007b
|
|
|
|
|
|
Verfasst am: 14.04.2008, 21:01
Titel:
|
|
|
|
flo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 14.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R13 V6.5
|
|
|
|
|
|
Verfasst am: 14.04.2008, 21:12
Titel:
|
|
hey,
danke vielmals für die tips!
diese file-exchange seite kenn ich nicht - aber sieht interessant aus
das mit der rechenzeit wäre mir egal - das bin ich gewohnt!
nur ob ich das so schnell programmiert bekomme, hmmmm!
d.h. auch, es gibt keine möglichkeit sich die einhüllenden punkte einer
ebene auswerfen zu lassen?
ciao
flo
|
|
|
Michaela |
Forum-Century
|
|
Beiträge: 239
|
|
|
|
Anmeldedatum: 12.07.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: bis 2007b
|
|
|
|
|
|
Verfasst am: 14.04.2008, 21:15
Titel:
|
|
Leider kenn ich mich mit einhüllenden und deren berechnung gar nicht aus -- eventuell gibt es ja so einen Befehl. Kennst Du convhull? Aber ich denke nicht, dass dir das weiter hilft:
Was ich noch nicht ganz verstanden habe, ist aber folgendes: Du hast eine Menge von Punkten, die eigentlich schon ein FEM-mesh sind. Aber ohne mesh-information. Und nun soll das ganze in ein anderes fem-programm, dass aber zusätzliche mesh-informationen benötigt (dafür matlab). Gibt es keine andere Möglichkeit, die daten zu exportieren (...aus dem ersten Programm...) ich kenne es teilweise so, dass noch nodenummern und zumindest materialien und volumen oder kante mitdazugegeben werden..
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
flo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 14.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R13 V6.5
|
|
|
|
|
|
Verfasst am: 14.04.2008, 21:38
Titel:
|
|
naja, convhull versucht, aber er ignoriert mir wie gesagt zuviele punkte, d.h. er glättet mir die oberfläche und dass will ich net.
habe die geometrie in form von x y z koordinaten einer kluft in einem bohrkern, der mittles eines CT eingescannt wurde.
ein mesh ist es aber nicht, da die punkte ja nicht miteinander verbunden sind, somit noch keine elemente definiert sind!
ich kann zwar meine punkt in meine software laden und auch jeden punkt als node betrachten, nichtsdestotrotz muss ich die punkte/nodes miteinander verbinden! und dass ist momentan nicht automatisch möglich, da die punkte unregelmäßig im raum verteilt sind.
ltheoretisch brauche ich gar nicht alle punkte, sondern nur die punkte der oberfläche, die ich dann "meshen" kann.
aber ich muss eben wissen, welche punkte ich miteinander verbinden muss und diese information dann in form von textdateien importieren!!
|
|
|
Michaela |
Forum-Century
|
|
Beiträge: 239
|
|
|
|
Anmeldedatum: 12.07.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: bis 2007b
|
|
|
|
|
|
Verfasst am: 14.04.2008, 21:45
Titel:
|
|
|
|
|
ok - aber das ist dann ja schon eine ganz andere fragestellung.. Ich könnte mir vorstellen, dass man da auch noch punkt entfernen oder hinzufügen muss, bevor das Mesh gut ist.
wie wurden denn die Punkte aus dem CT extrahiert? Alle Punkte einer bestimmten Dichte? Eventuell kannst Du ja folgendermassen vorgehen:
Erstmal versuchen, die "Mitte" oder Achse des Bohrkerns zu finden. Dann ein zylindisches Koordinatensystem definieren, dass die Achse des Bohrkerns als z-Achse hat. Dann die Punktwolke in dieses Koordinatensystem transformieren.
Dann könnte man alle Punkte innerhalb eines bestimmten Radius selektieren, um erstmal die Wolke auf ein vernünftiges Mass zu reduzieren. Und dann nochmal mit convhull drauf losgehen. Ist die Punktemenge zu gross,. kannst Du evtl. auch "scheibchenweise" in Z rangehen.
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
flo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 14.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R13 V6.5
|
|
|
|
|
|
Verfasst am: 14.04.2008, 21:58
Titel:
|
|
hmmm, tja, habe mich wohl undeutlich ausgedrückt, tut mir leid!
also, punkte hinzufügen will ich nicht, da ich mir so die reale geometrie veränderen würde. die punkte definieren mir sozusagen nur die kluft (also den hohlraum), ansonsten hab ich keinerlei information.
wie die daten extrahiert wurden weiss ich momentan leider nicht...es scheint aber ein raster zu sein, d.h. ich denke schon in einer bestimmten dichte (80 µm).
deine idee mit dem koodnatensystem klingt interessant, aber im moment kein plan wie ich das zentrum finde ebenso die punkte in das koord-system zu transformieren, sorry!
|
|
|
Michaela |
Forum-Century
|
|
Beiträge: 239
|
|
|
|
Anmeldedatum: 12.07.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: bis 2007b
|
|
|
|
|
|
Verfasst am: 14.04.2008, 22:02
Titel:
|
|
Also, ich weiss ja nicht so ganz was Du mit den Daten vorhast, aber für eine FEM-Simulation würde ich das Mesh auf jeden Fall nochmals überarbeiten. Gerade "Würfelpunkte" sind ja für FEM nicht so gut geeignet - wobei das natürlich auch vom solver abhängt.
Ansonsten: Achse finden: Erstmal datensatz anschauen, dann zB in Scheibchen (möglichst senkrecht zur Bohrachse) sägen und Mittelpunkt der freien Fläche finden (sollte ja annähernd kreisförmig sein). Wenn man das für genügend viele Scheiben macht, ergibt sich die Bohrachse. Zur Transformation Kartesisch -> zylindrisch würde ich ein Ingenieursmathematikbuch deiner wahl oder wikipedia empfeheln. sollte sich in drei Zeilen hinschreiben lassen, sofern Z-Achse und Winkel phi =0 definiert sind.
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
flo |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 14.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R13 V6.5
|
|
|
|
|
|
Verfasst am: 14.04.2008, 22:15
Titel:
|
|
letzlich geht es um strömungs und transportmodellierung von experimenten, die ich gemacht habe.
das eigentliche meshing und die art der elemente ist ein anderes thema, so weit bin ich ja noch gar nicht...
werde mal versuchen das Zentrum zu finden und dann die transformation..
außerdem schaue ich mir den link von dir an, vielleicht kommt da was nützliches raus!
ich danke dir trotzdem ganz herzlich für deine anregungen!!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|