casa
$Rev:20696$
|
00001 /* Private parts for coordsys */ 00002 00003 public : 00004 00005 void setcoordsys(casa::CoordinateSystem &acsys); 00006 00007 private: 00008 00009 casa::LogIO *itsLog; 00010 casa::CoordinateSystem *itsCoordSys; 00011 casa::String itsParentImageName; 00012 00013 // private constructor to make components on the fly 00014 coordsys(const casa::CoordinateSystem * inCS); 00015 00016 // Inter convert absolute and relative world or pixel coordinates 00017 casa::Record absRelRecord (casa::LogIO& os, 00018 const casa::RecordInterface& recIn, 00019 casa::Bool isWorld, casa::Bool absToRel); 00020 00021 // Add default coordinates to CS 00022 void addCoordinate (casa::CoordinateSystem& cSys, casa::Bool direction, 00023 casa::Bool spectral, 00024 const casa::Vector<casa::String>& stokes, 00025 casa::Int linear, casa::Bool tabular); 00026 00027 // Copy the world axes of in to out 00028 void copyWorldAxes (casa::Vector<casa::Double>& out, 00029 const casa::Vector<casa::Double>& in, casa::Int c) const; 00030 00031 // Convert record of measures to world coordinate vector 00032 casa::Vector<casa::Double> 00033 measuresToWorldVector (const casa::RecordInterface& rec) const; 00034 00035 // Convert world coordinate to measures and stick in record 00036 casa::Record worldVectorToMeasures(const casa::Vector<casa::Double>& world, 00037 casa::Int c, casa::Bool abs) const; 00038 00039 // Find coordinate of desired type 00040 casa::Int findCoordinate (casa::Coordinate::Type type, casa::Bool warn) const; 00041 00042 // Convert a record holding some mixture of numeric, measures, quantity, string 00043 // to a vector of doubles 00044 void recordToWorldVector (casa::Vector<casa::Double>& world, 00045 casa::String& type, 00046 casa::Int c, const casa::RecordInterface& rec) const; 00047 00048 // Convert a vector of world to a record holding some mixture 00049 // of numeric, measures, quantity, string 00050 casa::Record worldVectorToRecord (const casa::Vector<casa::Double>& world, 00051 casa::Int c, const casa::String& format, 00052 casa::Bool isAbsolute, 00053 casa::Bool showAsAbsolute); 00054 00055 // Convert Quantum to record 00056 casa::Record quantumToRecord (casa::LogIO& os, 00057 const casa::Quantum<casa::Double>& value) const; 00058 00059 // Set DirectionCoordinate reference code 00060 void setDirectionCode (const casa::String& code, casa::Bool adjust); 00061 00062 // Set SpectralCoordinate reference code 00063 void setSpectralCode (const casa::String& code, casa::Bool adjust); 00064 00065 // Convert world String to world vector double. World vector must be length 00066 // cSys.nWorldAxes() 00067 casa::Vector<casa::Double> 00068 stringToWorldVector (casa::LogIO& os, const casa::Vector<casa::String>& world, 00069 const casa::Vector<casa::String>& worldAxisUnits) const; 00070 00071 // Convert user coordinate type string to enum 00072 casa::Coordinate::Type stringToType(const casa::String& typeIn) const; 00073 00074 // absolute pixel to absolute world 00075 casa::Record toWorldRecord (const casa::Vector<casa::Double>& pixel, const casa::String& format); 00076 00077 // Add missing values or tim excessive 00078 void trim (casa::Vector<casa::Double>& in, 00079 const casa::Vector<casa::Double>& replace) const; 00080 00081 // Convert a vector of quantum doubles in a record to a vector of 00082 // double applying specified units 00083 casa::Vector<casa::Double> 00084 quantumVectorRecordToVectorDouble (const casa::RecordInterface& recQ, 00085 const casa::Vector<casa::String>& units) const; 00086 00087 casa::Vector<casa::Double> 00088 quantumRecordToVectorDouble (const casa::RecordInterface& recQ, 00089 const casa::Vector<casa::String>& units) const; 00090 00091 casa::Bool checkAbsRel(casac::variant& value, casa::Bool shouldBeAbs); 00092 00093 casa::Record * coordinateValueToRecord(const casac::variant& value, 00094 casa::Bool isWorld, casa::Bool isAbs, 00095 casa::Bool first); 00096 00097 int isValueWorld(casac::variant& value, int shouldBeWorld, 00098 casa::Bool verbose=true); 00099 00100 std::vector<double> toPixel(const ::casac::variant& value);