ocssw V2020
l1_io.c
Go to the documentation of this file.
1 /* =========================================================== */
2 /* Module l1_io.c */
3 /* */
4 /* Functions to open, close, read, and write a level-1b file, */
5 /* with the format determined by the file handle content. */
6 /* */
7 /* Written By: */
8 /* */
9 /* B. A. Franz */
10 /* SAIC General Sciences Corp. */
11 /* NASA/SIMBIOS Project */
12 /* April 1998 */
13 /* */
14 /* Modifications By: */
15 /* J. Gales */
16 /* Futuretech */
17 /* NASA/SIMBIOS Project */
18 /* 10/00 */
19 /* */
20 /* Add support for OCTSL1A */
21 /* W. Robinson, SAIC, 10 Dec 2004 add CZCS, VIIRS support */
22 /* =========================================================== */
23 
24 #include <stdio.h>
25 //#include <regex.h>
26 //#include <string.h>
27 
28 #include "l12_proto.h"
29 #include "l1_mos_hdf.h"
30 #include "l1_hdf_generic_read.h"
31 #include "l1a_seawifs.h"
32 #include "l1_octs_hdf.h"
33 #include "l1_osmi_hdf.h"
34 #include "l1_hmodis_hdf.h"
35 #include "l1_czcs_hdf.h"
36 #include "l1_xcal_hdf.h"
37 #include "l1_aci_hdf.h"
38 #include "l1_sgli.h"
39 #include "l1_ocm_hdf.h"
40 #include "l1_ocm2_hdf.h"
41 #include "l1_ocmdb_hdf.h"
42 #include "l1_meris_N1.h"
43 #include "l1_meris_CC.h"
44 #include "l1_meris_safe.h"
45 #include "l1_viirs_h5.h"
46 #include "l1b_viirs_nc.h"
47 #include "l1_hico_h5.h"
48 #include "l1_goci.h"
49 #include "l1_oli.h"
50 #include "l1_viirs_nc.h"
51 #include "l1_ocia.h"
52 #include "l1_aviris.h"
53 #include "l1_prism.h"
54 #include "l1_olci.h"
55 #include "l1_nc_generic_read.h"
56 #include "l1_l5tm.h"
57 #include "l1_l7etm.h"
58 #include "l1c_msi.h"
59 #include "l1a_hawkeye.h"
60 #include "l1b_misr.h"
61 #include "l1b_oci.h"
62 #include "l1b_ocis.h"
63 #include "l1_seabass.h"
64 
65 /* ---------------------------------------------------------------- */
66 /* Close the level 1 file associated with the input file handle. */
67 
68 /* ---------------------------------------------------------------- */
69 void closel1(filehandle *l1file) {
70  switch (l1file->format) {
71  case FT_L1HDF:
72  if (l1file->mode == READ)
74  else
76  break;
77  case FT_L1BNCDF:
79  break;
80  case FT_MOSL1B:
82  break;
83  case FT_SEAWIFSL1A:
85  break;
86  case FT_OCTSL1B:
88  break;
89  case FT_OCTSL1A:
91  break;
92  case FT_OSMIL1A:
94  break;
95  /* case FT_MODISL1B: */
96  /* closel1_modis_hdf(l1file); */
97  /* break; */
98  case FT_L1XCAL:
100  break;
101  case FT_CZCSL1A:
103  break;
104  case FT_HMODISL1B:
106  break;
107  case FT_CLASSAVHRR:
109  break;
110  case FT_OCML1B:
112  break;
113  case FT_OCM2L1B:
115  break;
116  case FT_OCML1BDB:
118  break;
119  case FT_MERISL1B:
121  break;
122  case FT_MERISCC:
124  break;
125  case FT_MERISL1BSAFE:
127  break;
128  case FT_VIIRSL1B:
130  break;
131  case FT_VIIRSL1BNC:
133  break;
134  case FT_VIIRSL1A:
136  break;
137  case FT_HICOL1B:
139  break;
140  case FT_GOCIL1B:
142  break;
143  case FT_OLIL1B:
145  break;
146  case FT_OCIA:
148  break;
149  case FT_OCIL1B:
151  break;
152  case FT_OCIS:
154  break;
155  case FT_AVIRIS: {
156  aviris_t* data = (aviris_t*) l1file->private_data;
157  if (data->isnetcdf)
159  else
161  } break;
162  case FT_PRISM:
164  break;
165  case FT_OLCI:
167  break;
168  case FT_SGLI:
170  break;
171  case FT_L5TML1B:
173  break;
174  case FT_L7ETML1B:
176  break;
177  case FT_MSIL1C:
179  break;
180  case FT_HAWKEYEL1A:
182  break;
183  case FT_MISR:
185  break;
186  case FT_SEABASSRRS:
188  break;
189  default:
190  fprintf(stderr,
191  "-E- %s Line %d: l1close - Unknown L1 file format specifier: %d\n",
192  __FILE__, __LINE__, l1file->format);
193  break;
194  };
195 
196  free(l1file->Fonom);
197 
198  return;
199 }
200 
201 /* ---------------------------------------------------------------- */
202 /* Open a level 1 file for reading, load file handle with metadata */
203 /* from file header. At a minimum, the name and format fields of */
204 /* file handle must be loaded before this function is called. */
205 
206 /* ---------------------------------------------------------------- */
207 int openl1(filehandle *l1file) {
208  int status = 1;
209  /*
210  if (l1file->sensorID == SEABASS){
211  return open_seabass(l1file);
212  }
213  */
214 
215  /* Get number of bands and band indexing from sensor table */
216  l1file->nbands = rdsensorinfo(l1file->sensorID, input->evalmask, NULL, NULL);
217  if (l1file->nbands < 0) {
218  printf("-E- %s line %d: Error reading sensor table\n",
219  __FILE__, __LINE__);
220  return (status);
221  }
222  rdsensorinfo(l1file->sensorID, input->evalmask, "Bindx", (void **) &l1file->bindx);
223  l1file->nbandsir = rdsensorinfo(l1file->sensorID, input->evalmask, "NbandsIR", NULL);
224 
225  /* set wavelength index */
226  rdsensorinfo(l1file->sensorID, input->evalmask, "Lambda", (void **) &l1file->iwave);
227  rdsensorinfo(l1file->sensorID, input->evalmask, "fwave", (void **) &l1file->fwave);
228  rdsensorinfo(l1file->sensorID, input->evalmask, "Fobar", (void **) &l1file->Fobar);
229  rdsensorinfo(l1file->sensorID, input->evalmask, "Tau_r", (void **) &l1file->Tau_r);
230  rdsensorinfo(l1file->sensorID, input->evalmask, "k_oz", (void **) &l1file->k_oz);
231  rdsensorinfo(l1file->sensorID, input->evalmask, "k_no2", (void **) &l1file->k_no2);
232  rdsensorinfo(l1file->sensorID, input->evalmask, "aw", (void **) &l1file->aw);
233  rdsensorinfo(l1file->sensorID, input->evalmask, "bbw", (void **) &l1file->bbw);
234 
235  bindex_set(l1file->iwave, l1file->nbands + l1file->nbandsir, BANDW);
236 
237  if ((l1file->Fonom = (float*) calloc(l1file->nbands, sizeof (float))) == NULL) {
238  printf("-E- (%s, %d) Cannot allocate space for l1file->Fonom\n", __FILE__, __LINE__);
239  exit(EXIT_FAILURE);
240  }
241  int i;
242  for (i = 0; i < l1file->nbands; i++) {
243  if (input->outband_opt >= 2) {
244  get_f0_thuillier_ext(l1file->iwave[i], BANDW, l1file->Fonom + i);
245  } else {
246  l1file->Fonom[i] = l1file->Fobar[i];
247  }
248  }
249 
250  /* Open L1 file for reading or writing, as requested */
251  if (l1file->mode == READ) {
252 
253  switch (l1file->format) {
254  case FT_MOSL1B:
256  break;
257  case FT_SEAWIFSL1A:
259  break;
260  case FT_L1HDF:
262  break;
263  case FT_L1BNCDF:
265  break;
266  case FT_OCTSL1B:
268  break;
269  case FT_OCTSL1A:
271  break;
272  case FT_OSMIL1A:
274  break;
275  case FT_MODISL1B:
276  /* status = openl1_modis_hdf(l1file); */
277  printf("This L1B file contains only the ocean band subset; "
278  "processing is no longer supported.\n");
279  break;
280  case FT_L1XCAL:
282  break;
283  case FT_CZCSL1A:
285  break;
286  case FT_HMODISL1B:
288  break;
289  case FT_CLASSAVHRR:
291  break;
292  case FT_OCML1B:
294  break;
295  case FT_OCM2L1B:
297  break;
298  case FT_OCML1BDB:
300  break;
301  case FT_MERISL1B:
303  break;
304  case FT_VIIRSL1B:
306  break;
307  case FT_VIIRSL1BNC:
309  break;
310  case FT_VIIRSL1A:
312  break;
313  case FT_HICOL1B:
315  break;
316  case FT_GOCIL1B:
318  break;
319  case FT_MERISCC:
321  break;
322  case FT_MERISL1BSAFE:
324  break;
325  case FT_OLIL1B:
327  break;
328  case FT_OCIA:
330  break;
331  case FT_OCIL1B:
333  break;
334  case FT_OCIS:
336  break;
337  case FT_AVIRIS: {
338  aviris_t* data = (aviris_t*)l1file->private_data;
339  if (data->isnetcdf)
341  else
343  } break;
344  case FT_PRISM:
346  break;
347  case FT_OLCI:
349  break;
350  case FT_SGLI:
352  break;
353  case FT_L5TML1B:
355  break;
356  case FT_L7ETML1B:
358  break;
359  case FT_MSIL1C:
361  break;
362  case FT_HAWKEYEL1A:
364  break;
365  case FT_MISR:
367  break;
368  case FT_SEABASSRRS:
370  break;
371  default:
372  printf("openl1 - Unknown L1 input file format specifier: %d\n",
373  l1file->format);
374  break;
375  };
376 
377  } else {
378 
379  switch (l1file->format) {
380  case FT_L1HDF:
381  case FT_L1BNCDF:
383  break;
384  default:
385  printf("Unknown L1 output file format specifier: %d\n",
386  l1file->format);
387  break;
388  };
389  }
390 
391  return (status);
392 }
393 
394 
395 /* ---------------------------------------------------------------- */
396 /* Read a specific level 1 record from the file pointed to by the */
397 /* input file handle and load the data into the l1 record structure.*/
398 
399 /* ---------------------------------------------------------------- */
400 int readl1(filehandle *l1file, int32_t recnum, l1str *l1rec) {
401  int status=1;
402  int32_t ip;
403  aviris_t* data = (aviris_t*) l1file->private_data;
404 
405  /* Clear the L1 record */
406  init_l1(l1rec);
407  l1rec->tilt = 0.0;
408  l1rec->mside = 0;
409  l1rec->detnum = 0;
410  /* Altitude of sensor should be set in l1_sensor.c
411  * If not set it will be assumed sensor is above atmosphere
412  * and no rayleigh correction will be done.
413  */
414  l1rec->alt = BAD_FLT;
415 
416  for (ip = 0; ip < l1file->npix; ip++) {
417  l1rec->pixnum[ip] = ip;
418  l1rec->slot[ip] = 0;
419  l1rec->alpha[ip] = 0.0;
420  }
421 
422  l1rec->iscan = recnum;
423 
424  l1rec->l1file = l1file;
425 
426  switch (l1file->format) {
427  case FT_L1HDF:
429  break;
430  case FT_L1BNCDF:
432  break;
433  case FT_MOSL1B:
435  break;
436  case FT_SEAWIFSL1A:
438  break;
439  case FT_OCTSL1B:
441  break;
442  case FT_OCTSL1A:
444  break;
445  case FT_OSMIL1A:
447  break;
448  /* case FT_MODISL1B: */
449  /* status = readl1_modis_hdf(l1file,recnum,l1rec); */
450  /* break; */
451  case FT_L1XCAL:
453  break;
454  case FT_CZCSL1A:
456  break;
457  case FT_HMODISL1B:
459  break;
460  case FT_CLASSAVHRR:
462  break;
463  case FT_OCML1B:
465  break;
466  case FT_OCM2L1B:
468  break;
469  case FT_OCML1BDB:
471  break;
472  case FT_MERISL1B:
474  break;
475  case FT_MERISCC:
477  break;
478  case FT_MERISL1BSAFE:
480  break;
481  case FT_VIIRSL1B:
483  break;
484  case FT_VIIRSL1BNC:
486  break;
487  case FT_VIIRSL1A:
489  break;
490  case FT_HICOL1B:
492  break;
493  case FT_GOCIL1B:
495  break;
496  case FT_OLIL1B:
498  break;
499  case FT_OCIA:
501  break;
502  case FT_OCIL1B:
504  break;
505  case FT_OCIS:
507  break;
508  case FT_AVIRIS:
509  if (data->isnetcdf)
511  else
513  // status = 0;
514  break;
515  case FT_PRISM:
517  // status = 0;
518  break;
519  case FT_OLCI:
521  // status = 0;
522  break;
523  case FT_SGLI:
525  // status = 0;
526  break;
527  case FT_L5TML1B:
529  break;
530  case FT_L7ETML1B:
532  break;
533  case FT_MSIL1C:
535  break;
536  case FT_HAWKEYEL1A:
538  break;
539  case FT_MISR:
541  break;
542  case FT_SEABASSRRS:
544  break;
545  default:
546  printf("readl1 - Unknown L1 input file format specifier: %d\n",
547  l1file->format);
548  break;
549  };
550 
551 
552  if (status != 0) {
553  fprintf(stderr,
554  "-E- %s Line %d: Error reading L1B.\n",
555  __FILE__, __LINE__);
556  return (1);
557  }
558 
559  for (ip = 0; ip < l1file->npix; ip++) {
560  if (l1rec->lon[ip] < -181.0 || l1rec->lon[ip] > 181.0 || isnan(l1rec->lon[ip]) ||
561  l1rec->lat[ip] < -91.0 || l1rec->lat[ip] > 91.0 || isnan(l1rec->lat[ip])) {
562  l1rec->navfail[ip] = 1;
563  }
564  }
565 
566  /* Reduce to sub-sample scan if requested */
567  if (l1subpix(l1file, l1rec) != 0)
568  return (1);
569 
570  setflagbits(0, l1rec, NULL, -1);
571 
572  /* update scene meta */
574 
575  return (0);
576 }
577 
578 
579 
580 
581 /* ---------------------------------------------------------------- */
582 /* Read lon and lat for a specific level 1 record from the file */
583 /* pointed to by the input file handle and load the data into the */
584 /* l1 record structure. */
585 
586 /* ---------------------------------------------------------------- */
587 int readl1_lonlat(filehandle *l1file, int32_t recnum, l1str *l1rec) {
588  int status;
589 
590  l1rec->iscan = recnum;
591 
592  switch (l1file->format) {
593  case FT_SEAWIFSL1A:
595  break;
596  /* case FT_MODISL1B: */
597  /* status = readl1_lonlat_modis_hdf(l1file,recnum,l1rec); */
598  /* break; */
599  case FT_HMODISL1B:
601  break;
602  case FT_MERISL1B:
604  break;
605  case FT_VIIRSL1B:
607  break;
608  case FT_VIIRSL1BNC:
610  break;
611  case FT_HICOL1B:
613  break;
614  case FT_GOCIL1B:
616  break;
617  case FT_OLIL1B:
619  break;
620  case FT_L5TML1B:
622  break;
623  case FT_L7ETML1B:
625  break;
626  case FT_MSIL1C:
628  break;
629  default:
631  break;
632  };
633 
634  if (status != 0) {
635  fprintf(stderr,
636  "-E- %s Line %d: Error reading L1B.\n",
637  __FILE__, __LINE__);
638  return (1);
639  }
640 
641  /* Reduce to sub-sample scan if requested */
642  if (l1subpix(l1file, l1rec) != 0)
643  return (1);
644 
645  return (0);
646 }
647 
int readl1_ocia(filehandle *file, int32 scan, l1str *l1rec)
Definition: l1_ocia.c:122
int32 l1file(int32 sdfid, int32 *nsamp, int32 *nscans, int16 *dtynum)
Definition: l1stat_chk.c:586
int openl1_meris_CC(filehandle *file)
Definition: l1_meris_CC.c:300
@ FT_L1BNCDF
Definition: filetype.h:19
int closel1_xcal_hdf(filehandle *file)
Definition: l1_xcal_hdf.c:164
int readl1_viirs_nc(filehandle *file, int32 line, l1str *l1rec)
Definition: l1_viirs_nc.c:252
int openl1c_msi(filehandle *file)
Definition: l1c_msi.cpp:482
int readl1_hdf_g(filehandle *file, int32_t recnum, l1str *l1rec)
@ FT_MISR
Definition: filetype.h:58
MERIS reader.
int closel1_sgli(filehandle *file)
Definition: l1_sgli.c:1336
int status
Definition: l1_czcs_hdf.c:31
@ FT_OCML1B
Definition: filetype.h:35
int openl1a_hawkeye(filehandle *file)
Definition: l1a_hawkeye.c:158
@ FT_OCML1BDB
Definition: filetype.h:36
@ FT_OLCI
Definition: filetype.h:39
int openl1_viirs_nc(filehandle *file)
Definition: l1_viirs_nc.c:60
int readl1b_viirs_nc(filehandle *l1file, const int32_t iline, l1str *l1rec)
Definition: l1b_viirs_nc.c:722
int closel1_hdf_g(filehandle *file)
int closel1b_viirs_nc()
Definition: l1b_viirs_nc.c:897
int closel1_meris_CC(filehandle *file)
Definition: l1_meris_CC.c:535
int readl1_ocmdb_hdf(filehandle *file, int32 scan, l1str *l1rec)
Definition: l1_ocmdb_hdf.c:78
int openl1_oli(filehandle *file)
Definition: l1_oli.c:132
int closel1_mos_hdf(filehandle *l1file)
Definition: l1_mos_hdf.c:470
int closel1_ocmdb_hdf(filehandle *file)
Definition: l1_ocmdb_hdf.c:218
int openl1b_ocis(filehandle *file)
Definition: l1b_ocis.c:85
int closel1a_hawkeye(filehandle *file)
Definition: l1a_hawkeye.c:705
int closel1_prism(filehandle *file)
Definition: l1_prism.c:427
int readl1_ocm_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_ocm_hdf.c:55
#define NULL
Definition: decode_rs.h:63
@ FT_OCIA
Definition: filetype.h:42
int closel1_ocia(filehandle *file)
Definition: l1_ocia.c:316
int openl1_ocmdb_hdf(filehandle *file)
Definition: l1_ocmdb_hdf.c:19
@ FT_L7ETML1B
Definition: filetype.h:55
int openl1b_oci(filehandle *file)
Definition: l1b_oci.c:112
int readl1_ocm2_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_ocm2_hdf.c:134
int readl1_hmodis_hdf(filehandle *l1file, const int32_t line, l1str *l1rec)
int closel1_l5tm(filehandle *file)
Definition: l1_l5tm.c:569
read l1rec
int readl1_aci_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_aci_hdf.c:127
int closel1_ocm_hdf(filehandle *file)
Definition: l1_ocm_hdf.c:240
int readl1_prism(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_prism.c:310
@ FT_SEAWIFSL1A
Definition: filetype.h:47
int readl1_meris_N1(filehandle *file, int32 scan, l1str *l1rec)
reads 1 scan line from MERIS file, loads l1rec
Definition: l1_meris_N1.c:272
int openl1_ocm_hdf(filehandle *file)
Definition: l1_ocm_hdf.c:16
@ FT_VIIRSL1A
Definition: filetype.h:50
int openl1a_osmi(filehandle *l1file)
Definition: l1a_osmi.c:68
int readl1_meris_safe(filehandle *file, int32 scan, l1str *l1rec)
int open_seabass(filehandle *l1file)
Definition: l1_seabass.cpp:31
@ FT_PRISM
Definition: filetype.h:46
int closel1b_ocis(filehandle *file)
Definition: l1b_ocis.c:503
int readl1_hico_h5(filehandle *file, int32_t scan, l1str *l1rec, int lonlat)
Definition: l1_hico_h5.c:347
int closel1_goci(filehandle *file)
Definition: l1_goci.c:185
@ FT_OCTSL1A
Definition: filetype.h:37
int l1subpix(filehandle *l1file, l1str *l1rec)
Definition: l1subpix.c:19
void scene_meta_put(l1str *l1rec)
Definition: scene_meta.c:73
int readl1_aviris(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1_aviris.c:678
int openl1a_seawifs(filehandle *file)
Definition: l1a_seawifs.c:348
@ FT_VIIRSL1B
Definition: filetype.h:51
@ FT_HICOL1B
Definition: filetype.h:18
int openl1_l7etm(filehandle *file)
Definition: l1_l7etm.c:124
@ FT_AVIRIS
Definition: filetype.h:14
int readl1_czcs(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1_czcs_hdf.c:476
#define BANDW
Definition: l12_parms.h:84
@ FT_MERISL1BSAFE
Definition: filetype.h:29
int openl1(filehandle *l1file)
Definition: l1_io.c:207
instr * input
int readl1a_seawifs(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1a_seawifs.c:482
#define BAD_FLT
Definition: jplaeriallib.h:19
int openl1_sgli(filehandle *l1file)
Definition: l1_sgli.c:368
int closel1a_osmi(filehandle *l1file)
Definition: l1a_osmi.c:231
int readl1b_lonlat_viirs_nc(filehandle *l1file, const int32_t iline, l1str *l1rec)
Definition: l1b_viirs_nc.c:858
int readl1_goci(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_goci.c:86
@ FT_MERISCC
Definition: filetype.h:26
@ FT_OCTSL1B
Definition: filetype.h:38
int closel1_viirs_nc(filehandle *file)
Definition: l1_viirs_nc.c:613
@ FT_MERISL1B
Definition: filetype.h:27
int readl1_lonlat_hmodis_hdf(filehandle *l1file, int32_t line, l1str *l1rec)
int readl1c_msi_lonlat(filehandle *file, int recnum, l1str *l1rec)
Definition: l1c_msi.cpp:612
int readl1b_oci(filehandle *file, int32_t line, l1str *l1rec)
Definition: l1b_oci.c:372
int openl1_write(filehandle *l1file)
int openl1_nc_generic(filehandle *file)
int readl1a_hawkeye(filehandle *file, int32_t oline, l1str *l1rec)
Definition: l1a_hawkeye.c:473
read recnum
void bindex_set(int32_t wave[], int nwave, int dwave)
Definition: windex.c:13
if(BUILD_JPL) add_executable(interp_hycom interp_hycom.f) add_executable(interp_hycom_ascii interp_hycom_ascii.f) add_executable(tec tec.c) add_executable(swh swh.c) target_link_libraries(interp_hycom netcdff dfutils $
Definition: CMakeLists.txt:127
@ FT_VIIRSL1BNC
Definition: filetype.h:52
int readl1_l7etm(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_l7etm.c:337
int openl1_hmodis_hdf(filehandle *l1file)
int closel1_czcs(filehandle *file)
Definition: l1_czcs_hdf.c:673
int readl1a_osmi(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1a_osmi.c:152
int closel1_octs_hdf(filehandle *l1file)
Definition: l1_octs_hdf.c:1147
int32_t rdsensorinfo(int32_t sensorID, int32_t evalmask, const char *pname, void **pval)
Definition: rdsensorinfo.c:69
int closel1b_oci(filehandle *file)
Definition: l1b_oci.c:773
@ FT_OCIS
Definition: filetype.h:44
int readl1_olci(filehandle *file, int32 scan, l1str *l1rec)
Definition: l1_olci.c:284
int closel1c_msi(filehandle *file)
Definition: l1c_msi.cpp:1005
void closel1(filehandle *l1file)
Definition: l1_io.c:69
int openl1_czcs(filehandle *file)
Definition: l1_czcs_hdf.c:360
int openl1_hico_h5(filehandle *file)
Definition: l1_hico_h5.c:60
int openl1_ocm2_hdf(filehandle *file)
Definition: l1_ocm2_hdf.c:102
int closel1_l7etm(filehandle *file)
Definition: l1_l7etm.c:466
int openl1_aviris(filehandle *file)
Definition: l1_aviris.c:174
int closel1_ocm2_hdf(filehandle *file)
Definition: l1_ocm2_hdf.c:212
int openl1_viirs_h5(filehandle *file)
Definition: l1_viirs_h5.c:598
int readl1_octs_hdf(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_octs_hdf.c:510
int readl1_lonlat(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_io.c:587
int readl1a_lonlat_seawifs(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1a_seawifs.c:616
@ FT_HAWKEYEL1A
Definition: filetype.h:57
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude data
Definition: HISTORY.txt:356
int openl1_prism(filehandle *file)
Definition: l1_prism.c:45
@ FT_L5TML1B
Definition: filetype.h:54
int readl1_oli(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_oli.c:401
int closel1_meris_safe(filehandle *file)
int openl1_read_mos_hdf(filehandle *l1file)
Definition: l1_mos_hdf.c:102
int closel1_aviris_nc(filehandle *l1file)
Definition: l1_aviris_nc.c:356
#define READ
Definition: filehandle.h:17
int closel1a_seawifs(filehandle *file)
Definition: l1a_seawifs.c:644
int openl1_xcal_hdf(filehandle *file)
Definition: l1_xcal_hdf.c:25
void setflagbits(int level, l1str *l1rec, l2str *l2rec, int32_t ipix)
Definition: setflags.c:168
int openl1b_viirs_nc(filehandle *l1file)
Definition: l1b_viirs_nc.c:424
int readl1_l5tm(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_l5tm.c:425
int readl1_meris_CC(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_meris_CC.c:429
int readl1_nc_generic(filehandle *file, int32 scan, l1str *l1rec)
void init_l1(l1str *l1rec)
Definition: init_l1.c:12
int closel1_aviris(filehandle *file)
Definition: l1_aviris.c:923
@ FT_SEABASSRRS
Definition: filetype.h:59
int closel1b_misr(filehandle *file)
Definition: l1b_misr.c:800
int openl1b_misr(filehandle *file)
Definition: l1b_misr.c:27
@ FT_OCM2L1B
Definition: filetype.h:34
int closel1_aci_hdf(filehandle *file)
Definition: l1_aci_hdf.c:1156
int readl1_aviris_nc(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_aviris_nc.c:159
@ FT_GOCIL1B
Definition: filetype.h:17
int readl1_lonlat_meris_N1(filehandle *file, int32 scan, l1str *l1rec)
reads 1 scan line from MERIS file, loads l1rec
Definition: l1_meris_N1.c:676
int readl1(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_io.c:400
@ FT_MOSL1B
Definition: filetype.h:33
int closel1_olci(filehandle *file)
Definition: l1_olci.c:773
int readl1_viirs_h5(filehandle *file, int32_t dline, l1str *l1rec, int lonlat)
Definition: l1_viirs_h5.c:1380
@ FT_L1HDF
Definition: filetype.h:20
int openl1_olci(filehandle *l1file)
Definition: l1_olci.c:75
int openl1_read_hdf_g(filehandle *file)
int close_seabass(filehandle *file)
Definition: l1_seabass.cpp:221
@ FT_HMODISL1B
Definition: filetype.h:32
int closel1_meris_N1(filehandle *file)
closes MERIS file, loads l1rec
Definition: l1_meris_N1.c:740
@ FT_MSIL1C
Definition: filetype.h:56
@ FT_SGLI
Definition: filetype.h:53
int readl1c_msi(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1c_msi.cpp:639
int openl1_read_octs_hdf(filehandle *l1file)
Definition: l1_octs_hdf.c:328
int closel1_viirs_h5(filehandle *file)
Definition: l1_viirs_h5.c:1722
int closel1_oli(filehandle *file)
Definition: l1_oli.c:599
int read_seabass(filehandle *file, l1str *l1rec)
Definition: l1_seabass.cpp:143
int readl1b_misr(filehandle *l1file, l1str *l1rec)
Definition: l1b_misr.c:327
@ FT_MODISL1B
Definition: filetype.h:31
@ FT_OCIL1B
Definition: filetype.h:43
int closel1_hico_h5(filehandle *file)
Definition: l1_hico_h5.c:436
int i
Definition: decode_rs.h:71
int readl1b_ocis(filehandle *file, int32_t line, l1str *l1rec)
Definition: l1b_ocis.c:335
void get_f0_thuillier_ext(int32_t wl, int32_t width, float *f0)
Definition: get_f0.c:137
void closel1_generic(filehandle *l1file)
int closel1_hmodis_hdf()
@ FT_OLIL1B
Definition: filetype.h:41
@ FT_CLASSAVHRR
Definition: filetype.h:15
int readl1_mos_hdf(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_mos_hdf.c:389
@ FT_L1XCAL
Definition: filetype.h:21
int openl1_aviris_nc(filehandle *l1file)
Definition: l1_aviris_nc.c:19
int openl1_l5tm(filehandle *file)
Definition: l1_l5tm.c:218
int openl1_ocia(filehandle *file)
Definition: l1_ocia.c:18
int readl1_xcal_hdf(filehandle *file, int32 scan, l1str *l1rec)
Definition: l1_xcal_hdf.c:66
int openl1_aci_hdf(filehandle *file)
Definition: l1_aci_hdf.c:48
@ FT_OSMIL1A
Definition: filetype.h:45
@ FT_CZCSL1A
Definition: filetype.h:16
int openl1_meris_safe(filehandle *l1file)
Definition: l1_meris_safe.c:39
int openl1_goci(filehandle *file)
Definition: l1_goci.c:21
int readl1_sgli(filehandle *file, int32 scan, l1str *l1rec)
Definition: l1_sgli.c:795
int openl1_meris_N1(filehandle *file)
opens a MERIS file for reading to load into L1 record
Definition: l1_meris_N1.c:109