source: trunk/external-alma/atnf/PKSIO/NRO45Reader.cc @ 3067

Last change on this file since 3067 was 2782, checked in by Takeshi Nakazato, 11 years ago

New Development: No

JIRA Issue: No

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: List test programs

Put in Release Notes: Yes/No?

Module(s): Module Names change impacts.

Description: Describe your changes here...

Refactoring NRO filler.


File size: 4.0 KB
Line 
1//#---------------------------------------------------------------------------
2//# NRO45Reader.cc: Class to read NRO 45m OTF data.
3//#---------------------------------------------------------------------------
4//# Copyright (C) 2000-2006
5//# Associated Universities, Inc. Washington DC, USA.
6//#
7//# This library is free software; you can redistribute it and/or modify it
8//# under the terms of the GNU Library General Public License as published by
9//# the Free Software Foundation; either version 2 of the License, or (at your
10//# option) any later version.
11//#
12//# This library is distributed in the hope that it will be useful, but WITHOUT
13//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14//# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
15//# License for more details.
16//#
17//# You should have received a copy of the GNU Library General Public License
18//# along with this library; if not, write to the Free Software Foundation,
19//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
20//#
21//# Correspondence concerning AIPS++ should be addressed as follows:
22//#        Internet email: aips2-request@nrao.edu.
23//#        Postal address: AIPS++ Project Office
24//#                        National Radio Astronomy Observatory
25//#                        520 Edgemont Road
26//#                        Charlottesville, VA 22903-2475 USA
27//#
28//# $Id$
29//#---------------------------------------------------------------------------
30//# Original: 2008/11/04, Takeshi Nakazato, NAOJ
31//#---------------------------------------------------------------------------
32
33#include <atnf/PKSIO/NRO45Reader.h>
34#include <atnf/PKSIO/NROOTFDataset.h>
35
36#include <string>
37#include <stdio.h>
38
39using namespace std ;
40
41// Constructor
42NRO45Reader::NRO45Reader( string name )
43  : NROReader( name )
44{
45  // DEBUG
46  //cout << "NRO45Reader::NRO45Reader()" << endl ;
47  //
48}
49
50// Destructor.
51NRO45Reader::~NRO45Reader()
52{
53}
54 
55void NRO45Reader::initDataset()
56{
57  dataset_ = new NROOTFDataset( filename_ ) ;
58  dataset_->initialize() ;
59}
60
61vector<double> NRO45Reader::getAntennaPosition()
62{
63  // NOBEYAMA in ITRF2005
64  // Obtained from ITRF website http://itrf.ensg.ign.fr/
65  //vector<double> pos( 3 ) ;
66  //pos[0] = -3871169.229 ;
67  //pos[1] = 3428274.975 ;
68  //pos[2] = 3723698.519 ;
69
70  // NOBEYAMA in World Geodetic System
71  //
72  // E138d28m21.2s N35d56m40.9s 1350m in old Japanese Geodetic System
73  // (from http://www.nro.nao.ac.jp/Misc/hist_NRO.html)
74  //
75  // E138d28m09.96444s N35d56m52.3314s 1350m in World Geodetic System
76  // (conversion is done by http://vldb.gsi.go.jp/sokuchi/tky2jgd/)
77 
78//   double elon = 138. + 28. / 60. + 9.96444 / 3600. ;
79//   double nlat = 35. + 56. / 60. + 52.3314 / 3600. ;
80//   double alti = 1350. ;
81
82//   Double elon = 138.4725 ;
83//   Double nlat = 35.9445 ;
84//   Double alti = 1412.599 ;
85
86//   MPosition p( MVPosition( Quantity( alti, "m" ),
87//                            Quantity( elon, "deg" ),
88//                            Quantity( nlat, "deg" ) ),
89//                MPosition::Ref( MPosition::WGS84 ) ) ;
90
91  Double posx = -3.8710235e6 ;
92  Double posy = 3.4281068e6 ;
93  Double posz = 3.7240395e6 ;
94  MPosition p( MVPosition( posx, posy, posz ),
95               MPosition::ITRF ) ;
96
97  MeasFrame frame( p ) ;
98  MVPosition mvp ;
99  frame.getITRF( mvp ) ;
100  Vector<Double> pp = mvp.getValue() ;
101  vector<double> pos ;
102  pp.tovector( pos ) ;
103  //cout << "NRO45Reader::getAntennaPosition()  pp[0] = " << pp[0]
104  //     << " pp[1] = " << pp[1] << " pp[2] = " << pp[2] << endl ;
105
106  return pos ;
107}
108
109Int NRO45Reader::getNumIF()
110{
111  Int nif = 1 ;
112  if ( (dataset_->getRX()[0]).find("MULT2-") == string::npos ) {
113    vector<Bool> v ;
114    vector<int> arry = dataset_->getARRY() ;
115    for ( uInt i = 0 ; i < arry.size() ; i++ ) {
116      if ( arry[i] != 0 ) {
117        v.push_back( True ) ;
118      }
119    }
120    nif = v.size() ;
121  }
122  return nif ;
123}
124
125Int NRO45Reader::getNumBeam()
126{
127  Int nbeam = 25 ;
128  if ( (dataset_->getRX()[0]).find("MULT2-") == string::npos ) {
129    nbeam = 1 ;
130  }
131  return nbeam ;
132}
Note: See TracBrowser for help on using the repository browser.