Sida 1 av 1

Hur interpolera fram temperatur för en specifik koordinat?

Postat: 10 jul 2010, 15:16
av elf98
Nu börjar jag lessna på stationer som lämnar orimliga värden...

Givet: X antal mätpunkter med givna koordinater.

Sökes: Algoritm för att interpolera fram en rimlig temperatur för en given koordinat i närheten av X.

Funktionen skall användas för att validera de temperaturer som samlas in, men även för att kunna ge en uppskattning om temperaturen där det saknas mätpunkter.

Någon som har något tips? Min Google-karma är dålig idag.

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 10 jul 2010, 22:48
av PerM
En ide bara (med en kall öl i kroppen [pust, va varmt det är])....

Ge de omkringliggande temperaturerna en vikt baserat på avståndet till den sökta punkten, dvs närmare väger tyngre. Räkna sedan ut de viktade temperaturerna och därefter medelvärdet på på dessa. Det borde ge en approximation av temperaturen på den sökta platsen.

Tror inte det behöver vara krångligare än så? Egentligen ska man nog ta MÖH, närhet till havet osv med i beräkningarna om man vill vara petig...

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 11 jul 2010, 07:41
av elf98
Den idéen låter genialisk vid en första anblick men har en stor svaghet; Modellen blir inte tillförlitlig om X ligger samlade i en liten klump "långt" från stationen som skall analyseras. Iofs så skulle man kunna ta fram en modell som analyserar även det och tar mindre hänsyn till X när X har dålig spridning geografiskt.

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 11 jul 2010, 08:47
av PerM
Visst är det så, men har man inte data att arbeta med får man använda något som är "good enough" för tillämpningen i fråga.

Optimalt är så klart en samling stationer jämt fördelade i en cirkel runt analyspunkt A, men även en samling stationer på ena sidan om A borde ge ett användbart värde, dock med mindre noggrannhet. Ett max avstånd mellan A och X borde nog också användas.

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 11 jul 2010, 08:57
av elf98
Jag har funderat på ett avstånd mellan A och X på max 20-25km. Man får väl helt enkelt lägga en lägre vikt när spridningen är dålig.

Viktigt att tänka på är att jag först och främst skall använda den här funktionen som ytterligare en kontrollmetod av temperaturerna - och vill då främst kunna detektera när en station sticker iväg pga solinstrålning. Så jag tror nog att jag kommer att analysera temperaturderivatan över tid snarare än temperaturens värde. Om derivatan för en station helt plötsligt sticker iväg medans närliggande har mer normala värden är det något som är fel... Men om alla plötsligt börjar stiga är det ju ok.

När jag väl har fått till den här funktionen kommer jag att kunna trimma ett par befintliga parametrar och förhoppningsvis kommer problemet med stationer som visar kraftigt felaktiga värden vara ett minne blott. Iaf när det finns flera stationer i närheten...

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 11 jul 2010, 09:23
av PerM
Prova, praktiska tester brukar ge mer än ändlösa diskussioner :)

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 11 jul 2010, 09:28
av elf98
Ska hinna koda bara! :)

Halva släkten kommer i dag och i morgon åker vi till Danmark och Legoland. Men det är bra att spåna fram idér, så kan jag lägga upp strukturen för koden och planera för hur funktionerna ser ut. Det går så mycket snabbare sen när jag väl ska få ner koden på papper i dator då.

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 18 jul 2010, 13:31
av elf98
Jag skippar interpoleringen och tar helt enkelt medeltemperaturen av närliggande stationer som referens. Högre vikt ju närmare stationerna ligger.

Re: Hur interpolera fram temperatur för en specifik koordinat?

Postat: 20 jul 2010, 09:32
av PerM
Ännu enklare!

Re: Hur interpolera fram temperatur för en specifik koordina

Postat: 15 aug 2010, 15:19
av Dowser
Var legoland lyckat? Var rätt många år sen vi var där med ungarna, men jag hade minst lika skoj som dem. :)

Algoritmen du söker borde ingå i grundkursen för meteorologer, så en fråga ställd till SMHI eller liknande kanske kan ge ett bra svar?
Förutom avstånd så är det nog även minst lika nödvändigt att vikta baserat på mätstationernas höjd över havet. Om två kända punkter är på 60möh och den suspekta är på 10möh är det ju rätt sannolikt med en kallare temperatur där på nätter exempelvis.

Re: Hur interpolera fram temperatur för en specifik koordina

Postat: 15 aug 2010, 15:33
av CirruZZ
Problemet är att vi har ingen höjd info i databasen, bara pos. Då måste vi först använda någon extern data (finns det tillgängligt?) för att få fram höjden.

Annars så är tempavtagandet med höjden 6.49°C/1000 m

Re: Hur interpolera fram temperatur för en specifik koordina

Postat: 15 aug 2010, 15:37
av Dowser

Re: Hur interpolera fram temperatur för en specifik koordina

Postat: 15 aug 2010, 16:46
av CirruZZ
Det skulle nog funka galant!

Re: Hur interpolera fram temperatur för en specifik koordina

Postat: 15 aug 2010, 17:26
av elf98
Dowser skrev:Var legoland lyckat? Var rätt många år sen vi var där med ungarna, men jag hade minst lika skoj som dem. :)

Algoritmen du söker borde ingå i grundkursen för meteorologer, så en fråga ställd till SMHI eller liknande kanske kan ge ett bra svar?
Förutom avstånd så är det nog även minst lika nödvändigt att vikta baserat på mätstationernas höjd över havet. Om två kända punkter är på 60möh och den suspekta är på 10möh är det ju rätt sannolikt med en kallare temperatur där på nätter exempelvis.
Legoland var toppen!

Då det ingår så otroligt många fler osäkerhetsparametrar lägger jag inte någon vikt vid möh. Jag tar helt enkelt medel av närliggande stationer som ett hjälpmedel för att bedöma om en stations temperatur är rimlig. Verkar fungera rätt bra faktiskt.