Skip to content
Snippets Groups Projects
Select Git revision
  • ba2ac6ddac64361ecb11f4d724a278e12816409b
  • master default protected
  • add-mwa-itrf-interface
  • rename-oskar-fits
  • gec-84-casacore-3.7.1-in-wheels
  • extends_cmake_to_use_fetchcontent
  • rtd-ubuntu24-plucky
  • ast-1644-temp-fix
  • ast-1600-fix-beam-for-meerkat-ska-mid
  • readthedocs-c++17
  • fix_oskar
  • mwa_python_wrapper
  • ast-1384-remove-element-index-argument
  • ast-1509-fix-polarization-orientation-in-gridded-response
  • add-test-for-squared-mueller-matrices
  • 1493-extend-python-bindings
  • ast-1493-implement-response-dishpoint-1
  • ast-1325-prototype-ska-beam-model-interface
  • ast-1416-oskar-ska-sdp-func-1
  • ast-1386-create-default-element
  • ast-1384-fix-sorted-frequencies-check-sphericalharmonicsresponse-1
  • v0.7.1
  • v0.7.0
  • v0.6.2
  • v0.6.1
  • v0.6.0
  • v0.5.8
  • v0.5.7
  • v0.5.6
  • v0.5.5
  • v0.5.4
  • v0.5.3
  • v0.5.2
  • v0.5.1
  • v0.4.0
  • v0.3.1
  • v0.3.0
  • v0.2.0
  • v0.1.3
  • v0.1.2
  • v0.1.1
41 results

ITRFDirection.h

  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ITRFDirection.h 2.08 KiB
    // ITRFDirection.h: Functor that maps time to an ITRF direction.
    //
    // Copyright (C) 2013
    // ASTRON (Netherlands Institute for Radio Astronomy)
    // P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
    //
    // This file is part of the LOFAR software suite.
    // The LOFAR software suite is free software: you can redistribute it and/or
    // modify it under the terms of the GNU General Public License as published
    // by the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // The LOFAR software suite is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    //
    // You should have received a copy of the GNU General Public License along
    // with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
    //
    // $Id$
    
    #ifndef EVERYBEAM_ITRFDIRECTION_H
    #define EVERYBEAM_ITRFDIRECTION_H
    
    // \file
    // Functor that maps time to an ITRF direction.
    
    #include "Types.h"
    
    #include <casacore/measures/Measures/MeasFrame.h>
    #include <casacore/measures/Measures/MeasConvert.h>
    #include <casacore/measures/Measures/MCDirection.h>
    
    #include <memory>
    #include <mutex>
    
    namespace everybeam {
    
    class ITRFDirection
    {
    public:
        typedef std::shared_ptr<ITRFDirection>       Ptr;
        typedef std::shared_ptr<const ITRFDirection> ConstPtr;
    
        ITRFDirection(const vector3r_t &position, const vector2r_t &direction);
        ITRFDirection(const vector3r_t &position, const vector3r_t &direction);
        ITRFDirection(const vector2r_t &direction);
        ITRFDirection(const vector3r_t &direction);
    
        vector3r_t at(real_t time) const;
    
        const static vector3r_t& LOFARPosition() { return itsLOFARPosition; }
    
    private:
        //ITRF position of CS002LBA, just to use a fixed reference
        const static vector3r_t itsLOFARPosition;
    
        mutable casacore::MeasFrame             itsFrame;
        mutable casacore::MDirection::Convert   itsConverter;
        mutable std::mutex                      itsMutex;
    };
    
    } // namespace everybeam
    
    #endif