Changeset 1352


Ignore:
Timestamp:
02/08/06 17:05:02 (13 years ago)
Author:
domlowe
Message:

Lots of changes to enable ArrayGenerators? to work. Not working fully but checking in at convenient point

Location:
TI02-CSML/trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/Scanner/csmllibs/csmldataiface.py

    r1342 r1352  
    246246                                self.setAxis(axis) 
    247247                                times=self.getDataForAxis() 
    248                                 break 
     248                                break 
     249                        elif string.find(string.upper(axis),'SECONDS SINCE') != -1: 
     250                                #found possible time axis. 
     251                                self.setAxis(axis) 
     252                                times=self.getDataForAxis() 
     253                                break 
     254                        elif string.find(string.upper(axis),'HOURS SINCE') != -1: 
     255                                #found possible time axis. 
     256                                self.setAxis(axis) 
     257                                times=self.getDataForAxis() 
     258                                break 
     259                        elif string.find(string.upper(axis),'DAYS SINCE') != -1: 
     260                                #found possible time axis. 
     261                                self.setAxis(axis) 
     262                                times=self.getDataForAxis() 
     263                                break 
    249264                return times 
    250265 
  • TI02-CSML/trunk/Scanner/csmllibs/csmlextra.py

    r855 r1352  
    4242#       return cleanstring 
    4343#        
    44 # def cleanString2(messystring): 
    45 #       #removes outer brackets and 's, but leaves commas. 
    46 #       cleanstring = messystring[1:-1] 
    47 #       cleanstring = cleanstring.replace("'",'') 
    48 #       return cleanstring 
     44def cleanString(messystring): 
     45   # removes outer brackets and 's, but leaves commas. 
     46    cleanstring = messystring[1:-1] 
     47    cleanstring = cleanstring.replace("'",'') 
     48    return cleanstring 
    4949         
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfeaturetypes.py

    r1344 r1352  
    289289                            fname = f.getRelatedFileName() 
    290290                            listOfFiles.append(fname) 
    291                      
    292             for file in listOfFiles: 
     291                    file=repfilename 
    293292                    DI = csmllibs.csmldataiface.DataInterface() 
    294293                    DI=DI.getUnknownInterfaceType(file) 
     
    303302                            #times = ['time axis not determined'] 
    304303                     
    305                                      
    306                     print "FEATURES" 
     304#                    print "FEATURES" 
    307305#                     print "***********" 
    308306#                     for i in range (0, len(allVarNames)): 
     
    327325                            psDomain=csmllibs.Parser.PointSeriesDomain() 
    328326                                                   
    329                              
     327                            print len(times) 
     328                            print len(listOfFiles) 
     329                            print len(times) * len(listOfFiles) 
    330330                            #*********************************************************************** 
    331331                            # domainReference element  
     
    335335                            t.locations =csmllibs.Parser.DirectPositionList(vals='1 1') 
    336336                            if len(times) > 200: 
     337                                pass 
    337338                                #create a file extract link for long lists 
    338                                 fextract=csmllibs.csmlfileextracts.createSingleExtract(self.extractType,file,self.timedim,len(times)) 
    339                                 tplist = csmllibs.Parser.TimePositionList(timePositions=fextract) 
    340                                 t.times=tplist                                 
     339                                filenames=csmllibs.csmlextra.cleanString(str(listOfFiles)) 
     340#                                 print 'times: ' + str(allVarNames[i]) 
     341#                                 print len(times) 
     342#                                 print len(listOfFiles) 
     343#                                 arraySize=len(times) * len(listOfFiles) 
     344#                                 fextract=csmllibs.csmlfileextracts.createSingleExtract(self.extractType,filenames,self.timedim,arraySize) 
     345#                                 tplist = csmllibs.Parser.TimePositionList(timePositions=fextract) 
     346#                                 t.times=tplist                                 
    341347                            else: 
    342348                                #encode short lists inline: 
     
    356362                             
    357363                            try:                         
    358                                     measuredvalues = str(DI.getDataForVar()) 
     364                                    measuredvalues = DI.getDataForVar() 
    359365                            except: 
    360366                                    measuredvalues = ' could not get values ' 
     
    363369                            if len(measuredvalues) > 200: 
    364370                                #create a file extract link for long lists 
    365                                 fextract=csmllibs.csmlfileextracts.createSingleExtract(self.extractType,file,allVarNames[i],len(measuredvalues)) 
     371                                arraySize=len(measuredvalues)*len(listOfFiles)  
     372                                fextract=csmllibs.csmlfileextracts.createSingleExtract(self.extractType,filenames,allVarNames[i],arraySize) 
    366373                                qlist = csmllibs.Parser.MeasureOrNullList(val=fextract) 
    367374                                rs.quantityList=qlist 
     
    381388                            self.fms.append(PointSeriesFeature_element) 
    382389                    DI.closeFile() 
    383              
     390#             for file in listOfFiles: 
     391#                     DI = csmllibs.csmldataiface.DataInterface() 
     392#                     DI=DI.getUnknownInterfaceType(file) 
     393#                     DI.openFile(file) 
     394#                     allVarNames=DI.getListofVariables() 
     395#                     numFeatures=len(allVarNames)       
     396#                     try: 
     397#                             DI.setAxis(self.timedim) 
     398#                             times=DI.getDataForAxis() 
     399#                     except:                    
     400#                             times = DI.getTimes() 
     401#                             #times = ['time axis not determined'] 
     402#                      
     403#                                      
     404#                     print "FEATURES" 
     405# #                     print "***********" 
     406# #                     for i in range (0, len(allVarNames)): 
     407# #                             print allVarNames[i] 
     408#                                              
     409#                     print "numFeatures" + str(numFeatures) 
     410#                     for i in range (0, numFeatures): 
     411#                             PointSeriesFeature_element=csmllibs.Parser.PointSeriesFeature() 
     412#                             if str(allVarNames[i]).upper() in ['ERROR FLAG', 'ERROR']: #might need to extend this list 
     413#                                 break 
     414#                             PointSeriesFeature_element.id=str(allVarNames[i]) 
     415#                             try: 
     416#                                 desc=DI.getVariableAttribute('long_name') 
     417# #                                 print desc 
     418#                             except AttributeError: 
     419#                                 desc = "missing name" 
     420#                             PointSeriesFeature_element.description=csmllibs.Parser.Description(desc) 
     421#  
     422#                             #*********************************************************************** 
     423#                             #PointSeriesDomain: 
     424#                             #*********************************************************************** 
     425#                             psDomain=csmllibs.Parser.PointSeriesDomain() 
     426#                                                    
     427#                              
     428#                             #*********************************************************************** 
     429#                             # domainReference element  
     430#                             #*********************************************************************** 
     431#                             t=csmllibs.Parser.Trajectory() 
     432#                             t.srsName='urn:EPSG:geographicCRS:4326' #TO Do 
     433#                             t.locations =csmllibs.Parser.DirectPositionList(vals='1 1') 
     434#                             if len(times) > 200: 
     435#                                 #create a file extract link for long lists 
     436#                                 fextract=csmllibs.csmlfileextracts.createSingleExtract(self.extractType,file,self.timedim,len(times)) 
     437#                                 tplist = csmllibs.Parser.TimePositionList(timePositions=fextract) 
     438#                                 t.times=tplist                                 
     439#                             else: 
     440#                                 #encode short lists inline: 
     441#                                 t.times=csmllibs.Parser.TimePositionList('#RefSysX',str(times)) 
     442#                                   
     443#                             psDomain.domainReference=t 
     444#                              
     445#                             #*********************************************************************** 
     446#                             # gml:rangeSet_element 
     447#                             #*********************************************************************** 
     448#                             DI.setVariable(allVarNames[i]) 
     449#                             try: 
     450#                                     strUom = DI.getVariableAttribute('units') 
     451#                             except AttributeError: 
     452#                                     #if units attribute doesn't exist: 
     453#                                     strUom ="dimensionless or units not determined" 
     454#                              
     455#                             try:                       
     456#                                     measuredvalues = str(DI.getDataForVar()) 
     457#                             except: 
     458#                                     measuredvalues = ' could not get values ' 
     459#                              
     460#                             rs=csmllibs.Parser.RangeSet() 
     461#                             if len(measuredvalues) > 200: 
     462#                                 #create a file extract link for long lists 
     463#                                 fextract=csmllibs.csmlfileextracts.createSingleExtract(self.extractType,file,allVarNames[i],len(measuredvalues)) 
     464#                                 qlist = csmllibs.Parser.MeasureOrNullList(val=fextract) 
     465#                                 rs.quantityList=qlist 
     466#                             else: 
     467#                                 #encode short lists inline 
     468#                                 rs.quantityList=csmllibs.Parser.MeasureOrNullList(uom=strUom, val=str(measuredvalues)[1:-1])                          
     469#  
     470#                             PointSeriesFeature_element.rangeSet=rs 
     471#                             #*********************************************************************** 
     472#                             # gml:coverageFunction element (and sub-element MappingRule)               
     473#                             #*********************************************************************** 
     474#                              
     475#                             #need to do parameter element 
     476#                              
     477#  
     478#                             PointSeriesFeature_element.domain=psDomain 
     479#                             self.fms.append(PointSeriesFeature_element) 
     480#                     DI.closeFile() 
     481#              
    384482 
    385483         
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfiles.py

    r1156 r1352  
    7777        assumes no file in toplevel directory, and then lots of subdirectories at next level containing files 
    7878        """ 
    79          
    8079        tree = csmllibs.csmldirectory.DirectoryTree() 
    8180        tree.setTopDirectory(self.topdir) 
     
    9089        repfile=csmllibs.csmlfeaturefilemap.representativeFile(allfiles[0]) 
    9190        repfile.setFeatureType(self.ft) 
    92          
    9391        #create related files from all other files 
    94         for f in allfiles[1:]: 
     92        for f in allfiles[:]: 
    9593            relfile = csmllibs.csmlfeaturefilemap.relatedFile(f) 
    9694            relfile.setFeatureType(self.ft) 
  • TI02-CSML/trunk/parser/API/__init__.py

    r1170 r1352  
    2525import ops_Dataset 
    2626import ops_AbstractFileExtract 
     27import ops_ArrayGenerator 
    2728import ops_AbstractFeature 
    2829import ops_PointFeature 
     
    5354Parser.AbstractFileExtract.getData=ops_AbstractFileExtract.getData 
    5455 
     56#ArrayGenerator methods: 
     57Parser.ArrayGenerator.getGeneratedValues=ops_ArrayGenerator.getGeneratedValues 
     58 
    5559#AbstractFeature methods: 
    5660Parser.AbstractFeature.testmethod=ops_AbstractFeature.testmethod 
     
    5963#PointFeature methods: 
    6064Parser.PointFeature.testmethod=ops_PointFeature.testmethod 
    61 #PointFeature.getAllowedSubsettings=ops_PointFeature.getAllowedSubsettings 
     65#Parser.PointFeature.getAllowedSubsettings=ops_PointFeature.getAllowedSubsettings 
    6266 
    6367#PointSeriesFeature methods: 
    6468Parser.PointSeriesFeature.testmethod=ops_PointSeriesFeature.testmethod 
    65 #PointSeriesFeature.getAllowedSubsettings=ops_PointSeriesFeature.getAllowedSubsettings 
     69Parser.PointSeriesFeature.getDomainReference=ops_PointSeriesFeature.getDomainReference 
     70#Parser.GridSeriesFeature.getDomainComplement=ops_GridSeriesFeature.getDomainComplement 
     71#Parser.GridSeriesFeature.getDomain=ops_GridSeriesFeature.getDomain 
     72#Parser.GridSeriesFeature.subsetToGridSeries=ops_GridSeriesFeature.subsetToGridSeries 
     73Parser.PointSeriesFeature.getAllowedSubsettings=ops_PointSeriesFeature.getAllowedSubsettings 
    6674 
    6775#ProfileFeature methods: 
     
    7179#ProfileSeriesFeature methods: 
    7280Parser.ProfileSeriesFeature.testmethod=ops_ProfileSeriesFeature.testmethod 
    73 #ProfileSeriesFeature.getAllowedSubsettings=ops_ProfileSeriesFeature.getAllowedSubsettings 
     81#Parser.ProfileSeriesFeature.getAllowedSubsettings=ops_ProfileSeriesFeature.getAllowedSubsettings 
    7482 
    7583#GridFeature methods: 
    7684Parser.GridFeature.testmethod=ops_GridFeature.testmethod 
    77 #GridFeature.getAllowedSubsettings=ops_GridFeature.getAllowedSubsettings 
     85#Parser.GridFeature.getAllowedSubsettings=ops_GridFeature.getAllowedSubsettings 
    7886 
    7987#GridSeriesFeature methods: 
  • TI02-CSML/trunk/parser/API/ops_PointSeriesFeature.py

    r1028 r1352  
    55    print 'testmethod for pointSeries feature' 
    66    return 'testmethod pointSeries' 
     7 
     8def getAllowedSubsettings(self): 
     9    return ['subsetToPointSeries'] 
     10 
     11def getDomainReference(self): 
     12    #Inspects a time position list for the domain reference. 
     13    #Also handles an ArrayGenerator. 
     14    print self.domain.domainReference 
     15    if isinstance(self.domain.domainReference,Parser.Trajectory): 
     16        print dir(self.domain.domainReference) 
     17        if isinstance(self.domain.domainReference.times.timePositions,Parser.ArrayGenerator): 
     18            time = {} 
     19            timeframe=self.domain.domainReference.times.frame 
     20            time['t'] = self.domain.domainReference.times.timePositions.getGeneratedValues(timeframe) 
     21            domainref  = time 
     22        else: 
     23            time = {} 
     24            time['t'] = self.domain.domainReference.times.timePositions 
     25            domainref  = time 
     26              
     27            pass 
     28    else: domainref='blah2' 
     29    return domainref 
  • TI02-CSML/trunk/parser/Parser.py

    r1349 r1352  
    26132613                subFrag=Element(CSML('PPExtract')) 
    26142614                PPExtract.toXML(self.timePositions,subFrag) 
     2615                csmlFrag.append(subFrag) 
     2616            elif  isinstance(self.timePositions, ArrayGenerator): 
     2617                subFrag=Element(CSML('ArrayGenerator')) 
     2618                ArrayGenerator.toXML(self.timePositions,subFrag) 
    26152619                csmlFrag.append(subFrag) 
    26162620            else: 
Note: See TracChangeset for help on using the changeset viewer.