Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 23 November 2017 07:16

Samoht56
Juste Inscrit !
Date d'inscription: 22 Nov 2017
Messages: 1

Code IDL bad values

Bonjour bonjour !

Bon normalement je ne me plante pas de section, enfin j'espère.

Voilà ce qui m'amène : j'ai à ma disposition 60 fichier .txt de données de matières en suspension dans le delta de l'Amazone, de janvier 2009 à décembre 2013. Mon objectif est de créer un graphique sous IDL me permettant de montrer l'évolution mensuelle en un pixel choisi dans le code. J'ai donc créé le cube de données comme il faut (data_all), mais au moment de la suppression des valeurs aberrantes, ça plante. Voilà mon code pour cette étape :

Code:

    bad=where(data_all(*,*,i) lt 0 or data_all(*,*,i) gt 4000 or data_all(*,*,i), count)
    if count gt 0 then data_all(bad)=!VALUES.F_NAN

La boucle a été correctement réalisée, c'est dans cette partie là que ça plante je pense. Quand je fais tourner le code, et que je lui demande de me faire "print, data_all", il me met bien des NaN par-ci par-là, mais j'ai une valeur récurrente qui n'est pas supprimée : 55 537 ! Bon inutile de vous dire que 55 537 mg.L-1 de matières en suspension c'est clairement aberrant. D'autant que je lui ai demandé de passer en NaN toutes les valeurs supérieures à 4000 ! Dans le doute, j'ai rajouté l'expression : "

Code:

or data_all(*,*,i) eq 55537

", mais ça n'a rien changé. C'est un tantinet agaçant... Je précise que je suis novice en IDL.

Auriez-vous des pistes pour résoudre cet épineux problème de valeurs aberrantes ? Ai-je fait une bêtise dans mon code ?

Merci d'avance pour vos réponses !

Hors ligne

 

#2 Thu 23 November 2017 13:24

FlorianD
Membre
Date d'inscription: 22 Dec 2016
Messages: 90
Site web

Re: Code IDL bad values

Bonjour,

Voici une réponse qui devrait vous aider pour un tableau à 4D. Vous pourrez certainement l'adapter pour votre array 3D:
http://www.idlcoyote.com/idl_way/smallexamples.html
exemple : Zeroing Columns of an Array

Cdlt

Florian

Hors ligne

 

Pied de page des forums

Powered by FluxBB