#ifndef LEVEL0PROFILES_H_ #define LEVEL0PROFILES_H_ // //----------------------------------------------------------------------- /// @copyright /// (c) Copyright 2008 by GATS, Inc., /// 11864 Canon Blvd, Suite 101, Newport News VA 23606 /// /// All Rights Reserved. No part of this software or publication may be /// reproduced, stored in a retrieval system, or transmitted, in any form /// or by any means, electronic, mechanical, photocopying, recording, or /// otherwise without the prior written permission of GATS, Inc. /// //----------------------------------------------------------------------- /// /// @file SunSensorCalc.h /// /// @author John Burton /// /// @date Thu Jan 17 13:37:13 2008 /// //----------------------------------------------------------------------- // //----------------------------------------------------------------------- // Include Files: //----------------------------------------------------------------------- // #include #include "ConfigFile.h" #include "Event.h" #include "SolarEdgeModel.h" // //----------------------------------------------------------------------- // Constants, Defines, Macros and Type Definitions: //----------------------------------------------------------------------- // // //----------------------------------------------------------------------- // Global Variables: //----------------------------------------------------------------------- // // //----------------------------------------------------------------------- // Class Definition: //----------------------------------------------------------------------- // class SunSensorCalc { // //----------------------------------------------------------------------- // Private Members: //----------------------------------------------------------------------- // private: // // Configuration Data // ConfigFile cf_; std::string section_; int eventNumber_; char srssflag_; double MaxAveIntensity; double TrueSolarExtent_; double MeasuredExoExtentAz_; double MeasuredExoExtentEl_; // // Level 0 Input Data // EventVar SunSensorTimeGrid_; EventVar ScienceTimeGrid_; EventVar Track_Low_X_; EventVar Track_High_X_; EventVar Track_Low_Y_; EventVar Track_High_Y_; EventVar SolarHighEl_; EventVar SolarLowEl_; EventVar SolarHighAz_; EventVar SolarLowAz_; EventVar SolarExtent_; EventVar SolarExtentAz_; EventVar NormalizedSolarExtent_; EventVar DetectorAz_; EventVar DetectorEl_; EventVar CenterOffsets_; EventVar RecordType_; EventVar Transmission_; EventVar ImpactAngle_; EventVar TopEdgeImpactAngle_; EventVar BottomEdgeImpactAngle_; EventVar FPAGrid_; EventVar TopEdgeIntensity_; EventVar BottomEdgeIntensity_; EventVar QualityOfFit_; EventVar Track_Status_; EventVar zImpact_; EventVarVect SumsData_; EventVarVect LocsVect_; EventVarVect CenterSumsVect_; EventVarVect CenterRowsVect_; EventVarVect CenterOffsetsVect_; EventVarVect CenterAvesVect_; EventVarVect AvePixVect_; EventVarVect FPATimeSeries_; EventVarVect FPATranspose_; EventVar Count_; EventVarVect SolarExtentCompare_; void initNames(void); // double linterp(double &x, double &xa, double &xb, double &ya, double &yb); EventVarVect convertSums2Double(EventVarVect intSums); EventVar cleanupTransmission(EventVar &trans, EventVar &ia); // //----------------------------------------------------------------------- // Protected Members: //----------------------------------------------------------------------- // protected: // //----------------------------------------------------------------------- // Public Members: //----------------------------------------------------------------------- // public: SunSensorCalc(Event& L0, Event& L1, Event& Tmp, ConfigFile& cf, std::string Section); double calcMaxIntensity(void); EventVar calcEdgeIntensity(EventVar& edge); void calcEdgeLocations(void); void fillFPATimeSeries(void); void applyChainSaw2AvePixVect(); void applyChainSaw2FPATimeSeries(void); void transformCoordinates(Event &SD); void determineDetectorLockDownPosition(void); void determineCenterSumsElevation(void); void determineSolarExtent(void); void doDriftCorrection(void); void adjustToScienceTimeStamp(Event& L1); void copyDataToEvent(Event& eventObj); void correctCenterSumsLocations(); void dumpData(std::string base, int grid); void transposeFPATimeSeries(void); void fillTrackingValues(void); void writeExoAtmosphericDataXY(void); void writeExoAtmosphericDataXYZ(void); // double findLowXEdge(EventVar &sample, double edge); // double findHighXEdge(EventVar &sample, double edge); }; // end class SunSensorCalc #endif