sdata-impl.h
Go to the documentation of this file.
1 /*
2  * Copyright 2016 CNRS & Universite Lille 1. All rights reserved.
3  *
4  * Licensed under the GRASP Open Source License V1.0 (see LICENSE file)
5  */
6 
13 #ifndef SDATA_IMPL_H
14 #define SDATA_IMPL_H
15 
16 #include <time.h>
17 #include "sdata.h"
18 
19 extern int sdata_dump_handle(FILE *output_stream, SDATA_HANDLE *handle);
20 extern int sdata_read_next_record(SDATA_HANDLE *handle, SDATA_RECORD *record);
21 extern void sdata_get_date_time(SDATA_RECORD *record, char str_date_time[20 + 1]); /* format YYYY-MM-DDThh:mm:ssZ */
22 extern size_t sdata_get_num_pixels(SDATA_RECORD *record);
23 extern const SDATA_PIXEL *sdata_get_pixel(const SDATA_RECORD *record, size_t ipixel);
24 
25 
26 typedef struct SDATA_VALID_RANGES_ {
27  int ix_min, ix_max;
28  int iy_min, iy_max;
32  double hgr_min, hgr_max;
41  double dphi_min, dphi_max;
42  double hvp_min, hvp_max;
45  double meas_min, meas_max;
51 
52 struct SDATA_HANDLE_ {
53  char file_name[255 + 1];
54  FILE *file_pointer;
59 };
60 
61 struct SDATA_RECORD_ {
62  int npixels;
63  double sdata_time; /* number of days since a reference day (e.g. 1st january of the current year), + fraction of the day */
64  time_t unix_time; /* time of acquisition, in seconds since 1970-01-01T00:00:00Zday of year */
65  char str_date_time[20 + 1]; /* date of the acquisition, format YYYY-MM-DDThh:mm:ssZ (redundant with unix_time, but provided for convenience and control) */
66  double hobs;
67  int nsurf;
68  int ifgas;
71 };
72 
73 extern void init_valid_ranges(SDATA_VALID_RANGES *valid_ranges);
74 
75 #endif /* SDATA_IMPL_H */
double hvp_max
Definition: sdata-impl.h:42
int num_meas_type_min
Definition: sdata-impl.h:36
int num_valid_meas_min
Definition: sdata-impl.h:38
int ifmp_max
Definition: sdata-impl.h:47
double hgr_max
Definition: sdata-impl.h:32
struct SDATA_VALID_RANGES_ SDATA_VALID_RANGES
double latitude_min
Definition: sdata-impl.h:31
void sdata_get_date_time(SDATA_RECORD *record, char str_date_time[20+1])
Definition: sdata.c:1561
int nsurf
Definition: sdata-impl.h:67
double gaspar_min
Definition: sdata-impl.h:44
SDATA_HANDLE * handle
Definition: sdata-impl.h:69
double longitude_min
Definition: sdata-impl.h:30
SDATA_HEADER header
Definition: sdata-impl.h:55
int current_record
Definition: sdata-impl.h:58
size_t sdata_get_num_pixels(SDATA_RECORD *record)
Definition: sdata.c:1570
#define SDATA_MAX_NY
Definition: sdata.h:34
Definition: sdata-impl.h:61
double groundpar_min
Definition: sdata-impl.h:43
double land_percent_max
Definition: sdata-impl.h:33
int cloud_flag_max
Definition: sdata-impl.h:29
SDATA_VALID_RANGES valid_ranges
Definition: sdata-impl.h:56
double cmtrx_max
Definition: sdata-impl.h:48
double thetas_min
Definition: sdata-impl.h:39
double wavelength_min
Definition: sdata-impl.h:35
FILE * file_pointer
Definition: sdata-impl.h:54
double longitude_max
Definition: sdata-impl.h:30
double sdata_time
Definition: sdata-impl.h:63
SDATA_PIXEL pixels[SDATA_MAX_NX *SDATA_MAX_NY]
Definition: sdata-impl.h:70
double dphi_min
Definition: sdata-impl.h:41
double hobs
Definition: sdata-impl.h:66
const SDATA_PIXEL * sdata_get_pixel(const SDATA_RECORD *record, size_t ipixel)
Definition: sdata.c:1577
double wavelength_max
Definition: sdata-impl.h:35
int num_wavelengths_max
Definition: sdata-impl.h:34
#define SDATA_MAX_NX
Definition: sdata.h:33
int sdata_read_next_record(SDATA_HANDLE *handle, SDATA_RECORD *record)
Definition: sdata.c:1828
double thetav_max
Definition: sdata-impl.h:40
int npixels
Definition: sdata-impl.h:62
double mprof_max
Definition: sdata-impl.h:49
double thetav_min
Definition: sdata-impl.h:40
int num_valid_meas_max
Definition: sdata-impl.h:38
int num_wavelengths_min
Definition: sdata-impl.h:34
double thetas_max
Definition: sdata-impl.h:39
int iy_max
Definition: sdata-impl.h:28
int ix_max
Definition: sdata-impl.h:27
double latitude_max
Definition: sdata-impl.h:31
double gaspar_max
Definition: sdata-impl.h:44
char file_name[255+1]
Definition: sdata-impl.h:53
double meas_min
Definition: sdata-impl.h:45
double mprof_min
Definition: sdata-impl.h:49
double meas_max
Definition: sdata-impl.h:45
int iy_min
Definition: sdata-impl.h:28
int ifcov_min
Definition: sdata-impl.h:46
int num_meas_type_max
Definition: sdata-impl.h:36
time_t unix_time
Definition: sdata-impl.h:64
double groundpar_max
Definition: sdata-impl.h:43
int current_line
Definition: sdata-impl.h:57
int sdata_dump_handle(FILE *output_stream, SDATA_HANDLE *handle)
Definition: sdata.c:2341
int meas_type_max
Definition: sdata-impl.h:37
double hgr_min
Definition: sdata-impl.h:32
int ifgas
Definition: sdata-impl.h:68
int ix_min
Definition: sdata-impl.h:27
char str_date_time[20+1]
Definition: sdata-impl.h:65
Definition: sdata.h:65
Definition: sdata-impl.h:52
void init_valid_ranges(SDATA_VALID_RANGES *valid_ranges)
Definition: sdata.c:161
int ifmp_min
Definition: sdata-impl.h:47
double land_percent_min
Definition: sdata-impl.h:33
int meas_type_min
Definition: sdata-impl.h:37
double hvp_min
Definition: sdata-impl.h:42
int cloud_flag_min
Definition: sdata-impl.h:29
double dphi_max
Definition: sdata-impl.h:41
double cmtrx_min
Definition: sdata-impl.h:48
Definition: sdata.h:54
int ifcov_max
Definition: sdata-impl.h:46
Definition: sdata-impl.h:26