|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : janvier 2009 Messages : 12 ![]() |
bonjour,
voilà, je suis débutant en bash. ceci est en fait mon 1er script. ça m'a pris quelques jours pour en arriver là (et quelques posts sur le forum). le résultat fait exactement ce que je veux mais est incroyablement lent. mon pc n'est pas une bête de compét, mais à la vitesse où ça avance, il y en a pour plusieurs jours de calcul.... je me dis que je n'ai pas forcément choisi les solutions les plus rapides de calcul. mais pour l'instant, je n'en connais pas d'autres... alors, ce serait sympa si quelqu'un pouvait me donner quelques pistes pour optimiser mon script ce script fait des profils swath (sur une bande de 10km de large, on calcule l'altitude moyenne, les valeurs min et max; et ceci pour chaque point du profil (environ une valeur tous les 90mètres, sur un profil d'environ 350km de long) Code :
# du à l'effet combiné de l'arrondi des valeurs (par printf) issues de gmt_project, des valeurs correspondant à la même ligne de SRTM sont quelquefois espacées de 0.01. on fait donc un test: si seulement l'écart est supérieur à 0.01, on considère qu'on est passé à une nouvelle ligne de données) Code :
merci d'avance, seb |
||||
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
tu devrais tout passer sous awk. |
|
|
10
|
|
|
#3 |
|
Membre Expert
![]() |
Tu n'es pas obligé d'utiliser bc pour toutes tes opérations : bash permet de faire des comparaisons et des calculs simples
Sinon, le script me paraît affreusement compliqué pour un problème à première vue assez simple : j'ai cru comprendre que tu avais un fichier en entrée qui comporte 2 valeurs par ligne (x et y) mais le coup des arrondis et la gestion des positions m'échappent un peu par rapport à ton traitement, donc si tu pouvais donner le format et un exemple de ton fichier en entrée, ça pourrait aider à te proposer mieux. Sinon, effectivement, utiliser awk ou perl pour tout faire semble une bonne approche (mais pas forcément indispensable à mon avis). |
|
|
10
|
|
|
#4 | ||||
|
Invité régulier
![]() Inscription : janvier 2009 Messages : 12 ![]() |
bonjour,
réponse avec un peu de retard (en fait, je viens juste de finir de le réécrire en awk comme suggéré par N BaH). ca tourne impec et rapidement. merci Il s'agit de mon 1er script awk. peut sûrement mieux faire.... Alek-C: Comme tu peux voir, je ne passe plus par le calcul des arrondis (ca prend énormément de temps de calcul) Je lance ce script depuis un script bash (j'en ai besoin pour faire tourner des trucs qui ne marchent pas sous awk) partie du script bash: Code :
Code :
Voici un exemple de fichier d'entrée (p,z). p est en kilomètre, z est en mètre. 0.00184575568891 0.00028742471477 0.00184575568891 376.046569824 0.00189395585363 395.98916626 0.00189395585363 4.1547946239e-007 0.00194791213731 414.259521484 0.00194791213731 0.000286347582005 0.0926625226018 0.00034032255644 0.0926628630255 0.000665176485199 0.0926628630255 0.000674647395499 0.092663884289 0.000669857836328 0.092663884289 0.000651132315397 0.0926655377394 0.000326278415741 seb ps: pour ceux qui se demandent à quoi tout ca sert, je suis géologue. c'est pour faire des profils topo dans les alpes |
||||
|
|
10
|
|
|
#5 |
|
Membre Expert
![]() |
Beau travail
![]() Ajoute juste des balises CODE autour de ton programme et ça sera parfait Et clique sur résolu pendant que tu y es :p |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com