Skip to content

Commit b84e3aa

Browse files
authored
Update 09-vnir-radiometer.Rmd
1 parent bb7eaac commit b84e3aa

1 file changed

Lines changed: 113 additions & 0 deletions

File tree

sensors/09-vnir-radiometer.Rmd

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,116 @@ print(metnc)
7575
### Your turn:
7676

7777
Can you see the effect of the August 21, 2017 solar eclipse on the diurnal spectral radiance?
78+
79+
## Raw sensor data
80+
81+
Here we can found the original data written by the sensor. Unlike above, these are in text files and are not in a standard format like the CF format above.
82+
83+
```{r raw-met, cache=TRUE}
84+
metfile <- "/data/terraref/sites/ua-mac/raw_data/EnvironmentLogger/2017-05-31/2017-05-31_12-19-38_environmentlogger.json"
85+
met <- jsonlite::fromJSON(metfile)
86+
87+
timestamp <- lubridate::ymd_hms(met$environment_sensor_readings$timestamp)
88+
89+
wavelengths <- met$environment_sensor_readings$spectrometer$wavelength[[1]]
90+
91+
spectra <- do.call('rbind', met$environment_sensor_readings$spectrometer$spectrum)
92+
93+
library(dplyr)
94+
spectra <- do.call('rbind', met$environment_sensor_readings$spectrometer$spectrum)
95+
96+
#colnames(spectra) <- wavelengths
97+
#rownames(spectra) <- met$environment_sensor_readings$timestamp
98+
image(x = timestamp, y = wavelengths, z = spectra)
99+
```
100+
101+
102+
```{r}
103+
library(dplyr)
104+
library(readr)
105+
date = '2017-04-15'
106+
load_loggerdata <- function(date){
107+
path <- file.path("/data/terraref/sites/ua-mac/raw_data/EnvironmentLogger", date)
108+
files <- dir(path, full.names = TRUE)
109+
loggerdata <- lapply(files, jsonlite::fromJSON)
110+
timestamp <- combine(sapply(loggerdata, function(x){
111+
t <- x$environment_sensor_readings$timestamp
112+
lubridate::ymd_hms(t)
113+
}))
114+
return(list(data = loggerdata, timestamp = timestamp))
115+
}
116+
117+
extract_downwelling_irradiance <- function(logdata){
118+
119+
wavelengths <- logdata$data[[1]]$environment_sensor_readings$spectrometer$wavelength[[1]]
120+
121+
spectra <- do.call('rbind', lapply(logdata$data, function(x){
122+
do.call('rbind', x$environment_sensor_readings$spectrometer$spectrum)
123+
}
124+
))
125+
# image(x = timestamp, y = wavelengths, z = spectra)
126+
return(list(spectra = spectra, wavelengths = wavelengths, timestamp = logdata$timestamp))
127+
}
128+
129+
extract_logger_met <- function(logdata){
130+
131+
met <- do.call('rbind', lapply(logdata$data, function(x){
132+
tmp_met <- x$environment_sensor_readings
133+
data.frame(par = tmp_met$`sensor par`$value,
134+
co2 = tmp_met$`sensor co2`$value,
135+
sundir = tmp_met$weather_station$sunDirection$value,
136+
pressure = tmp_met$weather_station$airPressure$value,
137+
brightness = tmp_met$weather_station$brightness$value,
138+
rh = tmp_met$weather_station$relHumidity$value,
139+
temp = tmp_met$weather_station$temperature$value,
140+
wind_dir = tmp_met$weather_station$windDirection$value,
141+
wind_speed = tmp_met$weather_station$windVelocity$value)
142+
143+
}))
144+
return(met)
145+
}
146+
147+
env_log_data <- load_loggerdata(date = '2017-04-15')
148+
env_log_spectra <- extract_downwelling_irradiance(env_log_data)
149+
env_log_met <- extract_logger_met(env_log_data)
150+
151+
```
152+
153+
#### Plots
154+
155+
```{r}
156+
library(lubridate)
157+
library(dplyr)
158+
library(tidyr)
159+
time <- env_log_data$timestamp
160+
161+
hourly_index <- 1+0:23*720
162+
163+
time_hr <- time[hourly_index]
164+
hourly_spectra <- env_log_spectra$spectra[hourly_index,]
165+
wavelengths <- env_log_spectra$wavelengths
166+
167+
colnames(hourly_spectra) <- wavelengths
168+
169+
image(x = time_hr, y = wavelengths, z = hourly_spectra,
170+
xlab = 'local time', ylab = 'wavelength (nm)')
171+
```
172+
173+
```{r spectra-ggplot}
174+
175+
spectra_df <- data.frame(hour = 1:24, hourly_spectra)
176+
177+
spectra_long <- spectra_df %>%
178+
gather(key = wavelength, value = radiance, -hour) %>%
179+
mutate(wavelength = as.numeric(gsub("X", "", wavelength)))
180+
181+
colnames(spectra_long)
182+
183+
library(ggplot2)
184+
ggplot(data = spectra_long, aes(x = wavelength, y = radiance)) +
185+
geom_line(size = 0.1) +
186+
ggthemes::theme_tufte() +
187+
facet_wrap(~hour, ncol = 6) +
188+
ggtitle(paste('spectra on', date))
189+
190+
```

0 commit comments

Comments
 (0)