00001 #ifndef _WINC_SFCCDFFILE
00002 #define _WINC_SFCCDFFILE
00003
00004 #include <WXP/Cdf.h>
00005 #include <WXP/Date.h>
00006 #include <WXP/SfcData.h>
00007
00008 namespace WXP {
00009 class SfcCdfFile {
00010 int type;
00011 int ver;
00012 int access;
00013 long pos;
00014 int cnt;
00015 int num;
00016 Cdf cdf;
00017 Date date;
00018 bool opened;
00019
00020 int id_id;
00021 int time_id;
00022 int lat_id;
00023 int lon_id;
00024 int elev_id;
00025 int t_id;
00026 int td_id;
00027 int psl_id;
00028 int altim_id;
00029 int spd_id;
00030 int dir_id;
00031 int zcl_id;
00032 int cc_id;
00033 int vis_id;
00034 int region_id;
00035 int wx_id;
00036 int cld_id;
00037 int ptend_t_id;
00038 int ptend_id;
00039 int precip_id;
00040 int r_precip_id;
00041 int snow_id;
00042 int tmax_id;
00043 int tmin6_id;
00044 int tmax6_id;
00045 int tmin_id;
00046 int sun_id;
00047 int remark_id;
00048 int gust_id;
00049 int sst_id;
00050 int wav_per_id;
00051 int wav_hgt_id;
00052 int intdata_id;
00053 int intname_id;
00054 int intunit_id;
00055 int fltdata_id;
00056 int fltname_id;
00057 int fltunit_id;
00058 long remark_len;
00059 long num_station;
00060
00061 float missing_f;
00062 long missing_i;
00063 char missing_c;
00064
00065 public:
00066 SfcCdfFile( );
00067 SfcCdfFile( const char *filename );
00068 SfcCdfFile( const char *filename, int access );
00069 ~SfcCdfFile( );
00070 bool isOpen();
00071 int open( const char *filename, int access );
00072 int rewind( );
00073 int close( );
00074 int setDate( Date &rdate );
00075 int getDate( Date &rdate );
00076 int read( SfcData &data );
00077 int write( SfcData &data );
00078
00079 static int checkType( const char *filename );
00080 };
00081 }
00082 #endif