Daugiau

Ciklo NDVI skaičiavimai hiperspektriniams duomenų kubams R


Rašau scenarijų skirtingiems hiperspektriniams duomenų kubams apdoroti. Duomenų kubuose yra skrydžių linijos, kurias aš įrašiau naudodamas UAV. Iš viso yra 10 skrydžių linijų, kurias reikia apdoroti ir sudėti į mozaiką. Failai yra .bsq formato ir juose yra 101 juosta:

klasė: Rastras Plytų matmenys: 1293, 749, 968457, 101 (nrow, ncol, ncell, nlayers) skyra: 0,25, 0,25 (x, y) mastas: 651041.9, 651229.1, 5687300, 5687623 (xmin, xmax, ymin, ymax) coord . ref. : +proj = utm +zona = 31 +elps = WGS84 +towgs84 = 0,0,0,0,0,0,0 +vienetai = m +no_defs duomenų šaltinis:  HyperspectralDatacube_FlightLine02_PixelSize = 0.25m_DSM = Photogrammetric.bsq pavadinimai: X450 .00000.Nanometrai, X455.00000.Nanometrai, X460.00000.Nanometrai, X465.00000.Nanometrai, X470.00000.Nanometrai,…

Įkeliu visus 10 hiperspektrinių rastrų, naudodami lapply ir plytų, kad įkrautumėte visus 101 sluoksnį:

# Įkelti hiperspektrinius duomenų kubų failus <- list.files (path = ".", Pattern = ".bsq $") r <- lapply (failai, plyta)

Tada noriu apskaičiuoti šių hiperspektrinių rastrų augmenijos indeksus ir mozaikos rezultatus.

# Sukurti NDVI funkciją NDVI <- funkcija (R, NIR) {(NIR-R)/(NIR+R)} # Apskaičiuoti NDVI ndvi1 <- NDVI (rastrinis (r [[1]], sluoksnis = 41), (rastrinis (r [[1]], sluoksnis = 61))) ndvi2 <- NDVI (rastras (r [[2]], sluoksnis = 41), (rastras (r [[2]], sluoksnis = 61)))… # Mozaikos rasters mndvi <- mozaika (ndvi1, ndvi2,… linksma = vidutinė, tolerancija = 0,05)

Kaip sukurti ciklą NDVI skaičiavimams? Užuot rašę kodą eilute po eilutės, kaip aukščiau pateiktame pavyzdyje. Aš esu gana naujas „R“ ir dar nelabai suprantu, kaip galiu parašyti šią kilpą su kintamaisiais raseriais ir sluoksniais kiekvienam skaičiavimui. Rezultatai turi būti mozaikuojami kaip aukščiau pateiktas pavyzdys.


Rastrų kartai tiesiog ieškokite kilpos konstrukcijų R.

Probleminė dalis yra paskutinė eilutė, nes nenorite rankiniu būdu nurodyti visų raserių. Galite juos įtraukti į sąrašą toje pačioje kilpoje ir naudoti tą mozaikos skambutyje. Pažiūrėkite į šį atsakymą, kad pamatytumėte, kaipdaryk.skambinkgali būti naudojamas, jei jūsų R versija nepalaiko sąrašo parametromozaikajau nebe. Jame taip pat yra kilpų pavyzdžių.


Žiūrėti video įrašą: Compute NDVI and Area statistics in QGIS (Rugsėjis 2021).