c# itextsharp pdf page to image : Copy protected pdf to word converter online SDK Library API wpf .net web page sharepoint fileio1-part1325

+
if (is (spc, "hyperSpec"))
+
cat (f, ": ", nrow (spc), " spectrum(a), ", nwl (spc), " data pts / spc.\n", sep = "")
+
else
+
cat (f, ": list of ", length (spc), " spectra, ",
+
paste (range (sapply (spc, nwl)), collapse = " - "),
+
" data pts / spc\n", sep = "")
+ }
spc/BARBITUATES.SPC: list of 286 spectra, 4 - 101 data pts / spc
spc/barbsvd.spc: list of 286 spectra, 4 - 101 data pts / spc
spc/BENZENE.SPC: 1 spectrum(a), 1842 data pts / spc.
spc/DRUG SAMPLE_PEAKS.SPC: list of 6 spectra, 80 - 253 data pts / spc
spc/DRUG SAMPLE.SPC: list of 400 spectra, 2 - 254 data pts / spc
spc/FID.SPC: 1 spectrum(a), 8192 data pts / spc.
spc/HCL.SPC: 1 spectrum(a), 8361 data pts / spc.
spc/HOLMIUM.SPC: 1 spectrum(a), 901 data pts / spc.
spc/IG_BKGND.SPC: 1 spectrum(a), 4096 data pts / spc.
spc/IG_MULTI.SPC: 10 spectrum(a), 4096 data pts / spc.
spc/IG_SAMP.SPC: 1 spectrum(a), 4645 data pts / spc.
spc/KKSAM.SPC: 1 spectrum(a), 751 data pts / spc.
spc/POLYR.SPC: 1 spectrum(a), 1844 data pts / spc.
spc/POLYS.SPC: 1 spectrum(a), 1844 data pts / spc.
spc/SINGLE POLYMER FILM.SPC: 1 spectrum(a), 1844 data pts / spc.
spc/SPECTRUM WITH BAD BASELINE.SPC: 1 spectrum(a), 1400 data pts / spc.
spc/TOLUENE.SPC: 1 spectrum(a), 801 data pts / spc.
spc/TriVista-linear.spc: 1 spectrum(a), 1149 data pts / spc.
spc/TriVista-normal.spc: 1 spectrum(a), 1024 data pts / spc.
spc/TUMIX.SPC: 1 spectrum(a), 1775 data pts / spc.
spc/TWO POLYMER FILMS.SPC: 1 spectrum(a), 1844 data pts / spc.
spc/Witec-timeseries.spc: 25 spectrum(a), 1024 data pts / spc.
spc/XYTRACE.SPC: 1 spectrum(a), 3469 data pts / spc.
The header and subheader blocks of spc files store additional information of pre-defined types (see
the file format specification[3]). Further information can be stored in the so-called log block at the
end of the file, and should be in a key-value format (although even the official example files do not
always). This information is often useful (Kaiser’s Hologram software e.g. stores the stage position
in the log block).
read.spc has four arguments that allow fine-grained control of storing such information in the
hyperSpec object:
keys.hdr2data parameters from the spc file and subfile headers that should become extra data
columns
keys.log2data parameters from the spc file log block that should become extra data columns
keys.*2log
parameters are deprecated because the logbook itself is depecated
The value of these arguments can either be logical (amounting to either use all or none of the
information in the file) or a character vector giving the names of the parameters that should be
used. Note that the header file field names are always lowercase.
Here’s how to find out what extra information could be read from the header and log:
> read.spc ("spc.Kaisermap/ebroAVII.spc", keys.hdr2data = TRUE)
hyperSpec object
1 spectra
33 data columns
1340 data points / spectrum
wavelength: x/"a. u." [numeric] 1 2 ... 1340
data: (1 rows x 33 columns)
1. z: x/"a. u." [numeric] 1
11
Copy protected pdf to word converter online - C# PDF Password Library: add, remove, edit PDF file password in C#.net, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
adding a password to a pdf; pdf password reset
Copy protected pdf to word converter online - VB.NET PDF Password Library: add, remove, edit PDF file password in vb.net, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
break password on pdf; pdf document password
2. z.end: x/"a. u." [numeric] 1
3. ftflgs: [logical] FALSE
4. fexper: [factor] General
5. fexp: [integer] -128
6. fnpts: [integer] 1340
7. ffirst: [numeric] 1
8. flast: [numeric] 1340
9. fnsub: [integer] 1
10. fxtype: [character] x/"a. u."
11. fytype: [character] Counts
12. fztype: [character] x/"a. u."
13. fpost: [integer] 0
14. fdate: [POSIXct, POSIXt] 1253590860
15. fres: [character]
16. fsource: [character]
17. fspare: [numeric] 0
18. fcmnt: [character]
19. fcatxt: [character]
20. flogoff: [integer] 5904
21. fmods: [integer] 0
22. fprocs: [integer] 0
23. flevel: [integer] 0
24. fsampin: [integer] 0
25. ffactor: [numeric] 0
26. fmethod: [character]
27. fzinc: [numeric] 0
28. fwplanes: [integer] 0
29. fwinc: [numeric] 0
30. fwtype: [character] x/"a. u."
31. .last.read: [numeric] 512
32. subfiledir: [numeric] 0
33. spc: Counts [matrix1340] 2782.7 2229.8 ... 932.02
> read.spc ("spc.Kaisermap/ebroAVII.spc", keys.log2data = TRUE)
hyperSpec object
1 spectra
54 data columns
1340 data points / spectrum
wavelength: x/"a. u." [numeric] 1 2 ... 1340
data: (1 rows x 54 columns)
1. z: x/"a. u." [character] 1
2. z.end: x/"a. u." [character] 1
3. Grams_File_Name: [character] d:\beleites\ebro\Map 20090921 180944\ebroAVII.spc
4. HoloGRAMS_File_Name: [character] Unknown
5. Acquisition_Date_Time: [character] 22.09.2009 03:41:30
6. Lambda: [character] Low
7. Accuracy_Mode: [character] High Speed
8. Dark_subtracted: [character] Yes
9. Dark_File_Name: [character] ebroAVGC.drk
10. Auto_New_Dark_Curve: [character] No
11. Background_subtracted: [character] No
12. Background_File_Name: [character] <None>
13. Intensity_Corrected: [character] Yes
14. Intensity_Calibration_Available: [character] Yes
15. Intensity_Correction_File: [character] c:\hologram\calibration\intensity\20090609aa.icl
16. Intensity_Correction_Threshold: [character] 0,00%
17. Intensity_Source_Correction: [character] No
18. Intensity_Source_Correction_File: [character] <None>
19. Comment: [character] <None>
20. Cosmic_Ray_Filtering: [character] Yes
21. Total_Cosmic_Count: [character] 38
22. Exposure_Length: [character] 10000
23. Accumulations: [character] 1
24. Accumulation_Method: [character] Averaged
25. Calibration_File: [character] C:\HoloGRAM\calibration\Wavelength\20090716ab.wcl
12
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
file online without email. Supports transfer from password protected PDF. VB.NET class source code for .NET framework. This VB.NET PDF to Word converter control
pdf password unlock; pdf owner password
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Password protected PDF file can be printed to Word for mail merge. RasterEdge Visual C# .NET PDF to Word (DOC/DOCX) converter library control (XDoc.PDF) is a
add password to pdf online; convert password protected pdf to excel
26. Comment.1: [character]
27. Temperature_Status: [character] At temperature
28. Temperature: [character] -85,50
29. HoloGRAMS_File_Version: [character] 4.1
30. File_Type: [character] Hol
31. Operator: [character] unknown
32. Stage_X_Position: [character] 360
33. Stage_Y_Position: [character] 1100
34. Stage_Z_Position: [character] -16
35. AutoFocusUsed: [character] Nein
36. WLInterval: [character] 0,12
37. CalInterval: [character] 0,90
38. FFTFillFactor: [character] None
39. FFTApT: [character] None
40. SamplingMethod: [character] Linear
41. Has_MultiPlex_Laser: [character] No
42. External_Trigger: [character] No
43. Laser_Wavelength: [character] 785,21
44. Default_Laser_Wavelength: [character] 785,21
45. Laser_Tracking: [character] False
46. Laser_Block_Active: [character] No
47. Pixel_Fill_minimum: [character] 26
48. Pixel_Fill_maximum: [character] 16762
49. Binning_Start: [character] 24
50. Binning_End: [character] 41
51. NumPoints: [character] 1340
52. First: [character] 1,000
53. last: [character] 1340,000
54. spc: Counts [matrix1340] 2782.7 2229.8 ... 932.02
.spc files may contain multiple spectra that do not share a common wavelength axis. In this case,
read.spc returns a list of hyperSpec objects with one spectrum each. collapse may be used to
combine this list into one hyperSpec object:
> barbiturates <- read.spc ("spc/BARBITUATES.SPC")
> save (barbiturates, file = "barbiturates.rda")
> class (barbiturates)
[1] "list"
> length (barbiturates)
[1] 286
> barbiturates <- do.call (collapse, barbiturates)
> barbiturates <- orderwl (barbiturates)
> barbiturates
hyperSpec object
286 spectra
3 data columns
375 data points / spectrum
wavelength: frac(m, z)/frac(u, e) [numeric] 25.95 26.05 ... 244.05
data: (286 rows x 3 columns)
1. z: t/min [numeric] 4.0272 4.0341 ... 5.9978
2. z.end: t/min [numeric] 4.0272 4.0341 ... 5.9978
3. spc: I/"a. u." [matrix375] NA NA ... NA + NA
> barbiturates [[1:10, , 25 ~ 30]]
25.95 26.05 26.15 26.95 27.05 27.15 28.05 28.15 29.05 29.15 29.95
[1,]
NA
NA
NA
NA
562
NA
NA 11511 6146
NA
NA
[2,]
NA
NA
NA
NA
NA
618 10151
NA 5040
NA
NA
[3,]
NA
NA
NA
NA
638
NA
NA 10722 5253
NA
NA
[4,]
NA
NA
NA
NA
NA
NA 10548
NA 5865
NA
NA
13
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
Password protected PDF document can be converted and changed. using RasterEdge.XDoc. PDF; Copy demo code below to achieve fast conversion from PDF file to Jpeg
advanced pdf password remover; add password to pdf
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C# VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Able to convert password protected PDF document.
break pdf password; break pdf password online
[5,]
NA
NA
NA
NA
NA
NA
NA 10519 4664
NA
NA
[6,]
NA
NA
NA
796
NA
NA 10519
NA 5110
NA
NA
[7,]
NA
NA
NA
NA
NA
NA 10096
NA 4769
NA
907
[8,]
NA
NA
NA
NA
NA
NA
NA 10929 5400
NA
NA
[9,]
NA
NA
NA
NA
NA
NA 10235
NA 4930
NA
NA
[10,]
NA
NA
NA
NA
NA
NA
NA 10663 4690
NA
799
Deriving manufacturer specific import filters. Please note that future changes inside the read.spc
function are likely to occur. However, if you just post-process the hyperSpec object returned by
read.spc, you should be fine.
6. Manufacturer-Specific Discussion of File Import
6.1. Manufacturer Specific Import Functions
Many spectrometer manufacturers provide a function to export their spectra into ASCII files. The
functions discussed above are written in a very general way, and are highly customizable. I rec-
ommend wrapping these calls with the appropriate settings for your spectra format in an import
function. Please consider contributing such import filters to hyperSpec: send me the documented
code (for details see the box at the beginning of this document). If you are able to import data of
any format not mentioned in this document (even without the need of new converters), please let
me know (details again in the box at the beginning of this document).
6.2. Bruker FT-IR Imaging
We use read.ENVI to import IR-Images collected with a Bruker Hyperion spectrometer with OPUS
software. As mentioned above, the header files are frequently empty. We found the necessary
information to be:
> header <- list (samples = 64 * no.images.in.row,
+
lines = 64 * no.images.in.column,
+
bands = no.data.points.per.spectrum,
+
data type
= 4,
+
interleave = "bip")
No spatial information is given in the ENVI header (if written). The lateral coordinates can be setup
by specifying origin and pixel size for
x
and
y
directions. For details please see the help page.
The proprietary file format of the Opus software is not yet supported.
6.3. Nicolet FT-IR Imaging
Also Nicolet saves imaging data in ENVI files. These files use some non-standard keywords in the
header file that should allow to reconstruct the lateral coordinates as well as the wavelength axes and
units for wavelength and intensity axis. hyperSpec has a specialized function read.ENVI.Nicolet
that uses these header entries.
It seems that the position of the first spectrum is recorded in
m, while the pixel size is in mm. Thus
aflag nicolet.correction is provided that divides the pixel size by 1000. Alternatively, the correct
offset and pixel size values may be given as function arguments.
> spc <- read.ENVI.Nicolet ("ENVI/example2.img", nicolet.correction = TRUE)
> spc ## dummy sample with all intensities zero
14
.NET PDF SDK - Description of All PDF Processing Control Feastures
Convert PDF to Word (.docx); Convert PDF to HTML; Convert PDF Easy to copy, paste, and cut image from PDF. Able to Open password protected PDF; Allow users to add
convert pdf password protected to word online; password protected pdf
C# Word: How to Create Word Online Viewer in C# Application
viewer creating, you can go to PDF Web Viewer Please copy the following demo code to the head of public string mode; public string fid; protected void Page_Load
protected pdf; change password on pdf file
hyperSpec object
0 spectra
3 data columns
1738 data points / spectrum
wavelength: [numeric] 649.90 651.83 ... 3999.7
data: (0 rows x 3 columns)
1. x: [numeric]
2. y: [numeric]
3. spc: [matrix1738]
6.4. Varian/Agilent FT-IR Imaging
Agilent (Varian) uses a variant of ENVI (with binary header). A specialized form of read.ENVI will
be coming soon.
6.5. Kaiser Optical Systems Raman
Spectra obtained using Kaiser’s Hologram software can be saved either in their own .hol format and
imported into Matlab (from where the data may be written to a .mat file readable by R.matlab’s
readMat. Hologram can also write ASCII files and .spc files. We found working with .spc files the
best option.
The spectra are usually interpolated by Hologram to an evenly spaced wavelength (or
˜
ν
)axis unless
the spectra are saved in a by-pixel manner. In this case, the full spectra consist of two files with
consecutive file names: one for the low and one for the high wavenumber region. See the example
for .spc import.
6.5.1. Kaiser Optical Systems ASCII Files
The ASCII files are long format that can be imported by read.txt.long (see section4, p.5).
We experienced two different problems with these files:
1. If the instrument computer’s locale is set so that also the decimal separator is a comma, commas
are used both as decimal and as column separator.
2. Values with a decimal fraction of
0
are written with decimal separator but no further digits
(e.g. 2,). This may be a problem for certain conversion functions (read.table works fine,
though).
Thus care must be taken:
> ## 1. import as character
> tmp <- scan ("txt.Kaiser/test-lo-4.txt", what = rep ("character",4), sep = ",")
> tmp <- matrix (tmp, nrow = 4)
> ## 2. concatenate every two columns by a dot
> wl <- apply (tmp [1:2, ], 2, paste, collapse =
.
)
> spc <- apply (tmp [3:4, ], 2, paste, collapse =
.
)
> ## 3. convert to numeric and create hyperSpec object
> spc <- new ("hyperSpec", spc = as.numeric (spc), wavelength = as.numeric (wl))
6.5.2. Kaiser Optical Systems Raman Maps
hyperSpec provides the function read.spc.KaiserMap to easily import spatial collections of .spc
files written by Kaiser’s Hologram software. The filenames of all .spc files to be read into one
15
C# PDF: C# Code to Create Mobile PDF Viewer; C#.NET Mobile PDF
Copy package file "Web.config" content to public float DocWidth = 819; protected void Page_Load Demo_Docs/").Replace("\\" Sample.pdf"; this.SessionId
change password on pdf; add password to pdf file
C# Image: How to Integrate Web Document and Image Viewer
RasterEdgeImagingDeveloperGuide8.0.pdf: from this user manual, you First, copy the following lines of C# code mode; public string fid; protected void Page_Load
password pdf; convert password protected pdf to normal pdf online
hyperSpec object can be provided either as a character vector or as a wildcard expression (e.g.
”path/to/files/*.spc”).
The data for the following example was saved with wavelength axis being camera pixels rather than
Raman shift. Thus two files for each spectrum were saved by Hologram. Thus, a file name pattern
is difficult to give and a vector of file names is used instead:
> files <- Sys.glob ("spc.Kaisermap/*.spc")
> spc.low <- read.spc.KaiserMap (files [seq (1, length (files), by = 2)])
> spc.high <- read.spc.KaiserMap (files [seq (2, length (files), by = 2)])
> wl (spc.high) <- wl (spc.high) + 1340
> spc
hyperSpec object
1 spectra
1 data columns
2110 data points / spectrum
wavelength: [numeric] 121.5 122.4 ... 2019.6
data: (1 rows x 1 columns)
1. spc: [matrix2110] 1202.51 770.35 ... 141.01
6.6. Renishaw Raman
Renishaw’s Wire software comes with an file format converter. This program can produce a long
ASCII format, .spc, or .jdx files.
We experienced that the conversion to .spc is not fully reliable: maps were saved as depth profile,
loosing all spatial information. In addition, an evenly spaced wavelength axis was produced, although
this was de-selected in the converter. We therefore recommend using the ASCII format. Otherwise
the import using read.spc worked.
6.6.1. Renishaw ASCII data
An optimized import function for the ASCII files is available: scan.txt.Renishaw. The file may
be compressed via gzip, bzip2, xz or lzma. zip compressed files are read via scan.zip.Renishaw.
The ASCII files can easily become very large, particularly with linefocus- or streamline imaging.
scan.txt.Renishaw provides two mechanisms to avoid running out of memory during data im-
port. The file may be imported in chunks of a given number of lines (see the last example).
scan.txt.Renishaw can calculate the correct number of wavelengths (i.e. data points per spec-
trum) if the system command wc is available on your computer.
In addition, the processing of the long ASCII format into the spectra matrix is done by reshap-
ing the vector of intensities into a matrix. This process does not allow any missing values in the
data. Therefore it is not possible to import multi-spectra files with individually “zapped”spectra using
scan.txt.Renishaw.
The second argument to scan.txt.Renishaw decides what type of experiment is imported. Sup-
ported types are:
"xyspc"
maps, images, multiple spectra with
x
and
y
coordinates (default)
"spc"
single spectrum
"depth", "zspc" depth series
"ts"
time series
Instead of a file name, scan.txt.Renishaw accepts also a connection.
16
> paracetamol <- scan.txt.Renishaw ("txt.Renishaw/paracetamol.txt", "spc")
> paracetamol
hyperSpec object
1 spectra
1 data columns
4064 data points / spectrum
wavelength: Delta * tilde(nu)/cm^-1 [numeric] 96.787 98.143 ... 3200.1
data: (1 rows x 1 columns)
1. spc: I / a.u. [matrix4064] 2056.5 2224.8 ... 299.23
> save (paracetamol, file = "paracetamol.rda")
> scan.txt.Renishaw ("txt.Renishaw/laser.txt.gz", "ts")
hyperSpec object
84 spectra
2 data columns
140 data points / spectrum
wavelength: Delta * tilde(nu)/cm^-1 [numeric] -199.08 -196.90 ... 99.934
data: (84 rows x 2 columns)
1. t: t / s [numeric] 0 2 ... 5722
2. spc: I / a.u. [matrix140] 29.801 32.093 ... 81.3
Very large files can be read in chunks to save memory:
> scan.txt.Renishaw ("txt.Renishaw/chondro.txt", nlines = 1e5, nspc = 875)
............
hyperSpec object
875 spectra
3 data columns
1272 data points / spectrum
wavelength: Delta * tilde(nu)/cm^-1 [numeric] 601.62 602.66 ... 1802.2
data: (875 rows x 3 columns)
1. y: y/(mu * m) [numeric] -4.77 -4.77 ... 19.23
2. x: x/(mu * m) [numeric] -11.55 -10.55 ... 22.45
3. spc: I / a.u. [matrix1272] 501.72 518.53 ... 151.92 + NA
Raccepts a variety of compressed file formats for ASCII files:
> scan.txt.Renishaw ("txt.Renishaw/chondro.gz")
> scan.txt.Renishaw ("txt.Renishaw/chondro.xz")
> scan.txt.Renishaw ("txt.Renishaw/chondro.lzma")
> scan.txt.Renishaw ("txt.Renishaw/chondro.gz")
> scan.txt.Renishaw ("txt.Renishaw/chondro.bz2")
> scan.zip.Renishaw ("txt.Renishaw/chondro.zip")
6.7. Horiba / Jobin Yvon (e.g. LabRAM)
Horiba’s Labspec software (e.g. LabRAM spectrometers) saves spectra in a wide ASCII format
which is read by read.txt.Horiba, e.g.:
> spc <- read.txt.Horiba ("txt.HoribaJobinYvon/ts.txt",
+
cols = list (t = "t / s", spc = "I / a.u.",
+
.wavelength = expression (Delta * tilde (nu) / cm^-1))
+
)
> spc
hyperSpec object
100 spectra
2 data columns
1024 data points / spectrum
wavelength: Delta * tilde(nu)/cm^-1 [numeric] 2135.2 2133.3 ... -122.41
17
data: (100 rows x 2 columns)
1. t: t / s [numeric] 0.000 5.834 ... 566.77
2. spc: I / a.u. [matrix1024] 6244 6278 ... 117
Note that Labspec .txt files can contains lots of spectra with zero intensity: Labspec saves a com-
plete rectangular grid even if only part of a map was measured. These spectra are by removed
(remove.zerospc = TRUE).
For convenience, functions to further wrappers to import maps (read.txt.Horiba.xy) and time
series (read.txt.Horiba.t) are provided.
6.8. Witec
The Witec project software supports exporting spectra as Thermo Galactic .spc files.
> read.spc ("spc/Witec-timeseries.spc")
hyperSpec object
25 spectra
3 data columns
1024 data points / spectrum
wavelength: Delta * tilde(nu)/cm^-1 [numeric] 579.89 582.97 ... 3153.3
data: (25 rows x 3 columns)
1. z: T/(degree * C) [numeric] 0 0 ... 0
2. z.end: T/(degree * C) [numeric] 5.7509e-42 5.7509e-42 ... 5.7509e-42
3. spc: I/"a. u." [matrix1024] 1004 1008 ... 1006
.spc is in general the recommended format for hyperSpec import, but this export option is not
supported for imaging data.
Imaging data can be exported as ASCII X and Y files (Save ASCII X and Save ASCII Y). These
can be read by scan.dat.Witec:
> scan.dat.Witec (filex = "txt.Witec/WitecExample-x.dat", points.per.line = 10, lines.per.image = 10)
hyperSpec object
100 spectra
4 data columns
1024 data points / spectrum
wavelength: [numeric] 106.39 110.76 ... 3377.2
data: (100 rows x 4 columns)
1. spc: [matrix1024] 1494 1486 ... 952
2. x: [integer] 1 2 ... 10
3. y: [integer] -1 -1 ... -10
4. filename: filename [character] txt.Witec/WitecExample-y.dat txt.Witec/WitecExample-y.dat ... txt.Witec/WitecExample-y.
Note that the Y data files also contain a wavelength information, but (at least Witec Project 2.10)
this information is always wavelength in nm, not Raman shift in wavenumbers: this is provided by
the X data file only.
Another option is Witec’s txt table ASCII export (Export
Table), which produces ASCII files
with each row corresponding to one wavelength. Such files can be read with scan.txt.Witec:
> scan.dat.Witec ("txt.Witec/Witec.txt")
hyperSpec object
1 spectra
2 data columns
51200 data points / spectrum
wavelength: [numeric] 529.14 603.00 ... 1702
data: (1 rows x 2 columns)
1. spc: [matrix51200] 529.14 603.00 ... 1702
2. filename: filename [character] txt.Witec/Witec.txt
scan.txt.Witec assumes 1024 wavelengths, but other values may be given as parameter nwl. NULL
indicates that the number of wavelengths should be determined automaticallly.
18
7. Writing your own Import Function
This section gives examples how to write import functions. The first example implements an import
filter for an ASCII file format basically from scratch. The second example shows how to implement
more details for an already existing import filter.
7.1. A new ASCII Import Function: scan.txt.PerkinElmer
The raw spectra of the flu data set (see also the respective vignette) are in PerkinElmer’s ASCII
file format, one spectrum per file.
We need a function that automatically reads all files specified by a pattern, such as *.txt. In order
to gain speed, the spectra matrix should be preallocated after the first file is read.
Ashort examination of the files (flu*.txt in directory txt.PerkinElmer) reveals that the actual
spectrum starts at line 55, after a line containing #DATA. For now, no other information of the files
is to be extracted. It is thus easier to skip the first 54 lines than searching for the line after #DATA.
Afully featured import function should support:
Reading multiple files by giving a pattern
hand further arguments to scan. This comes handy in case the function is used later to import
other data types.
Also skipping 54 lines would be a weird default, so we rather require it to be given explicitly.
The same applies for the axis labels: they should default to reasonable settings for fluorescence
spectra, but it should be possible to change them if needed.
The usual log entry arguments should be supplied.
A sanity check should be implemented: stop with an error if a file does not have the same
wavelength axis as the others.
Finally, if no file can be found, an empty hyperSpec object is a reasonable result: There is no
need to stop with an error, but it is polite to issue an additional warning.
scan.txt.PerkinElmer.R
scan.txt.PerkinElmer <- function (files = "*.txt", ..., label = list ()) {
## set some defaults
long <- list (files = files, ..., label = label)
label <- modifyList (list (.wavelength = expression (lambda / nm),
spc = expression (I[fl] / "a.u.")),
label)
## find the files
files <- Sys.glob (files)
if (length (files) == 0){
warning ("No files found.")
return (new ("hyperSpec"))
}
## read the first file
buffer <- matrix (scan (files [1], ...), ncol = 2, byrow = TRUE)
## first column gives the wavelength vector
wavelength <- buffer [, 1]
## preallocate the spectra matrix:
19
## one row per file x as many columns as the first file has
spc <- matrix (ncol = nrow (buffer), nrow = length (files))
## the first file
s data goes into the first row
spc [1, ] <- buffer [, 2]
## now read the remaining files
for (f in seq (along = files)[-1]) {
buffer <- matrix (scan (files [f], ...), ncol = 2, byrow = TRUE)
## check whether they have the same wavelength axis
if (! all.equal (buffer [, 1], wavelength))
stop (paste(files [f], "has different wavelength axis."))
spc [f, ] <- buffer[, 2]
}
## make the hyperSpec object
new ("hyperSpec", wavelength = wavelength, spc = spc,
data = data.frame (file = files), label = label)
}
Note how the labels are set. The label with the special name .wavelength corresponds to the
wavelength axis, all data columns should have a label with the same name. The spectra are always
in a data column called spc.
Thus,
> source ("scan.txt.PerkinElmer.R")
> scan.txt.PerkinElmer ("txt.PerkinElmer/flu?.txt", skip = 54)
hyperSpec object
6 spectra
2 data columns
181 data points / spectrum
wavelength: lambda/nm [numeric] 405.0 405.5 ... 495
data: (6 rows x 2 columns)
1. file: [factor] txt.PerkinElmer/flu1.txt txt.PerkinElmer/flu2.txt ... txt.PerkinElmer/flu6.txt
2. spc: I[fl]/"a.u." [matrix181] 27.150 66.801 ... 294.65
imports the spectra.
This function is not exported by hyperSpec. While it is already useful for importing files, it is not
yet general enough to work immediately with new data: the the file header is completely ignored.
Thus information like the excitation wavelength is lost.
7.2. Deriving a More Specific Function: read.ENVI.Nicolet
The function read.ENVI.Nicolet is a good example for a more specific import filter derived from a
general filter for the respective file type. Nicolet FT-IR Imaging software saves some non-standard
keywords in the header file of the ENVI data. These information can be used to reconstruct the
x
and
y
axes of the images. The units of the spectra are saved as well.
read.ENVI.Nicolet thus first adjusts the parameters for read.ENVI. Then read.ENVI does the main
work of importing the file. The resulting hyperSpec object is post-processed according to the special
header entries.
For using the function, see section6.3 (p.14).
20
Documents you may be interested
Documents you may be interested