solarwindpy 0.0.1.dev0__py3-none-any.whl → 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of solarwindpy might be problematic. Click here for more details.

Files changed (412) hide show
  1. plans/.velocity/metrics.json +96 -0
  2. plans/0-overview-template.md +268 -0
  3. plans/N-phase-template.md +106 -0
  4. plans/PLAN_AUDIT_SUMMARY.md +173 -0
  5. plans/TEMPLATE-USAGE-GUIDE.md +198 -0
  6. plans/__init__.py +1 -0
  7. plans/abandoned/compaction-agent-system/0-Overview.md +123 -0
  8. plans/abandoned/compaction-agent-system/agents-index-update-plan.md +109 -0
  9. plans/abandoned/compaction-agent-system/compacted_state.md +85 -0
  10. plans/abandoned/compaction-agent-system/implementation-plan.md +107 -0
  11. plans/abandoned/compaction-agent-system/system-validation-report.md +159 -0
  12. plans/abandoned/compaction-agent-system/usage-guide.md +210 -0
  13. plans/abandoned/hook-system-enhancement/0-Overview.md +214 -0
  14. plans/abandoned/hook-system-enhancement/1-Phase1-Core-Infrastructure.md +313 -0
  15. plans/abandoned/hook-system-enhancement/2-Phase2-Intelligent-Testing.md +385 -0
  16. plans/abandoned/hook-system-enhancement/3-Phase3-Physics-Validation.md +444 -0
  17. plans/abandoned/hook-system-enhancement/4-Phase4-Performance-Monitoring.md +458 -0
  18. plans/abandoned/hook-system-enhancement/5-Phase5-Developer-Experience.md +532 -0
  19. plans/abandoned/hook-system-enhancement/6-Implementation-Timeline.md +274 -0
  20. plans/abandoned/hook-system-enhancement/7-Risk-Management.md +376 -0
  21. plans/abandoned/hook-system-enhancement/8-Testing-Strategy.md +579 -0
  22. plans/abandoned/readthedocs-automation/0-Overview.md +247 -0
  23. plans/abandoned/readthedocs-automation/1-Emergency-Documentation-Fixes.md +270 -0
  24. plans/abandoned/readthedocs-automation/2-Template-System-Enhancement.md +811 -0
  25. plans/abandoned/readthedocs-automation/3-Quality-Audit-ReadTheDocs-Integration.md +844 -0
  26. plans/abandoned/readthedocs-automation/4-Plan-Consolidation-Cleanup.md +632 -0
  27. plans/abandoned/readthedocs-automation/9-Closeout.md +207 -0
  28. plans/abandoned/readthedocs-automation/ABANDONMENT_REASON.md +72 -0
  29. plans/cicd-architecture-redesign/0-Overview.md +193 -0
  30. plans/cicd-architecture-redesign/1-Workflow-Creation.md +103 -0
  31. plans/cicd-architecture-redesign/2-Version-Detection.md +123 -0
  32. plans/cicd-architecture-redesign/3-Deployment-Gates.md +169 -0
  33. plans/cicd-architecture-redesign/4-RC-Testing.md +194 -0
  34. plans/cicd-architecture-redesign/5-TestPyPI-Validation.md +264 -0
  35. plans/cicd-architecture-redesign/6-Production-Release.md +263 -0
  36. plans/cicd-architecture-redesign/7-Cleanup.md +243 -0
  37. plans/cicd-architecture-redesign/8-Documentation.md +285 -0
  38. plans/cicd-architecture-redesign/Closeout.md +225 -0
  39. plans/closeout-template.md +259 -0
  40. plans/completed/circular-import-audit/0-Overview.md +152 -0
  41. plans/completed/circular-import-audit/1-Static-Dependency-Analysis.md +62 -0
  42. plans/completed/circular-import-audit/2-Dynamic-Import-Testing.md +56 -0
  43. plans/completed/circular-import-audit/3-Performance-Impact-Assessment.md +56 -0
  44. plans/completed/circular-import-audit/4-Issue-Remediation.md +78 -0
  45. plans/completed/circular-import-audit/5-Preventive-Infrastructure.md +89 -0
  46. plans/completed/claude-settings-ecosystem-alignment/0-Overview.md +162 -0
  47. plans/completed/claude-settings-ecosystem-alignment/1-Security-Foundation.md +148 -0
  48. plans/completed/claude-settings-ecosystem-alignment/2-Hook-Integration.md +158 -0
  49. plans/completed/claude-settings-ecosystem-alignment/3-Agent-System-Integration.md +177 -0
  50. plans/completed/claude-settings-ecosystem-alignment/4-Enhanced-Workflow-Automation.md +159 -0
  51. plans/completed/claude-settings-ecosystem-alignment/5-Validation-Monitoring.md +181 -0
  52. plans/completed/claude-settings-ecosystem-alignment/compacted_session_state.md +290 -0
  53. plans/completed/combined_plan_with_checklist_documentation/1-Overview-and-Goals.md +51 -0
  54. plans/completed/combined_plan_with_checklist_documentation/2-Toolchain-and-Hosting.md +69 -0
  55. plans/completed/combined_plan_with_checklist_documentation/3-Repository-Structure.md +61 -0
  56. plans/completed/combined_plan_with_checklist_documentation/4-Configuration-and-Standards.md +70 -0
  57. plans/completed/combined_plan_with_checklist_documentation/5-Documentation-Content.md +62 -0
  58. plans/completed/combined_plan_with_checklist_documentation/6-CI-CD-and-Validation.md +58 -0
  59. plans/completed/combined_plan_with_checklist_documentation/7-Maintenance.md +55 -0
  60. plans/completed/combined_test_plan_with_checklist_fitfunctions/0-Overview.md +135 -0
  61. plans/completed/combined_test_plan_with_checklist_fitfunctions/1-Common-fixtures.md +59 -0
  62. plans/completed/combined_test_plan_with_checklist_fitfunctions/10-power_laws.md +56 -0
  63. plans/completed/combined_test_plan_with_checklist_fitfunctions/2-core.py-FitFunction.md +118 -0
  64. plans/completed/combined_test_plan_with_checklist_fitfunctions/3-gaussians.py-Gaussian-GaussianNormalized-GaussianLn.md +69 -0
  65. plans/completed/combined_test_plan_with_checklist_fitfunctions/4-trend_fits.py-TrendFit.md +99 -0
  66. plans/completed/combined_test_plan_with_checklist_fitfunctions/5-plots.py-FFPlot.md +98 -0
  67. plans/completed/combined_test_plan_with_checklist_fitfunctions/6-tex_info.py-TeXinfo.md +79 -0
  68. plans/completed/combined_test_plan_with_checklist_fitfunctions/7-Justification.md +49 -0
  69. plans/completed/combined_test_plan_with_checklist_fitfunctions/8-exponentials.md +64 -0
  70. plans/completed/combined_test_plan_with_checklist_fitfunctions/9-lines.md +58 -0
  71. plans/completed/combined_test_plan_with_checklist_plotting/0-Overview.md +142 -0
  72. plans/completed/combined_test_plan_with_checklist_plotting/1-base.py.md +90 -0
  73. plans/completed/combined_test_plan_with_checklist_plotting/10-labels-special.py.md +102 -0
  74. plans/completed/combined_test_plan_with_checklist_plotting/11-labels-chemistry.py.md +212 -0
  75. plans/completed/combined_test_plan_with_checklist_plotting/12-labels-composition.py.md +242 -0
  76. plans/completed/combined_test_plan_with_checklist_plotting/13-labels-datetime.py.md +247 -0
  77. plans/completed/combined_test_plan_with_checklist_plotting/14-labels-elemental_abundance.py.md +274 -0
  78. plans/completed/combined_test_plan_with_checklist_plotting/15-visual-validation.md +256 -0
  79. plans/completed/combined_test_plan_with_checklist_plotting/16-integration-testing.md +266 -0
  80. plans/completed/combined_test_plan_with_checklist_plotting/17-performance-benchmarks.md +267 -0
  81. plans/completed/combined_test_plan_with_checklist_plotting/18-Fixtures-and-Utilities.md +86 -0
  82. plans/completed/combined_test_plan_with_checklist_plotting/2-agg_plot.py.md +90 -0
  83. plans/completed/combined_test_plan_with_checklist_plotting/3-histograms.py.md +201 -0
  84. plans/completed/combined_test_plan_with_checklist_plotting/4-scatter.py.md +167 -0
  85. plans/completed/combined_test_plan_with_checklist_plotting/5-spiral.py.md +216 -0
  86. plans/completed/combined_test_plan_with_checklist_plotting/6-orbits.py.md +108 -0
  87. plans/completed/combined_test_plan_with_checklist_plotting/7-tools.py.md +86 -0
  88. plans/completed/combined_test_plan_with_checklist_plotting/8-select_data_from_figure.py.md +97 -0
  89. plans/completed/combined_test_plan_with_checklist_plotting/9-labels-base.py.md +88 -0
  90. plans/completed/combined_test_plan_with_checklist_solar_activity/.gitkeep +0 -0
  91. plans/completed/combined_test_plan_with_checklist_solar_activity/0-Overview.md +170 -0
  92. plans/completed/combined_test_plan_with_checklist_solar_activity/1-Package-Entry-Point-__init__.py.md +121 -0
  93. plans/completed/combined_test_plan_with_checklist_solar_activity/2-Core-Base-Classes-base.py.md +142 -0
  94. plans/completed/combined_test_plan_with_checklist_solar_activity/3-Plotting-Helpers-plots.py.md +123 -0
  95. plans/completed/combined_test_plan_with_checklist_solar_activity/4-LISIRD-Sub-package.md +119 -0
  96. plans/completed/combined_test_plan_with_checklist_solar_activity/5-Extrema-Calculator.md +103 -0
  97. plans/completed/combined_test_plan_with_checklist_solar_activity/6-Sunspot-Number-Sub-package.md +163 -0
  98. plans/completed/combined_test_plan_with_checklist_solar_activity/7-Sunspot-Number-Init.py.md +217 -0
  99. plans/completed/combined_test_plan_with_checklist_solar_activity/compacted_state.md +52 -0
  100. plans/completed/compaction-agent-modernization/0-Overview.md +156 -0
  101. plans/completed/compaction-agent-modernization/1-Architecture-Audit-Gap-Analysis.md +132 -0
  102. plans/completed/compaction-agent-modernization/2-Token-Baseline-Recalibration.md +153 -0
  103. plans/completed/compaction-agent-modernization/3-Agent-Reference-Updates.md +184 -0
  104. plans/completed/compaction-agent-modernization/4-Compression-Algorithm-Modernization.md +238 -0
  105. plans/completed/compaction-agent-modernization/5-Workflow-Integration-Streamlining.md +252 -0
  106. plans/completed/compaction-agent-modernization/6-Template-Structure-Optimization.md +240 -0
  107. plans/completed/compaction-agent-modernization/7-Integration-Testing-Validation.md +292 -0
  108. plans/completed/compaction-hook-enhancement/0-Overview.md +150 -0
  109. plans/completed/compaction-hook-enhancement/1-Token-Estimation-Enhancement.md +179 -0
  110. plans/completed/compaction-hook-enhancement/2-Compression-Intelligence.md +294 -0
  111. plans/completed/compaction-hook-enhancement/3-Git-Integration-Metadata.md +310 -0
  112. plans/completed/compaction-hook-enhancement/4-Session-Continuity-Features.md +358 -0
  113. plans/completed/compaction-hook-enhancement/5-Testing-Strategy.md +404 -0
  114. plans/completed/compaction-hook-enhancement/6-Integration-Roadmap.md +319 -0
  115. plans/completed/compaction-hook-enhancement/compacted_state.md +142 -0
  116. plans/completed/docstring-audit-enhancement/0-Overview.md +274 -0
  117. plans/completed/docstring-audit-enhancement/1-Infrastructure-Setup-and-Validation-Tools.md +206 -0
  118. plans/completed/docstring-audit-enhancement/2-Core-Physics-Modules-Enhancement.md +237 -0
  119. plans/completed/docstring-audit-enhancement/3-Fitfunctions-Mathematical-Modules-Enhancement.md +188 -0
  120. plans/completed/docstring-audit-enhancement/4-Plotting-Visualization-Modules-Enhancement.md +243 -0
  121. plans/completed/docstring-audit-enhancement/5-Specialized-Modules-Enhancement.md +216 -0
  122. plans/completed/docstring-audit-enhancement/6-Validation-and-Integration.md +216 -0
  123. plans/completed/fitfunctions-testing-implementation/0-Overview.md +130 -0
  124. plans/completed/fitfunctions-testing-implementation/1-Test-Infrastructure-Setup.md +79 -0
  125. plans/completed/fitfunctions-testing-implementation/2-Common-Fixtures-Test-Utilities.md +104 -0
  126. plans/completed/fitfunctions-testing-implementation/3-Core-FitFunction-Testing.md +168 -0
  127. plans/completed/fitfunctions-testing-implementation/4-Specialized-Function-Classes.md +210 -0
  128. plans/completed/fitfunctions-testing-implementation/5-Advanced-Classes-Testing.md +214 -0
  129. plans/completed/fitfunctions-testing-implementation/6-Plotting-Integration-Testing.md +231 -0
  130. plans/completed/fitfunctions-testing-implementation/7-Extended-Coverage-BONUS.md +184 -0
  131. plans/completed/numpy-docstring-conversion-plan/numpy-docstring-conversion-plan.md +118 -0
  132. plans/completed/pr-review-remediation/0-Overview.md +138 -0
  133. plans/completed/pr-review-remediation/1-Critical-Safety-Improvements.md +179 -0
  134. plans/completed/pr-review-remediation/2-Smart-Timeouts-Validation.md +399 -0
  135. plans/completed/pr-review-remediation/3-Enhanced-GitHub-Integration.md +258 -0
  136. plans/completed/pr-review-remediation/compacted_state.md +66 -0
  137. plans/completed/python-310-migration/0-Overview.md +390 -0
  138. plans/completed/python-310-migration/1-Planning-Setup.md +164 -0
  139. plans/completed/python-310-migration/2-Implementation.md +256 -0
  140. plans/completed/python-310-migration/3-Testing-Validation.md +335 -0
  141. plans/completed/python-310-migration/4-Documentation-Release.md +274 -0
  142. plans/completed/python-310-migration/5-Closeout.md +252 -0
  143. plans/completed/requirements-management-consolidation/0-Overview.md +118 -0
  144. plans/completed/requirements-management-consolidation/1-Documentation-Validation-Environment-Setup.md +116 -0
  145. plans/completed/requirements-management-consolidation/2-Requirements-Consolidation.md +161 -0
  146. plans/completed/requirements-management-consolidation/3-Workflow-Automation-Final-Integration.md +196 -0
  147. plans/completed/single-ecosystem-plan-implementation/0-Overview.md +83 -0
  148. plans/completed/single-ecosystem-plan-implementation/1-Plan-Preservation-Session-Management.md +38 -0
  149. plans/completed/single-ecosystem-plan-implementation/2-File-Structure-Optimization.md +43 -0
  150. plans/completed/single-ecosystem-plan-implementation/3-Plan-Migration-Archive-Setup.md +82 -0
  151. plans/completed/single-ecosystem-plan-implementation/4-Agent-System-Transformation.md +108 -0
  152. plans/completed/single-ecosystem-plan-implementation/5-Template-System-Enhancement.md +131 -0
  153. plans/completed/single-ecosystem-plan-implementation/6-Final-Validation-Testing.md +120 -0
  154. plans/completed/test-directory-consolidation/0-Overview.md +51 -0
  155. plans/completed/test-directory-consolidation/1-Structure-Preparation.md +82 -0
  156. plans/completed/test-directory-consolidation/2-File-Migration.md +100 -0
  157. plans/completed/test-directory-consolidation/3-Import-Transformation.md +117 -0
  158. plans/completed/test-directory-consolidation/4-Configuration-Consolidation.md +140 -0
  159. plans/completed/test-directory-consolidation/5-Validation.md +152 -0
  160. plans/completed/test-directory-consolidation/6-Cleanup.md +156 -0
  161. plans/completed/test-planning-agents-architecture/0-Overview.md +79 -0
  162. plans/completed/test-planning-agents-architecture/1-Branch-Isolation-Testing.md +49 -0
  163. plans/completed/test-planning-agents-architecture/2-Cross-Branch-Coordination.md +51 -0
  164. plans/completed/test-planning-agents-architecture/3-Merge-Workflow-Testing.md +48 -0
  165. plans/deployment-semver-pypi-rtd/0-Overview.md +463 -0
  166. plans/deployment-semver-pypi-rtd/1-Semantic-Versioning-Foundation.md +136 -0
  167. plans/deployment-semver-pypi-rtd/2-PyPI-Deployment-Infrastructure.md +168 -0
  168. plans/deployment-semver-pypi-rtd/3-Release-Automation.md +214 -0
  169. plans/deployment-semver-pypi-rtd/4-Plan-Closeout.md +543 -0
  170. plans/deployment-semver-pypi-rtd/compacted_session_state.md +172 -0
  171. plans/deployment-semver-pypi-rtd/compacted_state.md +131 -0
  172. plans/documentation-code-audit/0-Overview.md +393 -0
  173. plans/documentation-code-audit/1-Discovery-Inventory.md +183 -0
  174. plans/documentation-code-audit/2-Execution-Environment-Setup.md +263 -0
  175. plans/documentation-code-audit/3-Systematic-Validation.md +322 -0
  176. plans/documentation-code-audit/4-Code-Example-Remediation.md +358 -0
  177. plans/documentation-code-audit/5-Physics-MultiIndex-Compliance.md +464 -0
  178. plans/documentation-code-audit/6-Doctest-Integration.md +523 -0
  179. plans/documentation-code-audit/7-Reporting-Documentation.md +498 -0
  180. plans/documentation-code-audit/8-Closeout.md +456 -0
  181. plans/documentation-rebuild-session/compacted_state.md +109 -0
  182. plans/documentation-rendering-fixes/0-Overview.md +104 -0
  183. plans/documentation-rendering-fixes/1-Sphinx-Build-Diagnostics-Warning-Audit.md +101 -0
  184. plans/documentation-rendering-fixes/2-Configuration-Infrastructure-Fixes.md +113 -0
  185. plans/documentation-rendering-fixes/3-Docstring-Syntax-Audit-Repair.md +131 -0
  186. plans/documentation-rendering-fixes/4-HTML-Page-Rendering-Verification.md +113 -0
  187. plans/documentation-rendering-fixes/5-Advanced-Documentation-Quality-Assurance.md +119 -0
  188. plans/documentation-rendering-fixes/6-Documentation-Build-Optimization-Testing.md +129 -0
  189. plans/documentation-rendering-fixes/compacted_state.md +132 -0
  190. plans/documentation-template-fix/0-Overview.md +197 -0
  191. plans/documentation-template-fix/1-Template-System-Analysis.md +269 -0
  192. plans/documentation-template-fix/2-Template-Modification.md +609 -0
  193. plans/documentation-template-fix/3-Build-System-Integration.md +766 -0
  194. plans/documentation-template-fix/4-Testing-Validation.md +1399 -0
  195. plans/documentation-template-fix/5-Documentation-Training.md +602 -0
  196. plans/documentation-workflow-fix/0-Overview.md +222 -0
  197. plans/documentation-workflow-fix/1-Immediate-Fixes.md +238 -0
  198. plans/documentation-workflow-fix/2-Configuration-Setup.md +298 -0
  199. plans/documentation-workflow-fix/3-Pre-commit-Integration.md +382 -0
  200. plans/documentation-workflow-fix/4-Workflow-Improvements.md +446 -0
  201. plans/documentation-workflow-fix/5-Documentation-and-Training.md +527 -0
  202. plans/duplicate-object-warnings-fix-plan.md +130 -0
  203. plans/github-issues-migration/0-Overview.md +510 -0
  204. plans/github-issues-migration/1-Foundation-Label-System.md +180 -0
  205. plans/github-issues-migration/2-Migration-Tool-Rewrite.md +235 -0
  206. plans/github-issues-migration/3-CLI-Integration-Automation.md +169 -0
  207. plans/github-issues-migration/4-Validated-Migration.md +252 -0
  208. plans/github-issues-migration/5-Documentation-Training.md +171 -0
  209. plans/github-issues-migration/6-Closeout.md +179 -0
  210. plans/github-workflows-repair/repair-plan.md +299 -0
  211. plans/issues_from_plans.py +342 -0
  212. plans/pr-270-doc-validation-fixes/0-Overview.md +354 -0
  213. plans/pr-270-doc-validation-fixes/1-Critical-PR-Fixes.md +117 -0
  214. plans/pr-270-doc-validation-fixes/2-Framework-Right-Sizing.md +129 -0
  215. plans/pr-270-doc-validation-fixes/3-Sustainable-Documentation.md +126 -0
  216. plans/pr-270-doc-validation-fixes/4-Closeout-Migration.md +143 -0
  217. plans/pr-270-doc-validation-fixes/PLAN_COMPLETED.md +149 -0
  218. plans/python-310-migration/0-Overview.md +390 -0
  219. plans/python-310-migration/1-Planning-Setup.md +164 -0
  220. plans/python-310-migration/2-Implementation.md +256 -0
  221. plans/python-310-migration/3-Testing-Validation.md +335 -0
  222. plans/python-310-migration/4-Documentation-Release.md +274 -0
  223. plans/python-310-migration/5-Closeout.md +252 -0
  224. plans/readthedocs-simplified/0-Overview.md +243 -0
  225. plans/readthedocs-simplified/1-Immediate-Fixes.md +216 -0
  226. plans/readthedocs-simplified/2-Template-Simplification.md +278 -0
  227. plans/readthedocs-simplified/3-ReadTheDocs-Setup.md +298 -0
  228. plans/readthedocs-simplified/4-Testing-Validation.md +328 -0
  229. plans/readthedocs-simplified/5-Closeout.md +231 -0
  230. plans/readthedocs-simplified/compacted_state.md +127 -0
  231. plans/session-compaction-2025-08-12/compacted_state.md +114 -0
  232. plans/session-compaction-2025-08-13/compacted_state.md +145 -0
  233. plans/session-continuity-protocol/0-Overview.md +35 -0
  234. plans/session-continuity-protocol/1-Core-Principles-Framework.md +40 -0
  235. plans/session-continuity-protocol/2-Pre-Session-Validation-System.md +79 -0
  236. plans/session-continuity-protocol/3-Context-Switching-Prevention.md +87 -0
  237. plans/session-continuity-protocol/4-Progress-Tracking-Recovery.md +100 -0
  238. plans/sphinx-warnings-analysis.md +222 -0
  239. plans/systemprompt-optimization/0-Overview.md +447 -0
  240. plans/systemprompt-optimization/1-Deploy-SystemPrompt.md +114 -0
  241. plans/systemprompt-optimization/2-Documentation-Alignment.md +198 -0
  242. plans/systemprompt-optimization/3-Monitoring-Infrastructure.md +396 -0
  243. plans/systemprompt-optimization/4-Implementation-Script.md +450 -0
  244. plans/systemprompt-optimization/9-Closeout.md +165 -0
  245. plans/systemprompt-optimization/compacted_state.md +143 -0
  246. plans/template-value-propositions/0-Overview.md +357 -0
  247. plans/template-value-propositions/1-Value-Proposition-Framework-Design.md +144 -0
  248. plans/template-value-propositions/2-Plan-Template-Enhancement.md +178 -0
  249. plans/template-value-propositions/3-Value-Generator-Hook-Implementation.md +291 -0
  250. plans/template-value-propositions/4-Value-Validator-Hook-Implementation.md +274 -0
  251. plans/template-value-propositions/5-Documentation-Agent-Updates.md +219 -0
  252. plans/template-value-propositions/6-Integration-Testing-Validation.md +247 -0
  253. plans/tests-audit/0-Overview.md +410 -0
  254. plans/tests-audit/1-Discovery-Inventory.md +170 -0
  255. plans/tests-audit/2-Physics-Validation-Audit.md +195 -0
  256. plans/tests-audit/3-Architecture-Compliance.md +195 -0
  257. plans/tests-audit/4-Numerical-Stability-Analysis.md +203 -0
  258. plans/tests-audit/5-Documentation-Enhancement.md +220 -0
  259. plans/tests-audit/6-Audit-Deliverables.md +220 -0
  260. plans/tests-audit/7-Closeout.md +252 -0
  261. plans/tests-audit/artifacts/ARCHITECTURE_COMPLIANCE_REPORT.md +315 -0
  262. plans/tests-audit/artifacts/ARCHITECTURE_RECOMMENDATIONS.md +943 -0
  263. plans/tests-audit/artifacts/COMPREHENSIVE_AUDIT_REPORT.md +356 -0
  264. plans/tests-audit/artifacts/CONTRIBUTING_ENHANCED_TEMPLATE.md +419 -0
  265. plans/tests-audit/artifacts/COVERAGE_GAP_ANALYSIS.md +152 -0
  266. plans/tests-audit/artifacts/DOCUMENTATION_ENHANCEMENT_REPORT.md +502 -0
  267. plans/tests-audit/artifacts/EXECUTIVE_AUDIT_SUMMARY.md +129 -0
  268. plans/tests-audit/artifacts/IMPLEMENTATION_ROADMAP.md +647 -0
  269. plans/tests-audit/artifacts/NUMERICAL_RECOMMENDATIONS.md +739 -0
  270. plans/tests-audit/artifacts/NUMERICAL_STABILITY_GUIDE_TEMPLATE.rst +451 -0
  271. plans/tests-audit/artifacts/NUMERICAL_STABILITY_REPORT.md +301 -0
  272. plans/tests-audit/artifacts/PHASE_3_SUMMARY.md +280 -0
  273. plans/tests-audit/artifacts/PHASE_4_SUMMARY.md +229 -0
  274. plans/tests-audit/artifacts/PHASE_5_SUMMARY.md +292 -0
  275. plans/tests-audit/artifacts/PHASE_6_CLOSEOUT.md +278 -0
  276. plans/tests-audit/artifacts/PHYSICS_GUIDE_TEMPLATE.rst +268 -0
  277. plans/tests-audit/artifacts/PHYSICS_VALIDATION_REPORT.md +235 -0
  278. plans/tests-audit/artifacts/TECHNICAL_DELIVERABLES_PACKAGE.md +2502 -0
  279. plans/tests-audit/artifacts/TEST_INVENTORY.csv +1204 -0
  280. plans/tests-audit/artifacts/TEST_INVENTORY.md +135 -0
  281. plans/tests-audit/artifacts/test_discovery_analysis.py +231 -0
  282. plans/tests-audit/artifacts/test_parser.py +395 -0
  283. solarwindpy/README.md +3 -0
  284. solarwindpy/Untitled.ipynb +54 -0
  285. solarwindpy/__init__.py +74 -0
  286. solarwindpy/core/__init__.py +23 -0
  287. solarwindpy/core/alfvenic_turbulence.py +804 -0
  288. solarwindpy/core/base.py +267 -0
  289. solarwindpy/core/ions.py +309 -0
  290. solarwindpy/core/plasma.py +2133 -0
  291. solarwindpy/core/spacecraft.py +256 -0
  292. solarwindpy/core/tensor.py +90 -0
  293. solarwindpy/core/units_constants.py +199 -0
  294. solarwindpy/core/vector.py +328 -0
  295. solarwindpy/fitfunctions/__init__.py +20 -0
  296. solarwindpy/fitfunctions/core.py +734 -0
  297. solarwindpy/fitfunctions/exponentials.py +188 -0
  298. solarwindpy/fitfunctions/gaussians.py +264 -0
  299. solarwindpy/fitfunctions/lines.py +116 -0
  300. solarwindpy/fitfunctions/moyal.py +71 -0
  301. solarwindpy/fitfunctions/plots.py +751 -0
  302. solarwindpy/fitfunctions/power_laws.py +209 -0
  303. solarwindpy/fitfunctions/tex_info.py +568 -0
  304. solarwindpy/fitfunctions/trend_fits.py +482 -0
  305. solarwindpy/instabilities/__init__.py +16 -0
  306. solarwindpy/instabilities/beta_ani.py +82 -0
  307. solarwindpy/instabilities/verscharen2016.py +631 -0
  308. solarwindpy/plotting/__init__.py +33 -0
  309. solarwindpy/plotting/agg_plot.py +489 -0
  310. solarwindpy/plotting/base.py +465 -0
  311. solarwindpy/plotting/hist1d.py +405 -0
  312. solarwindpy/plotting/hist2d.py +1035 -0
  313. solarwindpy/plotting/histograms.py +1845 -0
  314. solarwindpy/plotting/labels/__init__.py +104 -0
  315. solarwindpy/plotting/labels/base.py +686 -0
  316. solarwindpy/plotting/labels/chemistry.py +19 -0
  317. solarwindpy/plotting/labels/composition.py +100 -0
  318. solarwindpy/plotting/labels/datetime.py +235 -0
  319. solarwindpy/plotting/labels/elemental_abundance.py +73 -0
  320. solarwindpy/plotting/labels/special.py +794 -0
  321. solarwindpy/plotting/orbits.py +515 -0
  322. solarwindpy/plotting/scatter.py +99 -0
  323. solarwindpy/plotting/select_data_from_figure.py +329 -0
  324. solarwindpy/plotting/spiral.py +980 -0
  325. solarwindpy/plotting/tools.py +434 -0
  326. solarwindpy/scripts/__init__.py +1 -0
  327. solarwindpy/scripts/logs/.gitignore +1 -0
  328. solarwindpy/solar_activity/__init__.py +53 -0
  329. solarwindpy/solar_activity/base.py +605 -0
  330. solarwindpy/solar_activity/lisird/__init__.py +3 -0
  331. solarwindpy/solar_activity/lisird/extrema_calculator.py +394 -0
  332. solarwindpy/solar_activity/lisird/lisird.py +319 -0
  333. solarwindpy/solar_activity/plots.py +116 -0
  334. solarwindpy/solar_activity/sunspot_number/.DS_Store +0 -0
  335. solarwindpy/solar_activity/sunspot_number/__init__.py +3 -0
  336. solarwindpy/solar_activity/sunspot_number/sidc.py +556 -0
  337. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv +72 -0
  338. solarwindpy/solar_activity/sunspot_number/ssn_extrema.csv.silso +72 -0
  339. solarwindpy/tools/__init__.py +162 -0
  340. solarwindpy-0.1.1.dist-info/METADATA +181 -0
  341. solarwindpy-0.1.1.dist-info/RECORD +409 -0
  342. {solarwindpy-0.0.1.dev0.dist-info → solarwindpy-0.1.1.dist-info}/WHEEL +1 -1
  343. solarwindpy-0.1.1.dist-info/licenses/LICENSE.rst +32 -0
  344. solarwindpy-0.1.1.dist-info/top_level.txt +3 -0
  345. tests/__init__.py +1 -0
  346. tests/conftest.py +10 -0
  347. tests/core/__init__.py +1 -0
  348. tests/core/test_alfvenic_turbulence.py +544 -0
  349. tests/core/test_base.py +112 -0
  350. tests/core/test_base_head_tail.py +29 -0
  351. tests/core/test_base_mi_tuples.py +11 -0
  352. tests/core/test_core_verify_datetimeindex.py +32 -0
  353. tests/core/test_ions.py +325 -0
  354. tests/core/test_plasma.py +2581 -0
  355. tests/core/test_plasma_io.py +12 -0
  356. tests/core/test_quantities.py +507 -0
  357. tests/core/test_spacecraft.py +210 -0
  358. tests/core/test_units_constants.py +22 -0
  359. tests/data/epoch.csv +4 -0
  360. tests/data/plasma.csv +4 -0
  361. tests/data/spacecraft.csv +4 -0
  362. tests/fitfunctions/conftest.py +60 -0
  363. tests/fitfunctions/test_core.py +193 -0
  364. tests/fitfunctions/test_exponentials.py +342 -0
  365. tests/fitfunctions/test_gaussians.py +142 -0
  366. tests/fitfunctions/test_lines.py +349 -0
  367. tests/fitfunctions/test_moyal.py +258 -0
  368. tests/fitfunctions/test_plots.py +258 -0
  369. tests/fitfunctions/test_power_laws.py +365 -0
  370. tests/fitfunctions/test_tex_info.py +183 -0
  371. tests/fitfunctions/test_trend_fit_properties.py +31 -0
  372. tests/fitfunctions/test_trend_fits.py +244 -0
  373. tests/plotting/__init__.py +1 -0
  374. tests/plotting/labels/__init__.py +1 -0
  375. tests/plotting/labels/test_chemistry.py +243 -0
  376. tests/plotting/labels/test_composition.py +345 -0
  377. tests/plotting/labels/test_datetime.py +445 -0
  378. tests/plotting/labels/test_elemental_abundance.py +366 -0
  379. tests/plotting/labels/test_init.py +66 -0
  380. tests/plotting/labels/test_labels_base.py +347 -0
  381. tests/plotting/labels/test_special.py +550 -0
  382. tests/plotting/test_agg_plot.py +602 -0
  383. tests/plotting/test_base.py +752 -0
  384. tests/plotting/test_fixtures_utilities.py +775 -0
  385. tests/plotting/test_histograms.py +546 -0
  386. tests/plotting/test_integration.py +675 -0
  387. tests/plotting/test_orbits.py +435 -0
  388. tests/plotting/test_performance.py +708 -0
  389. tests/plotting/test_scatter.py +752 -0
  390. tests/plotting/test_select_data_from_figure.py +1209 -0
  391. tests/plotting/test_spiral.py +573 -0
  392. tests/plotting/test_tools.py +607 -0
  393. tests/plotting/test_visual_validation.py +465 -0
  394. tests/solar_activity/__init__.py +1 -0
  395. tests/solar_activity/lisird/__init__.py +1 -0
  396. tests/solar_activity/lisird/test_extrema_calculator.py +593 -0
  397. tests/solar_activity/lisird/test_lisird_id.py +187 -0
  398. tests/solar_activity/sunspot_number/__init__.py +1 -0
  399. tests/solar_activity/sunspot_number/test_init.py +399 -0
  400. tests/solar_activity/sunspot_number/test_sidc.py +465 -0
  401. tests/solar_activity/sunspot_number/test_sidc_id.py +223 -0
  402. tests/solar_activity/sunspot_number/test_sidc_loader.py +275 -0
  403. tests/solar_activity/sunspot_number/test_ssn_extrema.py +406 -0
  404. tests/solar_activity/test_base.py +656 -0
  405. tests/solar_activity/test_init.py +396 -0
  406. tests/solar_activity/test_plots.py +371 -0
  407. tests/test_circular_imports.py +408 -0
  408. tests/test_issue_titles.py +25 -0
  409. tests/test_statusline.py +298 -0
  410. solarwindpy-0.0.1.dev0.dist-info/METADATA +0 -14
  411. solarwindpy-0.0.1.dev0.dist-info/RECORD +0 -4
  412. solarwindpy-0.0.1.dev0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,451 @@
1
+ Numerical Stability Guide
2
+ =========================
3
+
4
+ SolarWindPy performs complex plasma physics calculations that require careful attention
5
+ to numerical stability and precision. This guide helps users understand potential
6
+ numerical limitations and implement robust analysis procedures.
7
+
8
+ .. important::
9
+ Numerical stability is critical for scientific accuracy. Always validate
10
+ input parameters and verify results are within expected physical ranges.
11
+
12
+ Understanding Numerical Limitations
13
+ ====================================
14
+
15
+ Floating-Point Precision
16
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
17
+
18
+ SolarWindPy uses double-precision floating-point arithmetic (64-bit) for all
19
+ physics calculations, providing approximately 15-17 decimal digits of precision.
20
+
21
+ **Precision Considerations:**
22
+ - Calculations maintain accuracy for typical solar wind parameter ranges
23
+ - Extreme values (very large or very small) may experience precision loss
24
+ - Repeated operations can accumulate rounding errors
25
+
26
+ **Recommended Parameter Ranges:**
27
+
28
+ ============================== ==================== ========================
29
+ Parameter Reliable Range Precision Notes
30
+ ============================== ==================== ========================
31
+ Temperature (K) 1e3 - 1e8 Full precision maintained
32
+ Density (kg/m³) 1e-25 - 1e-15 Below 1e-25 may be unstable
33
+ Magnetic Field (nT) 0.1 - 1000 Near-zero values problematic
34
+ Velocity (m/s) 1e2 - 1e6 Relativistic speeds not supported
35
+ ============================== ==================== ========================
36
+
37
+ Common Numerical Issues
38
+ =======================
39
+
40
+ Physics-Breaking Edge Cases
41
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42
+
43
+ **Zero Density Singularities (CRITICAL)**
44
+ Alfvén speed calculations become infinite when plasma density approaches zero.
45
+
46
+ .. danger::
47
+ Code: ``rho.pow(-0.5)`` produces ``inf`` when ``rho = 0``
48
+
49
+ **Impact**: Infinite Alfvén speeds propagate through all MHD calculations
50
+
51
+ **Solution**: Always validate ``density > minimum_threshold`` before calculation
52
+
53
+ .. code-block:: python
54
+
55
+ # UNSAFE: Can produce infinite results
56
+ alfven_speed = plasma.alfven_speed()
57
+
58
+ # SAFE: With density validation
59
+ min_density = 1e-23 # kg/m³
60
+ valid_density = plasma.density.sum(axis=1) > min_density
61
+ alfven_speed = plasma.alfven_speed()[valid_density]
62
+
63
+ **Negative Thermal Energy (CRITICAL)**
64
+ Thermal speed calculations fail catastrophically with negative temperatures.
65
+
66
+ .. danger::
67
+ Code: ``temperature.pow(0.5)`` produces ``NaN`` when ``temperature < 0``
68
+
69
+ **Impact**: NaN thermal speeds invalidate pressure and temperature analysis
70
+
71
+ **Solution**: Validate ``temperature > 0`` before all thermal calculations
72
+
73
+ .. code-block:: python
74
+
75
+ # UNSAFE: Can produce NaN results
76
+ thermal_speed = plasma.thermal_speed()
77
+
78
+ # SAFE: With temperature validation
79
+ valid_temp = plasma.temperature > 0
80
+ thermal_speed = plasma.thermal_speed()[valid_temp]
81
+
82
+ Precision Loss Patterns
83
+ ~~~~~~~~~~~~~~~~~~~~~~~
84
+
85
+ **Catastrophic Cancellation**
86
+ Occurs when subtracting nearly equal large numbers, losing significant digits.
87
+
88
+ .. warning::
89
+ Vector magnitude calculations may lose precision for nearly parallel vectors:
90
+
91
+ ``sqrt(x² + y² + z²)`` when components are very different magnitudes
92
+
93
+ .. code-block:: python
94
+
95
+ # Example: Problematic for small perpendicular components
96
+ import numpy as np
97
+
98
+ # Large parallel component with small perpendicular
99
+ x, y, z = 1e6, 1e-3, 1e-3
100
+ magnitude = np.sqrt(x**2 + y**2 + z**2)
101
+ # May lose precision in small components
102
+
103
+ **Scale-Dependent Errors**
104
+ Calculations become unreliable at parameter extremes.
105
+
106
+ .. warning::
107
+ - Very large values: Risk of overflow to infinity
108
+ - Very small values: Risk of underflow to zero
109
+ - Mixed scales: Loss of precision in smaller values
110
+
111
+ Parameter Validation Framework
112
+ ==============================
113
+
114
+ Input Validation Procedures
115
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116
+
117
+ **Step 1: Physical Bounds Checking**
118
+
119
+ .. code-block:: python
120
+
121
+ def validate_physics_parameters(plasma_data):
122
+ """Validate plasma parameters for physics calculations."""
123
+
124
+ validation_mask = np.ones(len(plasma_data), dtype=bool)
125
+ warnings = []
126
+
127
+ # Temperature validation
128
+ temp_valid = plasma_data.temperature > 0
129
+ if not temp_valid.all():
130
+ invalid_count = (~temp_valid).sum()
131
+ warnings.append(f"{invalid_count} invalid temperatures (≤ 0)")
132
+ validation_mask &= temp_valid
133
+
134
+ # Density validation
135
+ min_density = 1e-23 # kg/m³
136
+ density_total = plasma_data.density.sum(axis=1)
137
+ density_valid = density_total > min_density
138
+ if not density_valid.all():
139
+ invalid_count = (~density_valid).sum()
140
+ warnings.append(f"{invalid_count} invalid densities (≤ {min_density})")
141
+ validation_mask &= density_valid
142
+
143
+ # Magnetic field validation
144
+ min_b_field = 0.1 # nT
145
+ b_magnitude = plasma_data.magnetic_field_magnitude()
146
+ b_field_valid = b_magnitude > min_b_field
147
+ if not b_field_valid.all():
148
+ invalid_count = (~b_field_valid).sum()
149
+ warnings.append(f"{invalid_count} invalid B-fields (≤ {min_b_field})")
150
+ validation_mask &= b_field_valid
151
+
152
+ return {
153
+ 'valid_mask': validation_mask,
154
+ 'warnings': warnings,
155
+ 'valid_fraction': validation_mask.sum() / len(validation_mask)
156
+ }
157
+
158
+ **Step 2: Result Range Validation**
159
+
160
+ .. code-block:: python
161
+
162
+ def validate_calculation_results(results, calculation_type):
163
+ """Validate physics calculation results are within expected ranges."""
164
+
165
+ expected_ranges = {
166
+ 'thermal_speed': (1e3, 1e6), # m/s
167
+ 'alfven_speed': (1e4, 1e6), # m/s
168
+ 'plasma_frequency': (1e3, 1e5), # Hz
169
+ 'plasma_beta': (1e-3, 1e2), # dimensionless
170
+ }
171
+
172
+ if calculation_type not in expected_ranges:
173
+ return {'valid': True, 'warnings': []}
174
+
175
+ min_val, max_val = expected_ranges[calculation_type]
176
+
177
+ # Check for NaN/Inf values
178
+ finite_mask = np.isfinite(results)
179
+ if not finite_mask.all():
180
+ non_finite_count = (~finite_mask).sum()
181
+ return {
182
+ 'valid': False,
183
+ 'warnings': [f"{non_finite_count} non-finite results in {calculation_type}"]
184
+ }
185
+
186
+ # Check physical ranges
187
+ range_mask = (results >= min_val) & (results <= max_val)
188
+ if not range_mask.all():
189
+ out_of_range_count = (~range_mask).sum()
190
+ return {
191
+ 'valid': False,
192
+ 'warnings': [f"{out_of_range_count} {calculation_type} results outside expected range [{min_val}, {max_val}]"]
193
+ }
194
+
195
+ return {'valid': True, 'warnings': []}
196
+
197
+ Error Detection and Recovery
198
+ ============================
199
+
200
+ Systematic Error Checking
201
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
202
+
203
+ **NaN Detection and Handling**
204
+
205
+ .. code-block:: python
206
+
207
+ def handle_calculation_errors(results, calculation_name):
208
+ """Systematic error detection and user guidance."""
209
+
210
+ # Check for NaN values
211
+ nan_mask = np.isnan(results)
212
+ if nan_mask.any():
213
+ nan_count = nan_mask.sum()
214
+ print(f"Warning: {nan_count} NaN values in {calculation_name}")
215
+ print("Possible causes:")
216
+ print("- Negative input values (temperature, energy)")
217
+ print("- Invalid mathematical operations (sqrt of negative)")
218
+ print("- Data corruption or measurement errors")
219
+ return results[~nan_mask] # Return only valid values
220
+
221
+ # Check for infinite values
222
+ inf_mask = np.isinf(results)
223
+ if inf_mask.any():
224
+ inf_count = inf_mask.sum()
225
+ print(f"Warning: {inf_count} infinite values in {calculation_name}")
226
+ print("Possible causes:")
227
+ print("- Division by zero (zero density in Alfvén speed)")
228
+ print("- Overflow in exponential calculations")
229
+ print("- Extreme parameter values")
230
+ return results[~inf_mask] # Return only finite values
231
+
232
+ return results
233
+
234
+ **Automatic Recovery Procedures**
235
+
236
+ .. code-block:: python
237
+
238
+ def robust_thermal_speed(plasma_data, recovery_mode='filter'):
239
+ """Calculate thermal speeds with automatic error recovery."""
240
+
241
+ # Step 1: Input validation
242
+ valid_temp = plasma_data.temperature > 0
243
+ if not valid_temp.all():
244
+ print(f"Filtering {(~valid_temp).sum()} invalid temperatures")
245
+ if recovery_mode == 'filter':
246
+ plasma_data = plasma_data[valid_temp]
247
+ elif recovery_mode == 'replace':
248
+ # Replace invalid with median
249
+ plasma_data.temperature[~valid_temp] = plasma_data.temperature[valid_temp].median()
250
+
251
+ # Step 2: Calculation with error handling
252
+ try:
253
+ thermal_speeds = plasma_data.thermal_speed()
254
+ except Exception as e:
255
+ print(f"Calculation failed: {e}")
256
+ return None
257
+
258
+ # Step 3: Result validation
259
+ validation = validate_calculation_results(thermal_speeds, 'thermal_speed')
260
+ if not validation['valid']:
261
+ print("Result validation warnings:")
262
+ for warning in validation['warnings']:
263
+ print(f" - {warning}")
264
+
265
+ return thermal_speeds
266
+
267
+ Performance vs. Precision Trade-offs
268
+ =====================================
269
+
270
+ Optimization Considerations
271
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
272
+
273
+ **Memory Usage**
274
+ Large datasets may require precision trade-offs for memory efficiency.
275
+
276
+ .. code-block:: python
277
+
278
+ # Memory-efficient processing for large datasets
279
+ def process_large_dataset(plasma_data, chunk_size=10000):
280
+ """Process large datasets in chunks to maintain precision."""
281
+
282
+ results = []
283
+ for i in range(0, len(plasma_data), chunk_size):
284
+ chunk = plasma_data[i:i+chunk_size]
285
+
286
+ # Validate chunk
287
+ validation = validate_physics_parameters(chunk)
288
+ if validation['valid_fraction'] < 0.9:
289
+ print(f"Chunk {i//chunk_size}: Low valid fraction ({validation['valid_fraction']:.2f})")
290
+
291
+ # Process valid data only
292
+ valid_chunk = chunk[validation['valid_mask']]
293
+ chunk_results = valid_chunk.thermal_speed()
294
+ results.append(chunk_results)
295
+
296
+ return pd.concat(results)
297
+
298
+ **Precision Preservation**
299
+ Maintain numerical accuracy in complex calculations.
300
+
301
+ .. code-block:: python
302
+
303
+ # Use appropriate algorithms for numerical stability
304
+ from scipy.special import logsumexp
305
+
306
+ # Instead of: exp(a) + exp(b) + exp(c) (overflow risk)
307
+ # Use: exp(logsumexp([a, b, c])) (numerically stable)
308
+
309
+ Best Practices Summary
310
+ ======================
311
+
312
+ Input Validation Checklist
313
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
314
+
315
+ Before any physics calculation:
316
+
317
+ 1. ✅ **Check for positive physical quantities**
318
+ - Temperature > 0 K
319
+ - Density > minimum_threshold
320
+ - Energy > 0
321
+
322
+ 2. ✅ **Validate parameter ranges**
323
+ - Within instrument measurement ranges
324
+ - Consistent with physical expectations
325
+ - No extreme values that could cause overflow
326
+
327
+ 3. ✅ **Apply quality filters**
328
+ - Remove flagged data points
329
+ - Filter measurement uncertainties
330
+ - Apply temporal consistency checks
331
+
332
+ Result Validation Checklist
333
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
334
+
335
+ After physics calculations:
336
+
337
+ 1. ✅ **Check for mathematical errors**
338
+ - No NaN values in results
339
+ - No infinite values
340
+ - All results are finite numbers
341
+
342
+ 2. ✅ **Validate physical ranges**
343
+ - Results within expected bounds
344
+ - Consistent with literature values
345
+ - Reasonable for solar wind conditions
346
+
347
+ 3. ✅ **Cross-validate results**
348
+ - Compare with alternative methods
349
+ - Check internal consistency
350
+ - Verify with established benchmarks
351
+
352
+ Long-term Data Quality
353
+ ~~~~~~~~~~~~~~~~~~~~~~
354
+
355
+ For ongoing analysis projects:
356
+
357
+ 1. **Document validation procedures** used
358
+ 2. **Track validation statistics** over time
359
+ 3. **Monitor parameter distributions** for anomalies
360
+ 4. **Implement automated quality checks** in analysis pipelines
361
+
362
+ Troubleshooting Guide
363
+ =====================
364
+
365
+ Common Error Messages
366
+ ~~~~~~~~~~~~~~~~~~~~~
367
+
368
+ **"RuntimeWarning: invalid value encountered in sqrt"**
369
+ - **Cause**: Attempting square root of negative values
370
+ - **Solution**: Validate inputs are positive before calculation
371
+ - **Prevention**: Use temperature/energy validation functions
372
+
373
+ **"RuntimeWarning: divide by zero encountered"**
374
+ - **Cause**: Zero density in Alfvén speed or similar calculations
375
+ - **Solution**: Apply minimum density threshold
376
+ - **Prevention**: Systematic density validation
377
+
378
+ **"Results contain NaN values"**
379
+ - **Cause**: Invalid mathematical operations in calculation chain
380
+ - **Solution**: Trace back to identify source of invalid inputs
381
+ - **Prevention**: Comprehensive input validation framework
382
+
383
+ **"Results outside expected physical range"**
384
+ - **Cause**: Extreme parameter values or measurement errors
385
+ - **Solution**: Apply physical bounds checking and data filtering
386
+ - **Prevention**: Implement systematic data quality procedures
387
+
388
+ Getting Help
389
+ ~~~~~~~~~~~~
390
+
391
+ If you encounter numerical stability issues:
392
+
393
+ 1. **Check this guide** for common solutions
394
+ 2. **Review input data** for measurement anomalies
395
+ 3. **Consult physics literature** for expected parameter ranges
396
+ 4. **Report persistent issues** to SolarWindPy developers with minimal reproducible examples
397
+
398
+ Advanced Topics
399
+ ===============
400
+
401
+ Custom Validation Functions
402
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
403
+
404
+ For specialized analysis needs, implement custom validation:
405
+
406
+ .. code-block:: python
407
+
408
+ def custom_solar_wind_validation(plasma_data):
409
+ """Custom validation for specific solar wind conditions."""
410
+
411
+ # Example: Validate for high-speed stream analysis
412
+ velocity_threshold = 500e3 # m/s
413
+ high_speed_mask = plasma_data.velocity.magnitude() > velocity_threshold
414
+
415
+ # Apply stricter validation for high-speed conditions
416
+ if high_speed_mask.any():
417
+ # Require higher precision for extreme conditions
418
+ min_density = 1e-22 # kg/m³ (stricter)
419
+ temp_range = (1e5, 1e7) # K (narrower range)
420
+
421
+ # Custom validation logic
422
+ # ...
423
+
424
+ return validation_results
425
+
426
+ Precision Monitoring
427
+ ~~~~~~~~~~~~~~~~~~~~
428
+
429
+ Track numerical precision throughout analysis:
430
+
431
+ .. code-block:: python
432
+
433
+ def precision_monitor(calculation_func, *args, **kwargs):
434
+ """Monitor numerical precision of calculations."""
435
+
436
+ # Perform calculation with monitoring
437
+ start_precision = np.finfo(np.float64).eps
438
+
439
+ result = calculation_func(*args, **kwargs)
440
+
441
+ # Estimate precision loss
442
+ relative_error = np.abs((result - expected_result) / expected_result)
443
+ precision_loss = relative_error / start_precision
444
+
445
+ if precision_loss.max() > 1e6:
446
+ print(f"Warning: Significant precision loss detected (factor of {precision_loss.max():.1e})")
447
+
448
+ return result, precision_loss
449
+
450
+ This guide provides the foundation for numerically robust plasma physics analysis
451
+ with SolarWindPy. Always prioritize validation and verification for scientific accuracy.