Exemple #1
0
    def __init__(self, yearmon, basin, domain, uname):
        self.yearmon = yearmon
        self.uname = uname
        self.domain = domain
        self.varname = {
            'wavhs': 'hs',
            'wavtp': 'fp',
            'wavdir': 'dir',
            'wavspr': 'spr',
            'wavhs_wndsea': 'phs_sea',
            'wavtp_wndsea': 'ptp_sea',
            'wavdir_wndsea': 'pdi_sea',
            'wavhs_swell1': 'phs_sw1',
            'wavtp_swell1': 'ptp_sw1',
            'wavdir_swell1': 'pdi_sw1',
            'wavhs_swell2': 'phs_sw2',
            'wavtp_swell2': 'ptp_sw2',
            'wavdir_swell2': 'pdi_sw2',
            'wnd_u': 'wnd',
            'wnd_v': 'wnd'
        }
        basinname = {
            'pac': 'Pacific Ocean',
            'atl': 'Atlantic Ocean',
            'gom': 'Gulf of Mexico'
        }
        h5fn = 'wis_' + basin + '_' + domain + '_' + yearmon + '.h5'
        h5file = h5py.File(h5fn, 'w')
        # write_top_level_att(h5fname)
        for key in self.varname.keys():
            tt, header, dataf = rfww3.read_fields_ww3('./', self.varname[key],
                                                      key)
            if 'time' not in h5file.keys():
                self.tt = tt
                self.time2date()
                dataset = h5file.create_dataset('time', (self.pytime.shape),
                                                dtype=('f8'))
                dataset[...] = self.pytime
                dataset.attrs[
                    'Long Name'] = 'Time in Days since 0001-01-01 00:00:00'
                dataset.attrs['Units'] = 'day'
                dataset.attrs['Dimension'] = self.pytime.shape
                dataset = h5file.create_dataset('datetime',
                                                (self.dattime.shape),
                                                dtype=('i4'))
                dataset[...] = self.dattime
                dataset.attrs['Long Name'] = 'Time in yyyy,mm,dd,hh,mm,ss'
                dataset.attrs['Units'] = 'year,month,day,hour,minute,second'
                dataset.attrs['Dimension'] = self.dattime.shape

                self.longitude = header['lonw'], header['lone']
                self.latitude = header['lats'], header['latn']
                self.nlon = int(header['ilon'])
                self.nlat = int(header['jlat'])

                self.read_grid()

                dataset = h5file.create_dataset('grid', (self.grd.shape),
                                                dtype=('i4'))
                dataset[...] = self.grd
                dataset.attrs['Multiplication Factor'] = 0.001
                dataset.attrs['Long Name'] = 'Water Depth Grid'
                dataset.attrs['Units'] = 'meter'
                dataset.attrs['Dimension'] = self.grd.shape

                dataset = h5file.create_dataset('mask', (self.mask.shape),
                                                dtype=('i4'))
                dataset[...] = self.mask
                dataset.attrs['Multiplication Factor'] = 1
                dataset.attrs['Long Name'] = 'Land/Water Mask'
                dataset.attrs['Units'] = 'N/A'
                dataset.attrs['Dimension'] = self.mask.shape

                dataset = h5file.create_dataset('xobstr', (self.xobstr.shape),
                                                dtype=('i4'))
                dataset[...] = self.xobstr
                dataset.attrs['Multiplication Factor'] = 0.01
                dataset.attrs['Long Name'] = 'Obstruction Grid X Direction'
                dataset.attrs['Units'] = 'N/A'
                dataset.attrs['Dimension'] = self.xobstr.shape

                dataset = h5file.create_dataset('yobstr', (self.yobstr.shape),
                                                dtype=('i4'))
                dataset[...] = self.yobstr
                dataset.attrs['Multiplication Factor'] = 0.01
                dataset.attrs['Long Name'] = 'Obstruction Grid Y Direction'
                dataset.attrs['Units'] = 'N/A'
                dataset.attrs['Dimension'] = self.yobstr.shape

            dataset = h5file.create_dataset(key, (dataf.shape), dtype=('i4'))
            dataset[...] = dataf
            dataset.attrs['Dimension'] = dataf.shape
            dataset.attrs['Multiplication Factor'] = header['Mfac']


#            dmax,dmean = max_mean(dataf)
#            dataset = h5file.create_dataset(key + '_max',(dmax.shape),dtype=('f4'))
#            dataset[...] = dmax
#            dataset = h5file.create_dataset(key + '_mean',(dmean.shape),dtype='f4'))

        wh5.create_field_var_att(h5file, self.varname.keys())

        self.lon = np.arange(float(self.longitude[0]),
                             float(self.longitude[1]) + self.dlon, self.dlon)
        self.lat = np.arange(float(self.latitude[0]),
                             float(self.latitude[1]) + self.dlat, self.dlat)
        self.lon2 = np.linspace(float(self.longitude[0]),
                                float(self.longitude[1]),
                                num=self.nlon)
        self.lat2 = np.linspace(float(self.latitude[0]),
                                float(self.latitude[1]),
                                num=self.nlat)
        dataset = h5file.create_dataset('longitude', (self.lon2.shape),
                                        dtype=('f4'))
        dataset[...] = self.lon2
        dataset.attrs['Units'] = 'decimal degree'
        dataset.attrs['Dimension'] = self.lon2.shape
        dataset = h5file.create_dataset('latitude', (self.lat2.shape),
                                        dtype=('f4'))
        dataset[...] = self.lat2
        dataset.attrs['Units'] = 'decimal degree'
        dataset.attrs['Dimension'] = self.lat2.shape

        info = {
            'longitude': self.longitude,
            'latitude': self.latitude,
            'uname': self.uname,
            'nlon': self.nlon,
            'nlat': self.nlat,
            'domain': self.domain,
            'basin': basinname[basin]
        }
        wh5.create_field_global_att(h5file, info)
        h5file.close()
Exemple #2
0
    def __init__(self,yearmon,basin,domain,uname):
        self.yearmon = yearmon
        self.uname = uname
        self.domain = domain
        self.varname = {'wavhs':'hs','wavtp':'fp','wavdir':'dir','wavspr':'spr','wavhs_wndsea':'phs_sea','wavtp_wndsea':'ptp_sea','wavdir_wndsea':'pdi_sea','wavhs_swell1':'phs_sw1','wavtp_swell1':'ptp_sw1','wavdir_swell1':'pdi_sw1','wavhs_swell2':'phs_sw2','wavtp_swell2':'ptp_sw2','wavdir_swell2':'pdi_sw2','wnd_u':'wnd','wnd_v':'wnd'}
        basinname = {'pac':'Pacific Ocean','atl':'Atlantic Ocean','gom':'Gulf of Mexico'}
        h5fn = 'wis_' + basin + '_' + domain + '_' + yearmon + '.h5'
        h5file = h5py.File(h5fn,'w')
       # write_top_level_att(h5fname)
        for key in self.varname.keys():
            tt, header, dataf = rfww3.read_fields_ww3('./',self.varname[key],key)
            if 'time' not in h5file.keys():
                self.tt = tt
                self.time2date()
                dataset = h5file.create_dataset('time',(self.pytime.shape),dtype=('f8'))
                dataset[...] = self.pytime
                dataset.attrs['Long Name'] = 'Time in Days since 0001-01-01 00:00:00'
                dataset.attrs['Units'] = 'day'
                dataset.attrs['Dimension'] = self.pytime.shape
                dataset = h5file.create_dataset('datetime',(self.dattime.shape),dtype=('i4'))
                dataset[...] = self.dattime
                dataset.attrs['Long Name'] = 'Time in yyyy,mm,dd,hh,mm,ss'
                dataset.attrs['Units'] = 'year,month,day,hour,minute,second'
                dataset.attrs['Dimension'] = self.dattime.shape

                self.longitude = header['lonw'], header['lone']
                self.latitude = header['lats'], header['latn']
                self.nlon = int(header['ilon'])
                self.nlat = int(header['jlat'])

                self.read_grid()


                dataset = h5file.create_dataset('grid',(self.grd.shape),dtype=('i4'))
                dataset[...] = self.grd
                dataset.attrs['Multiplication Factor'] = 0.001
                dataset.attrs['Long Name'] = 'Water Depth Grid'
                dataset.attrs['Units'] = 'meter'
                dataset.attrs['Dimension'] = self.grd.shape

                dataset = h5file.create_dataset('mask',(self.mask.shape),dtype=('i4'))
                dataset[...] = self.mask
                dataset.attrs['Multiplication Factor'] = 1
                dataset.attrs['Long Name'] = 'Land/Water Mask'
                dataset.attrs['Units'] = 'N/A'
                dataset.attrs['Dimension'] = self.mask.shape

                dataset = h5file.create_dataset('xobstr',(self.xobstr.shape),dtype=('i4'))
                dataset[...] = self.xobstr
                dataset.attrs['Multiplication Factor'] = 0.01
                dataset.attrs['Long Name'] = 'Obstruction Grid X Direction'
                dataset.attrs['Units'] = 'N/A'
                dataset.attrs['Dimension'] = self.xobstr.shape

                dataset = h5file.create_dataset('yobstr',(self.yobstr.shape),dtype=('i4'))
                dataset[...] = self.yobstr
                dataset.attrs['Multiplication Factor'] = 0.01
                dataset.attrs['Long Name'] = 'Obstruction Grid Y Direction'
                dataset.attrs['Units'] = 'N/A'
                dataset.attrs['Dimension'] = self.yobstr.shape

            
            dataset = h5file.create_dataset(key,(dataf.shape),dtype=('i4'))
            dataset[...] = dataf
            dataset.attrs['Dimension'] = dataf.shape
            dataset.attrs['Multiplication Factor'] = header['Mfac']

#            dmax,dmean = max_mean(dataf)
#            dataset = h5file.create_dataset(key + '_max',(dmax.shape),dtype=('f4'))
#            dataset[...] = dmax
#            dataset = h5file.create_dataset(key + '_mean',(dmean.shape),dtype='f4'))

        wh5.create_field_var_att(h5file,self.varname.keys())
       
        self.lon = np.arange(float(self.longitude[0]),float(self.longitude[1])+self.dlon,self.dlon)
        self.lat = np.arange(float(self.latitude[0]),float(self.latitude[1])+self.dlat,self.dlat)
	self.lon2 = np.linspace(float(self.longitude[0]),float(self.longitude[1]),num=self.nlon)
	self.lat2 = np.linspace(float(self.latitude[0]),float(self.latitude[1]),num=self.nlat)
        dataset = h5file.create_dataset('longitude',(self.lon2.shape),dtype=('f4'))
        dataset[...] = self.lon2
        dataset.attrs['Units'] = 'decimal degree'
        dataset.attrs['Dimension'] = self.lon2.shape
        dataset = h5file.create_dataset('latitude',(self.lat2.shape),dtype=('f4'))
        dataset[...] = self.lat2
        dataset.attrs['Units'] = 'decimal degree'
        dataset.attrs['Dimension'] = self.lat2.shape
        
        info = {'longitude':self.longitude,'latitude':self.latitude,'uname':self.uname,'nlon':self.nlon,'nlat':self.nlat,'domain':self.domain,'basin':basinname[basin]}
        wh5.create_field_global_att(h5file,info)
        h5file.close()
Exemple #3
0
    def __init__(self, yearmon, basin, domain):
        self.yearmon = yearmon
        self.domain = domain
        self.varname = {
            'wavehs': 'hs',
            'wavetp': 'fp',
            'wavedir': 'dir',
            'wavespr': 'spr',
            'wavehs_wndsea': 'phs_sea',
            'wavetp_wndsea': 'ptp_sea',
            'wavedir_wndsea': 'pdi_sea',
            'wavehs_swell1': 'phs_sw1',
            'wavetp_swell1': 'ptp_sw1',
            'wavedir_swell1': 'pdi_sw1',
            'wavehs_swell2': 'phs_sw2',
            'wavetp_swell2': 'ptp_sw2',
            'wavedir_swell2': 'pdi_sw2',
            'wind_u': 'wnd',
            'wind_v': 'wnd'
        }
        mmset = [
            'wavehs', 'wavetp', 'wavehs_wndsea', 'wavetp_wndsea',
            'wavehs_swell1', 'wavetp_swell1', 'wavehs_swell2', 'wavetp_swell2'
        ]
        basinname = {
            'pac': 'Pacific Ocean',
            'atl': 'Atlantic Ocean',
            'gom': 'Gulf of Mexico'
        }
        ncfn = 'wis_' + basin + '_' + domain + '_' + yearmon + '.nc'
        mmfn = 'wis_' + basin + '_' + domain + '_' + yearmon + '_max_mean.nc'
        ncfile = Dataset(ncfn, 'w')
        mmfile = Dataset(mmfn, 'w')
        # write_top_level_att(h5fname)
        for key in self.varname.keys():
            tt, header, dataf = rfww3.read_fields_ww3('./', self.varname[key],
                                                      key)
            if 'time' not in ncfile.variables:
                self.tt = tt
                self.time2date()
                ncfile.createDimension('time', len(self.tt))
                mmfile.createDimension('time', len(self.tt))
                dataset = ncfile.createVariable('time', 'i8', ('time', ))
                dataset[:] = self.pytime
                dataset.long_name = 'Time'
                dataset.units = 'Seconds since 1970-01-01 00:00:00'
                dataset.dimension = self.pytime.shape
                ncfile.createDimension('date', 6)
                dataset = ncfile.createVariable('datetime', 'i4', (
                    'time',
                    'date',
                ))
                dataset[:] = self.dattime
                dataset.long_name = 'Time in yyyy,mm,dd,hh,mm,ss'
                dataset.units = 'year,month,day,hour,minute,second'
                dataset.dimension = self.dattime.shape

                dataset = mmfile.createVariable('time', 'i8', ('time', ))
                dataset[:] = self.pytime
                dataset.long_name = 'Time'
                dataset.units = 'Seconds since 1970-01-01 00:00:00'
                dataset.dimension = self.pytime.shape
                mmfile.createDimension('date', 6)
                dataset = mmfile.createVariable('datetime', 'i4', (
                    'time',
                    'date',
                ))
                dataset[:] = self.dattime
                dataset.long_name = 'Time in yyyy,mm,dd,hh,mm,ss'
                dataset.units = 'year,month,day,hour,minute,second'
                dataset.dimension = self.dattime.shape

                self.longitude = header['lonw'], header['lone']
                self.latitude = header['lats'], header['latn']
                self.nlon = int(header['ilon'])
                self.nlat = int(header['jlat'])

                self.read_grid()

                ncfile.createDimension('lon', self.nlon)
                ncfile.createDimension('lat', self.nlat)
                mmfile.createDimension('lon', self.nlon)
                mmfile.createDimension('lat', self.nlat)

                dataset = ncfile.createVariable('grid', 'i4', (
                    'lat',
                    'lon',
                ))
                dataset[:] = self.grd
                dataset.mfactor = 0.001
                dataset.long_name = 'Water Depth Grid'
                dataset.units = 'meter'
                dataset.dimension = self.grd.shape

                dataset = ncfile.createVariable('mask', 'i4', (
                    'lat',
                    'lon',
                ))
                dataset[:] = self.mask
                dataset.mfactor = 1
                dataset.long_name = 'Land/Water Mask'
                dataset.units = 'N/A'
                dataset.dimension = self.mask.shape

                dataset = ncfile.createVariable('xobstr', 'i4', (
                    'lat',
                    'lon',
                ))
                dataset[:] = self.xobstr
                dataset.mfactor = 0.01
                dataset.long_name = 'Obstruction Grid X Direction'
                dataset.units = 'N/A'
                dataset.dimension = self.xobstr.shape

                dataset = ncfile.createVariable('yobstr', 'i4', (
                    'lat',
                    'lon',
                ))
                dataset[:] = self.yobstr
                dataset.mfactor = 0.01
                dataset.long_name = 'Obstruction Grid Y Direction'
                dataset.units = 'N/A'
                dataset.dimension = self.yobstr.shape

                #                self.lon = np.arange(float(self.longitude[0]),float(self.longitude[1])+self.dlon,self.dlon)
                #                self.lat = np.arange(float(self.latitude[0]),float(self.latitude[1])+self.dlat,self.dlat)
                self.lon = np.linspace(float(self.longitude[0]),
                                       float(self.longitude[1]),
                                       num=self.nlon)
                self.lat = np.linspace(float(self.latitude[0]),
                                       float(self.latitude[1]),
                                       num=self.nlat)
                dataset = ncfile.createVariable('longitude', 'f4', ('lon', ))
                dataset[:] = self.lon
                dataset.units = 'decimal degree'
                dataset.dimension = self.lon.shape
                lonres = self.lon[1] - self.lon[0]
                dataset = ncfile.createVariable('latitude', 'f4', ('lat', ))
                dataset[:] = self.lat
                dataset.units = 'decimal degree'
                dataset.dimension = self.lat.shape
                latres = self.lat[1] - self.lat[0]

                dataset = mmfile.createVariable('longitude', 'f4', ('lon', ))
                dataset[:] = self.lon
                dataset.units = 'decimal degree'
                dataset.dimension = self.lon.shape
                lonres = self.lon[1] - self.lon[0]
                dataset = mmfile.createVariable('latitude', 'f4', ('lat', ))
                dataset[:] = self.lat
                dataset.units = 'decimal degree'
                dataset.dimension = self.lat.shape
                latres = self.lat[1] - self.lat[0]

            if key == 'wind_u':
                print dataf.shape
                self.wndu = np.array(dataf) * float(header['Mfac'])
            elif key == 'wind_v':
                print dataf.shape
                self.wndv = np.array(dataf) * float(header['Mfac'])

            dataset = ncfile.createVariable(key, 'i4', (
                'time',
                'lat',
                'lon',
            ))
            dataset[:] = dataf
            dataset.dimension = dataf.shape
            dataset.mfactor = header['Mfac']
            longn, units = wnc.create_field_var_att(key)
            dataset.long_name = longn
            dataset.units = units

            if key in mmset:
                dmax, dmean = self.max_mean(
                    np.array(dataf) * float(header['Mfac']))
                dataset = mmfile.createVariable(key + '_max', 'f4', (
                    'lat',
                    'lon',
                ))
                dataset[...] = dmax
                dataset = mmfile.createVariable(key + '_mean', 'f4', (
                    'lat',
                    'lon',
                ))
                dataset[...] = dmean

        wndspd = self.calc_wndspd()
        #       "*****Calculating Windspeed"
        dmax, dmean = self.max_mean(wndspd)
        dataset = mmfile.createVariable('windspd_max', 'f4', (
            'lat',
            'lon',
        ))
        dataset[...] = dmax
        dataset = mmfile.createVariable('windspd_mean', 'f4', (
            'lat',
            'lon',
        ))
        dataset[...] = dmean
        #  wh5.create_field_var_att(h5file,self.varname.keys())

        #        self.lon = np.arange(float(self.longitude[0]),float(self.longitude[1])+self.dlon,self.dlon)
        #        self.lat = np.arange(float(self.latitude[0]),float(self.latitude[1])+self.dlat,self.dlat)
        #	self.lon = np.linspace(float(self.longitude[0]),float(self.longitude[1]),num=self.nlon)
        #	self.lat = np.linspace(float(self.latitude[0]),float(self.latitude[1]),num=self.nlat)
        #        dataset = ncfile.createVariable('longitude','f4',('lon',))
        #        dataset[:] = self.lon
        #        dataset.units = 'decimal degree'
        #        dataset.dimension = self.lon.shape
        #        lonres = self.lon[1] - self.lon[0]
        #        dataset = ncfile.createVariable('latitude','f4',('lat',))
        #        dataset[:] = self.lat
        #        dataset.units = 'decimal degree'
        #        dataset.dimension = self.lat.shape
        #        latres = self.lat[1] - self.lat[0]

        info = {'longitude':self.longitude,'latitude':self.latitude,'nlon':self.nlon,'nlat':self.nlat, \
                    'domain':self.domain,'basin':basinname[basin],'lonres':lonres,'latres':latres, \
                    'timestart':self.timestart,'timeend':self.timeend}
        wnc.create_field_global_att(ncfile, info)
        wnc.create_field_global_att(mmfile, info)
        ncfile.close()
        mmfile.close()
Exemple #4
0
    def __init__(self,yearmon,basin,domain):
        self.yearmon = yearmon
        self.domain = domain
        self.complevel = 4
        self.varname = {'wavehs':'hs','wavetp':'fp','wavedir':'dir','wavehs_wndsea':'phs_sea','wavetp_wndsea':'ptp_sea','wavedir_wndsea':'pdi_sea','wavehs_swell1':'phs_sw1','wavetp_swell1':'ptp_sw1','wavedir_swell1':'pdi_sw1','wavehs_swell2':'phs_sw2','wavetp_swell2':'ptp_sw2','wavedir_swell2':'pdi_sw2','wind_u':'wnd','wind_v':'wnd'}
        mmset = ['wavehs','wavetp','wavehs_wndsea','wavetp_wndsea','wavehs_swell1','wavetp_swell1','wavehs_swell2','wavetp_swell2']
        basinname = {'pac':'Pacific Ocean','atl':'Atlantic Ocean','gom':'Gulf of Mexico'}
        ncfn = 'wis_' + basin + '_' + domain + '_' + yearmon + '.nc'
        mmfn = 'wis_' + basin + '_' + domain + '_' + yearmon + '_max_mean.nc'
        ncfile = Dataset(ncfn,'w')
        mmfile = Dataset(mmfn,'w')
       # write_top_level_att(h5fname)
        for key in self.varname.keys():
            tt, header, dataf = rfww3.read_fields_ww3('./',self.varname[key],key)
            if 'time' not in ncfile.variables:
                self.tt = tt
                self.time2date()
                ncfile.createDimension('time',len(self.tt))
                mmfile.createDimension('time',len(self.tt))
                dataset = ncfile.createVariable('time','i8',('time',),zlib=True,complevel=self.complevel)
                dataset[:] = self.pytime
                dataset.long_name = 'Time'
                dataset.units = 'Seconds since 1970-01-01 00:00:00'
                dataset.dimension = self.pytime.shape
                ncfile.createDimension('date',6)
                dataset = ncfile.createVariable('datetime','i4',('time','date',),zlib=True,complevel=self.complevel)
                dataset[:] = self.dattime
                dataset.long_name = 'Time in yyyy,mm,dd,hh,mm,ss'
                dataset.units = 'year,month,day,hour,minute,second'
                dataset.dimension = self.dattime.shape

                dataset = mmfile.createVariable('time','i8',('time',),zlib=True,complevel=self.complevel)
                dataset[:] = self.pytime
                dataset.long_name = 'Time'
                dataset.units = 'Seconds since 1970-01-01 00:00:00'
                dataset.dimension = self.pytime.shape
                mmfile.createDimension('date',6)
                dataset = mmfile.createVariable('datetime','i4',('time','date',),zlib=True,complevel=self.complevel)
                dataset[:] = self.dattime
                dataset.long_name = 'Time in yyyy,mm,dd,hh,mm,ss'
                dataset.units = 'year,month,day,hour,minute,second'
                dataset.dimension = self.dattime.shape

                self.longitude = header['lonw'], header['lone']
                self.latitude = header['lats'], header['latn']
                self.nlon = int(header['ilon'])
                self.nlat = int(header['jlat'])

                self.read_grid()

                ncfile.createDimension('lon',self.nlon)
                ncfile.createDimension('lat',self.nlat)
                mmfile.createDimension('lon',self.nlon)
                mmfile.createDimension('lat',self.nlat)

                dataset = ncfile.createVariable('grid','i4',('lat','lon',),zlib=True,complevel=self.complevel)
                dataset[:] = self.grd
                dataset.mfactor = 0.001
                dataset.long_name = 'Water Depth Grid'
                dataset.units = 'meter'
                dataset.dimension = self.grd.shape

                dataset = ncfile.createVariable('mask','i4',('lat','lon',),zlib=True,complevel=self.complevel)
                dataset[:] = self.mask
                dataset.mfactor = 1
                dataset.long_name = 'Land/Water Mask'
                dataset.units = 'N/A'
                dataset.dimension = self.mask.shape

                dataset = ncfile.createVariable('xobstr','i4',('lat','lon',),zlib=True,complevel=self.complevel)
                dataset[:] = self.xobstr
                dataset.mfactor = 0.01
                dataset.long_name = 'Obstruction Grid X Direction'
                dataset.units = 'N/A'
                dataset.dimension = self.xobstr.shape

                dataset = ncfile.createVariable('yobstr','i4',('lat','lon',),zlib=True,complevel=self.complevel)
                dataset[:] = self.yobstr
                dataset.mfactor = 0.01
                dataset.long_name = 'Obstruction Grid Y Direction'
                dataset.units = 'N/A'
                dataset.dimension = self.yobstr.shape

#                self.lon = np.arange(float(self.longitude[0]),float(self.longitude[1])+self.dlon,self.dlon)
#                self.lat = np.arange(float(self.latitude[0]),float(self.latitude[1])+self.dlat,self.dlat)
                self.lon = np.linspace(float(self.longitude[0]),float(self.longitude[1]),num=self.nlon)
                self.lat = np.linspace(float(self.latitude[0]),float(self.latitude[1]),num=self.nlat)
                dataset = ncfile.createVariable('longitude','f4',('lon',),zlib=True,complevel=self.complevel)
                dataset[:] = self.lon
                dataset.units = 'decimal degree'
                dataset.dimension = self.lon.shape
                lonres = self.lon[1] - self.lon[0]
                dataset = ncfile.createVariable('latitude','f4',('lat',),zlib=True,complevel=self.complevel)
                dataset[:] = self.lat
                dataset.units = 'decimal degree'
                dataset.dimension = self.lat.shape
                latres = self.lat[1] - self.lat[0]

                dataset = mmfile.createVariable('longitude','f4',('lon',),zlib=True,complevel=self.complevel)
                dataset[:] = self.lon
                dataset.units = 'decimal degree'
                dataset.dimension = self.lon.shape
                lonres = self.lon[1] - self.lon[0]
                dataset = mmfile.createVariable('latitude','f4',('lat',),zlib=True,complevel=self.complevel)
                dataset[:] = self.lat
                dataset.units = 'decimal degree'
                dataset.dimension = self.lat.shape
                latres = self.lat[1] - self.lat[0]

  
            if key == 'wind_u':
                self.wndu = np.array(dataf)*float(header['Mfac'])
            elif key == 'wind_v':
                self.wndv = np.array(dataf)*float(header['Mfac'])

            if 'wind' not in key:
                print key
                dataset = ncfile.createVariable(key,'i4',('time','lat','lon',),zlib=True,complevel=self.complevel)
                dataset[:] = dataf
                dataset.dimension = dataf.shape
                dataset.mfactor = header['Mfac']
                longn, units = wnc.create_field_var_att(key)
                dataset.long_name = longn
                dataset.units = units

            if key in mmset:
                dmax,dmean = self.max_mean(np.array(dataf)*float(header['Mfac']))
                dataset = mmfile.createVariable(key + '_max','f4',('lat','lon',),zlib=True,complevel=self.complevel)
                dataset[...] = dmax
                dataset = mmfile.createVariable(key + '_mean','f4',('lat','lon',),zlib=True,complevel=self.complevel)
                dataset[...] = dmean
        
        wndspd = self.calc_wndspd()
#       "*****Calculating Windspeed"
        dmax,dmean = self.max_mean(wndspd)
        dataset = mmfile.createVariable('windspd_max','f4',('lat','lon',),zlib=True,complevel=self.complevel)
        dataset[...] = dmax
        dataset = mmfile.createVariable('windspd_mean','f4',('lat','lon',),zlib=True,complevel=self.complevel)
        dataset[...] = dmean
      #  wh5.create_field_var_att(h5file,self.varname.keys())
       
#        self.lon = np.arange(float(self.longitude[0]),float(self.longitude[1])+self.dlon,self.dlon)
#        self.lat = np.arange(float(self.latitude[0]),float(self.latitude[1])+self.dlat,self.dlat)
#	self.lon = np.linspace(float(self.longitude[0]),float(self.longitude[1]),num=self.nlon)
#	self.lat = np.linspace(float(self.latitude[0]),float(self.latitude[1]),num=self.nlat)
#        dataset = ncfile.createVariable('longitude','f4',('lon',))
#        dataset[:] = self.lon
#        dataset.units = 'decimal degree'
#        dataset.dimension = self.lon.shape
#        lonres = self.lon[1] - self.lon[0]
#        dataset = ncfile.createVariable('latitude','f4',('lat',))
#        dataset[:] = self.lat
#        dataset.units = 'decimal degree'
#        dataset.dimension = self.lat.shape
#        latres = self.lat[1] - self.lat[0]
        
        info = {'longitude':self.longitude,'latitude':self.latitude,'nlon':self.nlon,'nlat':self.nlat, \
                    'domain':self.domain,'basin':basinname[basin],'lonres':lonres,'latres':latres, \
                    'timestart':self.timestart,'timeend':self.timeend}
        wnc.create_field_global_att(ncfile,info)
        wnc.create_field_global_att(mmfile,info)
        ncfile.close()
        mmfile.close()