radiation 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17f29855b4ccd0f96cddf10bcb0894f485590427
4
- data.tar.gz: 146cc71fdce525e11a2725adcc1f0486d3606817
3
+ metadata.gz: b5bfb4c9fc90f1e6af82e9453053767b9483ade2
4
+ data.tar.gz: afb5250753754a77fe44e655c9026c663f7b0b51
5
5
  SHA512:
6
- metadata.gz: 3f153422a4b736cb1115bbc349c86cc241670182da9a5d144d794491a8d1d39cb2a76e25d36229855ea8852b48fc2328913a25137c94eec3248db217591571b0
7
- data.tar.gz: 46950dbba8bb8e84c3f42b09715898a4045a176fec1f708548659215b2cb9ced2a5a46094702c5221768aed92ef33300d6f222e8f751d8e1deb0ad91873a9537
6
+ metadata.gz: e95bb41b2be01ff2539dc2ea16310c3a789cf5b5d55ee790da0e13bccf58ff0fece8f1a8ea5e3d1061f8787708bb0341a4d97e8c7710f29eccf4bfe36b11686b
7
+ data.tar.gz: 215a30b97034057ae3b2f56a97742cf7718f313d8f0de2ea9fb65111abbd8fbda55db9cf5f14475fcef53315d248283c00897d6203952c88e2aa9d2c1f6777e4
@@ -2482,11 +2482,155 @@
2482
2482
  "description": null,
2483
2483
  "absolute_intensities": 1,
2484
2484
  "transitions": [
2485
+ {
2486
+ "energy": 53.2275,
2487
+ "energy_uncertainty": 0.0021,
2488
+ "intensity": 0.01066,
2489
+ "intensity_uncertainty": 0.00014
2490
+ },
2485
2491
  {
2486
2492
  "energy": 186.211,
2487
2493
  "energy_uncertainty": 0.013,
2488
2494
  "intensity": 0.03533,
2489
2495
  "intensity_uncertainty": 0.00028
2496
+ },
2497
+ {
2498
+ "energy": 241.997,
2499
+ "energy_uncertainty": 0.003,
2500
+ "intensity": 0.0719,
2501
+ "intensity_uncertainty": 0.0006
2502
+ },
2503
+ {
2504
+ "energy": 295.224,
2505
+ "energy_uncertainty": 0.002,
2506
+ "intensity": 0.1828,
2507
+ "intensity_uncertainty": 0.0014
2508
+ },
2509
+ {
2510
+ "energy": 351.932,
2511
+ "energy_uncertainty": 0.002,
2512
+ "intensity": 0.3534,
2513
+ "intensity_uncertainty": 0.0027
2514
+ },
2515
+ {
2516
+ "energy": 609.316,
2517
+ "energy_uncertainty": 0.003,
2518
+ "intensity": 0.4516,
2519
+ "intensity_uncertainty": 0.0033
2520
+ },
2521
+ {
2522
+ "energy": 665.453,
2523
+ "energy_uncertainty": 0.022,
2524
+ "intensity": 0.01521,
2525
+ "intensity_uncertainty": 0.00011
2526
+ },
2527
+ {
2528
+ "energy": 768.367,
2529
+ "energy_uncertainty": 0.011,
2530
+ "intensity": 0.0485,
2531
+ "intensity_uncertainty": 0.00038
2532
+ },
2533
+ {
2534
+ "energy": 806.185,
2535
+ "energy_uncertainty": 0.011,
2536
+ "intensity": 0.01255,
2537
+ "intensity_uncertainty": 0.00011
2538
+ },
2539
+ {
2540
+ "energy": 934.061,
2541
+ "energy_uncertainty": 0.012,
2542
+ "intensity": 0.03074,
2543
+ "intensity_uncertainty": 0.00025
2544
+ },
2545
+ {
2546
+ "energy": 1120.287,
2547
+ "energy_uncertainty": 0.01,
2548
+ "intensity": 0.1478,
2549
+ "intensity_uncertainty": 0.0011
2550
+ },
2551
+ {
2552
+ "energy": 1155.19,
2553
+ "energy_uncertainty": 0.02,
2554
+ "intensity": 0.01624,
2555
+ "intensity_uncertainty": 0.00014
2556
+ },
2557
+ {
2558
+ "energy": 1238.11,
2559
+ "energy_uncertainty": 0.012,
2560
+ "intensity": 0.05785,
2561
+ "intensity_uncertainty": 0.00045
2562
+ },
2563
+ {
2564
+ "energy": 1280.96,
2565
+ "energy_uncertainty": 0.02,
2566
+ "intensity": 0.01425,
2567
+ "intensity_uncertainty": 0.00012
2568
+ },
2569
+ {
2570
+ "energy": 1377.669,
2571
+ "energy_uncertainty": 0.012,
2572
+ "intensity": 0.03954,
2573
+ "intensity_uncertainty": 0.00033
2574
+ },
2575
+ {
2576
+ "energy": 1401.516,
2577
+ "energy_uncertainty": 0.014,
2578
+ "intensity": 0.01324,
2579
+ "intensity_uncertainty": 0.00011
2580
+ },
2581
+ {
2582
+ "energy": 1407.993,
2583
+ "energy_uncertainty": 0.007,
2584
+ "intensity": 0.02369,
2585
+ "intensity_uncertainty": 0.00019
2586
+ },
2587
+ {
2588
+ "energy": 1509.217,
2589
+ "energy_uncertainty": 0.008,
2590
+ "intensity": 0.02108,
2591
+ "intensity_uncertainty": 0.00021
2592
+ },
2593
+ {
2594
+ "energy": 1661.316,
2595
+ "energy_uncertainty": 0.013,
2596
+ "intensity": 0.01037,
2597
+ "intensity_uncertainty": 0.0001
2598
+ },
2599
+ {
2600
+ "energy": 1729.64,
2601
+ "energy_uncertainty": 0.012,
2602
+ "intensity": 0.02817,
2603
+ "intensity_uncertainty": 0.00023
2604
+ },
2605
+ {
2606
+ "energy": 1764.539,
2607
+ "energy_uncertainty": 0.015,
2608
+ "intensity": 0.1517,
2609
+ "intensity_uncertainty": 0.0012
2610
+ },
2611
+ {
2612
+ "energy": 1847.42,
2613
+ "energy_uncertainty": 0.025,
2614
+ "intensity": 0.02,
2615
+ "intensity_uncertainty": 0.00018
2616
+ },
2617
+ {
2618
+ "energy": 2118.536,
2619
+ "energy_uncertainty": 0.008,
2620
+ "intensity": 0.01148,
2621
+ "intensity_uncertainty": 0.00011
2622
+ },
2623
+ {
2624
+ "energy": 2204.071,
2625
+ "energy_uncertainty": 0.021,
2626
+ "intensity": 0.0489,
2627
+ "intensity_uncertainty": 0.001
2628
+ },
2629
+ {
2630
+ "energy": 2447.673,
2631
+ "energy_uncertainty": 0.01,
2632
+ "intensity": 0.01536,
2633
+ "intensity_uncertainty": 0.00015
2490
2634
  }
2491
2635
  ]
2492
2636
  },
data/lib/radiation.rb CHANGED
@@ -2,7 +2,6 @@ require "radiation/version"
2
2
  require "radiation/source"
3
3
  require "radiation/spectrum"
4
4
  require "radiation/resource"
5
- require 'radiation/resource/internal'
6
5
  require 'radiation/resource/nucleideorg'
7
6
  require 'radiation/resource/iaea'
8
7
 
data/lib/radiation/cli.rb CHANGED
@@ -14,7 +14,7 @@ class CLI < Thor
14
14
  option :resource
15
15
  desc "source NUCLIDE", "decay radiation data"
16
16
  def source(nuclide)
17
- resource = options[:resource] ? options[:resource] : "internal"
17
+ resource = options[:resource] ? options[:resource] : "iaea"
18
18
  puts ["E_ɣ", "ΔE_ɣ", "I_ɣ", "ΔI_ɣ"].join("\t")
19
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
20
  end
@@ -33,7 +33,7 @@ class CLI < Thor
33
33
  With --resource=nucleide.org more decay radiation sources are available.
34
34
  LONGDESC
35
35
  def calibrate(nuclide, file)
36
- resource = options[:resource] ? options[:resource] : "internal"
36
+ resource = options[:resource] ? options[:resource] : "iaea"
37
37
  source = Radiation::Source.new(nuclide: nuclide, resource: resource)
38
38
  spectrum = Radiation::Spectrum.new(source: source ).parse_hdtv(file)
39
39
  spectrum.calibrate.calibration.each{|c| puts c}
@@ -50,7 +50,7 @@ class CLI < Thor
50
50
  With --mini=value transitions with small intensities can be supressed (default 0.3)
51
51
  LONGDESC
52
52
  def efficiency(nuclide, file)
53
- resource = options[:resource] ? options[:resource] : "internal"
53
+ resource = options[:resource] ? options[:resource] : "iaea"
54
54
  mini = options[:mini] ? options[:mini].to_f : 0.003
55
55
  source = Radiation::Source.new(nuclide: nuclide, resource: resource)
56
56
  spectrum = Radiation::Spectrum.new(source: source ).parse_hdtv(file)
@@ -2,19 +2,18 @@
2
2
  module Radiation
3
3
  class Source
4
4
  attr_reader :resource, :nuclide, :halflife, :reference, :description, :transitions
5
-
5
+
6
6
  def initialize(options={})
7
- @resource = options.key?(:resource) ? options[:resource].to_s : "internal"
7
+ @resource = options.key?(:resource) ? options[:resource].to_s : "iaea"
8
8
  @nuclide = options[:nuclide].to_s if options.key?(:nuclide)
9
9
  fetch if @resource and @nuclide
10
10
  end
11
-
11
+
12
12
  def fetch(options={})
13
13
  @resource = options[:resource].to_s if options.key?(:resource)
14
14
  @nuclide = options[:nuclide].to_s if options.key?(:nuclide)
15
15
  raise "Nuclide: #{@nuclide} is not valid." unless is_nuclide?(@nuclide)
16
16
  data = case @resource
17
- when "internal" then Radiation::Resource::Internal.new.fetch(@nuclide).data
18
17
  when "iaea" then Radiation::Resource::IAEA.new.fetch(@nuclide).data
19
18
  when "nucleide.org" then Radiation::Resource::Nucleideorg.new.fetch(@nuclide).data
20
19
  else raise "Unknown Datasource"
@@ -24,33 +23,33 @@ module Radiation
24
23
  end
25
24
 
26
25
  def resources
27
- ["internal", "iaea", "nucleide.org"]
26
+ ["iaea", "nucleide.org"]
28
27
  end
29
-
28
+
30
29
  def read(options={})
31
30
  @resource = "external"
32
31
  build(options)
33
32
  return self
34
33
  end
35
-
34
+
36
35
  def energies
37
36
  self.transitions.collect{|line| line[:energy]}
38
37
  end
39
-
38
+
40
39
  def intensities
41
40
  self.transitions.select{|line| line[:intensity] > 0}.collect{|line| {:energy => line[:energy], :intensity => line[:intensity]} }
42
41
  end
43
-
42
+
44
43
  def is_nuclide?(nuclide)
45
44
  !!(nuclide =~ /\A[a-zA-Z]{1,2}-\d{1,3}\z/)
46
45
  end
47
-
46
+
48
47
  private
49
48
  def build(data)
50
49
  [:nuclide, :halflife, :reference, :description, :transitions].each do |key|
51
50
  instance_variable_set("@#{key}", data[key]) if data.key?(key)
52
51
  end
53
52
  end
54
-
53
+
55
54
  end
56
55
  end
@@ -1,3 +1,3 @@
1
1
  module Radiation
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -57,11 +57,11 @@ describe Radiation do
57
57
  source = Radiation::Source.new(nuclide: "Ra-226")
58
58
 
59
59
  it "can guess a inital energy calibration based on adc values" do
60
- Radiation::Spectrum.new(peaks: peaks, source: source).guess_calibration.calibration.should be == [0, 0.3597]
60
+ Radiation::Spectrum.new(peaks: peaks, source: source).guess_calibration.calibration.should be == [0, 0.3595]
61
61
  end
62
62
 
63
63
  it "can match channels to given energies by using a calibration" do
64
- Radiation::Spectrum.new(peaks: peaks, source: source ).guess_calibration.match_channels.peaks[0][:energy].should be == 186.2
64
+ Radiation::Spectrum.new(peaks: peaks, source: source ).guess_calibration.match_channels.peaks[0][:energy].should be_within(0.1).of(186.2)
65
65
  end
66
66
 
67
67
  it "can calibrate a spectrum" do
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.1.2
4
+ version: 0.1.3
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-08-07 00:00:00.000000000 Z
11
+ date: 2013-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plusminus
@@ -153,16 +153,11 @@ files:
153
153
  - README.md
154
154
  - Rakefile
155
155
  - bin/radiation
156
- - data/Eu-152.bib
157
- - data/Eu-152.csv
158
- - data/Ra-226.bib
159
- - data/Ra-226.csv
160
156
  - data/iaea-xgamma.json
161
157
  - lib/radiation.rb
162
158
  - lib/radiation/cli.rb
163
159
  - lib/radiation/resource.rb
164
160
  - lib/radiation/resource/iaea.rb
165
- - lib/radiation/resource/internal.rb
166
161
  - lib/radiation/resource/nucleideorg.rb
167
162
  - lib/radiation/source.rb
168
163
  - lib/radiation/spectrum.rb
data/data/Eu-152.bib DELETED
@@ -1,9 +0,0 @@
1
- @book{IAEATECDOC619,
2
- title = "X-ray and gamma-ray standards for detector calibration",
3
- journal = "IAEA TECDOC",
4
- volume = "619",
5
- year = "1991",
6
- issn = "1011-4289"
7
- url = "http://www-pub.iaea.org/books/iaeabooks/875/X-ray-and-Gamma-ray-Standards-for-Detector-Calibration",
8
- author = "A. Lorenz and H.D. Leram"
9
- }
data/data/Eu-152.csv DELETED
@@ -1,15 +0,0 @@
1
- 121.8;0.2837;0.0013
2
- 123.1;0.412;0.005
3
- 244.7;0.0753;0.0004
4
- 344.3;0.2657;0.0011
5
- 411.1;0.02238;0.0001
6
- 444.0;0.03125;0.00014
7
- 778.9;0.1297;0.0006
8
- 867.4;0.04214;0.00025
9
- 964.0;0.1463;0.0006
10
- 1085.9;0.1013;0.0005
11
- 1089.7;0.01731;0.00009
12
- 1112.1;0.1354;0.0006
13
- 1212.9;0.01412;0.00008
14
- 1299.1;0.01626;0.00011
15
- 1408.0;0.2085;0.0009
data/data/Ra-226.bib DELETED
@@ -1,13 +0,0 @@
1
- @article{Delgado2002137,
2
- title = "Measurements of photon emission probabilities from the decay of 226Ra and daughters ",
3
- journal = "Applied Radiation and Isotopes ",
4
- volume = "56",
5
- number = "1–2",
6
- pages = "137 - 143",
7
- year = "2002",
8
- note = "<ce:title>Proceedings of the Conference on Radionuclide Metrology and its A pplications, ICRM'01</ce:title> ",
9
- issn = "0969-8043",
10
- doi = "10.1016/S0969-8043(01)00179-8",
11
- url = "http://www.sciencedirect.com/science/article/pii/S0969804301001798",
12
- author = "José U Delgado and Jean Morel and Michel Etcheverry"
13
- }
data/data/Ra-226.csv DELETED
@@ -1,34 +0,0 @@
1
- 186.2;3.502;0.8
2
- 242.0;7.13;0.7
3
- 258.8;0.525;1.0
4
- 274.2;0.472;1.2
5
- 295.2;18.09;0.7
6
- 351.9;35.04;0.7
7
- 388.0;0.690;1.5
8
- 455.0;0.287;2.0
9
- 480.5;0.336;1.4
10
- 487.1;0.431;1.4
11
- 580.3;0.369;1.5
12
- 609.3;44.83;0.7
13
- 665.4;1.506;0.8
14
- 768.4;4.78;0.8
15
- 785.8;1.097;1.1
16
- 806.2;1.250;1.0
17
- 934.1;3.041;0.8
18
- 1120.3;14.66;0.7
19
- 1155.2;1.611;1.2
20
- 1238.1;5.75;0.8
21
- 1281.0;1.411;1.1
22
- 1377.7;3.895;0.8
23
- 1385.3;0.782;1.2
24
- 1401.5;1.311;0.9
25
- 1408.0;2.346;0.8
26
- 1509.2;2.065;1.5
27
- 1661.3;1.063;1.6
28
- 1729.6;2.791;0.8
29
- 1764.5;15.03;0.7
30
- 1847.4;1.994;1.0
31
- 2118.5;1.137;1.0
32
- 2204.1;4.82;0.8
33
- 2293.36;0.298;2.6
34
- 2447.7;1.525;0.9
@@ -1,26 +0,0 @@
1
- # encoding: utf-8
2
- require 'csv'
3
-
4
- module Radiation::Resource
5
- class Internal < Base
6
- # FIXME: Better path creation
7
- PATH = File.join(File.dirname(__FILE__), "../../../data")
8
-
9
- def fetch(nuclide)
10
- @nuclide = nuclide
11
- begin
12
- @data[:nuclide] = @nuclide.to_s
13
- @data[:transitions] = load_data(@nuclide).collect{|row| {:energy => row[0].pm(0), :intensity => row[1].pm(row[2])} }
14
- rescue
15
- raise "No Data for #{nuclide}"
16
- end
17
- self
18
- end
19
-
20
- private
21
- def load_data(nuclide)
22
- CSV.read("#{PATH}/#{nuclide}.csv", {col_sep: ';', converters: :numeric})
23
- end
24
-
25
- end
26
- end