Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Matlab : regroupement de données

  1. #1
    OursDesMers

    Question Matlab : regroupement de données

    Bonjour à tous,

    Un collègue et moi travaillons sur un code en matlab destiné à calculer des erreurs de positionnement de satellites pour valider notre année.
    Le problème est que nous devons regrouper des données et cela risque de prendre énormément de temps manuellement.
    Les données sont toutes sur un même site web et nous n'avons absolument aucune idée de la façon dont il faut écrire une telle fonction.
    Pourriez vous nous fournir quelques indications ?

    Merci d'avance

    -----


  2. Publicité
  3. #2
    Antoane

    Re : Matlab : regroupement de données

    Bonjour,

    Il faudrait que tu donnes plus d'infos sur ces "données" : type, taille, etc. Et surtout : où sont-elles, sous quelle forme ("un site web") et comment tu les récupères.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #3
    lou_ibmix_xi

    Re : Matlab : regroupement de données

    Je plussois. Site web -> soit ils ont une fonction d'export, soit une API pour attaquer (ce qui sera difficile avec MATLAB), soit il va falloir wget/grep/sed/awk si c'est possible.... Si tu peux poster le lien. La suite dépendra de sous quel forme tu récupères tes données.
    certains adhèrent au principe du tiers exclu, d'autres pas, moi c'est aucun des deux.

  5. #4
    OursDesMers

    Re : Matlab : regroupement de données

    Voici un exemple : ftp://ftp.igs.org/pub/glonass/products/1569/
    C'est le site dont on va devoir récupérer les données.
    L'objectif est de faire les calculs sur une grande partie de la base de données

  6. #5
    lou_ibmix_xi

    Re : Matlab : regroupement de données

    Tu es vernis pas de javascript et autre api rest, ça devrait pouvoir ce faire en quelques coups de bash SI les nom des fichiers sont "formatés". IE leur noms reflètent leur contenu, ie, tu as un moyen de reconstituer l'URL du fichier que tu veux télécharger/traiter. Après C'est un wget, un dezippeur, et du grep/awk pour obtenir un cvs importable sous MATLAB.
    certains adhèrent au principe du tiers exclu, d'autres pas, moi c'est aucun des deux.

  7. #6
    OursDesMers

    Re : Matlab : regroupement de données

    J'ai fait le code mais quelque chose ne vas pas : des fichiers vides se créent dans mon répertoire et la fonction mget me renvoie l'erreur 500 de FTP
    Pourriez vous regarder le code ?
    Code:
    function []=download()
    msg_input = input('Un dossier du nom de IGS_DATA va être créé à l adresse que vous choisirez pour stocker les données à télécharger, appuyez sur une touche pour continuer','s')
    repertory = input('Veuillez choisir un répertoire (exemple : C:\Users\User\Dossier) :  ','s')
    cd(repertory)
    mkdir IGS_DATA
    cd('IGS_DATA')
    ftpobj=ftp('igs.ensg.ign.fr','anonymous','')
    for year = 1991:2018
        start=0
        if year == 1991
            start = 146
        else
            start = 1
        end
        for day = start:366
            day_string = num2str(day)
            len_day = length(day_string)
            if len_day ~= 3
                while len_day ~= 3
                    day_string = strcat('0',day_string)
                    len_day = len_day + 1
                end
            end
            year_string = ''
            if year < 2000
                year_string = num2str(year - 1900)
            else
                year_string = num2str(year - 2000)
            end
            len_year = length(year_string)
            if len_year ~= 2
                while len_year ~= 2
                    year_string = strcat('0',year_string)
                    len_year = len_year + 1
                end
            end
            broadcast_name = strcat('brdc',day_string,'0','.',year_string,'n','.Z')
            try
                mget(ftpobj, broadcast_name)
            end
    
            end
        end
        pause(0.05)
    end
    Dernière modification par Antoane ; 08/05/2018 à 14h31. Motif: incorporation du code au texte du message pour lisibilité accrue

  8. #7
    Ikhar84

    Re : Matlab : regroupement de données

    Et en mettant directement la ressource en paramètre de mget au lieu de broadcast_name ?
    L'erreur 500 indique une erreur de syntaxe, une commande incorrecte ou qu'une action n'a pu être réalisée, la création d'un fichier vide en est la conséquence directe (aucune donnée n'a été rapatriée).
    En deuxième étape, il faudrait s'assurer que la procédure de connexion (anonymous) est correcte, avec, par exemple, un client ftp basique...

    Nota: les doublons sont interdits, les modos vont pas apprécier, d'autant que les mêmes pistes ont été proposées... avant le dernier post de ce fil...

    Edit j'ai pas été très clair: mettre en dur l'adresse de la ressource au lieu d'une variable à la construction alambiquée...
    Dernière modification par Ikhar84 ; 08/05/2018 à 15h24.
    J'ai glissé Chef !

  9. #8
    OursDesMers

    Re : Matlab : regroupement de données

    Voila ce qui est affiché lorsque je remplace broadcast_name par le chemin complet vers le fichier : Error using ftp/mget (line 65) Cannot create "C:\Users\User1\Desktop\Work\I GS_DATA\ftp:\igs.ensg.ign.fr\p ub\igs\data\1991\146\brdc1460. 91n.Z".
    Et voici ce que j'ai ajouté pour avoir le chemin dans la boucle :
    broadcast_address = strcat('ftp://igs.ensg.ign.fr/pub/igs/data/',num2str(year),'/',day_string,'/',broadcast_name)
    mget(ftpobj, broadcast_address)

  10. #9
    Ikhar84

    Re : Matlab : regroupement de données

    Déjà, la ressource demandée n'existe pas.
    Il y a des espaces en trop un peu partout dans l'url, des slashs (le caractère '/' manquants) ...
    Code:
    ftp:\igs.ensg.ign.fr\p ub\igs\data\1991\146\brdc1460. 91n.Z
    Si on corrige l'url, par:
    Code:
    ftp://igs.ensg.ign.fr/pub/igs/data/
    On a la bonne liste des répertoires distants...

    Donc déjà, remplacez :
    Code:
    mget(ftpobj, broadcast_address)
    Par:
    Code:
    mget(ftpobj, 'ftp://igs.ensg.ign.fr/pub/igs/data/1991/146/brdc1460.91n.Z')
    Note: pour moi le répertoire distant est vide...
    Note 2: il faut vraiment utiliser les balises code pour être plus lisible et pas obliger les modos à corriger manuellement...
    J'ai glissé Chef !

  11. #10
    OursDesMers

    Re : Matlab : regroupement de données

    Vous remarquerez que c'est exactement ce que j'ai fais, cependant le programme me renvoie ce message d'erreur avec cette forme bizarre "d'adresse" : C:\Users\User1\Desktop\Work\I GS_DATA\ftp:\igs.ensg.ign.fr\p ub\igs\data\1991\146\brdc1460. 91n.Z

  12. #11
    Ikhar84

    Re : Matlab : regroupement de données

    Moi je lis:
    Code:
    broadcast_address = strcat('ftp://igs.ensg.ign.fr/pub/igs/data/',num2str(year),'/',day_string,'/',broadcast_name)
    
    mget(ftpobj, broadcast_address)
    Et pas:
    Code:
    mget(ftpobj, 'ftp://igs.ensg.ign.fr/pub/igs/data/1991/146/brdc1460.91n.Z')
    Pour identifier le problème, il faut simplifier au maximum l'instruction, et il n'y a rien de plus simple qu'un litteral (chaine de caractère en dur...).

    Edit: il faut bien évidemment s'assurer de l'existence de la ressource, avec un client ftp ou un navigateur... est ce fait ?
    Dernière modification par Ikhar84 ; 08/05/2018 à 18h14.
    J'ai glissé Chef !

  13. #12
    OursDesMers

    Re : Matlab : regroupement de données

    Oui j'ai bien vérifié l'existence des fichiers en question avec le navigateur
    J'ai été voir avec l'invite de commande windows et voila ce que ça a donné : 500 illegal port command 425 use PORT or PASV first après avoir entré get brdcXXXX.YYn.Z
    J'ai ensuite essayé : literal pasv pour passer en mode passif et j'ai réitéré la requête et on m'a renvoyé la même erreur

    J'ai remarqué que si l'on entre le chemin complet sur le navigateur on télécharge directement le fichier, je vais essayer avec cette méthode

Discussions similaires

  1. regroupement de données historiques et archéologiques
    Par cherbe dans le forum Archéologie
    Réponses: 6
    Dernier message: 02/02/2016, 23h08
  2. regroupement statistique (profilage de données)
    Par nicopat dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 25/01/2016, 16h14
  3. regroupement de données Excel
    Par adribs dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 22/06/2015, 14h37
  4. [Matlab] Chargement de données
    Par Chingachook dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 22/06/2009, 11h27
  5. Importation données Matlab
    Par garry444 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/06/2007, 13h38