📄 ppf_visibility.h
字号:
#ifndef _PPF_LIB_H#include <ppf_lib.h>#endif#ifndef _PPF_ORBIT_H#include <ppf_orbit.h>#endif#ifndef _PPF_VISIBILITY_H#define _PPF_VISIBILITY_H#ifdef __cplusplusextern "C"{#endif/* This version number is the SCCS version number valid only for internal configuration and control. *//* The oficial version number can be found in the History box below. */static char PPF_VISIBILITY_H [] = "@(#)ppf_visibility.h 1.11 05/20/05";/***************************************************************************** * * Copyright : DEIMOS Space S.L. * Project : REMASE * * Module : ppf_visibility.h * Purpose : It is the header file of the PPF_VISIBILITY CFI to be used * by the final user * * History +------------------------------------------------------------+ * | Version | Date | Name | Change | * |---------|----------|--------------|------------------------| * | 2.1 | 05/12/97 | GMV, S.A | First release | * | 2.2 | 18/05/98 | GMV, S.A | Second release | * | 2.3 | 13/10/98 | GMV, S.A | Third release | * | 2.4 | 25/05/99 | GMV, S.A | Fourth release | * | 2.5 | 14/04/00 | GMV, S.A | Fifth release | * | 2.6 | 22/06/01 | GMV, S.A | Sixth release | * | 2.7 | 31/07/01 | GMV, S.A | Seventh release | * | 2.8 | 22/10/01 | DEIMOS Space | Eigth release | * | 3.0 | 18/01/02 | DEIMOS Space | Ninth release | * | 3.1 | 25/11/02 | DEIMOS Space | Tenth release | * | 3.2 | 26/05/03 | DEIMOS Space | Eleventh release | * | 3.3 | 13/12/04 | DEIMOS Space | Twelfth release | * | 3.3.1 | 15/02/05 | DEIMOS Space | Thirteenth release |C* | 3.4 | 17/05/05 | DEIMOS Space | Forteenth release | * +------------------------------------------------------------+ * ****************************************************************************//* Main CFI Functions - prototype declaration *//* ========================================== */ long pv_zonevistime(char *orbit_event_file, long *start_orbit, long *stop_orbit, char *swath_file, char *zone_id, char *zone_db_file, long *projection, long *zone_num, double zone_long[], double zone_lat[], double *zone_diam, long *max_segments, double *min_duration, long *number_segments, long bgn_orbit[], long bgn_second[], long bgn_microsec[], long end_orbit[], long end_second[], long end_microsec[], long coverage[], long ierr[]); long pv_stavistime(char *orbit_event_file, long *start_orbit, long *stop_orbit, char *orbit_swath_file, char *sta_id, char *sta_db_file, long *mask, double *aos_elevation, double *los_elevation, long *max_segments, double *min_duration, long *number_segments, long bgn_orbit[], long bgn_second[], long bgn_microsec[], long end_orbit[], long end_second[], long end_microsec[], long zdop_orbit[], long zdop_second[], long zdop_microsec[], long ierr[]);long pv_drsvistime(char *orbit_event_file, long *start_orbit, long *stop_orbit, double *longitude, long *max_segments, double *min_duration, long *number_segments, long bgn_orbit[], long bgn_second[], long bgn_microsec[], long end_orbit[], long end_second[], long end_microsec[], long ierr[]);long pv_swathcalc(char *orbit_event_file, char *swath_file, long *orb_num, long *second,long *microsec, double longi [], double lati [], double alti [], long ierr[]); long pv_anxutc(char *orbit_event_file, long *orb_num, long *second, long *microsec, double *utc, long ierr[]); long pv_utcanx(char *orbit_event_file, long *orb_num, long *second, long *microsec, double *utc, long ierr[]);long pv_orbitinfo(long *mode, char *orbit_event_file, long *abs_orbit, long *rel_orbit, long *cycle, long *phase, long *repeat_cycle, long *cycle_length, double *phasing, double *mlst, double mjd_anx[], double pos_anx[], double vel_anx[], double xm_anx[], long ierr[]);long pv_starvistime(char *orbit_event_file, long *start_orbit, long *stop_orbit, char *swath_file_upper, char *swath_file_lower, char *star_id, char *star_db_file, double *star_ra, double *star_dec, long *max_segments, double *min_duration, double *star_ra_deg, double *star_dec_deg, long *number_segments, long bgn_orbit[], long bgn_second[], long bgn_microsec[], long bgn_coverage[], long end_orbit[], long end_second[], long end_microsec[], long end_coverage[], long ierr[]);/* Time Segments Manipulation *//* -------------------------- */long pv_time_segments_not (char *orbit_scenario_file, long *orbit_type, long *order_switch, long *num_segments_in, /* input segment list */ long *bgn_orbit_in, long *bgn_secs_in, long *bgn_microsecs_in, long *bgn_cycle_in, long *end_orbit_in, long *end_secs_in, long *end_microsecs_in, long *end_cycle_in, long *num_segments_out, /* output segment list */ long **bgn_orbit_out, long **bgn_secs_out, long **bgn_microsecs_out, long **bgn_cycle_out, long **end_orbit_out, long **end_secs_out, long **end_microsecs_out, long **end_cycle_out, long ierr[]);long pv_time_segments_or (char *orbit_scenario_file, long *orbit_type, long *order_switch, long *num_segments_1, /* input segment list 1*/ long *bgn_orbit_1, long *bgn_secs_1, long *bgn_microsecs_1, long *bgn_cycle_1, long *end_orbit_1, long *end_secs_1, long *end_microsecs_1, long *end_cycle_1, long *num_segments_2, /* input segment list 2*/ long *bgn_orbit_2, long *bgn_secs_2, long *bgn_microsecs_2, long *bgn_cycle_2, long *end_orbit_2, long *end_secs_2, long *end_microsecs_2, long *end_cycle_2, long *num_segments_out, /* output segment list */ long **bgn_orbit_out, long **bgn_secs_out, long **bgn_microsecs_out, long **bgn_cycle_out, long **end_orbit_out, long **end_secs_out, long **end_microsecs_out, long **end_cycle_out, long ierr[]);long pv_time_segments_and (char *orbit_scenario_file, long *orbit_type, long *order_switch, long *num_segments_1, /* input segment list 1*/ long *bgn_orbit_1, long *bgn_secs_1, long *bgn_microsecs_1, long *bgn_cycle_1, long *end_orbit_1, long *end_secs_1, long *end_microsecs_1, long *end_cycle_1, long *num_segments_2, /* input segment list 2*/ long *bgn_orbit_2, long *bgn_secs_2, long *bgn_microsecs_2, long *bgn_cycle_2, long *end_orbit_2, long *end_secs_2, long *end_microsecs_2, long *end_cycle_2, long *num_segments_out, /* output segment list */ long **bgn_orbit_out, long **bgn_secs_out, long **bgn_microsecs_out, long **bgn_cycle_out, long **end_orbit_out, long **end_secs_out, long **end_microsecs_out, long **end_cycle_out, long ierr[]);long pv_time_segments_sort (char *orbit_scenario_file, long *orbit_type, long *sort_criteria, long *num_segments, /* input segment list */ long *bgn_orbit, long *bgn_secs, long *bgn_microsecs, long *bgn_cycle, long *end_orbit, long *end_secs, long *end_microsecs, long *end_cycle, long ierr[]);long pv_time_segments_merge (char *orbit_scenario_file, long *orbit_type, long *order_switch, long *num_segments, /* input segment list 1*/ long *bgn_orbit, long *bgn_secs, long *bgn_microsecs, long *bgn_cycle, long *end_orbit, long *end_secs, long *end_microsecs, long *end_cycle, long *num_segments_out, /* output segment list */ long **bgn_orbit_out, long **bgn_secs_out, long **bgn_microsecs_out, long **bgn_cycle_out, long **end_orbit_out, long **end_secs_out, long **end_microsecs_out, long **end_cycle_out, long ierr[]); long pv_time_segments_delta (char *orbit_scenario_file, long *orbit_type, double *entry_offset, double *exit_offset, long *num_segments, /* input segment list 1*/ long *bgn_orbit, long *bgn_secs, long *bgn_microsecs, long *bgn_cycle, long *end_orbit, long *end_secs, long *end_microsecs, long *end_cycle, long *num_segments_out, /* output segment list */ long **bgn_orbit_out, long **bgn_secs_out, long **bgn_microsecs_out, long **bgn_cycle_out, long **end_orbit_out, long **end_secs_out, long **end_microsecs_out, long **end_cycle_out, long ierr[]); /* Error Handling Functions - prototype declaration *//* ================================================ */#define PV_MAX_COD PL_MAX_COD #define PV_MAX_STR PL_MAX_STR long pv_silent(void);long pv_verbose(void);long pv_print_msg(long *n, char msg[PV_MAX_COD][PV_MAX_STR]);long pv_vector_msg(long *func_id, long *ierr, long *n, char msg[PV_MAX_COD][PV_MAX_STR]);long pv_vector_code(long *func_id, long *ierr, long *n, long vec[PV_MAX_COD]);/* Modes and switches *//* ================== *//* Returned status code *//* -------------------- */typedef enum {PV_ERR = PL_ERR, /* Error status */PV_OK = PL_OK, /* Nominal status */PV_WARN = PL_WARN /* Warning status */}PV_PErr_type_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pv_zonevistime map projections *//* ------------------------------ */typedef enum{ /* It describes the map projections of the ZONEVISTIME function */ PV_READ_DB = 0, /* Read projection from DB file */ PV_GNOMONIC = 1, /* Use gnomonic projection */ PV_RECTANGULAR = 2 /* Use rectangular projection */ }PV_Proj_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! */ /* pv_zonevistime coverage outputs *//* ------------------------------- */typedef enum{ /* Indicate the type of coverage as result of a visibility segment from ZONEVISTIME */ PV_COMPLETE = 0, /* Zone completely covered by swath */ PV_LEFT = 1, /* LEFT extreme transition found by ZONEVISTIME */ PV_RIGHT = 2, /* RIGHT extreme transition found by ZONEVISTIME */ PV_BOTH = 3 /* BOTH transitions found by ZONEVISTIME*/}PV_Coverage_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pv_stavistime mask inputs *//* ------------------------- */typedef enum{ /* It describes the ground station mask used to define visibility in STAVISTIME*/ PV_COMBINE = 0, /* Combination of AOS, LOS and physical mask */ PV_AOS_LOS = 1, /* Combination of AOS/LOS only */ PV_PHYSICAL =2 /* Consider physical mask only */}PV_Mask_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pv_orbitinfo calling modes *//* -------------------------- */typedef enum { PV_ABS_INFO = 1, PV_REL_INFO = 2, PV_PHASE_INFO = 4, PV_OSV_INFO = 10 } PV_Oi_modes_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pv_starvistime coverage outputs *//* ------------------------------- */typedef enum{ /* Indicate the type of coverage as result of a visibility segment from STARVISTIME */ PV_STAR_UNDEFINED = 0, /* Visibility starts/ends at the first/last FOV in STARVISTIME */ PV_STAR_UPPER = 1, /* Visibility starts/ends at the upper FOV in STARVISTIME */ PV_STAR_LOWER = 2, /* Visibility starts/ends at the lower FOV in STARVISTIME */ PV_STAR_LEFT = 3, /* Visibility starts/ends at the left FOV in STARVISTIME */ PV_STAR_RIGHT = 4 /* Visibility starts/ends at the right FOV in STARVISTIME */}PV_Coverage_star_enum;/* Types of orbit inputs *//* --------------------- */typedef enum { PV_ORBIT_ABS = 0, /* Absolute orbit chosen as input */ PV_ORBIT_REL = 1 /* Relative orbit chosen as input */}PV_Orbit_type_enum;/* Indicate that a segment list is ordered by incresing start time*/typedef enum{ PV_TIME_ORDER=0, PV_NO_TIME_ORDER=1}PV_time_segments_order_enum;/* CFI functions IDs (for error handling) *//* -------------------------------------- */typedef enum{ PV_NO_FUNC_ID = -1, /* No function code */ PV_ZONEVISTIME_ID, PV_STAVISTIME_ID, PV_DRSVISTIME_ID, PV_SWATHCALC_ID,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -