Inpassning av mätdata i inhomogena nät Henrik Löfqvist Master s of Science Thesis in Geodesy TRITA-GIT EX 08-005 School of Architecture and the Built Environment Royal Institute of Technology (KTH) 100 44 Stockholm, Sweden March 2008
TRITA-GIT EX 08-005 ISSN 1653-5227 ISRN KTH/GIT/EX--08/005-SE 2
Inpassning av mätdata i inhomogena nät Henrik Löfqvist Stockholm, 2007 3
Förord När man ska överföra koordinater från ett system till ett annat går det inte annat än i väldigt ideala fall göra detta utan att små fel, residualer, uppkommer. I det här fallet avses den rumsliga skillnaden mellan två punkter i de olika systemen. Bakgrunden till det här exjobbet ligger i frågeställningen hur man bästa tar hand om inmätt data, t.ex. GPS-data, som skall passas in i lokala system. I samrådan med SBG arbetades ett exjobb fram, vilket efter hand kristalliserades ut till en studie i hur väl olika metoder för inpassning av mätdata i inhomogena nät fungerar. Tidigare undersökningar har gjorts, bl.a. som exjobb på lantmäteriet, men aldrig med kriging eller med rutnätsgenerering. Jag vill tacka mina handledare som fått fungera både som bollplank och faktakällor; Docent Milan Horemuz, KTH och Civ. Ing. Anders Vidén, SBG. Jag vill vidare tacka Lars E Engberg, lantmäteriet och Tekn. Dr. Patric Jansson, SBK, för diskussion och testdata. Sen tycker jag att det kan vara på sin plats att tacka mamma och pappa också - det kan man aldrig göra för många gånger. 4
Sammanfattning Det här examensarbetet syftar till att utvärdera olika metoder att eliminera de residualer som osvikligen uppträder då man passar in två koordinatsystem mot varann. Korrekt behandlade kan effekterna av den deformation som uppstår minimeras, vilket leder till exaktare databaser som i sin tur leder till exaktare kartor och koordinatbestämningar. Således är det av vikt för t.ex. kommuner som har kartdata i flera system eller företag som utvecklar program för mätbranschen att känna till dessa fel samt hur de kan behandlas. Ett särskilt kapitel behandlar generering av rutnät utifrån mätdata. En analys är befogad därför att rutnät används i många kommersiella programvaror då rutnät har många beräkningsmässiga fördelar. Resultaten av de olika metoderna presenteras och diskuteras. Generellt kan sägas att ju mer komplicerad metod desto bättre resultat. Man kan dock ställa sig frågan när vilken metod är befogad i förhållande till noggrannhetskrav och yttre faktorer. Tänkbara situationer när respektive metod kan tänkas vara användbar samt mindre användbar diskuteras. De metoder som tas upp är, förutom obehandlade data: Närmsta granne Linjärt plan (triangelmodellering) Kriging Bilinjär interpolation ett rutnät Bikubisk interpolation i ett rutnät Bikubisk interpolation med bilinjär komplettering i ett rutnät De Matlab-script som används för att utföra de olika beräkningarna och interpolationerna är utvecklade för exjobbet och kan erhållas av författaren. 5
Abstract This Master of Science thesis (Adjusting data into inhomogeneous geodetic control networks) aims at evaluating different methods of reducing the residuals that unavoidably occur when fitting two coordinate systems. Treated correctly the effect of the occured deformation can be minimized, which leads to more precise databases which in turn leads to more precise maps and coordinates. One chapter deals with the grids. This is because grids are used in a variety of commercial software cause of their computational aspect and an analysis is thus justified. The results of the different methods are presented and discussed. In general it can be said that the more complex the method the better the results. When and where it is justified to use a more complex method with regard to external factors is briefly discussed along with feasable scenarios for that respective method. The methods discussed, besides untreated data, are: Nearest neighbour Linear plane (triangle model) Kriging Bilinear interpolation in a grid Bicubic interpolation in a grid Bicubic interpolation with bilinear completion in a grid The Matlab-scripts used for the calculations and interpolations were developed for this thesis and they are available from the author. 6
Innehållsförteckning Inpassning av mätdata i inhomogena nät Förord Sammanfattning Abstract Innehållsförteckning 1. Inledning 1.1. Bakgrund 1.2. Litteratur 1.3. Problem 1.4. Syfte 2. Inpassning 2.1. Allmänt 2.2. Helmert-transformationen (2D) 2.3. Affin transformation (2D) 2.4. Inpassning av passpunkter i testdata 2.5. Inpassning av icke-passpunkter, allmänt 2.6. Förtydligande om använd terminologi 3. Interpolationsmetoder 3.1. Interpolation i den här rapporten 3.2. Bakomliggande teori 3.2.1. Närmsta granne-interpolation 3.2.1.1. Allmänt 3.2.1.2. Den interpolerade ytans egenskaper 3.2.2. Linjärt plan-interpolation (triangelnät) 3.2.2.1. Allmänt 3.2.2.2. Delaunay-triangulering 3.2.2.3. Teori 3.2.2.4. Den interpolerade ytans egenskaper 3.2.2.5. Särfall 3.2.3. Kriging-interpolation 3.2.3.1. Teori 3.2.3.2. Semivariogram 3.2.3.3. Kriging-interpolationens generella form 3.2.3.4. Lagranges multiplikator 3.2.3.5. Korrelationsmodell 3.2.3.6. Regressionsmodell. 3.2.3.7. Splines en snabb överblick 3.2.3.8. Kort historik 4. Metoder med rutnät 4.1. Allmänt 7
4.2. Varför rutnät? 4.3. Rutnätsgenerering 4.3.1. Rutnät från triangelnät 4.3.2. Rutnät från kriging 4.4. Bilinjär interpolation 4.4.1. Allmänt 4.4.2. Den interpolerade ytans egenskaper 4.5. Bikubisk interpolation 4.5.1. Allmänt 4.5.2. Den interpolerade ytans egenskaper 4.6. Bikvintisk interpolation 4.6.1. Allmänt och kortfattad teori 5. Testdata 5.1. Genererad testdata för utveckling 5.2. Autentisk testdata 5.3. Indata till rutnät 6. Resultat och diskussion 6.1. Testdata 6.2. Vanlig helmert-inpassning 6.2.1. Vanlig Helmert-inpassning med närmsta granne-interpolation 6.2.2. Vanlig Helmert-inpassning med triangelnätsinterpolation 6.2.3. Vanlig Helmert-inpassning med Kriging-interpolation 6.3. Rutnätsbaserade interpolationer 6.3.1. Rutnät från inversa avstånd samt bilinjär interpolation, 35 x 30 6.3.2. Rutnät från inversa avstånd samt bilinjär interpolation, 70 x 60 6.3.3. Rutnät från inversa avstånd samt bilinjär interpolation, 140 x 120 6.3.4. Rutnät från inversa avstånd samt bikubisk interpolation, 35 x 30 6.3.5. Rutnät från inversa avstånd samt bikubisk interpolation, 70 x 60 6.3.6. Rutnät från inversa avstånd samt bikubisk interpolation, 140 x 120 6.3.7. Rutnät från inversa avstånd samt bikubisk+bilinjär interpolation, 35 x 30 6.3.8. Rutnät från inversa avstånd samt bikubisk+bilinjär interpolation, 70 x 60 6.3.9. Rutnät från inversa avstånd samt bikubisk+bilinjär interpolation, 140 x120 6.3.10. Sammanställning av resultat från rutnät 7. Sammanfattning och slutsatser 7.1. Direkta interpolationer 7.2. Interpolationer i rutnät 8. Förslag på fortsatta studier Litteratur och referenser Bilaga A. Kortfattad förklaring av termer 8
1. Inledning 1.1. Bakgrund Tiden går och ny mätutrustning tillkommer; mer exakt och snabbare än föregående. Nya koordinatsystem konstrueras, lägesbunden information dyker upp i alltfler tillämpningar, nya beräkningstekniker implementeras och utöver detta ligger den politiska målbilden över hur vår geodetiska infrastruktur skall se ut. Att övergå till ett nytt, bättre och mer exakt, koordinatsystem är så klart av godo, men det skapar samtidigt en mängd problem. Gamla data ligger kvar i gamla system, de olika systemen är med stor sannolikhet skapade genom olika metoder, olika områden realiserar olika system, stompunkter försvinner och ersätts, det är en kostnadsfråga att byta system o.s.v. för att bara nämna några problem. Det är viktigt att inse att de siffror som dyker upp i displayen när man mäter en koordinat ständigt är behäftade med ett fel. Felet kan givetvis vara större eller mindre, men allteftersom geografisk IT expanderar så skärps också kraven och toleransnivån sänks. På grund av detta är det viktigt att hitta metoder som minimerar felen. 1.2. Litteratur Innan detta examensarbete konkretiserades med struktur, metoder och kod så gjordes en litteratursökning för att se hur mycket stoff härom är skrivet. Ett exjobb av Svanholm (2000) och ett exjobb av Alfredsson (2002) fanns att tillgå, men utöver dessa är lite skrivet om de geodetiska delarna. För de geostatistiska tillämpningarna fanns Eklundh (2001) samt Nielsen m fl. (2002). För mera rent matematiska och numeriska tillämpningar är mer skrivet och till stor del användes Salomon (1999). Man kan säga att ju närmare man kommer att reducera residualer inom geodetiska tillämpningar desto mindre litteratur finns att tillgå. 1.3. Problem En illustration av inpassningsproblem är att rita några punkter på ungefär samma ställen på två OH-papper. Det kommer inte att gå att lägga de båda OH-pappren så att alla punkter ligger sammanfaller, utan man får nöja sig med att det blir små avstånd mellan punkterna. Dessa avstånd beskriver de fel som finns och ju större avstånd desto större residual. Detta exempel beskriver ganska väl ett konkret problem man ställs inför i mätbranschen. Kommuner, lantmäteriet liksom privata företag behöver byta mellan olika referenssystem beroende på tillämpning och då tarvas vetskap om nämnda fel. Problemen vid ett byte av referenssystem sammanfattas av Alfredsson (2002): Hur skall de fel av olika slag i det gamla systemet modelleras för att få en så bra bild över situationen som möjligt? Vilken metod skall användas för att deformationerna i det nya systemet skall reduceras så mycket som möjligt? I den här studien kommer båda problemen att beröras. 1.4. Syfte Syftet med den här studien att undersöka hur man, beroende på hur tillgängliga mätdata, på ett bättre sätt kan minimera effekterna av de ofrånkomliga inpassningsfel som varje inpassning är behäftad med. 9
2. Inpassningsmetoder 2.1 Allmänt För att skapa samband mellan två olika koordinatsystem transformerar man det ena systemets koordinater (från-system) till ett nytt set koordinater i vad som kallas tillsystemet. Detta kan schematiskt åskådliggöras lite förenklat med Figur 2.1. Vanligtvis används Helmert-transformation, men vid misstanke om icke-rätlinighet så kan man använda en s.k. affin transformation. Dessa båda transformationer beskrivs mer i detalj nedan. Nedan beskrivs 2-dimensionell transformation, men utveckling till 3-dimensionalitet (en Z-axel ) är givetvis möjlig. Fig. 2.1. Schematisk bild över transformationsprocessen 2.2. Helmert-transformation i 2D För att kunna skapa en inpassning via en Helmert-transformation föreligger följande kriterier: De båda systemen får ha olika origo. Det får finnas en vridning mellan de båda systemen. Det får föreligga en skalskillnad mellan systemen. Båda systemen måste vara rätvinkliga Detta innebär att en Helmert-transformation har 4 parametrar, nämligen: 2 translationer ( X 0, Y0 ), 1 vridning (α) och 1 omskalning (m). X 0 är den X-koordinat man ursprungligen har och X till beskriver den koordinat transformationen ger vilket gäller analogt för Y. Formlerna för transformationen är: X till = X 0 + ax by Ytill = Y0 + bx + ay där: a = m * cos(α ) b = m * sin(α ) (2.1) Rent praktiskt innebär detta att man behöver minst två punkter i de båda systemen att passa in mot. Det kan ses som att man lägger det ena systemet över det andra och försöker få de gemensamma punkterna att ligga precis över varandra. Vanligtvis har man fler än två punkter, varpå man använder minsta kvadrat-metoden att på bästa sätt passa in systemen mot varann. Antalet punktpar över två (för Helmert) kallas överbestämningar, vilket kommer från att det är mer data än vad som är absolut minimum för att nå en lösning. Vid inpassningen kommer man att få residualer (kallas ibland även spänningar eller fel, se kapitel 2.6), vilket är de motsägelser man får när man försöker passa in två system mot 10
varandra som inte har exakt samma koordinater. Detta kan gestaltas med de streck man skulle behöva dra mellan två punkter för att binda samman dem om man lagt de två systemen över varandra så gott det går. Det är dessa residualer, vilka är de deformationer som det nyligen framtransformerade nätet är behäftat med. Dessa residualer kommer att användas för att reducera de fel som punkter som inte är med i inpassningen osvikligen kommer at vara behäftade med. 2.3. Affin transformation i 2D Affin transformation lämpar sig inte så bra för alla geodetiska tillämpningar, då koordinataxlarna inte behöver vara inbördes rätvinkliga, men denna transformation har med viss framgång använts med andra metoder för residualreduktion varför en kort genomgång här ges. För att kunna skapa en inpassning via en affin transformation föreligger följande kriterier: De får ha olika origo Båda axlarna får ha en av varann oberoende vridning runt origo Det får föreligga en skillnad i skala i båda axlarna mellan systemen Ur detta kan vi konstatera att affin transformation inte är så lämplig i våra vanligaste system då geodetiska nät inte är avsedda att ha olika skalor på axlarna. På grund av detta rekommenderas Helmert-transformation, men om misstanke föreligger om bristande rätvinklighet och/eller systematiska skalskillander kan det vara värt att pröva så länge man är medveten om ovan nämnda argument. En affin transformation har således sex parametrar, nämligen: 2 translationer ( X 0, Y0 ), 1 vridning (α), 1 parameter för bristande rätvinklighet (β) och 2 skalor (mx, my). X 0 är Den X-koordinat man ursprungligen har och X till beskriver den koordinat transformationen ger vilket gäller analogt för Y. Formlerna för transformationen är: X till = X 0 + ax + by Ytill = Y0 + cx + dy där: a = b = c = d = mx * cos(α ) my * sin(α + β ) mx * sin(α ) (2.2) my * cos(α + β ) En affin transformation kräver minst tre gemensamma inpassningspunkter. På samma sätt som med Helmert-transformation fås härur de deformationer för inpassningspunkterna som ligger till grund för vidare residualinterpolationen (eller restfelsinterpolation). 2.4 Inpassningen av passpunkter i testdata För att kunna utföra en transformation krävs två set med koordinater som representerar samma punktsvärm i deras respektive system. En gemensam passpunkt är en punkt som representerar samma plats på marken fast i respektive (koordinat)system. Den testdata med passpunkter som använts i det här exjobbet beskrivs i kapitel 5. För inpassningen används Helmert-transformationen på de gemensamma passpunkter som finns i de båda systemen. I Figur 2.2 visas residualerna grafiskt, men då de är förhållandevis små så har residualskalan överdrivits 6000 gånger. De parametrar som erhålls är: 11
m = 0.999996 ± 6.9 *10 7 α = -0.000002 ± 6.9 * 10 7 X 0 = 0.016975 ± 0.0046 Y0 = 0.112883 ± 0.0046 σ 0 = 0.071851 (grundmedelfel) Fig. 2.2. Residualerna från Helmert-inpassningen av passpunkterna 2.5 Transformation av icke-passpunkter När en inpassning är utförd resulterar den i ett, beroende av transformationsmetod, antal parametrar. Dessa parametrar definierar en exklusiv transformation enligt formeln för vald transformation; se t.ex. Formel (2.1) för Helmert-transformation. Enkel insättning av koordinater för punkten som skall transformeras ger således koordinaten i TILL-systemet. Nämnda punkt är osvikligen behäftad med det fel som den här rapporten syftar till att minimera. 2.6. Förtydligande om använd terminologi Det finns många ord som beskriver de motsägelser som uppstår vid en inpassning. Alltså den vektor som skiljer punkten AFRÅN från punkten ATILL. Denna motsägelse kan benämnas 12
residual, fel, spänning, deformation eller restfel. I den här rapporten används residual för att beteckna nämnda motsägelse. Vidare kan nämnas att en punkt har en residual, men i den här rapporten komposantuppdelas residualen varför plural, residualer, kan nämnas om en punkt. Detta avser komposantuppdelningen och inte fler residualer på samma punkt. 3. Interpolationsmetoder 3.1. Interpolation i den här rapporten När man gjort en inpassning så uppstår fel, residualer, vid varje passpunkt. Det är dessa residualer som används som indata för de använda interpolationsmetoderna. I rapporten komposantuppdelas varje residualvektor och interpoleras i X- och Y-led var för sig. Varje interpolationsmetod i kapitel 3 har alltså samma indata. 3.2 Bakomliggande teori Förr i tiden gjordes stora tabellverk för att bestämma funktionsvärden. När man dock sökte ett värde som låg mellan de i förväg tabulerade värdena behövde man läsa mellan raderna, så att säga. Det är detta som är att interpolera. Att interpolera innebär att bestämma en funktions värde på en punkt utifrån samma funktions värden i kringliggande punkter. En mer formell förklaring ges, fritt översatt, av Schumaker (1976): Givet punkterna (xi, yi, zi) för i = 1, 2,, n, över någon domän, söks en funktion z = f(x, y) vilken reproducerar de givna punkterna och producerar en rimlig skattning av ytan z över alla (x, y) inom given domän. Definitionen ovan avser ett funktionsvärde och inte en vektor, som är fallet i den här rapporten, men analogin fungerar väl i ett beskrivande syfte. I figur 3.1. illustreras hur man t.ex. kan interpolera 3.5 längs den horisontella axeln till ungefär 0.25 på den vertikala axeln. Figuren avser enkel linjär interpolation, men grundtanken är densamma oavsett interpolationsmetod. Den interpolerade kurvan, eller ytan, behöver inte gå genom alla datapunkter, vilket den gör i figuren, utan kan modelleras att följa trender snarare än diskreta datapunkter. På så sätt återfinns inte kontrollpunkterna i den interpolerade kurvan. Splines, som tas upp senare i rapporten, är ett exempel på detta Fig. 3.1. Grundläggande interpolation. 13
Man kan vidare dela upp interpolationsmetoder i lokala och globala metoder. En global metod tar med alla punkter i beräkningen av en ny punkt, vilket t.ex. splines kan vara exempel på. De lokala metoderna tar däremot bara hänsyn till sin specificerade omgivning. Vidare kommer varje metod att skapa ytor med olika egenskaper, vilka tas upp metod för metod. I den här rapporten kommer ett urval av interpolationsmetoder att användas, nämligen: Obehandlade transformationsdata (som referens, ingen interpolationsmetod) Närmsta granne-interpolation. Linjära plan-interpolation (triangelmodellering). Kriging-interpolation Bilinjär interpolation i ett rutnät bildat genom avståndsviktad linjär interpolation. Bikubisk interpolation i ett rutnät bildat genom avståndsviktad linjär interpolation. En kombination av bikubisk och bilinjär interpolation i rutnät. De tre sistnämnda kräver även genereringen av ett rutnät, också genom någon interpolationsmetod, vilket också behandlas nedan. I fallet med residualer är tillvägagångssättet en analog för hur man tänker, t.ex. med höjder. I varje punkt finns en residuals X-komponent och Y-komponent som kan tänkas vara vektorer som kan vektoradderas (se även Figur 3.2) enligt: r = ( rx,0) + (0, ry ) (3.1) Rent konkret innebär det här att för varje punkt finns två korrektioner som adderas ihop till den slutgiltiga residualen. Alltså blir det dubbla beräkningar för varje punkt, och således blir beräkningskomplexiteten något större än vid interpolation med endast ett funktionsvärde. Två beräkningar krävs således för varje residualberäkning eller residualuppsökning. Fig. 3.2. Två vektorer adderas Vad man vet i förväg om ett näts deformationer kan ligga till grund för ens val av metod, och om ens krav på noggrannhet kräver en residualhantering. En helmert-transformering kan åskådliggöra de deformationer (residualer) som finns på ens inpassningspunkter och således tydligt säga om det finns systematiska deformationer eller mer slumpmässiga. Tänkbara scenarier är ryggar, radiella deformationer, till synes slumpmässiga avvikelser eller deformationer som alla pekar åt samma håll. Ett slags riktvärde skulle kunna sägas vara ju högre grad av interpolationsmetod man väljer, ju närmre kommer det interpolerade värdet följa den residualtopografi som finns i nätet Vid icke försumbara deformationer kommer varje mätt koordinat vara behäftad med ett fel lika med den residualvektor som i den här rapporten beräknas. Således borde även den mest rudimentära residualhantering innebära en förbättring. 14
3.2.1 Närmsta granne-interpolation 3.2.1.1. Allmänt Känd även som nearest neighbor är denna den enklaste interpolationsmetoden. Den sökta residualen tas helt enkelt till samma residual som dess närmsta granne har; se Figur 3.3. Detta kan beskrivas matematiskt som: r = a 00 (3.2) Ovan är a 00 är den närmsta grannens residual i det här fallet. Den här interpolationsformen kommer att ge en diskontinuerlig yta, ungefär som ett stapeldiagram, vilket gör att den således inte är särskilt väl lämpad för applikationer med högre noggrannhetskrav. För att se hur stort område varje grannskap är kan man bilda ett voronoi-diagram (beskrivs kortfattat i bilaga A). Den polygon som begränsar en datapunkt är det område inom vilket alla nypunkter kommer att kopiera sin residual från, se Figur 3.4. Alla nypunkter (svarta fyrkanten i figuren) får samma värde som den datapunkt (x) vars voronoi-polygon (linjerna) den hamnar inom. Värt är att notera att voronoi-diagram och delaunay-triangulering kan skapas utifrån varandra. Har man den ena har man alltså också indirekt den andra. Alternativt kan man ta a 00 som ett medelvärde av n närmsta grannar, vilket torde höja noggrannheten något, men detta behandlas inte i den här rapporten. I figur 3.3 skulle t.ex. n = 5 ge att r blir det matematiska medelvärdet av alla fem residualerna. Vidare skulle man kunna vikta med inversa avståndet, vilket inte heller tas upp här. Fig. 3.3. D är närmsta granne 3.2.1.2. Den interpolerade ytans egenskaper Man kan lätt inse att en yta framställd genom närmsta granne-interpolation kommer att ha skarpa kanter mellan sina värden, då ytan hoppar så fort en ny datapunkt påträffas längs riktningen interpolationen görs. Det innebär att ytan inte kommer vara kontinuerlig, d.v.s. inte sitta ihop vid brytpunkterna, och följaktligen inte heller ha kontinuerliga derivator. Fig. 3.4. Voronoi-diagram för närmsta granne. 15
3.2.2. Linjärt plan-interpolering (triangelnät) 3.2.2.1. Allmänt Den här metodiken bygger på att man, efter transformering, ur sin oregelbundna punktsvärm konstruerar trianglar mellan alla passpunkterna enligt på förhand uppställda kriterier. Den punkt som skall korrigeras för deformationer kommer således att hamna inom en triangel, varpå dess tre hörns residualvektorer kommer att utgöra data i den interpolerande funktionen. Det specialfall som inträffar om en punkt hamnar precis mellan två trianglar kan behandlas genom att räkna punkten som att tillhöra någon av trianglarna enligt något kriterium, t.ex. alltid den triangeln längst åt höger. Det första som man måste göra är dock att konstruera trianglarna, vilket görs med Delaunay-triangulering. Varje nod i triangelnätverket kommer att innehålla de sanna residualerna från den föreliggande transformationen. Att beräkna en residual för en godtycklig punkt kommer således att bestå av två steg; uppsökning av omslutande triangel samt interpolering. 3.2.2.2. Delaunay-triangulering Ur en punktsvärm önskar vi nu dela in den helt i trianglar, och ett smidigt sätt att åstadkomma detta är genom Delaunay-triangulering. En formell beskrivning skulle kunna vara, fritt översatt, (Salomon, 1999): En Delaunay-triangelyta består av ett set icke överlappande trianglar vari ingen punkt i nätverket innesluts av någon annan triangels omkretscirkel Det finns många sätt att skapa den här trianguleringen, och vid stora punktsvärmar finns här stora tidsvinster i att välja algoritmer med lägre beräkningskomplexitet. Den vanligaste typen av algoritmer är ökande algoritmer (eng. incremental) vari en punkt läggs till i den delvis uppbyggda ytan efter varje iteration. Det finns även utifrån-och-in-algoritmer som till skillnad från den inkrementella kräver kunskap i förhand om antalet ingående element. I den här rapportens används den senare, via MATLAB, och den har en beräkningskomplexitet Ο(n log(v)) där n = antalet punkter och v = slutgiltiga antalet konnektionslinjer mellan punkterna. I grund bildar man alla trianglar enligt följande bildserie: Då ingen ytterligare punkt påträffades innanför omkretscirkeln i figur 3.6 betyder det att en triangel kan bildas och man kan söka vidare efter nästa tre kandidatpunkter. Skulle en punkt påträffats innanför omkretscirkeln hade vi bytt kandidatpunkter direkt utan att bilda triangel. Vilken ordning man än provar kandidater i kommer resultatet att bli detsamma. Trianguleringen är således unik. Trianguleringen kan bli dålig, eller misslyckas, vid följande fall: Fyra grannpunkter bildar en rektangel 16
Två identiska punkter (har samma koordinat) Tre kolinjära punkter Fyra punkter ligger på samma cirkel med samma Voronoi-spets 3.2.2.3. Teori Det linjära planet är ett polynom med tre termer och kan skrivas som: r = a10 + a 00 X + a 01Y där: (3.3) r : Residualvektor Vari (X, Y) = den sökta punktens koordinater och (a00, a10, a01) är de koefficienter som behöver lösas ut. Vi söker alltså residualen i den punkt där triangeln spänner upp ett plan inom vilket den koordinaten (X, Y) återfinns. Nedan kommer bara residualens Xkomponent att behandlas, men Y-komponenten tas fram helt identiskt. Vi kan ställa upp följande matrisekvation inom vilken f (P 0) avser funktionsvärdet i punkten P0. X P0 X P1 X P 2 YP 0 1 a 00 f ( P 0) YP1 1 a 01 = f ( P1) YP 2 1 a10 f ( P 2) (3.4) När man erhållit koefficienterna kan man genom formel 3.3 beräkna X-residualen för (X,Y). Samma procedur erhåller sedan Y-residualen, och den sökta residualen kan bildas genom att addera de båda vektorerna. Fig. 3.8. De ingående datapunkterna i en interpolering 3.2.2.4. Den interpolerade ytans egenskaper En yta konstruerad med linjärt plan-interpolation kommer vara kontinuerlig men inte ha kontinuerliga derivator. Detta visas inte här, utan konstateras bara. 3.2.2.5. Särfall En punkt kan även hamna utanför triangelmodellen (utanför det konvexa skalet) och då krävs s.k. extrapolering om ett värde skall erhållas. Detta är inte att rekommendera, och det inträffar heller inte i det i denna rapport använda dataset. 17
3.2.3. Kriging 3.2.3.1 Allmänt Kriging är en geostatistisk metod vars grundtanke är att en rumslig variabel kan vara för komplicerad för att modelleras matematiskt, så istället betraktas den som en stokastisk variabel. Alltså en variabel som varierar slumpmässigt inom en viss fördelning. För detta förutsätts även att variabler behandlas som stationära processer, vilket betyder att hänsyn bara tas till ett punktpars avståndsvektor, och inte deras absoluta positioner. Det som skiljer mot vanlig interpolation är att de faktiska autokorrelationer, rumsliga likheter, tas hänsyn till och beskrivs i ett variogram vilket beskriver semivariansen mellan punktpar. Genom att lägga de sökta punkterna över givna datapunkter kan en yta skapas, och varje nod kommer att ha ett interpolerat värde som uttrycks av viktade summor av kringliggande datapunkter. Detta är hela grundtanken. Till det variogram man får anpassar man sedan en funktion för att få en matematisk beskrivning av en punkts rumsliga variation. Vilken funktion som bäst följer variogrammet varierar, så en analys är ofta nödvändig. Variogrammen är således unika för respektive variabel, och i fallet med residualer finns där två, x-led och y-led, vilket ger en slags anisotropi (motsats till isotropi) i det att respektive residual kan modelleras med olika funktion. Den funktion man anpassar används sen i de vikter man tilldelar värden vid själva interpolationen. Fig. 3.9. Anisotropi. Förändring i Y-led men konstant i X-led. Fördelar med Kriging ligger mycket i det avståndsberoende som bestäms utifrån variogrammet samt att interpolationen tar hänsyn till fördelningen av de punkter från vilka interpolationen utförs, vilket innebär att en enskild punkt i en punktansamling ges mindre vikt relativt punktansamlingen i stort. Kriging ger även standardavvikelsen i de framinterpolerade punkterna. Bland nackdelarna bör nämnas att den är lite mer komplicerad än vanliga matematiska interpolationsmetoder, främst då i bedömningen av vilken funktion som skall modelleras till variogrammet. Kriging har ytterligare en fördel i det att den fungerar bra även om inte datapunkterna är jämnt fördelade. Att ha ett jämnt fördelat dataset är nämligen inget man kan ta för givet i geodetiska sammanhang. Vilken typ av funktion som skall användas i variogrammet beror på tillämpning. I geodetiska tillämpningar kan det vara lämpligt att modellera med en funktion som uppträder linjärt nära datapunkten, så som linjära, exponentiella eller sfäriska funktioner men detta är ingen absolut sanning. 3.2.3.2. Semivariogram För att beskriva den rumsliga autokorrelationen använder man ofta inom geostatistik semivariansen vilken beskriver hur olikheten mellan två punkter. Således ger en hög semivarians en låg korrelation, vilket också blir tydligt när man representerar semivariansen grafiskt. Den besläktade kovariansen beskriver istället likheten mellan två punkter. 18
I verkligheten får varje punktpar ofta ett för dem unikt avstånd, men detta gör att variogrammet snabbt blir beräkningstung, så av denna anledning brukar man dela in avstånden i ett antal buntar (eng. bins), så t.ex. kan alla avstånd mellan 10-20m utgöra en punkt i variogrammet. Varje punktpars avståndsvektor som är inom det intervallet tillhör således nämnda bunt. Semivariansen beskrivs formellt som: 2γ (h) = V [ z ( x) z ( x + h)] där: (3.5) γ (h) : semivarians V[ ]: varians Kraven som ställs på semivariansen är att den funktion som väljs måste vara densamma över hela området samt att funktionen måste vara beroende av avstånd allena och inte av riktning (Burrough och McDonnell, 1998; Eklundh, 2001) Semivariansen kan skattas enligt (Eklundh, 2001): 1 m γˆ (h) = [ z ( x i ) z ( xi + h)] 2m i = 1 där: 2 (3.6) γˆ (h) : Den skattade semivariansen m: Antalet jämförelser för rådande avstånd z ( xi ) : funktionsvärdet för xi z ( xi + h) : funktionsvärdet för respektive punkt inom rådande avstånd Skattningen ovan kan ses som att för varje punkt successivt söka genom en större radiell omgivning för varje iteration. Således blir det en numerisk process där man till slut hittar fler och fler punkter. Genom att inspektera variogrammet kan man bättre anpassa en lämplig korrelationsmodell och således få en bättre interpolation. Här kan tydligt ses om det behövs olika korrelationsmodeller då det inte ör alltid förändringen är samma längs olika riktningar (se figur nedan). Fig. 3.10. Variogrammets beståndsdelar. Variogrammets beståndsdelar är nugget (ingen bra översättning finns), sill (tröskel) och range (område) och deras betydelser beskrivs nedan: 19
Nugget: Det här är den punkt där funktionen har range = 0. Denna punkt kommer, vanligtvis, att vara belägen något över 0 och det är det här avståndet som benämns nugget och representerar brus och icke-rumsligt autokorrelerade fel. Om nugget utgör en mycket stor eller betydande del betyder det att den slumpmässiga variationen är så pass stor att en kriging-interpolation i det fallet är meningslös. Sill: Det här är utplaningspunkten. Alltså den punkt i vilken bedömningen görs att här har funktionen planat ut, och semivariansen här är således en skattning av den globala variansen för den variabeln som undersöks. Från 0, längs med avståndsaxeln, till sill ger variogrammets range. Range: Definieras som avståndet fram till sill, varefter funktionens lutning avtar och variansen blir uppskattningsvis konstant. Range kan tolkas som det längsta avstånd inom vilket det finns ett rumsligt beroende - alltså inom vilket avstånd funktionsvärden viktsätts vid interpoleringen. Punkter utanför detta avstånd kan inte tillföra något till interpoleringen och får således vikt 0. För att lättare kunna utföra beräkningar på variogrammen passas de in mot någon form av funktion. Den funktion som passas mot är oftast exponentiella, gaussiska, linjära, sfäriska, kubiska eller någon form av spline-funktion. Valet av funktion kan vägledas av det underliggande fenomenet variogrammet visar. Geodetiska tillämpningar tenderar att uppvisa ett linjärt beteende vid korta avstånd. Nedan i Figur 3.11 är variogrammen för Xoch Y-led plottade. Fig. 3.11. Semivariogram för den använda uppsättningen Kriging-parametrar i X- och Y-led. Avstånd i km. Man kan ur dessa ungefärligt utläsa att sill (den uppskattade globala variansen) i X-led = 0.0022 och i Y-led = 0.0029 och att nugget ungefär ligger på 0.00035 i X-led och 0.00025 i Y-led. 3.2.3.3. Kriging-interpolationens generella form Formellt kan man beskriva Kriging enligt en generell formel (Burrough och McDonnell, 1998): zˆ ( x ) = n i= 1 λ i z ( xi ) (3.7) där: zˆ ( x) : interpolerat värde λ i : vikt för punkt i 20
z ( xi ) : funktionsvärde, punkt i Semivarianser mellan det interpolerade värdet och känd xi (ur formel 3.7 och felfortplantningslagen): γ ( xi, x p ) = n j= 1 λ j γ ( xi, x j ) (3.8) Vi vill hitta ett minimum av funktionen E z ( x) där: i = 1 λ i z( xi ) n 2 (3.9) E{ X } : väntevärdet för X med avseende på λ, med villkoret n i= 1 λ i = 1, där z ( x) = zˆ ( x) + v är sant värde, under förutsättning att z (x) behandlas som en stokastisk variabel, d.v.s. en statistisk slumpvariabel. De båda funktionsvärdena γ ( xi, x j ) respektive γ ( x j, x p ) i formel 3.8 betecknar semivariansen mellan mätpunkterna xi och x j respektive mätpunkten x j och den interpolerade punkten x p (Burrough och McDonnell, 1998). Båda dessa funktionsvärden kan utläsas ur variogrammet. För att beräkna vikterna så utvecklas formel n 3.9 enligt följande, med zˆ ( x) = i= 1 { E [ z ( x) zˆ ( x)] { } E z ( x) 2 = 2 λ i z ( xi ) : } = E{ z ( x) } 2E{( z( x) zˆ( x))} + E{ zˆ( x) } 2 1 dx' dx = V2 2 E{ z ( x) z ( x' )} dx'dx = γ (V,V ) + m V (3.10) 2 (3.11) där: V: Domän centrerad kring den interpolerande punkten. γ (V,V ) : Funktionsvärde i domänen V m 2 : Integrationskonstant E{ z ( x) zˆ ( x)} = i { } E zˆ ( x) 2 = = i j i λi Vvi j λ iλ E{ z ( x) z ( x' )} dx' dx = V vi j i 1 vi v j λ i λ j γ (v i, v j ) + m λ i γ (V, vi ) + m 2 (3.12) E{ z( x) z( x' )} dx' dx = vi v j 2 21 (3.13)
där: v : värden ur variogram Integrationskonstanterna, m 2, tar ut varann ( m 2 2m 2 + m 2 = 0 ) och kvar blir: σ 2 E { = E [ z ( x) zˆ ( x)] 2 } = γ (V,V ) 2 λ i γ (V, vi ) + i i j λ i λ j γ (v i, v j ) (3.14) där: σ E2 : Krigingvarians γ (V, vi ) : semivarians mellan interpolerande punkt och mätpunkten. γ (vi, v j ) : semivarians mellan de båda mätpunkterna. n Genom att minimera Krigingvariansen under nämnda villkoret, i= 1 λ i = 1, så fås de optimala vikterna genom att sätta till 0 samtliga ekvationer: σ 2 E 2φ λ i 1 i (3.15) Här fås nu ett ekvationssystem med n+1 linjära ekvationer med lika många okända; n antal vikter, λ och Lagranges multiplikator, φ (se 3.2.3.4) j λ j γ ( xi, x j ) + φ = γ ( xi, x p ), för alla i. (3.16) Beräkningen av vikterna, här i matrisform, görs sedan enligt: λ 1 γ ( x1, x1 ) = λ i γ ( xi, x1 ) 1 φ γ ( x1, xi ) 1 γ ( xi, x i ) 1 1 0 1 γ ( x1, x p ) γ ( xi, x p ) 1 (3.17) 3.2.3.4. Lagranges multiplikator Ett vanligt problem är att lokalisera en funktions maximum respektive minimum under ett eller flera villkor. Lagranges multiplikator kan användas för just detta. Ett sätt att betrakta det är att reducera ett system med samma antal variabler som ekvationer under i villkor till ett system med n+1 variabler - fast utan villkor (Adams, 1999). Det är den här okända variabeln som introduceras som kallas för lagranges multiplikator. I fallet med Kriging är antalet variabler samma som antalet punkter som är aktuella för viktsättning för den interpolerande punkten, x. Nedan introduceras en lagrange-multiplikator in i ett system: 22
X (a1 ) + Y (b1 ) = Z (c p1 ) X (a 2 ) + Y (b2 ) = Z (c p 2 ) X (a1 ) + Y (b1 ) + φ = Z (c p1 ) X (a 2 ) + Y (b2 ) + φ = Z (c p 2 ) X + Y+ 0= 1 (3.17) 3.2.3.5. Korrelationsmodellen När man utför beräkningar på variogrammet så har man anpassat den skattade kurvan till en funktion som går att utföra beräkningar på. De vanligaste är linjär, sfärisk, exponentiell och Gaussisk (Burrough och McDonnell, 1998), av vilka linjär och sfärisk ihop med en något mer avancerad spline-funktion (som beskrivs kortfattat nedan) återges nedan i en generell form: Linjär: Sfärisk: Spline: där: 0 γ ( x) = c0 + bx c + ba 0 x= 0 0< x< a (3.18) x a 0 x= 0 3 2 γ ( x) = c 0 + c1 (3x / 2a x / 2a ) 0 < x < a c + c x a 1 0 1 15 x 2 + 30 x 3 γ ( x) = 1.25(1 x) 3 0 (3.19) 0 x 0.2 0.2 < x < 1 (3.20) x 1 x : ett punktpars avstånd enligt variogrammet b : linjens lutningen (aktuell enbart i den linjära modellen) a : range. Avstånd till semivariogrammet planar ut. 3.2.3.6. Regressionsmodell. En mer generell Kriging-modell Det kan hända att det föreligger någon övergripande trend bland funktionsvärdena, t.ex. att de formar en uppförsbacke i någon riktning varpå man kan applicera en regressionsfunktion (ett polynom) för att modellera denna trend. Den här funktionen måste vara strikt deterministisk (ge samma resultat för samma indata varje gång) då den subtraheras från funktionsvärdena innan interpoleringen för att sedan adderas tillbaka. En kriging-interpolation utan regressionsmodell kallas för vanlig kriging (eng. ordinary kriging) medan en kriging-interpolation med regressionsmodell kallas för universell kriging (eng. universal kriging). En vanlig kriging kan ses som en universell kriging med ett 0gradspolynom som regressionsfunktion. Figur 3.12 illustrerar hur en yta som interpolerats fram med kriging skiljer sig beroende på regressionsmodell, eller som i fallet med den första figuren i serien ingen regressionsmodell alls. När man väljer att använda en regressionsmodell bör dock detta ha en fast förankring i tillämpningen. I geodetiska tillämpningar kan man t.ex. försvara användandet ifall en inpassnings residualdiagram vid inspektion påvisar en övergripande trend. Användandet av 23
en regressionsmodell kan, i de fall övergripande trender ej förekommer, väsentligt försämra kvaliteten på interpolationen. Fig. 3.12. Olika övergripande trender modellerade med olika regressionsmodeller. 3.2.3.7. Splines en snabb överblick En spline är en funktion som kan sättas samman av polynom som i sin tur är uttryck som kan sättas samman av ett ändligt antal variabler och konstanter. Tanken med splines är att i varje datapunkt så byter spline-funktionen polynom med behållen kontinuitet av förstaoch andraderivatan. Splines kan något skämtsamt sägas vara en matematisk realisation av en fysisk interpolation. Innan spline-metodiken fanns löstes relevanta problem med att en linjal (spline översätts egentligen ordagrant ri) fysiskt sattes fast på ett ritbord över mätpunkterna och sedan kunde enkelt de punkter man ville åt ritas av längs med linjalens sträckning. 3.2.3.8. Kort historik Kriging är uppkallat efter Danie G. Krige (1919 - ), en sydafrikansk ingenjör, som utvecklade metoden för att bättre kunna bestämma lokaler med guldmalm utifrån stickprovsdata. Krige använde geostatistik som grund för sin metod då han, föga förvånande, fann att geologin inte följde matematiken särskilt väl. Genom empiriska studier växte så grunden till kriging fram. 24
4. Rutnät 4.1. Allmänt om rutnät Ett rutnät, eller en grid, är en 2D-struktur med ekvidistanta noder längs båda riktningarna. En horisontell eller vertikal linje genom någon punkt skär således samtliga punkter längs linjens utbredning. Maskavståndet, alltså avståndet mellan två intilliggande noder, kan vara olika längs respektive koordinataxel. Ett rutnät har de fördelarna att uppsökning går fort samt att man kan modellera en residualtopografi bra med flertermiga interpolationspolynom. Den regelbundna strukturen lämpar sig således för numerisk analys och beräkningskomplexiteten sjunker betydligt vid beräkningar gentemot en oregelbunden struktur. Den stora nackdelen som ett genererat rutnät dras med är att den är skapad från en oregelbunden punktsvärm. Detta innebär att den i sig är framinterpolerad, och således är behäftad med fel då man interpolerat fram datavärdena i noderna. 4.2. Varför rutnät? Många geodetiska programvaror tar idag rutnät som indata för korrigeringar av t.ex. geoidhöjd eller förbättringar i planet (residualer) och en del länder, bl.a. Holland, använder ett nationellt rutnät för att förbättra mätdata. Mot denna bakgrund är det av intresse att undersöka hur man bäst använder ett rutnät samt när det är försvarbart att använda ett sådant. Det kan kännas lite som kaka på kaka att först interpolera fram ett rutnät för att sedan interpolera fram sina korrektioner från denna. Varför inte interpolera fram sina korrektioner direkt på de sökta punkterna istället för att gå denna omväg? Svaret ligger i applikation och erfordrad noggrannhet. Ett rutnät är enkel, snabb och om korrekt genererad även en god approximation till verkligheten. Det kan även vara så att din applikation erfordrar ett rutnät, i vilket fall kunskap om hur ett rutnät är uppbyggd är väsentlig. 4.3. Rutnätsgenerering Det mest intuitiva sättet att skapa ett regelbundet rutnät är att först lägga det rutnät man vill ha över ens punktsvärm och punkt för punkt interpolera fram varje rutnätsnod, t.ex. genom triangelmodellering eller enkel avståndsviktad interpolation. Man kan sammanfatta beräkningsgången i tre steg, se figur 4.1. I det första steget analyseras en oregelbunden punktsvärm, pi, för att i steg två bilda ett rutnät. Detta rutnät används sedan för att interpolera fram de sökta punkternas funktionsvärden, f(sj). Fig. 4.1. Beräkningsgång vid interpolation i rutnät Rutnäten i den här rapporten är inte skapade med vare sig kriging eller triangelnät då det huvudsakliga intresset ligger i interpolationer i själva rutnätet och för att göra det så enkelt som möjligt skapas rutnäten med inversa avstånd-interpolation, men följande stycken bifogas då frågan ändå är intressant. 25
4.3.1. Rutnät från triangelnät Triangelnät bygger på faktum att i en punktsvärm kan man bygga trianglar mellan punkterna och på så sätt bygga upp en yta av trianglar. Detta kan göras på lite olika sätt, men det sätt som är vanligast är s.k. Delaunay-triangulering, vilket beskrivs i kap 3.2.2.2. När triangelytan är byggd kan man sen betrakta varje punkt som skall interpoleras fram liggande i ett plan som spänns upp av de den triangel inom vilken punkten ligger. 4.3.2. Rutnät från Kriging Fördelen med att skapa ett rutnät från kriging är den att man har mycket större kontroll över processen. Med triangelnät blir processen som helhet strikt deterministisk, medan de ökade frihetsgraderna kriging erbjuder ger större kontroll. Själva beräkningarna är de samma som vid vanlig kriging-interpolation med den skillnaden att det är ett av användaren specificerat rutnät vars nodpunkter tilldelas värden. Teorin bakom kriging gås genom i kap 3.2.3. Nackdelen är egentligen densamma som fördelen. De ökade frihetsgraderna gör att kriging är svårare att förstå samt det faktum att fler inställningar ger fler felkällor. Är man inte säker på vad man gör kan man istället producera ett rutnät är oanvändbart. Vid generering av just ett rutnät finns dock saker att tänka på utöver de vanliga inställningarna. Man bör se över storleken på det rutnät man skapar. Man vinner inget på att ha en för stort rutnät och man kan lätt lura sig själv till dåliga förbättringar med ett rutnät som är väldigt stor mot det område som den är skapad utifrån. Ett bättre alternativ här är att göra en nytt rutnät eller använda en annan metod. Beräkningskomplexa tidsförluster i form av den tid som behövs för att beräkna och processa ett större rutnät tas inte upp i större omfattning i den här rapporten. 4.4. Bilinjär interpolation 4.4.1. Allmänt Bilinjär interpolation är detsamma som att passa in en hyperbolisk paraboloid till de fyra hörnen i en ruta. Det är dock inte strikt sant att det är linjärt om man betraktar XY-termen i formeln nedan. Vidare ser man att det inte är en korrekt andragradsyta då både X 2 - och Y 2 -termerna saknas, men detta är medvetet valt för att antalet obekanta ska bli lika med antalet hörn. Den här typen av interpolation kan ses som en förlängning av att linjärt interpolera en linje mellan två punkter med skillnaden att görs det i sekvens i två mot varandra vinkelräta riktningar. I Formel 4.1. betecknar r residual och ges av: r = a 00 + a10 X + a 01Y + a11 XY (4.1) Formeln är densamma för både X- och Y-komponent, varför man måste gå genom varje steg två gånger. Dels för X-residual och dels för Y-residual. Koefficienterna kan sättas till hörnens residualer enligt: a 00 = r1 a10 = r2 r1 (4.2) a 01 = r3 r1 a11 = r1 r2 r3 + r4 26
Genom att interpolera först ra, mellan r1 och r3, och sedan rb, mellan r2 och r4, genom vanlig linjär interpolation fås två mellanvärden mellan vilka vår sökta residual, r, kan interpoleras linjärt. Samma procedur upprepas för både X- och Y-komponenterna av residualen. Se figur 4.1, vari koordinaterna är normerade för att förtydliga hur koefficienterna är namngivna. x och y är rutnätets maskvidd. Som figuren visar spelar det ingen roll var rutan befinner sig i rutnätet, varpå de normerade hörnkoordinaterna kan användas. Fig. 4.1. Normerad ruta I rutnät. 4.2. Den interpolerade ytans egenskaper En yta som interpoleras fram kommer ärva egenskaper från den interpoleringsmetod den kommer från, vilket man kan visa matematiskt genom följande framställning, baserad på Östman (1995): Fig. 4.2. Två intilliggande ytor i ett rutnät. Vid antagande att maskavståndet x = y = 1 i två intilliggande ytor blir ekvationen för den vänstra ytan: rxv = rx1 + (rx 2 + rx1 )( x x1 ) + ( rx 4 + rx1 )( y y1 ) + (rx 5 + rx1 rx 2 rx 4 )( x x1 )( y y1 ) (4.3) och för den högra: 27
rxh = rx 2 + (rx 3 + rx 2 )( x x 2 ) + (rx 5 + rx 2 )( y y1 ) + ( rx 6 + rx 2 rx 3 rx 5 )( x x 2 )( y y1 ) (4.4) Vi är nu intresserade av vad som händer när vi går från vänster yta till höger yta, så vi antar en punkt längs denna linje, ( x 2, y p ) : y1 < y P < y 2. Vi undersöker nu om den får samma residual oavsett om vi interpolerar fram den från vänster eller höger yta. Om så blir fallet är ytan kontinuerlig, d.v.s. sitter ihop. För vänstra ytan blir den interpolerade residualen: rxpv = rx1 + (rx 2 + rx1 )( x P x1 ) + (rx 4 + rx1 )( y P y1 ) + (rx 5 + rx1 rx 2 rx 4 )( x P x1 )( y P y1 ) (4.5) Vi har ansatt x = y = 1, vilket innebär att x 2 x1 = y 2 y1 = 1. Detta gör att vi kan förenkla: rxpv = rx 2 + (rx 5 + rx 2 )( y P y1 ) (4.6) På samma sätt kan vi gå tillväga och förenkla ner för den högra ytan: rxph = rx 2 + (rx 5 + rx 2 )( y P y1 ) (4.7) Vi ser nu att rxpv = rxph för en punkt på begränsningslinjen mellan ytorna. Detta bevisar att ytan är kontinuerlig. Nästa steg är att se om ytan även har kontinuerliga derivator, alltså om ytan i punkten ( x 2, y p ) : y1 < y P < y 2 har samma lutning oavsett om den beräknas från vänster eller höger i exemplet ovan. Den partiella derivatan i x-led för den vänstra rutan blir: rxv ' ( x ) = rx 2 rx1 + ( rx 5 + rx1 rx 2 rx 4 )( y y1 ) (4.8) och för den högra blir derivatan: rxh ' ( x) = rx 3 rx 2 + (rx 6 + rx 2 rx 3 rx 5 )( y y1 ) (4.9) Sätter vi nu in punkten på begränsningslinjen ( x 2, y p ) ser vi tydligt att derivatorna inte kommer bli samma. Således når vi slutsatsen att bilinjärt interpolerade ytor är kontinuerliga, men inte har kontinuerliga derivator. Man kan se det som att vid varje begränsningslinje så byter ytan riktning abrupt, men den sitter fortfarande ihop. 4.5. Bikubisk interpolation 4.5.1 Allmänt Bikubisk interpolation är efter bilinjär interpolation den enklaste och mest använda interpolationstekniken inom rutnät närmsta granne möjligtvis undantagen. Om man kan se bilinjär interpolation som att i rutnätsfallen anpassa en hyperbolisk paraboloid till de fyra 28
hörnen kan man se den bikubiska interpolationen som att innesluta de fyra hörnen. Ungefär som att ställa en liten kub under ett OH-papper med fastnaglade hörn. Det är således den lägsta ordningens interpolerande funktion som behåller funktionens och första derivatornas kontinuitet. Bikubisk interpolation använder sig av 16 punkter för interpolationen, se figur 6.8, och blir således mer beräkningstung än bilinjär interpolation samt att punkter inom ett maskavstånd från rutnätets ytterkanter inte kommer att kunna beräknas (dessa fall kan specialberäknas med bilinjär interpolation). 4.5.2. Den interpolerade ytans egenskaper Bikubisk interpolation i ett rutnät beskrivs formellt av: ri = a00 + a01 x + a01 y + a20 x 2 + a11 xy + a02 y 2 + a21 x 2 y + a12 xy 2 + a 22 x 2 y 2 +...... + a30 x 3 + a03 y 3 + a31 x 3 y + a13 xy 3 + a32 x 3 y 2 + a 23 x 2 y 3 + a33 x 3 y 3 (4.10) där: a00 = r1 a10 = r2 r1 (4.11) a01 = r3 r1 a11 = r1 r2 r3 + r4 De övriga a xy sätts vanligtvis till de tre derivatorna r' x, r' y och r ' ' xy för respektive hörn. Det är viktigt att komma ihåg att derivatorna, eller koefficienterna i ett mer generellt fall, inte behöver vara exakta för att interpolationen ska fungera tillfredställande funktionen kommer vara jämn ändå. Regeln är att ju bättre derivator desto bättre interpolation (Kidner, 1999). Derivatorna kan således skattas på olika sätt varav ingående lutningar och den blandade partiella andraderivatan till varje hörn är det mest intuitiva. Bevisen för ytans egenskaper lämnas därhän, men de är analoga med beviset för den av bilinjär interpolation skapade ytan. 4.6. Bikvintisk interpolation 4.6.1. Allmänt och kortfattad teori Bikvintisk interpolation är den enklaste funktionen som garanterar att första derivatorna är kontinuerligt deriverbara över rutorna i rutnätet varför den nämns här. För att interpolera den här funktionen krävs 36 koefficienter, vilket man får av nodvärdet samt r' x, r' y, r ' ' xx, r ' ' xy, r ' ' yy, r ' ' ' xxy, r ' ' ' xyy och r' v xxyy ; 9 termer x 4 hörn = 36 koefficienter. Således är bikvintisk interpolation den mest beräkningstunga interpolationen som nämns i den här studien. Formellt kan den bikvintiska interpolationen skrivas som: ri = 6 6 i= 1 j= 1 aij x i 1 y j 1 (4.12) En mer kompakt formelsyntax har använts till skillnad från t.ex. bilinjär interpolation p.g.a. de många termerna i formeln ovan. En mer ingående analys av den bikvintiska 29