voruby 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. data/Rakefile.rb +107 -224
  2. data/lib/misc.rb +1 -0
  3. data/lib/misc/misc.rb +60 -0
  4. data/lib/misc/propertyfile.rb +31 -0
  5. data/lib/symphony.rb +1 -0
  6. data/lib/symphony/symphony.rb +247 -0
  7. data/lib/voruby.rb +186 -0
  8. data/lib/voruby/active_votable/active_votable.rb +468 -347
  9. data/lib/voruby/adql/1.0/adql.rb +2418 -0
  10. data/lib/voruby/adql/support.rb +2 -0
  11. data/lib/voruby/misc.rb +351 -0
  12. data/lib/voruby/misc/connection_monitor.rb +97 -0
  13. data/lib/voruby/misc/libxml_ext.rb +121 -0
  14. data/lib/voruby/misc/rexml_ext.rb +223 -0
  15. data/lib/voruby/resolver/resolver.rb +12 -0
  16. data/lib/voruby/resolver/sesame.rb +299 -0
  17. data/lib/voruby/sky_query/sky_query.rb +192 -0
  18. data/lib/voruby/stc/1.10/coords.rb +2272 -0
  19. data/lib/voruby/stc/1.10/region.rb +892 -0
  20. data/lib/voruby/stc/1.10/stc.rb +3271 -0
  21. data/lib/voruby/stc/1.30/stc.rb +8666 -0
  22. data/lib/voruby/stc/support.rb +2 -0
  23. data/lib/voruby/ucd/ucd.rb +173 -0
  24. data/lib/voruby/voevent/1.1/voevent.rb +1124 -0
  25. data/lib/voruby/voevent/support.rb +5 -0
  26. data/lib/voruby/votable/1.0/votable.rb +1807 -0
  27. data/lib/voruby/votable/1.1/votable.rb +2100 -0
  28. data/lib/voruby/votable/votable.rb +305 -0
  29. data/lib/voruby/wesix/wesix.rb +491 -0
  30. data/lib/voruby/xlink/1.2/xlink.rb +21 -0
  31. data/test/voruby/active_votable/complex.vot +60 -0
  32. data/test/voruby/active_votable/error.vot +6 -0
  33. data/test/voruby/active_votable/large.vot +130040 -0
  34. data/test/voruby/active_votable/simple1.vot +38 -0
  35. data/test/voruby/active_votable/simple2.vot +38 -0
  36. data/test/voruby/active_votable/test.rb +193 -0
  37. data/test/voruby/adql/1.0/adql-alias.sql +1 -0
  38. data/test/voruby/adql/1.0/adql-alias.xml +26 -0
  39. data/test/voruby/adql/1.0/adql-avg.sql +1 -0
  40. data/test/voruby/adql/1.0/adql-avg.xml +31 -0
  41. data/test/voruby/adql/1.0/adql-circle.sql +1 -0
  42. data/test/voruby/adql/1.0/adql-circle.xml +46 -0
  43. data/test/voruby/adql/1.0/adql-expr.sql +1 -0
  44. data/test/voruby/adql/1.0/adql-expr.xml +34 -0
  45. data/test/voruby/adql/1.0/adql-function.sql +1 -0
  46. data/test/voruby/adql/1.0/adql-function.xml +41 -0
  47. data/test/voruby/adql/1.0/adql-group.sql +1 -0
  48. data/test/voruby/adql/1.0/adql-group.xml +51 -0
  49. data/test/voruby/adql/1.0/adql-having.sql +1 -0
  50. data/test/voruby/adql/1.0/adql-having.xml +25 -0
  51. data/test/voruby/adql/1.0/adql-like.sql +1 -0
  52. data/test/voruby/adql/1.0/adql-like.xml +17 -0
  53. data/test/voruby/adql/1.0/adql-order.sql +1 -0
  54. data/test/voruby/adql/1.0/adql-order.xml +37 -0
  55. data/test/voruby/adql/1.0/adql-simple.sql +1 -0
  56. data/test/voruby/adql/1.0/adql-simple.xml +12 -0
  57. data/test/voruby/adql/1.0/adql-top.sql +1 -0
  58. data/test/voruby/adql/1.0/adql-top.xml +33 -0
  59. data/test/voruby/adql/1.0/test.rb +2220 -0
  60. data/test/voruby/misc/test.rb +32 -0
  61. data/test/voruby/resolver/sesame/test.rb +56 -0
  62. data/test/voruby/sky_query/test.rb +107 -0
  63. data/test/voruby/stc/1.10/coords_test.rb +3704 -0
  64. data/test/voruby/stc/1.10/region_test.rb +993 -0
  65. data/test/voruby/stc/1.10/stc-catalog-entry-location.xml +112 -0
  66. data/test/voruby/stc/1.10/stc-obs-data-location.xml +126 -0
  67. data/test/voruby/stc/1.10/stc-region-circle.xml +5 -0
  68. data/test/voruby/stc/1.10/stc-region-convex.xml +11 -0
  69. data/test/voruby/stc/1.10/stc-region-convexhull.xml +5 -0
  70. data/test/voruby/stc/1.10/stc-region-ellipse.xml +7 -0
  71. data/test/voruby/stc/1.10/stc-region-intersection.xml +25 -0
  72. data/test/voruby/stc/1.10/stc-region-negation.xml +7 -0
  73. data/test/voruby/stc/1.10/stc-region-polygon.xml +13 -0
  74. data/test/voruby/stc/1.10/stc-region-sector.xml +6 -0
  75. data/test/voruby/stc/1.10/stc-region-union.xml +25 -0
  76. data/test/voruby/stc/1.10/stc-resource-profile.xml +60 -0
  77. data/test/voruby/stc/1.10/stc-search-location.xml +54 -0
  78. data/test/voruby/stc/1.10/stc_test.rb +4626 -0
  79. data/test/voruby/stc/1.30/stc-catalog-entry-location.xml +210 -0
  80. data/test/voruby/stc/1.30/stc-obs-data-location-arecibo.xml +353 -0
  81. data/test/voruby/stc/1.30/stc-obs-data-location-fits.xml +250 -0
  82. data/test/voruby/stc/1.30/stc-obs-data-location-xlink.xml +63 -0
  83. data/test/voruby/stc/1.30/stc-obs-data-location.xml +216 -0
  84. data/test/voruby/stc/1.30/stc-resource-profile-unusual-ref-pos.xml +39 -0
  85. data/test/voruby/stc/1.30/stc-resource-profile.xml +129 -0
  86. data/test/voruby/stc/1.30/stc-search-location-arecibo.xml +86 -0
  87. data/test/voruby/stc/1.30/stc-search-location.xml +101 -0
  88. data/test/voruby/stc/1.30/test.rb +6274 -0
  89. data/test/voruby/ucd/test.rb +48 -0
  90. data/test/voruby/voevent/1.1/test.rb +812 -0
  91. data/test/{voevent/voevent_v1_1.xml → voruby/voevent/1.1/voevent.xml} +2 -2
  92. data/test/voruby/voregistry/0.3/test.rb +137 -0
  93. data/test/voruby/votable/1.0/test.rb +714 -0
  94. data/test/voruby/votable/1.0/votable.basic.xml +660 -0
  95. data/test/voruby/votable/1.0/votable.html +86 -0
  96. data/test/voruby/votable/1.0/votable.ns.xml +56 -0
  97. data/test/voruby/votable/1.1/test.rb +785 -0
  98. data/test/voruby/votable/1.1/votable.basic.xml +38 -0
  99. data/test/voruby/votable/1.1/votable.html +86 -0
  100. data/test/voruby/votable/1.1/votable.ns.xml +56 -0
  101. data/test/voruby/votable/test.rb +15 -0
  102. data/test/voruby/wesix/test.rb +268 -0
  103. data/test/voruby/wesix/testr.fits +28 -0
  104. metadata +234 -247
  105. data/REQUIREMENTS +0 -6
  106. data/lib/voruby/active_votable/loader.rb +0 -5
  107. data/lib/voruby/adql/adql.rb +0 -2787
  108. data/lib/voruby/adql/ext.rb +0 -14
  109. data/lib/voruby/adql/loader.rb +0 -6
  110. data/lib/voruby/adql/operations.rb +0 -54
  111. data/lib/voruby/adql/parser.rb +0 -160
  112. data/lib/voruby/adql/transforms.rb +0 -573
  113. data/lib/voruby/ext.rb +0 -17
  114. data/lib/voruby/loader.rb +0 -4
  115. data/lib/voruby/misc/propertyfile.rb +0 -36
  116. data/lib/voruby/plastic/applications.rb +0 -174
  117. data/lib/voruby/plastic/constants.rb +0 -30
  118. data/lib/voruby/plastic/loader.rb +0 -10
  119. data/lib/voruby/plastic/plastic.rb +0 -1
  120. data/lib/voruby/resources/conesearch/conesearch.rb +0 -9
  121. data/lib/voruby/resources/conesearch/conesearch_v0_2.rb +0 -55
  122. data/lib/voruby/resources/conesearch/conesearch_v0_3.rb +0 -50
  123. data/lib/voruby/resources/conesearch/conesearch_v1_0.rb +0 -72
  124. data/lib/voruby/resources/conesearch/loader.rb +0 -4
  125. data/lib/voruby/resources/loader.rb +0 -50
  126. data/lib/voruby/resources/nodes.rb +0 -190
  127. data/lib/voruby/resources/openskynode/loader.rb +0 -4
  128. data/lib/voruby/resources/openskynode/openskynode.rb +0 -9
  129. data/lib/voruby/resources/openskynode/openskynode_v0_1.rb +0 -54
  130. data/lib/voruby/resources/sia/loader.rb +0 -5
  131. data/lib/voruby/resources/sia/sia.rb +0 -9
  132. data/lib/voruby/resources/sia/sia_v0_6.rb +0 -90
  133. data/lib/voruby/resources/sia/sia_v0_7.rb +0 -89
  134. data/lib/voruby/resources/sia/sia_v1_0.rb +0 -122
  135. data/lib/voruby/resources/stsci.rb +0 -59
  136. data/lib/voruby/resources/vodataservice/coverage_v0_2.rb +0 -195
  137. data/lib/voruby/resources/vodataservice/coverage_v0_3.rb +0 -158
  138. data/lib/voruby/resources/vodataservice/loader.rb +0 -5
  139. data/lib/voruby/resources/vodataservice/vodataservice.rb +0 -9
  140. data/lib/voruby/resources/vodataservice/vodataservice_v0_4.rb +0 -189
  141. data/lib/voruby/resources/vodataservice/vodataservice_v0_5.rb +0 -163
  142. data/lib/voruby/resources/vodataservice/vodataservice_v1_0.rb +0 -221
  143. data/lib/voruby/resources/voregistry/loader.rb +0 -4
  144. data/lib/voruby/resources/voregistry/voregistry.rb +0 -9
  145. data/lib/voruby/resources/voregistry/voregistry_v0_2.rb +0 -40
  146. data/lib/voruby/resources/voregistry/voregistry_v0_3.rb +0 -30
  147. data/lib/voruby/resources/voregistry/voregistry_v1_0.rb +0 -86
  148. data/lib/voruby/resources/voresource/loader.rb +0 -17
  149. data/lib/voruby/resources/voresource/voresource.rb +0 -9
  150. data/lib/voruby/resources/voresource/voresource_v0_10.rb +0 -327
  151. data/lib/voruby/resources/voresource/voresource_v0_9.rb +0 -405
  152. data/lib/voruby/resources/voresource/voresource_v1_0.rb +0 -230
  153. data/lib/voruby/services/ext.rb +0 -11
  154. data/lib/voruby/services/gestalt/footprint.rb +0 -95
  155. data/lib/voruby/services/gestalt/wcs_fixer.rb +0 -105
  156. data/lib/voruby/services/gestalt/wesix.rb +0 -155
  157. data/lib/voruby/services/loader.rb +0 -7
  158. data/lib/voruby/services/registry/registry.rb +0 -53
  159. data/lib/voruby/services/resolver/resolver.rb +0 -35
  160. data/lib/voruby/services/schema/schema.rb +0 -644
  161. data/lib/voruby/sesame/loader.rb +0 -6
  162. data/lib/voruby/sesame/sesame_v1_0.rb +0 -64
  163. data/lib/voruby/simple/loader.rb +0 -6
  164. data/lib/voruby/simple/parameters.rb +0 -196
  165. data/lib/voruby/simple/sap.rb +0 -446
  166. data/lib/voruby/spacetime/loader.rb +0 -3
  167. data/lib/voruby/spacetime/spacetime.rb +0 -607
  168. data/lib/voruby/stc/coords_v1_20.rb +0 -900
  169. data/lib/voruby/stc/loader.rb +0 -55
  170. data/lib/voruby/stc/region_v1_20.rb +0 -274
  171. data/lib/voruby/stc/stc_v1_20.rb +0 -1196
  172. data/lib/voruby/util.rb +0 -27
  173. data/lib/voruby/voevent/loader.rb +0 -7
  174. data/lib/voruby/voevent/voevent_v1_0.rb +0 -213
  175. data/lib/voruby/voevent/voevent_v1_1.rb +0 -196
  176. data/lib/voruby/votables/chandra.rb +0 -373
  177. data/lib/voruby/votables/data.rb +0 -179
  178. data/lib/voruby/votables/galex.rb +0 -377
  179. data/lib/voruby/votables/int.rb +0 -354
  180. data/lib/voruby/votables/libxml_parser.rb +0 -411
  181. data/lib/voruby/votables/libxml_votable.rb +0 -67
  182. data/lib/voruby/votables/loader.rb +0 -10
  183. data/lib/voruby/votables/meta.rb +0 -763
  184. data/lib/voruby/votables/misc.rb +0 -51
  185. data/lib/voruby/votables/nsa.rb +0 -410
  186. data/lib/voruby/votables/rexml_parser.rb +0 -408
  187. data/lib/voruby/votables/rexml_votable.rb +0 -67
  188. data/lib/voruby/votables/sdss.rb +0 -356
  189. data/lib/voruby/votables/transforms.rb +0 -388
  190. data/lib/voruby/votables/tree.rb +0 -45
  191. data/lib/voruby/votables/types.rb +0 -391
  192. data/lib/voruby/votables/votable.rb +0 -687
  193. data/test/active_votable/database.yml +0 -6
  194. data/test/active_votable/test.vot +0 -168492
  195. data/test/active_votable/unittest.rb +0 -41
  196. data/test/adql/test1.adql +0 -49
  197. data/test/adql/test2.adql +0 -51
  198. data/test/adql/test3.adql +0 -81
  199. data/test/adql/test4.adql +0 -53
  200. data/test/adql/test5.adql +0 -55
  201. data/test/adql/test6.adql +0 -18
  202. data/test/adql/test7.adql +0 -48
  203. data/test/adql/unittest.rb +0 -1672
  204. data/test/plastic/test.rb +0 -44
  205. data/test/plastic/test.vot +0 -5385
  206. data/test/plastic/unittest.rb +0 -66
  207. data/test/resources/conesearch/conesearch_v0_3.xml +0 -31
  208. data/test/resources/conesearch/conesearch_v1_0.xml +0 -86
  209. data/test/resources/conesearch/unittest_v0_3.rb +0 -22
  210. data/test/resources/conesearch/unittest_v1_0.rb +0 -24
  211. data/test/resources/openskynode/open_sky_node_v0_1.xml +0 -32
  212. data/test/resources/openskynode/unittest_v0_1.rb +0 -31
  213. data/test/resources/sia/simple_image_access_v0_7.xml +0 -36
  214. data/test/resources/sia/simple_image_access_v1_0.xml +0 -122
  215. data/test/resources/sia/unittest_v0_7.rb +0 -24
  216. data/test/resources/sia/unittest_v1_0.rb +0 -29
  217. data/test/resources/stsci.xml +0 -336
  218. data/test/resources/unittest_stsci.rb +0 -25
  219. data/test/resources/vodataservice/catalog_service_resource_v1_0.xml +0 -128
  220. data/test/resources/vodataservice/data_collection_resource_v0_5.xml +0 -54
  221. data/test/resources/vodataservice/data_collection_resource_v1_0.xml +0 -117
  222. data/test/resources/vodataservice/data_service_resource_v1_0.xml +0 -115
  223. data/test/resources/vodataservice/sky_service_resource_v0_10.xml +0 -45
  224. data/test/resources/vodataservice/table_service_resource_v1_0.xml +0 -122
  225. data/test/resources/vodataservice/tabular_sky_service_resource_v0_10.xml +0 -60
  226. data/test/resources/vodataservice/unittest_v0_5.rb +0 -126
  227. data/test/resources/vodataservice/unittest_v1_0.rb +0 -151
  228. data/test/resources/voregistry/authority_resource_v0_3.xml +0 -20
  229. data/test/resources/voregistry/authority_resource_v1_0.xml +0 -82
  230. data/test/resources/voregistry/registry_service_v0_3.xml +0 -20
  231. data/test/resources/voregistry/registry_service_v1_0.xml +0 -107
  232. data/test/resources/voregistry/unittest_v0_3.rb +0 -31
  233. data/test/resources/voregistry/unittest_v1_0.rb +0 -34
  234. data/test/resources/voresource/organisation_resource_v1_0.xml +0 -90
  235. data/test/resources/voresource/resource_organisation_v0_10.xml +0 -22
  236. data/test/resources/voresource/resource_service_v0_10.xml +0 -19
  237. data/test/resources/voresource/resource_v0_10.xml +0 -19
  238. data/test/resources/voresource/resource_v1_0.xml +0 -79
  239. data/test/resources/voresource/service_resource_v1_0.xml +0 -91
  240. data/test/resources/voresource/unittest_v0_10.rb +0 -61
  241. data/test/resources/voresource/unittest_v0_9.rb +0 -4
  242. data/test/resources/voresource/unittest_v1_0.rb +0 -190
  243. data/test/services/gestalt/unittest.rb +0 -74
  244. data/test/services/registry/unittest.rb +0 -34
  245. data/test/services/resolver/unittest.rb +0 -38
  246. data/test/simple/unittest.rb +0 -46
  247. data/test/spacetime/unittest.rb +0 -39
  248. data/test/stc/catalog_entry_location_v1_20.xml +0 -112
  249. data/test/stc/obs_data_location_v1_20.xml +0 -108
  250. data/test/stc/search_location_v1_20.xml +0 -54
  251. data/test/stc/stc_resource_profile_v1_20.xml +0 -60
  252. data/test/stc/unittest_v1_20.rb +0 -620
  253. data/test/voevent/unittest_v1_0.rb +0 -79
  254. data/test/voevent/unittest_v1_1.rb +0 -70
  255. data/test/voevent/voevent_v1_0.xml +0 -96
  256. data/test/votables/test.vot +0 -366
  257. data/test/votables/unittest.rb +0 -54
@@ -1,11 +0,0 @@
1
- class Hash
2
- require 'soap/mapping/registry'
3
-
4
- def to_soap_map
5
- map = SOAP::Mapping::Object.new()
6
- self.each do |name, value|
7
- map[name] = value
8
- end
9
- map
10
- end
11
- end
@@ -1,95 +0,0 @@
1
- require 'voruby/services/loader'
2
-
3
- module VORuby
4
- module Services
5
- module Gestalt
6
-
7
- class FootPrintService
8
- attr_reader :driver
9
-
10
- def initialize(driver, debug=false)
11
- @driver = driver
12
- @driver.wiredump_dev = $stderr if debug
13
- end
14
-
15
- def self.from_wsdl(wsdl='http://nvogre.phyast.pitt.edu:8080/axis2/services/GestaltService?wsdl', debug=false)
16
- return FootPrintService.new(SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver, debug)
17
- end
18
-
19
- def makeCircleMap(ra, dec, radius, multiple_tables=false)
20
- ra = [ra] if !ra.is_a?(Array)
21
- dec = [dec] if !dec.is_a?(Array)
22
- radius = [radius] if !radius.is_a?(Array)
23
-
24
- params = {}
25
- params['in0'] = ra
26
- params['in1'] = dec
27
- params['in2'] = radius
28
- params['in3'] = multiple_tables
29
-
30
- map_names = driver.makeCircleMap(params.to_soap_map)['makeCircleMapReturn']
31
-
32
- map_names = [map_names] if !map_names.is_a?(Array)
33
- return map_names
34
- end
35
-
36
- def deleteTables(map_name)
37
- params = {}
38
- params['in0'] = map_name
39
-
40
- # Successful deletion is 0 for some reason...
41
- return true if @driver.deleteTables(params.to_soap_map)['deleteTablesReturn'] == '0'
42
- return false
43
- end
44
-
45
- def deleteAllTables(map_names)
46
- responses = []
47
- map_names.each do |map_name|
48
- responses.push(self.deleteTables(map_name))
49
- end
50
-
51
- return responses
52
- end
53
-
54
- def makePlot(map_names, ramin, ramax, decmin, decmax, fill=false, color=1)
55
- params = {}
56
- params['in0'] = ramin
57
- params['in1'] = ramax
58
- params['in2'] = decmin
59
- params['in3'] = decmax
60
- params['in4'] = fill
61
- params['in5'] = color
62
- if !map_names.is_a?(Array)
63
- params['in6'] = [map_names]
64
- else
65
- params['in6'] = map_names
66
- end
67
-
68
- return @driver.makePlot(params.to_soap_map)['makePlotReturn']
69
- end
70
-
71
- def self.plot_limits(ra, dec, radius, buffer=1.0)
72
- ra = [ra] if !ra.is_a?(Array)
73
- dec = [dec] if !dec.is_a?(Array)
74
- radius = [radius] if !radius.is_a?(Array)
75
-
76
- min_ra_ind = ra.index(ra.min)
77
- min_ra = ra.min - (radius[min_ra_ind] + buffer)
78
- max_ra_ind = ra.index(ra.max)
79
- max_ra = ra.max + (radius[max_ra_ind] + buffer)
80
-
81
- min_dec_ind = dec.index(dec.min)
82
- min_dec = dec.min - (radius[min_dec_ind] + buffer)
83
- max_dec_ind = dec.index(dec.max)
84
- max_dec = dec.max + (radius[max_dec_ind] + buffer)
85
-
86
- return [min_ra, max_ra, min_dec, max_dec]
87
- end
88
- end
89
-
90
- end
91
- end
92
- end
93
-
94
-
95
-
@@ -1,105 +0,0 @@
1
- require 'voruby/services/loader'
2
-
3
- module VORuby
4
- module Services
5
- module Gestalt
6
-
7
- class WCSFixerException < RuntimeError; end
8
- class WCSFixerSoapException < WCSFixerException; end
9
-
10
- class WCSFixerService
11
- attr_reader :driver
12
-
13
- def initialize(driver, debug=false)
14
- @driver = driver
15
- @driver.wiredump_dev = $stderr if debug
16
- end
17
-
18
- def self.from_wsdl(wsdl='http://nvogre.phyast.pitt.edu:9090/wcs/WcsFixer.asmx?wsdl', debug=false)
19
- return WCSFixerService.new(SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver, debug)
20
- end
21
-
22
- # Corrects a FITS image URL with WCS information.
23
- # If output_file is specified, the corrected FITS images is retrieved and stored locally,
24
- # otherwise its URI is returned.
25
- def fixUrl(url, output_file=nil, calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
26
- params = {'url' => url,
27
- 'db' => calibration_db,
28
- 'offset' => approx_img_offset,
29
- 'numObjects' => num_objects,
30
- 'elongCut' => ellipticity_cut}
31
-
32
- begin
33
- # If an output file is specified, retrieve the fixed FITS and save it locally.
34
- retrieval_url = @driver.fixUrl(params.to_soap_map)['FixUrlResult']
35
- (output_file != nil)? (return VORuby::Utilities::save_to(output_file, URI.parse(retrieval_url).read)): (return retrieval_url)
36
- rescue SOAP::FaultError => sfe
37
- raise WCSFixerSoapException, sfe
38
- end
39
- end
40
-
41
- # Corrects a FITS image with WCS information.
42
- def fix(fitsfile, output_file, calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
43
- params = {'fitsfile' => File.read(fitsfile),
44
- 'db' => calibration_db,
45
- 'offset' => approx_img_offset,
46
- 'numObjects' => num_objects,
47
- 'elongCut' => ellipticity_cut}
48
-
49
- begin
50
- corrected_fits = @driver.fix(params.to_soap_map)['FixWithoutWcsResult']
51
- return VORuby::Utilities::save_to(output_file, corrected_fits)
52
- rescue SOAP::FaultError => sfe
53
- raise WCSFixerSoapException, sfe
54
- end
55
- end
56
-
57
- # Corrects a FITS image URL without WCS information.
58
- # If output_file is specified, the corrected FITS images is retrieved and stored locally,
59
- # otherwise its URI is returned.
60
- def fixWithoutWcsUrl(url, output_file,
61
- ra_center, dec_center, pixel_scale,
62
- calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
63
- params = {'url' => url,
64
- 'db' => calibration_db,
65
- 'offset' => approx_img_offset,
66
- 'numObjects' => num_objects,
67
- 'elongCut' => ellipticity_cut,
68
- 'raCenter' => ra_center,
69
- 'decCenter' => dec_center,
70
- 'pixelScale' => pixel_scale}
71
-
72
- begin
73
- # If an output file is specified, retrieve the fixed FITS and save it locally.
74
- retrieval_url = @driver.fixWithoutWcsUrl(params.to_soap_map)['FixUrlResult']
75
- (output_file != nil)? (return VORuby::Utilities::save_to(output_file, URI.parse(retrieval_url).read)): (return retrieval_url)
76
- rescue SOAP::FaultError => sfe
77
- raise WCSFixerSoapException, sfe
78
- end
79
- end
80
-
81
- # Corrects a FITS image with WCS information.
82
- def fixWithoutWcs(fitsfile, output_file,
83
- ra_center, dec_center, pixel_scale,
84
- calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
85
- params = {'fitsfile' => File.read(fitsfile),
86
- 'db' => calibration_db,
87
- 'offset' => approx_img_offset,
88
- 'numObjects' => num_objects,
89
- 'elongCut' => ellipticity_cut,
90
- 'raCenter' => ra_center,
91
- 'decCenter' => dec_center,
92
- 'pixelScale' => pixel_scale}
93
-
94
- begin
95
- corrected_fits = @driver.fixWithoutWcs(params.to_soap_map)['FixWithoutWcsResult']
96
- return VORuby::Utilities::save_to(output_file, corrected_fits)
97
- rescue SOAP::FaultError => sfe
98
- raise WCSFixerSoapException, sfe
99
- end
100
- end
101
- end
102
-
103
- end
104
- end
105
- end
@@ -1,155 +0,0 @@
1
- require 'voruby/services/loader'
2
-
3
- module VORuby
4
- module Services
5
- module Gestalt
6
-
7
- class WesixException < RuntimeError; end
8
- class NoVotableException < WesixException
9
- def initialize
10
- super('VOTable missing from SOAP response. ' +
11
- 'Often this is caused by an overly large catalog. ' +
12
- 'Try increasing your detection threshold.')
13
- end
14
- end
15
-
16
- class Wesix
17
- attr_reader :factory, :driver,
18
- :allowed_in_params, :allowed_out_params, :in_params, :out_params
19
-
20
- def initialize(driver, bootstrap=true, debug=false)
21
- @driver = driver
22
- @driver.wiredump_dev = $stderr if debug
23
-
24
- @in_params = {}
25
- @out_params = {}
26
-
27
- define_accessors()
28
- bootstrap_params() if bootstrap
29
- end
30
-
31
- def self.from_wsdl(wsdl="http://nvogre.phyast.pitt.edu:8080/axis/services/WesixTest?wsdl", bootstrap=true, debug=false)
32
- return Wesix.new(SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver, bootstrap, debug)
33
- end
34
-
35
- def define_accessors
36
- @allowed_in_params = []
37
- @allowed_out_params = []
38
-
39
- @driver.proxy.literal_mapping_registry.definedtypes.each do |el|
40
- case el.name.name
41
- when 'SexParams'
42
- el.each_element do |ctype|
43
- @allowed_in_params.push(ctype.name.name)
44
- meta_def(ctype.name.name.downcase){get_in_param(ctype.name.name)}
45
- meta_def(ctype.name.name.downcase + '='){|value| set_in_param(ctype.name.name, value)}
46
- end
47
- when 'SexOutputParams'
48
- el.each_element do |ctype|
49
- @allowed_out_params.push(ctype.name.name)
50
- meta_def(ctype.name.name.downcase){get_out_param(ctype.name.name)}
51
- meta_def(ctype.name.name.downcase + '='){|value| set_out_param(ctype.name.name, value)}
52
- end
53
- end
54
- end
55
- end
56
-
57
- def bootstrap_params
58
- bootstrap_in_params
59
- bootstrap_out_params
60
- end
61
-
62
- def reset_params
63
- reset_in_params
64
- reset_out_params
65
- end
66
-
67
- def bootstrap_in_params
68
- in_params = @driver.getSexParams()[0]
69
- @allowed_in_params.each do |param_name|
70
- @in_params[param_name] = in_params[param_name]
71
- end
72
- end
73
-
74
- def reset_in_params
75
- @in_params = {}
76
- end
77
-
78
- def bootstrap_out_params
79
- out_params = @driver.getSexOutputParams()[0]
80
- @allowed_out_params.each do |param_name|
81
- @out_params[param_name] = out_params[param_name]
82
- end
83
- end
84
-
85
- def reset_out_params
86
- @out_params = {}
87
- end
88
-
89
- def set_in_param(name, value)
90
- if @allowed_in_params.include?(name)
91
- @in_params[name] = value
92
- else
93
- raise "Input parameter #{name} is not recognized"
94
- end
95
- end
96
-
97
- def get_in_param(name)
98
- @in_params[name]
99
- end
100
-
101
- def set_out_param(name, value)
102
- if @allowed_out_params.include?(name)
103
- @out_params[name] = value
104
- else
105
- raise "Output parameter #{name} is not recognized"
106
- end
107
- end
108
-
109
- def get_out_param(name)
110
- @out_params[name]
111
- end
112
-
113
- def _file_as_string(file)
114
- bytes = nil
115
- File.open(file){ |file_obj|
116
- bytes = file_obj.readlines.join()
117
- }
118
-
119
- return bytes
120
- end
121
-
122
- def wsextractor3VO(file, flag=0)
123
- response = @driver.wsextractor3VO(_file_as_string(file), @in_params.to_soap_map, @out_params.to_soap_map, flag)
124
- return VOTable::VOTable.from_soap_obj(response[0].vOTABLE) if response[0].respond_to?(:vOTABLE)
125
-
126
- raise NoVotableException
127
- end
128
-
129
- def wsextractor3VOXmatch(file, flag=0)
130
- response = @driver.wsextractor3VOXmatch(_file_as_string(file), @in_params.to_soap_map, @out_params.to_soap_map, flag)
131
- return VOTable::VOTable.from_soap_obj(response[0].vOTABLE) if response[0].respond_to?(:vOTABLE)
132
-
133
- raise NoVotableException
134
- end
135
-
136
- def wsextractorURL3VO(file, flag=0)
137
- response = @driver.wsextractorURL3VO(file, @in_params.to_soap_map, @out_params.to_soap_map, flag)
138
- return VOTables::VOTable::VOTable.from_soap_obj(response[0].vOTABLE) if response[0].respond_to?(:vOTABLE)
139
-
140
- raise NoVotableException
141
- end
142
-
143
- def wsextractorURL3VOXmatch(file, flag=0)
144
- response = @driver.wsextractorURL3VOXmatch(file, @in_params.to_soap_map, @out_params.to_soap_map, flag)
145
- return VOTable::VOTable.from_soap_obj(response[0].vOTABLE) if response[0].respond_to?(:vOTABLE)
146
-
147
- raise NoVotableException
148
- end
149
-
150
- private :define_accessors, :bootstrap_in_params, :bootstrap_out_params, :bootstrap_params, :_file_as_string
151
- end
152
-
153
- end
154
- end
155
- end
@@ -1,7 +0,0 @@
1
- require 'open-uri'
2
- require 'soap/wsdlDriver'
3
- require 'rexml/document'
4
-
5
- require 'voruby/loader'
6
- require 'voruby/services/ext'
7
- require 'voruby/votables/votable'
@@ -1,53 +0,0 @@
1
- require 'tmpdir'
2
-
3
- require 'voruby/services/loader'
4
- require 'voruby/resources/stsci'
5
-
6
- module VORuby
7
- module Services
8
- module Registry
9
-
10
- class STScI
11
- attr_reader :factory, :driver
12
-
13
- def initialize(driver, debug=false)
14
- @driver = driver
15
- @driver.wiredump_dev = $stderr if debug
16
-
17
- # This is basically a big hack. We are going to ignore everything soap4r
18
- # does for us in terms of interpreting the result of a query. Instead
19
- # we'll dump the raw SOAP to file and parse it on our own. This is obviously
20
- # not optimal, but works for now.
21
- @driver.wiredump_file_base = Dir::tmpdir() + '/stsci_registry'
22
- end
23
-
24
- def self.from_wsdl(wsdl="http://nvo.stsci.edu/VORegistry/registry.asmx?WSDL", debug=false)
25
- return STScI.new(SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver, debug)
26
- end
27
-
28
- def queryVOResource(predicate)
29
- params = {'predicate' => predicate}
30
-
31
- request_file = @driver.wiredump_file_base() + '_queryVOResource_request.xml'
32
- response_file = @driver.wiredump_file_base() + '_queryVOResource_response.xml'
33
-
34
- # Query the registry
35
- @driver.queryVOResource(params.to_soap_map)
36
-
37
- # Parse the returned SOAP envelope and extract the query result
38
- soap_envelope = REXML::Document.new File.new(response_file)
39
- response = REXML::XPath.first(soap_envelope.root, '//QueryVOResourceResult')
40
-
41
- # Convert the result into our own domain objects
42
- resources = VORuby::Resources::STScI::ArrayOfResource.load_from_xml(VORuby::Resources::STScI::clean(response))
43
-
44
- # Clean up the wiredump files.
45
- File.unlink(request_file, response_file)
46
-
47
- return resources
48
- end
49
- end
50
-
51
- end
52
- end
53
- end
@@ -1,35 +0,0 @@
1
- require 'voruby/services/loader'
2
-
3
- require 'voruby/sesame/sesame_v1_0'
4
-
5
- include VORuby::Sesame::V1_0
6
-
7
- module VORuby
8
- module Services
9
- module Resolver
10
-
11
- class Sesame
12
- attr_reader :factor, :driver
13
-
14
- def initialize(driver, debug=false)
15
- @driver = driver
16
- @driver.wiredump_dev = $stderr if debug
17
- end
18
-
19
- def self.from_wsdl(wsdl='http://cdsws.u-strasbg.fr/axis/services/Sesame?wsdl', debug=false)
20
- return Sesame.new(SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver, debug)
21
- end
22
-
23
- def query(object_name)
24
- VORuby::Sesame::V1_0::Sesame.load_from_xml(REXML::Document.new(@driver.sesameXML(object_name)).root)
25
- end
26
-
27
- def query_position(object_name)
28
- query = query(object_name)
29
- Equatorial::RADecPosition.new(query.resolvers[0].jradeg, query.resolvers[0].jdedeg)
30
- end
31
- end
32
-
33
- end
34
- end
35
- end