Gå till innehållet

Definiera skikt

Ytor (skikt) kan vi representera med höjder i ett fast XY-rutnät.

Många olika interpoleringsmetoder för att beräkna ett rutnät från höjddata beskrivs i litteraturen. Gemini Terrain har utvecklat sina egna metoder för olika typer av höjddata (kotlinjer, triangelnät och punktmoln) i ett gmi-lager.

Metoderna får vi tillgång till om vi definierar ett skikt för applikationslagret. Vi kan ha många olika skikt i en ritning, typiskt när vi har flera lager i marken som jord och berg. I det vertikala listfältet får vi en illustrerande ikon för varje applikationslager som definierar ett skikt.

Skiktinställningar finner vi i fliken Skikt i egenskapsdialogen för applikationslager, eller genom att vänsterklicka vid applikationslagret i första kolumnen där skiktsymbolen visas.

Beräkningsmetoder för skikt

Även om ett rutnät genereras av programmet används alltid originaldata. Användaren kan när som helst ange en högre upplösning på rutsnätet. Processen som genomgås för att generera ett rutnät från kotlinjer illustreras bäst med ett exempel, som visas nedan.

Kotlinjer

Ett enkelt karta med kotlinjer kan till exempel se ut så här:

Medan programmet ritar ut kotlinjerna beräknar programmet skärningspunkter med vertikala plan normalt på X- eller Y-axeln vid givna intervall. Rutättheten kan ställas in av användaren. Skärningspunkterna lagras med X-, Y-, och Z-koordinater i minnet i en tabell för varje vertikalt plan.

Efter att utritningen av hela kartan är utförd sorteras skärningspunkterna för varje sådant vertikalt plan på avståndet från origo. Då kan skärningspunkterna i varje plan ritas ut som en terrängprofil, och bilden kommer att kunna se ut som visas här:

Efter att denna sortering är utförd går systemet igenom de vertikala planen ett efter ett och interpolerar värden i de specificerade rutnätspunkterna. Efteråt kan modellen se ut ungefär så här:

Denna modell kommer emellertid att återge terrängen mycket oprecist. Den viktigaste bristen på noggrannhet uppstår genom att systemet bara tittar på ett vertikalt plan åt gången, utan att titta på granplanen. På detta sätt uppstår en olycklig "terrass-effekt" i riktningen normalt på de vertikala planen. Studera detta i illustrationen ovan. Ett annat problem är att oönskade effekter uppstår längs de kanter av området som går parallellt med de vertikala planen.

Modellen jämnas därför ut genom att sätta upp vertikala plan i motsatt riktning dessutom. Vi kommer i fortsättningen att kalla de första planen för huvudplan och de andra planen för korsplan.

Skärningspunkterna med korsplanen läggs in i tabellerna för huvudplanen enligt bestämda regler innan dessa sorteras och interpoleras. Detta förbättrar noggrannheten av terrängmodellen betydligt, särskilt när det finns få kotlinjer i databasen. Särskilt märker vi förbättringen längs kanterna av området som är parallella med huvudplanen.

Digitalisering av fler kotlinjer ger en ännu bättre terrängmodell. Detta innebär mer arbete, men rekommenderas ändå på platser där terrängen är mycket kuperad.

Triangelnät

För triangelnät är processen densamma, men stegen med utjämning faller bort. Utjämning är onödig då rutshöjderna hämtas exakt från triangelnätet, och resultatet blir detsamma oberoende av vilken riktning vi går med de vertikala planen.

Punktmoln

För punktmoln finner inte de vertikala planen direkt skärning med originaldata som vid kotlinjer och triangelnät. Med denna metod använder programmet viktat medelvärde av alla punkter inom vald rutsstorlek. Dessa punkter viktas med 1 dividerat med kvadraten på avståndet.

Figurtext: A = Rutsstorlek (streckad), B = Vertikala plan, C = Originalpunkter, D = Beräknad rutspunkt

Behandling av hål i data

Områden med hål, det vill säga områden där programmet inte hittar punkter inom rutsstorleken, måste behandlas speciellt. Ett hål kan ha olika storlek från en till många rutspunkter utan beräknad höjd.

Figurtext: A = Hål

I figuren ovan ser vi ett exempel där en rutspunkt inte har fått beräknad höjd. Programmet kör då vertikala plan i båda riktningarna. För varje plan interpoleras höjden, och slutgiltig värde blir medelvärdet av dessa två värden.

Observera

Det är höjderna i rutsnätet som används vid interpoleringen.

I tidigare versioner av programmet fungerade det dåligt att välja rutstätthet mindre än genomsnittlig punkttätthet genom att vi fick tomma rader eller kolumner i terrängrutsnätet. Normalt bör man inte välja mindre rutstätthet än genomsnittlig tätthet i punktmolnet, men programmet hanterar det.

För varje rutnätscell som saknar höjd tittar man på granncellar. Programmet går iterativt utåt tills en höjd hittas eller maximalt 5 meter utanför intressecellen. Vi får då normalt inte helt tomma rader eller kolumner i terrängrutsnätet, genom att vi hittar punkthöjder närmare än 5 meter till en cell.