Skip to content

Commit

Permalink
fixed a bug where tzinfo could not be specified when running from a t…
Browse files Browse the repository at this point in the history
…imestamp
  • Loading branch information
ChrisSWDavis committed Feb 21, 2025
1 parent 26faadc commit 95140aa
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 2 deletions.
8 changes: 8 additions & 0 deletions CosRayModifiedISO/CosRayModifiedISO.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
from CosRayModifiedISO.internalFunctions.rigidityEnergyConversionFunctions import convertParticleEnergySpecToRigiditySpec, convertParticleRigiditySpecToEnergySpec, convertParticleRigidityToEnergy, convertParticleEnergyToRigidity
from CosRayModifiedISO.internalFunctions.spectrumHandling import ISOmodelSpectrum_fromSolarModulation

import logging

logging.basicConfig(level=logging.WARNING)

def getEnergyFluxesFromEnergies(solarModulationWparameter:float, atomicNumber:int, energyListInMeV:list):

energyListInMeV = convertToIterable(energyListInMeV)
Expand Down Expand Up @@ -57,6 +61,10 @@ def getSpectrumUsingOULUcountRate(OULUcountRatePerSecond:float, atomicNumber:int

def getSpectrumUsingTimestamp(timestamp:dt.datetime, atomicNumber:int):

if timestamp.tzinfo is None:
logging.warning("The inputted timestamp does not have timezone info. Assuming UTC.")
timestamp = timestamp.replace(tzinfo=dt.timezone.utc)

OULUcountRate = getOULUcountRateForTimestamp(timestamp)
Wparameter = getWparameterFromOULUcountRate(OULUcountRate)
return getSpectrumUsingSolarModulation(Wparameter, atomicNumber)
Expand Down
Binary file modified CosRayModifiedISO/neutronMonitorData/OULUinputData.pkl
Binary file not shown.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
packages=find_packages(),
package_data={"":["CosRayModifiedISO/neutronMonitorData/*.dat","CosRayModifiedISO/neutronMonitorData/*.pkl"]},
include_package_data=True,
version='1.2.8',
version='1.2.9',
url="https://github.com/ssc-maire/CosRayModifiedISO",
author='Space Environment and Protection Group, University of Surrey',
keywords='space physics galactic cosmic ray',
Expand Down
25 changes: 24 additions & 1 deletion tests/test_DLRISOmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def test_energy_flux_output():

assert round(outputEnergyFlux[0],7) == round(0.00012419,7)

def test_timestamp_flux_output():
def test_timestamp_flux_output_no_tzinfo():

datetimeToUse = dt.datetime(
year = 2001,
Expand All @@ -25,6 +25,29 @@ def test_timestamp_flux_output():

outputtedSpectralDataFrame = CosRayModifiedISO.getSpectrumUsingTimestamp(datetimeToUse,atomicNumber=1)

assert round(outputtedSpectralDataFrame["Energy (MeV/n)"].iloc[0],5) == round(11.294627,5)
assert round(outputtedSpectralDataFrame["Energy (MeV/n)"].iloc[4],5) == round(28.370820,5)
assert round(outputtedSpectralDataFrame["Rigidity (GV/n)"].iloc[0],5) == round(0.146022,5)
assert round(outputtedSpectralDataFrame["Rigidity (GV/n)"].iloc[4],5) == round(0.232474,5)
assert round(outputtedSpectralDataFrame["d_Flux / d_E (cm-2 s-1 sr-1 (MeV/n)-1)"].iloc[0],10) == round(2.290835e-07,10)
assert round(outputtedSpectralDataFrame["d_Flux / d_E (cm-2 s-1 sr-1 (MeV/n)-1)"].iloc[4],10) == round(1.546788e-06,10)
assert round(outputtedSpectralDataFrame["d_Flux / d_R (cm-2 s-1 sr-1 (GV/n)-1)"].iloc[0],8) == round(3.522790e-05,8)
assert round(outputtedSpectralDataFrame["d_Flux / d_R (cm-2 s-1 sr-1 (GV/n)-1)"].iloc[4],8) == round(3.719962e-04,8)

def test_timestamp_flux_output():

datetimeToUse = dt.datetime(
year = 2001,
month = 10,
day = 27,
hour = 0,
minute = 10,
second = 35,
tzinfo = dt.timezone.utc
)

outputtedSpectralDataFrame = CosRayModifiedISO.getSpectrumUsingTimestamp(datetimeToUse,atomicNumber=1)

assert round(outputtedSpectralDataFrame["Energy (MeV/n)"].iloc[0],5) == round(11.294627,5)
assert round(outputtedSpectralDataFrame["Energy (MeV/n)"].iloc[4],5) == round(28.370820,5)
assert round(outputtedSpectralDataFrame["Rigidity (GV/n)"].iloc[0],5) == round(0.146022,5)
Expand Down

0 comments on commit 95140aa

Please sign in to comment.