Jeg har tidligere skrevet opptil flere artikler om
plotting av data på kart, som er noe jeg driver med ganske ofte på jobb. Og så, her en dag, fikk jeg en epost fra en person som lurte på om jeg kunne demonstrere plotting av havstrømmer. Det er jo litt morsomt at noen finner det jeg skriver nyttig og/eller interessant, og det krever uansett bare en ganske liten modifikasjon å plotte strøm i stedet for temperatur, så det kan jeg naturligvis gjøre.
Her må jeg imidlertid ta et ørlite forbehold. Det finnes to (og kanskje flere) ganske vanlige måter å fremstille strømdata på et kart. Den ene er å regne ut farten, og plotte denne som et fargekart (heatmap), og den andre måten er å lage et vektorplott. Det jeg skal demonstrere her er fargekartet, og grunnen til det er at vektorplottet er litt mer prakk. Og for å forstå hvorfor må vi ha litt bakgrunnsinformasjon.
Havstrømmer uttrykkes naturligvis som vektorer, med komponenter \(u\) og \(v\) i horisontal retning, og \(w\) i vertikal retning. Skjønt det er ganske vanlig med datasett som ikke inkluderer vertikakomponenten. De horisontale komponentene oppgis på forskjellige måter, og to vanlige valg når det gjelder modellerte data later til å være å oppgi komponentene på nord-øst-basis (\(u\) er farten mot øst, og \(v\) er farten mot nord), eller på en grid-basis. Gridbasis betyr at enhetsvektorene peker langs griddet dataene er levert på, som vil variere med datakilden. I bildene under kan man se at kanten av griddet peker oppover mot høyre, mens nord er rett opp.
Fra komponentene kan man så regne ut farten, \(\sqrt{u^2 + v^2}\), som er en skalar, og som dermed kan plottes som et fargekart. Enkelt og greit. Eller, kunne man tenke seg, man kunne tegne en vektor i hvert gridpunkt. Imidlertid er det et par praktiske årsaker til at det ikke er helt rett frem. For det første må en vektor på et kart ha en viss lengde for at man skal kunne se den, og avgøre hvilken retning den peker i. I et høyoppløst datasett som NorKyst800 er det ca 1000 x 2600 punkter, og hvis man skal plotte alle dem trenger man fryktelig mange vektorer. Hver vektor burde minst få 10 eller 20 pikser å boltre seg på, om man skal kunne se noe særlig, så da blir det et meget stort bilde. Et alternativ er naturligvis å plotte bare hver tiende vektor, eller noe slikt, men det byr også på problemer.
Hvis man kikker nøye på datene i NorKyst800 kan man se hvirvler og strukturer som er bare noen få kilometer. Det betyr at datapunkter som er mer enn noen kilometer fra hverandre kan variere en del i fart og retning, og som en konsekvens vil et vektorplott som bare viser hver tiende vektor kunne se litt rotete ut. En bedre løsning er å gjøre en slags midling, heller enn å plukke ut enkeltpunkter, men det er også litt styr. Det er naturligvis også mulig å se på et mindre område, slik at hver celle på 800 x 800 meter faktisk er stor nok til å vise en vektor, og dette er en enkel løsning om man er interessert i å se på et lite område av gangen.
Akkurat når det gjelder NorKyst er det imidlertid ett problem til, og det er at vektoren ikke er på nord-øst-basis, men på gridbasis. Dermed må de roteres før man kan plotte dem, siden plotteprogrammet tenker i himmelretninger, ikke i gridretninger. Nå har faktisk met.no vært så greie å legge ut en egen fil som inneholder vinkelen hver eneste en av de 2.6 millioner vektorene skal roteres med, så dette er egentlig veldig løsbart. Det er også løst, i den forstand at jeg har laget et script som gjør jobben, men jeg finner det ikke akkurat nå, og jeg mener å huske det var en irriterende prosess med prøving og feiling før jeg fikk det til, så jeg venter heller til jeg kommer på jobb og kan finne det jeg allerede har laget.
Dermed, her følger to plott av strømfart fra NorKyst800, som fargekart. Ganske fascinerende greier, egentlig, havstrømmer. Sammenlign med kartet som viser dybden, så ser man at strømmen på et vis følger kontinentalsokkelen. Det er noe med at vannet er lagdelt etter forskjeller i tetthet, og det skal en del til for å presse lett vann ned, så derfor er det lettere for vannet å følge konstante dyp, og så får det heller øke farten litt når sokkelen blir smalere. Eller noe slikt. Scriptet jeg brukte til å lage plottene kan lastes ned her:
Strømfart
Strømfart
Dybde