griffingoodwin04 commited on
Commit
b974b33
·
1 Parent(s): 4d5e981

Update license year, refine README content, and enhance requirements for better clarity and organization

Browse files
.gitignore CHANGED
@@ -131,7 +131,7 @@ cython_debug/
131
  # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
132
  # and can be added to the global gitignore or merged into this file. For a more nuclear
133
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
134
- #.idea/
135
 
136
  # Ruff stuff:
137
  .ruff_cache/
@@ -139,7 +139,7 @@ cython_debug/
139
  # PyPI configuration file
140
  .pypirc
141
 
142
- .vscode/sftp.json
143
 
144
  .DS_Store
145
 
@@ -151,12 +151,7 @@ wandb/
151
 
152
  *.csv
153
 
154
- notebooks_tests/
155
-
156
- /.idea/
157
- /.vscode/
158
-
159
  *.code-workspace
160
- .idea
161
- .xml
162
- .iml
 
131
  # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
132
  # and can be added to the global gitignore or merged into this file. For a more nuclear
133
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
134
+ .idea/
135
 
136
  # Ruff stuff:
137
  .ruff_cache/
 
139
  # PyPI configuration file
140
  .pypirc
141
 
142
+ .vscode/
143
 
144
  .DS_Store
145
 
 
151
 
152
  *.csv
153
 
 
 
 
 
 
154
  *.code-workspace
155
+
156
+ .claude/
157
+ misc/
.idea/FOXES.iml DELETED
@@ -1,18 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="PYTHON_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$">
5
- <sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
6
- <excludePattern pattern="*/T9/*" />
7
- </content>
8
- <content url="file:///Volumes/T9">
9
- <excludeFolder url="file:///Volumes/T9/FOXES_Data" />
10
- </content>
11
- <orderEntry type="jdk" jdkName="foxes" jdkType="Python SDK" />
12
- <orderEntry type="sourceFolder" forTests="false" />
13
- </component>
14
- <component name="PyDocumentationSettings">
15
- <option name="format" value="NUMPY" />
16
- <option name="myDocStringFormat" value="NumPy" />
17
- </component>
18
- </module>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.idea/inspectionProfiles/profiles_settings.xml DELETED
@@ -1,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <settings>
3
- <option name="USE_PROJECT_PROFILE" value="false" />
4
- <version value="1.0" />
5
- </settings>
6
- </component>
 
 
 
 
 
 
 
.idea/misc.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Black">
4
- <option name="sdkName" value="Python 3.11 (FOXES)" />
5
- </component>
6
- <component name="ProjectRootManager" version="2" project-jdk-name="foxes" project-jdk-type="Python SDK" />
7
- </project>
 
 
 
 
 
 
 
 
.idea/shelf/Uncommitted_changes_before_Checkout_at_7_16_25,_8_08_AM_[Changes]/shelved.patch DELETED
@@ -1,23 +0,0 @@
1
- Index: flaring/vision_transformers/vision_transformer.py
2
- IDEA additional info:
3
- Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
4
- <+>\nimport torch\nimport torch.nn as nn\nimport pytorch_lightning as pl\nfrom timm import create_model\n\nclass VisionTransformerFlaringModel(pl.LightningModule):\n def __init__(self, d_input=6, d_output=1, eve_norm=(0, 1), lr=1e-4, model_name='vit_base_patch16_224', pretrained=True):\n super().__init__()\n self.save_hyperparameters()\n self.eve_norm = eve_norm\n self.lr = lr\n self.vit = create_model(\n model_name,\n pretrained=pretrained,\n in_chans=d_input,\n num_classes=0,\n global_pool='avg'\n )\n self.regression_head = nn.Linear(self.vit.embed_dim, d_output)\n self.loss_func = nn.HuberLoss()\n\n def forward(self, x):\n x = x.permute(0, 3, 1, 2)\n features = self.vit(x)\n output = self.regression_head(features)\n return output.squeeze(-1)\n\n def training_step(self, batch, batch_idx):\n (aia_img, _), sxr_target = batch\n sxr_pred = self(aia_img)\n loss = self.loss_func(sxr_pred, sxr_target)\n self.log('train_loss', loss, prog_bar=True)\n return loss\n\n def validation_step(self, batch, batch_idx):\n (aia_img, _), sxr_target = batch\n sxr_pred = self(aia_img)\n loss = self.loss_func(sxr_pred, sxr_target)\n self.log('valid_loss', loss, prog_bar=True)\n return loss\n\n def test_step(self, batch, batch_idx):\n (aia_img, _), sxr_target = batch\n sxr_pred = self(aia_img)\n loss = self.loss_func(sxr_pred, sxr_target)\n self.log('test_loss', loss, prog_bar=True)\n return loss\n\n def configure_optimizers(self):\n optimizer = torch.optim.AdamW(self.parameters(), lr=self.lr, weight_decay=0.01)\n scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=10)\n return {\n 'optimizer': optimizer,\n 'lr_scheduler': {\n 'scheduler': scheduler,\n 'monitor': 'valid_loss',\n 'interval': 'epoch',\n 'frequency': 1\n }\n }\n\n def predict_step(self, batch, batch_idx, dataloader_idx=0):\n (aia_img, _), _ = batch\n sxr_pred = self(aia_img)\n sxr_pred = sxr_pred * self.eve_norm[1] + self.eve_norm[0]\n sxr_pred = 10 ** sxr_pred - 1e-8\n return sxr_pred\n
5
- ===================================================================
6
- diff --git a/flaring/vision_transformers/vision_transformer.py b/flaring/vision_transformers/vision_transformer.py
7
- --- a/flaring/vision_transformers/vision_transformer.py (revision bb90fb79a516910ac93442850698317720adf6d5)
8
- +++ b/flaring/vision_transformers/vision_transformer.py (date 1752678502848)
9
- @@ -5,7 +5,7 @@
10
- from timm import create_model
11
-
12
- class VisionTransformerFlaringModel(pl.LightningModule):
13
- - def __init__(self, d_input=6, d_output=1, eve_norm=(0, 1), lr=1e-4, model_name='vit_base_patch16_224', pretrained=True):
14
- + def __init__(self, d_input=6, d_output=1, eve_norm=(0, 1), lr=1e-4, model_name='vit_small_patch16_224', pretrained=True):
15
- super().__init__()
16
- self.save_hyperparameters()
17
- self.eve_norm = eve_norm
18
- @@ -66,3 +66,5 @@
19
- sxr_pred = sxr_pred * self.eve_norm[1] + self.eve_norm[0]
20
- sxr_pred = 10 ** sxr_pred - 1e-8
21
- return sxr_pred
22
- +
23
- +
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.idea/shelf/Uncommitted_changes_before_Checkout_at_7_16_25,_8_08_AM_[Changes]1/shelved.patch DELETED
File without changes
.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>
 
 
 
 
 
 
 
.idea/workspace.xml DELETED
@@ -1,677 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AutoImportSettings">
4
- <option name="autoReloadType" value="SELECTIVE" />
5
- </component>
6
- <component name="ChangeListManager">
7
- <list default="true" id="e883d810-3b4e-470d-b72e-9ed3eee941a0" name="Changes" comment="Enhance plotting themes for poster analysis, refine regression plot scaling, and add data cleanup utilities&#10;&#10;- Updated flare_analysis_poster.py to use white text and spines for improved visibility on dark backgrounds, adjusted legend and grid styling, and improved annotation contrast.&#10;- Refined regression plot scaling in evaluation.py: enforced realistic log-scale bounds, added buffer for axis limits, and improved color mapping for 2D histograms.&#10;- Added cleanup_data.py and cleanup_data_mp.py scripts for identifying and moving extraneous .npy files not present in train/val CSVs, with multiprocessing support.&#10;- Introduced processing_utils.py with functions for flare classification, parallel file processing, and data summarization.&#10;- Adjusted local_config.yaml time range and updated FOXES.iml data folder structure.">
8
- <change afterPath="$PROJECT_DIR$/notebook_tests/PlottingResults.ipynb" afterDir="false" />
9
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
10
- <change beforePath="$PROJECT_DIR$/forecasting/inference/evaluation.py" beforeDir="false" afterPath="$PROJECT_DIR$/forecasting/inference/evaluation.py" afterDir="false" />
11
- <change beforePath="$PROJECT_DIR$/notebook_tests/Additional_Results_Analysis.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/notebook_tests/Additional_Results_Analysis.ipynb" afterDir="false" />
12
- <change beforePath="$PROJECT_DIR$/notebook_tests/Additional_Results_Investigation_Download.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/notebook_tests/Additional_Results_Investigation_Download.ipynb" afterDir="false" />
13
- <change beforePath="$PROJECT_DIR$/notebook_tests/processing_utils.py" beforeDir="false" afterPath="$PROJECT_DIR$/notebook_tests/processing_utils.py" afterDir="false" />
14
- <change beforePath="$PROJECT_DIR$/notebook_tests/timelineplot.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/notebook_tests/timelineplot.ipynb" afterDir="false" />
15
- <change beforePath="$PROJECT_DIR$/notebook_tests/weirdsxr.ipynb" beforeDir="false" afterPath="$PROJECT_DIR$/notebook_tests/weirdsxr.ipynb" afterDir="false" />
16
- </list>
17
- <option name="SHOW_DIALOG" value="false" />
18
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
19
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
20
- <option name="LAST_RESOLUTION" value="IGNORE" />
21
- </component>
22
- <component name="CopilotPersistence">
23
- <persistenceIdMap>
24
- <entry key="_/Users/griffingoodwin/Documents/gitrepos/FOXES" value="38WeoPd73qtvhPoxz6TM6eycX2x" />
25
- <entry key="_/Volumes/T9" value="38a78qcQSOmwaRego2V2zivIuLc" />
26
- <entry key="_/Volumes/T9/FOXES_Data" value="300pTKGqQDgkIrymxlGIrm6ZrO3" />
27
- </persistenceIdMap>
28
- </component>
29
- <component name="EmbeddingIndexingInfo">
30
- <option name="cachedIndexableFilesCount" value="109" />
31
- <option name="fileBasedEmbeddingIndicesEnabled" value="true" />
32
- </component>
33
- <component name="FileTemplateManagerImpl">
34
- <option name="RECENT_TEMPLATES">
35
- <list>
36
- <option value="Python Script" />
37
- <option value="Jupyter Notebook" />
38
- </list>
39
- </option>
40
- </component>
41
- <component name="Git.Settings">
42
- <option name="RECENT_BRANCH_BY_REPOSITORY">
43
- <map>
44
- <entry key="$PROJECT_DIR$" value="flaring" />
45
- </map>
46
- </option>
47
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
48
- </component>
49
- <component name="GitHubPullRequestSearchHistory">{
50
- &quot;lastFilter&quot;: {}
51
- }</component>
52
- <component name="GithubPullRequestsUISettings">{
53
- &quot;selectedUrlAndAccountId&quot;: {
54
- &quot;url&quot;: &quot;git@github.com:griffin-goodwin/FOXES.git&quot;,
55
- &quot;accountId&quot;: &quot;dd5815ef-d79a-4f68-9de1-d483f99a50dd&quot;
56
- }
57
- }</component>
58
- <component name="McpProjectServerCommands">
59
- <commands />
60
- <urls />
61
- </component>
62
- <component name="NamedScopeManager">
63
- <scope name="hide ._" pattern="!*.___*" />
64
- </component>
65
- <component name="ProjectColorInfo">{
66
- &quot;associatedIndex&quot;: 8
67
- }</component>
68
- <component name="ProjectId" id="300pTKGqQDgkIrymxlGIrm6ZrO3" />
69
- <component name="ProjectViewState">
70
- <option name="hideEmptyMiddlePackages" value="true" />
71
- <option name="showLibraryContents" value="true" />
72
- <option name="sortKey" value="BY_TIME_DESCENDING" />
73
- </component>
74
- <component name="PropertiesComponent">{
75
- &quot;keyToString&quot;: {
76
- &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
77
- &quot;RunOnceActivity.MCP Project settings loaded&quot;: &quot;true&quot;,
78
- &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
79
- &quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
80
- &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
81
- &quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
82
- &quot;WebServerToolWindowPanel.toolwindow.highlight.mappings&quot;: &quot;true&quot;,
83
- &quot;WebServerToolWindowPanel.toolwindow.highlight.symlinks&quot;: &quot;true&quot;,
84
- &quot;WebServerToolWindowPanel.toolwindow.show.date&quot;: &quot;false&quot;,
85
- &quot;WebServerToolWindowPanel.toolwindow.show.permissions&quot;: &quot;false&quot;,
86
- &quot;WebServerToolWindowPanel.toolwindow.show.size&quot;: &quot;false&quot;,
87
- &quot;ai.playground.ignore.import.keys.banner.in.settings&quot;: &quot;true&quot;,
88
- &quot;com.google.cloudcode.ide_session_index&quot;: &quot;20251029_0000&quot;,
89
- &quot;com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1&quot;: &quot;true&quot;,
90
- &quot;database.data.extractors.current.export.id&quot;: &quot;Comma-separated (CSV)_id&quot;,
91
- &quot;git-widget-placeholder&quot;: &quot;main&quot;,
92
- &quot;junie.onboarding.icon.badge.shown&quot;: &quot;true&quot;,
93
- &quot;last_opened_file_path&quot;: &quot;/Users/griffingoodwin/Documents/gitrepos/FOXES&quot;,
94
- &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
95
- &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
96
- &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
97
- &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
98
- &quot;settings.editor.selected.configurable&quot;: &quot;jupyter.general.settings&quot;,
99
- &quot;to.speed.mode.migration.done&quot;: &quot;true&quot;,
100
- &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
101
- }
102
- }</component>
103
- <component name="RecapSpentCounter">
104
- <option name="endsOfQuotaMs" value="1768932019187" />
105
- <option name="spentUsd" value="0.032168448" />
106
- </component>
107
- <component name="RecapUselessUpdatesCounter">
108
- <option name="suspendCountdown" value="0" />
109
- </component>
110
- <component name="RecentsManager">
111
- <key name="MoveFile.RECENT_KEYS">
112
- <recent name="$PROJECT_DIR$/flaring/forecasting/training" />
113
- <recent name="$PROJECT_DIR$/flaring/forecasting/models" />
114
- <recent name="$PROJECT_DIR$/flaring/forecasting/data_loaders" />
115
- <recent name="$PROJECT_DIR$/flaring/Forecasting/inference" />
116
- <recent name="$PROJECT_DIR$" />
117
- </key>
118
- </component>
119
- <component name="SharedIndexes">
120
- <attachedChunks>
121
- <set>
122
- <option value="bundled-js-predefined-d6986cc7102b-9b0f141eb926-JavaScript-PY-253.29346.142" />
123
- <option value="bundled-python-sdk-f2b7a9f6281b-6e1f45a539f7-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-253.29346.142" />
124
- </set>
125
- </attachedChunks>
126
- </component>
127
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
128
- <component name="SvnConfiguration">
129
- <configuration>$USER_HOME$/.subversion</configuration>
130
- <option name="sshConnectionType" value="PRIVATE_KEY" />
131
- <option name="sshUserName" value="griffin-goodwin" />
132
- <option name="sshPrivateKeyPath" value="$USER_HOME$/.ssh" />
133
- </component>
134
- <component name="TaskManager">
135
- <task active="true" id="Default" summary="Default task">
136
- <changelist id="e883d810-3b4e-470d-b72e-9ed3eee941a0" name="Changes" comment="fixed wandb name scheme" />
137
- <created>1752774351420</created>
138
- <option name="number" value="Default" />
139
- <option name="presentableId" value="Default" />
140
- <updated>1752774351420</updated>
141
- <workItem from="1752774352707" duration="28648000" />
142
- <workItem from="1752962518515" duration="2550000" />
143
- <workItem from="1753306014729" duration="13973000" />
144
- <workItem from="1753374480667" duration="45913000" />
145
- <workItem from="1753545524483" duration="2816000" />
146
- <workItem from="1753630961668" duration="9897000" />
147
- <workItem from="1753929248247" duration="23397000" />
148
- <workItem from="1754000190506" duration="10165000" />
149
- <workItem from="1754146439867" duration="7692000" />
150
- <workItem from="1754282226274" duration="5949000" />
151
- <workItem from="1754443347602" duration="1827000" />
152
- <workItem from="1754482805314" duration="230000" />
153
- <workItem from="1754483043965" duration="195000" />
154
- <workItem from="1754483254382" duration="55570000" />
155
- <workItem from="1754661837523" duration="32924000" />
156
- <workItem from="1754949280985" duration="1853000" />
157
- <workItem from="1755012015116" duration="134000" />
158
- <workItem from="1755012234233" duration="16222000" />
159
- <workItem from="1755110862054" duration="4930000" />
160
- <workItem from="1755182186851" duration="7000" />
161
- <workItem from="1755182816790" duration="16256000" />
162
- <workItem from="1755274543631" duration="1138000" />
163
- <workItem from="1755289237970" duration="2241000" />
164
- <workItem from="1755526973852" duration="8608000" />
165
- <workItem from="1755801805292" duration="58749000" />
166
- <workItem from="1756171392559" duration="40222000" />
167
- <workItem from="1756308588067" duration="10459000" />
168
- <workItem from="1756386184391" duration="64689000" />
169
- <workItem from="1756818485332" duration="17000" />
170
- <workItem from="1756821188374" duration="7721000" />
171
- <workItem from="1765907612776" duration="685000" />
172
- <workItem from="1765908307908" duration="552000" />
173
- <workItem from="1765909073111" duration="961000" />
174
- <workItem from="1765910046969" duration="346000" />
175
- <workItem from="1765910410274" duration="468000" />
176
- <workItem from="1765915810103" duration="1093000" />
177
- <workItem from="1765916926305" duration="367000" />
178
- <workItem from="1765917308304" duration="283000" />
179
- <workItem from="1765919768282" duration="248000" />
180
- <workItem from="1765920350623" duration="2783000" />
181
- <workItem from="1765923830409" duration="95000" />
182
- <workItem from="1765923932850" duration="4525000" />
183
- <workItem from="1766071632234" duration="557000" />
184
- <workItem from="1766072202434" duration="3172000" />
185
- <workItem from="1767642746610" duration="7711000" />
186
- <workItem from="1768318275660" duration="7100000" />
187
- <workItem from="1768511581940" duration="1375000" />
188
- <workItem from="1768590208522" duration="10356000" />
189
- <workItem from="1768855583083" duration="7118000" />
190
- <workItem from="1768919929930" duration="31494000" />
191
- <workItem from="1769025671291" duration="5485000" />
192
- <workItem from="1769032850655" duration="18248000" />
193
- </task>
194
- <task id="LOCAL-00007" summary="Implement Vision Transformer model (custom) and update configuration for model selection + changed data loader outputs (it was partially redundant)">
195
- <option name="closed" value="true" />
196
- <created>1753201034025</created>
197
- <option name="number" value="00007" />
198
- <option name="presentableId" value="LOCAL-00007" />
199
- <option name="project" value="LOCAL" />
200
- <updated>1753201034025</updated>
201
- </task>
202
- <task id="LOCAL-00008" summary="Working on attention callbacks">
203
- <option name="closed" value="true" />
204
- <created>1753203631078</created>
205
- <option name="number" value="00008" />
206
- <option name="presentableId" value="LOCAL-00008" />
207
- <option name="project" value="LOCAL" />
208
- <updated>1753203631078</updated>
209
- </task>
210
- <task id="LOCAL-00009" summary="Refactor attention map callback to log attention plots and add multi-head visualization">
211
- <option name="closed" value="true" />
212
- <created>1753205974581</created>
213
- <option name="number" value="00009" />
214
- <option name="presentableId" value="LOCAL-00009" />
215
- <option name="project" value="LOCAL" />
216
- <updated>1753205974581</updated>
217
- </task>
218
- <task id="LOCAL-00010" summary="refactor model configuration and callbacks; update data paths and loss functions">
219
- <option name="closed" value="true" />
220
- <created>1753216904168</created>
221
- <option name="number" value="00010" />
222
- <option name="presentableId" value="LOCAL-00010" />
223
- <option name="project" value="LOCAL" />
224
- <updated>1753216904168</updated>
225
- </task>
226
- <task id="LOCAL-00011" summary="refactor attention visualization; update callback to log attention maps and adjust model configuration">
227
- <option name="closed" value="true" />
228
- <created>1753221151466</created>
229
- <option name="number" value="00011" />
230
- <option name="presentableId" value="LOCAL-00011" />
231
- <option name="project" value="LOCAL" />
232
- <updated>1753221151466</updated>
233
- </task>
234
- <task id="LOCAL-00012" summary="refactor model configuration; update vit parameters and checkpoint callback monitor">
235
- <option name="closed" value="true" />
236
- <created>1753223740556</created>
237
- <option name="number" value="00012" />
238
- <option name="presentableId" value="LOCAL-00012" />
239
- <option name="project" value="LOCAL" />
240
- <updated>1753223740556</updated>
241
- </task>
242
- <task id="LOCAL-00013" summary="refactor model configuration and loss functions; update batch size, patch size, and logging metrics">
243
- <option name="closed" value="true" />
244
- <created>1753280393483</created>
245
- <option name="number" value="00013" />
246
- <option name="presentableId" value="LOCAL-00013" />
247
- <option name="project" value="LOCAL" />
248
- <updated>1753280393483</updated>
249
- </task>
250
- <task id="LOCAL-00014" summary="refactor file structure; rename and reorganize model, callback, and configuration files; added configuration file for inference">
251
- <option name="closed" value="true" />
252
- <created>1753285792536</created>
253
- <option name="number" value="00014" />
254
- <option name="presentableId" value="LOCAL-00014" />
255
- <option name="project" value="LOCAL" />
256
- <updated>1753285792536</updated>
257
- </task>
258
- <task id="LOCAL-00015" summary="added plotly graphs for inference">
259
- <option name="closed" value="true" />
260
- <created>1753290195559</created>
261
- <option name="number" value="00015" />
262
- <option name="presentableId" value="LOCAL-00015" />
263
- <option name="project" value="LOCAL" />
264
- <updated>1753290195559</updated>
265
- </task>
266
- <task id="LOCAL-00016" summary="add FastViT model for solar flare prediction; update configuration files and optimize inference batch processing">
267
- <option name="closed" value="true" />
268
- <created>1753303152301</created>
269
- <option name="number" value="00016" />
270
- <option name="presentableId" value="LOCAL-00016" />
271
- <option name="project" value="LOCAL" />
272
- <updated>1753303152301</updated>
273
- </task>
274
- <task id="LOCAL-00017" summary="refactor model configuration and training scripts; update weight paths, batch size, and learning rate scheduler; add plotting functionality for attention maps">
275
- <option name="closed" value="true" />
276
- <created>1753380808931</created>
277
- <option name="number" value="00017" />
278
- <option name="presentableId" value="LOCAL-00017" />
279
- <option name="project" value="LOCAL" />
280
- <updated>1753380808931</updated>
281
- </task>
282
- <task id="LOCAL-00018" summary="refactor training and inference scripts; update model configuration, batch size, and weight paths; enhance data loading with prefetching; add support for loading checkpoints, added new weight to loss to mitigate few m / x class points">
283
- <option name="closed" value="true" />
284
- <created>1753454404812</created>
285
- <option name="number" value="00018" />
286
- <option name="presentableId" value="LOCAL-00018" />
287
- <option name="project" value="LOCAL" />
288
- <updated>1753454404812</updated>
289
- </task>
290
- <task id="LOCAL-00019" summary="update plotting script to change output video name and adjust timestamp generation interval;">
291
- <option name="closed" value="true" />
292
- <created>1753469024793</created>
293
- <option name="number" value="00019" />
294
- <option name="presentableId" value="LOCAL-00019" />
295
- <option name="project" value="LOCAL" />
296
- <updated>1753469024793</updated>
297
- </task>
298
- <task id="LOCAL-00020" summary="remove unused resizing and normalization code from SDOAIA_dataloader">
299
- <option name="closed" value="true" />
300
- <created>1753570672548</created>
301
- <option name="number" value="00020" />
302
- <option name="presentableId" value="LOCAL-00020" />
303
- <option name="project" value="LOCAL" />
304
- <updated>1753570672548</updated>
305
- </task>
306
- <task id="LOCAL-00021" summary="add visualization notebook and refactor model configuration; update batch size, patch size, and dropout rate; implement dynamic loss for SXR regression">
307
- <option name="closed" value="true" />
308
- <created>1753730360460</created>
309
- <option name="number" value="00021" />
310
- <option name="presentableId" value="LOCAL-00021" />
311
- <option name="project" value="LOCAL" />
312
- <updated>1753730360460</updated>
313
- </task>
314
- <task id="LOCAL-00022" summary="update model configuration and training scripts; adjust learning rate, epochs, and data paths; refactor trainer initialization and logging">
315
- <option name="closed" value="true" />
316
- <created>1753821485670</created>
317
- <option name="number" value="00022" />
318
- <option name="presentableId" value="LOCAL-00022" />
319
- <option name="project" value="LOCAL" />
320
- <updated>1753821485670</updated>
321
- </task>
322
- <task id="LOCAL-00023" summary="update model configuration and training scripts; change selected model to 'ViT Custom', increase epochs to 250, and adjust output paths; refactor model loading in inference to support hybrid models and attention weight saving">
323
- <option name="closed" value="true" />
324
- <created>1753883159604</created>
325
- <option name="number" value="00023" />
326
- <option name="presentableId" value="LOCAL-00023" />
327
- <option name="project" value="LOCAL" />
328
- <updated>1753883159604</updated>
329
- </task>
330
- <task id="LOCAL-00024" summary="added evaluation script">
331
- <option name="closed" value="true" />
332
- <created>1753901835422</created>
333
- <option name="number" value="00024" />
334
- <option name="presentableId" value="LOCAL-00024" />
335
- <option name="project" value="LOCAL" />
336
- <updated>1753901835422</updated>
337
- </task>
338
- <task id="LOCAL-00025" summary="update model configuration and evaluation scripts; adjust checkpoint paths, output file names, and weight paths; enhance evaluation metrics for flare classes and improve visualization aesthetics">
339
- <option name="closed" value="true" />
340
- <created>1754083359321</created>
341
- <option name="number" value="00025" />
342
- <option name="presentableId" value="LOCAL-00025" />
343
- <option name="project" value="LOCAL" />
344
- <updated>1754083359321</updated>
345
- </task>
346
- <task id="LOCAL-00026" summary="updated model and data loaders to take in different wavelengths!">
347
- <option name="closed" value="true" />
348
- <created>1754149724483</created>
349
- <option name="number" value="00026" />
350
- <option name="presentableId" value="LOCAL-00026" />
351
- <option name="project" value="LOCAL" />
352
- <updated>1754149724484</updated>
353
- </task>
354
- <task id="LOCAL-00027" summary="refactor model evaluation and configuration to include sxr norm; update model name to 'ViT',">
355
- <option name="closed" value="true" />
356
- <created>1754154137848</created>
357
- <option name="number" value="00027" />
358
- <option name="presentableId" value="LOCAL-00027" />
359
- <option name="project" value="LOCAL" />
360
- <updated>1754154137848</updated>
361
- </task>
362
- <task id="LOCAL-00028" summary="Changed weights for ViT">
363
- <option name="closed" value="true" />
364
- <created>1754319038616</created>
365
- <option name="number" value="00028" />
366
- <option name="presentableId" value="LOCAL-00028" />
367
- <option name="project" value="LOCAL" />
368
- <updated>1754319038616</updated>
369
- </task>
370
- <task id="LOCAL-00029" summary="Enhance AIA_GOESDataset to support cadence and reference time">
371
- <option name="closed" value="true" />
372
- <created>1754412270354</created>
373
- <option name="number" value="00029" />
374
- <option name="presentableId" value="LOCAL-00029" />
375
- <option name="project" value="LOCAL" />
376
- <updated>1754412270354</updated>
377
- </task>
378
- <task id="LOCAL-00030" summary="Add oversampling functionality to AIA_GOESDataset and update configuration">
379
- <option name="closed" value="true" />
380
- <created>1754417745022</created>
381
- <option name="number" value="00030" />
382
- <option name="presentableId" value="LOCAL-00030" />
383
- <option name="project" value="LOCAL" />
384
- <updated>1754417745022</updated>
385
- </task>
386
- <task id="LOCAL-00031" summary="Update AIA wavelengths and model configuration in config.yaml; adjust oversampling setting in dataloader">
387
- <option name="closed" value="true" />
388
- <created>1754426834672</created>
389
- <option name="number" value="00031" />
390
- <option name="presentableId" value="LOCAL-00031" />
391
- <option name="project" value="LOCAL" />
392
- <updated>1754426834672</updated>
393
- </task>
394
- <task id="LOCAL-00032" summary="added some checks to make sure model training and validation is successful">
395
- <option name="closed" value="true" />
396
- <created>1754431311188</created>
397
- <option name="number" value="00032" />
398
- <option name="presentableId" value="LOCAL-00032" />
399
- <option name="project" value="LOCAL" />
400
- <updated>1754431311188</updated>
401
- </task>
402
- <task id="LOCAL-00033" summary="updated the weighted loss to return proper multiplication values... also reduced weighting slightly">
403
- <option name="closed" value="true" />
404
- <created>1754482944827</created>
405
- <option name="number" value="00033" />
406
- <option name="presentableId" value="LOCAL-00033" />
407
- <option name="project" value="LOCAL" />
408
- <updated>1754482944827</updated>
409
- </task>
410
- <task id="LOCAL-00034" summary="updated the weighted loss">
411
- <option name="closed" value="true" />
412
- <created>1754483729804</created>
413
- <option name="number" value="00034" />
414
- <option name="presentableId" value="LOCAL-00034" />
415
- <option name="project" value="LOCAL" />
416
- <updated>1754483729804</updated>
417
- </task>
418
- <task id="LOCAL-00035" summary="added some additional metrics to analyze the validation loss per class">
419
- <option name="closed" value="true" />
420
- <created>1754487789125</created>
421
- <option name="number" value="00035" />
422
- <option name="presentableId" value="LOCAL-00035" />
423
- <option name="project" value="LOCAL" />
424
- <updated>1754487789125</updated>
425
- </task>
426
- <task id="LOCAL-00036" summary="refactor evaluation and inference code; add support for uncertainty in predictions and implement MC Dropout evaluation">
427
- <option name="closed" value="true" />
428
- <created>1754500617537</created>
429
- <option name="number" value="00036" />
430
- <option name="presentableId" value="LOCAL-00036" />
431
- <option name="project" value="LOCAL" />
432
- <updated>1754500617537</updated>
433
- </task>
434
- <task id="LOCAL-00037" summary="enhance evaluation plots; added flare class axes">
435
- <option name="closed" value="true" />
436
- <created>1754506057840</created>
437
- <option name="number" value="00037" />
438
- <option name="presentableId" value="LOCAL-00037" />
439
- <option name="project" value="LOCAL" />
440
- <updated>1754506057840</updated>
441
- </task>
442
- <task id="LOCAL-00038" summary="refactor evaluation and inference code; add uncertainty handling and update model parameters">
443
- <option name="closed" value="true" />
444
- <created>1754666197648</created>
445
- <option name="number" value="00038" />
446
- <option name="presentableId" value="LOCAL-00038" />
447
- <option name="project" value="LOCAL" />
448
- <updated>1754666197648</updated>
449
- </task>
450
- <task id="LOCAL-00039" summary="small fixes to data loader wavelengths">
451
- <option name="closed" value="true" />
452
- <created>1754677152392</created>
453
- <option name="number" value="00039" />
454
- <option name="presentableId" value="LOCAL-00039" />
455
- <option name="project" value="LOCAL" />
456
- <updated>1754677152392</updated>
457
- </task>
458
- <task id="LOCAL-00040" summary="update configuration for data loading to enable oversampling;">
459
- <option name="closed" value="true" />
460
- <created>1754678561074</created>
461
- <option name="number" value="00040" />
462
- <option name="presentableId" value="LOCAL-00040" />
463
- <option name="project" value="LOCAL" />
464
- <updated>1754678561074</updated>
465
- </task>
466
- <task id="LOCAL-00041" summary="update configuration for data loading to enable oversampling;">
467
- <option name="closed" value="true" />
468
- <created>1754678590926</created>
469
- <option name="number" value="00041" />
470
- <option name="presentableId" value="LOCAL-00041" />
471
- <option name="project" value="LOCAL" />
472
- <updated>1754678590926</updated>
473
- </task>
474
- <task id="LOCAL-00042" summary="update evaluation and inference configuration for 4-wavelengths dataset">
475
- <option name="closed" value="true" />
476
- <created>1754927662181</created>
477
- <option name="number" value="00042" />
478
- <option name="presentableId" value="LOCAL-00042" />
479
- <option name="project" value="LOCAL" />
480
- <updated>1754927662181</updated>
481
- </task>
482
- <task id="LOCAL-00043" summary="update evaluation and inference configuration for stereo dataset; adjust wavelengths and model parameters">
483
- <option name="closed" value="true" />
484
- <created>1755294111029</created>
485
- <option name="number" value="00043" />
486
- <option name="presentableId" value="LOCAL-00043" />
487
- <option name="project" value="LOCAL" />
488
- <updated>1755294111029</updated>
489
- </task>
490
- <task id="LOCAL-00044" summary="implement wavelength dropout in training, just as a test... it's commented out">
491
- <option name="closed" value="true" />
492
- <created>1755802313840</created>
493
- <option name="number" value="00044" />
494
- <option name="presentableId" value="LOCAL-00044" />
495
- <option name="project" value="LOCAL" />
496
- <updated>1755802313840</updated>
497
- </task>
498
- <task id="LOCAL-00045" summary="added support for a patch based model">
499
- <option name="closed" value="true" />
500
- <created>1756677376487</created>
501
- <option name="number" value="00045" />
502
- <option name="presentableId" value="LOCAL-00045" />
503
- <option name="project" value="LOCAL" />
504
- <updated>1756677376487</updated>
505
- </task>
506
- <task id="LOCAL-00046" summary="fixed some comments">
507
- <option name="closed" value="true" />
508
- <created>1756678669786</created>
509
- <option name="number" value="00046" />
510
- <option name="presentableId" value="LOCAL-00046" />
511
- <option name="project" value="LOCAL" />
512
- <updated>1756678669786</updated>
513
- </task>
514
- <task id="LOCAL-00047" summary="weight decay">
515
- <option name="closed" value="true" />
516
- <created>1756678864389</created>
517
- <option name="number" value="00047" />
518
- <option name="presentableId" value="LOCAL-00047" />
519
- <option name="project" value="LOCAL" />
520
- <updated>1756678864389</updated>
521
- </task>
522
- <task id="LOCAL-00048" summary="Add in FOXES project description and instructions markdown doc.">
523
- <option name="closed" value="true" />
524
- <created>1761206727112</created>
525
- <option name="number" value="00048" />
526
- <option name="presentableId" value="LOCAL-00048" />
527
- <option name="project" value="LOCAL" />
528
- <updated>1761206727112</updated>
529
- </task>
530
- <task id="LOCAL-00049" summary="Add in FOXES project description and instructions markdown.">
531
- <option name="closed" value="true" />
532
- <created>1761225368432</created>
533
- <option name="number" value="00049" />
534
- <option name="presentableId" value="LOCAL-00049" />
535
- <option name="project" value="LOCAL" />
536
- <updated>1761225368432</updated>
537
- </task>
538
- <task id="LOCAL-00050" summary="Add in FOXES project description and instructions markdown.">
539
- <option name="closed" value="true" />
540
- <created>1761225942194</created>
541
- <option name="number" value="00050" />
542
- <option name="presentableId" value="LOCAL-00050" />
543
- <option name="project" value="LOCAL" />
544
- <updated>1761225942195</updated>
545
- </task>
546
- <task id="LOCAL-00051" summary="Add in ViT ML Workflow illustration">
547
- <option name="closed" value="true" />
548
- <created>1761526222829</created>
549
- <option name="number" value="00051" />
550
- <option name="presentableId" value="LOCAL-00051" />
551
- <option name="project" value="LOCAL" />
552
- <updated>1761526222829</updated>
553
- </task>
554
- <task id="LOCAL-00052" summary="updates">
555
- <option name="closed" value="true" />
556
- <created>1765909732629</created>
557
- <option name="number" value="00052" />
558
- <option name="presentableId" value="LOCAL-00052" />
559
- <option name="project" value="LOCAL" />
560
- <updated>1765909732630</updated>
561
- </task>
562
- <task id="LOCAL-00053" summary="Implement dynamic theme-based plotting for regression output and tweak default parameters&#10;&#10;- Added theme-based (black/white) formatting for regression plots, impacting text, gridlines, legends, and backgrounds.&#10;- Adjusted layout to handle missing AIA data with specialized SXR-only frames.&#10;- Updated evaluation time ranges and plot intervals for better granularity.&#10;- Changed default regression plot background to black in CLI arguments.">
563
- <option name="closed" value="true" />
564
- <created>1766005071312</created>
565
- <option name="number" value="00053" />
566
- <option name="presentableId" value="LOCAL-00053" />
567
- <option name="project" value="LOCAL" />
568
- <updated>1766005071312</updated>
569
- </task>
570
- <task id="LOCAL-00054" summary="Simplify and restructure README: streamlined project description, updated team details, clarified repository structure, removed redundant sections, and added Docker setup instructions.">
571
- <option name="closed" value="true" />
572
- <created>1766078172890</created>
573
- <option name="number" value="00054" />
574
- <option name="presentableId" value="LOCAL-00054" />
575
- <option name="project" value="LOCAL" />
576
- <updated>1766078172890</updated>
577
- </task>
578
- <task id="LOCAL-00055" summary="Enhance plotting themes for poster analysis, refine regression plot scaling, and add data cleanup utilities&#10;&#10;- Updated flare_analysis_poster.py to use white text and spines for improved visibility on dark backgrounds, adjusted legend and grid styling, and improved annotation contrast.&#10;- Refined regression plot scaling in evaluation.py: enforced realistic log-scale bounds, added buffer for axis limits, and improved color mapping for 2D histograms.&#10;- Added cleanup_data.py and cleanup_data_mp.py scripts for identifying and moving extraneous .npy files not present in train/val CSVs, with multiprocessing support.&#10;- Introduced processing_utils.py with functions for flare classification, parallel file processing, and data summarization.&#10;- Adjusted local_config.yaml time range and updated FOXES.iml data folder structure.">
579
- <option name="closed" value="true" />
580
- <created>1768859793406</created>
581
- <option name="number" value="00055" />
582
- <option name="presentableId" value="LOCAL-00055" />
583
- <option name="project" value="LOCAL" />
584
- <updated>1768859793406</updated>
585
- </task>
586
- <option name="localTasksCounter" value="56" />
587
- <servers />
588
- </component>
589
- <component name="TypeScriptGeneratedFilesManager">
590
- <option name="version" value="3" />
591
- </component>
592
- <component name="Vcs.Log.Tabs.Properties">
593
- <option name="RECENT_FILTERS">
594
- <map>
595
- <entry key="User">
596
- <value>
597
- <list>
598
- <RecentGroup>
599
- <option name="FILTER_VALUES">
600
- <option value="*" />
601
- </option>
602
- </RecentGroup>
603
- </list>
604
- </value>
605
- </entry>
606
- </map>
607
- </option>
608
- <option name="TAB_STATES">
609
- <map>
610
- <entry key="MAIN">
611
- <value>
612
- <State>
613
- <option name="FILTERS">
614
- <map>
615
- <entry key="user">
616
- <value>
617
- <list>
618
- <option value="*" />
619
- </list>
620
- </value>
621
- </entry>
622
- </map>
623
- </option>
624
- </State>
625
- </value>
626
- </entry>
627
- </map>
628
- </option>
629
- </component>
630
- <component name="VcsManagerConfiguration">
631
- <MESSAGE value="Enhance AIA_GOESDataset to support cadence and reference time" />
632
- <MESSAGE value="Add oversampling functionality to AIA_GOESDataset and update configuration" />
633
- <MESSAGE value="Update AIA wavelengths and model configuration in config.yaml; adjust oversampling setting in dataloader" />
634
- <MESSAGE value="added some checks to make sure model training and validation is successful" />
635
- <MESSAGE value="updated the weighted loss to return proper multiplication values... also reduced weighting slightly" />
636
- <MESSAGE value="updated the weighted loss" />
637
- <MESSAGE value="added some additional metrics to analyze the validation loss per class" />
638
- <MESSAGE value="refactor evaluation and inference code; add support for uncertainty in predictions and implement MC Dropout evaluation" />
639
- <MESSAGE value="enhance evaluation plots; added flare class axes" />
640
- <MESSAGE value="refactor evaluation and inference code; add uncertainty handling and update model parameters" />
641
- <MESSAGE value="small fixes to data loader wavelengths" />
642
- <MESSAGE value="update configuration for data loading to enable oversampling;" />
643
- <MESSAGE value="update evaluation and inference configuration for 4-wavelengths dataset" />
644
- <MESSAGE value="update evaluation and inference configuration for stereo dataset; adjust wavelengths and model parameters" />
645
- <MESSAGE value="implement wavelength dropout in training, just as a test... it's commented out" />
646
- <MESSAGE value="added support for a patch based model" />
647
- <MESSAGE value="fixed some comments" />
648
- <MESSAGE value="weight decay" />
649
- <MESSAGE value="Add in FOXES project description and instructions markdown doc." />
650
- <MESSAGE value="Add in FOXES project description and instructions markdown." />
651
- <MESSAGE value="Add in ViT ML Workflow illustration" />
652
- <MESSAGE value="updates" />
653
- <MESSAGE value="Implement dynamic theme-based plotting for regression output and tweak default parameters&#10;&#10;- Added theme-based (black/white) formatting for regression plots, impacting text, gridlines, legends, and backgrounds.&#10;- Adjusted layout to handle missing AIA data with specialized SXR-only frames.&#10;- Updated evaluation time ranges and plot intervals for better granularity.&#10;- Changed default regression plot background to black in CLI arguments." />
654
- <MESSAGE value="Simplify and restructure README: streamlined project description, updated team details, clarified repository structure, removed redundant sections, and added Docker setup instructions." />
655
- <MESSAGE value="Enhance plotting themes for poster analysis, refine regression plot scaling, and add data cleanup utilities&#10;&#10;- Updated flare_analysis_poster.py to use white text and spines for improved visibility on dark backgrounds, adjusted legend and grid styling, and improved annotation contrast.&#10;- Refined regression plot scaling in evaluation.py: enforced realistic log-scale bounds, added buffer for axis limits, and improved color mapping for 2D histograms.&#10;- Added cleanup_data.py and cleanup_data_mp.py scripts for identifying and moving extraneous .npy files not present in train/val CSVs, with multiprocessing support.&#10;- Introduced processing_utils.py with functions for flare classification, parallel file processing, and data summarization.&#10;- Adjusted local_config.yaml time range and updated FOXES.iml data folder structure." />
656
- <option name="LAST_COMMIT_MESSAGE" value="Enhance plotting themes for poster analysis, refine regression plot scaling, and add data cleanup utilities&#10;&#10;- Updated flare_analysis_poster.py to use white text and spines for improved visibility on dark backgrounds, adjusted legend and grid styling, and improved annotation contrast.&#10;- Refined regression plot scaling in evaluation.py: enforced realistic log-scale bounds, added buffer for axis limits, and improved color mapping for 2D histograms.&#10;- Added cleanup_data.py and cleanup_data_mp.py scripts for identifying and moving extraneous .npy files not present in train/val CSVs, with multiprocessing support.&#10;- Introduced processing_utils.py with functions for flare classification, parallel file processing, and data summarization.&#10;- Adjusted local_config.yaml time range and updated FOXES.iml data folder structure." />
657
- </component>
658
- <component name="XDebuggerManager">
659
- <breakpoint-manager>
660
- <breakpoints>
661
- <line-breakpoint enabled="true" suspend="THREAD" type="jupyter-line">
662
- <url>file://$PROJECT_DIR$/flaring/notebook_tests/plotting_test_results.ipynb</url>
663
- <line>1</line>
664
- <option name="timeStamp" value="7" />
665
- </line-breakpoint>
666
- </breakpoints>
667
- </breakpoint-manager>
668
- </component>
669
- <component name="github-copilot-workspace">
670
- <instructionFileLocations>
671
- <option value=".github/instructions" />
672
- </instructionFileLocations>
673
- <promptFileLocations>
674
- <option value=".github/prompts" />
675
- </promptFileLocations>
676
- </component>
677
- </project>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LICENSE CHANGED
@@ -1,6 +1,6 @@
1
  MIT License
2
 
3
- Copyright (c) 2025 Frontier Development Lab
4
 
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
  of this software and associated documentation files (the "Software"), to deal
 
1
  MIT License
2
 
3
+ Copyright (c) 2026 Frontier Development Lab
4
 
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
  of this software and associated documentation files (the "Software"), to deal
README.md CHANGED
@@ -1,13 +1,11 @@
1
  # FOXES: A Framework For Operational X-ray Emission Synthesis
2
 
3
- This repository contains the code and resources for **FOXES**, a project developed as part of the _**Frontier Development Lab**_'s Heliolab Multimodal Flare Prediction Model Project.
4
 
5
  ### Abstract
6
- Understanding solar flares is critical for predicting space weather, as their activity shapes how the Sun influences Earth and its environment. The development of reliable forecasting methodologies of these events depends on robust flare catalogs, but current methods are limited to flare classification using integrated soft X-ray emission that are available only from Earth’s perspective. This reduces accuracy in pinpointing the location and strength of farside flares and their connection to geoeffective events.
7
 
8
- In this work, we introduce a **Vision Transformer (ViT)**-based approach that translates Extreme Ultraviolet (EUV) observations into soft x-ray flux while also setting the groundwork for estimating flare locations in the future. The model achieves accurate flux predictions across flare classes using quantitative metrics. This paves the way for EUV-based flare detection to be extended beyond Earth’s line of sight, which allows for a more comprehensive and complete solar flare catalog.
9
-
10
- **Team**: Griffin Goodwin, Alison March, Jayant Biradar, Christopher Schirninger, Robert Jarolim, Angelos Vourlidas, Lorien Pratt
11
 
12
  ## Repository Structure
13
 
@@ -20,8 +18,10 @@ FOXES
20
  │ ├── inference # Inference and evaluation scripts
21
  │ ├── models # Vision Transformer model definitions
22
  │ └── training # Training scripts and callbacks
 
23
  ├── notebook_tests # Visualization and testing notebooks
24
  ├── Dockerfile # Docker configuration for environment reproducibility
 
25
  └── requirements.txt # Python dependencies
26
  ```
27
 
@@ -33,15 +33,19 @@ git clone https://github.com/griffin-goodwin/FOXES.git
33
  cd FOXES
34
  ```
35
 
36
- ### 2) Create an environment (conda or mamba)
 
 
37
  ```bash
38
- mamba create -n foxes python=3.11 -y # or: conda create -n foxes python=3.11 -y
39
- mamba activate foxes # or: conda activate foxes
 
40
  ```
41
 
42
- ### 3) Install Python dependencies
43
  ```bash
44
- pip install -r requirements.txt
 
45
  ```
46
 
47
  ### 4) Docker Setup (Optional)
@@ -56,7 +60,7 @@ If you use this code or data in your work, please cite:
56
  institution = {Frontier Development Lab (FDL), NASA Goddard Space Flight Center},
57
  repository-code = {https://github.com/griffin-goodwin/FOXES},
58
  version = {v1.0},
59
- year = {2025}
60
  }
61
  ```
62
 
 
1
  # FOXES: A Framework For Operational X-ray Emission Synthesis
2
 
3
+ This repository contains the code and resources for **FOXES**, a project developed as part of the _**Frontier Development Lab**_'s Heliolab Multimodal Flare Prediction Project.
4
 
5
  ### Abstract
6
+ The solar soft X-ray (SXR) irradiance is a long-standing proxy of solar activity, used for the classification of flare strength. As a result, the flare class, along with the SXR light curve, are routinely used as the primary input to many forecasting methods, from coronal mass ejection speed to energetic particle output. However, the SXR irradiance lacks spatial information leading to dubious classification during periods of high activity, and is applicable only for observations from Earth orbit, hindering forecasting for other places in the heliosphere. This work introduces the Framework for Operational X-ray Emission Synthesis (FOXES), a Vision Transformer-based approach for translating Extreme Ultraviolet (EUV) spatially-resolved observations into SXR irradiance predictions. The model produces two outputs: (1) a global SXR flux prediction and (2) per-patch flux contributions, which offer a spatially resolved interpretation of where the model attributes SXR emission. This paves the way for EUV-based flare detection to be extended beyond Earth's line of sight, allowing for a more comprehensive and reliable flare catalog to support robust, scalable, and real-time forecasting, extending our monitoring into a true multiviewpoint system.
7
 
8
+ **Team**: Griffin Goodwin, Alison March, Jayant Biradar, Christopher Schirninger, Robert Jarolim, Angelos Vourlidas, Viacheslav Sadykov, Lorien Pratt
 
 
9
 
10
  ## Repository Structure
11
 
 
18
  │ ├── inference # Inference and evaluation scripts
19
  │ ├── models # Vision Transformer model definitions
20
  │ └── training # Training scripts and callbacks
21
+ ├── misc # Personal utility scripts (gitignored)
22
  ├── notebook_tests # Visualization and testing notebooks
23
  ├── Dockerfile # Docker configuration for environment reproducibility
24
+ ├── foxes.yml # Conda environment file
25
  └── requirements.txt # Python dependencies
26
  ```
27
 
 
33
  cd FOXES
34
  ```
35
 
36
+ ### 2) Create an environment
37
+
38
+ **Option A — pip:**
39
  ```bash
40
+ conda create -n foxes python=3.11 -y
41
+ conda activate foxes
42
+ pip install -r requirements.txt
43
  ```
44
 
45
+ **Option B conda (full environment):**
46
  ```bash
47
+ conda env create -f foxes.yml
48
+ conda activate foxes
49
  ```
50
 
51
  ### 4) Docker Setup (Optional)
 
60
  institution = {Frontier Development Lab (FDL), NASA Goddard Space Flight Center},
61
  repository-code = {https://github.com/griffin-goodwin/FOXES},
62
  version = {v1.0},
63
+ year = {2026}
64
  }
65
  ```
66
 
__init__.py DELETED
File without changes
cleanup_data.py DELETED
@@ -1,51 +0,0 @@
1
- import pandas as pd
2
- import os
3
- import shutil
4
- from pathlib import Path
5
-
6
- # Paths
7
- base_data_path = Path("/Volumes/T9/FOXES_Data")
8
- train_csv = base_data_path / "train_data_combined.csv"
9
- val_csv = base_data_path / "val_data_combined.csv"
10
-
11
- # Load combined filenames
12
- print("Loading CSVs...")
13
- df_train = pd.read_csv(train_csv)
14
- df_val = pd.read_csv(val_csv)
15
-
16
- valid_filenames = set(df_train['filename'].tolist()) | set(df_val['filename'].tolist())
17
- print(f"Total valid files: {len(valid_filenames)}")
18
-
19
- # Directories to process
20
- dirs_to_clean = [
21
- base_data_path / "SXR" / "train",
22
- base_data_path / "SXR" / "val",
23
- base_data_path / "AIA" / "train",
24
- base_data_path / "AIA" / "val"
25
- ]
26
-
27
- for directory in dirs_to_clean:
28
- if not directory.exists():
29
- print(f"Directory {directory} does not exist, skipping.")
30
- continue
31
-
32
- print(f"\nProcessing {directory}...")
33
- extras_dir = directory / "extras"
34
- extras_dir.mkdir(exist_ok=True)
35
-
36
- # Get all .npy files in the directory
37
- files = [f for f in os.listdir(directory) if f.endswith(".npy") and os.path.isfile(directory / f)]
38
-
39
- moved_count = 0
40
- for filename in files:
41
- if filename not in valid_filenames:
42
- src = directory / filename
43
- dst = extras_dir / filename
44
- # shutil.move(src, dst) # Dry run first
45
- moved_count += 1
46
- if moved_count <= 5:
47
- print(f" [DRY RUN] Would move: {filename}")
48
-
49
- print(f" [DRY RUN] Would move {moved_count} files to {extras_dir}")
50
-
51
- print("\nDone with dry run.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cleanup_data_mp.py DELETED
@@ -1,88 +0,0 @@
1
- import pandas as pd
2
- import os
3
- import shutil
4
- from pathlib import Path
5
- from multiprocessing import Pool, cpu_count
6
- from functools import partial
7
- from tqdm import tqdm
8
-
9
- def check_and_move_file(filename, directory, extras_dir, valid_filenames, dry_run=True):
10
- """Worker function to check and move a single file."""
11
- if filename not in valid_filenames:
12
- src = directory / filename
13
- dst = extras_dir / filename
14
- try:
15
- if not dry_run:
16
- shutil.move(src, dst)
17
- return 1 # Increment moved count
18
- except Exception as e:
19
- print(f"Error moving {filename}: {e}")
20
- return 0
21
- return 0
22
-
23
- def process_directory(directory, extras_sub_dir, valid_filenames, dry_run=True):
24
- """Processes a single directory using a pool of workers."""
25
- if not directory.exists():
26
- print(f"Directory {directory} does not exist, skipping.")
27
- return 0
28
-
29
- print(f"\nProcessing {directory}...")
30
- extras_sub_dir.mkdir(parents=True, exist_ok=True)
31
-
32
- # Get all .npy files in the directory
33
- files = [f.name for f in os.scandir(directory) if f.name.endswith(".npy") and f.is_file()]
34
- print(f"Found {len(files)} files in {directory.name}")
35
-
36
- # Partial function with fixed arguments
37
- worker = partial(check_and_move_file,
38
- directory=directory,
39
- extras_dir=extras_sub_dir,
40
- valid_filenames=valid_filenames,
41
- dry_run=dry_run)
42
-
43
- # Use multiprocessing to check and move files
44
- num_workers = cpu_count()
45
- chunksize = max(1, len(files) // (num_workers * 4))
46
- with Pool(num_workers) as pool:
47
- results = list(tqdm(pool.imap(worker, files, chunksize=chunksize), total=len(files), desc=f"Cleaning {directory.name}"))
48
-
49
- moved_count = sum(results)
50
- status = "[DRY RUN] Would move" if dry_run else "Moved"
51
- print(f"{status} {moved_count} files to {extras_sub_dir}")
52
- return moved_count
53
-
54
- if __name__ == "__main__":
55
- # Paths
56
- base_data_path = Path("/Volumes/T9/FOXES_Data")
57
- train_csv = base_data_path / "train_data_combined.csv"
58
- val_csv = base_data_path / "val_data_combined.csv"
59
- extras_base_dir = base_data_path / "extras"
60
-
61
- # Set dry_run to False to actually move files
62
- DRY_RUN = False
63
-
64
- # Load combined filenames
65
- print("Loading CSVs...")
66
- df_train = pd.read_csv(train_csv)
67
- df_val = pd.read_csv(val_csv)
68
-
69
- valid_filenames = set(df_train['filename'].tolist()) | set(df_val['filename'].tolist())
70
- print(f"Total valid files in CSVs: {len(valid_filenames)}")
71
-
72
- # Directories to process and their corresponding extras sub-directories
73
- tasks = [
74
- (base_data_path / "SXR" / "train", extras_base_dir / "SXR"),
75
- (base_data_path / "SXR" / "val", extras_base_dir / "SXR"),
76
- (base_data_path / "AIA" / "train", extras_base_dir / "AIA"),
77
- (base_data_path / "AIA" / "val", extras_base_dir / "AIA")
78
- ]
79
-
80
- total_moved = 0
81
- for directory, extras_sub_dir in tasks:
82
- total_moved += process_directory(directory, extras_sub_dir, valid_filenames, dry_run=DRY_RUN)
83
-
84
- if DRY_RUN:
85
- print(f"\nDry run complete. Total files that would be moved: {total_moved}")
86
- print("To actually move files, set DRY_RUN = False in the script.")
87
- else:
88
- print(f"\nProcessing complete. Total files moved: {total_moved}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
foxes.yml ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: foxes
2
+ channels:
3
+ - defaults
4
+ - https://repo.anaconda.com/pkgs/main
5
+ - https://repo.anaconda.com/pkgs/r
6
+ dependencies:
7
+ - bzip2=1.0.8=h80987f9_6
8
+ - ca-certificates=2025.12.2=hca03da5_0
9
+ - expat=2.7.3=h982b769_0
10
+ - libcxx=20.1.8=hd7fd590_1
11
+ - libffi=3.4.4=hca03da5_1
12
+ - libmpdec=4.0.0=h80987f9_0
13
+ - libzlib=1.3.1=h5f15de7_0
14
+ - lz4-c=1.9.4=h313beb8_1
15
+ - ncurses=6.5=hee39554_0
16
+ - openssl=3.0.18=h9b4081a_0
17
+ - python=3.14.0=h1858270_101_cp314
18
+ - python_abi=3.14=2_cp314
19
+ - readline=8.3=h0b18652_0
20
+ - sqlite=3.51.0=hab6afd1_0
21
+ - tk=8.6.15=hcd8a7d5_0
22
+ - xz=5.6.4=h80987f9_1
23
+ - zlib=1.3.1=h5f15de7_0
24
+ - zstd=1.5.7=h817c040_0
25
+ - pip:
26
+ - aiapy==0.10.2
27
+ - aioftp==0.27.2
28
+ - aiohappyeyeballs==2.6.1
29
+ - aiohttp==3.13.2
30
+ - aiosignal==1.4.0
31
+ - albucore==0.0.24
32
+ - albumentations==2.0.8
33
+ - annotated-types==0.7.0
34
+ - anyio==4.12.0
35
+ - appdirs==1.4.4
36
+ - appnope==0.1.4
37
+ - argon2-cffi==25.1.0
38
+ - argon2-cffi-bindings==25.1.0
39
+ - argparse-dataclass==2.0.0
40
+ - arrow==1.4.0
41
+ - asdf==5.1.0
42
+ - asdf-astropy==0.9.0
43
+ - asdf-coordinates-schemas==0.4.0
44
+ - asdf-standard==1.4.0
45
+ - asdf-transform-schemas==0.6.0
46
+ - astropy==7.2.0
47
+ - astropy-healpix==1.1.2
48
+ - astropy-iers-data==0.2025.12.1.0.45.12
49
+ - asttokens==3.0.1
50
+ - async-lru==2.0.5
51
+ - attrs==25.4.0
52
+ - babel==2.17.0
53
+ - beautifulsoup4==4.14.3
54
+ - bleach==6.3.0
55
+ - cachetools==6.2.2
56
+ - cdflib==1.3.7
57
+ - certifi==2025.11.12
58
+ - cffi==2.0.0
59
+ - cftime==1.6.5
60
+ - charset-normalizer==3.4.4
61
+ - click==8.3.1
62
+ - cloudpickle==3.1.2
63
+ - colormaps==0.4.2
64
+ - comm==0.2.3
65
+ - conda-inject==1.3.2
66
+ - configargparse==1.7.1
67
+ - connection-pool==0.0.3
68
+ - contourpy==1.3.3
69
+ - cycler==0.12.1
70
+ - dask==2025.11.0
71
+ - dask-image==2025.11.0
72
+ - debugpy==1.8.17
73
+ - decorator==5.2.1
74
+ - defusedxml==0.7.1
75
+ - docutils==0.22.3
76
+ - donfig==0.8.1.post1
77
+ - dpath==2.2.0
78
+ - drms==0.9.0
79
+ - executing==2.2.1
80
+ - fastjsonschema==2.21.2
81
+ - filelock==3.20.0
82
+ - fonttools==4.61.0
83
+ - fqdn==1.5.1
84
+ - frozenlist==1.8.0
85
+ - fsspec==2025.12.0
86
+ - gitdb==4.0.12
87
+ - gitpython==3.1.45
88
+ - glymur==0.14.4
89
+ - google==3.0.0
90
+ - google-api-core==2.28.1
91
+ - google-auth==2.43.0
92
+ - google-cloud-core==2.5.0
93
+ - google-cloud-storage==3.6.0
94
+ - google-resumable-media==2.8.0
95
+ - googleapis-common-protos==1.72.0
96
+ - h11==0.16.0
97
+ - h5netcdf==1.7.3
98
+ - h5py==3.15.1
99
+ - httpcore==1.0.9
100
+ - httpx==0.28.1
101
+ - humanfriendly==10.0
102
+ - idna==3.11
103
+ - imageio==2.37.2
104
+ - imageio-ffmpeg==0.6.0
105
+ - immutables==0.21
106
+ - ipykernel==7.1.0
107
+ - ipython==9.8.0
108
+ - ipython-pygments-lexers==1.1.1
109
+ - ipywidgets==8.1.8
110
+ - isodate==0.7.2
111
+ - isoduration==20.11.0
112
+ - itipy==0.1.1
113
+ - jedi==0.19.2
114
+ - jinja2==3.1.6
115
+ - jmespath==1.0.1
116
+ - joblib==1.5.2
117
+ - json5==0.12.1
118
+ - jsonpointer==3.0.0
119
+ - jsonschema==4.25.1
120
+ - jsonschema-specifications==2025.9.1
121
+ - jupyter==1.1.1
122
+ - jupyter-client==8.6.3
123
+ - jupyter-console==6.6.3
124
+ - jupyter-core==5.9.1
125
+ - jupyter-events==0.12.0
126
+ - jupyter-lsp==2.3.0
127
+ - jupyter-server==2.17.0
128
+ - jupyter-server-terminals==0.5.3
129
+ - jupyterlab==4.5.0
130
+ - jupyterlab-pygments==0.3.0
131
+ - jupyterlab-server==2.28.0
132
+ - jupyterlab-widgets==3.0.16
133
+ - kiwisolver==1.4.9
134
+ - lark==1.3.1
135
+ - lazy-loader==0.4
136
+ - lightning==2.6.0
137
+ - lightning-utilities==0.15.2
138
+ - locket==1.0.0
139
+ - lxml==6.0.2
140
+ - markupsafe==3.0.3
141
+ - matplotlib==3.10.7
142
+ - matplotlib-inline==0.2.1
143
+ - mistune==3.1.4
144
+ - mpl-animators==1.2.4
145
+ - mpmath==1.3.0
146
+ - multidict==6.7.0
147
+ - nbclient==0.10.2
148
+ - nbconvert==7.16.6
149
+ - nbformat==5.10.4
150
+ - nest-asyncio==1.6.0
151
+ - netcdf4==1.7.3
152
+ - networkx==3.6
153
+ - notebook==7.5.0
154
+ - notebook-shim==0.2.4
155
+ - numcodecs==0.16.5
156
+ - numpy==2.4.0rc1
157
+ - numpy-typing-compat==20251206.2.4
158
+ - opencv-python==4.12.0.88
159
+ - opencv-python-headless==4.12.0.88
160
+ - optype==0.15.0
161
+ - packaging==25.0
162
+ - pandas==2.3.3
163
+ - pandas-stubs==2.3.3.251201
164
+ - pandocfilters==1.5.1
165
+ - parfive==2.2.0
166
+ - parso==0.8.5
167
+ - partd==1.4.2
168
+ - pexpect==4.9.0
169
+ - pillow==12.0.0
170
+ - pims==0.7
171
+ - pip==24.3.1
172
+ - platformdirs==4.5.0
173
+ - prometheus-client==0.23.1
174
+ - prompt-toolkit==3.0.52
175
+ - propcache==0.4.1
176
+ - proto-plus==1.26.1
177
+ - protobuf==6.33.1
178
+ - psutil==7.1.3
179
+ - ptyprocess==0.7.0
180
+ - pulp==3.3.0
181
+ - pure-eval==0.2.3
182
+ - pyarrow==22.0.0
183
+ - pyasn1==0.6.1
184
+ - pyasn1-modules==0.4.2
185
+ - pyavm==0.9.8
186
+ - pycparser==2.23
187
+ - pydantic==2.12.5
188
+ - pydantic-core==2.41.5
189
+ - pyerfa==2.0.1.5
190
+ - pygments==2.19.2
191
+ - pyparsing==3.2.5
192
+ - python-dateutil==2.9.0.post0
193
+ - python-json-logger==4.0.0
194
+ - pytorch-fid==0.3.0
195
+ - pytorch-lightning==2.6.0
196
+ - pytz==2025.2
197
+ - pyyaml==6.0.3
198
+ - pyzmq==27.1.0
199
+ - referencing==0.37.0
200
+ - reproject==0.19.0
201
+ - requests==2.32.5
202
+ - requests-file==3.0.1
203
+ - requests-toolbelt==1.0.0
204
+ - reretry==0.11.8
205
+ - rfc3339-validator==0.1.4
206
+ - rfc3986-validator==0.1.1
207
+ - rfc3987-syntax==1.1.0
208
+ - rpds-py==0.30.0
209
+ - rsa==4.9.1
210
+ - scikit-image==0.25.2
211
+ - scikit-learn==1.7.2
212
+ - scipy==1.16.3
213
+ - scipy-stubs==1.16.3.3
214
+ - seaborn==0.13.2
215
+ - semantic-version==2.10.0
216
+ - send2trash==1.8.3
217
+ - sentry-sdk==2.47.0
218
+ - setuptools==80.9.0
219
+ - simsimd==6.5.3
220
+ - six==1.17.0
221
+ - slicerator==1.1.0
222
+ - smart-open==7.5.0
223
+ - smmap==5.0.2
224
+ - snakemake==9.14.1
225
+ - snakemake-interface-common==1.22.0
226
+ - snakemake-interface-executor-plugins==9.3.9
227
+ - snakemake-interface-logger-plugins==2.0.0
228
+ - snakemake-interface-report-plugins==1.3.0
229
+ - snakemake-interface-scheduler-plugins==2.0.2
230
+ - snakemake-interface-storage-plugins==4.3.2
231
+ - soupsieve==2.8
232
+ - spicepy==1.0.5
233
+ - spiceypy==8.0.0
234
+ - stack-data==0.6.3
235
+ - stringzilla==4.4.0
236
+ - sunpy==7.0.3
237
+ - sunpy-soar==1.11.1
238
+ - sympy==1.14.0
239
+ - tabulate==0.9.0
240
+ - terminado==0.18.1
241
+ - threadpoolctl==3.6.0
242
+ - throttler==1.2.2
243
+ - tifffile==2025.10.16
244
+ - tinycss2==1.4.0
245
+ - toolz==1.1.0
246
+ - torch==2.9.1
247
+ - torchaudio==2.9.1
248
+ - torchmetrics==1.8.2
249
+ - torchvision==0.24.1
250
+ - tornado==6.5.2
251
+ - tqdm==4.67.1
252
+ - traitlets==5.14.3
253
+ - types-pytz==2025.2.0.20251108
254
+ - typing-extensions==4.15.0
255
+ - typing-inspection==0.4.2
256
+ - tzdata==2025.2
257
+ - uri-template==1.3.0
258
+ - urllib3==2.5.0
259
+ - validators==0.35.0
260
+ - wandb==0.23.1
261
+ - wcwidth==0.2.14
262
+ - webcolors==25.10.0
263
+ - webencodings==0.5.1
264
+ - websocket-client==1.9.0
265
+ - widgetsnbextension==4.0.15
266
+ - wrapt==2.0.1
267
+ - xarray==2025.11.0
268
+ - xitorch==0.3.0
269
+ - yarl==1.22.0
270
+ - yte==1.9.4
271
+ - zarr==3.1.5
272
+ - zeep==4.3.2
273
+ prefix: /opt/anaconda3/envs/foxes
requirements.txt CHANGED
@@ -1,30 +1,38 @@
 
1
  sunpy[all]
 
 
 
2
  itipy
3
- snakemake
4
- wandb
5
- pytorch-lightning
6
- pandas
7
- netCDF4
8
- matplotlib
9
- scikit-learn
10
- scikit-image
11
  torch
12
  torchvision
13
- torchaudio
14
- validators
15
- albumentations
16
- opencv-python
17
- spicepy
18
- xitorch
19
- sympy
20
  numpy
21
  scipy
22
- PyYAML
23
- imageio
24
- tqdm
25
- seaborn
26
  xarray
27
- astropy
28
- Pillow
 
 
 
 
 
 
 
29
  colormaps
30
- imageio-ffmpeg
 
 
 
 
 
 
 
 
 
 
 
1
+ # Solar physics and astronomy
2
  sunpy[all]
3
+ sunpy-soar
4
+ astropy
5
+ drms
6
  itipy
7
+
8
+ # Deep learning
 
 
 
 
 
 
9
  torch
10
  torchvision
11
+ pytorch-lightning
12
+
13
+ # Data processing
 
 
 
 
14
  numpy
15
  scipy
16
+ pandas
 
 
 
17
  xarray
18
+ h5py
19
+
20
+ # Machine learning
21
+ scikit-learn
22
+
23
+ # Visualization
24
+ matplotlib
25
+ seaborn
26
+ plotly
27
  colormaps
28
+
29
+ # Image processing
30
+ opencv-python
31
+ Pillow
32
+ imageio
33
+ imageio-ffmpeg
34
+
35
+ # Utilities
36
+ tqdm
37
+ wandb
38
+ PyYAML