Main Page Modules

CODA C interface

# Introduction

This is the documentation that describes the Application Programmers Interface (API) for the CODA C Library. It contains a full description for each of the functions in the API and a general description for each of the modules mentioned below.

# CODA definition path

Note that in order to access products whose formats are defined using .codadef files, you should let CODA know where these .codadef files are stored. You can do this by using the coda_set_definition_path() or coda_set_definition_path_conditional() functions, or you can set the CODA_DEFINITION environment variable. This environment variable should be a ':' separated (';' on Windows) list of absolute paths to directories containing .codadef files or absolute paths to .codadef files themselves (or a mix of those).

# Modules

Each module has a separate section that contains its general description together with descriptions for all types, variables, functions, etc. that are part of this module.

- CODA General
- CODA Product
- CODA Types
- CODA Cursor
- CODA Expression
- CODA Time
- CODA Error

# Performance considerations

The following are some things to try that may help to improve the performance of reading data with CODA

- Disable boundary checks with coda_set_option_perform_boundary_checks(). This can be a huge speed improvement, but only disable this once you have fully tested your program and are sure that all coda cursor navigation and reading function calls return successfully (i.e. return value equals 0).
- Disable special types with coda_set_option_bypass_special_types() and use the base type of the data. This can particularly increase performance for variable scale factor integers (coda_special_vsf_integer). Note that this option can be enabled/disabled at will, so you might disable it when reading one field, but leave it enabled for reading others.
- Disable conversions with coda_set_option_perform_conversions() and use the data in its native format.
- For a single CODA cursor, read data as much as possible in sequence and use coda_cursor_goto_next_record_field() and coda_cursor_goto_next_array_element() when iterating over records and arrays.