radiation 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +7 -2
- data/bin/radiation +11 -0
- data/lib/radiation/cli.rb +38 -0
- data/lib/radiation/source/resource.rb +3 -1
- data/lib/radiation/source.rb +3 -1
- data/lib/radiation/spectrum.rb +4 -3
- data/lib/radiation/version.rb +1 -1
- data/radiation.gemspec +1 -0
- data/spec/radiation_spec.rb +2 -2
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjYxM2U4YjVkYWQxNzM2YTM0MjBiNWQwYTMzNDAwYzU5MTdhYzNkNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjE0ZTlkNGM1OTg4ZjU5YjVlZWFhZGM5NTBlODcyMjA4OTYwMTBiMA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjdjZTVkYmUwZDljOGM0MWVjYjEyMzBiYzVmZjc1YjE1ZTYxYzQ0OGUzNjhl
|
10
|
+
Yjc4OWZjOWI2NmM1OGY2NjZmYzg2YTlhNzdjYzFjMjllMzVhZjJjMGFmNmNl
|
11
|
+
OGZjMDZmM2FkZmM3Njg0MjJhOWZiOWJhYTk4ZTdiYzk4N2U4MjE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTk2ZTFhY2E0ZWVkZGExYzUxN2U4MTc5NWQ2MjAyMGY0ZGEyNTQ5NTA0ZDEy
|
14
|
+
MjkwMzk5ZDdkMWYzNjM4NDZjNzU2NzFmN2YxYzE1NzVjOTI4ZTIyMGQ3YTkw
|
15
|
+
MWM4MzkxNzgyYjY4ODliYzc2ZDQ1M2M2NGUyYTY2MTU0NGFjYWI=
|
data/README.md
CHANGED
@@ -9,15 +9,20 @@ by [Laboratoire National Henri Becquerel](http://www.nucleide.org/DDEP_WG/DDEPda
|
|
9
9
|
|
10
10
|
## Example Usage
|
11
11
|
|
12
|
+
### Command line interface
|
13
|
+
|
14
|
+
$> radiation
|
15
|
+
|
16
|
+
### In your ruby files:
|
17
|
+
|
18
|
+
require "radiation"
|
12
19
|
Radiation::Source.new(nuclide: "Ra-226").energies.collect{|e| e.value}
|
13
20
|
|
14
21
|
See also files in `./samples/`.
|
15
22
|
|
16
|
-
|
17
23
|
## Planned features
|
18
24
|
|
19
25
|
* Efficiency calibration for given peaks or spectra
|
20
|
-
* CLI
|
21
26
|
* Better access to resources
|
22
27
|
|
23
28
|
|
data/bin/radiation
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Trap interrupts to quit cleanly. See
|
4
|
+
# https://twitter.com/mitchellh/status/283014103189053442
|
5
|
+
Signal.trap("INT") { exit 1 }
|
6
|
+
|
7
|
+
require 'radiation/cli'
|
8
|
+
# Set debug flag so we can rescue Thor::error's
|
9
|
+
# and set the correct exit code.
|
10
|
+
ENV["THOR_DEBUG"] = "1"
|
11
|
+
Radiation::CLI.start(ARGV)
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "radiation"
|
3
|
+
require "thor"
|
4
|
+
|
5
|
+
module Radiation
|
6
|
+
class CLI < Thor
|
7
|
+
|
8
|
+
desc "version", "Prints version information"
|
9
|
+
def version
|
10
|
+
puts "radiation version #{Radiation::VERSION}"
|
11
|
+
end
|
12
|
+
map %w(-v --version) => :version
|
13
|
+
|
14
|
+
option :resource
|
15
|
+
desc "source NUCLIDE", "decay radiation data"
|
16
|
+
def source(nuclide)
|
17
|
+
resource = options[:resource] ? options[:resource] : "internal"
|
18
|
+
puts ["E_ɣ", "ΔE_ɣ", "I_ɣ", "ΔI_ɣ"].join("\t")
|
19
|
+
puts Radiation::Source.new(nuclide: nuclide, resource: resource).intensities.collect{|l| [l[:energy].value, l[:energy].delta, l[:intensity].value, l[:intensity].delta].join("\t") }
|
20
|
+
end
|
21
|
+
|
22
|
+
option :resource
|
23
|
+
desc "calibrate NUCLIDE SPECTRUM.xml", "calibrate a spectrum"
|
24
|
+
long_desc <<-LONGDESC
|
25
|
+
Calibrates a decay radiation spectrum that has been analysed with HDTV. Stored peak fits in HDTV can be stored with hdtv>fit write filname.xml
|
26
|
+
Example: \n
|
27
|
+
$>radiation calibrate Ra-226 Ge00.xml
|
28
|
+
With --resource=nucleide.org more decay radiation sources are available.
|
29
|
+
LONGDESC
|
30
|
+
def calibrate(nuclide, file)
|
31
|
+
resource = options[:resource] ? options[:resource] : "internal"
|
32
|
+
source = Radiation::Source.new(nuclide: nuclide, resource: resource)
|
33
|
+
spectrum = Radiation::Spectrum.new(source: source ).parse_hdtv(file)
|
34
|
+
spectrum.calibrate.calibration.each{|c| puts c}
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
@@ -2,7 +2,8 @@
|
|
2
2
|
require 'radiation/source/resource/internal'
|
3
3
|
require 'radiation/source/resource/nucleideorg'
|
4
4
|
|
5
|
-
|
5
|
+
module Radiation
|
6
|
+
class Source
|
6
7
|
class Resource
|
7
8
|
|
8
9
|
def initialize(resource)
|
@@ -21,3 +22,4 @@ class Radiation::Source
|
|
21
22
|
|
22
23
|
end
|
23
24
|
end
|
25
|
+
end
|
data/lib/radiation/source.rb
CHANGED
@@ -3,7 +3,8 @@ require 'radiation/source/resource'
|
|
3
3
|
require 'combinatorics'
|
4
4
|
|
5
5
|
|
6
|
-
|
6
|
+
module Radiation
|
7
|
+
class Source
|
7
8
|
attr_reader :data
|
8
9
|
|
9
10
|
def initialize(options={})
|
@@ -32,4 +33,5 @@ class Radiation::Source
|
|
32
33
|
!!(nuclide =~ /\A[a-zA-Z]{1,2}-\d{1,3}\z/)
|
33
34
|
end
|
34
35
|
|
36
|
+
end
|
35
37
|
end
|
data/lib/radiation/spectrum.rb
CHANGED
@@ -3,7 +3,8 @@ require "linefit"
|
|
3
3
|
require "plusminus"
|
4
4
|
require "xmlsimple"
|
5
5
|
|
6
|
-
|
6
|
+
module Radiation
|
7
|
+
class Spectrum
|
7
8
|
attr_accessor :peaks, :source, :calibration
|
8
9
|
|
9
10
|
def initialize(options={})
|
@@ -46,7 +47,7 @@ class Radiation::Spectrum
|
|
46
47
|
return self
|
47
48
|
end
|
48
49
|
|
49
|
-
def guess_calibration(energies=@source.energies, rounding=
|
50
|
+
def guess_calibration(energies=@source.energies, rounding=4)
|
50
51
|
# Build all possible combinations of known energies and peaks
|
51
52
|
arr = [energies, @peaks.collect{|peak| peak[:channel]}].comprehension
|
52
53
|
# The approximate value for b in $Energy = a + b * Channel$ will be most frequent for $a \approx 0$
|
@@ -69,7 +70,7 @@ class Radiation::Spectrum
|
|
69
70
|
end
|
70
71
|
|
71
72
|
end
|
72
|
-
|
73
|
+
end
|
73
74
|
|
74
75
|
|
75
76
|
class Float
|
data/lib/radiation/version.rb
CHANGED
data/radiation.gemspec
CHANGED
data/spec/radiation_spec.rb
CHANGED
@@ -49,7 +49,7 @@ describe Radiation do
|
|
49
49
|
source = Radiation::Source.new(nuclide: "Ra-226")
|
50
50
|
|
51
51
|
it "can guess a inital energy calibration based on adc values" do
|
52
|
-
Radiation::Spectrum.new(peaks: peaks, source: source).guess_calibration.calibration.should be == [0, 0.
|
52
|
+
Radiation::Spectrum.new(peaks: peaks, source: source).guess_calibration.calibration.should be == [0, 0.3597]
|
53
53
|
end
|
54
54
|
|
55
55
|
it "can match channels to given energies by using a calibration" do
|
@@ -63,7 +63,7 @@ describe Radiation do
|
|
63
63
|
|
64
64
|
it "can read peaks from hdtv xml data" do
|
65
65
|
expect { Radiation::Spectrum.new(source: source ).parse_hdtv("./samples/B0-Ra226.xml") }.to_not raise_error
|
66
|
-
Radiation::Spectrum.new(source: source ).parse_hdtv("./samples/B0-Ra226.xml").calibrate.calibration.should be ==
|
66
|
+
Radiation::Spectrum.new(source: source ).parse_hdtv("./samples/B0-Ra226.xml").calibrate.calibration[1].round(3).should be == 0.100
|
67
67
|
end
|
68
68
|
|
69
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radiation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plusminus
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ! '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: thor
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -125,7 +139,8 @@ dependencies:
|
|
125
139
|
description: Decay Radiation
|
126
140
|
email:
|
127
141
|
- jan.mayer@ikp.uni-koeln.de
|
128
|
-
executables:
|
142
|
+
executables:
|
143
|
+
- radiation
|
129
144
|
extensions: []
|
130
145
|
extra_rdoc_files: []
|
131
146
|
files:
|
@@ -137,11 +152,13 @@ files:
|
|
137
152
|
- LICENSE.txt
|
138
153
|
- README.md
|
139
154
|
- Rakefile
|
155
|
+
- bin/radiation
|
140
156
|
- data/Eu-152.bib
|
141
157
|
- data/Eu-152.csv
|
142
158
|
- data/Ra-226.bib
|
143
159
|
- data/Ra-226.csv
|
144
160
|
- lib/radiation.rb
|
161
|
+
- lib/radiation/cli.rb
|
145
162
|
- lib/radiation/source.rb
|
146
163
|
- lib/radiation/source/resource.rb
|
147
164
|
- lib/radiation/source/resource/internal.rb
|