- Timestamp:
- 08/16/06 11:11:45 (18 years ago)
- Location:
- trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/STMath.cpp
r1143 r1145 96 96 ScalarColumn<Double> intColOut(tout,"INTERVAL"); 97 97 ScalarColumn<uInt> cycColOut(tout,"CYCLENO"); 98 ScalarColumn<uInt> scanColOut(tout,"SCANNO"); 98 99 99 100 // set up the output table rows. These are based on the structure of the … … 120 121 tout.addRow(); 121 122 TableCopy::copyRows(tout, subt, outrowCount, 0, 1); 123 // re-index to 0 124 if ( avmode != "SCAN" && avmode != "SOURCE" ) { 125 scanColOut.put(outrowCount, uInt(0)); 126 } 122 127 ++outrowCount; 123 128 ++iter; … … 419 424 && t.col("IFNO") == Int(rec.asuInt("IFNO")) 420 425 && t.col("POLNO") == Int(rec.asuInt("POLNO")) ); 426 if ( offsel.nrow() == 0 ) 427 throw AipsError("STMath::quotient: no matching off"); 421 428 TableRow offrow(offsel); 422 429 const TableRecord& offrec = offrow.get(0);//should be ncycles - take first … … 1126 1133 Table& tout = pols->table(); 1127 1134 // give all rows the same POLNO 1128 TableVector<uInt> vec(tout, "POLNO");1135 TableVector<uInt> vec(tout, "POLNO"); 1129 1136 vec = 0; 1130 pols->table_.rwKeywordSet().define("nPol", Int(1));1137 pols->table_.rwKeywordSet().define("nPol", Int(1)); 1131 1138 std::vector<CountedPtr<Scantable> > vpols; 1132 1139 vpols.push_back(pols); 1133 1140 CountedPtr< Scantable > out = average(vpols, mask, weight, "NONE"); 1141 return out; 1142 } 1143 1144 CountedPtr< Scantable > 1145 STMath::averageBeams( const CountedPtr< Scantable > & in, 1146 const std::vector<bool>& mask, 1147 const std::string& weight ) 1148 { 1149 bool insitu = insitu_; 1150 setInsitu(false); 1151 CountedPtr< Scantable > beams = getScantable(in, false); 1152 setInsitu(insitu); 1153 Table& tout = beams->table(); 1154 // give all rows the same BEAMNO 1155 TableVector<uInt> vec(tout, "BEAMNO"); 1156 vec = 0; 1157 beams->table_.rwKeywordSet().define("nBeam", Int(1)); 1158 std::vector<CountedPtr<Scantable> > vbeams; 1159 vbeams.push_back(beams); 1160 CountedPtr< Scantable > out = average(vbeams, mask, weight, "NONE"); 1134 1161 return out; 1135 1162 } -
trunk/src/STMath.h
r1143 r1145 91 91 92 92 /** 93 * average polarisations together. really only useful if only linears are94 * 93 * Average polarisations together. really only useful if only linears are 94 * available. 95 95 * @param in the input Scantable 96 96 * @param mask an optional mask if weight allows one … … 102 102 const std::vector<bool>& mask, 103 103 const std::string& weight ); 104 105 /** 106 * Average beams together. 107 * @param in the input Scantable 108 * @param mask an optional mask if weight allows one 109 * @param weight weighting scheme 110 * @return 111 */ 112 casa::CountedPtr< Scantable > 113 averageBeams( const casa::CountedPtr< Scantable > & in, 114 const std::vector<bool>& mask, 115 const std::string& weight ); 104 116 105 117 casa::CountedPtr<Scantable> -
trunk/src/STMathWrapper.h
r1140 r1145 60 60 const std::string& weight) 61 61 { return ScantableWrapper(STMath::averagePolarisations(in.getCP(),mask, weight));} 62 63 ScantableWrapper 64 averageBeams( const ScantableWrapper& in, 65 const std::vector<bool>& mask, 66 const std::string& weight) 67 68 { return ScantableWrapper(STMath::averageBeams(in.getCP(),mask, weight));} 62 69 63 70 ScantableWrapper … … 144 151 const std::string& newtype ) 145 152 { return ScantableWrapper(STMath::convertPolarisation(in.getCP(),newtype)); } 146 153 147 154 ScantableWrapper mxExtract( const ScantableWrapper& in, 148 155 const std::string& scantype="on" ) -
trunk/src/python_STMath.cpp
r1140 r1145 47 47 .def("_averagechannel", &STMathWrapper::averageChannel) 48 48 .def("_averagepol", &STMathWrapper::averagePolarisations) 49 .def("_averagebeams", &STMathWrapper::averageBeams) 49 50 .def("_unaryop", &STMathWrapper::unaryOperate) 50 51 .def("_auto_quotient", &STMathWrapper::autoQuotient)
Note:
See TracChangeset
for help on using the changeset viewer.