Mer

QGIS beregne 3D-overflaten til en region?


Jeg vil beregne det sanne overflatearealet til en region fra DEM (2D høydedata).

Er det mulig å gjøre dette med QGIS?

Og hvis ja, hvordan?

Jeg klarte å få en 3D-visualisering av høydedataene ved å bruke nviz (en GRASS-modul), men jeg ser ingen mulighet til å beregne 3D-overflaten.


Ja, det er mulig. GRASS-modulen er r.surf.area. Du kan bruke ÅPENT GRAS Verktøy (GRASS-plugin for QGIS). Bruken er veldig intuitiv. For uregelmessige overflater må du bruke en maske.

1) Bruke modulen i det firkantede området (rødt) på neste bilde:

2) Resultater i utgangsvinduet:


Bruk en Z-faktor for å sikre nøyaktigheten av volumberegninger når overflaten Z-verdier uttrykkes i en annen måleenhet enn XY-enhetene. Bruk av en Z-faktor vil ikke endre de originale dataene. Verktøyet vil automatisk bestemme passende Z-faktor når XY- og Z-koordinatsystemene er definert.

Utdatatekstfilen lagrer hele banen til overflaten, parametrene som brukes til å generere resultater, og det beregnede måling av areal og volum. Hvis den samme utdatafilen er spesifisert i flere kjøringer av verktøyet, opprettholdes de eksisterende postene og resultatene legges til tabellen.


Blanding av overflate og spredningsplott i et enkelt 3D-plot

Jeg studerer mønstrene for fordeling av hvaler rundt spesifikke havbunnsstrukturer. Jeg prøver å lage en interaktivt 3D-plot viser samtidig:

  1. bathymetry som overflate (x = lengdegrad, y = breddegrad, z = dybde) og
  2. geografisk plassering av hvalgrupper (x = lengdegrad, y = breddegrad, z = fast dybde -30 meter for eksempel).

Koordinater projiseres i et UTM-koordinatsystem.

Jeg jobber vanligvis med R og ggplot2-pakken for å produsere figurer. Her virket den komplette pakken som et godt alternativ.

Jeg startet med en bathymetry raster bathy_ras og en data.frame av poeng poeng.

Jeg finner ikke en måte å kombinere mine to datasett på samme graf / samme akse. Jeg prøvde to metoder, men ingen ga meg den effekten jeg ønsket.

1) Opprette plottet i Rstudio ved hjelp av plottpakken.

2) Opprette plottet helt fra det plottede nettstedet. Først konverterte jeg rasteren "bathy_ras" til en matrise som inneholder alle poengene med koordinater (x, y) og dybde z

Jeg opprettet en komplisert konto. Jeg importerte to datarammer som .txt-filer i min komplette konto: bathy_df og poeng.

Dette skaper to rutenett i den komplette kontoen. Jeg kan enkelt skrive to separate 3D-plotter for disse to dataene. Rammer: den ene er en overflateplott (vist nedenfor), den andre er en spredningsplott. Jeg prøvde å inkludere spredningsplottet i overflaten som et nytt spor etter denne veiledningen (http://help.plot.ly/update-a-graphs-data/), men alternativet "sett inn" virker bare utilgjengelig hvis spredningsplottet er i 3D. overflate plot produsert fra det plottede webgrensesnittet

Er det mulig å kombinere en scatter3D og en overflate plot i plotly?

nb: Jeg prøvde raster :: persp i kombinasjon med poeng (), men jeg er ikke veldig fornøyd med overflateplottets generelle estetikk, og det er derfor jeg foretrekker å gjøre dette med plott og / eller ggplot2.


7 svar 7

Her er min omtrentlige C # oversettelse av C-koden for din situasjon:

Jeg oppstemte noen svar som jeg synes er riktige. Men jeg tror den enkleste måten å gjøre det på - uansett om det er i 2D eller 3D, er å bruke følgende formel:

Merk at løsningen ikke avhenger av projeksjon til x-plan, noe jeg synes er klumpete.

Mener du Areal av 3D plane polygoner?

Jeg vet ikke om å optimalisere denne metoden (jeg har ikke gjort det i kode før), men måten å nærme seg den matematisk er å dele formen din i trekanter, hvis område blir deretter enkelt beregnet og oppsummert. (Husk: arealet av en trekant er bredde * høyde * 0,5 - du må beregne høyden på ikke-rettvinklede trekanter.)

Å gjøre disse tingene i 3D betyr generelt at det er behov for en beregning til på hvert trinn. For eksempel, i 2D, beregnes avstanden mellom 2 punkter (lengden på en side av formen din) noe slikt (pseduocode fordi jeg ikke har VS på denne maskinen):

I tre dimensjoner som blir:

Å dele en form i vilkårlige trekanter innebærer bare å velge tre tilstøtende hjørner om gangen, til du er nede på de tre siste.

En annen løsning som ikke krever at du lager et nett av polygoner, er å gjøre en konturintegral rundt omkretsen. Du bruker Greens teorem for å konvertere arealintegralet til en konturintegral, og deretter bruke noe enkelt som Gauss-kvadratur for å integrere og summere hvert bidrag. Du må ha en definisjon av omkretsen.

Denne prosessen kan fungere med 2D-former som også har hull. Du må bare definere et kutt som går fra den ytre omkretsen til hullet, integreres rundt hullet, og deretter gå tilbake til omkretsen.

@Graviton Jeg kan ikke kommentere svaret ovenfor, så jeg vil sende inn et nytt.

Dette kan være min ukjennlighet med c # syntaks, men jeg tror svaret ditt mangler punktproduktet med enhetens normale vektor. Formelen skal være:

der n refererer til enhetens normale vektor til planet,. til prikkprodukt og x kryssprodukt.

Normalen kan beregnes ved hjelp av hvilke som helst 3 vektorer av polygonen:

Her er en implementering av javascript ved hjelp av Vector.js lib:

Du kan utlede løsningen når det gjelder 2D-løsningen.

Tenk på polygonen som består av en haug med mindre trekanter.

Projiser hver trekant tilbake til XY-planet. Du kan vise at arealet til den orignale trekanten er 1 / (n.k) ganger arealet til den projiserte trekanten. (Her er n enheten som er normal til planet som inneholder polygonet, og k er enhetsvektoren i z-retningen)

Så det totale arealet til originalen er 1 / (n.k) ganger arealet av polygonen projisert i XY-planet. Som du kan trene med din eksisterende 2D-formel.

Du kan beregne n med (e1 x e2) / || e1 x e2 || der e1 og e2 er noen ikke-parallelle kanter på polygonet ditt.

Selvfølgelig kan du få bedre (mer nøyaktige) resultater ved å projisere inn i XZ- eller YZ-planet .. du bør velge den som er normal nærmest den i flyet ditt.


Rasterbasert terrenganalyseteknikk pt2

Fortsetter fra forrige ukes innlegg, vil jeg vise deg hvordan du bruker terrenganalyse for å beregne: -

Skråningen

Helling beregnes ved å sammenligne pikselverdien på et bestemt sted i forhold til de omkringliggende 8 pikselverdiene. Dette gir skråningen.

Slope dialogboksen er veldig enkel: -

Beregn dialogboks for skråning

  • Velg høydelag (dette vil være DTM-rasteren)
  • Velg utgangslaget
  • Jeg har forlatt Ouput-formatet og Z-faktoren som standard. Hvis bakken er veldig flat, kan overdriving av z-faktoren gjøre bakkene lettere å visualisere.

Aspekt

Aspektet viser skråningens kompasslager

Rasteren har fått verdier fra 0-360 avhengig av hellingsaspektet. De mørkere områdene med lavere verdier er de nord til nord østvendte bakkene de letteste områdene med de høyeste verdiene er de vest til nord vestvendte bakkene.

Hillshade

Dette beregner mengden sol eller skygge for en 3D-overflate. Dialogboksen ligner på de forrige, men det er nye alternativer for solvinkelen: -

Dialogboksen DEM hillshade

Denne analysen bruker en fast plassering av solen for å nøyaktig simulere effekten av bare åsside og skyggefulle daler. Jeg plasserte solen mot sørvest (200 grader), de østvendte bakkene rundt elven Medina elvemunningen nord på øya er veldig skyggelagte, i motsetning til de sterkt opplyste vestvendte bakkene på den andre siden av elven.

Dette er det mest visuelt tiltalende og lett forståelige resultatet, og det brukes ofte som bakgrunn for kart med andre lag lagt til.

Robusthetsindeks

Robusthetsindeksverdien beregnes for hvert sted, ved å oppsummere endringen i høyde i 3 & # 2153 pikselrutenettet. Robuste indeksverdier er gruppert i kategorier for å beskrive de forskjellige typer terreng. Klassifiseringene er som følger:

Ruggedness Index Value

Dialogboksen for robusthetsindeksen er den samme som for andre typer analyser som er nevnt ovenfor. IOW er alle kategorisert som nivå eller nesten nivå i robusthetsindeksen. Dette til tross for at det er ganske kupert! Jeg brukte Stretch to MinMx kontrastforbedring på boksen for lagegenskaper: -

En DEM med robusthetsindeks vises

Resultatet er ganske annerledes enn relieff og bakkeskygge raster & # 8217s. Dette er fordi den ikke prøver å vise faktiske bakker, men snarere viser den endringen i høyde kategorisert som vist i tabellen for robusthetsindeks. Det er fortsatt lett å se høydelinjen som krysser øst til vest over øya.


QGIS beregne 3D-overflaten til en region? - Geografiske informasjonssystemer

3D-analyse og overflatemodellering

Et av de kraftigste funksjonssettene i GIS er muligheten til å administrere, vise og analysere overflater. Rasteranalyse inneholder metoder for å analysere overflatedata, som vi har sett i tidligere forelesninger og øvelser. Imidlertid, selv om rasteranalyse inneholder metoder for å analysere og vise tredimensjonale overflater, er det grafiske resultatet vanligvis begrenset til planimetrisk visning. En stor mengde informasjon kommuniseres ved bruk av 3D-bilder.

ArcGIS 's 3D Analyst Extension gir noen kraftige og imponerende verktøy for analyse og visning av 3D-overflater, samt integrasjon med tradisjonelle 2D-raster- og vektordatakilder. 3D Analyst er en utvidelse som gir støtte for 3D-former, overflatemodellering og sanntids perspektivvisning til ArcGIS. Med den kan du opprette og visualisere romlige data ved hjelp av en tredje dimensjon for å gi innsikt, avsløre trender og løse problemer.

Her er en typisk 3D perspektivvisning av Pack Forest høyde med bekker og veier. Visningen har en 3x vertikal overdrivelse brukt, noe som gjør topografiske trekk mer tydelige. For dyktige kartlesere er det enkelt å visualisere forholdet mellom topografi, veier og bekker som et landskapssystem. Å lese et topografisk kart krever imidlertid viss kunnskap og erfaring som ikke alle har. Selv for erfarne kartlesere formidler et bilde som dette langt mer intuitiv informasjon enn et flatkart.

Ofte blir numeriske attributter kartlagt med graderte farge- eller størrelsessymboler for å understreke funksjoner med høye verdier. Selv disse karttypene trenger noen form for intellektuell tolkning. ArcScene brukes vanligvis til å vise høydeflater, men det kan brukes til å vise alle slags data som kan sees på som en responsflate. Raster- eller TIN-overflater etablerer 3D-rammeverket for visning av raster- eller vektorlag. Vektordata raster datakilder kan drapes over overflater. Former kan ekstruderes opp eller ned for å antyde volumhøyde eller dybde.

Disse to bildene viser i hovedsak de samme dataene i samme klassifiseringsstil. Imidlertid gir bruken av den tredje dimensjonen mer visuell innvirkning og kommunikativ kraft. I det første bildet vises populasjonen i en gradert fargesymbologi.

Den samme symbologien brukes, men en ekstrudering proporsjonal med befolkningstettheten brukes, og viser effektivt to variabler samtidig.

Det er begrensninger for visning av koropleth-kart (gradert farge). Etter at ca. 5 klasser er brukt, blir kartet uleselig, fordi leseren ikke kan se mellom subtile endringer i skyggen. Med 3D-kartet kan mer subtile endringer i funksjonsekstrudering vises, noe som kan formidle mer informasjon enn enkel fargeklassifisering. Med funksjonsekstrudering kan alle forskjellige polygoner sammenlignes, mens det i enkel fargeklassifisering bare er klassene som kan sammenlignes.

Noen numeriske attributtdata er umulige å visualisere uten 3D-visning. Her er et kart som viser amerikanske byer i et gradert fargesymbol basert på antall bobiler i hver by. Problemet her er at det store antallet byer som vises, tilslører utsikten, og noen lavverdipoeng trekker opp høytverdipunkter.

De samme dataene er interpolert til et rutenett med funksjonen Inverse Distance Weighting. Denne scenen, sett fra nord, viser steder i det kontinentale USA med stort antall bobiler vises med topper, og de områdene med få bobiler er relativt flate. Dette er et mye mer informativt kart.

En ny ArcGIS-applikasjon: ArcScene

Sammen med 3D Analyst kommer en ny ArcGIS-applikasjon: ArcScene. ArcScene brukes til å vise datalag i 3D-perspektiv. Dette dokumentet er på samme måte som ArcMap-applikasjonen, men i stedet for å bruke en enkel planimetrisk skjerm, bruker den en perspektivgjengivelse, der lag kan drapes over overflater, tippes, snus og vippes.

Flere nye verktøy og knapper er lagt til i ArcScene GUI. Disse verktøyene og knappene kan også ha samsvarende menykontroller.

Identifiseringsverktøyet og zoomknappene fungerer nøyaktig som de gjør i en normal planimetrisk kartvisning. De nye verktøyene er:

verktøy

Navn

funksjon

navigere

navigering (zoome, panorere, rotere, vippe)

fly forbi

fly over / gjennom en scene

dynamisk zoom

zoomer inn og ut

ArcGIS-applikasjonsvinduet inneholder også en ny visningsknapp. De Ny visningr-knappen åpner en ny visning av gjeldende 3D-scene.

Datakilder for 3D-visning og analyse

For å vise lag som er drapert over overflater, er det første kravet at det eksisterer en overflatemodell. En overflatemodell er et datalag som representerer en kontinuerlig overflate. Når som helst i overflatemodellen er det en Z-koordinatverdi. Denne verdien kan representere et hvilket som helst numerisk attributt. Vanligvis er høyde representert, men en hvilken som helst numerisk verdi kan brukes til å representere en overflate, for eksempel medianinntekt, antall barn per husstand eller antall HIV-tilfeller.

Normale vektordata er ikke gode til å representere overflater. Verken linjer eller punkter kan betraktes som romlig kontinuerlige, fordi romlige hull alltid eksisterer mellom punkter og linjer. Selv om polygondata ofte er romlig kontinuerlige, er de vanligvis ikke kontinuerlige med hensyn til attributt. De to beste kildene til overflatemodelldata er rutenettet og det triangulerte uregelmessige nettverket (TIN). Rutenettmodellen er dekket mer detaljert i tidligere seksjoner (Spatial Data Model Raster Analysis I Raster Analysis II).

TIN-datamodellen har ikke blitt diskutert hittil, da dens sterkeste plass er i overflatevisning og analyse. Hva er egentlig en TIN? Som vi vet fra geometri, er et plan definert av tre punkter. Den romlige orienteringen (helling og aspekt) av et plan bestemmes av høyden til hvert toppunkt i trekanten som definerer flyets eksistens. Fordi det er en lineær sammenheng mellom to punkter i et plan, er det lett å bestemme høyden til et hvilket som helst punkt på en gitt trekantet plan seksjon. En kompleks overflate kan deretter modelleres ved bruk av en serie sammenkoblede og ikke-overlappende trekanter. Der overflateegenskaper er mer komplekse, er det generelt et større antall mindre trekanter.

Dette diagrammet viser den grunnleggende ordningen av to trekanter i en TIN. Hver trekant representerer et plant snitt med konstant helling og aspekt. X- og Y-koordinatene til toppunktene er ikke jevnlig fordelt. Overflaten Z-verdien til hvert toppunkt styrer den absolutte orienteringen av hver trekant. Hver trekant har en konstant helling og aspekt, uavhengig av plasseringen i trekanten. Imidlertid, med mindre en trekant er flat og plan, endres høyden kontinuerlig over trekanten.

Der overflater er mindre komplekse, er det færre og større trekanter. På denne måten er et TIN potensielt en mer økonomisk og nøyaktig overflatemodell enn et rutenett, siden et TIN bare trenger å inneholde mer data der overflaten er mer kompleks. Et rutenett kan underprøve komplekse deler av en overflate og overprøve enkle deler av en overflate.

Her er en planimetrisk visning av en TIN utviklet for Pack Forest, med høydeskygge. Linjene er trekantkanter.

TIN-er legges til i en dataramme nøyaktig som andre lagtyper blir lagt til i datarammer. Når 3D-analytikeren er aktivert, TIN-datakilde er et ekstra valg i Datakildetyper nedtrekksliste.

2D shapefiles & amp raster datasett

Alle støttede vektor- eller rasterdatakilder kan brukes i 3D-visning og analyse, så lenge de enten (1) inneholder numeriske verdier som kan tolkes og vises som Z-koordinater, eller (2) vises i forbindelse med en overflatemodell . De har lag som inneholder høydeattributter kan lastes inn i 3D-scener og plasseres i 3D-rom i henhold til Z-verdien. Formfiler, rutenett og bilder uten attributter for Z-verdi kan drapes over eksisterende overflatemodeller ved å oppnå en grunnheving fra overflatemodellen. Disse kan også ekstruderes eller kompenseres av en konstant eller av verdien av et attributt.

Her er et ortofoto drapert over et DEM-rutenett, sammen med høydekonturer og bekker. Alle tre lagene tar høydene fra det underliggende rutenettet.

Alle datakildene vi har brukt til nå, kan karakteriseres ved kombinasjonen av kartesiske (X og Y) koordinatdata og relasjonstabellattributtdata. I noen tilfeller representerer tabelldataene Z-koordinatverdier. For eksempel kan alle rutenettdataene vi har brukt betraktes som representasjon av en overflate, med punktprøver tatt med jevne mellomrom på X og Y. For rammede DEM-data er verdien virkelig en sann Z-koordinat. For andre data, for eksempel rutenett, punkt eller polygondata, er celleverdiene vanligvis ikke representasjoner av eksplisitte romlige koordinater. Imidlertid kan en hvilken som helst numerisk verdi for rutenettdata tolkes som en overflateverdi.

Sammen med 3D Extension kommer en ny shapefile standard 3D shapefile. I motsetning til andre funksjonsdata, der funksjonene er lagret i planimetriske koordinater (X og Y), inneholder 3D-figuren faktisk Z-verdier som en del av koordinatdataene (ikke bare som numeriske verdier i lagattributtabellen). 3D-formfiler kan vises i tre dimensjoner uten behov for en støttende overflatemodell.

Enhver 2D shapefile kan konverteres til en 3D shapefile. Z-koordinaten for utdata 3D shapefile kan komme fra en konstant verdi, fra et numerisk attributt, eller fra en eksisterende overflatemodell datakilde (rutenett eller TIN). Når det er konvertert til en 3D-formfil, trenger ikke dette laget lenger en overflatemodell for å aktivere 3D-visning.

Legendredigering for 3D-scener ligner på legenderedigering for 2D-datarammer. Innholdsfortegnelsen brukes til å gjøre visse lag aktive. Legender kan endres for aktive lag på samme måte som de endres for andre lag.

Unntaket fra dette er legenden om TIN-lag. TIN-lag kan vises som flerfunksjonslag. Det er mulig å vise trekantnoder (punkter), trekantkanter (linjer) og trekantflater (polygoner) samtidig. Lagegenskaper for symbologi er konfigurert på samme måte for TIN-er som for andre lag, med unntak av at et TIN kan vises i en hvilken som helst kombinasjon av valgbare gjengivere.

Ved å klikke på Redigere knappene for hver funksjonstype åpner Legend Editor for den funksjonstypen. Disse er nøyaktig som den generelle Legend Editor for 2D-funksjonslag, inkludert symbolredigering og klassifisering.

Visualisere 2D-funksjoner i 3D ved å drape og ekstrudere

Alle funksjoner, enten de er raster eller vektor, 2D eller 3D, kan vises i en 3D-scene. For visning av landskapsflater (høyder) er drapering den vanligste 3D-effekten. Funksjonene er drapert på en overflatemodell, omtrent som en klut er drapert over en stålramme.

For å drape funksjoner, selv om disse funksjonene er en del av overflatemodellen som definerer 3D-scenen, er det nødvendig å spesifisere 3D Eiendommer (basehøyder og / eller ekstrudering og / eller gjengivelse) for hvert drapert lag.

3D-lagegenskaper styrer basishøyden til et lag, enten som et konstant, et numerisk attributt eller aritmetisk uttrykk, fra en overflatemodell eller fra Z-koordinatene som ligger i 3D-formfilene. Z-overdrivelse kan brukes, som multipliserer hver Z-koordinat med en konstant verdi.

Funksjoner kan forskyves fra grunnhøyden med en konstant, med et numerisk attributt eller aritmetisk uttrykk. Dette kan brukes til å flyte funksjoner over en overflate (for eksempel verktøylinjer). Noen ganger vises ikke funksjonene godt rett på overflatenivå, så en liten positiv Z-forskyvning kan få dem til å skille seg ut visuelt.

Funksjoner kan også ekstruderes fra overflaten for å skape stolper, brønner, vegger og andre geometriske faste stoffer.

Funksjoner kan gjengis (skyggelagt) for å gi dem et mer realistisk 3D-utseende. Til slutt kan lag lages for ikke å tegne under interaksjon. Hvis 3D-scener endres ved å endre perspektiv, zoom og vippe, kan de gjøres for ikke å tegne før scenen holdes i samme posisjon i en gitt tidsperiode.

De fleste av bildene som er beskrevet i dette avsnittet, er overflategardiner. I denne 3D-scenen er CFI-tomtene ikke drapert over en overflate, så bakgrunnen ser flat ut. CFI-plotsentre vises to ganger, en gang som sorte punkter forskjøvet til en verdi proporsjonal med trevolum, og igjen som ekstruderte linjer i høyden proporsjonal med trevolumattributtet. Skogstandene vises også i en gradert fargesymbologi basert på standalder (ung = rød gammel = grønn).

Navigere og bevege deg rundt i sanntid

Det er lett å bevege seg rundt i en 3D-scene. Raske datamaskiner med gode skjermkort vil kunne tegne og svare raskere på navigasjonskontroll.

Navigasjonsverktøyet er kontrolleren for rotasjon, panorering, zooming og endring av overflatens orientering. Ved å bruke dette verktøyet i kombinasjon med tastaturtaster og forskjellige musetaster styrer det oppførselen (se hjelp til å navigere i 3D-scenen).

Når markøren er i visningsområdet, under rotasjon, panorering eller zooming, stopper bevegelsen til musen bevegelsen til overflaten i scenen. For å få bevegelsen til å fortsette, flytt markøren utenfor visningen mens du holder museknappen inne. Små bevegelser av musen utenfor betrakteren vil starte bevegelse og la den fortsette.

Konturering er dekket i Rasteranalyse II. I tillegg til å lage hele konturdatasett, med 3D Analyst er det også mulig å lage enkle konturer som enkel grafikk ved hjelp av Kontur verktøyet.

Siktlinje, synlighetsanalyse og overflateprofilering

Spatial Analyst Extension inkluderer noen få funksjoner for synsfelt og synlighetsanalyse.

De Line of Sight-verktøy , som analyserer synligheten til en linje tegnet mellom to punkter. Landets posisjoner som er synlige langs linjen mellom observatøren og målet vises i grønt, og steder som ikke er synlige vises i rødt.

De Surface & gt Calculate Viewshed menyvalg brukes til å bestemme hvilke deler av landskapet som er synlige fra et gitt punkt. Dette genererer et rutenett som viser alle områdene som er synlige, i stedet for bare hvilke steder som er synlige langs en linje mellom et mål og en observatør. Her er alle områdene som er synlige grønne.

For 3D-linjer tegnet på en dataramme, eller for funksjoner valgt fra linjefunksjonsklasser, er det også mulig å lage overflateprofiler basert på underliggende overflatedata ved hjelp av Opprett profilgraf verktøy.

Kartlegging av fargebakke

3D Analyst inkluderer kraftige verktøy for å visualisere landskap. En av de kraftigste er fargebakkeskygge. Dette viser høyden i brukerdefinerte farger, for eksempel grønn & gt gul & gt rød farge ramper, men gjelder også analytisk bakkeskygge på visningen. Dette skaper en visuell modell av landskapet der funksjoner ser ut til å ha volum. Sammenlign de to 3D-scenene, en med analytisk bakkeskygge og en uten:

Alternativet for skyggelegging er angitt av avkrysningsboksen i Lagegenskaper og gjengivelse dialog.

Bratteste nedstigning

Avgrensningsverktøyene for vannskille som brukes i avsnittet om hydrologisk modellering, tillater opprettelse av nedslagsområder. For ethvert punkt i et vannskille er det kjent hvor det ultimate utløpspunktet er. Men hvor strømmer det faktiske vannet over overflaten? Med en overflatemodell lastet i en dataramme, blir Bratteste sti verktøyet blir tilgjengelig. Når et punkt klikkes på datarammen, legges det til en grafisk linje i datarammen etter banen med den bratteste nedstigningen.

Dette grafiske objektet kan kopieres og limes inn i en ny formfil og legges til i en 3D-scene.

Helling og aspektberegning

Mange fysiske prosesser og ledelsesmål er relatert til skråning og aspekt. Helling er definert som (endring i høyde / endring i planimetrisk avstand). Noen ganger er skråning definert i gradmål, og noen ganger i prosentmål. Aspekt er skråningens kompassretning, nedover.

For TIN-overflatemodeller beregnes skråning og aspekt automatisk som attributter for hver trekant. For høydenett er helling og aspekt imidlertid ikke opprinnelige attributter. Det er enkelt å beregne helling og aspekt for høydenett ved hjelp av Surface & gt Derive Aspect og Surface & gt Derive Slope menyvalg.

ArcGIS beregner hellingen i grader, som kan konverteres til prosent stigning ved å multiplisere helningens tangens (målt i radianer) med 100%.

Her er en dataramme som inneholder et skråplan. Legg merke til at de bratteste bakkene ligger i dalene og kløftene i elvene Mashel og Nisqually.

Aspektklasser vises her. Legg merke til hvordan aspektet endrer seg brått på streamkanaler og ridgelines.


Påfør en Z-faktor for å sikre nøyaktigheten av volumberegninger når overflaten Z-verdier blir uttrykt i en annen måleenhet enn XY-enhetene. Bruk av en Z-faktor vil ikke endre de originale dataene. Verktøyet vil automatisk bestemme riktig Z-faktor når XY- og Z-koordinatsystemene er definert.

Utdatatekstfilen lagrer hele banen til overflaten, parameterne som brukes til å generere resultater, og det beregnede måling av areal og volum. Hvis den samme utdatafilen er spesifisert i flere kjøringer av verktøyet, opprettholdes de eksisterende postene og resultatene legges til tabellen.


Beregn areal (ikke overflateareal) og omkrets av et maske

For tiden undersøker jeg hvordan man kan beregne geometriske egenskaper til arkitektoniske former basert på 3D-masker, og sitter fast en stund på område og omkrets beregninger.

For det første område: forutsatt at jeg har proporsjoner satt riktig, hvis jeg for eksempel har en vegg med 3 meter høyde, 7,8 meter bredde og 0,290 meter tykkelse, er jeg interessert i resultatet av høyde * bredde (3 * 7,8) , som ville gitt meg 23,4 meter i dette tilfellet. Tanken min er å skaffe en 2D-projeksjon av dette 3D-nettet på et plan parallelt med det, beregne overflatearealet til hver trekant og oppsummere det, det jeg tror vil gi meg maskeområdet uavhengig av formen, forutsatt at det er plan . Problemet er, hvordan kan jeg få tak i denne trekantede projeksjonen? Jeg tror at hvis masken er justert mot verdensaksen, ville det ganske enkelt være et spørsmål om å ignorere en av dem, men dessverre er dette en antagelse som ikke kan gjøres, da det vil være masker rotert i forhold til en eller flere akser , og bare å ignorere en akse vil forvride projeksjonen. Aditionaly, er det noen metode som vil fungere selv i tilfelle av et ikke-plan nett?

Nå, for omkrets: har områdeproblemet løst, er det noen robust algoritme som vil gi meg konturene av denne 2D-triangulerte projeksjonen, og som vil fungere med både konvekse og konkave masker? Jeg tror at det med dette ville være et spørsmål om å bare legge opp alle kantene på konturen.


2 svar 2

Man kan bruke DiscretizeRegion for å få et nett:

3D-overflateplottere som Plot3D kan plotte over 2D-regioner. Vi kan ta skive og projisere til 2D:

Hvis 3D-delen ligger i et annet kardinalplan, må vi projisere med forskjellige koordinatindekser. Her er et eksempel på et y-z-plan:

Merk at regionen din har

Derfor klager FEM-generasjonen. Se til at dette fungerer:

Legg merke til forskjellen i atferd for den innebygde dimensjonen til det returnerte objektet mellom DiscretizeRegion og ElementMesh-funksjonen.

La oss nå vurdere en annen R. Du kan visualisere de beregnede verdiene på krysset.


Si at du har 3 poeng $ mathbf$. Finn vinkelen $ theta $ mellom $ mathbf$ og $ mathbf$ ved hjelp av prikkprodukt (dvs. $ mathbf cdot mathbf= | mathbf|| mathbf| cos theta $) og deretter kan du finne området til trekanten ved hjelp av $ A = frac <1> <2> | mathbf|| mathbf| sin theta $

Hvis de tre poengene dine er A, B, C, kan du bruke formelen (halv) på tvers av produktene direkte: $ S = dfrac <| mathbf ganger mathbf|> 2 = dfrac <| mathbf|| mathbf|| sin ( theta) |> 2 $ altså (se Wikipedia-lenken for å få kryssproduktet i $ mathbb^ 3 $): $ S = frac 12 sqrt <(y_ cdot z_-z_ cdot y_) ^ 2 + (z_ cdot x_-x_ cdot z_) ^ 2 + (x_ cdot y_-y_ cdot x_) ^ 2> $ hvis $ mathbf= (x_, y_, z_) $ og $ mathbf= (x_, y_, z_)$

Sannsynligvis er en av de beste måtene (og muligens minst beregningsintensive måtene) å nærme seg dette problemet med vektorer. I dette tilfellet har vi tre poeng, jeg vil beholde dem som vilkårlige variabler for bedre reproduserbarhet.

$ P_1 (a_1, a_2, a_3) P_2 (b_1, b_2, b_3) P_3 (c_1, c_2, c_3) $

Disse tre punktene kan brukes til å lage to vektorer som har samme startpunkt. Det spiller ingen rolle i hvilken kombinasjon vi velger punktene, så lenge vi lager to vektorer med samme startpunkt for deretter å beregne deres normale (ortogonale) vektor ved hjelp av kryssprodukt. Når vi har fått ortogonal, vi kan få det størrelsesorden som tilsvarer 2 ganger arealet av nevnte trekant. (Størrelsen på det ortogonale vil gi oss arealet til et parallellogram som deler de samme tilstøtende sidene, derfor vil vi halve dette området til slutt for å få arealet av trekanten).

For å lage vektorene fra et par punkter, gjør du følgende:

$ vec = & ltb_1-a_1, b_2-a_2, b_3-a_3 & gt = & ltx_1, y_1, z_1 & gt $ $ vec = & ltc_1-a_1, c_2-a_2, c_3-a_3 & gt = & ltx_2, y_2, z_2 & gt $

Her er et grunnleggende bilde av hva vi skal gjøre:

Når du har begge vektorene, kan du beregne deres ortogonal vektor ved å ta sine kryssprodukt, gjør du det som følger:

$ vec = vec ganger vec$ $ vec = begynn mathbf i & amp mathbf j & amp mathbf k x_1 & amp y_1 & amp z_1 x_2 & amp y_2 & amp z_2 end\ $

$ vec = begynn y_1 & amp z_1 y_2 & amp z_2 end mathbf i - begynn x_1 & amp z_1 x_2 & amp z_2 end mathbf j + begynn x_1 & amp y_1 x_2 & amp y_2 end mathbf k $

$ vec = (y_1z_2-y_2z_1) mathbf i- (x_1z_2-x_2z_1) mathbf j + (x_1y_2-x_2y_1) mathbf k = & lty_1z_2-y_2z_1, x_1z_2-x_2z_1, x_1y_2-x_2y_1 & gt_ = , z_3 & gt $

Når du har den ortogonale vektoren fra kryssproduktet, beregner vi størrelsen:

Til slutt sitter vi igjen med området til et parallellogram som består av to av våre trekanter. På dette tidspunktet halver vi størrelsen, og vi vil ha ønsket resultat.


Se videoen: QGIS 3D Map using 3D View Version (Oktober 2021).