ocssw
V2022
|
#include "argpar.h"
#include "olog.h"
#include "shash.h"
#include <netcdf.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
Go to the source code of this file.
Classes | |
struct | val_extract_valid_range |
struct | val_extract_arguments |
struct | nc_point |
struct | nc_box |
struct | nc_file |
struct | nc_region |
struct | nc_var_stats |
struct | nc_var |
Macros | |
#define | VALEXTRACT_API_VERSION 2007005 |
#define | VALEXTRACT_API_VERSION_STR "2.7.5" |
#define | VALEXTRACT_ERR_NONE EXIT_SUCCESS |
#define | VALEXTRACT_ERR_POINT_NOT_FOUND 99 |
#define | VALEXTRACT_ERR_UNKNOWN 100 |
#define | VALEXTRACT_ERR_NCFILE_ERR 101 |
#define | VALEXTRACT_ERR_NCFILE_INVALID 102 |
#define | VALEXTRACT_ERR_FLAG 103 |
#define | VALEXTRACT_ERR_VARIABLE 104 |
#define | VALEXTRACT_ERR_INPUT 105 |
#define | VALEXTRACT_ERR_L2QC 106 |
#define | VALEXTRACT_KEY_INIT 1 |
#define | VALEXTRACT_KEY_FILE 2 |
#define | VALEXTRACT_KEY_VAR 3 |
#define | VALEXTRACT_KEY_SUCCESS 4 |
#define | VALEXTRACT_KEY_ERROR 5 |
#define | VALEXTRACT_KEY_FINI 6 |
#define | VALEXTRACT_CMD_STOP 2 |
#define | VALEXTRACT_UNSET -255 |
#define | declare_nc_get_varr(type, suffix) |
#define | declare_compare(type, suffix) int compare ## suffix(const void *a, const void *b) |
Typedefs | |
typedef int(* | val_extract_parser) (int key, void *nc_input, void *user_input) |
Functions | |
int | val_extract (val_extract_arguments *arguments) |
int | val_extract_clean (val_extract_arguments *arguments) |
void | val_extract_clear_args (val_extract_arguments *arguments) |
void | unflatten_index (int index, int ndims, const int *dims, int *result) |
const char * | val_extract_version () |
const char * | val_extract_api_version () |
size_t | nc_get_region_size (nc_region *region) |
size_t | nc_get_region_dim_size (nc_region *region, int dim_index) |
declare_nc_get_varr (char, _text) declare_nc_get_varr(unsigned char | |
_uchar | declare_nc_get_varr (signed char, _schar) declare_nc_get_varr(short |
_uchar _short | declare_nc_get_varr (int, _int) declare_nc_get_varr(long |
_uchar _short _long | declare_nc_get_varr (float, _float) declare_nc_get_varr(double |
_uchar _short _long _double | declare_nc_get_varr (unsigned short, _ushort) declare_nc_get_varr(unsigned int |
_uchar _short _long _double _uint | declare_nc_get_varr (long long, _longlong) declare_nc_get_varr(unsigned long long |
_uchar _short _long _double _uint _ulonglong | declare_nc_get_varr (char *, _string) declare_nc_get_varr(void |
declare_compare (int8_t, _int8) | |
declare_compare (uint8_t, _uint8) | |
declare_compare (int16_t, _int16) | |
declare_compare (uint16_t, _uint16) | |
declare_compare (int32_t, _int32) | |
declare_compare (uint32_t, _uint32) | |
declare_compare (int64_t, _int64) | |
declare_compare (uint64_t, _uint64) | |
declare_compare (float, _float) | |
declare_compare (double, _double) | |
Variables | |
argpar | val_extract_argpar |
Detailed Description
Process a small section of a Level-2 NetCDF file.
Definition in file val_extract.h.
Macro Definition Documentation
◆ declare_compare
Definition at line 315 of file val_extract.h.
◆ declare_nc_get_varr
#define declare_nc_get_varr | ( | type, | |
suffix | |||
) |
◆ VALEXTRACT_API_VERSION
#define VALEXTRACT_API_VERSION 2007005 |
Current API version. If already defined, use API defined first.
Definition at line 20 of file val_extract.h.
◆ VALEXTRACT_API_VERSION_STR
#define VALEXTRACT_API_VERSION_STR "2.7.5" |
Current API version as a string.
Definition at line 22 of file val_extract.h.
◆ VALEXTRACT_CMD_STOP
#define VALEXTRACT_CMD_STOP 2 |
Returned from a parser to stop processing.
Definition at line 65 of file val_extract.h.
◆ VALEXTRACT_ERR_FLAG
#define VALEXTRACT_ERR_FLAG 103 |
Returned when the something goes wrong processing l2_flags.
Definition at line 37 of file val_extract.h.
◆ VALEXTRACT_ERR_INPUT
#define VALEXTRACT_ERR_INPUT 105 |
Returned when given bad or no arguments.
Definition at line 42 of file val_extract.h.
◆ VALEXTRACT_ERR_L2QC
#define VALEXTRACT_ERR_L2QC 106 |
Not a real error, but returned when the L2QC step says it's a poor quality file.
Definition at line 44 of file val_extract.h.
◆ VALEXTRACT_ERR_NCFILE_ERR
#define VALEXTRACT_ERR_NCFILE_ERR 101 |
Returned when the NetCDF file can't be opened (due to errors or corruption).
Definition at line 33 of file val_extract.h.
◆ VALEXTRACT_ERR_NCFILE_INVALID
#define VALEXTRACT_ERR_NCFILE_INVALID 102 |
Returned when the NetCDF file isn't in the format expected (not an L2, etc).
Definition at line 35 of file val_extract.h.
◆ VALEXTRACT_ERR_NONE
#define VALEXTRACT_ERR_NONE EXIT_SUCCESS |
Returned on successful processing.
Definition at line 26 of file val_extract.h.
◆ VALEXTRACT_ERR_POINT_NOT_FOUND
#define VALEXTRACT_ERR_POINT_NOT_FOUND 99 |
Returned when the desired point is not in the file boundaries.
Definition at line 28 of file val_extract.h.
◆ VALEXTRACT_ERR_UNKNOWN
#define VALEXTRACT_ERR_UNKNOWN 100 |
Returned for unexpected errors like malloc failures or, possibly, permissions problems and the like.
Definition at line 31 of file val_extract.h.
◆ VALEXTRACT_ERR_VARIABLE
#define VALEXTRACT_ERR_VARIABLE 104 |
Returned when the something goes wrong processing a product or when finding a product specified on the command line.
Definition at line 40 of file val_extract.h.
◆ VALEXTRACT_KEY_ERROR
#define VALEXTRACT_KEY_ERROR 5 |
Passed to parser when the processing is finished and an error was encountered.
Definition at line 60 of file val_extract.h.
◆ VALEXTRACT_KEY_FILE
#define VALEXTRACT_KEY_FILE 2 |
Passed to parser when first opening the NetCDF file. The parser is passed a pointer to an nc_region structure as input.
Definition at line 53 of file val_extract.h.
◆ VALEXTRACT_KEY_FINI
#define VALEXTRACT_KEY_FINI 6 |
Passed to parser when ending the processing.
Definition at line 62 of file val_extract.h.
◆ VALEXTRACT_KEY_INIT
#define VALEXTRACT_KEY_INIT 1 |
Passed to parser when beginning the processing.
Definition at line 50 of file val_extract.h.
◆ VALEXTRACT_KEY_SUCCESS
#define VALEXTRACT_KEY_SUCCESS 4 |
Passed to parser when the processing is finished and no errors were encountered.
Definition at line 58 of file val_extract.h.
◆ VALEXTRACT_KEY_VAR
#define VALEXTRACT_KEY_VAR 3 |
Passed to parser when a variable is processed. The parser is passed a pointer to an nc_var structure as input.
Definition at line 56 of file val_extract.h.
◆ VALEXTRACT_UNSET
#define VALEXTRACT_UNSET -255 |
Initial value for location arguments (lat/lon/line/pixl) before argument parsing.
Definition at line 68 of file val_extract.h.
Typedef Documentation
◆ val_extract_parser
typedef int(* val_extract_parser) (int key, void *nc_input, void *user_input) |
Pointer to a callback function to call for each argument parsed.
- Parameters
-
[in] key One of the VALEXTRACT_KEY_ macros. [in] nc_input Either NULL, an nc_region or nc_var pointer, depending on they key. All pointers should persist until after the VALEXTRACT_KEY_FINI call. [in] user_input Input pointer from the val_extract_arguments structure.
- Returns
- 0 on success, 1 on error.
Definition at line 79 of file val_extract.h.
Function Documentation
◆ declare_compare() [1/10]
declare_compare | ( | double | , |
_double | |||
) |
◆ declare_compare() [2/10]
declare_compare | ( | float | , |
_float | |||
) |
◆ declare_compare() [3/10]
declare_compare | ( | int16_t | , |
_int16 | |||
) |
◆ declare_compare() [4/10]
declare_compare | ( | int32_t | , |
_int32 | |||
) |
◆ declare_compare() [5/10]
declare_compare | ( | int64_t | , |
_int64 | |||
) |
◆ declare_compare() [6/10]
declare_compare | ( | int8_t | , |
_int8 | |||
) |
◆ declare_compare() [7/10]
declare_compare | ( | uint16_t | , |
_uint16 | |||
) |
◆ declare_compare() [8/10]
declare_compare | ( | uint32_t | , |
_uint32 | |||
) |
◆ declare_compare() [9/10]
declare_compare | ( | uint64_t | , |
_uint64 | |||
) |
◆ declare_compare() [10/10]
declare_compare | ( | uint8_t | , |
_uint8 | |||
) |
◆ declare_nc_get_varr() [1/7]
_uchar _short _long _double _uint _ulonglong declare_nc_get_varr | ( | char * | , |
_string | |||
) |
◆ declare_nc_get_varr() [2/7]
declare_nc_get_varr | ( | char | , |
_text | |||
) |
◆ declare_nc_get_varr() [3/7]
_uchar _short _long declare_nc_get_varr | ( | float | , |
_float | |||
) |
◆ declare_nc_get_varr() [4/7]
_uchar _short declare_nc_get_varr | ( | int | , |
_int | |||
) |
◆ declare_nc_get_varr() [5/7]
_uchar _short _long _double _uint declare_nc_get_varr | ( | long long | , |
_longlong | |||
) |
◆ declare_nc_get_varr() [6/7]
_uchar declare_nc_get_varr | ( | signed char | , |
_schar | |||
) |
◆ declare_nc_get_varr() [7/7]
_uchar _short _long _double declare_nc_get_varr | ( | unsigned short | , |
_ushort | |||
) |
◆ nc_get_region_dim_size()
size_t nc_get_region_dim_size | ( | nc_region * | region, |
int | dim_index | ||
) |
Definition at line 2683 of file val_extract.c.
◆ nc_get_region_size()
size_t nc_get_region_size | ( | nc_region * | region | ) |
Definition at line 2675 of file val_extract.c.
◆ unflatten_index()
void unflatten_index | ( | int | index, |
int | ndims, | ||
const int * | dims, | ||
int * | result | ||
) |
Given dimension lengths from an nc_file and a one dimensional index, find the corresponding n-dimension index.
Definition at line 2604 of file val_extract.c.
◆ val_extract()
int val_extract | ( | val_extract_arguments * | arguments | ) |
Process a small section of a Level-2 NetCDF file.
- Parameters
-
[in] arguments val_extract_argument structure.
- Returns
- 0 on success, one of VALEXTRACT_ERR_ on error.
Definition at line 589 of file val_extract.c.
◆ val_extract_api_version()
const char* val_extract_api_version | ( | ) |
Returns a string representation of the library's implemented API version number, without a label.
Definition at line 2635 of file val_extract.c.
◆ val_extract_clean()
int val_extract_clean | ( | val_extract_arguments * | arguments | ) |
Clean up stuff malloc'd by the argpar callback. Should be called at the end of processing if val_extract_argpar is used.
Definition at line 2540 of file val_extract.c.
◆ val_extract_clear_args()
void val_extract_clear_args | ( | val_extract_arguments * | arguments | ) |
Clear an argument struct to make it suitable for using the library without using argpar.
This is sometimes necessary because a freshly malloc'd struct can have valid values for arguments that a user may not want; for example, if start and end coords aren't explicitly unset, omitting them from the arguments won't grab the entire file, as would be expected.
- Parameters
-
[in] arguments val_extract_argument structure.
Definition at line 127 of file val_extract.c.
◆ val_extract_version()
const char* val_extract_version | ( | ) |
Returns a string representation of the library's version number, without a label.
Definition at line 2632 of file val_extract.c.
Variable Documentation
◆ val_extract_argpar
argpar val_extract_argpar |
argpar structure used for making programs that inherit options from this library.
Definition at line 523 of file val_extract.c.