Ignore:
Timestamp:
07/06/06 00:44:32 (13 years ago)
Author:
astephen
Message:

Stable-ish version with fully-ish working dxc client.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI03-DataExtractor/trunk/pydxs/OutputManager.py

    r794 r1109  
    5656        self.outputDir=checkSubDirectory(self.bag["username"])   
    5757        self.DXDML=DXDMLHandler() 
    58                  
     58        self.varDict={} 
     59                         
    5960 
    6061    def _getDatasetDetails(self, varCodes): 
     
    8586        and estimated duration for producing the output. 
    8687        """ 
     88        if self.varDict!={}: 
     89            return self.varDict 
    8790        if self.bag.has_key("numericalOperation"): 
    8891            self._handleNumericalOperation(mode="file names") 
     
    172175            dataFileHandler=DatasetFormatDecider(datasetGroup, dataset, datasetURI).datasetFormat 
    173176            outputFormat=self.bag["outputFormat_%s" % varCodes] 
    174             print dataFileHandler 
     177            #print dataFileHandler 
    175178             
    176179            axisSelectionDict=getDictSubsetMatching(self.bag, "axis_%s" % varCodes) 
    177180 
    178181            timeStepStringList=dataFileHandler.getSelectedTimeSteps(datasetURI, varID, axisSelectionDict) 
    179                      
     182            
    180183            sizeOfRequest=dataFileHandler.getSelectedVariableSubsetSize(datasetURI, varID, axisSelectionDict) 
    181184            sizeOfRequest=self._adjustFileSizeByFormat(sizeOfRequest, outputFormat) 
     
    294297             
    295298            if outputFilePathList==None:  
    296                 outputFileName="%s_%s.%s" % (opMethod, os.getpid(), outputFormat)            
     299                outputFileName="%s_%s.%s" % (opMethod, os.getpid(), mapFileFormatToExtension(outputFormat))          
    297300                outputFilePathList=[os.path.join(self.outputDir, outputFileName)] 
    298301             
     
    305308 
    306309            (arrayShape, gridShape, size)=dataFileHandler.getSelectedVariableArrayDetails(datasetURI, varID, axisSelectionDict) 
    307             print gridShape, arrayShape 
     310            #print gridShape, arrayShape 
    308311            varGrids.append(gridShape) 
    309312            arrayShapes.append(arrayShape) 
     
    344347                varsToUse.append(dataFileHandler.readVariableSubsetIntoMemory(datasetURI, varID, axisSelectionDict)) 
    345348                 
    346             opController.performOperation(fileVarSelectorList) 
    347  
    348         self.varDict[0]=(datasetURI, opMethod, outputSize, outputFormat, outputFilePathList[:]) 
    349  
    350  
    351 """ 
    352             timeStepStringList=dataFileHandler.getSelectedTimeSteps(datasetURI, varID, axisSelectionDict) 
    353                      
    354             sizeOfRequest=dataFileHandler.getSelectedVariableSubsetSize(datasetURI, varID, axisSelectionDict) 
    355             sizeOfRequest=self._adjustFileSizeByFormat(sizeOfRequest, outputFormat) 
    356              
    357              
    358                      
    359             if sizeOfRequest>(MAX_FILE_SIZE*(2**20)) or ONE_FILE_PER_TIMESTEP==1: 
     349            data=opController.performOperation(varsToUse) 
     350             
     351            # Now write the data 
     352            outputHandler=self._getOutputHandler(outputFormat, dataFileHandler)  
     353            outputFilePath=outputFilePathList[0]                 
     354            outputFileHandler=outputHandler(outputFilePath) 
     355            outputFileHandler.writeVariableAndGlobalAttributes(data, {}) 
     356            outputFileHandler.closeFile() 
     357             
     358            print "\nWrote variable '%s' to output file: %s" % (data.id, outputFilePath)                     
     359             
     360 
     361        outputVarID=opMethod 
     362        self.varDict[0]=(datasetURI, outputVarID, outputSize, outputFormat, outputFilePathList[:]) 
     363 
     364 
     365             
    360366                     
    361                 print "\n\n\n", (MAX_FILE_SIZE*(2**20)), sizeOfRequest, ONE_FILE_PER_TIMESTEP 
    362                 if mode=="file names": 
    363                     fileNamer=FileNames(datasetGroup=datasetGroup, dataset=dataset, timeSteps=timeStepStringList,  
    364                                     fileFormat=outputFormat, variables=[varID], 
    365                                     basedir=self.outputDir) 
    366                     outputFilePathList=fileNamer.createFileNameList() 
    367                  
    368                 elif mode=="create outputs": 
    369                     # Now get the real data 
    370                     outputHandler=self._getOutputHandler(outputFormat, dataFileHandler) 
    371                      
    372                     outputFilePathList=[] 
    373                     for timeStep in timeStepStringList: 
    374                         fileNamer=FileNames(datasetGroup=datasetGroup, dataset=dataset, timeSteps=[timeStep],  
    375                                     fileFormat=outputFormat, variables=[varID], 
    376                                     basedir=self.outputDir) 
    377                         outputFilePath=fileNamer.createFileNameList()[0] 
    378                         outputFilePathList.append(outputFilePath) 
    379                                                  
    380                         data=dataFileHandler.readVariableSubsetIntoMemory(datasetURI, varID, axisSelectionDict, timeStep) 
    381                          
    382                         outputFileHandler=outputHandler(outputFilePath) 
    383                         globalAttributes=dataFileHandler.getCFGlobalAttributes(datasetURI) 
    384                         outputFileHandler.writeVariableAndGlobalAttributes(data, globalAttributes) 
    385                         outputFileHandler.closeFile() 
    386                         print "\nWrote variable '%s' to output file: %s" % (varID, outputFilePath)               
    387                          
    388             else: 
    389                 if len(timeStepStringList)==0: 
    390                     timeStepStringList=[] 
    391                 elif len(timeStepStringList)==1: 
    392                     timeStepStringList=timeStepStringList 
    393                 else: 
    394                     timeStepStringList=["%s-%s" % (timeStepStringList[0], timeStepStringList[-1])] 
    395                              
    396                 print "Work out file name as only one file..." 
    397                 fileNamer=FileNames(datasetGroup=datasetGroup, dataset=dataset, timeSteps=timeStepStringList,  
    398                                     fileFormat=outputFormat, variables=[varID], 
    399                                     basedir=self.outputDir) 
    400                 outputFilePathList=fileNamer.createFileNameList()        
    401                  
    402                 if mode=="create outputs": 
    403                     # Now get the real data 
    404                     outputHandler=self._getOutputHandler(outputFormat, dataFileHandler)          
    405                     outputFilePath=outputFilePathList[0] 
    406                     data=dataFileHandler.readVariableSubsetIntoMemory(datasetURI, varID, axisSelectionDict) 
    407                          
    408                     outputFileHandler=outputHandler(outputFilePath) 
    409                     globalAttributes=dataFileHandler.getCFGlobalAttributes(datasetURI) 
    410                     outputFileHandler.writeVariableAndGlobalAttributes(data, globalAttributes) 
    411                     outputFileHandler.closeFile() 
    412                     print "\nWrote variable '%s' to output file: %s" % (varID, outputFilePath)               
    413                      
    414      
    415             self.varDict[varCount]=(datasetURI, varID, sizeOfRequest, outputFormat, outputFilePathList[:]) 
    416          
    417 """ 
    418  
     367     
    419368 
    420369if __name__=="__main__": 
     
    429378    x=OutputManager({"username":"jane", "datasetGroup_1":"Test Data Group 1", 
    430379                     "dataset_1.3":"Test Dataset 1", "variable_1.3.1":"pqn", 
    431                      "axis_1.3.1.0":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
     380                     "axis_1.3.1.1":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
    432381                     "outputFormat_1.3.1":"NetCDF", 
    433382                     "datasetGroup_2":"Test Data Group 2", 
    434383                     "dataset_2.1":"Test Dataset 2", "variable_2.1.1":"var2", 
    435                      "axis_2.1.1.0":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
     384                     "axis_2.1.1.1":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
    436385                     "outputFormat_2.1.1":"NetCDF"}) 
    437386 
     
    441390    x=OutputManager({"username":"jane", "datasetGroup_1":"Test Data Group 1", 
    442391                     "dataset_1.3":"Test Dataset 1", "variable_1.3.1":"pqn", 
    443                      "axis_1.3.1.0":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
     392                     "axis_1.3.1.1":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
    444393                     "outputFormat_1.3.1":"NetCDF", 
    445394                     "datasetGroup_2":"Test Data Group 2", 
    446395                     "dataset_2.1":"Test Dataset 2", "variable_2.1.1":"var2", 
    447                      "axis_2.1.1.0":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
    448                      "axis_2.1.1.1":(30,-30), 
     396                     "axis_2.1.1.1":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
     397                     "axis_2.1.1.2":(30,-30), 
    449398                     "outputFormat_2.1.1":"NetCDF"}) 
    450399 
     
    455404    x=OutputManager({"username":"jane", "datasetGroup_1":"Test Data Group 1", 
    456405                     "dataset_1.3":"Test Dataset 1", "variable_1.3.1":"pqn", 
    457                      "axis_1.3.1.0":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
     406                     "axis_1.3.1.1":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
    458407                     "outputFormat_1.3.1":"NetCDF", 
    459408                     "datasetGroup_2":"Test Data Group 2", 
    460409                     "dataset_2.1":"Test Dataset 2", "variable_2.1.1":"var2", 
    461                      "axis_2.1.1.0":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
    462                      "axis_2.1.1.1":(30,-30), 
     410                     "axis_2.1.1.1":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
     411                     "axis_2.1.1.2":(30,-30), 
    463412                     "outputFormat_2.1.1":"NetCDF"}) 
    464413    print x.getOutputFilePathDict()        
     
    466415    x=OutputManager({"username":"jane", "datasetGroup_1":"Test Data Group 1", 
    467416                     "dataset_1.3":"Test Dataset 1", "variable_1.3.1":"pqn", 
    468                      "axis_1.3.1.0":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
     417                     "axis_1.3.1.1":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
    469418                     "outputFormat_1.3.1":"NetCDF", 
    470419                     "datasetGroup_2":"Test Data Group 2", 
    471420                     "dataset_2.1":"Test Dataset 2", "variable_2.1.1":"var2", 
    472                      "axis_2.1.1.0":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
    473                      "axis_2.1.1.1":(30,-30), 
     421                     "axis_2.1.1.1":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
     422                     "axis_2.1.1.2":(30,-30), 
    474423                     "outputFormat_2.1.1":"NetCDF"}) 
    475424    x.createOutputs()     
     
    479428    print x.getOutputSizes() 
    480429     
    481     x=OutputManager({"username":"jane", "datasetGroup_1":"Test Data Group 1", 
    482                      "dataset_1.3":"Test Dataset 1", "variable_1.3.1":"pqn", 
    483                      "axis_1.3.1.0":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
     430    print "\n\n\n" 
     431    print "DIFFERENCING VARS..." 
     432    x=OutputManager({"username":"jane", "datasetGroup_1":"Test Data Group 1", 
     433                     "dataset_1.3":"Test Dataset 1", "variable_1.3.1":"pqn", 
     434                     "axis_1.3.1.1":("1999-01-01T00:00:00", "1999-01-01T06:00:00"), 
    484435                     "outputFormat_1.3.1":"NetCDF", 
    485436                     "datasetGroup_2":"Test Data Group 2", 
    486437                     "dataset_2.1":"Test Dataset 2", "variable_2.1.1":"var2", 
    487                      "axis_2.1.1.0":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
    488                      "axis_2.1.1.1":(30,-30), 
     438                     "axis_2.1.1.1":("2004-01-01T12:00:00", "2004-01-01T12:00:00"), 
     439                     "axis_2.1.1.2":(30,-30), 
    489440                     "outputFormat_2.1.1":"NetCDF", 
    490                      "numericalOperation":"(variable2)-(variable1)"})    
    491      
     441                     "numericalOperation":"(var2)-(var1)"})      
     442     
     443    x.getOutputFilePathDict() 
     444    x.createOutputs() 
     445 
     446    print "TRYING REAL TEST.................." 
     447    x=OutputManager({'username':None, 'variable_1.1.1':'pqn',  
     448                     'outputFormat_1.1.1':'NetCDF', 'userRoles':[],  
     449                     'datasetGroup_1':'Test Data Group 1',  
     450                     'axis_1.1.1.3':(-30, 30), 'dataset_1.1':'Test Dataset 1'}) 
     451    print x.getOutputFilePathDict() 
Note: See TracChangeset for help on using the changeset viewer.