00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EPR_BAND_H_INCL
00019 #define EPR_BAND_H_INCL
00020
00021 #ifdef __cplusplus
00022 extern "C"
00023 {
00024 #endif
00025
00026 #include "epr_ptrarray.h"
00027
00028 #include <stdio.h>
00029
00030
00039 EPR_EScalingMethod epr_str_to_scaling_method(const char* str);
00040
00041
00050 EPR_ESampleModel epr_str_to_sample_offset(const char* str);
00051
00052
00061 EPR_SDatasetRef epr_get_ref_struct(EPR_SProductId* product_id, const char* str);
00062
00063
00072 float epr_get_scaling_factor(EPR_SProductId* product_id, const char* str);
00073 float epr_get_scaling_params(EPR_SProductId* product_id, const char* str);
00074
00085 int epr_read_band_measurement_data(EPR_SBandId* band_id, int offset_x, int offset_y, EPR_SRaster* raster);
00086
00097 int epr_read_band_annotation_data(EPR_SBandId* band_id,
00098 int offset_x,
00099 int offset_y,
00100 EPR_SRaster* raster);
00101
00102
00118 void decode_line_uchar_1_of_1_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00119 void decode_line_ushort_1_of_1_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00120 void decode_line_short_1_of_1_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00121 void decode_line_short_1_of_2_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00122 void decode_line_short_2_of_2_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00123 void decode_line_char_1_of_1_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00124 void decode_line_uchar_1_of_1_to_uchar (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00125 void decode_line_uchar_1_of_2_to_uchar (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00126 void decode_line_uchar_2_of_2_to_uchar (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00127 void decode_line_ushort_1_of_1_to_ushort (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00128 void decode_line_uchar_1_of_2_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00129 void decode_line_uchar_2_of_2_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00130 void decode_line_uchar_2_to_f_to_float (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00131 void decode_line_uchar_3_to_i_to_ulong (void* sourceArray, EPR_SBandId* band_id, int xo, int raster_width, int s_x, void* raster_buffer, int raster_pos);
00146 void transform_array_short_to_float (void* sourceArray, EPR_SBandId* band_id, float* raster_buffer, uint nel);
00147 void transform_array_ushort_to_float(void* sourceArray, EPR_SBandId* band_id, float* raster_buffer, uint nel);
00148 void transform_array_long_to_float (void* sourceArray, EPR_SBandId* band_id, float* raster_buffer, uint nel);
00149 void transform_array_ulong_to_float (void* sourceArray, EPR_SBandId* band_id, float* raster_buffer, uint nel);
00150 void transform_array_short_to_short (void* sourceArray, EPR_SBandId* band_id, short* raster_buffer, uint nel);
00151 void transform_array_ushort_to_ushort(void* sourceArray, EPR_SBandId* band_id, ushort* raster_buffer, uint nel);
00152 void transform_array_long_to_long (void* sourceArray, EPR_SBandId* band_id, long* raster_buffer, uint nel);
00153 void transform_array_ulong_to_ulong (void* sourceArray, EPR_SBandId* band_id, ulong* raster_buffer, uint nel);
00165 void mirror_float_array (float* raster_buffer, uint raster_width, uint raster_height);
00166 void mirror_uchar_array (uchar* raster_buffer, uint raster_width, uint raster_height);
00167 void mirror_ushort_array (ushort* raster_buffer, uint raster_width, uint raster_height);
00168 void mirror_ulong_array (ulong* raster_buffer, uint raster_width, uint raster_height);
00183 float epr_interpolate2D(float wi, float wj, float x00, float x10, float x01, float x11);
00184
00201 void decode_tiepoint_band(float* sa_beg,
00202 float* sa_end,
00203 ulong samples_per_tie_pt,
00204 uint num_elems,
00205 EPR_SBandId* band_id,
00206 int xo,
00207 float scan_offset_x,
00208 float y_mod,
00209 int raster_width,
00210 int s_x,
00211 float* raster_buffer,
00212 int raster_pos);
00213 typedef void (*EPR_FLineDecoder)(void* sourceArray,
00214 EPR_SBandId* band_id,
00215 int xo,
00216 int raster_width,
00217 int s_x,
00218 void* raster_buffer,
00219 int raster_pos);
00220
00224 EPR_FLineDecoder select_line_decode_function(EPR_EDataTypeId band_daty, EPR_ESampleModel band_smod, EPR_EDataTypeId daty_id);
00225
00226 typedef void (*EPR_FArrayTransformer)(void* sourceArray,
00227 EPR_SBandId* band_id,
00228 float* raster_buffer,
00229 uint nel);
00230
00234 EPR_FArrayTransformer select_transform_array_function(EPR_EDataTypeId band_daty, EPR_EDataTypeId daty_id);
00235
00244 void epr_zero_invalid_pixels(EPR_SRaster* raster, EPR_SRaster* bm_raster);
00245
00251 void epr_free_band_id(EPR_SBandId* band_id);
00252
00253
00254
00255 EPR_SPtrArray* epr_create_band_ids(EPR_SProductId* product_id);
00256
00257
00258
00259 #ifdef __cplusplus
00260 }
00261 #endif
00262
00263 #endif
00264