diff --git a/analysator/calculations/spectra.py b/analysator/calculations/spectra.py index 93f144d4..9145cb9f 100644 --- a/analysator/calculations/spectra.py +++ b/analysator/calculations/spectra.py @@ -41,7 +41,15 @@ def get_spectrum_energy(vlsvReader, EkinBinEdges = np.logspace(np.log10(EMin),np.log10(EMax),nBins+1, endpoint=True) dE = EkinBinEdges[1:] - EkinBinEdges[:-1] - vlsvReader = analysator.vlsvfile.VlsvReader(vlsvReader) + + # initialize a new vlsvReader if passed a str filename of a .vlsv + if isinstance(vlsvReader,str): + vlsvReader = analysator.vlsvfile.VlsvReader(vlsvReader) + # ensure it is a VlsvReader obj instance otherwise + elif not isinstance(vlsvReader,analysator.vlsvfile.VlsvReader): + raise TypeError("Supplied vlsvReader must be either a VlsvReader obj instance or a filename str") + # else: keep the already initialized VlsvReader obj + # check if velocity space exists in this cell if not vlsvReader.check_variable("moments"): # restart files have VDFs everywhere if vlsvReader.check_variable("fSaved"): @@ -124,7 +132,7 @@ def get_spectrum_energy(vlsvReader, #Ekin[Ekin > max(EkinBinEdges)] = max(EkinBinEdges) # compute histogram - (nhist,edges) = np.histogram(Ekin,bins=EkinBinEdges,weights=fw,normed=0) + (nhist,edges) = np.histogram(Ekin,bins=EkinBinEdges,weights=fw,density=False) if (bindifferential): # finish differential flux per d(eV) nhist = np.divide(nhist,dE) @@ -151,7 +159,13 @@ def get_spectrum_alongaxis_vel(vlsvReader, bindifferential=False, # weigh by d(velocity) restart=True): - vlsvReader = analysator.vlsvfile.VlsvReader(vlsvReader) + # initialize a new vlsvReader if passed a str filename of a .vlsv + if isinstance(vlsvReader,str): + vlsvReader = analysator.vlsvfile.VlsvReader(vlsvReader) + # ensure it is a VlsvReader obj instance otherwise + elif not isinstance(vlsvReader,analysator.vlsvfile.VlsvReader): + raise TypeError("Supplied vlsvReader must be either a VlsvReader obj instance or a filename str") + # else: keep the already initialized VlsvReader obj if vectorVar is not None and vector is None: if vlsvReader.check_variable(vectorVar): @@ -230,7 +244,7 @@ def get_spectrum_alongaxis_vel(vlsvReader, latex=r'$f(\vec{r},v)$' weight = 'particles' - (nhist,edges) = np.histogram(Vproj,bins=VBinEdges,weights=fw,normed=0) + (nhist,edges) = np.histogram(Vproj,bins=VBinEdges,weights=fw,density=False) # normalization dv = abs(VBinEdges[1:] - VBinEdges[:-1]) if (differential): # differential flux per [m/s]