Matlab - carter des données .xyz
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Matlab - carter des données .xyz



  1. #1
    invite7841424a

    Matlab - carter des données .xyz


    ------

    Bonsoir,
    Je dispose de données de topographie sous format .xyz, c'est à dire 3 vecteurs colonne: abscisse - ordonnée - altitude
    Je cherche à créer une carte des altitudes à partir de ces données, mais je n'arrive pas à créer des grilles... j'ai bien tenté de faire du meshgrid mais je ne dois pas bien m'y prendre...
    Quelqu'un pourrait me dépanner ?
    Merci d'avance !

    -----

  2. #2
    invite6307a12d

    Re : Matlab - carter des données .xyz

    > Je dispose de données de topographie sous format .xyz, c'est à dire 3 vecteurs colonne: abscisse - ordonnée - altitude

    c'est bien un fichier de type texte ? Lecture :
    xyz = load([nomfichier,'xyz']);
    nPts = size(xyz,1);
    XXs = xyz(:,1); YYs = xyz(:,2); ZZs = xyz(:,3);

    > Je cherche à créer une carte des altitudes à partir de ces données, mais je n'arrive pas à créer des grilles... j'ai bien tenté de faire du meshgrid mais je ne dois pas bien m'y prendre...

    Ben je ne vois pas comment tu t'y es pris, alors...

    Bref, il me faut extraire la liste des abscisses Xs et celles des ordonnées Ys... Pas évident, car l'algo général ne me semble pas simple pour une automatisation complète (surtout si il y a des valeurs manquantes, ou alors il faut faire des hypothèses sur ces points manquants...). Le plus simple : du semi-automatique

    Code:
    PasX = input('Entrez le pas des abscisses ?'); % par exemple
        Xs = min(XXs(:)):PasX:max(XXs(:));
        PasY = input('Entrez le pas des ordonnées ?'); % par exemple
        Ys = min(YYs(:)):PasY:max(YYs(:));
        % ben nous y voilà !
        [XXg,YYg] = meshgrid(Xs,Ys);
        % interpolation sur la grille
        ZZg = interp2(XXs,YYs,ZZs,XXg,YYg);
        % et voilà
        figure, contour3(XXg,YYg,ZZg,20)
    
    -- ELw
    Dernière modification par yoda1234 ; 17/03/2011 à 18h41.

  3. #3
    invite6307a12d

    Re : Matlab - carter des données .xyz

    > Je dispose de données de topographie sous format .xyz, c'est à dire 3 vecteurs colonne: abscisse - ordonnée - altitude

    c'est bien un fichier de type texte ? Lecture :
    Code:
        xyz = load([nomfichier,'xyz']);
        nPts = size(xyz,1);
        XXs = xyz(:,1); YYs = xyz(:,2); ZZs = xyz(:,3);
    > Je cherche à créer une carte des altitudes à partir de ces données, mais je n'arrive pas à créer des grilles... j'ai bien tenté de faire du meshgrid mais je ne dois pas bien m'y prendre...

    Ben je ne vois pas comment tu t'y es pris, alors...

    Bref, il me faut extraire la liste des abscisses Xs et celles des ordonnées Ys... Pas évident, car l'algo général ne me semble pas simple pour une automatisation complète (surtout si il y a des valeurs manquantes, ou alors il faut faire des hypothèses sur ces points manquants...). Le plus simple : du semi-automatique

    Code:
        PasX = input('Entrez le pas des abscisses ?'); % par exemple
        Xs = min(XXs(:)):PasX:max(XXs(:));
        PasY = input('Entrez le pas des ordonnées ?'); % par exemple
        Ys = min(YYs(:)):PasY:max(YYs(:));
        % ben nous y voilà !
        [XXg,YYg] = meshgrid(Xs,Ys);
        % interpolation sur la grille
        ZZg = interp2(XXs,YYs,ZZs,XXg,YYg);
        % et voilà
        figure, contour3(XXg,YYg,ZZg,20)
    En espérant que cela vous serve !

    -- ELw

  4. #4
    inviteeafbdacf

    Re : Matlab - carter des données .xyz

    Citation Envoyé par ELw Voir le message
    > Je dispose de données de topographie sous format .xyz, c'est à dire 3 vecteurs colonne: abscisse - ordonnée - altitude

    c'est bien un fichier de type texte ? Lecture :
    Code:
        xyz = load([nomfichier,'xyz']);
        nPts = size(xyz,1);
        XXs = xyz(:,1); YYs = xyz(:,2); ZZs = xyz(:,3);
    > Je cherche à créer une carte des altitudes à partir de ces données, mais je n'arrive pas à créer des grilles... j'ai bien tenté de faire du meshgrid mais je ne dois pas bien m'y prendre...

    Ben je ne vois pas comment tu t'y es pris, alors...

    Bref, il me faut extraire la liste des abscisses Xs et celles des ordonnées Ys... Pas évident, car l'algo général ne me semble pas simple pour une automatisation complète (surtout si il y a des valeurs manquantes, ou alors il faut faire des hypothèses sur ces points manquants...). Le plus simple : du semi-automatique

    Code:
        PasX = input('Entrez le pas des abscisses ?'); % par exemple
        Xs = min(XXs(:)):PasX:max(XXs(:));
        PasY = input('Entrez le pas des ordonnées ?'); % par exemple
        Ys = min(YYs(:)):PasY:max(YYs(:));
        % ben nous y voilà !
        [XXg,YYg] = meshgrid(Xs,Ys);
        % interpolation sur la grille
        ZZg = interp2(XXs,YYs,ZZs,XXg,YYg);
        % et voilà
        figure, contour3(XXg,YYg,ZZg,20)
    En espérant que cela vous serve !

    -- ELw

    Bonjour
    j'ai essayé avec ce script présenté plus haut :
    xyz = load('topo','xyz');
    nPts = size(xyz,1);
    XXs = xyz(:,1);
    YYs = xyz(:,2);
    ZZs = xyz(:,3);

    PasX = input('Entrez le pas des abscisses ?');
    Xs = min(XXs():PasX:max(XXs();
    PasY = input('Entrez le pas des ordonnées ?');
    Ys = min(YYs():PasY:max(YYs();

    [XXg,YYg] = meshgrid(Xs,Ys);
    ZZg = interp2(XXs,YYs,ZZs,XXg,YYg);
    figure, contour3(XXg,YYg,ZZg,20)

    mais je recois toujours le meme message de matlab: X and Y must be monotonic vectors or matrices produced by MESHGRID.

    qq1 peut m'expliquer pourquoi ce message.

  5. A voir en vidéo sur Futura
  6. #5
    inviteeafbdacf

    Smile Re : Matlab - carter des données .xyz


    j'ai essayé de tracer la bathymétrie d'une zone cotière. Je dispose d'un fichier de trois colonnes xyz. J'ai utilisé le script présenté par ELw.

    Le message est toujours :
    j'ai essayé avec ce script présenté plus haut :
    ----------------------------------------------------------------------
    xyz = load('topo','xyz');
    nPts = size(xyz,1);
    XXs = xyz(:,1);
    YYs = xyz(:,2);
    ZZs = xyz(:,3);

    PasX = input('Entrez le pas des abscisses ?');
    Xs = min(XXs(:PasX:max(XXs(;
    PasY = input('Entrez le pas des ordonnées ?');
    Ys = min(YYs(:PasY:max(YYs(;

    [XXg,YYg] = meshgrid(Xs,Ys);
    ZZg = interp2(XXs,YYs,ZZs,XXg,YYg);
    figure, contour3(XXg,YYg,ZZg,20)
    -------------------------------------------------------

    mais je recois toujours le meme message de matlab: X and Y must be monotonic vectors or matrices produced by MESHGRID. dans l'exemple XXs et YYs sont les X te Y.

    Quelqu'un pourrait mexpliquer pouquoi ?
    Merci d'avance !

  7. #6
    invite19f369ec

    Re : Matlab - carter des données .xyz

    monotonic veut dire toujours dans le meme sens: soit le sens croissant, soit le sens decroissant mais pas les 2 en meme temps:
    exemple: 1 4 5 6 9 est monotonic mais 1 4 5 3 9 ne l'est pas
    en d'autres termes pas de changement de signe de la dérivée pour monotonic

  8. #7
    inviteeafbdacf

    Re : Matlab - carter des données .xyz

    Ok, pour monotonic mais pour quoi le matlab me signale tjs le mêm message:X and Y must be monotonic vectors or matrices produced by MESHGRID. dans l'exemple XXs et YYs sont les X te Y. ce qui empeche le script de s'achever, par contre avec la commande griddata ca marche. Cependant je ne comprends pas la différence.

    BechirBejaoui

  9. #8
    invite125dd03c

    Re : Matlab - carter des données .xyz

    Code:
    XYZ = load('etopo1.xyz','xyz');
        nPts = size(XYZ,1);
        XXs = XYZ(:,1); YYs = XYZ(:,2); ZZs = XYZ(:,3);
    for i=1:1:size(XXs,1)
        Xs(i)=[XXs(i)];
        Ys(i)=[YYs(i)];
    end
    Xs=Xs'
    Ys=Ys'
    Zs=ZZs'
    xu=unique(Xs);yu=unique(Ys);
    Nx=length(xu); Ny=length(yu);
    X=reshape(Xs,Nx,Ny);Y=reshape(Ys,Nx,Ny); Z=reshape(Zs,Nx,Ny);
    figure;
    contour(Z,40)
    Dernière modification par JPL ; 29/04/2019 à 19h33. Motif: Ajout de la balise Code (#) pour garder l'indentation

Discussions similaires

  1. Ecrire des donnees dans un fichier .txt avec MATLAB
    Par invitecd42c963 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 24/10/2011, 17h03
  2. Comment lisser des données expérimentales - matlab?
    Par invitec1166cc7 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 17/07/2008, 12h59
  3. [Matlab] Utilisation selective des donnees d'un vecteur
    Par invite45591d4a dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 10/07/2007, 12h41
  4. Importation données Matlab
    Par invitee4b17465 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/06/2007, 14h38
  5. Matlab : importation de données
    Par invite2fbe1c70 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 15/04/2006, 15h18
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...