RasterProcessTool/GF3CalibrationAndOrthLib/SateOrbit.h

59 lines
1.5 KiB
C
Raw Normal View History

#pragma once
2025-05-18 15:25:21 +00:00
#ifndef __SATEORIBT_H__
#define __SATEORIBT_H__
///
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD>
///
//#define EIGEN_USE_MKL_ALL
//#define EIGEN_VECTORIZE_SSE4_2
//#include <mkl.h>
// <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
2025-05-18 15:25:21 +00:00
#include "gf3calibrationandorthlib_global.h"
2024-11-25 06:26:46 +00:00
#include "BaseTool.h"
#include <iostream>
#include <Eigen/Core>
#include <Eigen/Dense>
#include <time.h>
//#include <mkl.h>
//#include <armadillo>
2025-05-18 15:25:21 +00:00
//using namespace std;
//using namespace Eigen;
//using namespace arma;
/// <summary>
/// <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
/// </summary>
2025-05-18 15:25:21 +00:00
class GF3CALIBRATIONANDORTHLIB_EXPORT OrbitPoly {
public:
//OrbitPoly(std::string orbitModelPath);
OrbitPoly();
OrbitPoly(int polynum, Eigen::MatrixX<double> polySatellitePara, double SatelliteModelStartTime);
~OrbitPoly();
Eigen::MatrixX<double> SatelliteSpacePoint(Eigen::MatrixX<double> satellitetime);
Eigen::MatrixX<double> SatelliteSpacePoint(long double satellitetime);
public:
int polynum;
Eigen::MatrixX<double> polySatellitePara;
double SatelliteModelStartTime;
};
/// <summary>
/// <20><>ȡָ<C8A1><D6B8>ʱ<EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="satellitetime"><3E><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1></param>
/// <param name="SatelliteModelStartTime">ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1></param>
/// <param name="polySatellitePara">ģ<>Ͳ<EFBFBD><CDB2><EFBFBD>[x1,y1,z1,vx1,vy1,vz1; x2,y2,z2,vx2,vy2,vz2; ..... ]</param>
/// <param name="polynum">ģ<>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></returns>
2025-05-18 15:25:21 +00:00
Eigen::MatrixX<double> GF3CALIBRATIONANDORTHLIB_EXPORT SatelliteSpacePoints(Eigen::MatrixX<double> &satellitetime, double SatelliteModelStartTime, Eigen::MatrixX<double>& polySatellitePara, int polynum = 4);
#endif