diff --git a/RMtools_1D/do_QUfit_1D_mnest.py b/RMtools_1D/do_QUfit_1D_mnest.py index ed3aaac..7d418ca 100755 --- a/RMtools_1D/do_QUfit_1D_mnest.py +++ b/RMtools_1D/do_QUfit_1D_mnest.py @@ -495,6 +495,17 @@ def run_qufit( "IfitPolyOrd": toscalar(IfitDict["polyOrd"]), "Ifitfreq0": toscalar(IfitDict["reference_frequency_Hz"]), } + + + for k, v in saveDict.items(): + if isinstance(v, np.float_): + saveDict[k] = float(v) + elif isinstance(v, np.int_): + saveDict[k] = int(v) + elif isinstance(v, np.ndarray): + saveDict[k] = v.tolist() + elif isinstance(v, np.bool_): + saveDict[k] = bool(v) json.dump(saveDict, open(outFile, "w")) outFile = f"{prefixOut}_m{modelNum}_{sampler}.dat" FH = open(outFile, "w") diff --git a/RMtools_1D/do_RMclean_1D.py b/RMtools_1D/do_RMclean_1D.py index 0708286..f014892 100755 --- a/RMtools_1D/do_RMclean_1D.py +++ b/RMtools_1D/do_RMclean_1D.py @@ -256,6 +256,16 @@ def saveOutput(mDict_cl, aDict_cl, prefixOut="", verbose=False, log=print): FH.close() outFile = prefixOut + "_RMclean.json" if verbose: log("> %s" % outFile) + for k, v in mDict_cl.items(): + if isinstance(v, np.float_): + mDict_cl[k] = float(v) + elif isinstance(v, np.int_): + mDict_cl[k] = int(v) + elif isinstance(v, np.ndarray): + mDict_cl[k] = v.tolist() + elif isinstance(v, np.bool_): + mDict_cl[k] = bool(v) + json.dump(mDict_cl, open(outFile, "w")) def readFiles(fdfFile, rmsfFile, weightFile, rmSynthFile, nBits): diff --git a/RMtools_1D/do_RMsynth_1D.py b/RMtools_1D/do_RMsynth_1D.py index 0e87fcc..add6298 100755 --- a/RMtools_1D/do_RMsynth_1D.py +++ b/RMtools_1D/do_RMsynth_1D.py @@ -560,6 +560,18 @@ def saveOutput(outdict, arrdict, prefixOut, verbose): if verbose: print("> %s" % outFile) + + for k, v in outdict.items(): + if isinstance(v, np.float_): + outdict[k] = float(v) + elif isinstance(v, np.int_): + outdict[k] = int(v) + elif isinstance(v, np.ndarray): + outdict[k] = v.tolist() + elif isinstance(v, np.bool_): + outdict[k] = bool(v) + + json.dump(dict(outdict), open(outFile, "w")) diff --git a/tests/RMsynth1D_referencevalues.json b/tests/RMsynth1D_referencevalues.json index d9775d0..31cca95 100644 --- a/tests/RMsynth1D_referencevalues.json +++ b/tests/RMsynth1D_referencevalues.json @@ -1 +1 @@ -{"dFDFcorMAD": 0.012824177742004395, "dFDFrms": 0.03170722723007202, "phiPeakPIchan_rm2": 201.0, "dPhiPeakPIchan_rm2": 0.24814919763068932, "ampPeakPIchan": 0.6994333267211914, "ampPeakPIchanEff": 0.6993762345202659, "dAmpPeakPIchan": 0.005892556709695188, "snrPIchan": 118.69776757012694, "indxPeakPIchan": 267, "peakFDFimagChan": -0.5605906844139099, "peakFDFrealChan": 0.41826435923576355, "polAngleChan_deg": 153.36356353759766, "dPolAngleChan_deg": 0.24135154639379308, "polAngle0Chan_deg": 44.00376296895752, "dPolAngle0Chan_deg": 1.3731897339320969, "phiPeakPIfit_rm2": 200.29003676576465, "dPhiPeakPIfit_rm2": 0.248062934269283, "ampPeakPIfit": 0.6996765531831387, "ampPeakPIfitEff": 0.699619480830623, "dAmpPeakPIfit": 0.005892556709695188, "snrPIfit": 118.73904446807298, "indxPeakPIfit": 266.7633455885882, "peakFDFimagFit": -0.5593282099678656, "peakFDFrealFit": 0.4190415975286484, "polAngleFit_deg": 153.42004263949445, "dPolAngleFit_deg": 0.24126764607950102, "polAngle0Fit_deg": 48.26124570608431, "dPolAngle0Fit_deg": 1.372712376102901, "Ifreq0": 1.0, "polyCoeffs": "0.0,0.0,0.0,0.0,0.0,1.0", "polyCoefferr": "0.0,0.0,0.0,19.15748709659049,0.6786377104199252,0.08796823965028172", "poly_reffreq": 944000000.2222222, "IfitStat": 4, "IfitChiSqRed": 0.0, "fit_function": "log", "lam0Sq_m2": 0.10327484831236765, "freq0_Hz": 932874912.6426204, "fwhmRMSF": 58.90951156616211, "dQU": 0.10000000149011612, "dFDFth": 0.005892556709695188, "units": "Jy/beam", "polyOrd": 2, "min_freq": 800000000.0, "max_freq": 1088000000.0, "N_channels": 288, "median_channel_width": 1003456.0, "fracPol": 0.6996765531831387, "sigmaAddQ": 0.39312059810649663, "dSigmaAddMinusQ": 0.2859949907172898, "dSigmaAddPlusQ": 0.13645904926608626, "sigmaAddU": 0.22680054259742569, "dSigmaAddMinusU": 0.20949437831506873, "dSigmaAddPlusU": 0.20581573041436466} +{"dFDFcorMAD": 0.012824177742004395, "dFDFrms": 0.03170722723007202, "phiPeakPIchan_rm2": 201.0, "dPhiPeakPIchan_rm2": 0.24814919763068932, "ampPeakPIchan": 0.6994333267211914, "ampPeakPIchanEff": 0.6993762345202659, "dAmpPeakPIchan": 0.005892556709695188, "snrPIchan": 118.69776757012694, "indxPeakPIchan": 267, "peakFDFimagChan": -0.5605906844139099, "peakFDFrealChan": 0.41826435923576355, "polAngleChan_deg": 153.36356353759766, "dPolAngleChan_deg": 0.24135154639379308, "polAngle0Chan_deg": 44.00376296895752, "dPolAngle0Chan_deg": 1.3731897339320969, "phiPeakPIfit_rm2": 200.29003676576465, "dPhiPeakPIfit_rm2": 0.248062934269283, "ampPeakPIfit": 0.6996765531831387, "ampPeakPIfitEff": 0.699619480830623, "dAmpPeakPIfit": 0.005892556709695188, "snrPIfit": 118.73904446807298, "indxPeakPIfit": 266.7633455885882, "peakFDFimagFit": -0.5593282099678656, "peakFDFrealFit": 0.4190415975286484, "polAngleFit_deg": 153.42004263949445, "dPolAngleFit_deg": 0.24126764607950102, "polAngle0Fit_deg": 48.26124570608431, "dPolAngle0Fit_deg": 1.372712376102901, "Ifreq0": 1.0, "polyCoeffs": "0.0,0.0,0.0,0.0,0.0,1.0", "polyCoefferr": "0.0,0.0,0.0,19.157487096590494,0.6786377104199252,0.08796823965028173", "poly_reffreq": 944000000.2222222, "polyOrd": 2, "IfitStat": 4, "IfitChiSqRed": 0.0, "fit_function": "log", "lam0Sq_m2": 0.10327484831236765, "freq0_Hz": 932874912.6426204, "fwhmRMSF": 58.90951156616211, "dQU": 0.10000000149011612, "dFDFth": 0.005892556709695188, "units": "Jy/beam", "min_freq": 800000000.0, "max_freq": 1088000000.0, "N_channels": 288, "median_channel_width": 1003456.0, "fracPol": 0.699619480830623, "sigmaAddQ": 0.3932147299302305, "dSigmaAddMinusQ": 0.28588346072691073, "dSigmaAddPlusQ": 0.13642591925592168, "sigmaAddU": 0.22666017312932038, "dSigmaAddMinusU": 0.20936429555590333, "dSigmaAddPlusU": 0.20587598580813857} \ No newline at end of file