miriad 4.1.0.14 → 4.1.0.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- // $Id: narray_ruby.swg 7 2008-04-18 07:21:10Z davidm $
1
+ // $Id$
2
2
  //
3
3
  // Common setup for NArray typemaps
4
4
  //
@@ -7,7 +7,7 @@
7
7
  # astronomy related methods to Ruby classes.
8
8
  #
9
9
  #--
10
- # $Id: miriad.rb 33 2009-03-17 21:30:46Z davidm $
10
+ # $Id$
11
11
  #++
12
12
 
13
13
  require 'rbconfig'
@@ -15,7 +15,7 @@ require 'rubygems'
15
15
  require 'date'
16
16
  require 'enumerator'
17
17
  require 'narray'
18
- miriad_shared_lib = 'miriad.' + Config::CONFIG['DLEXT']
18
+ miriad_shared_lib = 'miriad.' + RbConfig::CONFIG['DLEXT']
19
19
  require miriad_shared_lib
20
20
  require 'miriad_gem' if false # Fake out RDoc
21
21
  #require 'fftw3'
@@ -23,51 +23,53 @@ require 'miriad_gem' if false # Fake out RDoc
23
23
  # Add CKMS constant to Math module
24
24
  Math::const_set :CKMS, 299792.458 unless Math::const_defined? :CKMS
25
25
 
26
- # The MIRIAD package adds angle conversion methods to the Math module
27
- module Math
28
- # Convert possibly non-integer degrees +fr+ to [degrees, minutes, seconds]
29
- # where degrees and minutes are integers.
30
- def d_to_dms(fr)
31
- sign = fr <=> 0
32
- fr *= sign
33
- d = fr.to_i; fr %= 1; fr *= 60
34
- m = fr.to_i; fr %= 1; fr *= 60
35
- return d*sign, m, fr
36
- end
37
- module_function :d_to_dms
38
-
39
- # Convert possibly non-integer hours +fr+ to [hours, minutes, seconds]
40
- # where hours and minutes are integers.
41
- def h_to_hms(fr); d_to_dms(fr); end; module_function :h_to_hms
42
-
43
- # Convert degrees, minutes, seconds to possibly non-integer degrees.
44
- # Missing arguments are assumed to be 0.
45
- def dms_to_d(*args)
46
- d = 0.to_r
47
- d += args.shift unless args.empty?
48
- sign = d < 0 ? -1 : 1
49
- d += args.shift * Rational(sign,60) unless args.empty?
50
- d += args.shift * Rational(sign,3600) unless args.empty?
51
- return d
26
+ # The MIRIAD package provides a Miriad::AngleConversion module
27
+ module Miriad
28
+ module AngleConversion
29
+ # Convert possibly non-integer degrees +fr+ to [degrees, minutes, seconds]
30
+ # where degrees and minutes are integers.
31
+ def d_to_dms(fr)
32
+ sign = fr <=> 0
33
+ fr *= sign
34
+ d = fr.to_i; fr %= 1; fr *= 60
35
+ m = fr.to_i; fr %= 1; fr *= 60
36
+ return d*sign, m, fr
37
+ end
38
+ module_function :d_to_dms
39
+
40
+ # Convert possibly non-integer hours +fr+ to [hours, minutes, seconds]
41
+ # where hours and minutes are integers.
42
+ def h_to_hms(fr); d_to_dms(fr); end; module_function :h_to_hms
43
+
44
+ # Convert degrees, minutes, seconds to possibly non-integer degrees.
45
+ # Missing arguments are assumed to be 0.
46
+ def dms_to_d(*args)
47
+ d = 0.to_r
48
+ d += args.shift unless args.empty?
49
+ sign = d < 0 ? -1 : 1
50
+ d += args.shift * Rational(sign,60) unless args.empty?
51
+ d += args.shift * Rational(sign,3600) unless args.empty?
52
+ return d
53
+ end
54
+ module_function :dms_to_d
55
+
56
+ # Convert hours, minutes, seconds to possibly non-integer hours.
57
+ # Missing arguments are assumed to be 0.
58
+ def hms_to_h(*args); dms_to_d(*args); end
59
+
60
+ # Convert degrees to radians
61
+ def d2r(d) d*Math::PI/180; end; module_function :d2r
62
+ # Convert radians to degrees
63
+ def r2d(r) r*180/Math::PI; end; module_function :r2d
64
+ # Convert hours to radians
65
+ def h2r(h) h*Math::PI/12; end; module_function :h2r
66
+ # Convert radians to hours
67
+ def r2h(r) r*12/Math::PI; end; module_function :r2h
68
+ # Convert degrees to hours
69
+ def d2h(d) d/15.0; end; module_function :d2h
70
+ # Convert hours to degrees
71
+ def h2d(h) h*15.0; end; module_function :h2d
52
72
  end
53
- module_function :dms_to_d
54
-
55
- # Convert hours, minutes, seconds to possibly non-integer hours.
56
- # Missing arguments are assumed to be 0.
57
- def hms_to_h(*args); dms_to_d(*args); end
58
-
59
- # Convert degrees to radians
60
- def d2r(d) d*PI/180; end; module_function :d2r
61
- # Convert radians to degrees
62
- def r2d(r) r*180/PI; end; module_function :r2d
63
- # Convert hours to radians
64
- def h2r(h) h*PI/12; end; module_function :h2r
65
- # Convert radians to hours
66
- def r2h(r) r*12/PI; end; module_function :r2h
67
- # Convert degrees to hours
68
- def d2h(d) d/15.0; end; module_function :d2h
69
- # Convert hours to degrees
70
- def h2d(h) h*15.0; end; module_function :h2d
71
73
  end
72
74
 
73
75
  # The MIRIAD package adds angle conversion and angle formatting methods to
@@ -75,7 +77,7 @@ end
75
77
  class Numeric
76
78
  # Convert +self+ to [degrees, minutes, seconds] where degrees and minutes are
77
79
  # integers.
78
- def to_dms() Math.d_to_dms(self); end
80
+ def to_dms() Miriad::AngleConversion.d_to_dms(self); end
79
81
  # Convert +self+ to [hours, minutes, seconds] where hours and minutes are
80
82
  # integers.
81
83
  alias :to_hms :to_dms
@@ -89,25 +91,25 @@ class Numeric
89
91
  width = prec == 0 ? 2 : prec+3
90
92
  "%02d:%02d:%0#{width}.#{prec}f" % to_dms
91
93
  end
92
- # Convert +self+ from degrees to radians (i.e. <tt>Math.d2r(self)</tt>).
93
- def d2r() Math.d2r(self); end
94
- # Convert +self+ from radians to degrees (i.e. <tt>Math.r2d(self)</tt>).
95
- def r2d() Math.r2d(self); end
96
- # Convert +self+ from hours to radians (i.e. <tt>Math.h2r(self)</tt>).
97
- def h2r() Math.h2r(self); end
98
- # Convert +self+ from radians to hours (i.e. <tt>Math.r2h(self)</tt>).
99
- def r2h() Math.r2h(self); end
100
- # Convert +self+ from degrees to hours (i.e. <tt>Math.d2h(self)</tt>).
101
- def d2h() Math.d2h(self); end
102
- # Convert +self+ from hours to degrees (i.e. <tt>Math.h2d(self)</tt>).
103
- def h2d() Math.h2d(self); end
94
+ # Convert +self+ from degrees to radians (i.e. <tt>Miriad::AngleConversion.d2r(self)</tt>).
95
+ def d2r() Miriad::AngleConversion.d2r(self); end
96
+ # Convert +self+ from radians to degrees (i.e. <tt>Miriad::AngleConversion.r2d(self)</tt>).
97
+ def r2d() Miriad::AngleConversion.r2d(self); end
98
+ # Convert +self+ from hours to radians (i.e. <tt>Miriad::AngleConversion.h2r(self)</tt>).
99
+ def h2r() Miriad::AngleConversion.h2r(self); end
100
+ # Convert +self+ from radians to hours (i.e. <tt>Miriad::AngleConversion.r2h(self)</tt>).
101
+ def r2h() Miriad::AngleConversion.r2h(self); end
102
+ # Convert +self+ from degrees to hours (i.e. <tt>Miriad::AngleConversion.d2h(self)</tt>).
103
+ def d2h() Miriad::AngleConversion.d2h(self); end
104
+ # Convert +self+ from hours to degrees (i.e. <tt>Miriad::AngleConversion.h2d(self)</tt>).
105
+ def h2d() Miriad::AngleConversion.h2d(self); end
104
106
  end
105
107
 
106
108
  # The MIRIAD package adds angle conversion methods to Array class.
107
109
  class Array
108
110
  # Convert +self+ from [degrees, minutes, seconds] to degrees.
109
111
  # Missing arguments are assumed to be 0.
110
- def dms_to_d; Math::dms_to_d(*self); end
112
+ def dms_to_d; Miriad::AngleConversion::dms_to_d(*self); end
111
113
  # Convert +self+ from [hours, minutes, seconds] to hours.
112
114
  # Missing arguments are assumed to be 0.
113
115
  alias :hms_to_h :dms_to_d
@@ -117,7 +119,7 @@ end
117
119
  class String
118
120
  # Parse a "dd:mm:ss.sss" String to Numeric degrees.
119
121
  # <b>NOT</b> the inverse of Numeric#to_dmsstr (but may become so).
120
- def dms_to_d; Math::dms_to_d(*split(':').map{|s| s.to_f}); end
122
+ def dms_to_d; Miriad::AngleConversion::dms_to_d(*split(':').map{|s| s.to_f}); end
121
123
  # Parse a "hh:mm:ss.sss" String to Float hours.
122
124
  alias :hms_to_h :dms_to_d
123
125
  end
@@ -127,7 +129,7 @@ end
127
129
  class DateTime
128
130
 
129
131
  # The J2000 epoch
130
- J2000 = civil(2000,1,1,12)
132
+ J2000 = civil(2000,1,1,12) unless const_defined? :J2000
131
133
 
132
134
  # The sidereal rotation rate of Earth in radians per second
133
135
  OMEGA = 7.29211538e-5
@@ -150,10 +152,10 @@ class DateTime
150
152
  # http://www.iers.org/products/6/11136/orig/bulletina-xx-042.txt
151
153
  def ut2_ut1
152
154
  pi2t=Math::PI*2*(by%1)
153
- ENV['UT2_UT1'] || 0.022 * Math::sin(pi2t) \
154
- - 0.012 * Math::cos(pi2t) \
155
- - 0.006 * Math::sin(2*pi2t) \
156
- + 0.007 * Math::cos(2*pi2t)
155
+ ENV['UT2_UT1'] || 0.022 * Math.sin(pi2t) \
156
+ - 0.012 * Math.cos(pi2t) \
157
+ - 0.006 * Math.sin(2*pi2t) \
158
+ + 0.007 * Math.cos(2*pi2t)
157
159
  end
158
160
 
159
161
  # UT1-UTC (unit is seconds) at the time represented by +self+
@@ -965,15 +967,16 @@ module Miriad
965
967
  opts.merge!(args.pop) if Hash === args[-1]
966
968
  return nil unless ap = getvr('antpos')
967
969
  args.flatten!
968
- ap = ap.enum_slice(ap.length/3).entries.transpose.unshift([0,0,0])
970
+ n = ap.length/3
971
+ ap = [ap[0*n...1*n], ap[1*n...2*n], ap[2*n...3*n]].transpose.unshift([0,0,0])
969
972
  ap = ap.values_at(*args.flatten) if args.length > 0
970
973
 
971
974
  # Do units scaling, if requested
972
975
  scale = case opts[:units]
973
- when :ns: nil
974
- when :meter: Math::CKMS / 1e6
975
- when :lambda: getvr('freq') || 1.0
976
- when :klambda: (getvr('freq') || 1.0) / 1000
976
+ when :ns; nil
977
+ when :meter; Math::CKMS / 1e6
978
+ when :lambda; getvr('freq') || 1.0
979
+ when :klambda; (getvr('freq') || 1.0) / 1000
977
980
  else raise "Unrecognized units '#{opts[:units]}'"
978
981
  end
979
982
  ap.map!{|p| p.map!{|c| c*scale}} if scale
@@ -1010,8 +1013,8 @@ module Miriad
1010
1013
  def baseline(*args)
1011
1014
  opts = (Hash === args[-1]) ? args.pop : {}
1012
1015
  a1, a2 = case args.length
1013
- when 0: basant
1014
- when 2: args
1016
+ when 0; basant
1017
+ when 2; args
1015
1018
  else raise ArgumentError(
1016
1019
  "wrong number of arguments (#{args.length} for 0 or 2)")
1017
1020
  end
@@ -1194,8 +1197,8 @@ module Miriad
1194
1197
  # SUPPORTED!]
1195
1198
  def []=(*args)
1196
1199
  n, t, v = case args.length
1197
- when 2: [args[0], -1, args[1]]
1198
- when 3: [args[0], args[1], args[2]]
1200
+ when 2; [args[0], -1, args[1]]
1201
+ when 3; [args[0], args[1], args[2]]
1199
1202
  else
1200
1203
  raise ArgumentError.new(
1201
1204
  "wrong number of arguments (#{args.length} for 3)")
metadata CHANGED
@@ -1,7 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miriad
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0.14
4
+ hash: 39
5
+ prerelease:
6
+ segments:
7
+ - 4
8
+ - 1
9
+ - 0
10
+ - 16
11
+ version: 4.1.0.16
5
12
  platform: ruby
6
13
  authors:
7
14
  - David MacMahon
@@ -9,20 +16,25 @@ autorequire:
9
16
  bindir: bin
10
17
  cert_chain: []
11
18
 
12
- date: 2009-03-18 00:00:00 -07:00
13
- default_executable:
19
+ date: 2012-03-29 00:00:00 Z
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: narray
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 25
30
+ segments:
31
+ - 0
32
+ - 5
33
+ - 9
23
34
  version: 0.5.9
24
- version:
25
- description: The MIRIAD-Ruby package... 1. Makes MIRIAD datasets accessible from Ruby by wrapping the MIRIAD UVIO routines. 2. Makes Ruby usable with MIRIAD datasets by adding convenience, utility, and astronomy related methods to Ruby classes.
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description: " The MIRIAD-Ruby package...\n\n 1. Makes MIRIAD datasets accessible from Ruby by wrapping\n the MIRIAD UVIO routines.\n\n 2. Makes Ruby usable with MIRIAD datasets by adding convenience,\n utility, and astronomy related methods to Ruby classes.\n"
26
38
  email: davidm@astro.berkeley.edu
27
39
  executables: []
28
40
 
@@ -58,8 +70,9 @@ files:
58
70
  - ext/maxdimc.h.in
59
71
  - ext/extconf.rb
60
72
  - ext/narray_ruby.swg
61
- has_rdoc: true
62
73
  homepage: http://miriad.rubyforge.org/
74
+ licenses: []
75
+
63
76
  post_install_message:
64
77
  rdoc_options:
65
78
  - -S
@@ -73,23 +86,31 @@ require_paths:
73
86
  - lib
74
87
  - ext
75
88
  required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
76
90
  requirements:
77
91
  - - ">="
78
92
  - !ruby/object:Gem::Version
93
+ hash: 63
94
+ segments:
95
+ - 1
96
+ - 8
97
+ - 4
79
98
  version: 1.8.4
80
- version:
81
99
  required_rubygems_version: !ruby/object:Gem::Requirement
100
+ none: false
82
101
  requirements:
83
102
  - - ">="
84
103
  - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
85
107
  version: "0"
86
- version:
87
108
  requirements: []
88
109
 
89
110
  rubyforge_project: miriad
90
- rubygems_version: 1.3.1
111
+ rubygems_version: 1.8.12
91
112
  signing_key:
92
- specification_version: 2
113
+ specification_version: 3
93
114
  summary: Ruby interface to MIRIAD
94
115
  test_files: []
95
116