diff --git a/generate_plots.py b/generate_plots.py index 9e63b9b..759506a 100644 --- a/generate_plots.py +++ b/generate_plots.py @@ -27,7 +27,7 @@ def mkdir_p(mypath): pass else: raise -fileName = "datav5.cff" +fileName = "datav5.1.cff" data = pd.read_pickle(fileName) binList = [10, 20, 30] @@ -51,13 +51,13 @@ if(useTESS): current = datetime.now() date = f"{current.year}-{current.month}-{current.day}" time = f"{current.hour}-{current.minute}-{current.second}" -folderPath = f"../{date}/" +folderPath = f"../{date}-sine-poly/" #folderPath = f"G:/Meine Ablage/Masterthesis/{date}/" mkdir_p(folderPath) # remove any data that has no period #data = data[(data["FitType"] == "sine") | (data["FitType"] == "poly")] -data = data[(data["FitType"] == "sine")] +data = data[((data["FitType"] == "sine") | (data["FitType"] == "poly")) & (data["isValidFold"])] validStarPeriodMap = [] starList = set(list(data["StarName"])) @@ -155,19 +155,20 @@ def plotFlarePeaks(plotdata, filters, labels, colors, maxY, title, filename): if(isinstance(labels, list) and isinstance(colors, list)): _, ((axFlarePeaks)) = plt.subplots(nrows=1, ncols=1) for f, l, c in zip(filters, labels, colors): - axFlarePeaks.scatter(plotdata[f]["PDCSAPNormPhase"], - plotdata[f]["Peak"], + axFlarePeaks.scatter(plotdata[f]["PDCSAPNormPhase"] if "PDCSAPNormPhase" in plotdata[f].columns else plotdata[f]["PDCSAPNormPhasePeriod"], + plotdata[f]["Peak"] if "Peak" in plotdata[f].columns else plotdata[f]["PeakPeriod"], label=l, color=c) elif(isinstance(labels, str) and isinstance(colors, str)): _, ((axFlarePeaks)) = plt.subplots(nrows=1, ncols=1) if(filters is None): - axFlarePeaks.scatter(plotdata[:]["PDCSAPNormPhase"], - plotdata[:]["Peak"], + axFlarePeaks.scatter(plotdata[:]["PDCSAPNormPhase"] if "PDCSAPNormPhase" in plotdata[:].columns else plotdata[:]["PDCSAPNormPhasePeriod"], + + plotdata[:]["Peak"] if "Peak" in plotdata[:].columns else plotdata[:]["PeakPeriod"], label=labels, color=colors) else: - axFlarePeaks.scatter(plotdata[filters]["PDCSAPNormPhase"], - plotdata[filters]["Peak"], - label=labels, color=colors) + axFlarePeaks.scatter(plotdata[filters]["PDCSAPNormPhase"] if "PDCSAPNormPhase" in plotdata[filters].columns else plotdata[filters]["PDCSAPNormPhasePeriod"], + plotdata[filters]["Peak"] if "Peak" in plotdata[filters].columns else plotdata[filters]["PeakPeriod"], + label=labels, color=colors) else: return axFlarePeaks.set_xlim(0, 2) @@ -313,8 +314,8 @@ for starName in starDB.getAllStars(): else: color = "gray" - PDCSAPdataList2dhistPhase.append(pdcsapbinningDataSpotModDiffPeriod[:]["PDCSAPNormPhase"]) - PDCSAPdataList2dhistPeak.append(pdcsapbinningDataSpotModDiffPeriod[:]["Peak"]) + PDCSAPdataList2dhistPhase.append(pdcsapbinningDataSpotModDiffPeriod[:]["PDCSAPNormPhasePeriod"]) + PDCSAPdataList2dhistPeak.append(pdcsapbinningDataSpotModDiffPeriod[:]["PeakPeriod"]) xData, yData, PDCSAPdataList = setupxyDataAndDataList(PDCSAPdataList2dhistPhase, PDCSAPdataList2dhistPeak, PDCSAPdataList) @@ -525,58 +526,59 @@ for comboLength in range(1, len(spType) + 1): print(row["StarName"], "has over 100 peak") csvFile.close() - pdcsapbinningData = pd.DataFrame(pdcsapbinningData) - PDCSAPdataList = [] - PDCSAPlabelList = [] - PDCSAPcolorList = [] - PDCSAPdataList2dhistPhase = [] - PDCSAPdataList2dhistPeak = [] - PDCSAPlabelList2dhist = [] - PDCSAPcolorList2dhist = [] - plotFilters = [] - if("M" in combo): - Mfilter = pdcsapbinningData["SpType"] == "M" - PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Mfilter]["PDCSAPNormPhase"]) - PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Mfilter]["Peak"]) - PDCSAPdataList.append(pdcsapbinningData[Mfilter]["PDCSAPNormPhase"]) - PDCSAPlabelList.append("M Stars") - PDCSAPcolorList.append("red") - plotFilters.append(Mfilter) - if("K" in combo): - Kfilter = pdcsapbinningData["SpType"] == "K" - PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Kfilter]["PDCSAPNormPhase"]) - PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Kfilter]["Peak"]) - PDCSAPdataList.append(pdcsapbinningData[Kfilter]["PDCSAPNormPhase"]) - PDCSAPlabelList.append("K Stars") - PDCSAPcolorList.append("orange") - plotFilters.append(Kfilter) - if("G" in combo): - Gfilter = pdcsapbinningData["SpType"] == "G" - PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Gfilter]["PDCSAPNormPhase"]) - PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Gfilter]["Peak"]) - PDCSAPdataList.append(pdcsapbinningData[Gfilter]["PDCSAPNormPhase"]) - PDCSAPlabelList.append("G Stars") - PDCSAPcolorList.append("yellow") - plotFilters.append(Gfilter) - if("F" in combo): - Ffilter = pdcsapbinningData["SpType"] == "F" - PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Ffilter]["PDCSAPNormPhase"]) - PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Ffilter]["Peak"]) - PDCSAPdataList.append(pdcsapbinningData[Ffilter]["PDCSAPNormPhase"]) - PDCSAPlabelList.append("F Stars") - PDCSAPcolorList.append("greenyellow") - plotFilters.append(Ffilter) + if(len(pdcsapbinningData) > 0): + pdcsapbinningData = pd.DataFrame(pdcsapbinningData) + PDCSAPdataList = [] + PDCSAPlabelList = [] + PDCSAPcolorList = [] + PDCSAPdataList2dhistPhase = [] + PDCSAPdataList2dhistPeak = [] + PDCSAPlabelList2dhist = [] + PDCSAPcolorList2dhist = [] + plotFilters = [] + if("M" in combo): + Mfilter = pdcsapbinningData["SpType"] == "M" + PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Mfilter]["PDCSAPNormPhase"]) + PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Mfilter]["Peak"]) + PDCSAPdataList.append(pdcsapbinningData[Mfilter]["PDCSAPNormPhase"]) + PDCSAPlabelList.append("M Stars") + PDCSAPcolorList.append("red") + plotFilters.append(Mfilter) + if("K" in combo): + Kfilter = pdcsapbinningData["SpType"] == "K" + PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Kfilter]["PDCSAPNormPhase"]) + PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Kfilter]["Peak"]) + PDCSAPdataList.append(pdcsapbinningData[Kfilter]["PDCSAPNormPhase"]) + PDCSAPlabelList.append("K Stars") + PDCSAPcolorList.append("orange") + plotFilters.append(Kfilter) + if("G" in combo): + Gfilter = pdcsapbinningData["SpType"] == "G" + PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Gfilter]["PDCSAPNormPhase"]) + PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Gfilter]["Peak"]) + PDCSAPdataList.append(pdcsapbinningData[Gfilter]["PDCSAPNormPhase"]) + PDCSAPlabelList.append("G Stars") + PDCSAPcolorList.append("yellow") + plotFilters.append(Gfilter) + if("F" in combo): + Ffilter = pdcsapbinningData["SpType"] == "F" + PDCSAPdataList2dhistPhase.append(pdcsapbinningData[Ffilter]["PDCSAPNormPhase"]) + PDCSAPdataList2dhistPeak.append(pdcsapbinningData[Ffilter]["Peak"]) + PDCSAPdataList.append(pdcsapbinningData[Ffilter]["PDCSAPNormPhase"]) + PDCSAPlabelList.append("F Stars") + PDCSAPcolorList.append("greenyellow") + plotFilters.append(Ffilter) - xData, yData, _ = setupxyDataAndDataList(PDCSAPdataList2dhistPhase, PDCSAPdataList2dhistPeak) - plotdata = pdcsapbinningData - filters = plotFilters - generatePlots(PDCSAPdataList, PDCSAPlabelList, PDCSAPcolorList, f"Flare count per phase of {', '.join(combo)} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(combo)}-Flarecount-@bins_Bins.png", - xData, yData, f"Flare peak per phase histogram of {', '.join(combo)} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(combo)}-Flarepeaks-@bins_Bins_maxY-@maxY.png", - plotdata, filters, PDCSAPlabelList, PDCSAPcolorList, f"Flare peaks per phase of {', '.join(combo)} type stars ({numStars} stars)", f"{locFolder}/{''.join(combo)}-Flarepeaks_maxY-@maxY.png") + xData, yData, _ = setupxyDataAndDataList(PDCSAPdataList2dhistPhase, PDCSAPdataList2dhistPeak) + plotdata = pdcsapbinningData + filters = plotFilters + generatePlots(PDCSAPdataList, PDCSAPlabelList, PDCSAPcolorList, f"Flare count per phase of {', '.join(combo)} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(combo)}-Flarecount-@bins_Bins.png", + xData, yData, f"Flare peak per phase histogram of {', '.join(combo)} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(combo)}-Flarepeaks-@bins_Bins_maxY-@maxY.png", + plotdata, filters, PDCSAPlabelList, PDCSAPcolorList, f"Flare peaks per phase of {', '.join(combo)} type stars ({numStars} stars)", f"{locFolder}/{''.join(combo)}-Flarepeaks_maxY-@maxY.png") if(comboLength == 1): mainSpType = combo[0] - spTypes = [f"{mainSpType}0", f"{mainSpType}1", f"{mainSpType}2", f"{mainSpType}3", f"{mainSpType}4", f"{mainSpType}5", f"{mainSpType}6", f"{mainSpType}7", f"{mainSpType}8" f"{mainSpType}9"] + spTypes = [f"{mainSpType}0", f"{mainSpType}1", f"{mainSpType}2", f"{mainSpType}3", f"{mainSpType}4", f"{mainSpType}5", f"{mainSpType}6", f"{mainSpType}7", f"{mainSpType}8", f"{mainSpType}9"] match mainSpType: case "M": color = "red" @@ -616,30 +618,31 @@ for comboLength in range(1, len(spType) + 1): if(peak["FlarePeak"] > 100): print(row["StarName"], "has over 100 peak") csvFile.close() - pdcsapbinningData = pd.DataFrame(pdcsapbinningData) - PDCSAPdataList = [] - PDCSAPlabelList = [] - PDCSAPcolorList = [] - PDCSAPdataList2dhistPhase = [] - PDCSAPdataList2dhistPeak = [] - PDCSAPlabelList2dhist = [] - PDCSAPcolorList2dhist = [] - try: - SpTypefilter = pdcsapbinningData["SpType"] == spTyp - except: - shutil.rmtree(locFolder) - continue - PDCSAPdataList2dhistPhase.append(pdcsapbinningData[SpTypefilter]["PDCSAPNormPhase"]) - PDCSAPdataList2dhistPeak.append(pdcsapbinningData[SpTypefilter]["Peak"]) - PDCSAPlabelList.append(f"{spTyp} Stars") - PDCSAPcolorList.append(color) - xData, yData, PDCSAPdataList = setupxyDataAndDataList(PDCSAPdataList2dhistPhase, PDCSAPdataList2dhistPeak, PDCSAPdataList, SpTypefilter) + if(len(pdcsapbinningData) > 0): + pdcsapbinningData = pd.DataFrame(pdcsapbinningData) + PDCSAPdataList = [] + PDCSAPlabelList = [] + PDCSAPcolorList = [] + PDCSAPdataList2dhistPhase = [] + PDCSAPdataList2dhistPeak = [] + PDCSAPlabelList2dhist = [] + PDCSAPcolorList2dhist = [] + try: + SpTypefilter = pdcsapbinningData["SpType"] == spTyp + except: + shutil.rmtree(locFolder) + continue + PDCSAPdataList2dhistPhase.append(pdcsapbinningData[SpTypefilter]["PDCSAPNormPhase"]) + PDCSAPdataList2dhistPeak.append(pdcsapbinningData[SpTypefilter]["Peak"]) + PDCSAPlabelList.append(f"{spTyp} Stars") + PDCSAPcolorList.append(color) + xData, yData, PDCSAPdataList = setupxyDataAndDataList(PDCSAPdataList2dhistPhase, PDCSAPdataList2dhistPeak, PDCSAPdataList, SpTypefilter) - plotdata = pdcsapbinningData - filters = SpTypefilter - generatePlots(PDCSAPdataList, PDCSAPlabelList, PDCSAPcolorList, f"Flare count in phase of {spTyp} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(spTyp)}-Flarecount-@bins_Bins.png", - xData, yData, f"Flare peak per phase histogram of {spTyp} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(spTyp)}-Flarepeaks-@bins_Bins_maxY-@maxY.png", - plotdata, filters, PDCSAPlabelList[0], PDCSAPcolorList[0], f"Flare peaks per phase of {spTyp} type stars ({numStars} stars)", f"{locFolder}/{''.join(spTyp)}-Flarepeaks_maxY-@maxY.png") + plotdata = pdcsapbinningData + filters = SpTypefilter + generatePlots(PDCSAPdataList, PDCSAPlabelList, PDCSAPcolorList, f"Flare count in phase of {spTyp} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(spTyp)}-Flarecount-@bins_Bins.png", + xData, yData, f"Flare peak per phase histogram of {spTyp} type stars with @bins bins ({numStars} stars)", f"{locFolder}/{''.join(spTyp)}-Flarepeaks-@bins_Bins_maxY-@maxY.png", + plotdata, filters, PDCSAPlabelList[0], PDCSAPcolorList[0], f"Flare peaks per phase of {spTyp} type stars ({numStars} stars)", f"{locFolder}/{''.join(spTyp)}-Flarepeaks_maxY-@maxY.png") # per Period for periodCut in periodsCutList: