code: def noisepickle(d, data, u, v, w, chunk=200):
      
  
      if d['savenoise']:
          noisefile = getnoisefile(d)
  
          if os.path.exists(noisefile):
              logger.warn('noisefile %s already exists' % noisefile)
          else:
              nints = len(data)
              chunk = min(chunk, nints)  # ensure at least one measurement
              results = []
  
              rr = range(0, nints, chunk)
              if len(rr) == 1: rr.append(1)   # hack. need to make sure it iterates for nints=1 case
              for i in range(len(rr)-1):
                  imid = (rr[i]+rr[i+1])/2
                  noiseperbl = estimate_noiseperbl(data[rr[i]:rr[i+1]])
                  imstd = sample_image(d, data, u, v, w, imid, verbose=0).std()
                  zerofrac = float(len(n.where(data[rr[i]:rr[i+1]] == 0j)[0]))/data[rr[i]:rr[i+1]].size
                  results.append( (d['segment'], noiseperbl, zerofrac, imstd) )
  
              with open(noisefile, 'a') as pkl:
                  pickle.dump(results, pkl)
              logger.info('Wrote %d noise measurement%s to %s.' % (len(results), 's'[:len(results)-1], noisefile))
docs: Calculates noise properties and saves values to pickle.
      chunk defines window for measurement. at least one measurement always made.