grasp_input_segment.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 
18 #ifndef GRASP_INPUT_SEGMENT_H
19 #define GRASP_INPUT_SEGMENT_H
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #include <inttypes.h>
26 #include "mod_par_inv.inc"
27 #include "mod_par_OS.inc"
28 
29 #ifdef WARN_DRY
30 #warning "WARN_DRY: __CHARACTERISTIC_TYPE__ duplicated (binded)"
31 #endif
32 
36 typedef struct data_wl_t_{
37  int meas_type[_KIP];
38  float wl;
39  int ind_wl;
44  float sza;
45  float thetav [_KIP][_NBVM];
46  float phi[_KIP][_NBVM];
47  int nsurf;
48  float groundpar[_KSURF];
49  float gaspar;
51  int nbvm[_KIP];
52  int nip;
54  float tod[_NBVM];
55  float aod[_NBVM];
56  float aaod[_NBVM];
57  float htod[_NBVM];
58  float p11[_NBVM];
59  float p12[_NBVM];
60  float p22[_NBVM];
61  float p33[_NBVM];
62  float p34[_NBVM];
63  float p44[_NBVM];
64  float p11_rel_ang[_NBVM];
65  float p12_rel[_NBVM];
66  float p11_intd[_NBVM]; /* p11 phase matrix element integrated in scattering angle range [ang1,ang2]; meas_type = 51 defined as [thetav, phi] */
67  float p11_intd_cut_off_1[_NBVM]; /* p11 phase matrix element integrated in scattering angle range [ang1,ang2] for rmax1 given in settings; meas_type = 52 defined as [thetav, phi] */
68  float p11_intd_cut_off_2[_NBVM]; /* p11 phase matrix element integrated in scattering angle range [ang1,ang2] for rmax2 given in settings; meas_type = 53 defined as [thetav, phi] */
69  float p11_intd_cut_off_3[_NBVM]; /* p11 phase matrix element integrated in scattering angle range [ang1,ang2] for rmax3 given in settings; meas_type = 54 defined as [thetav, phi] */
70  float p11_intd_cut_off_4[_NBVM]; /* p11 phase matrix element integrated in scattering angle range [ang1,ang2] for rmax4 given in settings; meas_type = 55 defined as [thetav, phi] */
71 
72  float ls[_KVERTM];
73  float rl[_KVERTM];
74  float dpar[_KVERTM];
75  float dper[_KVERTM];
76  float dp[_KVERTM];
77  float vext[_KVERTM];
78  float vbs[_KVERTM];
80  float i[_NBVM];
81  float q[_NBVM];
82  float u[_NBVM];
83  float p[_NBVM];
85  float i_rel_sum[_NBVM];
86  float p_rel[_NBVM];
88  float cmtrx[_KIP][_KNBVM];
89  float mprof[_KIP][_KVERTM];
90  int ifcov[_KIP];
91  int ifmp[_KIP];
93  float mu[_KIP];
94  int ind_wl_i;
95 } data_wl_t;
96 
100 typedef struct pixel_t_{
101  float hobs;
102  int nwl;
103  int cloudy;
104  float x;
105  float y;
106  int64_t t;
107  int ix;
108  int iy;
109  int it;
110  int out_x;
114  int out_y;
118  int out_t;
122  float masl;
123  float land_percent;
124  // FIXME: have 'float snow_percent;' ?
125  int irow;
130  int icol;
139  int ifgas;
140  data_wl_t meas[_KWM];
141  float hvp[_KVERTM];
142 }pixel_t;
143 
147 typedef struct sensor_data_t_{
151  int npixels;
155  int nt;
159  int nx;
163  int ny;
171  pixel_t pixel[_KIMAGE];
173 
174 
175 // For edges system
176 
178  typedef struct edges_group_x_{
179  int nx;
180  int ny;
181  int nt;
182  int icloud[_KITIME][_KIY][_KIEDGE];
183  float x[_KITIME][_KIY][_KIEDGE];
184  float y[_KITIME][_KIY][_KIEDGE];
185  int64_t t[_KITIME];
186  int out_x[_KITIME][_KIY][_KIEDGE];
187  int out_y[_KITIME][_KIY][_KIEDGE];
188  int out_t[_KITIME];
189  int it[_KITIME];
190  float AP[_KITIME][_KIY][_KIEDGE][_KPARS];
191  }edges_group_x;
192 
194  typedef struct edges_group_y_{
195  int nx;
196  int ny;
197  int nt;
198  int icloud[_KITIME][_KIEDGE][_KIX];
199  float x[_KITIME][_KIEDGE][_KIX];
200  float y[_KITIME][_KIEDGE][_KIX];
201  int64_t t[_KITIME];
202  int out_x[_KITIME][_KIEDGE][_KIX];
203  int out_y[_KITIME][_KIEDGE][_KIX];
204  int out_t[_KITIME];
205  int it[_KITIME];
206  float AP[_KITIME][_KIEDGE][_KIX][_KPARS];
207  }edges_group_y;
208 
210  typedef struct edges_group_t_{
211 
212  int nx;
213  int ny;
214  int nt;
215  int icloud[_KIEDGE][_KIY][_KIX];
216  float x[_KIEDGE][_KIY][_KIX];
217  float y[_KIEDGE][_KIY][_KIX];
218  int64_t t[_KIEDGE];
219  int out_x[_KIEDGE][_KIY][_KIX];
220  int out_y[_KIEDGE][_KIY][_KIX];
221  int out_t[_KIEDGE];
222  int it[_KIEDGE];
223  float AP[_KIEDGE][_KIY][_KIX][_KPARS];
224  }edges_group_t;
225 
227  typedef struct segment_edges_{
228  int N_I_EDGE;
229  int I_EDGE[6];
233  } segment_edges;
234 
235 
236 
237 
243 typedef struct grasp_segment_t_{
254  float iguess[_KIMAGE][_KPARS];
260 
261 
262 // Functions to manage a segment
263 
269 
276 
283 
289 void grasp_segment_remove_pixel(grasp_segment_t *segment, int ipixel);
290 
297 void grasp_segment_remove_pixels(grasp_segment_t *segment, int npixels, int *pixels);
298 
299 
300 
301 
302 // The following functions help you to set segment fields without do memory leaks.
303 // This functions does not has the objective of validate the data. The objective of
304 // following functions is to prevent memory leaks. Use this functions to set segment
305 // information. Then, the segment will be validated in scientific point of view.
306 
307 // ===== Set functions ===
308 
310 void grasp_segment_set_nt(sensor_data_t *sdata, int nt);
311 
313 void grasp_segment_set_nx(sensor_data_t *sdata, int nx);
314 
316 void grasp_segment_set_ny(sensor_data_t *sdata, int ny);
317 
319 void grasp_segment_set_npixels(sensor_data_t *sdata, int npixels);
320 
322 void grasp_segment_set_pixel_ix(sensor_data_t *sdata,int ipixel,int it);
323 
325 void grasp_segment_set_pixel_iy(sensor_data_t *sdata,int ipixel,int ix);
326 
328 void grasp_segment_set_pixel_it(sensor_data_t *sdata,int ipixel,int iy);
329 
331 void grasp_segment_set_pixel_cloudy(sensor_data_t *sdata,int ipixel,int cloudy);
332 
334 void grasp_segment_set_pixel_irow(sensor_data_t *sdata,int ipixel,int irow);
335 
337 void grasp_segment_set_pixel_icol(sensor_data_t *sdata,int ipixel,int icol);
338 
340 void grasp_segment_set_pixel_file_index(sensor_data_t *sdata,int ipixel,int file_index);
341 
343 void grasp_segment_set_pixel_x(sensor_data_t *sdata,int ipixel,float x);
344 
346 void grasp_segment_set_pixel_y(sensor_data_t *sdata,int ipixel,float y);
347 
349 void grasp_segment_set_pixel_t(sensor_data_t *sdata,int ipixel,int64_t t);
350 
352 void grasp_segment_set_pixel_out_t(sensor_data_t *sdata,int ipixel,int out_t);
353 
355 void grasp_segment_set_pixel_out_x(sensor_data_t *sdata,int ipixel,int out_x);
356 
358 void grasp_segment_set_pixel_out_y(sensor_data_t *sdata,int ipixel,int out_y);
359 
361 void grasp_segment_set_pixel_masl(sensor_data_t *sdata,int ipixel,float masl);
362 
364 void grasp_segment_set_pixel_hobs(sensor_data_t *sdata,int ipixel,float hobs);
365 
367 void grasp_segment_set_pixel_land_percent(sensor_data_t *sdata,int ipixel,float land_percent);
368 
370 void grasp_segment_set_pixel_nwl(sensor_data_t *sdata,int ipixel,int nwl);
371 
373 void grasp_segment_set_pixel_ifgas(sensor_data_t *sdata,int ipixel,int ifgas);
374 
376 void grasp_segment_set_pixel_hvp(sensor_data_t *sdata,int ipixel, int ivm, float hvp);
377 
379 void grasp_segment_set_pixel_meas_wl(sensor_data_t *sdata,int ipixel, int iwl, float wl);
380 
382 void grasp_segment_set_pixel_meas_ind_wl(sensor_data_t *sdata,int ipixel, int iwl, float ind_wl);
383 
385 void grasp_segment_set_pixel_meas_nsurf(sensor_data_t *sdata,int ipixel, int iwl, int nsurf);
386 
388 void grasp_segment_set_pixel_meas_gaspar(sensor_data_t *sdata,int ipixel, int iwl, float gaspar);
389 
391 void grasp_segment_set_pixel_meas_sza(sensor_data_t *sdata,int ipixel, int iwl, float sza);
392 
394 void grasp_segment_set_pixel_meas_groundpar(sensor_data_t *sdata,int ipixel, int iwl, int isurf, float groundpar);
395 
397 void grasp_segment_set_pixel_meas_nip(sensor_data_t *sdata,int ipixel, int iwl, int nip);
398 
400 void grasp_segment_set_pixel_meas_meas_type(sensor_data_t *sdata,int ipixel, int iwl, int ip, int meas_type);
401 
403 void grasp_segment_set_pixel_meas_nbvm(sensor_data_t *sdata,int ipixel, int iwl, int ip, int nbvm);
404 
406 void grasp_segment_set_pixel_meas_ifcov(sensor_data_t *sdata,int ipixel, int iwl, int ip, int ifcov);
407 
409 void grasp_segment_set_pixel_meas_ifmp(sensor_data_t *sdata,int ipixel, int iwl, int ip, int ifmp);
410 
412 void grasp_segment_set_pixel_meas_thetav(sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas, float thetav);
413 
415 void grasp_segment_set_pixel_meas_phi(sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas, float phi);
416 
418 void grasp_segment_set_pixel_meas_cmtrx(sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas, float cmtrx);
419 
421 void grasp_segment_set_pixel_meas_mprof(sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas, float mprof);
422 
424 void grasp_segment_set_pixel_meas_aod(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float tod);
425 
427 void grasp_segment_set_pixel_meas_tod(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float aod);
428 
430 void grasp_segment_set_pixel_meas_aaod(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float aaod);
431 
433 void grasp_segment_set_pixel_meas_htod(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float htod);
434 
436 void grasp_segment_set_pixel_meas_p11(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p11);
437 
439 void grasp_segment_set_pixel_meas_p12(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p12);
440 
442 void grasp_segment_set_pixel_meas_p22(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p22);
443 
445 void grasp_segment_set_pixel_meas_p33(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p33);
446 
448 void grasp_segment_set_pixel_meas_p34(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p34);
449 
451 void grasp_segment_set_pixel_meas_p44(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p44);
452 
454 void grasp_segment_set_pixel_meas_p11_rel_ang(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p11_rel_ang);
455 
457 void grasp_segment_set_pixel_meas_p12_rel(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p12_rel);
458 
460 void grasp_segment_set_pixel_meas_i(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float i);
461 
463 void grasp_segment_set_pixel_meas_q(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float q);
464 
466 void grasp_segment_set_pixel_meas_u(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float u);
467 
469 void grasp_segment_set_pixel_meas_p(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p);
470 
472 void grasp_segment_set_pixel_meas_p11_intd(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd);
473 
475 void grasp_segment_set_pixel_meas_p11_intd_cut_off_1(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_1);
476 
478 void grasp_segment_set_pixel_meas_p11_intd_cut_off_2(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_2);
479 
481 void grasp_segment_set_pixel_meas_p11_intd_cut_off_3(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_3);
482 
484 void grasp_segment_set_pixel_meas_p11_intd_cut_off_4(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_4);
485 
487 void grasp_segment_set_pixel_meas_i_rel_sum(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float i_rel_sum);
488 
490 void grasp_segment_set_pixel_meas_p_rel(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float p_rel);
491 
493 void grasp_segment_set_pixel_meas_ls(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float ls);
494 
496 void grasp_segment_set_pixel_meas_dp(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float dp);
497 
499 void grasp_segment_set_pixel_meas_dpar(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float dpar);
500 
502 void grasp_segment_set_pixel_meas_dper(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float dper);
503 
505 void grasp_segment_set_pixel_meas_rl(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float rl);
506 
508 void grasp_segment_set_pixel_meas_vbs(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float vbs);
509 
511 void grasp_segment_set_pixel_meas_vext(sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas, float vext);
512 
513 
514 
515 // =========get functions =======================================================
516 
517 int grasp_segment_get_nt(const sensor_data_t *sdata);
518 
519 int grasp_segment_get_nx(const sensor_data_t *sdata);
520 
521 int grasp_segment_get_ny(const sensor_data_t *sdata);
522 
523 int grasp_segment_get_npixels(const sensor_data_t *sdata);
524 
525 int grasp_segment_get_pixel_it(const sensor_data_t *sdata,int ipixel);
526 
527 int grasp_segment_get_pixel_ix(const sensor_data_t *sdata,int ipixel);
528 
529 int grasp_segment_get_pixel_iy(const sensor_data_t *sdata,int ipixel);
530 
531 int grasp_segment_get_pixel_cloudy(const sensor_data_t *sdata,int ipixel);
532 
533 int grasp_segment_get_pixel_irow(const sensor_data_t *sdata,int ipixel);
534 
535 int grasp_segment_get_pixel_icol(const sensor_data_t *sdata,int ipixel);
536 
537 int grasp_segment_get_pixel_file_index(const sensor_data_t *sdata,int ipixel);
538 
539 float grasp_segment_get_pixel_x(const sensor_data_t *sdata,int ipixel);
540 
541 float grasp_segment_get_pixel_y(const sensor_data_t *sdata,int ipixel);
542 
543 int64_t grasp_segment_get_pixel_t(const sensor_data_t *sdata,int ipixel);
544 
545 int grasp_segment_get_pixel_out_t(const sensor_data_t *sdata,int ipixel);
546 
547 int grasp_segment_get_pixel_out_x(const sensor_data_t *sdata,int ipixel);
548 
549 int grasp_segment_get_pixel_out_y(const sensor_data_t *sdata,int ipixel);
550 
551 float grasp_segment_get_pixel_masl(const sensor_data_t *sdata,int ipixel);
552 
553 float grasp_segment_get_pixel_hobs(const sensor_data_t *sdata,int ipixel);
554 
555 float grasp_segment_get_pixel_land_percent(const sensor_data_t *sdata,int ipixel);
556 
557 int grasp_segment_get_pixel_nwl(const sensor_data_t *sdata,int ipixel);
558 
559 int grasp_segment_get_pixel_ifgas(const sensor_data_t *sdata,int ipixel);
560 
561 float grasp_segment_get_pixel_hvp(const sensor_data_t *sdata,int ipixel, int ivm);
562 
563 float grasp_segment_get_pixel_meas_wl(const sensor_data_t *sdata,int ipixel, int iwl);
564 
565 float grasp_segment_get_pixel_meas_ind_wl(const sensor_data_t *sdata,int ipixel, int iwl);
566 
567 int grasp_segment_get_pixel_meas_nsurf(const sensor_data_t *sdata,int ipixel, int iwl);
568 
569 float grasp_segment_get_pixel_meas_gaspar(const sensor_data_t *sdata,int ipixel, int iwl);
570 
571 float grasp_segment_get_pixel_meas_sza(const sensor_data_t *sdata,int ipixel, int iwl);
572 
573 float grasp_segment_get_pixel_meas_groundpar(const sensor_data_t *sdata,int ipixel, int iwl, int isurf);
574 
575 int grasp_segment_get_pixel_meas_nip(const sensor_data_t *sdata,int ipixel, int iwl);
576 
577 int grasp_segment_get_pixel_meas_meas_type(const sensor_data_t *sdata,int ipixel, int iwl, int ip);
578 
579 int grasp_segment_get_pixel_meas_nbvm(const sensor_data_t *sdata,int ipixel, int iwl, int ip);
580 
581 int grasp_segment_get_pixel_meas_ifcov(const sensor_data_t *sdata,int ipixel, int iwl, int ip);
582 
583 int grasp_segment_get_pixel_meas_ifmp(const sensor_data_t *sdata,int ipixel, int iwl, int ip);
584 
585 float grasp_segment_get_pixel_meas_thetav(const sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas);
586 
587 float grasp_segment_get_pixel_meas_phi(const sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas);
588 
589 float grasp_segment_get_pixel_meas_cmtrx(const sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas);
590 
591 float grasp_segment_get_pixel_meas_mprof(const sensor_data_t *sdata,int ipixel, int iwl, int ip, int ivalidmeas);
592 
593 float grasp_segment_get_pixel_meas_tod(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
594 
595 float grasp_segment_get_pixel_meas_aod(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
596 
597 float grasp_segment_get_pixel_meas_aaod(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
598 
599 float grasp_segment_get_pixel_meas_htod(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
600 
601 float grasp_segment_get_pixel_meas_p11(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
602 
603 float grasp_segment_get_pixel_meas_p12(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
604 
605 float grasp_segment_get_pixel_meas_p22(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
606 
607 float grasp_segment_get_pixel_meas_p33(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
608 
609 float grasp_segment_get_pixel_meas_p34(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
610 
611 float grasp_segment_get_pixel_meas_p44(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
612 
613 float grasp_segment_get_pixel_meas_p11_rel_ang(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
614 
615 float grasp_segment_get_pixel_meas_p12_rel(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
616 
617 float grasp_segment_get_pixel_meas_i(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
618 
619 float grasp_segment_get_pixel_meas_q(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
620 
621 float grasp_segment_get_pixel_meas_u(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
622 
623 float grasp_segment_get_pixel_meas_p(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
624 
625 float grasp_segment_get_pixel_meas_i_rel_sum(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
626 
627 float grasp_segment_get_pixel_meas_p_rel(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
628 
629 float grasp_segment_get_pixel_meas_ls(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
630 
631 float grasp_segment_get_pixel_meas_dp(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
632 
633 float grasp_segment_get_pixel_meas_rl(const sensor_data_t *sdata,int ipixel, int iwl, int ivalidmeas);
634 
635 
636 //===== Setters for pixel =====
637 
638 
639 void grasp_segment_pixel_set_pixel_it(pixel_t *pixel ,int it);
640 
641 void grasp_segment_pixel_set_pixel_ix(pixel_t *pixel ,int ix);
642 
643 void grasp_segment_pixel_set_pixel_iy(pixel_t *pixel ,int iy);
644 
645 void grasp_segment_pixel_set_pixel_cloudy(pixel_t *pixel ,int cloudy);
646 
647 void grasp_segment_pixel_set_pixel_irow(pixel_t *pixel ,int irow);
648 
649 void grasp_segment_pixel_set_pixel_icol(pixel_t *pixel ,int icol);
650 
651 void grasp_segment_pixel_set_pixel_file_index(pixel_t *pixel ,int file_index);
652 
653 void grasp_segment_pixel_set_pixel_x(pixel_t *pixel ,float x);
654 
655 void grasp_segment_pixel_set_pixel_y(pixel_t *pixel ,float y);
656 
657 void grasp_segment_pixel_set_pixel_t(pixel_t *pixel ,int64_t t);
658 
659 void grasp_segment_pixel_set_pixel_out_t(pixel_t *pixel ,int out_t);
660 
661 void grasp_segment_pixel_set_pixel_out_x(pixel_t *pixel ,int out_x);
662 
663 void grasp_segment_pixel_set_pixel_out_y(pixel_t *pixel ,int out_y);
664 
665 void grasp_segment_pixel_set_pixel_masl(pixel_t *pixel ,float masl);
666 
667 void grasp_segment_pixel_set_pixel_hobs(pixel_t *pixel ,float hobs);
668 
669 void grasp_segment_pixel_set_pixel_land_percent(pixel_t *pixel ,float land_percent);
670 
671 void grasp_segment_pixel_set_pixel_nwl(pixel_t *pixel ,int nwl);
672 
673 void grasp_segment_pixel_set_pixel_ifgas(pixel_t *pixel ,int ifgas);
674 
675 void grasp_segment_pixel_set_pixel_hvp(pixel_t *pixel , int ivm, float hvp);
676 
677 void grasp_segment_pixel_set_pixel_meas_wl(pixel_t *pixel , int iwl, float wl);
678 
679 void grasp_segment_pixel_set_pixel_meas_ind_wl(pixel_t *pixel , int iwl, float ind_wl);
680 
681 void grasp_segment_pixel_set_pixel_meas_nsurf(pixel_t *pixel , int iwl, int nsurf);
682 
683 void grasp_segment_pixel_set_pixel_meas_gaspar(pixel_t *pixel , int iwl, float gaspar);
684 
685 void grasp_segment_pixel_set_pixel_meas_sza(pixel_t *pixel , int iwl, float sza);
686 
687 void grasp_segment_pixel_set_pixel_meas_groundpar(pixel_t *pixel , int iwl, int isurf, float groundpar);
688 
689 void grasp_segment_pixel_set_pixel_meas_nip(pixel_t *pixel , int iwl, int nip);
690 
691 void grasp_segment_pixel_set_pixel_meas_meas_type(pixel_t *pixel , int iwl, int ip, int meas_type);
692 
693 void grasp_segment_pixel_set_pixel_meas_nbvm(pixel_t *pixel , int iwl, int ip, int nbvm);
694 
695 void grasp_segment_pixel_set_pixel_meas_ifcov(pixel_t *pixel , int iwl, int ip, int ifcov);
696 
697 void grasp_segment_pixel_set_pixel_meas_ifmp(pixel_t *pixel , int iwl, int ip, int ifmp);
698 
699 void grasp_segment_pixel_set_pixel_meas_thetav(pixel_t *pixel , int iwl, int ip, int ivalidmeas, float thetav);
700 
701 void grasp_segment_pixel_set_pixel_meas_phi(pixel_t *pixel , int iwl, int ip, int ivalidmeas, float phi);
702 
703 void grasp_segment_pixel_set_pixel_meas_cmtrx(pixel_t *pixel , int iwl, int ip, int ivalidmeas, float cmtrx);
704 
705 void grasp_segment_pixel_set_pixel_meas_mprof(pixel_t *pixel , int iwl, int ip, int ivalidmeas, float mprof);
706 
707 void grasp_segment_pixel_set_pixel_meas_tod(pixel_t *pixel , int iwl, int ivalidmeas, float tod);
708 
709 void grasp_segment_pixel_set_pixel_meas_aod(pixel_t *pixel , int iwl, int ivalidmeas, float aod);
710 
711 void grasp_segment_pixel_set_pixel_meas_aaod(pixel_t *pixel , int iwl, int ivalidmeas, float aaod);
712 
713 void grasp_segment_pixel_set_pixel_meas_htod(pixel_t *pixel, int iwl, int ivalidmeas, float htod);
714 
715 void grasp_segment_pixel_set_pixel_meas_p11(pixel_t *pixel , int iwl, int ivalidmeas, float p11);
716 
717 void grasp_segment_pixel_set_pixel_meas_p12(pixel_t *pixel , int iwl, int ivalidmeas, float p12);
718 
719 void grasp_segment_pixel_set_pixel_meas_p22(pixel_t *pixel , int iwl, int ivalidmeas, float p22);
720 
721 void grasp_segment_pixel_set_pixel_meas_p33(pixel_t *pixel , int iwl, int ivalidmeas, float p33);
722 
723 void grasp_segment_pixel_set_pixel_meas_p34(pixel_t *pixel , int iwl, int ivalidmeas, float p34);
724 
725 void grasp_segment_pixel_set_pixel_meas_p44(pixel_t *pixel , int iwl, int ivalidmeas, float p44);
726 
727 void grasp_segment_pixel_set_pixel_meas_p11_rel_ang(pixel_t *pixel , int iwl, int ivalidmeas, float p11_rel_ang);
728 
729 void grasp_segment_pixel_set_pixel_meas_p12_rel(pixel_t *pixel , int iwl, int ivalidmeas, float p12_rel);
730 
731 void grasp_segment_pixel_set_pixel_meas_i(pixel_t *pixel , int iwl, int ivalidmeas, float i);
732 
733 void grasp_segment_pixel_set_pixel_meas_q(pixel_t *pixel , int iwl, int ivalidmeas, float q);
734 
735 void grasp_segment_pixel_set_pixel_meas_u(pixel_t *pixel , int iwl, int ivalidmeas, float u);
736 
737 void grasp_segment_pixel_set_pixel_meas_p(pixel_t *pixel , int iwl, int ivalidmeas, float p);
738 
739 void grasp_segment_pixel_set_pixel_meas_i_rel_sum(pixel_t *pixel , int iwl, int ivalidmeas, float i_rel_sum);
740 
741 void grasp_segment_pixel_set_pixel_meas_p_rel(pixel_t *pixel , int iwl, int ivalidmeas, float p_rel);
742 
743 void grasp_segment_pixel_set_pixel_meas_ls(pixel_t *pixel , int iwl, int ivalidmeas, float ls);
744 
745 void grasp_segment_pixel_set_pixel_meas_dp(pixel_t *pixel , int iwl, int ivalidmeas, float dp);
746 
747 void grasp_segment_pixel_set_pixel_meas_rl(pixel_t *pixel , int iwl, int ivalidmeas, float rl);
748 
749 
750 
751 //===== Getters for pixel =====
752 
753 int grasp_segment_pixel_get_pixel_it(const pixel_t *pixel );
754 
755 int grasp_segment_pixel_get_pixel_ix(const pixel_t *pixel );
756 
757 int grasp_segment_pixel_get_pixel_iy(const pixel_t *pixel );
758 
760 
762 
764 
766 
767 float grasp_segment_pixel_get_pixel_x(const pixel_t *pixel );
768 
769 float grasp_segment_pixel_get_pixel_y(const pixel_t *pixel );
770 
771 int64_t grasp_segment_pixel_get_pixel_t(const pixel_t *pixel );
772 
774 
776 
778 
779 float grasp_segment_pixel_get_pixel_masl(const pixel_t *pixel );
780 
781 float grasp_segment_pixel_get_pixel_hobs(const pixel_t *pixel );
782 
784 
785 int grasp_segment_pixel_get_pixel_nwl(const pixel_t *pixel );
786 
788 
789 float grasp_segment_pixel_get_pixel_hvp(const pixel_t *pixel , int ivm);
790 
791 float grasp_segment_pixel_get_pixel_meas_wl(const pixel_t *pixel , int iwl);
792 
793 float grasp_segment_pixel_get_pixel_meas_ind_wl(const pixel_t *pixel , int iwl);
794 
795 int grasp_segment_pixel_get_pixel_meas_nsurf(const pixel_t *pixel , int iwl);
796 
797 float grasp_segment_pixel_get_pixel_meas_gaspar(const pixel_t *pixel , int iwl);
798 
799 float grasp_segment_pixel_get_pixel_meas_sza(const pixel_t *pixel , int iwl);
800 
801 float grasp_segment_pixel_get_pixel_meas_groundpar(const pixel_t *pixel , int iwl, int isurf);
802 
803 int grasp_segment_pixel_get_pixel_meas_nip(const pixel_t *pixel , int iwl);
804 
805 int grasp_segment_pixel_get_pixel_meas_meas_type(const pixel_t *pixel , int iwl, int ip);
806 
807 int grasp_segment_pixel_get_pixel_meas_nbvm(const pixel_t *pixel , int iwl, int ip);
808 
809 int grasp_segment_pixel_get_pixel_meas_ifcov(const pixel_t *pixel , int iwl, int ip);
810 
811 int grasp_segment_pixel_get_pixel_meas_ifmp(const pixel_t *pixel , int iwl, int ip);
812 
813 float grasp_segment_pixel_get_pixel_meas_thetav(const pixel_t *pixel , int iwl, int ip, int ivalidmeas);
814 
815 float grasp_segment_pixel_get_pixel_meas_phi(const pixel_t *pixel , int iwl, int ip, int ivalidmeas);
816 
817 float grasp_segment_pixel_get_pixel_meas_cmtrx(const pixel_t *pixel , int iwl, int ip, int ivalidmeas);
818 
819 float grasp_segment_pixel_get_pixel_meas_mprof(const pixel_t *pixel , int iwl, int ip, int ivalidmeas);
820 
821 float grasp_segment_pixel_get_pixel_meas_tod(const pixel_t *pixel , int iwl, int ivalidmeas);
822 
823 float grasp_segment_pixel_get_pixel_meas_aod(const pixel_t *pixel , int iwl, int ivalidmeas);
824 
825 float grasp_segment_pixel_get_pixel_meas_aaod(const pixel_t *pixel , int iwl, int ivalidmeas);
826 
827 float grasp_segment_pixel_get_pixel_meas_htod(const pixel_t *pixel, int iwl, int ivalidmeas);
828 
829 float grasp_segment_pixel_get_pixel_meas_p11(const pixel_t *pixel , int iwl, int ivalidmeas);
830 
831 float grasp_segment_pixel_get_pixel_meas_p12(const pixel_t *pixel , int iwl, int ivalidmeas);
832 
833 float grasp_segment_pixel_get_pixel_meas_p22(const pixel_t *pixel , int iwl, int ivalidmeas);
834 
835 float grasp_segment_pixel_get_pixel_meas_p33(const pixel_t *pixel , int iwl, int ivalidmeas);
836 
837 float grasp_segment_pixel_get_pixel_meas_p34(const pixel_t *pixel , int iwl, int ivalidmeas);
838 
839 float grasp_segment_pixel_get_pixel_meas_p44(const pixel_t *pixel , int iwl, int ivalidmeas);
840 
841 float grasp_segment_pixel_get_pixel_meas_p11_rel_ang(const pixel_t *pixel , int iwl, int ivalidmeas);
842 
843 float grasp_segment_pixel_get_pixel_meas_p12_rel(const pixel_t *pixel , int iwl, int ivalidmeas);
844 
845 float grasp_segment_pixel_get_pixel_meas_i(const pixel_t *pixel , int iwl, int ivalidmeas);
846 
847 float grasp_segment_pixel_get_pixel_meas_q(const pixel_t *pixel , int iwl, int ivalidmeas);
848 
849 float grasp_segment_pixel_get_pixel_meas_u(const pixel_t *pixel , int iwl, int ivalidmeas);
850 
851 float grasp_segment_pixel_get_pixel_meas_p(const pixel_t *pixel , int iwl, int ivalidmeas);
852 
853 float grasp_segment_pixel_get_pixel_meas_i_rel_sum(const pixel_t *pixel , int iwl, int ivalidmeas);
854 
855 float grasp_segment_pixel_get_pixel_meas_p_rel(const pixel_t *pixel , int iwl, int ivalidmeas);
856 
857 float grasp_segment_pixel_get_pixel_meas_ls(const pixel_t *pixel , int iwl, int ivalidmeas);
858 
859 float grasp_segment_pixel_get_pixel_meas_dp(const pixel_t *pixel , int iwl, int ivalidmeas);
860 
861 float grasp_segment_pixel_get_pixel_meas_rl(const pixel_t *pixel , int iwl, int ivalidmeas);
862 
863 
864 #ifdef __cplusplus
865 }
866 #endif
867 
868 #endif /* GRASP_INPUT_SEGMENT_H */
869 
int grasp_segment_get_pixel_meas_nip(const sensor_data_t *sdata, int ipixel, int iwl)
Definition: grasp_input_segment.c:1250
int grasp_segment_get_pixel_meas_ifcov(const sensor_data_t *sdata, int ipixel, int iwl, int ip)
Definition: grasp_input_segment.c:1281
void grasp_segment_set_pixel_ifgas(sensor_data_t *sdata, int ipixel, int ifgas)
Set sdata->pixel[ipixel].ifgas.
Definition: grasp_input_segment.c:522
int out_t
Index of T index in output grid.
Definition: grasp_input_segment.h:118
sensor_data_t sdata
Definition: grasp_input_segment.h:248
float grasp_segment_pixel_get_pixel_meas_p_rel(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2439
float mu[_KIP]
value of crosstalk between par/per lidar channels
Definition: grasp_input_segment.h:93
void grasp_segment_pixel_set_pixel_meas_tod(pixel_t *pixel, int iwl, int ivalidmeas, float tod)
Definition: grasp_input_segment.c:1835
int nx
nx - size of X edges with data
Definition: grasp_input_segment.h:179
float grasp_segment_pixel_get_pixel_hvp(const pixel_t *pixel, int ivm)
Definition: grasp_input_segment.c:2157
float grasp_segment_get_pixel_y(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1118
float grasp_segment_get_pixel_land_percent(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1166
struct segment_edges_ segment_edges
float grasp_segment_pixel_get_pixel_meas_aaod(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2308
int ifgas
1 if the gas correction will be applied to this pixel
Definition: grasp_input_segment.h:139
int64_t t[_KITIME]
t(_KITIME) - pixel time (T)
Definition: grasp_input_segment.h:185
float grasp_segment_get_pixel_meas_ind_wl(const sensor_data_t *sdata, int ipixel, int iwl)
Definition: grasp_input_segment.c:1203
int out_x[_KITIME][_KIEDGE][_KIX]
x(_KIX,_KIEDGE,_KITIME) - absolute position of pixel inside the tile in x dimension
Definition: grasp_input_segment.h:202
void grasp_segment_set_pixel_file_index(sensor_data_t *sdata, int ipixel, int file_index)
Set sdata->pixel[ipixel].file_index.
Definition: grasp_input_segment.c:435
float grasp_segment_pixel_get_pixel_land_percent(const pixel_t *pixel)
Definition: grasp_input_segment.c:2142
void grasp_segment_set_pixel_meas_ls(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float ls)
Set sdata->pixel[ipixel].meas[iwl].LS[ivalidmeas].
Definition: grasp_input_segment.c:967
int icloud[_KIEDGE][_KIY][_KIX]
icloud(_KIX,_KIY,_KIEDGE) - cloud present index
Definition: grasp_input_segment.h:215
float grasp_segment_get_pixel_meas_q(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1498
void grasp_segment_set_pixel_meas_sza(sensor_data_t *sdata, int ipixel, int iwl, float sza)
Set sdata->pixel[ipixel].meas[iwl].sza.
Definition: grasp_input_segment.c:577
real, dimension(nd), parameter aod
list of optical thicknesses for LUT
Definition: mod_rt_sos_lut.f90:30
float grasp_segment_get_pixel_hobs(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1159
int grasp_segment_pixel_get_pixel_nwl(const pixel_t *pixel)
Definition: grasp_input_segment.c:2147
void grasp_segment_set_pixel_meas_tod(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float aod)
Set sdata->pixel[ipixel].meas[iwl].aod[ivalidmeas].
Definition: grasp_input_segment.c:712
float grasp_segment_get_pixel_meas_cmtrx(const sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:1329
float grasp_segment_pixel_get_pixel_meas_ind_wl(const pixel_t *pixel, int iwl)
Definition: grasp_input_segment.c:2169
void grasp_segment_remove_pixels(grasp_segment_t *segment, int npixels, int *pixels)
Definition: grasp_input_segment.c:345
int grasp_segment_pixel_get_pixel_meas_meas_type(const pixel_t *pixel, int iwl, int ip)
Definition: grasp_input_segment.c:2213
void grasp_segment_set_pixel_meas_nip(sensor_data_t *sdata, int ipixel, int iwl, int nip)
Set sdata->pixel[ipixel].meas[iwl].nip.
Definition: grasp_input_segment.c:597
float p11_intd_cut_off_3[_NBVM]
Definition: grasp_input_segment.h:69
float grasp_segment_get_pixel_meas_p34(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1448
void grasp_segment_pixel_set_pixel_meas_p22(pixel_t *pixel, int iwl, int ivalidmeas, float p22)
Definition: grasp_input_segment.c:1889
void grasp_segment_pixel_set_pixel_meas_groundpar(pixel_t *pixel, int iwl, int isurf, float groundpar)
Definition: grasp_input_segment.c:1736
int ny
ny - size of Y edges with data
Definition: grasp_input_segment.h:196
float ls[_KVERTM]
Values of lidar signal
Definition: grasp_input_segment.h:72
void grasp_segment_set_pixel_meas_nsurf(sensor_data_t *sdata, int ipixel, int iwl, int nsurf)
Set sdata->pixel[ipixel].meas[iwl].Nsurf.
Definition: grasp_input_segment.c:557
void grasp_segment_remove_pixel(grasp_segment_t *segment, int ipixel)
Definition: grasp_input_segment.c:309
void grasp_segment_pixel_set_pixel_meas_cmtrx(pixel_t *pixel, int iwl, int ip, int ivalidmeas, float cmtrx)
Definition: grasp_input_segment.c:1814
void grasp_segment_set_pixel_hobs(sensor_data_t *sdata, int ipixel, float hobs)
Set sdata->pixel[ipixel].HOBS.
Definition: grasp_input_segment.c:497
void grasp_segment_pixel_set_pixel_out_t(pixel_t *pixel, int out_t)
Definition: grasp_input_segment.c:1647
void grasp_segment_set_pixel_land_percent(sensor_data_t *sdata, int ipixel, float land_percent)
Set sdata->pixel[ipixel].land_percent.
Definition: grasp_input_segment.c:504
void grasp_segment_pixel_set_pixel_meas_p_rel(pixel_t *pixel, int iwl, int ivalidmeas, float p_rel)
Definition: grasp_input_segment.c:1989
float thetav[_KIP][_NBVM]
View zenit angle (thetav) for each measure in this wavelength in degrees
Definition: grasp_input_segment.h:45
struct edges_group_t_ edges_group_t
void grasp_segment_pixel_set_pixel_meas_aaod(pixel_t *pixel, int iwl, int ivalidmeas, float aaod)
Definition: grasp_input_segment.c:1853
void grasp_segment_pixel_set_pixel_meas_ifcov(pixel_t *pixel, int iwl, int ip, int ifcov)
Definition: grasp_input_segment.c:1774
float p44[_NBVM]
Values of p44 phase matrix element.
Definition: grasp_input_segment.h:63
void grasp_segment_set_npixels(sensor_data_t *sdata, int npixels)
Set number of pixels dimensions in segment data. It has to be after set nt, nx and ny.
Definition: grasp_input_segment.c:378
void grasp_segment_pixel_set_pixel_meas_ifmp(pixel_t *pixel, int iwl, int ip, int ifmp)
Definition: grasp_input_segment.c:1784
float grasp_segment_get_pixel_meas_p12(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1415
float y[_KITIME][_KIEDGE][_KIX]
y(_KIX,_KIEDGE,_KITIME) - pixel latitude (Y)
Definition: grasp_input_segment.h:200
void grasp_segment_pixel_set_pixel_meas_ls(pixel_t *pixel, int iwl, int ivalidmeas, float ls)
Definition: grasp_input_segment.c:1998
Definition: grasp_input_segment.h:178
float grasp_segment_pixel_get_pixel_meas_u(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2412
void grasp_segment_pixel_set_pixel_meas_q(pixel_t *pixel, int iwl, int ivalidmeas, float q)
Definition: grasp_input_segment.c:1953
int grasp_segment_get_pixel_cloudy(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1085
int grasp_sdata_validate(sensor_data_t *sdata)
Definition: grasp_input_segment.c:29
int it[_KITIME]
it(_KITIME) - array contains time indices for time with data
Definition: grasp_input_segment.h:189
void grasp_segment_pixel_set_pixel_meas_i_rel_sum(pixel_t *pixel, int iwl, int ivalidmeas, float i_rel_sum)
Definition: grasp_input_segment.c:1980
int nsurf
Skip it: Number of surface. Currently not used
Definition: grasp_input_segment.h:47
int nx
nx - size of X edges with data
Definition: grasp_input_segment.h:212
float grasp_segment_pixel_get_pixel_meas_p22(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2344
float dpar[_KVERTM]
Values of parallel polarized lidar
Definition: grasp_input_segment.h:74
void grasp_segment_pixel_set_pixel_icol(pixel_t *pixel, int icol)
Definition: grasp_input_segment.c:1616
struct sensor_data_t_ sensor_data_t
float u[_NBVM]
U Stokes parameter
Definition: grasp_input_segment.h:82
void grasp_segment_pixel_set_pixel_y(pixel_t *pixel, float y)
Definition: grasp_input_segment.c:1634
float x[_KITIME][_KIEDGE][_KIX]
x(_KIX,_KIEDGE,_KITIME) - pixel longitude (X)
Definition: grasp_input_segment.h:199
float grasp_segment_pixel_get_pixel_meas_groundpar(const pixel_t *pixel, int iwl, int isurf)
Definition: grasp_input_segment.c:2197
int grasp_segment_get_pixel_it(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1065
void grasp_segment_pixel_set_pixel_ifgas(pixel_t *pixel, int ifgas)
Definition: grasp_input_segment.c:1686
void grasp_segment_set_pixel_irow(sensor_data_t *sdata, int ipixel, int irow)
Set sdata->pixel[ipixel].irow.
Definition: grasp_input_segment.c:421
edges_group_t group_t[2]
group_T(2) - array of present group indices (group(1:N_I_EDGE))
Definition: grasp_input_segment.h:232
float grasp_segment_get_pixel_x(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1113
float grasp_segment_get_pixel_meas_ls(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1547
void grasp_segment_pixel_set_pixel_meas_mprof(pixel_t *pixel, int iwl, int ip, int ivalidmeas, float mprof)
Definition: grasp_input_segment.c:1824
void grasp_segment_pixel_set_pixel_out_x(pixel_t *pixel, int out_x)
Definition: grasp_input_segment.c:1652
float AP[_KIEDGE][_KIY][_KIX][_KPARS]
AP(KPARS,_KIX,_KIY,_KIEDGE) - parameters in edge data
Definition: grasp_input_segment.h:223
void grasp_segment_set_pixel_meas_meas_type(sensor_data_t *sdata, int ipixel, int iwl, int ip, int meas_type)
Set sdata->pixel[ipixel].meas[iwl].meas_type[ip].
Definition: grasp_input_segment.c:608
float grasp_segment_pixel_get_pixel_meas_p33(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2353
float sza
Solar zenit angle of current wavelength in degrees.
Definition: grasp_input_segment.h:44
void grasp_segment_pixel_set_pixel_meas_ind_wl(pixel_t *pixel, int iwl, float ind_wl)
Definition: grasp_input_segment.c:1706
void grasp_segment_pixel_set_pixel_cloudy(pixel_t *pixel, int cloudy)
Definition: grasp_input_segment.c:1605
void grasp_segment_set_pixel_meas_rl(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float rl)
Set sdata->pixel[ipixel].meas[iwl].RL[ivalidmeas].
Definition: grasp_input_segment.c:1011
void grasp_segment_set_pixel_meas_i_rel_sum(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float i_rel_sum)
Set sdata->pixel[ipixel].meas[iwl].i_rel_sum[ivalidmeas].
Definition: grasp_input_segment.c:945
float dp[_KVERTM]
Values of depolarization ratio
Definition: grasp_input_segment.h:76
int nbvm[_KIP]
Number of measurements for each measure type
Definition: grasp_input_segment.h:51
int grasp_segment_get_pixel_iy(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1077
float iguess[_KIMAGE][_KPARS]
Definition: grasp_input_segment.h:254
int64_t t[_KITIME]
t(_KITIME) - pixel time (T)
Definition: grasp_input_segment.h:201
int grasp_segment_get_nt(const sensor_data_t *sdata)
Definition: grasp_input_segment.c:1045
void grasp_segment_initialize(grasp_segment_t *segment)
Definition: grasp_input_segment.c:17
float grasp_segment_pixel_get_pixel_meas_mprof(const pixel_t *pixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:2279
int out_y[_KITIME][_KIY][_KIEDGE]
y(_KIEDGE,_KIY,_KITIME) - absolute position of pixel inside the tile in y dimension
Definition: grasp_input_segment.h:187
void grasp_segment_set_pixel_out_y(sensor_data_t *sdata, int ipixel, int out_y)
Set sdata->pixel[ipixel].out_y.
Definition: grasp_input_segment.c:483
float grasp_segment_get_pixel_meas_p44(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1459
void grasp_segment_set_pixel_meas_p12_rel(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p12_rel)
Set sdata->pixel[ipixel].meas[iwl].p12_rel[ivalidmeas].
Definition: grasp_input_segment.c:833
float phi[_KIP][_NBVM]
relative azimuth angle (phi) for each measure in this wavelength in degrees
Definition: grasp_input_segment.h:46
int nt
nt - size of T edges with data
Definition: grasp_input_segment.h:214
void grasp_segment_pixel_set_pixel_irow(pixel_t *pixel, int irow)
Definition: grasp_input_segment.c:1611
float grasp_segment_get_pixel_meas_p12_rel(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1481
float grasp_segment_pixel_get_pixel_meas_aod(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2299
float cmtrx[_KIP][_KNBVM]
Diagonal of covariance matrix (also known as OMEGA)
Definition: grasp_input_segment.h:88
float htod[_NBVM]
hyperspectral relative irradiance; meas_type = 14
Definition: grasp_input_segment.h:57
void grasp_segment_pixel_set_pixel_meas_nbvm(pixel_t *pixel, int iwl, int ip, int nbvm)
Definition: grasp_input_segment.c:1763
int icloud[_KITIME][_KIEDGE][_KIX]
icloud(_KIX,_KIEDGE,_KITIME) - cloud present index
Definition: grasp_input_segment.h:198
int grasp_segment_pixel_get_pixel_iy(const pixel_t *pixel)
Definition: grasp_input_segment.c:2075
float p11_intd_cut_off_2[_NBVM]
Definition: grasp_input_segment.h:68
void grasp_segment_set_pixel_meas_phi(sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas, float phi)
Set sdata->pixel[ipixel].meas[iwl].phi[ip][ivalidmeas].
Definition: grasp_input_segment.c:670
int grasp_segment_get_pixel_ifgas(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1180
float grasp_segment_get_pixel_meas_i_rel_sum(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1529
void grasp_segment_set_pixel_meas_p11_intd(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd)
Set sdata->pixel[ipixel].meas[iwl].P11_intd[ivalidmeas].
Definition: grasp_input_segment.c:889
float grasp_segment_pixel_get_pixel_meas_q(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2403
int grasp_segment_get_pixel_meas_nsurf(const sensor_data_t *sdata, int ipixel, int iwl)
Definition: grasp_input_segment.c:1212
float masl
Metres Above Sea Level.
Definition: grasp_input_segment.h:122
void grasp_segment_pixel_set_pixel_meas_phi(pixel_t *pixel, int iwl, int ip, int ivalidmeas, float phi)
Definition: grasp_input_segment.c:1804
float hvp[_KVERTM]
Height for vertical profile
Definition: grasp_input_segment.h:141
Definition: grasp_input_segment.h:210
float p11_rel_ang[_NBVM]
p11/p11(given_angle) phase matrix element; meas_type = 27
Definition: grasp_input_segment.h:64
void grasp_segment_set_pixel_it(sensor_data_t *sdata, int ipixel, int iy)
Set sdata->pixel[ipixel].iy.
Definition: grasp_input_segment.c:385
float grasp_segment_pixel_get_pixel_masl(const pixel_t *pixel)
Definition: grasp_input_segment.c:2132
pixel_t pixel[_KIMAGE]
Definition: grasp_input_segment.h:171
void grasp_segment_set_pixel_meas_q(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float q)
Set sdata->pixel[ipixel].meas[iwl].Q[ivalidmeas].
Definition: grasp_input_segment.c:855
void grasp_segment_set_pixel_meas_wl(sensor_data_t *sdata, int ipixel, int iwl, float wl)
Set sdata->pixel[ipixel].meas[iwl].wl.
Definition: grasp_input_segment.c:539
struct pixel_t_ pixel_t
float tod[_NBVM]
total optical depth; meas_type = 11
Definition: grasp_input_segment.h:54
int ind_wl
Index of wavelength in the list of wavelengths.
Definition: grasp_input_segment.h:39
void grasp_segment_pixel_set_pixel_meas_p(pixel_t *pixel, int iwl, int ivalidmeas, float p)
Definition: grasp_input_segment.c:1971
int grasp_segment_pixel_get_pixel_file_index(const pixel_t *pixel)
Definition: grasp_input_segment.c:2096
void grasp_segment_set_pixel_meas_p11_intd_cut_off_2(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_2)
Set sdata->pixel[ipixel].meas[iwl].P11_intd_cut_off_2[ivalidmeas].
Definition: grasp_input_segment.c:911
void grasp_segment_set_pixel_meas_p11_intd_cut_off_4(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_4)
Set sdata->pixel[ipixel].meas[iwl].P11_intd_cut_off_4[ivalidmeas].
Definition: grasp_input_segment.c:933
int grasp_segment_validate(grasp_segment_t *segment)
Definition: grasp_input_segment.c:25
void grasp_segment_pixel_set_pixel_file_index(pixel_t *pixel, int file_index)
Definition: grasp_input_segment.c:1621
int grasp_segment_get_pixel_irow(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1092
Definition: grasp_input_segment.h:147
integer, parameter nbvm
Definition: mod_par_os.f90:43
void grasp_segment_pixel_set_pixel_meas_p34(pixel_t *pixel, int iwl, int ivalidmeas, float p34)
Definition: grasp_input_segment.c:1908
float q[_NBVM]
Q Stokes parameter
Definition: grasp_input_segment.h:81
float p11_intd[_NBVM]
Definition: grasp_input_segment.h:66
void grasp_segment_set_nx(sensor_data_t *sdata, int nx)
Set number of x dimensions in segment data.
Definition: grasp_input_segment.c:364
int out_t[_KIEDGE]
t(_KIEDGE) - absolute position of pixel inside the tile in t dimension
Definition: grasp_input_segment.h:221
float rl[_KVERTM]
Values of Raman lidar signal
Definition: grasp_input_segment.h:73
int out_y[_KITIME][_KIEDGE][_KIX]
y(_KIX,_KIEDGE,_KITIME) - absolute position of pixel inside the tile in y dimension
Definition: grasp_input_segment.h:203
void grasp_segment_set_pixel_meas_p11_rel_ang(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_rel_ang)
Set sdata->pixel[ipixel].meas[iwl].p11_rel_ang[ivalidmeas].
Definition: grasp_input_segment.c:822
int meas_type[_KIP]
Type of measure of each kind of measure
Definition: grasp_input_segment.h:37
float grasp_segment_get_pixel_meas_dp(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1558
int grasp_segment_pixel_get_pixel_meas_nsurf(const pixel_t *pixel, int iwl)
Definition: grasp_input_segment.c:2176
float grasp_segment_pixel_get_pixel_meas_gaspar(const pixel_t *pixel, int iwl)
Definition: grasp_input_segment.c:2183
float grasp_segment_pixel_get_pixel_x(const pixel_t *pixel)
Definition: grasp_input_segment.c:2101
edges_group_y group_y[2]
group_Y(2) - array of present group indices (group(1:N_I_EDGE))
Definition: grasp_input_segment.h:231
void grasp_segment_set_pixel_ix(sensor_data_t *sdata, int ipixel, int it)
Set sdata->pixel[ipixel].ix.
Definition: grasp_input_segment.c:394
void grasp_segment_set_pixel_meas_mprof(sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas, float mprof)
Set sdata->pixel[ipixel].meas[iwl].MPROF[ip][ivalidmea].
Definition: grasp_input_segment.c:698
float grasp_segment_get_pixel_meas_thetav(const sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:1303
void grasp_segment_pixel_set_pixel_hobs(pixel_t *pixel, float hobs)
Definition: grasp_input_segment.c:1667
void grasp_segment_pixel_set_pixel_meas_dp(pixel_t *pixel, int iwl, int ivalidmeas, float dp)
Definition: grasp_input_segment.c:2007
int grasp_segment_pixel_get_pixel_ifgas(const pixel_t *pixel)
Definition: grasp_input_segment.c:2152
int grasp_segment_pixel_get_pixel_out_x(const pixel_t *pixel)
Definition: grasp_input_segment.c:2122
void grasp_segment_pixel_set_pixel_land_percent(pixel_t *pixel, float land_percent)
Definition: grasp_input_segment.c:1672
int64_t t
Datetime (Unix timestamp)
Definition: grasp_input_segment.h:106
int grasp_segment_pixel_get_pixel_meas_ifmp(const pixel_t *pixel, int iwl, int ip)
Definition: grasp_input_segment.c:2240
void grasp_segment_set_pixel_meas_dp(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float dp)
Set sdata->pixel[ipixel].meas[iwl].DP[ivalidmeas].
Definition: grasp_input_segment.c:978
float i[_NBVM]
I Stokes parameter
Definition: grasp_input_segment.h:80
int grasp_segment_get_pixel_file_index(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1106
void grasp_segment_pixel_set_pixel_t(pixel_t *pixel, int64_t t)
Definition: grasp_input_segment.c:1641
int iy
Internal Y index of pixel inside the segment starting in 1.
Definition: grasp_input_segment.h:108
float land_percent
Metres Above Sea Level.
Definition: grasp_input_segment.h:123
float x
Longitude.
Definition: grasp_input_segment.h:104
void grasp_segment_set_pixel_meas_p11(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11)
Set sdata->pixel[ipixel].meas[iwl].p11[ivalidmeas].
Definition: grasp_input_segment.c:756
float grasp_segment_pixel_get_pixel_meas_ls(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2448
float grasp_segment_get_pixel_meas_u(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1509
void grasp_segment_pixel_set_pixel_meas_nip(pixel_t *pixel, int iwl, int nip)
Definition: grasp_input_segment.c:1745
void grasp_segment_pixel_set_pixel_meas_aod(pixel_t *pixel, int iwl, int ivalidmeas, float aod)
Definition: grasp_input_segment.c:1844
int grasp_segment_pixel_get_pixel_meas_nbvm(const pixel_t *pixel, int iwl, int ip)
Definition: grasp_input_segment.c:2222
float grasp_segment_get_pixel_meas_wl(const sensor_data_t *sdata, int ipixel, int iwl)
Definition: grasp_input_segment.c:1196
float vbs[_KVERTM]
Raman lidar signal; meas_type = 39
Definition: grasp_input_segment.h:78
float grasp_segment_pixel_get_pixel_meas_rl(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2484
int grasp_segment_get_pixel_out_y(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1145
int nt
nt - size of T edges with data
Definition: grasp_input_segment.h:181
int irow
Index for row (y) in input grid.
Definition: grasp_input_segment.h:125
void grasp_segment_pixel_set_pixel_meas_p11_rel_ang(pixel_t *pixel, int iwl, int ivalidmeas, float p11_rel_ang)
Definition: grasp_input_segment.c:1926
int ind_wl_i
index of initial wl in list of wavelenghts corresponding to an index of a shifted measurement (e....
Definition: grasp_input_segment.h:94
int out_x
Index of X index in output grid.
Definition: grasp_input_segment.h:110
int nwl
Number of wavelengths.
Definition: grasp_input_segment.h:102
int cloudy
If pixel is cloudy or not. 0=cloud and 1=clean.
Definition: grasp_input_segment.h:103
int icol
Index for col (x) in input grid.
Definition: grasp_input_segment.h:130
float grasp_segment_pixel_get_pixel_meas_wl(const pixel_t *pixel, int iwl)
Definition: grasp_input_segment.c:2164
int it
Internal T index of pixel inside the segment starting in 1.
Definition: grasp_input_segment.h:109
void grasp_segment_set_pixel_meas_dper(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float dper)
Set sdata->pixel[ipixel].meas[iwl].DPER[ivalidmeas].
Definition: grasp_input_segment.c:1000
int grasp_segment_pixel_get_pixel_meas_nip(const pixel_t *pixel, int iwl)
Definition: grasp_input_segment.c:2206
void grasp_segment_pixel_set_pixel_ix(pixel_t *pixel, int ix)
Definition: grasp_input_segment.c:1590
int icloud[_KITIME][_KIY][_KIEDGE]
icloud(_KIEDGE,_KIY,_KITIME) - cloud present indicator
Definition: grasp_input_segment.h:182
void grasp_segment_pixel_set_pixel_it(pixel_t *pixel, int it)
Definition: grasp_input_segment.c:1583
float grasp_segment_get_pixel_meas_htod(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1392
void grasp_segment_set_pixel_out_x(sensor_data_t *sdata, int ipixel, int out_x)
Set sdata->pixel[ipixel].out_x.
Definition: grasp_input_segment.c:476
float grasp_segment_pixel_get_pixel_hobs(const pixel_t *pixel)
Definition: grasp_input_segment.c:2137
float grasp_segment_pixel_get_pixel_meas_i_rel_sum(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2430
void grasp_segment_set_pixel_meas_nbvm(sensor_data_t *sdata, int ipixel, int iwl, int ip, int nbvm)
Set sdata->pixel[ipixel].meas[iwl].nbvm[ip]
Definition: grasp_input_segment.c:619
void grasp_segment_set_pixel_meas_p34(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p34)
Set sdata->pixel[ipixel].meas[iwl].p34[ivalidmeas].
Definition: grasp_input_segment.c:800
float grasp_segment_pixel_get_pixel_meas_sza(const pixel_t *pixel, int iwl)
Definition: grasp_input_segment.c:2190
float grasp_segment_pixel_get_pixel_meas_p34(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2362
void grasp_segment_pixel_set_pixel_meas_gaspar(pixel_t *pixel, int iwl, float gaspar)
Definition: grasp_input_segment.c:1722
int out_y
Index of Y index in output grid.
Definition: grasp_input_segment.h:114
int ix
Internal X index of pixel inside the segment starting in 1.
Definition: grasp_input_segment.h:107
float p33[_NBVM]
Values of p33 phase matrix element.
Definition: grasp_input_segment.h:61
void grasp_segment_pixel_set_pixel_out_y(pixel_t *pixel, int out_y)
Definition: grasp_input_segment.c:1657
float grasp_segment_pixel_get_pixel_meas_htod(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2317
void grasp_segment_pixel_set_pixel_masl(pixel_t *pixel, float masl)
Definition: grasp_input_segment.c:1662
int nip
Number of measure types in this wavelength
Definition: grasp_input_segment.h:52
float y
Latitude
Definition: grasp_input_segment.h:105
float aaod[_NBVM]
absorption aerosol optical depth; meas_type = 13
Definition: grasp_input_segment.h:56
float i_rel_sum[_NBVM]
Relative Stokes parameter I/sum(I(1:NBVM)); meas_type = 45.
Definition: grasp_input_segment.h:85
void grasp_segment_pixel_set_pixel_meas_p11(pixel_t *pixel, int iwl, int ivalidmeas, float p11)
Definition: grasp_input_segment.c:1871
float grasp_segment_get_pixel_meas_rl(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1569
int grasp_segment_get_ny(const sensor_data_t *sdata)
Definition: grasp_input_segment.c:1055
int file_index
Reference to used_files array (in tile)
Definition: grasp_input_segment.h:135
int grasp_segment_get_pixel_ix(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1072
float grasp_segment_pixel_get_pixel_meas_dp(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2457
struct edges_group_y_ edges_group_y
float grasp_segment_pixel_get_pixel_meas_thetav(const pixel_t *pixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:2249
void grasp_segment_set_pixel_meas_ifmp(sensor_data_t *sdata, int ipixel, int iwl, int ip, int ifmp)
Set sdata->pixel[ipixel].meas[iwl].IFMP[ip].
Definition: grasp_input_segment.c:644
float grasp_segment_pixel_get_pixel_meas_i(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2398
void grasp_segment_set_pixel_meas_cmtrx(sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas, float cmtrx)
Set sdata->pixel[ipixel].meas[iwl].CMTRX[ip][ivalidmeas].
Definition: grasp_input_segment.c:684
struct edges_group_x_ edges_group_x
void grasp_segment_set_pixel_meas_dpar(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float dpar)
Set sdata->pixel[ipixel].meas[iwl].DPAR[ivalidmeas].
Definition: grasp_input_segment.c:989
int grasp_segment_get_nx(const sensor_data_t *sdata)
Definition: grasp_input_segment.c:1050
void grasp_segment_set_pixel_meas_gaspar(sensor_data_t *sdata, int ipixel, int iwl, float gaspar)
Set sdata->pixel[ipixel].meas[iwl].gaspar.
Definition: grasp_input_segment.c:568
void grasp_segment_set_pixel_icol(sensor_data_t *sdata, int ipixel, int icol)
Set sdata->pixel[ipixel].icol.
Definition: grasp_input_segment.c:428
float grasp_segment_get_pixel_meas_aod(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1368
void grasp_segment_pixel_set_pixel_meas_nsurf(pixel_t *pixel, int iwl, int nsurf)
Definition: grasp_input_segment.c:1713
void grasp_segment_set_pixel_meas_i(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float i)
Set sdata->pixel[ipixel].meas[iwl].I[ivalidmeas].
Definition: grasp_input_segment.c:844
float groundpar[_KSURF]
Skip it: Value of surface for each surface. Currently not used
Definition: grasp_input_segment.h:48
float grasp_segment_get_pixel_meas_p11_rel_ang(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1470
int it[_KITIME]
it(_KITIME) - array contains time indices
Definition: grasp_input_segment.h:205
void grasp_segment_pixel_set_pixel_meas_i(pixel_t *pixel, int iwl, int ivalidmeas, float i)
Definition: grasp_input_segment.c:1944
Definition: grasp_input_segment.h:243
float grasp_segment_get_pixel_meas_tod(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1356
void grasp_segment_set_pixel_meas_aod(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float tod)
Set sdata->pixel[ipixel].meas[iwl].tod[ivalidmeas].
Definition: grasp_input_segment.c:723
void grasp_segment_set_pixel_nwl(sensor_data_t *sdata, int ipixel, int nwl)
Set sdata->pixel[ipixel].nwl.
Definition: grasp_input_segment.c:513
void grasp_segment_pixel_set_pixel_meas_u(pixel_t *pixel, int iwl, int ivalidmeas, float u)
Definition: grasp_input_segment.c:1962
float AP[_KITIME][_KIEDGE][_KIX][_KPARS]
AP(KPARS,_KIX,_KIEDGE,_KITIME) - parameters in edge data
Definition: grasp_input_segment.h:206
int64_t grasp_segment_get_pixel_t(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1125
void grasp_segment_set_pixel_iy(sensor_data_t *sdata, int ipixel, int ix)
Set sdata->pixel[ipixel].ix.
Definition: grasp_input_segment.c:403
float grasp_segment_get_pixel_meas_groundpar(const sensor_data_t *sdata, int ipixel, int iwl, int isurf)
Definition: grasp_input_segment.c:1239
float y[_KITIME][_KIY][_KIEDGE]
y(_KIEDGE,_KIY,_KITIME) - pixel latitude (Y)
Definition: grasp_input_segment.h:184
int N_I_EDGE
N_I_EDGE - number of edge groups with data (maximum 6: X before/after, Y before/after,...
Definition: grasp_input_segment.h:228
int grasp_segment_get_pixel_icol(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1099
float grasp_segment_get_pixel_meas_p22(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1426
int nx
nx - size of X edges with data
Definition: grasp_input_segment.h:195
void grasp_segment_set_pixel_meas_u(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float u)
Set sdata->pixel[ipixel].meas[iwl].U[ivalidmeas].
Definition: grasp_input_segment.c:867
int grasp_segment_pixel_get_pixel_cloudy(const pixel_t *pixel)
Definition: grasp_input_segment.c:2081
float grasp_segment_pixel_get_pixel_meas_p11_rel_ang(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2380
void grasp_segment_set_pixel_cloudy(sensor_data_t *sdata, int ipixel, int cloudy)
Set sdata->pixel[ipixel].cloudy.
Definition: grasp_input_segment.c:413
void grasp_segment_pixel_set_pixel_meas_htod(pixel_t *pixel, int iwl, int ivalidmeas, float htod)
Definition: grasp_input_segment.c:1862
void grasp_segment_pixel_set_pixel_nwl(pixel_t *pixel, int nwl)
Definition: grasp_input_segment.c:1679
int ny
ny - size of Y edges with data
Definition: grasp_input_segment.h:213
float grasp_segment_pixel_get_pixel_meas_cmtrx(const pixel_t *pixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:2269
void grasp_segment_pixel_set_pixel_meas_p44(pixel_t *pixel, int iwl, int ivalidmeas, float p44)
Definition: grasp_input_segment.c:1917
float grasp_segment_get_pixel_meas_p11(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1404
float mprof[_KIP][_KVERTM]
Vertical profile of Rayleigh backscatter (beta_m)
Definition: grasp_input_segment.h:89
float grasp_segment_get_pixel_meas_p33(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1437
void grasp_segment_set_pixel_meas_ifcov(sensor_data_t *sdata, int ipixel, int iwl, int ip, int ifcov)
Set sdata->pixel[ipixel].meas[iwl].IFCOV[ip].
Definition: grasp_input_segment.c:632
float vext[_KVERTM]
Values of vertical extinction profile
Definition: grasp_input_segment.h:77
int grasp_segment_pixel_get_pixel_it(const pixel_t *pixel)
Definition: grasp_input_segment.c:2065
int grasp_segment_get_pixel_meas_nbvm(const sensor_data_t *sdata, int ipixel, int iwl, int ip)
Definition: grasp_input_segment.c:1270
struct grasp_segment_t_ grasp_segment_t
int grasp_segment_get_pixel_out_x(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1138
int it[_KIEDGE]
it(_KIEDGE) - array contains time indices
Definition: grasp_input_segment.h:222
float p34[_NBVM]
Values of p34 phase matrix element.
Definition: grasp_input_segment.h:62
int grasp_segment_pixel_get_pixel_out_t(const pixel_t *pixel)
Definition: grasp_input_segment.c:2117
void grasp_segment_set_pixel_y(sensor_data_t *sdata, int ipixel, float y)
Set sdata->pixel[ipixel].y (latitude)
Definition: grasp_input_segment.c:452
void grasp_segment_set_pixel_meas_p_rel(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p_rel)
Set sdata->pixel[ipixel].meas[iwl].p_rel[ivalidmeas].
Definition: grasp_input_segment.c:956
int ny
Definition: grasp_input_segment.h:163
void grasp_segment_pixel_set_pixel_meas_meas_type(pixel_t *pixel, int iwl, int ip, int meas_type)
Definition: grasp_input_segment.c:1754
Definition: grasp_input_segment.h:100
float grasp_segment_get_pixel_meas_phi(const sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:1316
int64_t t[_KIEDGE]
t(_KIEDGE) - pixel time (T)
Definition: grasp_input_segment.h:218
float p11[_NBVM]
Values of p11 phase matrix element.
Definition: grasp_input_segment.h:58
void grasp_segment_set_pixel_meas_p44(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p44)
Set sdata->pixel[ipixel].meas[iwl].p44[ivalidmeas].
Definition: grasp_input_segment.c:811
float p12_rel[_NBVM]
-p12/p11 phase matrix element; meas_type = 28
Definition: grasp_input_segment.h:65
float grasp_segment_get_pixel_hvp(const sensor_data_t *sdata, int ipixel, int ivm)
Definition: grasp_input_segment.c:1187
int grasp_segment_get_npixels(const sensor_data_t *sdata)
Definition: grasp_input_segment.c:1060
int ifmp[_KIP]
0/1 Presence of molecular profile
Definition: grasp_input_segment.h:91
void grasp_segment_set_pixel_meas_groundpar(sensor_data_t *sdata, int ipixel, int iwl, int isurf, float groundpar)
Set sdata->pixel[ipixel].meas[iwl].groundpar[isurf].
Definition: grasp_input_segment.c:586
void grasp_segment_set_pixel_meas_p11_intd_cut_off_3(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_3)
Set sdata->pixel[ipixel].meas[iwl].P11_intd_cut_off_3[ivalidmeas].
Definition: grasp_input_segment.c:922
float grasp_segment_get_pixel_meas_p_rel(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1538
void grasp_segment_set_pixel_meas_vext(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float vext)
Set sdata->pixel[ipixel].meas[iwl].VEXT[ivalidmeas].
Definition: grasp_input_segment.c:1033
int out_x[_KIEDGE][_KIY][_KIX]
x(_KIX,_KIY,_KIEDGE) - absolute position of pixel inside the tile in x dimension
Definition: grasp_input_segment.h:219
struct data_wl_t_ data_wl_t
int nt
nt - size of T edges with data
Definition: grasp_input_segment.h:197
float grasp_segment_get_pixel_meas_aaod(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1380
void grasp_segment_set_pixel_meas_ind_wl(sensor_data_t *sdata, int ipixel, int iwl, float ind_wl)
Set sdata->pixel[ipixel].meas[iwl].ind_wl.
Definition: grasp_input_segment.c:548
void grasp_segment_set_pixel_meas_p12(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p12)
Set sdata->pixel[ipixel].meas[iwl].p12[ivalidmeas].
Definition: grasp_input_segment.c:767
int grasp_segment_get_pixel_nwl(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1173
int grasp_segment_get_pixel_out_t(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1131
float grasp_segment_get_pixel_meas_p(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1520
int id_inversion
Definition: grasp_input_segment.h:167
Definition: grasp_input_segment.h:36
int I_EDGE[6]
I_EDGE(6) - present group index array I_EDGE(1:N_I_EDGE)
Definition: grasp_input_segment.h:229
void grasp_segment_set_pixel_meas_p(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p)
Set sdata->pixel[ipixel].meas[iwl].P[ivalidmeas].
Definition: grasp_input_segment.c:878
float grasp_segment_pixel_get_pixel_meas_p(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2421
float grasp_segment_pixel_get_pixel_meas_p12_rel(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2389
float grasp_segment_pixel_get_pixel_meas_phi(const pixel_t *pixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:2259
int nt
Definition: grasp_input_segment.h:155
float grasp_segment_pixel_get_pixel_meas_p11(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2326
integer, parameter dp
Definition: mod_globals.f90:14
int grasp_segment_pixel_get_pixel_ix(const pixel_t *pixel)
Definition: grasp_input_segment.c:2070
void grasp_segment_set_pixel_out_t(sensor_data_t *sdata, int ipixel, int out_t)
Set sdata->pixel[ipixel].out_t.
Definition: grasp_input_segment.c:469
int grasp_segment_pixel_get_pixel_out_y(const pixel_t *pixel)
Definition: grasp_input_segment.c:2127
void grasp_segment_pixel_set_pixel_iy(pixel_t *pixel, int iy)
Definition: grasp_input_segment.c:1597
void grasp_segment_pixel_set_pixel_meas_thetav(pixel_t *pixel, int iwl, int ip, int ivalidmeas, float thetav)
Definition: grasp_input_segment.c:1794
int out_t[_KITIME]
t(_KITIME) - absolute position of pixel inside the tile in t dimension
Definition: grasp_input_segment.h:204
float wl
Current wavelength
Definition: grasp_input_segment.h:38
Definition: grasp_input_segment.h:194
void grasp_segment_set_pixel_meas_htod(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float htod)
Set sdata->pixel[ipixel].meas[iwl].htod[ivalidmeas].
Definition: grasp_input_segment.c:745
float x[_KIEDGE][_KIY][_KIX]
x(_KIX,_KIY,_KIEDGE) - pixel longitude (X)
Definition: grasp_input_segment.h:216
void grasp_segment_set_pixel_meas_p11_intd_cut_off_1(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p11_intd_cut_off_1)
Set sdata->pixel[ipixel].meas[iwl].P11_intd_cut_off_1[ivalidmeas].
Definition: grasp_input_segment.c:900
void grasp_segment_set_pixel_masl(sensor_data_t *sdata, int ipixel, float masl)
Set sdata->pixel[ipixel].MASL.
Definition: grasp_input_segment.c:490
void grasp_segment_pixel_set_pixel_meas_p12(pixel_t *pixel, int iwl, int ivalidmeas, float p12)
Definition: grasp_input_segment.c:1880
segment_edges edges
Definition: grasp_input_segment.h:258
float grasp_segment_get_pixel_meas_i(const sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:1493
void grasp_segment_set_pixel_meas_vbs(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float vbs)
Set sdata->pixel[ipixel].meas[iwl].VBS[ivalidmeas].
Definition: grasp_input_segment.c:1022
int out_y[_KIEDGE][_KIY][_KIX]
y(_KIX,_KIY,_KIEDGE) - absolute position of pixel inside the tile in y dimension
Definition: grasp_input_segment.h:220
edges_group_x group_x[2]
group_X(2) - array of present group indices (group(1:N_I_EDGE))
Definition: grasp_input_segment.h:230
int grasp_segment_get_pixel_meas_ifmp(const sensor_data_t *sdata, int ipixel, int iwl, int ip)
Definition: grasp_input_segment.c:1292
void grasp_segment_set_pixel_x(sensor_data_t *sdata, int ipixel, float x)
Set sdata->pixel[ipixel].x (longitude)
Definition: grasp_input_segment.c:443
int ny
ny - size of Y edges with data
Definition: grasp_input_segment.h:180
void grasp_segment_set_pixel_t(sensor_data_t *sdata, int ipixel, int64_t t)
Set sdata->pixel[ipixel].t (time)
Definition: grasp_input_segment.c:461
float grasp_segment_get_pixel_masl(const sensor_data_t *sdata, int ipixel)
Definition: grasp_input_segment.c:1152
float aod[_NBVM]
aerosol optical depth; meas_type = 12
Definition: grasp_input_segment.h:55
int grasp_segment_get_pixel_meas_meas_type(const sensor_data_t *sdata, int ipixel, int iwl, int ip)
Definition: grasp_input_segment.c:1259
float grasp_segment_pixel_get_pixel_meas_tod(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2290
int64_t grasp_segment_pixel_get_pixel_t(const pixel_t *pixel)
Definition: grasp_input_segment.c:2111
void grasp_segment_pixel_set_pixel_meas_wl(pixel_t *pixel, int iwl, float wl)
Definition: grasp_input_segment.c:1699
float grasp_segment_pixel_get_pixel_meas_p44(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2371
float grasp_segment_get_pixel_meas_sza(const sensor_data_t *sdata, int ipixel, int iwl)
Definition: grasp_input_segment.c:1230
void grasp_segment_pixel_set_pixel_meas_p33(pixel_t *pixel, int iwl, int ivalidmeas, float p33)
Definition: grasp_input_segment.c:1898
float p_rel[_NBVM]
linear polarization sqrt(Q*Q+U*U)/I; meas_type = 46
Definition: grasp_input_segment.h:86
int npixels
Definition: grasp_input_segment.h:151
float p12[_NBVM]
Values of p12 phase matrix element.
Definition: grasp_input_segment.h:59
void grasp_segment_set_pixel_hvp(sensor_data_t *sdata, int ipixel, int ivm, float hvp)
Set sdata->pixel[ipixel].HVP[ivm].
Definition: grasp_input_segment.c:530
float p11_intd_cut_off_4[_NBVM]
Definition: grasp_input_segment.h:70
void grasp_segment_pixel_set_pixel_x(pixel_t *pixel, float x)
Definition: grasp_input_segment.c:1627
float p[_NBVM]
Polarization sqrt(Q*Q+U*U)
Definition: grasp_input_segment.h:83
void grasp_segment_pixel_set_pixel_meas_sza(pixel_t *pixel, int iwl, float sza)
Definition: grasp_input_segment.c:1729
void grasp_segment_pixel_set_pixel_meas_rl(pixel_t *pixel, int iwl, int ivalidmeas, float rl)
Definition: grasp_input_segment.c:2034
float grasp_segment_get_pixel_meas_gaspar(const sensor_data_t *sdata, int ipixel, int iwl)
Definition: grasp_input_segment.c:1221
void grasp_segment_set_pixel_meas_p22(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p22)
Set sdata->pixel[ipixel].meas[iwl].p22[ivalidmeas].
Definition: grasp_input_segment.c:778
float y[_KIEDGE][_KIY][_KIX]
y(_KIX,_KIY,_KIEDGE) - pixel latitude (Y)
Definition: grasp_input_segment.h:217
float hobs
Height of observation in meters.
Definition: grasp_input_segment.h:101
void grasp_segment_pixel_set_pixel_meas_p12_rel(pixel_t *pixel, int iwl, int ivalidmeas, float p12_rel)
Definition: grasp_input_segment.c:1935
float grasp_segment_pixel_get_pixel_y(const pixel_t *pixel)
Definition: grasp_input_segment.c:2106
int out_x[_KITIME][_KIY][_KIEDGE]
x(_KIEDGE,_KIY,_KITIME) - absolute position of pixel inside the tile in x dimension
Definition: grasp_input_segment.h:186
void grasp_segment_set_pixel_meas_thetav(sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas, float thetav)
Set sdata->pixel[ipixel].meas[iwl].thetav[ip][ivalidmeas].
Definition: grasp_input_segment.c:657
float p22[_NBVM]
Values of p22 phase matrix element.
Definition: grasp_input_segment.h:60
void grasp_segment_set_pixel_meas_p33(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float p33)
Set sdata->pixel[ipixel].meas[iwl].p33[ivalidmeas].
Definition: grasp_input_segment.c:789
void grasp_segment_set_nt(sensor_data_t *sdata, int nt)
Set number of t dimensions in segment data.
Definition: grasp_input_segment.c:357
void grasp_segment_pixel_set_pixel_hvp(pixel_t *pixel, int ivm, float hvp)
Definition: grasp_input_segment.c:1692
float p11_intd_cut_off_1[_NBVM]
Definition: grasp_input_segment.h:67
int grasp_segment_pixel_get_pixel_irow(const pixel_t *pixel)
Definition: grasp_input_segment.c:2086
Definition: grasp_input_segment.h:227
int out_t[_KITIME]
t(_KITIME) - absolute position of pixel inside the tile in t dimension
Definition: grasp_input_segment.h:188
int nx
Definition: grasp_input_segment.h:159
int grasp_segment_pixel_get_pixel_icol(const pixel_t *pixel)
Definition: grasp_input_segment.c:2091
int ifcov[_KIP]
0/1 Presence of covariance matrix
Definition: grasp_input_segment.h:90
int grasp_segment_pixel_get_pixel_meas_ifcov(const pixel_t *pixel, int iwl, int ip)
Definition: grasp_input_segment.c:2231
float gaspar
Total gas absorption for this wavelength (tau gases)
Definition: grasp_input_segment.h:49
void grasp_segment_set_ny(sensor_data_t *sdata, int ny)
Set number of y dimensions in segment data.
Definition: grasp_input_segment.c:371
float grasp_segment_pixel_get_pixel_meas_p12(const pixel_t *pixel, int iwl, int ivalidmeas)
Definition: grasp_input_segment.c:2335
data_wl_t meas[_KWM]
Array of measures for each wavelength of current pixel.
Definition: grasp_input_segment.h:140
float dper[_KVERTM]
Values of cross (perpendicular) polarized lidar.
Definition: grasp_input_segment.h:75
float AP[_KITIME][_KIY][_KIEDGE][_KPARS]
AP(KPARS,_KIEDGE,_KIY,_KITIME) - parameters in edge data
Definition: grasp_input_segment.h:190
float x[_KITIME][_KIY][_KIEDGE]
x(_KIEDGE,_KIY,_KITIME) - pixel longitude (X)
Definition: grasp_input_segment.h:183
void grasp_segment_set_pixel_meas_aaod(sensor_data_t *sdata, int ipixel, int iwl, int ivalidmeas, float aaod)
Set sdata->pixel[ipixel].meas[iwl].aaod[ivalidmeas].
Definition: grasp_input_segment.c:734
float grasp_segment_get_pixel_meas_mprof(const sensor_data_t *sdata, int ipixel, int iwl, int ip, int ivalidmeas)
Definition: grasp_input_segment.c:1342