Read and parse the header of a processed data file as output by the PC1800 program to extract the whole header remark field and also decode whether data is irradiance in photon or energy based units, transmittance, reflectance or absorbance and then extract the wavelength and spectral data. PC1800 is an MS-DOS program provided for use with the LI-1800 spectrometer. This instrument was released in the 1980's and was sold until the early 2000's. It was very popular and several of them remain in use. (It should not be confused with the LI-180, a new spectrometer released released in 2020.)
Usage
read_licor_prn(
file,
date = NULL,
geocode = NULL,
label = NULL,
tz = NULL,
locale = readr::default_locale(),
s.qty = NULL
)
read_m_licor_prn(
files,
date = NULL,
geocode = NULL,
label = NULL,
tz = NULL,
locale = readr::default_locale(),
s.qty = NULL
)Arguments
- file
Path to file as a character string.
- date
a
POSIXctobject to use to set the"when.measured"attribute. IfNULL, the default, the date is extracted from the file header.- geocode
A data frame with columns
lonandlatused to set attribute"where.measured".- label
character string, but if
NULLthe value offileis used, and ifNAthe "what.measured" attribute is not set.- tz
character Time zone used for interpreting times saved in the file header.
- locale
The locale controls defaults that vary from place to place. The default locale is US-centric (like R), but you can use
localeto create your own locale that controls things like the default time zone, encoding, decimal mark, big mark, and day/month names.- s.qty
character The name of the spectral quantity to be read. One of "s.irrad", "Tfr", or "Rfr".
- files
A list or vector of character strings.
Value
read_licor_prn() returns a source_spct object with
time.unit attribute set to "second" and when.measured
attribute set to the date-time extracted from the file name, or supplied.
Function read_m_licor_prn() returns a source_mspct object
containing one spectrum per file read.
Details
Function read_m_licor_prn() calls red_licor_prn()
for each file in files. See read_table for
a description of valid arguments for files.
Note
The LI-1800 spectroradiometer does not store the year as part of the
data, only month, day, and time of day. Because of this, in the current
version, if NULL is the argument to date, year is set to 0000.
In addition, the argument passed to tz does not recognize "summer-time"
shifts if the year is unknown (date read from the file header).
References
LI-COR Biosciences, Environmental. https://www.licor.com/env/
Examples
file.name <-
system.file("extdata", "spectrum.PRN",
package = "photobiologyInOut", mustWork = TRUE)
licor.spct <- read_licor_prn(file = file.name)
licor.spct
#> Object: source_spct [601 x 2]
#> Wavelength range 300-900 nm, step 1 nm
#> Label: File: spectrum.PRN
#> Measured on 0-08-23 16:32:00 UTC
#> Variables:
#> w.length: Wavelength [nm]
#> s.q.irrad: Spectral photon irradiance [mol s-1 m-2 nm-1]
#> --
#> # A tibble: 601 × 2
#> w.length s.q.irrad
#> <dbl> <dbl>
#> 1 300 1.52e-10
#> 2 301 3.36e-10
#> 3 302 2.20e-10
#> 4 303 3.24e-10
#> 5 304 4.60e-10
#> 6 305 2.09e-10
#> 7 306 3.77e-10
#> 8 307 4.73e-10
#> 9 308 7.65e-10
#> 10 309 1.18e- 9
#> # ℹ 591 more rows
getWhenMeasured(licor.spct)
#> [1] "0000-08-23 16:32:00 UTC"
getWhatMeasured(licor.spct)
#> [1] "File: spectrum.PRN"
cat(comment(licor.spct))
#> LICOR LI-1800 file 'spectrum.PRN' imported on 2025-10-02 21:42:53.336734 UTC
#> "FILE:FL2"
#> "REM: TLD 36W/865 (QNTM)"
#> "LIMS: 300- 900NM"
#> "INT: 1NM"
#> "DATE:08/23 16:32"
#> "MIN: 300NM 1.518E-04"
#> "MAX: 546NM 7.491E-01"
