IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Interpolation des épaisseurs de retombées volcaniques


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut Interpolation des épaisseurs de retombées volcaniques
    Bonjour,

    Je suis étudiant en M2 Sciences de la Terre et je cherche, dans le cadre d'un projet à réaliser une interpolation des épaisseurs de retombées de cendres d'un volcan équatorien.
    Pour cela je possède les coordonnées géographiques des points de mesure d'épaisseurs des cendres sur un épisode volcanique donné...
    J'avais pensé tracer une courbe des épaisseurs en fonction de la distance par rapport au cratère afin d'observer quelle fonction pouvait épouser au mieux la courbe de décroissance des épaisseurs ainsi calculée...

    Pouvez vous tenter de m'aiguiller dans cette démarche ?

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Pour interpoler les valeurs d'une courbe
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Les points de mesure ne définissent-ils pas plutôt une surface ?

    Si c'est le cas, INTERP2 ou certainement mieux GRIDDATA devrait aussi faire l'affaire.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Je suis débutant et j'arrive pas à avoir un résultat...
    J'ai des valeurs d'épaisseur sur une colonne et des valeurs de distance sur une colonne aussi...il faut que je les mettes en ligne non ?
    Parce que j'ai lu la chose suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> xi = [-1 -1/2 0 1/2 1];
    >> yi = [1.5 1 0 1 1/2];
    >> x = -1:0.1:1;
    >> ylinear = interp1 (xi, yi, x);
    >> ycubic = interp1 (xi, yi, x, ’cubic’);
    >> plot(xi,yi,’*’, x,ylinear,’-’, x,ycubic,’--’)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Voici le programme que j'ai pour l'instant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
        % Programme interpolation des épaisseurs de retombées de cendres du volcan
     
    % Chargement du set de données
    load Ech_sirs.txt
     
    % Données sous forme de matrice
    x=Ech_sirs(:,1);    % Coordonnée X
    y=Ech_sirs(:,2);    % Coordonnée Y
    z=Ech_sirs(:,3);    % Epaisseur
    d=Ech_sirs(:,4);    % Distance au cratère
     
    X=x;X2=[70000:20:x];
    Y=y;Y2=[983000:20:y];
    D=d;D2=[0:.25:d];
     
    xi=0:500:72000;
    yi=interp1(d,z,xi);
    figure
    plot(d,z,'o',xi,yi)
    Xlabel('Distance (m)')
    Ylabel('Epaisseur (cm)')
    Title('Epaisseur des retombées en fonction de la distance et sa courbe d interpolation')
     
    [XI,YI]=meshgrid(x,y);
    ZI=griddata(x,y,z,XI,YI);
    figure
    surfc(XI,YI,ZI)
    Xlabel('Longitude (m)')
    Ylabel('Lattitude (cm)')
    Zlabel('Epaisseur (cm)')
    Title('Interpolation 3D des retombées de cendres')
    Ce que je cherche maintenant ça serait de réaliser une carte coloriée ou avec des courbes d'isovaleurs de l'interpolation que j'ai faite sur le premier graphe. Et je voudrais aussi visualiser cela en 3D...
    Comment puis-je faire ?

    Merci d'avance

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par LudOL56 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    % Données sous forme de matrice
    x=Ech_sirs(:,1);    % Coordonnée X
    y=Ech_sirs(:,2);    % Coordonnée Y
    z=Ech_sirs(:,3);    % Epaisseur
    d=Ech_sirs(:,4);    % Distance au cratère
    Ces lignes me paraissent étranges. x, y et d sont des vecteurs? Tu obtiens bien le résultat souhaité?


    Citation Envoyé par LudOL56 Voir le message
    Ce que je cherche maintenant ça serait de réaliser une carte coloriée ou avec des courbes d'isovaleurs de l'interpolation que j'ai faite sur le premier graphe. Et je voudrais aussi visualiser cela en 3D...
    Comment puis-je faire ?
    Merci d'avance
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse.

    En faite x, y et d sont juste les valeurs que j'ai obtenu et qui sont rangées dans un txt. Pour l'interpolation ça marche mais le résultat me convient pas trop. En faite la courbe d'interpolation semble vouloir relier les points entre eux...j'aurais préféré qu'elle passe dans le nuage de points plutôt.
    J'ai mis le graphe que j'obtiens en pièce jointe normalement...
    Images attachées Images attachées  

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Citation Envoyé par LudOL56 Voir le message
    En faite la courbe d'interpolation semble vouloir relier les points entre eux..
    C'est le but de l'interpolation.

    Il ne faut pas confondre interpolation et approximation
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Certes, mais j'aurais préféré avoir une tendance du nuage de points.
    Parce que là ça n'a pas vraiment de signification géologique...les points un peu à l'écart sont probablement du au faite qu'il ne sont pas dans l'axe de la colonne éruptive.
    Il est possible d'utiliser une fonction inverse pour fiter le nuage de point ?

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    La forme mathématique de la courbe d'approximation ne peut pas être déterminée automatiquement. C'est à toi de faire le choix (polynôme, exponentielle...) à partir de l'allure générale du tracé et en t'aidant des équations (si elles existent) qui régissent le(s) phénomène(s) physique(s) que tu étudies.

    Dans un premier temps, tu peux néanmoins essayer avec l'outil Basic Fitting dans le menu Tools de la fenêtre où tu trace la courbe.

    Tu peux aussi essayer une approximation polynomiale avec POLYFIT ou une approximation exponentielle.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Est-ce que ça serait possible d'utiliser la fonction "polyfit" pour tenter de corréler tous ça ?

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Bon finalement avec un polynôme de degré 6 ça colle plutôt pas mal...
    Du coup maintenant, comment dois-je faire pour en ressortir un carte des interpolations des épaisseurs de cendres à partir de ce polynôme de degré 6 ?

    Merci

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    La question précédente est toujours d'actualité .

    Merci

  14. #14
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par LudOL56 Voir le message
    Du coup maintenant, comment dois-je faire pour en ressortir un carte des interpolations des épaisseurs de cendres à partir de ce polynôme de degré 6 ?
    Il te suffit de définir des distances et de calculer les épaisseurs à partir de ton polynôme.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Okay, par contre tu ferais ça comment ? Je débute en matlab et si tu pouvais m'aider à trouver le code pour le faire ça m'aiderai

    Merci

  16. #16
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Quel code a-tu utilisé pour définir les paramètres de ton polynôme?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    J'ai utilisé la fonction polyfit. Voici mon programme pour info:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
        % Programme interpolation des épaisseurs de retombées de cendres du volcan
     
    % Chargement du set de données
    load Ech_sirs.txt
     
    % Données sous forme de matrice
    x=Ech_sirs(:,1);    % Coordonnée X
    y=Ech_sirs(:,2);    % Coordonnée Y
    z=Ech_sirs(:,3);    % Epaisseur
    d=Ech_sirs(:,4);    % Distance au cratère
     
    X=x;X2=(70000:20:x);
    Y=y;Y2=(983000:20:y);
    D=d;D2=(0:.25:d);
     
    xi=0:50:72000;
    yi=interp1(d,z,xi,'linear');
    figure
    plot(d,z,'*',xi,yi)
    Xlabel('Distance (m)')
    Ylabel('Epaisseur (cm)')
    Title('Epaisseur des retombées en fonction de la distance et sa courbe d interpolation')
    Hold on
    P=polyfit(d,z,6);
    plot([0:50:74000],polyval(P,[0:50:74000]))
     
    [XI,YI]=meshgrid(x,y);
    ZI=griddata(x,y,z,XI,YI);
    figure
    contour3(X,Y,ZI,100)
     
    [C,h] = contour(X,Y,ZI);
    set(h,'ShowText','on','TextStep',get(h,'LevelStep')*50)
    colormap cool
     
    %surface(X,Y,ZI,'EdgeColor',[.8 .8 .8],'FaceColor','none')
    %grid off
    %view(-15,25)
    %colormap cool
     
    figure
    surfc(XI,YI,ZI)
    Xlabel('Longitude (m)')
    Ylabel('Lattitude (cm)')
    Zlabel('Epaisseur (cm)')
    Title('Interpolation 3D des retombées de cendres')

  18. #18
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Tu fais déjà ton interpolation à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot([0:50:74000],polyval(P,[0:50:74000]))
    non?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    En faite cette ligne me permet de tracer la courbe qui "fit" mes données. Ce que je veux c'est me servir du polynôme obtenu par la fonction polyfit pour tracer un carte des isopaques (mêmes épaisseurs) ou alors le faire en 3D...

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Etudiant géologue (M2)
    Inscrit en
    Octobre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant géologue (M2)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 36
    Points : 9
    Points
    9
    Par défaut
    Pas d'idées ?

    Parce que dans mon programme ce que je trace en dernier c'est juste une vue 3D des épaisseurs au niveau de la zone étudiée mais sans interpolation...ça relie juste les points les uns entres les autres...

Discussions similaires

  1. Interpolation des images
    Par oussema1989 dans le forum Images
    Réponses: 0
    Dernier message: 11/10/2014, 13h53
  2. [Débutant] interpolation des sinusoïdes
    Par eeglabor dans le forum Signal
    Réponses: 0
    Dernier message: 19/11/2013, 15h13
  3. SIFT : Amélioration de la précision par interpolation des coordonnées
    Par TheDwarf01 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 21/02/2013, 22h40
  4. Réponses: 6
    Dernier message: 31/10/2011, 00h57
  5. Modification du flag 'interpolate' des images dans les pdf
    Par alexgcl dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 23/12/2009, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo