OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
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 #include "l1.h"
24 
25 #include "scene_meta.h"
26 
27 #include <stdio.h>
28 
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_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_nc_generic_read.h"
55 #include "l1_l5tm.h"
56 #include "l1_l7etm.h"
57 #include "l1c_msi.h"
58 #include "l1a_hawkeye.h"
59 #include "l1b_misr.h"
60 #include "l1b_oci.h"
61 #include "l1b_ocis.h"
62 #include "l1_seabass.h"
63 
64 /* ---------------------------------------------------------------- */
65 /* Close the level 1 file associated with the input file handle. */
66 
67 /* ---------------------------------------------------------------- */
68 void closel1(filehandle *l1file) {
69  switch (l1file->format) {
70  case FT_L1HDF:
71  if (l1file->mode == READ)
73  else
75  break;
76  case FT_L1BNCDF:
78  break;
79  case FT_MOSL1B:
81  break;
82  case FT_SEAWIFSL1A:
84  break;
85  case FT_OCTSL1B:
87  break;
88  case FT_OCTSL1A:
90  break;
91  case FT_OSMIL1A:
93  break;
94  /* case FT_MODISL1B: */
95  /* closel1_modis_hdf(l1file); */
96  /* break; */
97  case FT_L1XCAL:
99  break;
100  case FT_CZCSL1A:
102  break;
103  case FT_HMODISL1B:
105  break;
106  case FT_CLASSAVHRR:
108  break;
109  case FT_OCML1B:
111  break;
112  case FT_OCM2L1B:
114  break;
115  case FT_OCML1BDB:
117  break;
118  case FT_MERISL1B:
120  break;
121  case FT_MERISCC:
123  break;
124  case FT_MERISL1BSAFE:
126  break;
127  case FT_VIIRSL1B:
129  break;
130  case FT_VIIRSL1BNC:
132  break;
133  case FT_VIIRSL1A:
135  break;
136  case FT_HICOL1B:
138  break;
139  case FT_GOCIL1B:
141  break;
142  case FT_OLIL1B:
144  break;
145  case FT_OCIA:
147  break;
148  case FT_OCIL1B:
150  break;
151  case FT_OCIS:
153  break;
154  case FT_AVIRIS: {
155  aviris_t* data = (aviris_t*) l1file->private_data;
156  if (data->isnetcdf)
158  else
160  } break;
161  case FT_PRISM:
163  break;
164  case FT_OLCI:
166  break;
167  case FT_SGLI:
169  break;
170  case FT_L5TML1B:
172  break;
173  case FT_L7ETML1B:
175  break;
176  case FT_MSIL1C:
178  break;
179  case FT_HAWKEYEL1A:
181  break;
182  case FT_MISR:
184  break;
185  case FT_SEABASSRRS:
187  break;
188  default:
189  fprintf(stderr,
190  "-E- %s Line %d: l1close - Unknown L1 file format specifier: %d\n",
191  __FILE__, __LINE__, l1file->format);
192  break;
193  };
194 
195  free(l1file->Fonom);
196  l1file->Fonom = NULL;
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, l1_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, l1_input->evalmask, "Bindx", (void **) &l1file->bindx);
223  l1file->nbandsir = rdsensorinfo(l1file->sensorID, l1_input->evalmask, "NbandsIR", NULL);
224 
225  /* set wavelength index */
226  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "Lambda", (void **) &l1file->iwave);
227  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "fwave", (void **) &l1file->fwave);
228  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "Fobar", (void **) &l1file->Fobar);
229  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "Tau_r", (void **) &l1file->Tau_r);
230  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "k_oz", (void **) &l1file->k_oz);
231  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "k_no2", (void **) &l1file->k_no2);
232  rdsensorinfo(l1file->sensorID, l1_input->evalmask, "aw", (void **) &l1file->aw);
233  rdsensorinfo(l1file->sensorID, l1_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 (l1_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_l1(0, l1rec, -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 
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:302
void bindex_set(int32_t wave[], int nwave, int dwave_vswir)
Definition: windex.c:15
@ FT_L1BNCDF
Definition: filetype.h:19
int closel1_xcal_hdf(filehandle *file)
Definition: l1_xcal_hdf.c:170
int openl1c_msi(filehandle *file)
Definition: l1c_msi.cpp:480
int closel1_safe(filehandle *file)
Definition: l1_safe.cpp:659
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:1334
int status
Definition: l1_czcs_hdf.c:32
@ FT_OCML1B
Definition: filetype.h:35
int openl1a_hawkeye(filehandle *file)
Definition: l1a_hawkeye.c:161
@ FT_OCML1BDB
Definition: filetype.h:36
@ FT_OLCI
Definition: filetype.h:39
int openl1_viirs_nc(filehandle *file)
Definition: l1_viirs_nc.c:62
int readl1b_viirs_nc(filehandle *l1file, const int32_t iline, l1str *l1rec)
Definition: l1b_viirs_nc.c:724
int closel1_hdf_g(filehandle *file)
int closel1b_viirs_nc()
Definition: l1b_viirs_nc.c:899
int closel1_meris_CC(filehandle *file)
Definition: l1_meris_CC.c:537
int readl1_ocia(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_ocia.c:124
int openl1_oli(filehandle *file)
Definition: l1_oli.c:141
int closel1_mos_hdf(filehandle *l1file)
Definition: l1_mos_hdf.c:469
int closel1_ocmdb_hdf(filehandle *file)
Definition: l1_ocmdb_hdf.c:222
int openl1b_ocis(filehandle *file)
Definition: l1b_ocis.c:85
int closel1a_hawkeye(filehandle *file)
Definition: l1a_hawkeye.c:715
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:57
#define NULL
Definition: decode_rs.h:63
@ FT_OCIA
Definition: filetype.h:42
int closel1_ocia(filehandle *file)
Definition: l1_ocia.c:318
int openl1_ocmdb_hdf(filehandle *file)
Definition: l1_ocmdb_hdf.c:23
int readl1_sgli(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_sgli.c:793
@ FT_L7ETML1B
Definition: filetype.h:55
#define READ
Definition: l1c.h:32
int openl1b_oci(filehandle *file)
Definition: l1b_oci.c:113
int readl1_ocm2_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_ocm2_hdf.c:136
int readl1_hmodis_hdf(filehandle *l1file, const int32_t line, l1str *l1rec)
int closel1_l5tm(filehandle *file)
Definition: l1_l5tm.c:568
read l1rec
int readl1_aci_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_aci_hdf.c:129
int closel1_ocm_hdf(filehandle *file)
Definition: l1_ocm_hdf.c:242
int readl1_prism(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_prism.c:310
@ FT_SEAWIFSL1A
Definition: filetype.h:47
int openl1_ocm_hdf(filehandle *file)
Definition: l1_ocm_hdf.c:18
@ FT_VIIRSL1A
Definition: filetype.h:50
int openl1a_osmi(filehandle *l1file)
Definition: l1a_osmi.c:70
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:531
int readl1_hico_h5(filehandle *file, int32_t scan, l1str *l1rec, int lonlat)
Definition: l1_hico_h5.c:348
int closel1_goci(filehandle *file)
Definition: l1_goci.c:183
@ FT_OCTSL1A
Definition: filetype.h:37
void scene_meta_put(l1str *l1rec)
Definition: scene_meta.c:72
int readl1_aviris(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1_aviris.c:676
int openl1a_seawifs(filehandle *file)
Definition: l1a_seawifs.c:350
@ FT_VIIRSL1B
Definition: filetype.h:51
@ FT_HICOL1B
Definition: filetype.h:18
int openl1_l7etm(filehandle *file)
Definition: l1_l7etm.c:123
@ FT_AVIRIS
Definition: filetype.h:14
int readl1_czcs(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1_czcs_hdf.c:477
@ FT_MERISL1BSAFE
Definition: filetype.h:29
int openl1(filehandle *l1file)
Definition: l1_io.c:207
int readl1a_seawifs(filehandle *file, int32_t recnum, l1str *l1rec)
Definition: l1a_seawifs.c:484
character(len=1000) if
Definition: names.f90:13
int openl1_sgli(filehandle *l1file)
Definition: l1_sgli.c:366
int closel1a_osmi(filehandle *l1file)
Definition: l1a_osmi.c:233
int readl1b_lonlat_viirs_nc(filehandle *l1file, const int32_t iline, l1str *l1rec)
Definition: l1b_viirs_nc.c:860
int readl1_goci(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_goci.c:84
@ FT_MERISCC
Definition: filetype.h:26
@ FT_OCTSL1B
Definition: filetype.h:38
int closel1_viirs_nc(filehandle *file)
Definition: l1_viirs_nc.c:615
@ 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:610
int readl1b_oci(filehandle *file, int32_t line, l1str *l1rec)
Definition: l1b_oci.c:373
int openl1_nc_generic(filehandle *file)
int readl1a_hawkeye(filehandle *file, int32_t oline, l1str *l1rec)
Definition: l1a_hawkeye.c:499
read recnum
@ FT_VIIRSL1BNC
Definition: filetype.h:52
int l1subpix(filehandle *l1file, l1str *l1rec)
Definition: l1subpix.c:17
int readl1_l7etm(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_l7etm.c:336
int openl1_hmodis_hdf(filehandle *l1file)
int closel1_czcs(filehandle *file)
Definition: l1_czcs_hdf.c:674
int readl1a_osmi(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1a_osmi.c:154
int closel1_octs_hdf(filehandle *l1file)
Definition: l1_octs_hdf.c:1147
int closel1b_oci(filehandle *file)
Definition: l1b_oci.c:774
@ FT_OCIS
Definition: filetype.h:44
int closel1c_msi(filehandle *file)
Definition: l1c_msi.cpp:1003
void closel1(filehandle *l1file)
Definition: l1_io.c:68
int openl1_safe(filehandle *l1file)
Definition: l1_safe.cpp:40
l1_input_t * l1_input
Definition: l1_options.c:9
int openl1_czcs(filehandle *file)
Definition: l1_czcs_hdf.c:361
int openl1_hico_h5(filehandle *file)
Definition: l1_hico_h5.c:61
int openl1_ocm2_hdf(filehandle *file)
Definition: l1_ocm2_hdf.c:104
int closel1_l7etm(filehandle *file)
Definition: l1_l7etm.c:465
int readl1_safe(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_safe.cpp:196
int openl1_aviris(filehandle *file)
Definition: l1_aviris.c:172
int closel1_ocm2_hdf(filehandle *file)
Definition: l1_ocm2_hdf.c:214
int openl1_viirs_h5(filehandle *file)
Definition: l1_viirs_h5.c:600
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:618
@ 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:421
int openl1_read_mos_hdf(filehandle *l1file)
Definition: l1_mos_hdf.c:101
int closel1_aviris_nc(filehandle *l1file)
Definition: l1_aviris_nc.c:358
int closel1a_seawifs(filehandle *file)
Definition: l1a_seawifs.c:646
int openl1_xcal_hdf(filehandle *file)
Definition: l1_xcal_hdf.c:31
int openl1b_viirs_nc(filehandle *l1file)
Definition: l1b_viirs_nc.c:426
void closel1_generic(filehandle *l1file)
int readl1_l5tm(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1_l5tm.c:424
int readl1_meris_CC(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_meris_CC.c:431
#define BAD_FLT
Definition: jplaeriallib.h:19
void init_l1(l1str *l1rec)
Definition: init_l1.c:11
int closel1_aviris(filehandle *file)
Definition: l1_aviris.c:921
@ FT_SEABASSRRS
Definition: filetype.h:59
int closel1b_misr(filehandle *file)
Definition: l1b_misr.c:895
int openl1b_misr(filehandle *file)
Definition: l1b_misr.c:33
@ FT_OCM2L1B
Definition: filetype.h:34
int closel1_aci_hdf(filehandle *file)
Definition: l1_aci_hdf.c:1158
int readl1_aviris_nc(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_aviris_nc.c:161
@ FT_GOCIL1B
Definition: filetype.h:17
int readl1(filehandle *l1file, int32_t recnum, l1str *l1rec)
Definition: l1_io.c:400
@ FT_MOSL1B
Definition: filetype.h:33
int readl1_meris_N1(filehandle *file, int32_t scan, l1str *l1rec)
reads 1 scan line from MERIS file, loads l1rec
Definition: l1_meris_N1.c:275
int readl1_viirs_h5(filehandle *file, int32_t dline, l1str *l1rec, int lonlat)
Definition: l1_viirs_h5.c:1382
int readl1_xcal_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_xcal_hdf.c:72
int readl1_lonlat_meris_N1(filehandle *file, int32_t scan, l1str *l1rec)
reads 1 scan line from MERIS file, loads l1rec
Definition: l1_meris_N1.c:679
int readl1_nc_generic(filehandle *file, int32_t scan, l1str *l1rec)
@ FT_L1HDF
Definition: filetype.h:20
int readl1_viirs_nc(filehandle *file, int32_t line, l1str *l1rec)
Definition: l1_viirs_nc.c:254
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:743
@ FT_MSIL1C
Definition: filetype.h:56
@ FT_SGLI
Definition: filetype.h:53
int readl1_ocmdb_hdf(filehandle *file, int32_t scan, l1str *l1rec)
Definition: l1_ocmdb_hdf.c:82
int readl1c_msi(filehandle *file, int recnum, l1str *l1rec, int lonlat)
Definition: l1c_msi.cpp:637
int openl1_write(filehandle *l1file)
int32_t rdsensorinfo(int32_t, int32_t, const char *, void **)
Definition: rdsensorinfo.c:69
int openl1_read_octs_hdf(filehandle *l1file)
Definition: l1_octs_hdf.c:328
void setflagbits_l1(int level, l1str *l1rec, int32_t ipix)
Definition: setflags_l1.c:129
#define BANDW
Definition: l1.h:52
int closel1_viirs_h5(filehandle *file)
Definition: l1_viirs_h5.c:1725
int closel1_oli(filehandle *file)
Definition: l1_oli.c:660
int read_seabass(filehandle *file, l1str *l1rec)
Definition: l1_seabass.cpp:143
int readl1b_misr(filehandle *l1file, l1str *l1rec)
Definition: l1b_misr.c:333
@ FT_MODISL1B
Definition: filetype.h:31
@ FT_OCIL1B
Definition: filetype.h:43
int closel1_hico_h5(filehandle *file)
Definition: l1_hico_h5.c:437
int i
Definition: decode_rs.h:71
int readl1b_ocis(filehandle *file, int32_t line, l1str *l1rec)
Definition: l1b_ocis.c:354
void get_f0_thuillier_ext(int32_t wl, int32_t width, float *f0)
Definition: get_f0.c:137
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:388
@ FT_L1XCAL
Definition: filetype.h:21
int openl1_aviris_nc(filehandle *l1file)
Definition: l1_aviris_nc.c:21
int openl1_l5tm(filehandle *file)
Definition: l1_l5tm.c:217
int openl1_ocia(filehandle *file)
Definition: l1_ocia.c:20
int openl1_aci_hdf(filehandle *file)
Definition: l1_aci_hdf.c:50
@ FT_OSMIL1A
Definition: filetype.h:45
@ FT_CZCSL1A
Definition: filetype.h:16
int openl1_goci(filehandle *file)
Definition: l1_goci.c:19
int openl1_meris_N1(filehandle *file)
opens a MERIS file for reading to load into L1 record
Definition: l1_meris_N1.c:112