Changeset 13108
- Timestamp:
- 08/21/12 12:13:57 (13 years ago)
- Location:
- issm/trunk-jpl/test/NightlyRun
- Files:
-
- 2 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/test/NightlyRun/runme.py
r12952 r13108 142 142 if strcmpi(procedure,'update'): 143 143 144 if not strcmp(socket.gethostname().lower().split('.')[0],'larsen'): 145 # raise RuntimeError("Nightly run archives must be saved on 'larsen' (hostname is '"+socket.gethostname()+"').") 146 print "Nightly run archives must be saved on 'larsen' (hostname is '"+socket.gethostname()+"')." 147 # f = h5py.File(os.path.join('..','Archives',archive_name+'.hdf5'),'w') 148 f = netCDF4.Dataset(os.path.join('..','Archives',archive_name+'.nc'),'w') 144 os.remove(os.path.join('..','Archives',archive_name+'.nc')) 145 f = netCDF4.Dataset(os.path.join('..','Archives',archive_name+'.nc'),'w',format='NETCDF3_CLASSIC') 149 146 for k,fieldname in enumerate(field_names): 150 147 field=numpy.array(field_values[k],dtype=float) 151 # f.create_dataset(archive_name+'_field'+str(k),data=field) 152 f.createDimension(archive_name+'_field'+str(k)+'_0',numpy.size(field,0)) 153 f.createDimension(archive_name+'_field'+str(k)+'_1',numpy.size(field,1)) 154 v = f.createVariable(archive_name+'_field'+str(k),'f8',(archive_name+'_field'+str(k)+'_0',archive_name+'_field'+str(k)+'_1')) 148 if len(field.shape) == 1: 149 if numpy.size(field): 150 field=field.reshape(numpy.size(field),1) 151 else: 152 field=field.reshape(0,0) 153 # Matlab uses base 1, so use base 1 in labels 154 f.createDimension(archive_name+'_field'+str(k+1)+'_1',numpy.size(field,0)) 155 f.createDimension(archive_name+'_field'+str(k+1)+'_2',numpy.size(field,1)) 156 v = f.createVariable(archive_name+'_field'+str(k+1),field.dtype,(archive_name+'_field'+str(k+1)+'_1',archive_name+'_field'+str(k+1)+'_2')) 155 157 v[:] = field 156 158 f.close() … … 162 164 #load archive 163 165 if os.path.exists(os.path.join('..','Archives',archive_name+'.nc')): 164 # f = h5py.File(os.path.join('..','Archives',archive_name+'.hdf5'),'r')165 166 f = netCDF4.Dataset(os.path.join('..','Archives',archive_name+'.nc'),'r') 166 167 else: … … 171 172 try: 172 173 #Get field and tolerance 173 field=numpy.array(field_values[k],dtype=float) 174 # print 'field =',field 174 field=numpy.array(field_values[k]) 175 if len(field.shape) == 1: 176 if numpy.size(field): 177 field=field.reshape(numpy.size(field),1) 178 else: 179 field=field.reshape(0,0) 175 180 tolerance=field_tolerances[k] 176 # print 'tolerance =',tolerance177 181 178 182 #compare to archive 179 # if archive_name+'_field'+str(k) in f: 180 # archive=f[archive_name+'_field'+str(k)][...] 181 if archive_name+'_field'+str(k) in f.variables: 182 archive=f.variables[archive_name+'_field'+str(k)][:] 183 else: 184 raise NameError("Field name '"+archive_name+'_field'+str(k)+"' does not exist in archive file.") 185 # print 'archive =',archive 186 error_diff=numpy.amax(numpy.abs(archive-field),axis=1)/ \ 187 (numpy.amax(numpy.abs(archive),axis=1)+sys.float_info.epsilon) 188 # print 'error_diff =',error_diff 183 # Matlab uses base 1, so use base 1 in labels 184 if archive_name+'_field'+str(k+1) in f.variables: 185 archive=f.variables[archive_name+'_field'+str(k+1)][:] 186 else: 187 raise NameError("Field name '"+archive_name+'_field'+str(k+1)+"' does not exist in archive file.") 188 error_diff=numpy.amax(numpy.abs(archive-field),axis=0)/ \ 189 (numpy.amax(numpy.abs(archive),axis=0)+sys.float_info.epsilon) 189 190 190 191 #disp test result 191 if ( error_diff>tolerance):192 if (numpy.any(error_diff>tolerance)): 192 193 print 'ERROR difference: %-7.2g > %7.2g test id: %i test name: %s field: %s' % \ 193 194 (error_diff,tolerance,id,id_string,fieldname) … … 202 203 message=me2 203 204 if strcmpi(output,'nightly'): 204 fid=open(os.path.join(ISSM_DIR,'nightlylog',' matlaberror.log'), 'a')205 fid=open(os.path.join(ISSM_DIR,'nightlylog','pythonerror.log'), 'a') 205 206 fid.write('%s' % message) 206 207 fid.write('\n------------------------------------------------------------------\n') … … 208 209 print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,fieldname) 209 210 elif strcmpi(output,'daily'): 210 fid=open(os.path.join(ISSM_DIR,'dailylog',' matlaberror.log'), 'a')211 fid=open(os.path.join(ISSM_DIR,'dailylog','pythonerror.log'), 'a') 211 212 fid.write('%s' % message) 212 213 fid.write('\n------------------------------------------------------------------\n') … … 225 226 message=me 226 227 if strcmpi(output,'nightly'): 227 fid=open(os.path.join(ISSM_DIR+'nightlylog',' matlaberror.log'), 'a')228 fid=open(os.path.join(ISSM_DIR+'nightlylog','pythonerror.log'), 'a') 228 229 fid.write('%s' % message) 229 230 fid.write('\n------------------------------------------------------------------\n') … … 231 232 print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,'N/A') 232 233 elif strcmpi(output,'daily'): 233 fid=open(os.path.join(ISSM_DIR+'dailylog',' matlaberror.log'), 'a')234 fid=open(os.path.join(ISSM_DIR+'dailylog','pythonerror.log'), 'a') 234 235 fid.write('%s' % message) 235 236 fid.write('\n------------------------------------------------------------------\n') -
issm/trunk-jpl/test/NightlyRun/runme2.m
r13103 r13108 124 124 archive_name=['Archive' num2str(id) ]; 125 125 if strcmpi(procedure,'update'), 126 127 if ~strcmp(oshostname(),'larsen'); 128 error(['Nightly run archives must be saved on "larsen" (hostname is "' oshostname() '")']); 129 end 126 delete(['../Archives/' archive_name '.nc']) 130 127 for k=1:length(field_names), 131 128 field=field_values{k}; 132 eval([ archive_name '_field' num2str(k) ' = field ;']); 129 % matlab writes the dimensions reversed and matrices transposed into netcdf, so compensate for that 130 nccreate(['../Archives/' archive_name '.nc'],[archive_name '_field' num2str(k)],... 131 'Dimensions',{[archive_name '_field' num2str(k) '_2'] size(field,2) [archive_name '_field' num2str(k) '_1'] size(field,1)},... 132 'Format','classic'); 133 ncwrite(['../Archives/' archive_name '.nc'],[archive_name '_field' num2str(k)],transpose(field)); 133 134 end 134 eval(['save ../Archives/' archive_name ' ' archive_name '_field*']); 135 disp(sprintf(['File ./../Archives/' archive_name ' saved\n'])); 135 disp(sprintf(['File ./../Archives/' archive_name '.nc saved\n'])); 136 136 137 137 %ELSE: CHECK TEST 138 138 else, 139 140 %load archive141 load(['../Archives/' archive_name ]);142 143 139 for k=1:length(field_names), 144 140 … … 150 146 151 147 %compare to archive 152 eval(['archive=' archive_name '_field' num2str(k) ';']); 148 % matlab reads the dimensions reversed and matrices transposed from netcdf, so compensate for that 149 archive=transpose(ncread(['../Archives/' archive_name '.nc'],[archive_name '_field' num2str(k)])); 153 150 error_diff=full(max(abs(archive(:)-field(:)))/(max(abs(archive))+eps)); 154 151 -
issm/trunk-jpl/test/NightlyRun/test101.py
r13070 r13108 23 23 1e-13,1e-13,1e-13] 24 24 field_values=[\ 25 [md.results.DiagnosticSolution.Vx],\26 [md.results.DiagnosticSolution.Vy],\27 [md.results.DiagnosticSolution.Vel],\28 [md.results.DiagnosticSolution.Pressure],\29 [md.results.DiagnosticSolution.StressTensorxx],\30 [md.results.DiagnosticSolution.StressTensoryy],\31 [md.results.DiagnosticSolution.StressTensorxy],\25 md.results['DiagnosticSolution'][1]['Vx'],\ 26 md.results['DiagnosticSolution'][1]['Vy'],\ 27 md.results['DiagnosticSolution'][1]['Vel'],\ 28 md.results['DiagnosticSolution'][1]['Pressure'],\ 29 md.results['DiagnosticSolution'][1]['StressTensorxx'],\ 30 md.results['DiagnosticSolution'][1]['StressTensoryy'],\ 31 md.results['DiagnosticSolution'][1]['StressTensorxy'],\ 32 32 ]
Note:
See TracChangeset
for help on using the changeset viewer.