The ecCodes C header file. More...
| Macros | |
| #define | CODES_KEYS_ITERATOR_ALL_KEYS 0 | 
| #define | CODES_KEYS_ITERATOR_SKIP_READ_ONLY (1<<0) | 
| #define | CODES_KEYS_ITERATOR_SKIP_OPTIONAL (1<<1) | 
| #define | CODES_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC (1<<2) | 
| #define | CODES_KEYS_ITERATOR_SKIP_CODED (1<<3) | 
| #define | CODES_KEYS_ITERATOR_SKIP_COMPUTED (1<<4) | 
| #define | CODES_KEYS_ITERATOR_SKIP_DUPLICATES (1<<5) | 
| #define | CODES_KEYS_ITERATOR_SKIP_FUNCTION (1<<6) | 
| #define | CODES_KEYS_ITERATOR_DUMP_ONLY (1<<7) | 
| #define | CODES_SUCCESS 0 | 
| No error.  More... | |
| #define | CODES_END_OF_FILE -1 | 
| End of resource reached.  More... | |
| #define | CODES_INTERNAL_ERROR -2 | 
| Internal error.  More... | |
| #define | CODES_BUFFER_TOO_SMALL -3 | 
| Passed buffer is too small.  More... | |
| #define | CODES_NOT_IMPLEMENTED -4 | 
| Function not yet implemented.  More... | |
| #define | CODES_7777_NOT_FOUND -5 | 
| Missing 7777 at end of message.  More... | |
| #define | CODES_ARRAY_TOO_SMALL -6 | 
| Passed array is too small.  More... | |
| #define | CODES_FILE_NOT_FOUND -7 | 
| File not found.  More... | |
| #define | CODES_CODE_NOT_FOUND_IN_TABLE -8 | 
| Code not found in code table.  More... | |
| #define | CODES_WRONG_ARRAY_SIZE -9 | 
| Array size mismatch.  More... | |
| #define | CODES_NOT_FOUND -10 | 
| Key/value not found.  More... | |
| #define | CODES_IO_PROBLEM -11 | 
| Input output problem.  More... | |
| #define | CODES_INVALID_MESSAGE -12 | 
| Message invalid.  More... | |
| #define | CODES_DECODING_ERROR -13 | 
| Decoding invalid.  More... | |
| #define | CODES_ENCODING_ERROR -14 | 
| Encoding invalid.  More... | |
| #define | CODES_NO_MORE_IN_SET -15 | 
| Code cannot unpack because of string too small.  More... | |
| #define | CODES_GEOCALCULUS_PROBLEM -16 | 
| Problem with calculation of geographic attributes.  More... | |
| #define | CODES_OUT_OF_MEMORY -17 | 
| Memory allocation error.  More... | |
| #define | CODES_READ_ONLY -18 | 
| Value is read only.  More... | |
| #define | CODES_INVALID_ARGUMENT -19 | 
| Invalid argument.  More... | |
| #define | CODES_NULL_HANDLE -20 | 
| Null handle.  More... | |
| #define | CODES_INVALID_SECTION_NUMBER -21 | 
| Invalid section number.  More... | |
| #define | CODES_VALUE_CANNOT_BE_MISSING -22 | 
| Value cannot be missing.  More... | |
| #define | CODES_WRONG_LENGTH -23 | 
| Wrong message length.  More... | |
| #define | CODES_INVALID_TYPE -24 | 
| Invalid key type.  More... | |
| #define | CODES_WRONG_STEP -25 | 
| Unable to set step.  More... | |
| #define | CODES_WRONG_STEP_UNIT -26 | 
| Wrong units for step (step must be integer)  More... | |
| #define | CODES_INVALID_FILE -27 | 
| Invalid file id.  More... | |
| #define | CODES_INVALID_GRIB -28 | 
| Invalid grib id.  More... | |
| #define | CODES_INVALID_INDEX -29 | 
| Invalid index id.  More... | |
| #define | CODES_INVALID_ITERATOR -30 | 
| Invalid iterator id.  More... | |
| #define | CODES_INVALID_KEYS_ITERATOR -31 | 
| Invalid keys iterator id.  More... | |
| #define | CODES_INVALID_NEAREST -32 | 
| Invalid nearest id.  More... | |
| #define | CODES_INVALID_ORDERBY -33 | 
| Invalid order by.  More... | |
| #define | CODES_MISSING_KEY -34 | 
| Missing a key from the fieldset.  More... | |
| #define | CODES_OUT_OF_AREA -35 | 
| The point is out of the grid area.  More... | |
| #define | CODES_CONCEPT_NO_MATCH -36 | 
| Concept no match.  More... | |
| #define | CODES_HASH_ARRAY_NO_MATCH -37 | 
| Hash array no match.  More... | |
| #define | CODES_NO_DEFINITIONS -38 | 
| Definitions files not found.  More... | |
| #define | CODES_WRONG_TYPE -39 | 
| Wrong type while packing.  More... | |
| #define | CODES_END -40 | 
| End of resource.  More... | |
| #define | CODES_NO_VALUES -41 | 
| Unable to code a field without values.  More... | |
| #define | CODES_WRONG_GRID -42 | 
| Grid description is wrong or inconsistent.  More... | |
| #define | CODES_END_OF_INDEX -43 | 
| End of index reached.  More... | |
| #define | CODES_NULL_INDEX -44 | 
| Null index.  More... | |
| #define | CODES_PREMATURE_END_OF_FILE -45 | 
| End of resource reached when reading message.  More... | |
| #define | CODES_INTERNAL_ARRAY_TOO_SMALL -46 | 
| An internal array is too small.  More... | |
| #define | CODES_MESSAGE_TOO_LARGE -47 | 
| Message is too large for the current architecture.  More... | |
| #define | CODES_CONSTANT_FIELD -48 | 
| Constant field.  More... | |
| #define | CODES_SWITCH_NO_MATCH -49 | 
| Switch unable to find a matching case.  More... | |
| #define | CODES_UNDERFLOW -50 | 
| Underflow.  More... | |
| #define | CODES_MESSAGE_MALFORMED -51 | 
| Message malformed.  More... | |
| #define | CODES_CORRUPTED_INDEX -52 | 
| Index is corrupted.  More... | |
| #define | CODES_INVALID_BPV -53 | 
| Invalid number of bits per value.  More... | |
| #define | CODES_DIFFERENT_EDITION -54 | 
| Edition of two messages is different.  More... | |
| #define | CODES_VALUE_DIFFERENT -55 | 
| Value is different.  More... | |
| #define | CODES_INVALID_KEY_VALUE -56 | 
| Invalid key value.  More... | |
| #define | CODES_STRING_TOO_SMALL -57 | 
| String is smaller than requested.  More... | |
| #define | CODES_WRONG_CONVERSION -58 | 
| Wrong type conversion.  More... | |
| #define | CODES_MISSING_BUFR_ENTRY -59 | 
| Missing BUFR table entry for descriptor.  More... | |
| #define | CODES_NULL_POINTER -60 | 
| Null pointer.  More... | |
| #define | CODES_ATTRIBUTE_CLASH -61 | 
| Attribute is already present, cannot add.  More... | |
| #define | CODES_TOO_MANY_ATTRIBUTES -62 | 
| Too many attributes.  More... | |
| #define | CODES_ATTRIBUTE_NOT_FOUND -63 | 
| Attribute not found.  More... | |
| #define | CODES_UNSUPPORTED_EDITION -64 | 
| Edition not supported.  More... | |
| #define | CODES_OUT_OF_RANGE -65 | 
| Value out of coding range.  More... | |
| #define | CODES_WRONG_BITMAP_SIZE -66 | 
| Size of bitmap is incorrect.  More... | |
| Functions | |
| codes_index * | codes_index_new_from_file (codes_context *c, char *filename, const char *keys, int *err) | 
| Create a new index form a file.  More... | |
| codes_index * | codes_index_new (codes_context *c, const char *keys, int *err) | 
| Create a new index based on a set of keys.  More... | |
| int | codes_index_add_file (grib_index *index, const char *filename) | 
| Indexes the file given in argument in the index given in argument.  More... | |
| int | codes_index_get_size (codes_index *index, const char *key, size_t *size) | 
| Get the number of distinct values of the key in argument contained in the index.  More... | |
| int | codes_index_get_long (codes_index *index, const char *key, long *values, size_t *size) | 
| Get the distinct values of the key in argument contained in the index.  More... | |
| int | codes_index_get_double (codes_index *index, const char *key, double *values, size_t *size) | 
| Get the distinct values of the key in argument contained in the index.  More... | |
| int | codes_index_get_string (codes_index *index, const char *key, char **values, size_t *size) | 
| Get the distinct values of the key in argument contained in the index.  More... | |
| int | codes_index_select_long (codes_index *index, const char *key, long value) | 
| Select the message subset with key==value.  More... | |
| int | codes_index_select_double (codes_index *index, const char *key, double value) | 
| Select the message subset with key==value.  More... | |
| int | codes_index_select_string (codes_index *index, const char *key, char *value) | 
| Select the message subset with key==value.  More... | |
| codes_handle * | codes_handle_new_from_index (codes_index *index, int *err) | 
| Create a new handle from an index after having selected the key values.  More... | |
| void | codes_index_delete (codes_index *index) | 
| Delete the index.  More... | |
| int | codes_count_in_file (codes_context *c, FILE *f, int *n) | 
| Counts the messages contained in a file resource.  More... | |
| grib_handle * | codes_handle_new_from_file (grib_context *c, FILE *f, ProductKind product, int *error) | 
| Create a handle from a file resource.  More... | |
| grib_handle * | codes_grib_handle_new_from_file (grib_context *c, FILE *f, int *error) | 
| Create a GRIB handle from a file resource.  More... | |
| grib_handle * | codes_bufr_handle_new_from_file (grib_context *c, FILE *f, int *error) | 
| Create a BUFR handle from a file resource.  More... | |
| int | codes_write_message (codes_handle *h, const char *file, const char *mode) | 
| Write a coded message to a file.  More... | |
| codes_handle * | codes_handle_new_from_message (codes_context *c, const void *data, size_t data_len) | 
| Create a handle from a user message in memory.  More... | |
| codes_handle * | codes_grib_handle_new_from_multi_message (codes_context *c, void **data, size_t *data_len, int *error) | 
| Create a handle from a user message in memory.  More... | |
| codes_handle * | codes_handle_new_from_message_copy (codes_context *c, const void *data, size_t data_len) | 
| Create a handle from a user message.  More... | |
| codes_handle * | codes_grib_handle_new_from_samples (codes_context *c, const char *sample_name) | 
| Create a handle from a GRIB message contained in a samples directory.  More... | |
| codes_handle * | codes_bufr_handle_new_from_samples (codes_context *c, const char *sample_name) | 
| Create a handle from a BUFR message contained in a samples directory.  More... | |
| codes_handle * | codes_handle_clone (codes_handle *h) | 
| Clone an existing handle using the context of the original handle, The message is copied and reparsed.  More... | |
| int | codes_handle_delete (codes_handle *h) | 
| Frees a handle, also frees the message if it is not a user message.  More... | |
| codes_multi_handle * | codes_grib_multi_handle_new (codes_context *c) | 
| Create an empty multi-field GRIB handle.  More... | |
| int | codes_grib_multi_handle_append (codes_handle *h, int start_section, codes_multi_handle *mh) | 
| Append the sections starting with start_section of the message pointed by h at the end of the multi-field GRIB handle mh.  More... | |
| int | codes_grib_multi_handle_delete (codes_multi_handle *mh) | 
| Delete multi-field GRIB handle.  More... | |
| int | codes_grib_multi_handle_write (codes_multi_handle *mh, FILE *f) | 
| Write a multi-field GRIB handle in a file.  More... | |
| int | codes_get_message (codes_handle *h, const void **message, size_t *message_length) | 
| getting the message attached to a handle  More... | |
| int | codes_get_message_copy (codes_handle *h, void *message, size_t *message_length) | 
| getting a copy of the message attached to a handle  More... | |
| codes_iterator * | codes_grib_iterator_new (codes_handle *h, unsigned long flags, int *error) | 
| Create a new iterator from a GRIB handle, using current geometry and values.  More... | |
| int | codes_grib_get_data (codes_handle *h, double *lats, double *lons, double *values) | 
| Get latitude/longitude and data values.  More... | |
| int | codes_grib_iterator_next (codes_iterator *i, double *lat, double *lon, double *value) | 
| Get the next value from an iterator.  More... | |
| int | codes_grib_iterator_previous (codes_iterator *i, double *lat, double *lon, double *value) | 
| Get the previous value from an iterator.  More... | |
| int | codes_grib_iterator_has_next (codes_iterator *i) | 
| Test procedure for values in an iterator.  More... | |
| int | codes_grib_iterator_reset (codes_iterator *i) | 
| Test procedure for values in an iterator.  More... | |
| int | codes_grib_iterator_delete (codes_iterator *i) | 
| Frees an iterator from memory.  More... | |
| codes_nearest * | codes_grib_nearest_new (codes_handle *h, int *error) | 
| Create a new nearest from a handle, using current geometry .  More... | |
| int | codes_grib_nearest_find (codes_nearest *nearest, codes_handle *h, double inlat, double inlon, unsigned long flags, double *outlats, double *outlons, double *values, double *distances, int *indexes, size_t *len) | 
| Find the 4 nearest points of a latitude longitude point.  More... | |
| int | codes_grib_nearest_delete (codes_nearest *nearest) | 
| Frees an nearest from memory.  More... | |
| int | codes_grib_nearest_find_multiple (codes_handle *h, int is_lsm, double *inlats, double *inlons, long npoints, double *outlats, double *outlons, double *values, double *distances, int *indexes) | 
| Find the nearest point of a set of points whose latitudes and longitudes are given in the inlats, inlons arrays respectively.  More... | |
| int | codes_get_offset (codes_handle *h, const char *key, size_t *offset) | 
| Get the number offset of a key, in a message if several keys of the same name are present, the offset of the last one is returned.  More... | |
| int | codes_get_size (codes_handle *h, const char *key, size_t *size) | 
| Get the number of coded value from a key, if several keys of the same name are present, the total sum is returned.  More... | |
| int | codes_get_length (codes_handle *h, const char *key, size_t *length) | 
| Get the length of the string representation of the key, if several keys of the same name are present, the maximum length is returned.  More... | |
| int | codes_get_long (codes_handle *h, const char *key, long *value) | 
| Get a long value from a key, if several keys of the same name are present, the last one is returned.  More... | |
| int | codes_get_double (codes_handle *h, const char *key, double *value) | 
| Get a double value from a key, if several keys of the same name are present, the last one is returned.  More... | |
| int | codes_get_double_element (codes_handle *h, const char *key, int i, double *value) | 
| Get as double the i-th element of the "key" array.  More... | |
| int | codes_get_double_elements (codes_handle *h, const char *key, int *i, long size, double *value) | 
| Get as double array the elements of the "key" array whose indexes are listed in the input array i.  More... | |
| int | codes_get_string (codes_handle *h, const char *key, char *mesg, size_t *length) | 
| Get a string value from a key, if several keys of the same name are present, the last one is returned.  More... | |
| int | codes_get_bytes (codes_handle *h, const char *key, unsigned char *bytes, size_t *length) | 
| Get raw bytes values from a key.  More... | |
| int | codes_get_double_array (codes_handle *h, const char *key, double *vals, size_t *length) | 
| Get double array values from a key.  More... | |
| int | codes_get_long_array (codes_handle *h, const char *key, long *vals, size_t *length) | 
| Get long array values from a key.  More... | |
| int | codes_copy_namespace (codes_handle *dest, const char *name, codes_handle *src) | 
| Copy the keys belonging to a given namespace from a source handle to a destination handle.  More... | |
| int | codes_set_long (codes_handle *h, const char *key, long val) | 
| Set a long value from a key.  More... | |
| int | codes_set_double (codes_handle *h, const char *key, double val) | 
| Set a double value from a key.  More... | |
| int | codes_set_string (codes_handle *h, const char *key, const char *mesg, size_t *length) | 
| Set a string value from a key.  More... | |
| int | codes_set_bytes (codes_handle *h, const char *key, const unsigned char *bytes, size_t *length) | 
| Set a bytes array from a key.  More... | |
| int | codes_set_double_array (codes_handle *h, const char *key, const double *vals, size_t length) | 
| Set a double array from a key.  More... | |
| int | codes_set_force_double_array (codes_handle *h, const char *key, const double *vals, size_t length) | 
| Same as codes_set_double_array but allows setting of READ-ONLY keys like codedValues.  More... | |
| int | codes_set_long_array (codes_handle *h, const char *key, const long *vals, size_t length) | 
| Set a long array from a key.  More... | |
| int | codes_set_string_array (codes_handle *h, const char *key, const char **vals, size_t length) | 
| Set a string array from a key.  More... | |
| void | codes_dump_content (codes_handle *h, FILE *out, const char *mode, unsigned long option_flags, void *arg) | 
| Print all keys, with the context print procedure and dump mode to a resource.  More... | |
| void | codes_dump_action_tree (codes_context *c, FILE *f) | 
| Print all keys from the parsed definition files available in a context.  More... | |
| codes_context * | codes_context_get_default (void) | 
| Get the static default context.  More... | |
| void | codes_context_delete (codes_context *c) | 
| Frees the cached definition files of the context.  More... | |
| void | codes_gts_header_on (codes_context *c) | 
| Set the GTS header mode on.  More... | |
| void | codes_gts_header_off (codes_context *c) | 
| Set the GTS header mode off.  More... | |
| void | codes_gribex_mode_on (codes_context *c) | 
| Set the GRIBEX mode on.  More... | |
| int | codes_get_gribex_mode (codes_context *c) | 
| Get the GRIBEX mode.  More... | |
| void | codes_gribex_mode_off (codes_context *c) | 
| Set the GRIBEX mode off.  More... | |
| void | codes_context_set_definitions_path (grib_context *c, const char *path) | 
| Sets the search path for definition files.  More... | |
| void | codes_context_set_samples_path (grib_context *c, const char *path) | 
| Sets the search path for sample files.  More... | |
| void | codes_grib_multi_support_on (codes_context *c) | 
| Turn on support for multiple fields in single GRIB messages.  More... | |
| void | codes_grib_multi_support_off (codes_context *c) | 
| Turn off support for multiple fields in single GRIB messages.  More... | |
| void | codes_grib_multi_support_reset_file (codes_context *c, FILE *f) | 
| Reset file handle in multiple GRIB field support mode.  More... | |
| long | codes_get_api_version (void) | 
| Get the API version.  More... | |
| const char * | codes_get_git_sha1 (void) | 
| Get the Git version control SHA1 identifier.  More... | |
| const char * | codes_get_package_name (void) | 
| Get the package name.  More... | |
| void | codes_print_api_version (FILE *out) | 
| Prints the API version.  More... | |
| codes_keys_iterator * | codes_keys_iterator_new (codes_handle *h, unsigned long filter_flags, const char *name_space) | 
| int | codes_keys_iterator_next (codes_keys_iterator *kiter) | 
| const char * | codes_keys_iterator_get_name (codes_keys_iterator *kiter) | 
| int | codes_keys_iterator_delete (codes_keys_iterator *kiter) | 
| int | codes_keys_iterator_rewind (codes_keys_iterator *kiter) | 
| const char * | codes_get_error_message (int code) | 
| Convert an error code into a string.  More... | |
The ecCodes C header file.
This is the only file that must be included to use the ecCodes library from C.
| void codes_dump_action_tree | ( | codes_context * | c, | 
| FILE * | f | ||
| ) | 
Print all keys from the parsed definition files available in a context.
| f | : the File used to print the keys on | 
| c | : the context that contains the cached definition files to be printed | 
| void codes_dump_content | ( | codes_handle * | h, | 
| FILE * | out, | ||
| const char * | mode, | ||
| unsigned long | option_flags, | ||
| void * | arg | ||
| ) | 
Print all keys, with the context print procedure and dump mode to a resource.
| h | : the handle to be printed | 
| out | : output file handle | 
| mode | : Examples of available dump modes: debug wmo | 
| option_flags | : all the CODES_DUMP_FLAG_x flags can be used | 
| arg | : used to provide a format to output data (experimental) | 
| long codes_get_api_version | ( | void | ) | 
Get the API version.
Get the API version.
Returns the version of the api as a string in the format "major.minor.revision".
Referenced by ecCodes::codes_index_get().
| const char* codes_get_error_message | ( | int | code | ) | 
Convert an error code into a string.
| code | : the error code | 
| const char* codes_get_git_sha1 | ( | void | ) | 
Get the Git version control SHA1 identifier.
| const char* codes_get_package_name | ( | void | ) | 
Get the package name.
| void codes_print_api_version | ( | FILE * | out | ) | 
Prints the API version.
 1.8.5
 1.8.5