MI - Fimex
c_fimex.h
Go to the documentation of this file.
1 /*
2  * Fimex, c_fimex.h
3  *
4  * (C) Copyright 2009, met.no
5  *
6  * Project Info: https://wiki.met.no/fimex/start
7  *
8  * This library is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16  * License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21  * USA.
22  *
23  * Created on: Oct 19, 2009
24  * Author: Heiko Klein
25  */
26 
27 #ifndef C_FIMEX_H_
28 #define C_FIMEX_H_
29 
30 #include <stddef.h>
31 #include "fimex/CDMconstants.h"
32 #include "fimex/deprecated.h"
33 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
47 
52 typedef int (*doubleDatasliceCallbackPtr)(mifi_cdm_reader* reader, const char* varName, size_t unLimDimPos, double* scaledData, size_t dataSize);
53 
58 extern void mifi_free_cdm_reader(mifi_cdm_reader* reader);
59 
67 extern mifi_cdm_reader* mifi_new_io_reader(int file_type, const char* filename, const char* configFile);
68 
76 MIFI_DEPRECATED(mifi_cdm_reader* mifi_new_felt_reader(const char* filename, const char* configFile));
77 
84 MIFI_DEPRECATED(mifi_cdm_reader* mifi_new_netcdf_reader(const char* filename));
85 
93 MIFI_DEPRECATED(mifi_cdm_reader* mifi_new_grib_reader(const char* filename, const char* configFile));
94 
95 
102 MIFI_DEPRECATED(mifi_cdm_reader* mifi_new_ncml_reader(const char* ncmlFile));
103 
110 extern mifi_cdm_reader* mifi_new_ncml_modifier(mifi_cdm_reader* reader, const char* ncmlFile);
111 
112 
113 
122 extern int mifi_netcdf_writer(mifi_cdm_reader* reader, const char* filename, const char* configFile, int version);
123 
132 extern int mifi_grib_writer(mifi_cdm_reader* reader, const char* filename, const char* configFile, int version);
133 
134 
140 extern int mifi_nullcdm_writer(mifi_cdm_reader* reader);
141 
154 extern mifi_cdm_reader* mifi_new_cdminterpolator(mifi_cdm_reader* reader, int method, const char* proj_input, const char* out_x_axis, const char* out_y_axis, const char* out_x_axis_unit, const char* out_y_axis_unit);
155 
166 extern mifi_cdm_reader* mifi_new_lonlat_interpolator(mifi_cdm_reader* reader, int method, int n, const double* lonVals, const double* latVals);
167 
168 
175 
187 extern int mifi_set_callback_double(mifi_cdm_reader* c_reader, const char* varName, doubleDatasliceCallbackPtr callback);
188 
189 
195 extern size_t mifi_get_variable_number(mifi_cdm_reader* reader);
202 extern const char* mifi_get_variable_name(mifi_cdm_reader* reader, size_t pos);
203 
210 extern unsigned int mifi_get_variable_type(mifi_cdm_reader* reader, const char* varName);
211 
217 extern size_t mifi_get_dimension_number(mifi_cdm_reader* reader);
224 extern const char* mifi_get_dimension_name(mifi_cdm_reader* reader, size_t pos);
231 extern size_t mifi_get_dimension_size(mifi_cdm_reader* reader, const char* dimName);
232 
238 extern const char* mifi_get_unlimited_dimension_name(mifi_cdm_reader* reader);
239 
247 extern const char* mifi_get_var_longitude(mifi_cdm_reader* reader, const char* varName);
248 
260 extern int mifi_get_var_longitude_cpy(mifi_cdm_reader* reader, const char* varName, char* lonName, int n);
261 
269 extern const char* mifi_get_var_latitude(mifi_cdm_reader* reader, const char* varName);
270 
282 extern int mifi_get_var_latitude_cpy(mifi_cdm_reader* reader, const char* varName, char* latName, int n);
283 
284 
292 extern mifi_slicebuilder* mifi_new_slicebuilder(mifi_cdm_reader* reader, const char* varName);
299 
306 extern const char* mifi_slicebuilder_get_proj4(mifi_slicebuilder* sb);
307 
317 extern int mifi_slicebuilder_get_proj4_cpy(mifi_slicebuilder* sb, char* proj4, int n);
318 
332 extern const char* mifi_slicebuilder_dimname(mifi_slicebuilder* sb, int pos);
333 
344 extern int mifi_slicebuilder_dimname_cpy(mifi_slicebuilder* sb, int pos, char* dimName, int n);
345 
353 extern int mifi_slicebuilder_get_start_size(mifi_slicebuilder* sb, unsigned int* start, unsigned int* size);
354 
355 extern int mifi_slicebuilder_get_axistype(mifi_slicebuilder* sb, int* axistype);
356 
357 
366 extern int mifi_slicebuilder_set_dim_start_size(mifi_slicebuilder* sb, const char* dimName, unsigned int start, unsigned int size);
372 
373 
374 
384 extern int mifi_get_double_dataslice(mifi_cdm_reader* reader, const char* varName, size_t unLimDimPos, double** data, size_t* size);
385 
394 extern int mifi_get_double_data(mifi_cdm_reader* reader, const char* varName, double** data, size_t* size);
395 
408 extern int mifi_fill_scaled_double_dataslice(mifi_cdm_reader* reader, const char* varName, mifi_slicebuilder* sb, const char* units, double* data, size_t* size);
409 
421 extern int mifi_write_scaled_double_dataslice(mifi_cdm_reader* rwreader, const char* varName, mifi_slicebuilder* sb, const char* units, double* data, size_t size);
422 
423 
430 double mifi_get_unique_forecast_reference_time(mifi_cdm_reader* reader, const char* units);
431 
432 
433 
434 #ifdef __cplusplus
435 }
436 #endif
437 
438 #endif /* C_FIMEX_H_ */
mifi_cdm_reader * mifi_new_lonlat_interpolator(mifi_cdm_reader *reader, int method, int n, const double *lonVals, const double *latVals)
change the projection of the reader to this new projection
int mifi_grib_writer(mifi_cdm_reader *reader, const char *filename, const char *configFile, int version)
int mifi_slicebuilder_dimname_cpy(mifi_slicebuilder *sb, int pos, char *dimName, int n)
int mifi_slicebuilder_ndims(mifi_slicebuilder *sb)
const char * mifi_get_var_longitude(mifi_cdm_reader *reader, const char *varName)
Definition: mifi_cdm_reader.h:60
int mifi_netcdf_writer(mifi_cdm_reader *reader, const char *filename, const char *configFile, int version)
int(* doubleDatasliceCallbackPtr)(mifi_cdm_reader *reader, const char *varName, size_t unLimDimPos, double *scaledData, size_t dataSize)
Definition: c_fimex.h:52
const char * mifi_slicebuilder_get_proj4(mifi_slicebuilder *sb)
mifi_slicebuilder * mifi_new_slicebuilder(mifi_cdm_reader *reader, const char *varName)
const char * mifi_get_unlimited_dimension_name(mifi_cdm_reader *reader)
void mifi_free_slicebuilder(mifi_slicebuilder *sb)
Definition: mifi_cdm_reader.h:47
double mifi_get_unique_forecast_reference_time(mifi_cdm_reader *reader, const char *units)
size_t mifi_get_variable_number(mifi_cdm_reader *reader)
int mifi_write_scaled_double_dataslice(mifi_cdm_reader *rwreader, const char *varName, mifi_slicebuilder *sb, const char *units, double *data, size_t size)
int mifi_slicebuilder_get_axistype(mifi_slicebuilder *sb, int *axistype)
int mifi_slicebuilder_has_CS(mifi_slicebuilder *sb)
int mifi_slicebuilder_get_proj4_cpy(mifi_slicebuilder *sb, char *proj4, int n)
void mifi_free_cdm_reader(mifi_cdm_reader *reader)
const char * mifi_slicebuilder_dimname(mifi_slicebuilder *sb, int pos)
int mifi_get_var_latitude_cpy(mifi_cdm_reader *reader, const char *varName, char *latName, int n)
int mifi_fill_scaled_double_dataslice(mifi_cdm_reader *reader, const char *varName, mifi_slicebuilder *sb, const char *units, double *data, size_t *size)
size_t mifi_get_dimension_size(mifi_cdm_reader *reader, const char *dimName)
MIFI_DEPRECATED(mifi_cdm_reader *mifi_new_felt_reader(const char *filename, const char *configFile))
size_t mifi_get_dimension_number(mifi_cdm_reader *reader)
int mifi_nullcdm_writer(mifi_cdm_reader *reader)
int mifi_slicebuilder_get_start_size(mifi_slicebuilder *sb, unsigned int *start, unsigned int *size)
const char * mifi_get_variable_name(mifi_cdm_reader *reader, size_t pos)
mifi_cdm_reader * mifi_new_io_reader(int file_type, const char *filename, const char *configFile)
mifi_cdm_reader * mifi_new_cdminterpolator(mifi_cdm_reader *reader, int method, const char *proj_input, const char *out_x_axis, const char *out_y_axis, const char *out_x_axis_unit, const char *out_y_axis_unit)
change the projection of the reader to this new projection
const char * mifi_get_var_latitude(mifi_cdm_reader *reader, const char *varName)
int mifi_slicebuilder_set_dim_start_size(mifi_slicebuilder *sb, const char *dimName, unsigned int start, unsigned int size)
int mifi_get_double_data(mifi_cdm_reader *reader, const char *varName, double **data, size_t *size)
mifi_cdm_reader * mifi_new_ncml_modifier(mifi_cdm_reader *reader, const char *ncmlFile)
mifi_cdm_reader * mifi_new_c_reader(mifi_cdm_reader *reader)
const char * mifi_get_dimension_name(mifi_cdm_reader *reader, size_t pos)
int mifi_get_double_dataslice(mifi_cdm_reader *reader, const char *varName, size_t unLimDimPos, double **data, size_t *size)
int mifi_set_callback_double(mifi_cdm_reader *c_reader, const char *varName, doubleDatasliceCallbackPtr callback)
int mifi_get_var_longitude_cpy(mifi_cdm_reader *reader, const char *varName, char *lonName, int n)
unsigned int mifi_get_variable_type(mifi_cdm_reader *reader, const char *varName)