Changeset 3470 for nappy/trunk


Ignore:
Timestamp:
20/02/08 15:08:36 (12 years ago)
Author:
astephen
Message:

Got 1020 written from NetCDF.

Location:
nappy/trunk/nappy/nc_interface
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • nappy/trunk/nappy/nc_interface/na_content_collector.py

    r3469 r3470  
    100100            self._defineNAComments() 
    101101            self._defineGeneralHeader() 
    102             # Quick fudge to cope with 1001 issue 
    103             if self.na_dict["FFI"] == 1001:  
    104                 self.na_dict["X"] = self.na_dict["X"][0] 
    105  
    106102            self.found_na = True 
    107103 
     
    173169                # Check if axis is identical to first axis of main best variable, if so, can be auxiliary var 
    174170                if nappy.cdms_utils.axis_utils.areAxesIdentical(best_var_axes[0], first_axis) == False:  
     171 
    175172                    # If not identical, then it might still qualify as an auxiliary every n time points - valid for 1020 
    176                     if len(var.shape) == 1 and nappy.cdms_utils.axis_utils.isAxisRegularlySpacedSubsetOf(first_axis, best_var_axes[0]) == True: 
    177                         ffis_limited = [1020] 
     173                    if len(var.shape) == 1: 
     174                        nvpm = nappy.cdms_utils.axis_utils.isAxisRegularlySpacedSubsetOf(first_axis, best_var_axes[0]) 
     175                        # NVPM is the number of implied values which is equal to (len(ax2)/len(ax1)) 
     176                        if nvpm: 
     177                            ffis_limited = [1020] 
     178                            self.na_dict["NVPM"] = nvpm 
     179                        else: # if returned False, i.e. not regular subset axis 
     180                            self.unused_vars.append(var) 
    178181                    else: 
    179182                        self.unused_vars.append(var) 
    180183                        continue 
    181184 
    182                 # I think it is an auxiliary variable 
    183                 aux_vars_for_na.append(var)  
     185                else: 
     186                    # This could be used as a standard auxiliary variable 
     187                    if ffis_limited in ([1020],): 
     188                        # Already fixed on 1020 and cannot collect incompatible FFI vars so do not use 
     189                        self.unused_vars.append(var) 
     190                    else: 
     191                        aux_vars_for_na.append(var)  
    184192 
    185193            else: 
     
    302310            self.na_dict["V"].append(var._data) 
    303311 
     312            # Create independent variable info 
    304313            if not self.na_dict.has_key("X"): 
     314                # Set up lists ready to populate with values 
    305315                self.na_dict["NXDEF"] = [] 
    306316                self.na_dict["NX"] = [] 
    307317 
    308                 # Create independent variable information 
    309318                self.ax0 = var.getAxis(0) 
     319 
    310320                self.na_dict["X"] = [self.ax0[:].tolist()] 
    311                 print self.na_dict["X"] 
    312321                self.na_dict["XNAME"] = [nappy.cdms_utils.var_utils.getBestName(self.ax0)] 
     322 
    313323                if len(self.ax0) == 1: 
    314324                    self.na_dict["DX"] = [0] 
     
    322332                            self.na_dict["DX"] = [0] 
    323333                            break 
     334 
     335                # If 1D only then "X" should only be a list and not list of lists 
     336                if self.na_dict["FFI"] in (1001, 1010, 1020): 
     337                    self.na_dict["X"] = self.na_dict["X"][0] 
     338 
     339                # If FFI is 1020 need to reduce axis down to reduced values as most are implied 
     340                if self.na_dict["FFI"] == 1020:  
     341                    vals = self.na_dict["X"] 
     342                    self.na_dict["X"] = vals[0:len(vals):self.na_dict["NVPM"]]  
    324343 
    325344                # Now add the rest of the axes to the self.na_dict objects  
     
    602621                (unit, start_date) = re.match("(\w+)\s+?since\s+?(\d+-\d+-\d+)", self.ax0.units).groups()             
    603622                comptime = cdtime.s2c(start_date) 
    604                 first_day = comptime.add(self.na_dict["X"][0][0], getattr(cdtime, unit.capitalize())) 
     623                first_day = comptime.add(self.na_dict["X"][0], getattr(cdtime, unit.capitalize())) 
    605624                self.na_dict["DATE"] = str(first_day).split(" ")[0].replace("-", " ").split() 
    606625            except: 
  • nappy/trunk/nappy/nc_interface/na_to_cdms.py

    r3405 r3470  
    2323 
    2424na_to_nc_map = nappy.utils.getConfigDict()["na_to_nc_map"] 
    25 print na_to_nc_map 
    2625 
    2726# Import external packages (if available) 
Note: See TracChangeset for help on using the changeset viewer.