Changeset 2472
- Timestamp:
- 15/05/07 13:39:39 (14 years ago)
- Location:
- TI02-CSML/branches/csml-pml
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
TI02-CSML/branches/csml-pml/API/__init__.py
r2305 r2472 7 7 import ops_Dataset 8 8 import ops_FileExtract 9 import ops_RawFileExtract 9 10 import ops_ArrayGenerator 10 11 import ops_AbstractFeature … … 28 29 #AbstractFileExtract methods: 29 30 addMethods(csml.parser.FileExtract, [ops_FileExtract.getData]) 31 32 #RawFileExtract methods: 33 addMethods(csml.parser.RawFileExtract, [ops_RawFileExtract.getData]) 30 34 31 35 #ArrayGenerator methods: -
TI02-CSML/branches/csml-pml/API/genSubset.py
r2444 r2472 96 96 csml.csmllibs.csmltime.setcdtimeCalendar(caltype) 97 97 except: 98 csml.csmllibs.csmltime.setcdtimeCalendar(csml.csmllibs.csmltime.cdtime.DefaultCalendar) 98 csml.csmllibs.csmltime.setcdtimeCalendar(csml.csmllibs.csmltime.cdtime.DefaultCalendar) 99 caltype='standard' 99 100 return caltype 100 101 … … 132 133 if hasattr(feature.value.rangeSet, 'valueArray'): 133 134 if hasattr(feature.value.rangeSet.valueArray.valueComponent, 'insertedExtract'): 134 numFiles= len( csmlutils.listify(feature.value.rangeSet.valueArray.valueComponent.insertedExtract.components)[0].fileList.fileNames.CONTENT.split()) 135 return len(domain[timeName])/numFiles 135 try: 136 numFiles= len( csmlutils.listify(feature.value.rangeSet.valueArray.valueComponent.insertedExtract.components)[0].fileList.fileNames.CONTENT.split()) 137 except: 138 numFiles= len(csmlutils.listify(feature.value.rangeSet.valueArray.valueComponent.insertedExtract.components)[0].fileName.CONTENT) 139 timeToFileRatio= len(domain[timeName])/numFiles 140 if timeToFileRatio==0: 141 timeToFileRatio=None 142 return timeToFileRatio 136 143 137 144 def getCoordTransformTable(domainSubset, crs, frame): … … 188 195 if timeToFileRatio == None: 189 196 filePos=None 190 else: 197 else: 191 198 filePos=int(float(listPosition)/timeToFileRatio) 192 199 if filePos in filesFetched: -
TI02-CSML/branches/csml-pml/csmllibs/csmlcrs.py
r2405 r2472 20 20 self.systems={} 21 21 self.pseudosystems={} 22 23 # define WGS84 CRS: 24 crs=CRSystem(srsName='WGS84', axes =['time', 'latitude','longitude']) 25 crs.lonAxis=2 26 crs.latAxis=1 27 crs.timeAxis=0 28 self.systems['WGS84']=crs 22 29 23 30 # define lon lat pressure time CRS: -
TI02-CSML/branches/csml-pml/csmllibs/csmldataiface.py
r2461 r2472 29 29 # interfaces 30 30 import NumericTransform 31 # Part of the PIL. Required for ImageFileInterface: 32 import Image 33 # Required for RawFileInterface: 34 import struct 31 32 try: 33 # Part of the PIL. Required for ImageFileInterface: 34 import Image 35 except ImportError: 36 print 'could not import Image' 37 pass 38 39 try: 40 # Required for RawFileInterface: 41 import struct 42 except ImportError: 43 print 'could not import struct' 44 pass 45 35 46 36 47 class DataInterface(object): … … 618 629 # data array, so raise an exception 619 630 raise IndexException("Subset out of range") 620 elif Numeric.sometrue(Numeric.less_equal(kwargs['upper' , kwargs['lower'])):631 elif Numeric.sometrue(Numeric.less_equal(kwargs['upper'], kwargs['lower'])): 621 632 # lower bound <= upper_bound for at least one dimension, so raise an 622 633 # exception -
TI02-CSML/branches/csml-pml/parser.py
r2461 r2472 1043 1043 csElement.__init__(self,**kwargs) 1044 1044 self.dataInterface = csml.csmllibs.csmldataiface.RawFileInterface 1045 1046 1047 # raw and image extracts need access to metadata defined in the CSML to 1048 # correctly read the file. This method overrides the FileExtract getData() 1049 # method making use of the readFile() DI method to pass this metadata to 1050 # the data interface. 1051 # TODO: This should probably be moved outside parser.py, possibly into 1052 # API/ops_FileExtract 1053 def getData(self, fileposition=None,**kwargs): 1054 #file position defines the position of the filename if a list of filenames exists 1055 #**kwargs can hold subsetting request. 1056 1057 1058 if fileposition is not None: 1059 file = self.fileList.fileNames.CONTENT.split()[fileposition] 1060 else: 1061 file = self.fileName.CONTENT 1062 1063 # Determine metadata required to correctly read and process the 1064 # raw file: 1065 meta = {} 1066 meta['dimensions'] = map(int, self.arraySize.CONTENT.split()) 1067 1068 try: 1069 meta['numericTransform'] = self.numericTransform.CONTENT.strip() 1070 except AttributeError: pass 1071 try: 1072 meta['endianness'] = self.endianness.CONTENT.strip() 1073 except AttributeError: pass 1074 try: 1075 meta['fillValue'] = self.fillValue.CONTENT.strip() 1076 except AttributeError: pass 1077 try: 1078 meta['numericType'] = self.numericType.CONTENT.strip() 1079 except AttributeError: pass 1080 1081 try: 1082 DI = self.dataInterface() 1083 except AttributeError: 1084 DI = csml.csmllibs.csmldataiface.DataInterface() 1085 DI = DI.getUnknownInterfaceType(file) 1086 1087 DI.openFile(file) 1088 DI.readFile(**meta) 1089 if kwargs: 1090 print 'subsetting' 1091 data = DI.getSubsetOfDataForVar(**kwargs) 1092 else: 1093 print 'non subsetting' 1094 data = DI.getDataForVar() 1095 fillValue = DI.getFillValue() 1096 DI.closeFile() 1097 return data, fillValue, None, None 1098 1099 1045 1100 1046 class ImageFileExtract(RawFileExtract, csElement): 1101 1047 def __init__(self,**kwargs): … … 1154 1100 elems=['descriptors'] 1155 1101 addelems(self,elems) 1156 children={elems[0]:[[CSML('NetCDFExtract'),CSML('AggregatedArray') ], 'FileExtract', CSML('descriptor'),1]}1102 children={elems[0]:[[CSML('NetCDFExtract'),CSML('AggregatedArray'), CSML('RawFileExtract')], 'FileExtract', CSML('descriptor'),1]} 1157 1103 addchildren(self,children) 1158 1104 csElement.__init__(self,**kwargs) … … 1256 1202 1257 1203 print '\n' 1258 #tree=ET.ElementTree(file='testfiles/gridseries/testout.xml') 1259 tree=ET.ElementTree(file='testfiles/gridseries/securitytest.xml') 1204 tree=ET.ElementTree(file='../rsg_example_csml-2.0.xml') 1260 1205 ds=Dataset() 1261 1206 ds.fromXML(tree.getroot())
Note: See TracChangeset
for help on using the changeset viewer.