Class: VORuby::Services::Gestalt::WCSFixerService

Inherits:
Object
  • Object
show all
Defined in:
lib/voruby/services/gestalt/wcs_fixer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver, debug = false) ⇒ WCSFixerService

Returns a new instance of WCSFixerService.



13
14
15
16
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 13

def initialize(driver, debug=false)
  @driver = driver
  @driver.wiredump_dev = $stderr if debug
end

Instance Attribute Details

#driverObject (readonly)

Returns the value of attribute driver.



11
12
13
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 11

def driver
  @driver
end

Class Method Details

.from_wsdl(wsdl = 'http://nvogre.phyast.pitt.edu:9090/wcs/WcsFixer.asmx?wsdl', debug = false) ⇒ Object



18
19
20
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 18

def self.from_wsdl(wsdl='http://nvogre.phyast.pitt.edu:9090/wcs/WcsFixer.asmx?wsdl', debug=false)
  return WCSFixerService.new(SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver, debug)
end

Instance Method Details

#fix(fitsfile, output_file, calibration_db = "SDSSDR3", approx_img_offset = 5.0, num_objects = 50, ellipticity_cut = 1.2) ⇒ Object

Corrects a FITS image with WCS information.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 42

def fix(fitsfile, output_file, calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
  params = {'fitsfile' => File.read(fitsfile),
            'db' => calibration_db,
            'offset' => approx_img_offset,
            'numObjects' => num_objects,
            'elongCut' => ellipticity_cut}
        
  begin
      corrected_fits = @driver.fix(params.to_soap_map)['FixWithoutWcsResult']
      return VORuby::Utilities::save_to(output_file, corrected_fits)
  rescue SOAP::FaultError => sfe
      raise WCSFixerSoapException, sfe
  end
end

#fixUrl(url, output_file = nil, calibration_db = "SDSSDR3", approx_img_offset = 5.0, num_objects = 50, ellipticity_cut = 1.2) ⇒ Object

Corrects a FITS image URL with WCS information. If output_file is specified, the corrected FITS images is retrieved and stored locally, otherwise its URI is returned.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 25

def fixUrl(url, output_file=nil, calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
  params = {'url' => url,
            'db' => calibration_db,
            'offset' => approx_img_offset,
            'numObjects' => num_objects,
            'elongCut' => ellipticity_cut}
        
  begin
    # If an output file is specified, retrieve the fixed FITS and save it locally.
    retrieval_url = @driver.fixUrl(params.to_soap_map)['FixUrlResult']
    (output_file != nil)? (return VORuby::Utilities::save_to(output_file, URI.parse(retrieval_url).read)): (return retrieval_url)
  rescue SOAP::FaultError => sfe
    raise WCSFixerSoapException, sfe
  end
end

#fixWithoutWcs(fitsfile, output_file, ra_center, dec_center, pixel_scale, calibration_db = "SDSSDR3", approx_img_offset = 5.0, num_objects = 50, ellipticity_cut = 1.2) ⇒ Object

Corrects a FITS image with WCS information.



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 82

def fixWithoutWcs(fitsfile, output_file,
  ra_center, dec_center, pixel_scale,
  calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
  params = {'fitsfile' => File.read(fitsfile),
            'db' => calibration_db,
            'offset' => approx_img_offset,
            'numObjects' => num_objects,
            'elongCut' => ellipticity_cut,
            'raCenter' => ra_center,
            'decCenter' => dec_center,
            'pixelScale' => pixel_scale}
        
  begin
    corrected_fits = @driver.fixWithoutWcs(params.to_soap_map)['FixWithoutWcsResult']
    return VORuby::Utilities::save_to(output_file, corrected_fits)
  rescue SOAP::FaultError => sfe
    raise WCSFixerSoapException, sfe
  end
end

#fixWithoutWcsUrl(url, output_file, ra_center, dec_center, pixel_scale, calibration_db = "SDSSDR3", approx_img_offset = 5.0, num_objects = 50, ellipticity_cut = 1.2) ⇒ Object

Corrects a FITS image URL without WCS information. If output_file is specified, the corrected FITS images is retrieved and stored locally, otherwise its URI is returned.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/voruby/services/gestalt/wcs_fixer.rb', line 60

def fixWithoutWcsUrl(url, output_file,
  ra_center, dec_center, pixel_scale,
  calibration_db="SDSSDR3", approx_img_offset=5.0, num_objects=50, ellipticity_cut=1.2)
  params = {'url' => url,
            'db' => calibration_db,
            'offset' => approx_img_offset,
            'numObjects' => num_objects,
            'elongCut' => ellipticity_cut,
            'raCenter' => ra_center,
            'decCenter' => dec_center,
            'pixelScale' => pixel_scale}
        
  begin
      # If an output file is specified, retrieve the fixed FITS and save it locally.
      retrieval_url = @driver.fixWithoutWcsUrl(params.to_soap_map)['FixUrlResult']
      (output_file != nil)? (return VORuby::Utilities::save_to(output_file, URI.parse(retrieval_url).read)): (return retrieval_url)
  rescue SOAP::FaultError => sfe
      raise WCSFixerSoapException, sfe
  end
end