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.
- {avaframe-2.0a0 → avaframe-2.0a3}/.coveragerc +1 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.github/workflows/runTestSinglePython.yml +13 -13
- {avaframe-2.0a0 → avaframe-2.0a3}/PKG-INFO +3 -3
- avaframe-2.0a3/avaframe/RELEASE-VERSION.txt +1 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/energyLineTestCfg.ini +2 -2
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/rotationTestCfg.ini +2 -2
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/simiSolTest.py +4 -3
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/aimecTools.py +74 -22
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/ana3AIMEC.py +21 -8
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/probAna.py +5 -4
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAToolsCython.c +459 -426
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAfunctionsCython.c +6887 -6066
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAfunctionsCython.pyx +57 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/checkCfg.py +38 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/com1DFA.py +431 -170
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/com1DFACfg.ini +66 -10
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/com1DFATools.py +10 -6
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/damCom1DFA.c +137 -110
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/deriveParameterSet.py +122 -60
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/particleTools.py +7 -2
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com3Hybrid/com3HybridCfg.ini +4 -4
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/com6RockAvalancheCfg.ini +2 -2
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/scarp.py +5 -5
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/com7RegionalCfg.ini +0 -22
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/com8MoTPSA.py +146 -71
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/com8MoTPSACfg.ini +12 -14
- avaframe-2.0a3/avaframe/com9MoTVoellmy/MoT-Voellmy_linux.exe +0 -0
- avaframe-2.0a3/avaframe/com9MoTVoellmy/MoT-Voellmy_win.exe +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/com9MoTVoellmy.py +136 -72
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/com9MoTVoellmyCfg.ini +19 -22
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/runCom9MoTVoellmy.py +35 -16
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/getInput.py +261 -53
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/rasterUtils.py +25 -0
- avaframe-2.0a3/avaframe/in3Utils/MoTUtils.py +393 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/cfgHandling.py +1 -1
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/geoTrans.py +1 -1
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out1Peak/outPlotAllPeak.py +55 -20
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outAIMEC.py +524 -288
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outCom1DFA.py +50 -18
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outQuickPlot.py +11 -8
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotAreaRefDiffs.py +6 -5
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/PKG-INFO +3 -3
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/requires.txt +2 -2
- {avaframe-2.0a0 → avaframe-2.0a3}/pyproject.toml +14 -3
- avaframe-2.0a0/avaframe/RELEASE-VERSION.txt +0 -1
- avaframe-2.0a0/avaframe/com9MoTVoellmy/MoT-Voellmy_linux.exe +0 -0
- avaframe-2.0a0/avaframe/com9MoTVoellmy/MoT-Voellmy_win.exe +0 -0
- avaframe-2.0a0/avaframe/in3Utils/MoTUtils.py +0 -191
- {avaframe-2.0a0 → avaframe-2.0a3}/.gitattributes +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.github/ISSUE_TEMPLATE/com1dfa-dev-topic.md +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.github/ISSUE_TEMPLATE/standard-issue.md +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.github/workflows/buildAndUploadPyPi.yml +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.gitignore +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.qlty/qlty.toml +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.readthedocs.yml +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/.zenodo.json +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/LICENSE.txt +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/MANIFEST.in +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/README.md +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/FPtest.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/analysisTools.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/damBreak.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/energyLineTest.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/rotationTest.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana1Tests/testUtilities.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/ana3AIMECCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana3AIMEC/dfa2Aimec.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/getStats.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/getStatsCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana4Stats/probAnaCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/DFAPathGeneration.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/DFAPathGenerationCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/distanceTimeAnalysis.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/ana5Utils/distanceTimeAnalysisCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/avaframeCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAToolsCython.pxd +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAToolsCython.pyx +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAfunctionsCython.pxd +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/DFAtools.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/damCom1DFA.pxd +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/damCom1DFA.pyx +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/particleInitialisation.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/testSPH.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com1DFA/timeDiscretizations.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com2AB/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com2AB/com2AB.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com2AB/com2ABCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com3Hybrid/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com3Hybrid/com3Hybrid.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/com4FlowPy.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/com4FlowPyCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/flowClass.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/flowCore.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com4FlowPy/splitAndMerge.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com5SnowSlide/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com5SnowSlide/com5SnowSlide.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com5SnowSlide/com5SnowSlideCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/com6RockAvalanche.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com6RockAvalanche/scarpCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/com7Regional.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/splitInputs.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com7Regional/splitInputsCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/README_dev.md +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/runAna4ProbAnaCom8MoTPSA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com8MoTPSA/runCom8MoTPSA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/com9MoTVoellmy/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/computeFromDistribution.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in1Data/computeFromDistributionCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/ascUtils.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/shpConversion.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in2Trans/transformFields.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/cfgUtils.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/fileHandlerUtils.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/generateTopo.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/generateTopoCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/getReleaseArea.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/getReleaseAreaCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/initialiseDirs.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/initializeProject.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/logUtils.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/in3Utils/logging.conf +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/generateCompareReport.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/generateCompareReportCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/log2Report/generateReport.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out1Peak/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out1Peak/outPlotAllPeakDiffs.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/amaPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/in1DataPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outAB.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outAna1Plots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outCom3Plots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outCom7Regional.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outContours.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outDebugPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outDistanceTimeAnalysis.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outParticlesAnalysis.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outParticlesAnalysisCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outProfilePlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outQuickPlotCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outTopo.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/outTransformPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/plotUtils.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/plotUtilsCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/out3Plot/statsPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runAna4ProbAna.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runAna5DFAPathGeneration.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom1DFA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom2AB.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom4FlowPy.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom5SnowSlide.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom6RockAvalanche.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom6Scarp.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runCom7Regional.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runIn1RelInfo.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runOperational.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runPlotCom1DFA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runProbAnalysisOnly.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAimecSummaryPlot.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAna3AIMEC.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAna3AIMECCompMods.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAnalyzeDamBreak.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runAnalyzeSimilaritySol.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runCom3Hybrid.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runComputeDist.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runContourPlot.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runCreateProbCfgsFlowPy.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runD2Th.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runDamBreak.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runEnergyLineTest.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runExportToCsv.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runFetchPointValues.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runGenProjTopoRelease.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runGenerateTopo.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runInitializeProject.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runParticleAnalysisPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotAlongGivenProfile.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotContoursFromAsc.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotContoursFromAscCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotProfile.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runPlotTopo.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runProbAna.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runQuickPlotOne.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runQuickPlotSimple.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runRangeTimeDiagram.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runRenaming.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runRotationTest.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runSimilaritySol.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runStatsExample.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runStatsPlots.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runTestFP.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runThalwegTimeDiagram.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runVariationsTestsCom1DFA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runScripts/runWriteDesDict.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runStandardTestsCom1DFA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runTmp1Ex.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/runUpdateBenchmarkTestsCom1DFA.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/tmp1Ex/__init__.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/tmp1Ex/tmp1Ex.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/tmp1Ex/tmp1ExCfg.ini +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe/version.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/SOURCES.txt +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/dependency_links.txt +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/avaframe.egg-info/top_level.txt +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/requirements.txt +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/setup.cfg +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/setup.py +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/tinyHelper/extractDEM.sh +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/tinyHelper/logHelper_extractProcessAndTimes.sh +0 -0
- {avaframe-2.0a0 → avaframe-2.0a3}/tinyHelper/logHelper_extractProcessTimesAndParams.sh +0 -0
|
@@ -20,16 +20,16 @@ jobs:
|
|
|
20
20
|
runs-on: ubuntu-latest
|
|
21
21
|
|
|
22
22
|
steps:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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.
|
|
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
|
-
|
|
44
|
-
# release thickness (only considered if
|
|
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
|
-
|
|
48
|
-
# release thickness (only considered if
|
|
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
|
-
|
|
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
|
-
|
|
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 / "
|
|
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(
|
|
105
|
-
|
|
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
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
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
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
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
|
|
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 = [
|
|
1557
|
-
|
|
1558
|
-
|
|
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
|
|
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
|
-
|
|
1776
|
-
|
|
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
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
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(
|
|
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
|
|
103
|
-
|
|
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
|
-
|
|
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(
|
|
322
|
+
if cfg["GENERAL"].getboolean(thFromFile):
|
|
322
323
|
thReadFromShp.append(varPar)
|
|
323
324
|
|
|
324
325
|
return True, thReadFromShp
|