Mam zestawy danych pola wielopunktowego, każdy zestaw danych punktowych dotyczy pojedynczej komórki nieustrukturyzowanej siatki. Celem jest interpolacja danych do centrum komórki, bezpośrednio lub pośrednio, w jak najdokładniejszy sposób.
Jeśli użyję interpolacji z odwrotnym ważeniem odległości, w przypadku, gdy odległość między źródłem a celem (centrum komórki) jest bardzo mała, może dojść do wyjątku zmiennoprzecinkowego.
Do tego rodzaju interpolacji na siatce strukturalnej stosuje się interpolację ważoną objętościowo. Nie przekłada się to bezpośrednio na dowolnie ukształtowaną komórkę siatki.
Wprowadzenie tolerancji dla interpolacji IDW w celu obejścia SIGFPE ma sens tylko wtedy, gdy nie wprowadzę żadnych testów, które mogłyby sprawić, że interpolacja będzie nieefektywna. Czy dodanie do mianownika dostatecznie małej dla każdej masy jest możliwą opcją przy interpolacji IDW? Jakie znasz metody interpolacji tego problemu?
Dodatkowe informacje:
Do interpolacji od siatki do punktów używam interpolacji opartej na współrzędnych barcycentrycznych . Każda wielościenna komórka siatki jest rozkładana na czworościany. Pole wyśrodkowane na komórce jest interpolowane do punktów komórki za pomocą interpolacji IDW . Dla każdego punktu przeprowadzane jest wyszukiwanie w celu znalezienia czworościanu, w którym się on znajduje, a wartości interpoluje się za pomocą interpolacji barycentrycznej .
W przypadku interpolacji od punktów do siatki nie jest to możliwe. Wartości wyśrodkowane na komórkach są nieznane. Nie ma możliwości montażu czworościenną kompozycję wymusi , gdzie jest związany z wagą do punktu P i środka ogniwa C . Wynika to z faktu, że konfiguracja punktu jest dowolna. Tak więc obecnie używam do tego IDW, upewniając się, że nie otrzymam wyjątku zmiennoprzecinkowego. Czy istnieją bardziej odpowiednie metody interpolacji dla tego problemu?W P C
źródło
Odpowiedzi:
Linki do różnych pakietów oprogramowania do interpolacji danych rozproszonych znajdują się na mojej stronie internetowej http://www.mat.univie.ac.at/~neum/stat.html#fit
Książka
GE Fasshauer, Meshfree Approximation Methods with MATLAB, World Scienti fi c 2007.
zawiera obszerny najnowszy stan wiedzy (od 2006 r.).
Kilka ostatnich artykułów na temat interpolacji danych rozproszonych:
http://www.stanford.edu/group/uq/pdfs/journals/jcp_scattered_2010.pdf
http://www.math.auckland.ac.nz/~waldron/Preprints/ Box-splines / box-splines.pdf
Wybór metody zależy w dużej mierze od zastosowania wynikowego interpolanta. Metody Kriginga oparte są na modelu stochastycznym, dlatego są dobre, jeśli interpolowane dane są nieco zaszumione. Radialne funkcje bazowe powinny być preferowane, jeśli (realizowane stabilnie) i pożądany jest przyjemny wizualnie wynik (interpolacja przy niskiej krzywiźnie).
źródło
Poniżej podam przykład, w jaki sposób interpolować jeden zestaw punktów do drugiego, na siatce o skończonej objętości.
Skolokowałem układ zmiennych - dane, które przechowuję w pamięci, reprezentują wartości w centrach komórek. Przechowuję zmienne pola i ich gradienty. Gradienty są wykrywane z otaczających wartości rozwiązujących problem najmniejszych kwadratów (z QR przez odbicia Householder).
Twoje ustawienie może się różnić, ale zasada jest taka sama.
Jeśli więc szukam - wartości w centrum twarzy komórki, mogę ją uzyskać z:ϕfa
...
gdzie oznacza sąsiednie centrum komórkowe, przechodzą od 1 do n (bardzo często wystarczy 1, używam 2, tj. używam sąsiednich komórek, które dzielą twarz). jest wektorem odległości od centrum komórki n-tego sąsiada do środka .r n b n , f fnb rnbn,f f
Potem piszę
Potrzebujesz więc jednego zestawu wartości pól i gradientów w tych punktach. Musisz zdecydować, które otaczające punkty przyczynią się do twojego interpolowanego punktu, a także wektory odległości od tych punktów do punktu, do którego interpolujemy.
Na przykład: jeśli przechowuje się dane reprezentatywne dla wartości w wierzchołkach komórek, używasz tego równania, aby znaleźć wartości w centrum komórki itp., Wszystko w zależności od twojej sytuacji.
Opiera się to na serii Taylora. Można również użyć drugich pochodnych, aby uzyskać dokładniejsze wyrażenie.
źródło