avaframe 2.0a0__tar.gz → 2.0a3__tar.gz

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.
Files changed (225) hide show
  1. {avaframe-2.0a0 → avaframe-2.0a3}/.coveragerc +1 -0
  2. {avaframe-2.0a0 → avaframe-2.0a3}/.github/workflows/runTestSinglePython.yml +13 -13
  3. {avaframe-2.0a0 → avaframe-2.0a3}/PKG-INFO +3 -3
  4. avaframe-2.0a3/avaframe/RELEASE-VERSION.txt +1 -0
  5. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/energyLineTestCfg.ini +2 -2
  6. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/rotationTestCfg.ini +2 -2
  7. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/simiSolTest.py +4 -3
  8. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/aimecTools.py +74 -22
  9. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/ana3AIMEC.py +21 -8
  10. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/probAna.py +5 -4
  11. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAToolsCython.c +459 -426
  12. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAfunctionsCython.c +6887 -6066
  13. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAfunctionsCython.pyx +57 -0
  14. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/checkCfg.py +38 -0
  15. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/com1DFA.py +431 -170
  16. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/com1DFACfg.ini +66 -10
  17. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/com1DFATools.py +10 -6
  18. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/damCom1DFA.c +137 -110
  19. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/deriveParameterSet.py +122 -60
  20. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/particleTools.py +7 -2
  21. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com3Hybrid/com3HybridCfg.ini +4 -4
  22. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/com6RockAvalancheCfg.ini +2 -2
  23. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/scarp.py +5 -5
  24. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/com7RegionalCfg.ini +0 -22
  25. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/com8MoTPSA.py +146 -71
  26. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/com8MoTPSACfg.ini +12 -14
  27. avaframe-2.0a3/avaframe/com9MoTVoellmy/MoT-Voellmy_linux.exe +0 -0
  28. avaframe-2.0a3/avaframe/com9MoTVoellmy/MoT-Voellmy_win.exe +0 -0
  29. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/com9MoTVoellmy.py +136 -72
  30. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/com9MoTVoellmyCfg.ini +19 -22
  31. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/runCom9MoTVoellmy.py +35 -16
  32. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/getInput.py +261 -53
  33. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/rasterUtils.py +25 -0
  34. avaframe-2.0a3/avaframe/in3Utils/MoTUtils.py +393 -0
  35. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/cfgHandling.py +1 -1
  36. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/geoTrans.py +1 -1
  37. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out1Peak/outPlotAllPeak.py +55 -20
  38. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outAIMEC.py +524 -288
  39. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outCom1DFA.py +50 -18
  40. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outQuickPlot.py +11 -8
  41. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotAreaRefDiffs.py +6 -5
  42. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/PKG-INFO +3 -3
  43. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/requires.txt +2 -2
  44. {avaframe-2.0a0 → avaframe-2.0a3}/pyproject.toml +14 -3
  45. avaframe-2.0a0/avaframe/RELEASE-VERSION.txt +0 -1
  46. avaframe-2.0a0/avaframe/com9MoTVoellmy/MoT-Voellmy_linux.exe +0 -0
  47. avaframe-2.0a0/avaframe/com9MoTVoellmy/MoT-Voellmy_win.exe +0 -0
  48. avaframe-2.0a0/avaframe/in3Utils/MoTUtils.py +0 -191
  49. {avaframe-2.0a0 → avaframe-2.0a3}/.gitattributes +0 -0
  50. {avaframe-2.0a0 → avaframe-2.0a3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  51. {avaframe-2.0a0 → avaframe-2.0a3}/.github/ISSUE_TEMPLATE/com1dfa-dev-topic.md +0 -0
  52. {avaframe-2.0a0 → avaframe-2.0a3}/.github/ISSUE_TEMPLATE/standard-issue.md +0 -0
  53. {avaframe-2.0a0 → avaframe-2.0a3}/.github/workflows/buildAndUploadPyPi.yml +0 -0
  54. {avaframe-2.0a0 → avaframe-2.0a3}/.gitignore +0 -0
  55. {avaframe-2.0a0 → avaframe-2.0a3}/.qlty/qlty.toml +0 -0
  56. {avaframe-2.0a0 → avaframe-2.0a3}/.readthedocs.yml +0 -0
  57. {avaframe-2.0a0 → avaframe-2.0a3}/.zenodo.json +0 -0
  58. {avaframe-2.0a0 → avaframe-2.0a3}/LICENSE.txt +0 -0
  59. {avaframe-2.0a0 → avaframe-2.0a3}/MANIFEST.in +0 -0
  60. {avaframe-2.0a0 → avaframe-2.0a3}/README.md +0 -0
  61. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/__init__.py +0 -0
  62. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/FPtest.py +0 -0
  63. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/__init__.py +0 -0
  64. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/analysisTools.py +0 -0
  65. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/damBreak.py +0 -0
  66. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/energyLineTest.py +0 -0
  67. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/rotationTest.py +0 -0
  68. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/testUtilities.py +0 -0
  69. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/__init__.py +0 -0
  70. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/ana3AIMECCfg.ini +0 -0
  71. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/dfa2Aimec.py +0 -0
  72. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/__init__.py +0 -0
  73. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/getStats.py +0 -0
  74. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/getStatsCfg.ini +0 -0
  75. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/probAnaCfg.ini +0 -0
  76. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/DFAPathGeneration.py +0 -0
  77. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/DFAPathGenerationCfg.ini +0 -0
  78. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/__init__.py +0 -0
  79. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/distanceTimeAnalysis.py +0 -0
  80. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/distanceTimeAnalysisCfg.ini +0 -0
  81. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/avaframeCfg.ini +0 -0
  82. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAToolsCython.pxd +0 -0
  83. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAToolsCython.pyx +0 -0
  84. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAfunctionsCython.pxd +0 -0
  85. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAtools.py +0 -0
  86. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/__init__.py +0 -0
  87. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/damCom1DFA.pxd +0 -0
  88. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/damCom1DFA.pyx +0 -0
  89. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/particleInitialisation.py +0 -0
  90. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/testSPH.py +0 -0
  91. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/timeDiscretizations.py +0 -0
  92. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com2AB/__init__.py +0 -0
  93. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com2AB/com2AB.py +0 -0
  94. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com2AB/com2ABCfg.ini +0 -0
  95. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com3Hybrid/__init__.py +0 -0
  96. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com3Hybrid/com3Hybrid.py +0 -0
  97. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/__init__.py +0 -0
  98. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/com4FlowPy.py +0 -0
  99. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/com4FlowPyCfg.ini +0 -0
  100. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/flowClass.py +0 -0
  101. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/flowCore.py +0 -0
  102. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/splitAndMerge.py +0 -0
  103. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com5SnowSlide/__init__.py +0 -0
  104. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com5SnowSlide/com5SnowSlide.py +0 -0
  105. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com5SnowSlide/com5SnowSlideCfg.ini +0 -0
  106. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/__init__.py +0 -0
  107. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/com6RockAvalanche.py +0 -0
  108. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/scarpCfg.ini +0 -0
  109. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/__init__.py +0 -0
  110. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/com7Regional.py +0 -0
  111. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/splitInputs.py +0 -0
  112. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/splitInputsCfg.ini +0 -0
  113. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/README_dev.md +0 -0
  114. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/__init__.py +0 -0
  115. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/runAna4ProbAnaCom8MoTPSA.py +0 -0
  116. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/runCom8MoTPSA.py +0 -0
  117. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/__init__.py +0 -0
  118. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/__init__.py +0 -0
  119. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/computeFromDistribution.py +0 -0
  120. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/computeFromDistributionCfg.ini +0 -0
  121. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/__init__.py +0 -0
  122. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/ascUtils.py +0 -0
  123. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/shpConversion.py +0 -0
  124. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/transformFields.py +0 -0
  125. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/__init__.py +0 -0
  126. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/cfgUtils.py +0 -0
  127. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/fileHandlerUtils.py +0 -0
  128. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/generateTopo.py +0 -0
  129. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/generateTopoCfg.ini +0 -0
  130. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/getReleaseArea.py +0 -0
  131. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/getReleaseAreaCfg.ini +0 -0
  132. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/initialiseDirs.py +0 -0
  133. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/initializeProject.py +0 -0
  134. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/logUtils.py +0 -0
  135. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/logging.conf +0 -0
  136. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/__init__.py +0 -0
  137. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/generateCompareReport.py +0 -0
  138. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/generateCompareReportCfg.ini +0 -0
  139. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/generateReport.py +0 -0
  140. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out1Peak/__init__.py +0 -0
  141. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out1Peak/outPlotAllPeakDiffs.py +0 -0
  142. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/__init__.py +0 -0
  143. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/amaPlots.py +0 -0
  144. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/in1DataPlots.py +0 -0
  145. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outAB.py +0 -0
  146. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outAna1Plots.py +0 -0
  147. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outCom3Plots.py +0 -0
  148. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outCom7Regional.py +0 -0
  149. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outContours.py +0 -0
  150. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outDebugPlots.py +0 -0
  151. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outDistanceTimeAnalysis.py +0 -0
  152. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outParticlesAnalysis.py +0 -0
  153. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outParticlesAnalysisCfg.ini +0 -0
  154. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outProfilePlots.py +0 -0
  155. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outQuickPlotCfg.ini +0 -0
  156. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outTopo.py +0 -0
  157. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outTransformPlots.py +0 -0
  158. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/plotUtils.py +0 -0
  159. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/plotUtilsCfg.ini +0 -0
  160. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/statsPlots.py +0 -0
  161. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runAna4ProbAna.py +0 -0
  162. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runAna5DFAPathGeneration.py +0 -0
  163. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom1DFA.py +0 -0
  164. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom2AB.py +0 -0
  165. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom4FlowPy.py +0 -0
  166. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom5SnowSlide.py +0 -0
  167. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom6RockAvalanche.py +0 -0
  168. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom6Scarp.py +0 -0
  169. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom7Regional.py +0 -0
  170. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runIn1RelInfo.py +0 -0
  171. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runOperational.py +0 -0
  172. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runPlotCom1DFA.py +0 -0
  173. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runProbAnalysisOnly.py +0 -0
  174. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAimecSummaryPlot.py +0 -0
  175. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAna3AIMEC.py +0 -0
  176. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAna3AIMECCompMods.py +0 -0
  177. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAnalyzeDamBreak.py +0 -0
  178. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAnalyzeSimilaritySol.py +0 -0
  179. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runCom3Hybrid.py +0 -0
  180. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runComputeDist.py +0 -0
  181. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runContourPlot.py +0 -0
  182. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runCreateProbCfgsFlowPy.py +0 -0
  183. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runD2Th.py +0 -0
  184. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runDamBreak.py +0 -0
  185. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runEnergyLineTest.py +0 -0
  186. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runExportToCsv.py +0 -0
  187. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runFetchPointValues.py +0 -0
  188. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runGenProjTopoRelease.py +0 -0
  189. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runGenerateTopo.py +0 -0
  190. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runInitializeProject.py +0 -0
  191. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runParticleAnalysisPlots.py +0 -0
  192. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotAlongGivenProfile.py +0 -0
  193. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotContoursFromAsc.py +0 -0
  194. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotContoursFromAscCfg.ini +0 -0
  195. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotProfile.py +0 -0
  196. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotTopo.py +0 -0
  197. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runProbAna.py +0 -0
  198. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runQuickPlotOne.py +0 -0
  199. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runQuickPlotSimple.py +0 -0
  200. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runRangeTimeDiagram.py +0 -0
  201. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runRenaming.py +0 -0
  202. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runRotationTest.py +0 -0
  203. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runSimilaritySol.py +0 -0
  204. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runStatsExample.py +0 -0
  205. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runStatsPlots.py +0 -0
  206. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runTestFP.py +0 -0
  207. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runThalwegTimeDiagram.py +0 -0
  208. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runVariationsTestsCom1DFA.py +0 -0
  209. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runWriteDesDict.py +0 -0
  210. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runStandardTestsCom1DFA.py +0 -0
  211. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runTmp1Ex.py +0 -0
  212. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runUpdateBenchmarkTestsCom1DFA.py +0 -0
  213. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/tmp1Ex/__init__.py +0 -0
  214. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/tmp1Ex/tmp1Ex.py +0 -0
  215. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/tmp1Ex/tmp1ExCfg.ini +0 -0
  216. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/version.py +0 -0
  217. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/SOURCES.txt +0 -0
  218. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/dependency_links.txt +0 -0
  219. {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/top_level.txt +0 -0
  220. {avaframe-2.0a0 → avaframe-2.0a3}/requirements.txt +0 -0
  221. {avaframe-2.0a0 → avaframe-2.0a3}/setup.cfg +0 -0
  222. {avaframe-2.0a0 → avaframe-2.0a3}/setup.py +0 -0
  223. {avaframe-2.0a0 → avaframe-2.0a3}/tinyHelper/extractDEM.sh +0 -0
  224. {avaframe-2.0a0 → avaframe-2.0a3}/tinyHelper/logHelper_extractProcessAndTimes.sh +0 -0
  225. {avaframe-2.0a0 → avaframe-2.0a3}/tinyHelper/logHelper_extractProcessTimesAndParams.sh +0 -0
@@ -7,3 +7,4 @@ sigterm = true
7
7
  omit = */test_*
8
8
  */__init__.py
9
9
  */run*
10
+ */out3Plot/out*
@@ -20,16 +20,16 @@ jobs:
20
20
  runs-on: ubuntu-latest
21
21
 
22
22
  steps:
23
- - uses: actions/checkout@v4
24
- with:
25
- fetch-depth: 0
26
- - uses: prefix-dev/setup-pixi@v0.8.3
27
- with:
28
- cache: false
29
- - name: Pixi run pytest
30
- run: |
31
- pixi run pytest -ra --cov --cov-report=xml --cov-report lcov:cov.info --cov-config=.coveragerc
32
- - uses: qltysh/qlty-action/coverage@main
33
- with:
34
- coverage-token: ${{secrets.QLTY_COVERAGE_TOKEN}}
35
- files: cov.info
23
+ - uses: actions/checkout@v5
24
+ with:
25
+ fetch-depth: 0
26
+ - uses: prefix-dev/setup-pixi@v0.9.1
27
+ with:
28
+ cache: false
29
+ - name: Pixi run pytest
30
+ run: |
31
+ pixi run pytest -ra --cov --cov-report=xml --cov-report lcov:cov.info --cov-config=.coveragerc
32
+ - uses: qltysh/qlty-action/coverage@main
33
+ with:
34
+ coverage-token: ${{secrets.QLTY_COVERAGE_TOKEN}}
35
+ files: cov.info
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: avaframe
3
- Version: 2.0a0
3
+ Version: 2.0a3
4
4
  Summary: The Open Avalanche Framework
5
5
  Author-email: AvaFrame Contributors <felix@avaframe.org>
6
6
  License-Expression: EUPL-1.2
@@ -15,7 +15,8 @@ Classifier: Programming Language :: Python :: 3.13
15
15
  Requires-Python: >=3.9
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE.txt
18
- Requires-Dist: numpy
18
+ Requires-Dist: numpy<2.0
19
+ Requires-Dist: salib<1.5.1
19
20
  Requires-Dist: matplotlib
20
21
  Requires-Dist: pyshp
21
22
  Requires-Dist: scipy
@@ -33,7 +34,6 @@ Requires-Dist: rasterio
33
34
  Requires-Dist: contextily
34
35
  Requires-Dist: geopandas
35
36
  Requires-Dist: fiona
36
- Requires-Dist: salib
37
37
  Dynamic: license-file
38
38
 
39
39
  **The AvaFrame documentation is hosted on ReadTheDocs: http://docs.avaframe.org**
@@ -0,0 +1 @@
1
+ 2.0a3
@@ -40,8 +40,8 @@ tSteps = 0:2
40
40
  #+++++++++SNOW properties
41
41
  #+++++Release thickness++++
42
42
  # True if release thickness should be read from shapefile file; if False - relTh read from ini file
43
- relThFromShp = False
44
- # release thickness (only considered if relThFromShp=False)
43
+ relThFromFile = False
44
+ # release thickness (only considered if relThFromFile=False)
45
45
  relTh = 1
46
46
 
47
47
  #++++++++++++Time stepping parameters
@@ -44,8 +44,8 @@ tSteps = 0:2
44
44
  #+++++++++SNOW properties
45
45
  #+++++Release thickness++++
46
46
  # True if release thickness should be read from shapefile file; if False - relTh read from ini file
47
- relThFromShp = False
48
- # release thickness (only considered if relThFromShp=False)
47
+ relThFromFile = False
48
+ # release thickness (only considered if relThFromFile=False)
49
49
  relTh = 1
50
50
 
51
51
  #++++++++++++Time stepping parameters
@@ -943,7 +943,7 @@ def getReleaseThickness(avaDir, cfg, demFile):
943
943
  X1 = X / cos
944
944
  Y1 = Y
945
945
  relTh = Hini * (1 - X1 * X1 / (L_x * L_x) - Y * Y / (L_y * L_y))
946
- # relTh = np.where(relTh < 0, 0, relTh)
946
+ relTh = np.where(relTh < 0, 0, relTh)
947
947
 
948
948
  relDict = {
949
949
  "relTh": relTh,
@@ -959,11 +959,12 @@ def getReleaseThickness(avaDir, cfg, demFile):
959
959
  polyline = {}
960
960
  polyline["x"] = L_x * np.cos(alpha) * cos
961
961
  polyline["y"] = L_x * np.sin(alpha)
962
- relFileName = demFile.parent / "REL" / "rel1.shp"
962
+ fU.makeADir(demFile.parent / "RELShp")
963
+ relFileName = demFile.parent / "RELShp" / "rel1.shp"
963
964
  shpConv.writeLine2SHPfile(polyline, "rel1", str(relFileName))
964
965
 
965
966
  # write relTh to file
966
- relThPath = demFile.parent / "RELTH"
967
+ relThPath = demFile.parent / "REL"
967
968
  fU.makeADir(relThPath)
968
969
  relThFileName = relThPath / "releaseThickness.asc"
969
970
  headerRelTh = {
@@ -101,8 +101,13 @@ def readAIMECinputs(avalancheDir, pathDict, defineRunoutArea, dirName='com1DFA')
101
101
 
102
102
  referenceTypes = {"referenceLine": "LINE", "referencePolygon": "POLY",'referencePoint': 'POINT'}
103
103
  for refType in referenceTypes:
104
- referenceFile, availableFile = gI.getAndCheckInputFiles(referenceDir, 'REFDATA', referenceTypes[refType],
105
- fileExt="shp", fileSuffix=referenceTypes[refType])
104
+ referenceFile, availableFile, _ = gI.getAndCheckInputFiles(
105
+ referenceDir,
106
+ "REFDATA",
107
+ referenceTypes[refType],
108
+ fileExt="shp",
109
+ fileSuffix=referenceTypes[refType],
110
+ )
106
111
  if availableFile == 'Yes':
107
112
  # add file paths to pathDict
108
113
  pathDict[refType] = [referenceFile]
@@ -977,34 +982,57 @@ def computeRunOut(cfgSetup, rasterTransfo, resAnalysisDF, transformedRasters, si
977
982
  if lindex.any():
978
983
  cUpper = min(lindex)
979
984
  cLower = max(lindex)
985
+ runoutFound = True
980
986
  else:
981
987
  log.warning('No max values > threshold found. threshold = %4.2f, too high?' % thresholdValue)
982
988
  cUpper = 0
983
989
  cLower = 0
990
+ runoutFound = False
984
991
  # search in mean values
985
992
  lindex = np.nonzero(PResCrossMean > thresholdValue)[0]
986
993
  if lindex.any():
987
994
  cUpperm = min(lindex)
988
995
  cLowerm = max(lindex)
996
+ flagMeanFound = True
989
997
  else:
990
998
  log.warning('No average values > threshold found. threshold = %4.2f, too high?' % thresholdValue)
991
999
  cUpperm = 0
992
1000
  cLowerm = 0
993
- resAnalysisDF.loc[simRowHash, 'sRunout'] = scoord[cLower]
994
- index = np.nanargmax(PResRasters[cLower, :])
995
- resAnalysisDF.loc[simRowHash, 'lRunout'] = lcoord[index]
996
- resAnalysisDF.loc[simRowHash, 'xRunout'] = gridx[cLower, index]
997
- resAnalysisDF.loc[simRowHash, 'yRunout'] = gridy[cLower, index]
1001
+ flagMeanFound = False
1002
+
1003
+ if runoutFound:
1004
+ resAnalysisDF.loc[simRowHash, "sRunout"] = scoord[cLower]
1005
+ index = np.nanargmax(PResRasters[cLower, :])
1006
+ resAnalysisDF.loc[simRowHash, "lRunout"] = lcoord[index]
1007
+ resAnalysisDF.loc[simRowHash, "xRunout"] = gridx[cLower, index]
1008
+ resAnalysisDF.loc[simRowHash, "yRunout"] = gridy[cLower, index]
1009
+ resAnalysisDF.loc[simRowHash, "runoutAngle"] = np.rad2deg(
1010
+ np.arctan((zThalweg[cUpper] - zThalweg[cLower]) / (scoord[cLower] - scoord[cUpper]))
1011
+ )
1012
+ else:
1013
+ resAnalysisDF.loc[simRowHash, "sRunout"] = np.nan
1014
+ resAnalysisDF.loc[simRowHash, "lRunout"] = np.nan
1015
+ resAnalysisDF.loc[simRowHash, "xRunout"] = np.nan
1016
+ resAnalysisDF.loc[simRowHash, "yRunout"] = np.nan
1017
+ resAnalysisDF.loc[simRowHash, "runoutAngle"] = np.nan
1018
+
998
1019
  resAnalysisDF.loc[simRowHash, 'deltaSXY'] = scoord[cLower] - scoord[cUpper]
999
- resAnalysisDF.loc[simRowHash, 'runoutAngle'] = np.rad2deg(np.arctan((zThalweg[cUpper] - zThalweg[cLower]) /
1000
- (scoord[cLower] - scoord[cUpper])))
1001
- resAnalysisDF.loc[simRowHash, 'zRelease'] = zThalweg[cUpper]
1002
- resAnalysisDF.loc[simRowHash, 'zRunout'] = zThalweg[cLower]
1003
- resAnalysisDF.loc[simRowHash, 'sMeanRunout'] = scoord[cLowerm]
1004
- resAnalysisDF.loc[simRowHash, 'xMeanRunout'] = x[cLowerm]
1005
- resAnalysisDF.loc[simRowHash, 'yMeanRunout'] = y[cLowerm]
1020
+
1021
+ if flagMeanFound:
1022
+ resAnalysisDF.loc[simRowHash, "zRunout"] = zThalweg[cLower]
1023
+ resAnalysisDF.loc[simRowHash, "sMeanRunout"] = scoord[cLowerm]
1024
+ resAnalysisDF.loc[simRowHash, "xMeanRunout"] = x[cLowerm]
1025
+ resAnalysisDF.loc[simRowHash, "yMeanRunout"] = y[cLowerm]
1026
+ else:
1027
+ resAnalysisDF.loc[simRowHash, "zRunout"] = np.nan
1028
+ resAnalysisDF.loc[simRowHash, "sMeanRunout"] = np.nan
1029
+ resAnalysisDF.loc[simRowHash, "xMeanRunout"] = np.nan
1030
+ resAnalysisDF.loc[simRowHash, "yMeanRunout"] = np.nan
1031
+
1032
+ resAnalysisDF.loc[simRowHash, "zRelease"] = zThalweg[cUpper]
1006
1033
  resAnalysisDF.loc[simRowHash, 'elevRel'] = zThalweg[cUpper]
1007
1034
  resAnalysisDF.loc[simRowHash, 'deltaZ'] = zThalweg[cUpper] - zThalweg[cLower]
1035
+ resAnalysisDF.loc[simRowHash, "runoutFound"] = runoutFound
1008
1036
 
1009
1037
  return resAnalysisDF
1010
1038
 
@@ -1268,9 +1296,18 @@ def analyzeArea(rasterTransfo, resAnalysisDF, simRowHash, newRasters, cfg, pathD
1268
1296
  inputs['simName'] = simName
1269
1297
 
1270
1298
  compPlotPath = None
1271
- if simRowHash != refSimRowHash and cfgPlots.getboolean('extraPlots'):
1299
+ if (
1300
+ simRowHash != refSimRowHash
1301
+ and cfgPlots.getboolean("extraPlots")
1302
+ and resAnalysisDF.loc[simRowHash, "runoutFound"]
1303
+ ):
1272
1304
  # only plot comparisons of simulations to reference
1273
1305
  compPlotPath = outAimec.visuComparison(rasterTransfo, inputs, pathDict)
1306
+ elif not resAnalysisDF.loc[simRowHash, "runoutFound"] and cfgPlots.getboolean("extraPlots"):
1307
+ log.warning(
1308
+ "ContourComparisonToReference plot not generated as only 0 values for comparison simulation: %s"
1309
+ % resAnalysisDF.loc[simRowHash, "simName"]
1310
+ )
1274
1311
  # add contourlines to contourDict
1275
1312
  contourDict = outAimec.fetchContourLines(rasterTransfo, inputs, cfgSetup.getfloat('thresholdValue'), contourDict)
1276
1313
 
@@ -1553,9 +1590,13 @@ def addFieldsToDF(inputsDF):
1553
1590
  'sMeanRunout', 'xMeanRunout', 'yMeanRunout', 'elevRel', 'deltaZ', 'refSim_Diff_sRunout',
1554
1591
  'refSim_Diff_lRunout', 'dataType', 'runoutLineDiff_line_RMSE', 'runoutLineDiff_poly_RMSE']
1555
1592
 
1556
- emptyStrFields = ['runoutLineDiff_line_pointsNotFoundInSim',
1557
- 'runoutLineDiff_line_pointsNotFoundInRef', 'runoutLineDiff_poly_pointsNotFoundInSim',
1558
- 'runoutLineDiff_poly_pointsNotFoundInRef']
1593
+ emptyStrFields = [
1594
+ "runoutLineDiff_line_pointsNotFoundInSim",
1595
+ "runoutLineDiff_line_pointsNotFoundInRef",
1596
+ "runoutLineDiff_poly_pointsNotFoundInSim",
1597
+ "runoutLineDiff_poly_pointsNotFoundInRef",
1598
+ "runoutFound",
1599
+ ]
1559
1600
 
1560
1601
  for item in nanFields:
1561
1602
  inputsDF = pd.concat([inputsDF, pd.DataFrame({item: np.nan}, index=inputsDF.index)], axis=1).copy()
@@ -1769,11 +1810,22 @@ def analyzeDiffsRunoutLines(cfgSetup, runoutLine, refDataTransformed, resAnalysi
1769
1810
  refLineStr = '%d/%d' % (refLineNoPoints, runoutLineAllPoints)
1770
1811
 
1771
1812
  # compute RMSE between runout line and refLine
1772
- RMSE = np.sqrt(np.sum(diffNoNans**2)/len(diffNoNans))
1813
+ # set RMSE to nan if no runout line found for sim to compare to reference
1814
+ if np.all(np.isnan(runoutLine["s"])):
1815
+ RMSE = np.nan
1816
+ else:
1817
+ RMSE = np.sqrt(np.sum(diffNoNans**2) / len(diffNoNans))
1773
1818
 
1774
1819
  # plot differences in runout lines
1775
- outAimec.plotRunoutLineComparisonToReference(cfgSetup, refLine, runoutLine, pathDict, simName, runoutStr,
1776
- refLineStr, RMSE, diffNoNans)
1820
+ if len(np.where((np.isnan(runoutLine["s"]) == False))[0]) > 0:
1821
+ outAimec.plotRunoutLineComparisonToReference(
1822
+ cfgSetup, refLine, runoutLine, pathDict, simName, runoutStr, refLineStr, RMSE, diffNoNans
1823
+ )
1824
+ else:
1825
+ log.warning(
1826
+ "No runout line found for simulation: %s, not creating comparison to reference plot"
1827
+ % simName
1828
+ )
1777
1829
 
1778
1830
  resAnalysisDF.at[simRowHash, 'runoutLineDiff_%s_pointsNotFoundInSim' % refLine['type']] = runoutStr
1779
1831
  resAnalysisDF.at[simRowHash, 'runoutLineDiff_%s_pointsNotFoundInRef' % refLine['type']] = refLineStr
@@ -1782,4 +1834,4 @@ def analyzeDiffsRunoutLines(cfgSetup, runoutLine, refDataTransformed, resAnalysi
1782
1834
  else:
1783
1835
  log.info('For reference data type %s, runout line comparison is not available' % refLine['type'])
1784
1836
 
1785
- return resAnalysisDF
1837
+ return resAnalysisDF
@@ -352,16 +352,29 @@ def postProcessAIMEC(cfg, rasterTransfo, pathDict, resAnalysisDF, newRasters, ti
352
352
  resAnalysisDF['runoutLineDiff_poly'] = np.nan
353
353
  resAnalysisDF['runoutLineDiff_poly'] = resAnalysisDF['runoutLineDiff_line'].astype(object)
354
354
 
355
- # add max, min and std values of result fields
356
- resAnalysisDF.at[simRowHash, resType + 'FieldMax'] = np.nanmax(rasterData['rasterData'])
357
- # for mean and min values and std, only take peak field values != 0
358
- maskedRaster = np.where(rasterData['rasterData'] < cfgSetup.getfloat('minValueField'), np.nan, rasterData['rasterData'])
359
- resAnalysisDF.at[simRowHash, resType + 'FieldMin'] = np.nanmin(maskedRaster)
360
- resAnalysisDF.at[simRowHash, resType + 'FieldMean'] = np.nanmean(maskedRaster)
361
- resAnalysisDF.at[simRowHash, resType + 'FieldStd'] = np.nanstd(maskedRaster)
355
+ # only extract values if nonzero values found in rasterData; if only 0 values set to 0
356
+ if np.any(rasterData["rasterData"]):
357
+ # add max, min and std values of result fields
358
+ resAnalysisDF.at[simRowHash, resType + "FieldMax"] = np.nanmax(rasterData["rasterData"])
359
+ # for mean and min values and std, only take peak field values != 0
360
+ maskedRaster = np.where(
361
+ rasterData["rasterData"] < cfgSetup.getfloat("minValueField"),
362
+ np.nan,
363
+ rasterData["rasterData"],
364
+ )
365
+ resAnalysisDF.at[simRowHash, resType + "FieldMin"] = np.nanmin(maskedRaster)
366
+ resAnalysisDF.at[simRowHash, resType + "FieldMean"] = np.nanmean(maskedRaster)
367
+ resAnalysisDF.at[simRowHash, resType + "FieldStd"] = np.nanstd(maskedRaster)
368
+ else:
369
+ resAnalysisDF.at[simRowHash, resType + "FieldMax"] = 0.0
370
+ resAnalysisDF.at[simRowHash, resType + "FieldMin"] = 0.0
371
+ resAnalysisDF.at[simRowHash, resType + "FieldMean"] = 0.0
372
+ resAnalysisDF.at[simRowHash, resType + "FieldStd"] = 0.0
362
373
 
363
374
  # analyze all fields
364
- resAnalysisDF = aimecTools.analyzeField(simRowHash, rasterTransfo, newRaster, resType, resAnalysisDF)
375
+ resAnalysisDF = aimecTools.analyzeField(
376
+ simRowHash, rasterTransfo, newRaster, resType, resAnalysisDF
377
+ )
365
378
 
366
379
  # compute runout based on runoutResType
367
380
  resAnalysisDF = aimecTools.computeRunOut(cfgSetup, rasterTransfo, resAnalysisDF, newRasters, simRowHash)
@@ -99,8 +99,9 @@ def cfgFilesGlobalApproach(avaDir, cfgProb, modName, outDir):
99
99
  plotDir = avaDir / "Outputs" / "ana4Stats" / "plots"
100
100
  if len(paramValuesD["names"]) == 2:
101
101
  sP.plotSample(paramValuesD, plotDir, releaseScenario=releaseScenario)
102
- elif len(paramValuesD["varParNamesInitial"]) == 2:
103
- sP.plotThSampleFromVals(paramValuesD, plotDir)
102
+ elif "varParNamesInitial" in paramValuesD.keys():
103
+ if len(paramValuesD["varParNamesInitial"]) == 2:
104
+ sP.plotThSampleFromVals(paramValuesD, plotDir)
104
105
  else:
105
106
  log.debug("More or less than two parameters have been varied - no plot of sample available")
106
107
 
@@ -314,11 +315,11 @@ def checkParameterSettings(cfg, varParList):
314
315
  log.error(message)
315
316
  raise AssertionError(message)
316
317
  elif varPar in ["entTh", "relTh", "secondaryRelTh"]:
317
- thFromShp = varPar + "FromShp"
318
+ thFromFile = varPar + "FromFile"
318
319
  # check if reference settings have already variation of varPar
319
320
  _ = checkForNumberOfReferenceValues(cfg["GENERAL"], varPar)
320
321
  # check if th read from shp file
321
- if cfg["GENERAL"].getboolean(thFromShp):
322
+ if cfg["GENERAL"].getboolean(thFromFile):
322
323
  thReadFromShp.append(varPar)
323
324
 
324
325
  return True, thReadFromShp