casa  $Rev:20696$
coordsys_private.h
Go to the documentation of this file.
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);
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines