;+ ; NAME: ; makediff ; CALLING SEQUENCE: PRO makediff ;- root = filepath(root='/work/bernie','rawdata/raw') mapfiles1 = dialog_pickfile( path=root, filter='skymap*.pph', /multiple ) for i=1, n_elements(mapfiles1)-1 do begin setfilespec,mapfiles1[i] name=getfilespec(part='name')+'-diff.pph' stat = bin_read(mapfiles1[i],mapfile) stat = bin_read(mapfiles1[i-1],mapold) bad = where(mapold le -9999.0) if (bad[0] ne -1) then mapold[bad]=BadValue(mapold) bad = where(mapfile le -9999.0) if (bad[0] ne -1) then mapfile[bad]=BadValue(mapfile) mapfile=array_smooth(mapfile,3) mapold=array_smooth(mapold,3) ; good = where(finite(mapold) eq 1) ; only subtract finite values, NaNs will override ; mapfile[good] = mapfile[good]-mapold[good] ; mapfile[bad] = BadValue(mapfile) ; overlap = where(finite(mapfile[good]) eq 0) ; this should make any value that has NaN in new map take on the value ; given by the previous map ; nlowval = min(mapold[overlap],/nan) ; nhighval = max(mapold[overlap],/nan) ; lowval = min(mapfile,/nan) ; highval = max(mapfile,/nan) ; print, 'mapold l / h: ',nlowval, nhighval ; print, 'mapfile l/ h: ',lowval, highval ; mapold[overlap] = bytscl(mapold[overlap], min=lowval,max=highval) ; mapfile[overlap] = mapold[overlap] mapfile = mapfile-mapold ; want to average out the values i dropped in all willy nilly bin_write, filepath(root=root,subdir='../diffodd', name), mapfile end end