Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
GEPARD
GEPARD
Commits
1748c624
Commit
1748c624
authored
Dec 06, 2019
by
JosefBrandt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added batching of spectra for TrueMatch when using AdvancedWITec
parent
79594c9c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
25 deletions
+44
-25
ramancom/WITecCOM.py
ramancom/WITecCOM.py
+2
-0
ramancom/advancedWITec.py
ramancom/advancedWITec.py
+42
-25
No files found.
ramancom/WITecCOM.py
View file @
1748c624
...
...
@@ -205,6 +205,7 @@ class WITecCOM(RamanBase):
self
.
advSpec
=
AdvancedWITecSpectra
()
if
'Autofocus'
not
in
[
param
.
name
for
param
in
self
.
ramanParameters
]:
self
.
ramanParameters
.
append
(
RamanSettingParam
(
'Autofocus'
,
'checkBox'
,
default
=
False
))
self
.
ramanParameters
.
append
(
RamanSettingParam
(
'Spectra Batch Size'
,
'int'
,
default
=
1000
,
minVal
=
1
,
maxVal
=
1e6
))
def
getBrightness
(
self
):
assert
self
.
connected
...
...
@@ -381,6 +382,7 @@ class WITecCOM(RamanBase):
def
initateSilentSpectrumAcquisition
(
self
,
ramanSettings
):
self
.
advSpec
.
setDatasetPath
(
ramanSettings
[
'path'
])
self
.
advSpec
.
setSpectraBatchSize
(
ramanSettings
[
'Spectra Batch Size'
])
self
.
doAutoFocus
=
ramanSettings
[
'Autofocus'
]
...
...
ramancom/advancedWITec.py
View file @
1748c624
...
...
@@ -32,9 +32,13 @@ class AdvancedWITecSpectra(object):
self
.
tmpspecpath
=
None
self
.
curSpecIndex
=
None
self
.
excitWavel
=
None
self
.
spectraBatchSize
=
None
def
setDatasetPath
(
self
,
path
):
self
.
dsetpath
=
path
def
setSpectraBatchSize
(
self
,
batchSize
):
self
.
spectraBatchSize
=
batchSize
def
createTmpSpecFolder
(
self
):
assert
self
.
dsetpath
is
not
None
...
...
@@ -152,39 +156,52 @@ class AdvancedWITecSpectra(object):
return
allSpectra
def
createTrueMatchTxt
(
self
,
allSpectra
,
wavelength
):
wavenumbers
=
allSpectra
[:,
0
]
spectra
=
allSpectra
[:,
1
:]
specSize
=
allSpectra
.
shape
[
0
]
del
allSpectra
outName
=
os
.
path
.
join
(
self
.
dsetpath
,
'SpectraForTrueMatch.txt'
)
if
os
.
path
.
exists
(
outName
):
os
.
remove
(
outName
)
with
open
(
outName
,
'w'
)
as
fp
:
def
writeHeader
(
fp
):
fp
.
write
(
'[WITEC_TRUEMATCH_ASCII_HEADER]
\n\r
'
)
fp
.
write
(
'Version = 2.0
\n\r\n\r
'
)
def
writeWavenumbers
(
fp
,
wavenumbers
):
fp
.
write
(
'[XData]
\n\r
'
)
for
line
in
wavenumbers
:
fp
.
write
(
str
(
line
)
+
'
\n\r
'
)
for
specIndex
in
range
(
spectra
.
shape
[
1
]):
fp
.
write
(
'
\n\r
'
)
fp
.
write
(
'[SpectrumHeader]
\n\r
'
)
fp
.
write
(
f
'Title = Spectrum
{
specIndex
}
\n\r
'
)
fp
.
write
(
f
'ExcitationWavelength =
{
wavelength
}
\n\r
'
)
fp
.
write
(
f
'SpectrumSize =
{
specSize
}
\n\r
'
)
fp
.
write
(
'XDataKind = 1/cm
\n\r\n\r
'
)
fp
.
write
(
'[SampleMetaData]
\n\r
'
)
# fp.write(f'double Integration_Time = )
fp
.
write
(
f
'int Spectrum_Number =
{
specIndex
}
\n\r\n\r
'
)
fp
.
write
(
'[SpectrumData]
\n\r
'
)
spec
=
spectra
[:,
specIndex
]
for
line
in
spec
:
def
writeSpectrum
(
fp
,
intensities
):
fp
.
write
(
'
\n\r
'
)
fp
.
write
(
'[SpectrumHeader]
\n\r
'
)
fp
.
write
(
f
'Title = Spectrum
{
specIndex
}
\n\r
'
)
fp
.
write
(
f
'ExcitationWavelength =
{
wavelength
}
\n\r
'
)
fp
.
write
(
f
'SpectrumSize =
{
specSize
}
\n\r
'
)
fp
.
write
(
'XDataKind = 1/cm
\n\r\n\r
'
)
fp
.
write
(
'[SampleMetaData]
\n\r
'
)
fp
.
write
(
f
'int Spectrum_Number =
{
specIndex
}
\n\r\n\r
'
)
fp
.
write
(
'[SpectrumData]
\n\r
'
)
for
line
in
intensities
:
fp
.
write
(
str
(
line
)
+
'
\n\r
'
)
wavenumbers
=
allSpectra
[:,
0
]
spectra
=
allSpectra
[:,
1
:]
specSize
=
allSpectra
.
shape
[
0
]
del
allSpectra
numSpectra
=
spectra
.
shape
[
1
]
numBatches
=
np
.
ceil
(
numSpectra
/
self
.
spectraBatchSize
)
for
batchIndex
in
range
(
numBatches
):
outName
=
os
.
path
.
join
(
self
.
dsetpath
,
f
'SpectraForTrueMatch
{
batchIndex
}
.txt'
)
if
os
.
path
.
exists
(
outName
):
os
.
remove
(
outName
)
if
batchIndex
<
numBatches
-
1
:
specIndicesInBatch
=
np
.
arange
(
batchIndex
*
self
.
spectraBatchSize
,
(
batchIndex
+
1
)
*
self
.
spectraBatchSize
)
else
:
specIndicesInBatch
=
np
.
arange
(
batchIndex
*
self
.
spectraBatchSize
,
numSpectra
)
with
open
(
outName
,
'w'
)
as
fp
:
writeHeader
(
fp
)
writeWavenumbers
(
fp
,
wavenumbers
)
for
specIndex
in
specIndicesInBatch
:
spec
=
spectra
[:,
specIndex
]
writeSpectrum
(
fp
,
spec
)
def
isNumber
(
self
,
string
):
isNumber
=
False
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment