Daha çox

R -də hiperspektral datacubes üçün Loop NDVI hesablamaları


Fərqli hiperspektral məlumatların işlənməsi üçün bir skript yazıram. Məlumat borularında İHA ilə qeyd etdiyim uçuş xətləri var. Ümumilikdə emal və mozaikaya ehtiyacı olan 10 uçuş xətti var. Fayllar .bsq formatındadır və 101 lentdən ibarətdir:

sinif: RasterBrick ölçüləri: 1293, 749, 968457, 101 (nrow, ncol, ncell, nlayers) qətnamə: 0.25, 0.25 (x, y) ölçü: 651041.9, 651229.1, 5687300, 5687623 (xmin, xmax, ymin, ymax) koordinat . refer. : +proj = utm +zone = 31 +ellps = WGS84 +towgs84 = 0,0,0,0,0,0,0 +ədəd = m +no_defs məlumat mənbəyi:  HyperspectralDatacube_FlightLine02_PixelSize = 0.25m_DSM = Photogrammetric.bsq adları: X450 .00000.Nanometr, X455.00000.Nanometr, X460.00000.Nanometr, X465.00000.Nanometr, X470.00000.Nanometr,…

Bütün 101 təbəqələri yükləmək üçün lapply və kərpicdən istifadə edərək bütün 10 hiperspektral rasters yükləyirəm:

# Hyperspectral datacubes fayllarını yükləyin <- list.files (yol = ".", Model = ".bsq $") r <- lapply (fayllar, kərpic)

Sonra bu hiperspektral rasters üçün bitki indekslərini və nəticələrini mozaika ilə hesablamaq istəyirəm.

# NDVI funksiyası yaradın NDVI <- funksiya (R, NIR) {(NIR-R)/(NIR+R)} # NDVI hesablayın ndvi1 <- NDVI (raster (r [[1]], qat = 41), (raster (r [[1]], qat = 61))) ndvi2 <- NDVI (raster (r [[2]], qat = 41), (raster (r [[2]], qat = 61)))… # Mozaika rasterləri mndvi <- mozaika (ndvi1, ndvi2,… əyləncə = orta, tolerantlıq = 0.05)

NDVI hesablamaları üçün bir döngə necə yarada bilərəm? Kod sətrini yuxarıdakı nümunə kimi sətir -satır yazmaq əvəzinə. Mən R üçün kifayət qədər yeniyəm və hər bir hesablama üçün dəyişən rasters və qatlarla bu döngəni necə yaza biləcəyimi hələ də başa düşmürəm. Nəticələr yuxarıdakı nümunə kimi mozaikaya çevrilməlidir.


Raster nəsil üçün R -də loop quruluşlarına baxın.

Problemli bit son sətirdir, çünki bütün rasterləri əl ilə təyin etməkdən çəkinmək istəyirsiniz. Onları eyni döngədəki bir siyahıya əlavə edə və mozaika zəngində istifadə edə bilərsiniz. Necə olduğunu bilmək üçün bu cavaba baxınzəng edinR versiyanız bir siyahı parametrini dəstəkləmirsə istifadə edilə bilərmozaikaartıq Ayrıca loop nümunələri var.


Videoya baxın: NDVI,SAVI,EVI,RVI Vegetation indices and applying Radiometric and Atmospheric Corrections (Sentyabr 2021).