Messdaten Aufbereiten und Interpolieren für 3D-Plot
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
17.05.2013, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2013 14:58 von denzlair.)
Messdaten Aufbereiten und Interpolieren für 3D-Plot
Hallo miteinander
Ich würde gerne aus meinen Messwerten ein 3D-Plot Surface Darstellen. Meine Messdaten sind drei 2D-Arrays, jeweils 2 Winkel (theta (Elevation) und phi (Azimut)) und einen für eine gemessene Intensität. Die zwei Arrays mit den Winkeln werden in dem Sub-VI in Kartesische Koordinaten umgerechnet. Die umgerechneten Koordinaten X,Y und Z möchte ich nun in einem 3D-Plot zu einer Halbkugel (Messdaten entsprechen der Abtastung einer Halbkugel) darstellen mit der Intensität als Farbskala.
Soweit so gut. Nun habe ich aber folgende Probleme:
- Die Arrays haben noch null-Einträge drin, die ich eigentlich loshaben will. Lösche ich diese, stimmen die Dimensionen der Arrays nicht mehr überein. Die Null Einträge schaffen mir hauptsächlich Probleme bei der Darstellung mit der Intensität, d.h der Massstab der Farbskala ist viel zu gross.
- Meine Messdaten, Winkel theta, phi und die Intensität muss ich vor dem Plot noch Interpolieren, damit ich eine schöne Fläche erhalte. Bis anhin, habe ich keine Methode gefunden, die diese Funktion zu meiner Zufriedenheit ausführt.
Weiter würde ich gerne noch einen 3D-Plot von der Intensität als Fläche darstellen. Doch dieser Versuch scheiterte ebenfalls an den obigen Problemen
Beste Grüße und Danke schonmal für jegliche Antworten.
Im Anhang ist ein VI mit den Messdaten und einem Sub-VI für die Koordinatentransformation.
RE: Messdaten Aufbereiten und Interpolieren für 3D-Plot
Hallo denzlair,
deine Koordinatentransformation geht auch einfacher:
(Evtl. geht's noch einfacher mit den komplex/Polar/karthesisch-Umwandlungen in der Numerik-Palette...)
Zum Interpolieren: Wenn du MathScript verwenden kannst, solltest du dir die Funktion "griddata" anschauen...
Zum Intensitätsplot: Probier mal einen Intensitätsgraphen aus...
RE: Messdaten Aufbereiten und Interpolieren für 3D-Plot
Hallo Gerd
Sorry für meine reichlich verspätete Rückmeldung auf deine prompte Antwort. Danke für deinen Input mit dem Matlab-Skript. Leider hat diese Methode nicht genau die gewünschten Resultate ergeben.
Ich habe mittlerweile noch einen eigenen Ansatz für die Interpolation der Daten Verfolgt (Siehe VI, Plot_3D_Interpolation). Meine Idee war dabei, die Daten zuerst sauber aufzubereiten: Unnötige Zeilen raus, Zeilen der verschiedenen Array auf gleiche Länge bringen, nullen Rausstreichen, Daten in richtige Reihenfolge bringen und Array verdreifachen. Mit dem letzten Schritt möchte ich erreichen, dass bei der Interpolation vom Anfangswert und dem Endwert, welche nicht zwingen bei Null und 360 sind, keine steilen Abfälle auf null entstehen. Hänge Ich denselben Array dreimal hintereinander und schneide nach der Interpolation den mittleren Teil wieder heraus, denke ich, kann ich dieses Problem umgehen. Die Messwerte werden gedreht und in gleiche Reihenfolge gebracht, weil beim Messen einmal beim hinfahren und dann beim Zurückfahren gemessen wird.
Mein Problem ist aber, dass die vierte Dimension von der Intensität als Farbspektrum auf der Kugel irgendwie versetzt von schicht zu schicht dargestellt wird. Ich bin mir nun nicht ganz sicher, wo das der Fehler passiert. Meine Vermutung liegt entweder bei der Interpolation, beim Plot oder sonst, dass ich die Messwerte einmal beim hinfahren und das andere mal beim zurückfahren aufnehme.
Ich bin euch dankbar für eure Hilfe, denn ich bin ein bisschen unter Zeitdruck um meine Arbeit pünktlich abzugeben.