source: trunk/external-alma/atnf/PKSIO/ASTEReader.cc @ 3114

Last change on this file since 3114 was 3114, checked in by Kana Sugimoto, 7 years ago

New Development: No

JIRA Issue: No

Ready for Test: Yes

Interface Changes: No

What Interface Changed:

Test Programs:

Put in Release Notes: No

Module(s): sd.scantable, sdsaveold

Description: Fixed antenna position of ASTE.


File size: 3.6 KB
Line 
1//#---------------------------------------------------------------------------
2//# ASTEReader.cc: Class to read ASTE 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/07, Takeshi Nakazato, NAOJ
31//#---------------------------------------------------------------------------
32
33#include <atnf/PKSIO/ASTEReader.h>
34#include <atnf/PKSIO/ASTEDataset.h>
35
36#include <string>
37#include <stdio.h>
38
39using namespace std ;
40
41// Constructor
42ASTEReader::ASTEReader( string name )
43  : NROReader( name )
44{
45  // DEBUG
46  //cout << "ASTEReader::ASTEReader()" << endl ;
47  //
48}
49
50// Destructor.
51ASTEReader::~ASTEReader()
52{
53}
54 
55void ASTEReader::initDataset()
56{
57  dataset_ = new ASTEDataset( filename_ ) ;
58  dataset_->initialize() ;
59}
60
61vector<double> ASTEReader::getAntennaPosition()
62{
63  // ASTE in ITRF2005
64  // tentative
65  //vector<double> pos( 3 ) ;
66  //pos[0] = 2412830.391  ;
67  //pos[1] = -5271936.712 ;
68  //pos[2] = -2652209.088 ;
69
70
71  // ASTE in World Geodetic System
72  //
73  // W67d42m11s S22d58m18s 4800m
74  // Ref.: Ezawa, H. et al. 2004, Proc. SPIE, 5489, 763
75  //
76  // double elon = -67. - 42. / 60. - 11. / 3600. ;
77  // double nlat = -22. - 58. / 60. - 18. / 3600. ;
78  // double alti = 2400. ;
79  // double elon = -67.7031 ;
80  // double nlat = -22.9717 ;
81  // double alti = 4800.0 ;
82  //
83  // Updated: 2017/03/21 The value from COSMOS3
84  double elon = -67.703339424 ;
85  double nlat = -22.9715818 ;
86  double alti = 4861.900 ;
87
88  // APEX value
89  //double elon = -67.7592 ;
90  //double nlat = -23.0057 ;
91  //double alti = 5105. ;
92
93  MPosition p( MVPosition( Quantity( alti, "m" ),
94                           Quantity( elon, "deg" ),
95                           Quantity( nlat, "deg" ) ),
96               MPosition::Ref( MPosition::WGS84 ) ) ;
97
98  MeasFrame frame( p ) ;
99  MVPosition mvp ;
100  frame.getITRF( mvp ) ;
101  Vector<Double> pp = mvp.getValue() ;
102  vector<double> pos ;
103  pp.tovector( pos ) ;
104  //cout << "ASTEReader::getAntennaPosition()  pp[0] = " << pp[0]
105  //     << " pp[1] = " << pp[1] << " pp[2] = " << pp[2] << endl ;
106
107
108  return pos ;
109}
110
111Int ASTEReader::getNumIF()
112{
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  Int nif = v.size() ;
121  return nif ;
122}
123
124Int ASTEReader::getNumBeam()
125{
126  // ASTE doesn't have array receiver so far
127  return 1 ;
128}
Note: See TracBrowser for help on using the repository browser.