# quiz 3 ####
library(readxl)
quiz3 <- read_excel("C:/CARLOS/quiz3.xlsx",
sheet = "data")
## New names:
## * `` -> ...13
head(quiz3)
## # A tibble: 6 x 15
## LONG LAT `380` `381` `382` `383` `384` `385` `386` `387`
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -73.6 4.22 0.105 0.106 0.106 0.106 0.107 0.107 0.108 0.109
## 2 -73.6 4.21 0.142 0.142 0.143 0.143 0.145 0.146 0.146 0.147
## 3 -73.6 4.21 0.102 0.103 0.104 0.104 0.105 0.106 0.106 0.107
## 4 -73.6 4.21 0.111 0.112 0.112 0.112 0.113 0.114 0.115 0.116
## 5 -73.6 4.21 0.0911 0.0920 0.0925 0.0924 0.0933 0.0946 0.0957 0.0962
## 6 -73.6 4.21 0.108 0.109 0.110 0.110 0.111 0.112 0.113 0.114
## # ... with 5 more variables: `388` <dbl>, `389` <dbl>, ...13 <lgl>,
## # lambda <dbl>, reflectancia <dbl>
# muestra de 55% de los datos ####
set.seed(123)
mi.data = quiz3[sample(1:nrow(quiz3),(55*100/144)),-c(1,2)]
# Graficar curva promedio ####
head(mi.data)
## # A tibble: 6 x 13
## `380` `381` `382` `383` `384` `385` `386` `387` `388` `389`
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.0721 0.0730 0.0734 0.0729 0.0739 0.0748 0.0754 0.0758 0.0751 0.0756
## 2 0.0894 0.0900 0.0904 0.0903 0.0908 0.0918 0.0927 0.0928 0.0922 0.0923
## 3 0.0502 0.0508 0.0510 0.0506 0.0510 0.0518 0.0524 0.0525 0.0516 0.0517
## 4 0.0993 0.1000 0.101 0.100 0.101 0.102 0.103 0.103 0.103 0.103
## 5 0.0812 0.0823 0.0829 0.0827 0.0832 0.0844 0.0855 0.0859 0.0854 0.0857
## 6 0.0926 0.0940 0.0947 0.0949 0.0958 0.0974 0.0989 0.0994 0.0992 0.0999
## # ... with 3 more variables: ...13 <lgl>, lambda <dbl>, reflectancia <dbl>
medias = apply(mi.data, 2, mean)
plot(medias~names(medias), type ='l',
xlab = 'Longitud de onda', ylab = 'reflectancia',
main = 'Curva Promedio')
## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introducidos por
## coerción

# Primera derivada de curva promedio ####
(pri.dev = diff(medias)/diff(as.numeric(names(medias))))
## Warning in diff(as.numeric(names(medias))): NAs introducidos por coerción
## 381 382 383 384 385
## 8.277766e-04 5.474434e-04 -8.484919e-05 7.606610e-04 1.161731e-03
## 386 387 388 389 ...13
## 9.587979e-04 2.472077e-04 -4.591385e-04 5.293275e-04 NA
## lambda reflectancia
## NA NA
max(pri.dev) # maximo de la prmera derivada
## [1] NA
# grafica longitud, latitud, reflectancia
plot(quiz3$LAT, quiz3$LONG, col = floor(quiz3$`380`*100),
pch = 16)

library(plot3D)
scatter3D(quiz3$LONG,
quiz3$LAT,
quiz3$`380`, pch = 16, cex = 0.5)

lines3D(-1*rep(quiz3$LONG[2],(ncol(quiz3)-2)),
rep(quiz3$LAT[2],(ncol(quiz3)-2)),
as.numeric(colnames(quiz3)[-c(1,2)]),
col = round(as.numeric(quiz3[2,-c(1,2)])*1000),
lwd = 4)
## Warning in splitdotpersp(list(...), bty, NULL, x, y, z, plist = plist,
## breaks = breaks): NAs introducidos por coerción

x = -1*rep(quiz3$LONG,each = (ncol(quiz3)-2))
y = rep(quiz3$LAT,each = (ncol(quiz3)-2))
z = rep(as.numeric(colnames(quiz3)[-c(1,2)]),nrow(quiz3))
## Warning: NAs introducidos por coerción
cl = c()
for (i in 1:(ncol(quiz3)-2)) {
vec = (i*nrow(quiz3)-(nrow(quiz3)-1)): (i*nrow(quiz3))
# print(paste(min(vec),'-',max(vec)))
cl[min(vec):max(vec)] = unlist(quiz3[,(i+2)])
}
scatter3D(x,y,z,
cex = 0.5, pch = 16,
colvar = round(cl*1000))

library(rgl)
plot3d(x,y,z, col = round(cl*100),
xlab = 'LONGITUD',
ylab = 'LATITUD',
zlab = "LONG ONDA", type = 's',radius = 0.2)