ocssw
V2022
|
#include "libnav.h"
#include "hdf4utils.h"
#include "l1.h"
#include <libgen.h>
#include <hdf.h>
#include <mfhdf.h>
Go to the source code of this file.
Classes | |
struct | sdslist |
struct | modis_file |
struct | modis_sds |
struct | bandinfo |
struct | sfcorr_table |
struct | fill_table |
Macros | |
#define | _XOPEN_SOURCE_EXTENDED /* for strdup() */ |
#define | SCAN_TIME_INTERVAL 1.4771 |
#define | TRYMEM(file, line, memstat) |
#define | MIN_BAD_SI 65500 |
#define | MAX_ATTERR 0.017453293 /* radians, ~= 1 degree */ |
#define | LOOPI for (i = 0; i < nvals; i++) |
Enumerations | |
enum | REF_SDS { GEO_TAISEC, GEO_MSIDE, GEO_ANGLES, GEO_MNORM, REF_NUM_SDS } |
enum | GEO_SDS { GEO_LON, GEO_LAT, GEO_HGT, GEO_SOLZ, GEO_SOLA, GEO_SENZ, GEO_SENA, GEO_NUM_SDS } |
enum | GEO_COEFFS { GEO_SCALE, GEO_NUM_COEFFS } |
enum | L1B_SDS { RSB_250, RSB_500, RSB_1KM, CIR_1KM, TEB_1KM, L1B_NUM_SDS } |
enum | L1B_COEFFS { REFL_SCALE, REFL_OFFSET, RAD_SCALE, RAD_OFFSET, L1B_NUM_COEFFS } |
Functions | |
int | modpath_1km (const char *oldpath, const char *newchars, char *newpath) |
int | open_modis_l1bfile (modis_file *l1bfile) |
int | init_l1b (const char filename[FILENAME_MAX], int32_t *max_resolution) |
int | open_modis_geofile (modis_file *geofile) |
int | init_geo (const char filename[FILENAME_MAX]) |
int | read_sds_1scan (sds_struct *sds, int32_t iscan, int32_t scandim, int32_t per_scan) |
int | openl1_hmodis_hdf (filehandle *l1file) |
int | alloc_scan (const int32_t nvals) |
void | read_sfcorrtables (sfcorr_table *sfcorr, int32_t sensorID) |
void | subframe_correction (const int32_t sensorID, const int32_t iband, const modis_sds mds, double *data) |
void | init_detfill (fill_table *fill) |
void | fill_dead_detectors (const int32_t iband, const modis_sds mds, double *data) |
double | interp_bilin (double val[4], double dx, double dy) |
double | interp_modis_EVdata (double val[4], double dx, double dy) |
double | interp_modis_Longitude (double val[4], double dx, double dy) |
int | modis_interp (const modis_sds s, const int32_t sdsband, const int32_t newres, double *olddata, double *newdata) |
int | load_modis_scan (const int32_t iscan, const int32_t resolution, int32_t sensorID) |
int | set_l1rec_scanvals (const int32_t iscan, l1str *l1rec) |
int | readl1_hmodis_hdf (filehandle *l1file, const int32_t line, l1str *l1rec) |
int | closel1_hmodis_hdf () |
int | readl1_lonlat_hmodis_hdf (filehandle *l1file, int32_t line, l1str *l1rec) |
Variables | |
double(* | interp_modis_var )(double val[4], double dx, double dy) |
Macro Definition Documentation
◆ _XOPEN_SOURCE_EXTENDED
Definition at line 11 of file l1_hmodis_hdf.c.
◆ LOOPI
◆ MAX_ATTERR
#define MAX_ATTERR 0.017453293 /* radians, ~= 1 degree */ |
Definition at line 537 of file l1_hmodis_hdf.c.
◆ MIN_BAD_SI
#define MIN_BAD_SI 65500 |
Definition at line 536 of file l1_hmodis_hdf.c.
◆ SCAN_TIME_INTERVAL
#define SCAN_TIME_INTERVAL 1.4771 |
Definition at line 20 of file l1_hmodis_hdf.c.
◆ TRYMEM
#define TRYMEM | ( | file, | |
line, | |||
memstat | |||
) |
Enumeration Type Documentation
◆ GEO_COEFFS
enum GEO_COEFFS |
Enumerator | |
---|---|
GEO_SCALE | scale_factor |
GEO_NUM_COEFFS | last entry = number of scale attributes |
Definition at line 77 of file l1_hmodis_hdf.c.
◆ GEO_SDS
enum GEO_SDS |
Enumerator | |
---|---|
GEO_LON | Longitude |
GEO_LAT | Latitude |
GEO_HGT | Height |
GEO_SOLZ | SolarZenith |
GEO_SOLA | SolarAzimuth |
GEO_SENZ | SensorZenith |
GEO_SENA | SensorAzimuth |
GEO_NUM_SDS | last entry = number of SDSs |
Definition at line 56 of file l1_hmodis_hdf.c.
◆ L1B_COEFFS
enum L1B_COEFFS |
Enumerator | |
---|---|
REFL_SCALE | reflectance_scales |
REFL_OFFSET | reflectance_offsets |
RAD_SCALE | radiance_scales |
RAD_OFFSET | radiance_offsets |
L1B_NUM_COEFFS | last entry = number of scale attributes |
Definition at line 112 of file l1_hmodis_hdf.c.
◆ L1B_SDS
enum L1B_SDS |
Enumerator | |
---|---|
RSB_250 | Bands 1 & 2 |
RSB_500 | Bands 3 - 7 |
RSB_1KM | all other reflective bands |
CIR_1KM | Band 26 |
TEB_1KM | all thermal bands |
L1B_NUM_SDS | last entry = number of SDSs |
Definition at line 86 of file l1_hmodis_hdf.c.
◆ REF_SDS
enum REF_SDS |
Enumerator | |
---|---|
GEO_TAISEC | EV start time |
GEO_MSIDE | Mirror side |
GEO_ANGLES | attitude_angles |
GEO_MNORM | T_inst2ECR |
REF_NUM_SDS | last entry = number of SDSs |
Definition at line 40 of file l1_hmodis_hdf.c.
Function Documentation
◆ alloc_scan()
int alloc_scan | ( | const int32_t | nvals | ) |
Allocates memory for global structure "scan", and initializes some constants
- Parameters
-
[in] nvals number of values per variable per scan
- Returns
Definition at line 770 of file l1_hmodis_hdf.c.
◆ closel1_hmodis_hdf()
int closel1_hmodis_hdf | ( | ) |
- Returns
Definition at line 1631 of file l1_hmodis_hdf.c.
◆ fill_dead_detectors()
Definition at line 1038 of file l1_hmodis_hdf.c.
◆ init_detfill()
void init_detfill | ( | fill_table * | fill | ) |
Definition at line 982 of file l1_hmodis_hdf.c.
◆ init_geo()
int init_geo | ( | const char | filename[FILENAME_MAX] | ) |
Definition at line 444 of file l1_hmodis_hdf.c.
◆ init_l1b()
int init_l1b | ( | const char | filename[FILENAME_MAX], |
int32_t * | max_resolution | ||
) |
Definition at line 287 of file l1_hmodis_hdf.c.
◆ interp_bilin()
double interp_bilin | ( | double | val[4], |
double | dx, | ||
double | dy | ||
) |
Definition at line 1111 of file l1_hmodis_hdf.c.
◆ interp_modis_EVdata()
double interp_modis_EVdata | ( | double | val[4], |
double | dx, | ||
double | dy | ||
) |
Definition at line 1116 of file l1_hmodis_hdf.c.
◆ interp_modis_Longitude()
double interp_modis_Longitude | ( | double | val[4], |
double | dx, | ||
double | dy | ||
) |
Definition at line 1150 of file l1_hmodis_hdf.c.
◆ load_modis_scan()
load values for one scan
- Parameters
-
[in] iscan
- Returns
Definition at line 1275 of file l1_hmodis_hdf.c.
◆ modis_interp()
int modis_interp | ( | const modis_sds | s, |
const int32_t | sdsband, | ||
const int32_t | newres, | ||
double * | olddata, | ||
double * | newdata | ||
) |
Definition at line 1173 of file l1_hmodis_hdf.c.
◆ modpath_1km()
Definition at line 182 of file l1_hmodis_hdf.c.
◆ open_modis_geofile()
int open_modis_geofile | ( | modis_file * | geofile | ) |
Definition at line 406 of file l1_hmodis_hdf.c.
◆ open_modis_l1bfile()
int open_modis_l1bfile | ( | modis_file * | l1bfile | ) |
Definition at line 230 of file l1_hmodis_hdf.c.
◆ openl1_hmodis_hdf()
int openl1_hmodis_hdf | ( | filehandle * | l1file | ) |
◆ read_sds_1scan()
int read_sds_1scan | ( | sds_struct * | sds, |
int32_t | iscan, | ||
int32_t | scandim, | ||
int32_t | per_scan | ||
) |
Definition at line 489 of file l1_hmodis_hdf.c.
◆ read_sfcorrtables()
void read_sfcorrtables | ( | sfcorr_table * | sfcorr, |
int32_t | sensorID | ||
) |
Definition at line 802 of file l1_hmodis_hdf.c.
◆ readl1_hmodis_hdf()
int readl1_hmodis_hdf | ( | filehandle * | l1file, |
const int32_t | line, | ||
l1str * | l1rec | ||
) |
- Parameters
-
[in,out] l1file [in] line [in,out] l1rec
- Returns
Definition at line 1448 of file l1_hmodis_hdf.c.
◆ readl1_lonlat_hmodis_hdf()
int readl1_lonlat_hmodis_hdf | ( | filehandle * | l1file, |
int32_t | line, | ||
l1str * | l1rec | ||
) |
Definition at line 1678 of file l1_hmodis_hdf.c.
◆ set_l1rec_scanvals()
int set_l1rec_scanvals | ( | const int32_t | iscan, |
l1str * | l1rec | ||
) |
set all scan-based values in l1rec
- Parameters
-
[in] iscan [in,out] l1rec
- Returns
Definition at line 1388 of file l1_hmodis_hdf.c.
◆ subframe_correction()
void subframe_correction | ( | const int32_t | sensorID, |
const int32_t | iband, | ||
const modis_sds | mds, | ||
double * | data | ||
) |
Definition at line 915 of file l1_hmodis_hdf.c.
Variable Documentation
◆ allbands
float* allbands |
Scaled Integers for all bands
Definition at line 762 of file l1_hmodis_hdf.c.
◆ angles
double angles[3] |
attitude_angles
Definition at line 753 of file l1_hmodis_hdf.c.
◆ hgt
float* hgt |
Height
Definition at line 757 of file l1_hmodis_hdf.c.
◆ interp_modis_var
double(* interp_modis_var) (double val[4], double dx, double dy) |
Definition at line 1171 of file l1_hmodis_hdf.c.
◆ iscan
int32_t iscan |
scan number (0-based)
Definition at line 745 of file l1_hmodis_hdf.c.
◆ lat
float* lat |
Latitude
Definition at line 756 of file l1_hmodis_hdf.c.
◆ lon
float* lon |
Longitude
Definition at line 755 of file l1_hmodis_hdf.c.
◆ mnorm
double mnorm[3] |
T_inst2ECR (need only 1st 3 values)
Definition at line 754 of file l1_hmodis_hdf.c.
◆ mside
int32_t mside |
Mirror side
Definition at line 752 of file l1_hmodis_hdf.c.
◆ nbands
int32_t nbands |
number of bands
Definition at line 748 of file l1_hmodis_hdf.c.
◆ npix
int32_t npix |
number of values per variable per line
Definition at line 747 of file l1_hmodis_hdf.c.
◆ nvals
int32_t nvals |
number of values per variable per scan
Definition at line 746 of file l1_hmodis_hdf.c.
◆ sena
float* sena |
SensorAzimuth
Definition at line 761 of file l1_hmodis_hdf.c.
◆ senz
float* senz |
SensorZenith
Definition at line 760 of file l1_hmodis_hdf.c.
◆ sola
float* sola |
SolarAzimuth
Definition at line 759 of file l1_hmodis_hdf.c.
◆ solz
float* solz |
SolarZenith
Definition at line 758 of file l1_hmodis_hdf.c.
◆ taisec
double taisec |
EV start time
Definition at line 751 of file l1_hmodis_hdf.c.