Créer des profils du manteau neigeux - retour accueil
git clone git://bebou.netlib.re/gelinive
Log | Files | Refs | README |
commit 4c3f444a2ad26c28f151d6604c34d03cff4c9932 parent aecad61457cfc0a4156458a6a9c0e01f287d0612 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Mon, 11 Mar 2024 20:32:38 +0100 Calcul de d à partir de e et pas l'inverse J'avais mal compris le processus. Diffstat:
M | README.md | | | 2 | +- |
M | gelinive | | | 23 | +++++++++++++---------- |
M | gelinive.1 | | | 2 | +- |
M | gelinive.5 | | | 6 | +++--- |
M | tests/data | | | 16 | ++++++++-------- |
M | tests/data.png | | | 0 | |
M | tests/intermediairedata | | | 18 | +++++++++--------- |
7 files changed, 35 insertions(+), 32 deletions(-)
diff --git a/README.md b/README.md @@ -60,7 +60,7 @@ de la commande et le manuel du format : * gelinive.? : les pages du manuel * tests/test : le script lançant les tests * tests/data : le jeu de donnée de tests - * tests/intermediairedata : le jeu de donnée contre lequel vérifier le bon calcul de R et e + * tests/intermediairedata : le jeu de donnée contre lequel vérifier le bon calcul de d et de R * tests/data.png : l'image contre laquelle vérifier la bonne génération de l'image * README.md : ce fichier diff --git a/gelinive b/gelinive @@ -17,40 +17,43 @@ exit 0 fi calc_Re() { -awk -F'\t' '{ if($5=="0"){ print "print \"/\n\"" } else { printf "(%s*%s)/%s+%s+%s\n", $3, $4, $5, $1, $2 } }' | +awk -F'\t' '{ if($7=="0"){ print "print \"/\n\"" } else { printf "(%s*%s)/%s+%s+%s\n", $3, $4, $7, $1, $2 } }' | bc -l | cut -d'.' -f1 } - sumcol() { awk -v col=${1:-1} ' BEGIN { getline; tot=$col; print tot } {tot=$col+tot;print tot } ' } - +diffcol() { +awk -v col=${1:-1} ' +BEGIN { getline; prevcol=$col; print prevcol } +{print $col-prevcol;prevcol=$col} +' +} makehistodata() { sed '$ a\ 0 0 0 0 0 0 0 0 2,$ p' | awk '{ - hcur=$6;dcur=$7 + hcur=$6;dcur=$8 getline - hnext=$6;dnext=$7 + hnext=$6;dnext=$8 for(i=hcur;i>hnext;i--) {print i" "dcur} }' | tr '/' '1' } - tempdir=$(mktemp -d);trap "rm -rf $tempdir" EXIT - -cat > $tempdir/in -< $tempdir/in calc_Re | +cat tests/data > $tempdir/in +< $tempdir/in diffcol 5 | paste $tempdir/in - > $tempdir/temp -< $tempdir/temp sumcol 5 | +< $tempdir/temp calc_Re | paste $tempdir/temp - | tee "$1" 2> /dev/null | makehistodata | tac | geliniveplot | convert - -rotate -90 - + diff --git a/gelinive.1 b/gelinive.1 @@ -43,7 +43,7 @@ Ou les piper directement dans un visionneur d\(cqimage : .PP Si l\(cqon renseigne un chemin à la place de INTERMEDIAIRE alors un fichier sera créé à ce chemin avec les données calculées de résistance au -battage et d\(cqenfoncement total de la sonde. +battage et d\(cqenfoncement pour n coups. .LP .EX < data gelinive data_with_Re > image.png diff --git a/gelinive.5 b/gelinive.5 @@ -41,18 +41,18 @@ h la hauteur de chute (cm) .if t \ .sp -0.25v .IP "5. " -d l\(cqenfoncement pour n coups (cm) +e enfoncement total de la sonde (cm) .LP Si gelinive(1) est appelé avec un chemin en argument il créera un fichier en calculant et ajoutant aux cinq précédents les deux éléments suivants : .IP "6. " -R la résistance au battage +e l\(cqenfoncement total de la sonde (cm) .if n \ .sp -1 .if t \ .sp -0.25v .IP "7. " -e l\(cqenfoncement total de la sonde (cm) +R la résistance au battage .SS VOIR AUSSI .LP diff --git a/tests/data b/tests/data @@ -1,9 +1,9 @@ 1 0 0 0 46 100 -1 1 0 0 0 54 -1 1 1 5 2 54 -1 1 2 5 2 52 -1 1 2 5 2 50 -1 1 5 5 3 48 -1 1 6 5 3 45 -1 1 1 5 40 42 -1 1 5 10 2 2 +1 1 0 0 46 54 +1 1 1 5 48 54 +1 1 2 5 50 52 +1 1 2 5 52 50 +1 1 5 5 55 48 +1 1 6 5 58 45 +1 1 1 5 98 42 +1 1 5 10 100 2 diff --git a/tests/data.png b/tests/data.png Binary files differ. diff --git a/tests/intermediairedata b/tests/intermediairedata @@ -1,9 +1,9 @@ -1 0 0 0 46 100 1 46 -1 1 0 0 0 54 / 46 -1 1 1 5 2 54 4 48 -1 1 2 5 2 52 7 50 -1 1 2 5 2 50 7 52 -1 1 5 5 3 48 10 55 -1 1 6 5 3 45 12 58 -1 1 1 5 40 42 2 98 -1 1 5 10 2 2 27 100 +1 0 0 0 46 100 46 1 +1 1 0 0 46 54 0 / +1 1 1 5 48 54 2 4 +1 1 2 5 50 52 2 7 +1 1 2 5 52 50 2 7 +1 1 5 5 55 48 3 10 +1 1 6 5 58 45 3 12 +1 1 1 5 98 42 40 2 +1 1 5 10 100 2 2 27