# BARlib.py # IJ BAR: https://github.com/tferr/Scripts#scripts # # Common BAR library to be placed in BAR/lib. This file hosts methods to # be used across all your scripts. To add these scripting additions, append # the following to your Jython scripts: # import bar, sys # sys.path.append(bar.Utils.getLibDir()) # import BARlib as lib # Then, call functions as usual: # lib.confirmLoading() # ##### Utilities ##### def confirmLoading(): """Acknowledges accessibility to this file""" from ij import IJ IJ.showMessage("BAR lib successfully loaded!") def getClipboardText(): """Returns text from the system clipboard or an empty string if no text was found""" import bar return bar.Utils.getClipboardText(); def randomString(): """Returns a random uuid""" import uuid return str(uuid.uuid4()) ##### CALCULATIONS ##### def getSimpleMovingAverage(values, window): """Smooths 1D data according to the specified window""" if (window<1): return values svalues = [] for i in range(len(values)): svalues.append(0); n = 0 for j in xrange(max(0, i-window), min(len(values), i+window)): svalues[i] += values[j]; n += 1 svalues[i] /= n return svalues def gcd(a,b): """Returns the greatest common divisor between 2 numbers""" while(b): a,b = b,a%b return a def sphereCalc(r): """Returns surface area and volume of a sphere of radius r""" import math sph_area = 4*math.pi*(r**2) sph_vol = 4/3*math.pi*(r**3) return (sph_area, sph_vol)