#' ReVuePro: RW_Flir
#'
#' A culmination function to decrypt radiometric JPGs (rJPGs) captured using a FLIR Vue Pro R camera, convert units of infrared radiation (kW/m2) to units of temperature (degrees Celsius), and construct a RAW file using IEEE754, single point format to encode temperature information.
#' @details Note that RAW files will be written such that their creation date matches that of the parent JPG. Furthermore, this function calls upon Microsoft Powershell, and is therefore currently limited to Windows users.
#' @param source A path to the folder containing radiometric JPGs (rJPGs) to be rewritten. There is no default input.
#' @param destination The path to a folder at wish you would like to save your rewritten, Vue Pro radiometric JPG (rJPG).
#' @param pwidth The width, in pixels, of the thermal image. Default is 336.
#' @param pheight The height, in pixels, of the thermal image Default is 256.
#' @param P_R1 Planck_R1 from function "Rad_Temp" in package "ReVuePro". A callibration constant, specific per FLIR camera. This can be determined using 'exiftool.exe', produced by Phil Harvey. Default is 17096.453125.
#' @param P_R2 Planck_R2 from function "Rad_Temp" in package "ReVuePro". A callibration constant, specific per FLIR camera. This can be determined using 'exiftool.exe', produced by Phil Harvey. Default is 0.04351538.
#' @param P_B Planck_B from function "Rad_Temp" in package "ReVuePro". A callibration constant, specific per FLIR camera. This can be determined using 'exiftool.exe', produced by Phil Harvey. Default is 1428.0.
#' @param P_F Planck_F from function "Rad_Temp" in package "ReVuePro". A callibration constant, specific per FLIR camera. This can be determined using 'exiftool.exe', produced by Phil Harvey. Default is 1.0.
#' @param P_O Planck_O from function "Rad_Temp" in package "ReVuePro". A callibration constant, specific per FLIR camera. This can be determined using 'exiftool.exe', produced by Phil Harvey. Default is -55.0.
#' @param emiss Emmissivity from function "Rad_Temp" in package "ReVuePro". The relative energy that is emitted (or radiated) from the surface of the object in the image, compared to that emitted from a blackbody in equivalent conditions. This value must lay between 0 and 1. Default is 0.98.
#' @param OD obj_distance from function "Rad_Temp" in package "ReVuePro". The distance between the thermal imaging camera and object to be measured within the image. This value is expressed in metres. Default is 1.0 metres.
#' @param AT amb_temp from function "Rad_Temp" in package "ReVuePro". Ambient/atmospheric temperature at the time of image capture, in degrees Celcius.
#' @param RT ref_temp from function "Rad_Temp" in package "ReVuePro". The temperature reflected from the object in question - again, in degrees Celcius. Default is to assume that the reflected temperature is equal to ambient temperature.
#' @param WT window_temp from function "Rad_Temp" in package "ReVuePro". The temperature of window though which the thermal image was take, in degrees Calcius. Default is to assume that window temperature is equal to ambient temperature.
#' @param transmit wind_transmittance from function "Rad_Temp" in package "ReVuePro". The relative amount of light transmitted though a window between the thermal imaging camera and object in question. This value must lay between 0 and 1, with a default value of 1.
#' @param hum humidity from function "Rad_Temp" in package "ReVuePro". Relative, atmospheric humidity at the time if image character. This value is expressed as a percentage, and therefore should lay between 0 and 100.
#' @keywords VuePro, Thermal
#' @export
#' @examples
#' RW_Flir("C:/MyJPGS", "C:/MyRAWS", pwidth = 336, pheight = 256, P_R1 = 17096.453125, P_R2 = 0.04351538,
#' P_B = 1428.0, P_F = 1, P_O = -55.0, emiss = 0.98, OD = 1.0, AT = 23.0, hum = 30)
## Rewritting FLIR JPGs with temperature values in IEEE-754 single point notation
RW_Flir<-function(source, destination, pwidth = 336, pheight = 256, P_R1 = 17096.453125,
P_R2 = 0.04351538, P_B = 1428.0, P_F = 1, P_O = -55.0,
emiss = 0.98, OD = 1.0, AT, RT = AT,
WT = AT, transmit = 1, hum){
originalwd<-getwd()
setwd(source)
dir2<-destination
for(i in 1:length(list.files())){
file=list.files()[i]
WriteFile=gsub("\\..*", "", file)
readingIn <- file(file, "rb")
BinData <- readBin(readingIn, raw(), n = file.info(file)$size)
close(readingIn)
toremove<-c(67703:67714,133239:133250)
Tagless<-BinData[-toremove]
Imagelength = (pwidth*pheight)*2
Image = Tagless[2723:(2722+Imagelength)]
# Converting to radiance values
tempcon <- file("temp")
open(tempcon, "wb")
writeBin(Image, tempcon, raw(), endian = .Platform$endian)
close(tempcon)
readTemp <- file("temp", "rb")
radiance <- readBin(readTemp, integer(), n = file.info("temp")$size, size=2, endian="little")
close(readTemp)
ToRemove <- "temp"
if (file.exists(ToRemove)){file.remove(ToRemove)}
{ P_R1 = P_R1
P_R2 = P_R2
P_B = P_B
P_F = P_F
P_O = P_O
emiss = emiss
OD = OD
AT = AT
RT = RT
WT = WT
transmit = transmit
hum = hum
Temp_vals = Rad_Temp(radiance, Planck_R1 = P_R1,
Planck_R2 = P_R2, Planck_B = P_B, Planck_F = P_F, Planck_O = P_O,
emissivity = emiss, obj_distance = OD, amb_temp = AT, ref_temp = AT,
window_temp = WT, wind_transmittance = transmit, humidity = hum)
}
setwd(dir2)
writecon <- file(WriteFile)
open(writecon, "wb")
writeBin(Temp_vals, writecon, useBytes=FALSE, endian = "big", size = 4)
close(writecon)
setwd(source)
closeAllConnections()
}
DatePreserve(source, destination)
setwd(originalwd)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.