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

Mathématiques Discussion :

Détecter des pics


Sujet :

Mathématiques

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Par défaut Détecter des pics
    Bonjour, j'ai plusieurs séries temporelles où je voudrais détecter les pics. Par pics, j'entends, certains maximum locaux, les plus importants par rapport aux max locaux de la série concernée.

    J'utilise R pour réaliser cela.

    J'ai effectué quelques recherches, et je pense que la méthode suivante est adaptée pour cas mais j'aimerais avoir d'autre avis et je ne suis pas sûr d'avoir tout compris.

    J'ai ma série temporelle : Y = y1,y2,...,yn.

    Je considère un décalage h, et j'effectue une moyenne sur [y(i-h),...,y(i)] = Avg(i) et cela pour i allant de h+1 à t = longueur de ma série temporelle, c'est ce qu'on appelle moyenne mobile je crois.

    Je calcule aussi l'écart type sur [y(i-h),...,y(i)] = std(i) et cela pour i allant de h+1 à t.

    Ensuite Si y(i) - Avg(i-1) > A*std(i-1) donc j'aurais un max??

    merci

  2. #2
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Détecter des pics
    Bonjour,

    Recourir à l'outil statistique est une bonne idée; cependant se contenter de l'écart type est insuffisant, parce que d'autres anomalies locales - comme par exemple une discontinuité (*) - conduiraient aussi à des valeurs comparables (**).

    De plus, l'opportunité de telle ou telle méthode dépend des caractéristiques de la suite temporelle (Yn), dont on ne sait rien:

    a) la base des pics est-elle constante (1), lentement variable (2), ou présente-t-elle (3) une suite de paliers horizontaux ?
    Nom : Graphe_01 [2017-02-04].gif
Affichages : 1282
Taille : 14,4 Ko

    b) les pics à sélectionner diffèrent-ile beaucoup les uns des autres par leurs caractéristiques (hauteur, largeur à mi-hauteur) ? Faut-il éliminer ceux qui seraient trop faibles ou trop étalés ? Certains d'entre eux se chevauchent-ils ?

    c) Y a-t-il un bruit de fond, et de quelle intensité ?

    La détection d'un pic sur le graphe des variations d'une fonction y = F(t) est possible par l'étude de la dérivée première, qui s'annule et change de signe au voisinage de l'extremum.
    Il faudra travailler sur un échantillon comportant un nombre impair de points [(n - k), (n - k + 1), ... , n, ... , (n + k-1), (n + k)] ,
    et centré sur la date considérée (tn) , pour la symétrie des équations.

    Dans le cas peu probable d'un bruit de fond négligeable, on pourra se contenter de 3 points pour calculer et représenter la pente moyenne b = (Yn+1 - Yn-1) / (tn+1 - tn-1) .

    Sinon tu auras avantage à travailler sur un plus grand échantillon (5, 7, 9 points ...) et à mettre en oeuvre une régression parabolique, voire cubique (si les pics sont étroits et ne comportent que quelques points); si l'on pose: t = (tn+j - tn) , l'équation locale admet alors pour expression:
    # Y(t) = a + b * t + c * t2
    # Y(t) = a + b * t + c * t2 + d * t3
    et (b) représente toujours la pente au point central (t = 0) - on a en effet pour cette dernière:
    # Y'(t) = b + (2*c) * t
    # Y'(t) = b + (2*c) * t + (3*d) * t2
    Une telle démarche suppose que tu as sous la main les ressources statistiques appropriées.

    Si elle se révélait trop lourde ou inefficace - cas des pics très étroits - tu pourrais envisager la variante qui suit, plus rudimentaire, et à calculer sur 9 points:
    # moyenne fictive des valeurs extrêmes: Y1 = (tn-4 +tn-3 + tn-2 + tn+2 + tn+3 + tn+4) / 6 ;
    # moyenne des valeurs centrales: Y2 = (tn-1 +tn + tn+1) / 3 ;
    # écart: DeltaY = Y2 - Y1 .
    Ce dernier terme (en fait lié à la valeur locale de la dérivée seconde) présente un maximum à l'emplacement du pic, mais reste très faible dans le cas d'une discontinuité.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par zaitIX Voir le message
    Bonjour, j'ai plusieurs séries temporelles où je voudrais détecter les pics. Par pics, j'entends, certains maximum locaux, les plus importants par rapport aux max locaux de la série concernée.
    Si tu pouvais nous montrer un exemple, ça simplifierait et nous permettrait de répondre de la meilleure manière

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Par défaut
    Bonjour,

    voilà un exemple Nom : exemple.jpg
Affichages : 1291
Taille : 122,8 Ko

    Mon but est de détecter les pics "suffisamment" importants par rapport aux points voisins, les max locaux faible peuvent être éliminés.

    Je n'ai pas vraiment de critère pour ce que j'appelle un pic "suffisamment" important... mais j'aurais voulu faire un petit algo, que je pourrais modifier facilement, pour justement, modifier cette limite, à partir de laquelle le pic est bien sélectionné

    MErci

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 221
    Par défaut
    Voici une question plus ou moins similaire et très récente :
    https://www.developpez.net/forums/d1...-flux-donnees/

    Tu peux t'en inspirer. Et tu peux rebondir sur cette discussion, pour dire en quoi les solutions proposées ne te conviennent pas.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Ben je crois que son but est l'inverse : garder les pics...


    Alors il me semble juste une moyenne glissante filtrée sur +/- 1 ou +/-2, et un test facile devrait marcher :

    Exemple avec +/- 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pour i = 1 jusqu'a i < (n-1)
        moyenne = abs(val[i-1] + val[i+1])/2.0 
        si abs(val[i]) > X moyenne   /* visiblement ici X > 10 */
            stocker i  /* ou val[i] */
        fin si
    fin pour

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Par défaut
    Je suis plutôt d'accord, mais je vais devoir faire ça sur environ 500 courbes, du coup le facteur 10 qui peut être adaptée sur une, n'est peut être pas adapté sur l'autre,

    c'est pourquoi j'avais évoqué si > A*écart type sur les 2 ou 4 points autour , avec A un facteur aussi à déterminer, alors c'est un pic qui m'intéresse.

    Mais je suis pas sûr que ça soit adapté dans mon cas...

  8. #8
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Détecter des pics
    Bonjour,

    Le cas est difficile, en raison de l'étroitesse des pics et de leur éventuelle accumulation.
    On peut distinguer 3 domaines sur ton échantillon:

    Nom : Im [2017-02-13] Graphe_02.gif
Affichages : 1174
Taille : 25,3 Ko

    La partie (A) paraît idéale, les pics se détachant nettement du bruit de fond; les valeurs sont en dehors de l'intervalle [m-s ; m+s](1); mais déjà leur finesse pose problème: y a-t-il un seul pic, ou deux très rapprochés en (1, 2, 3, 4, 5) ?
    En (B) la succession des valeurs extrêmes est si rapide, que la base n'est même plus discernable: on y trouve probablement plus de 60 % de valeurs en dehors du domaine [m-s ; m+s] !
    La base réapparaît ensuite (partie C), mais avec un bruit de fond plus important; le contraste des pics est ici plus faible, et les écarts observés sont de signe variable ...

    Ce qui paraît commun à l'ensemble, c'est moins l'émergence d'une anomalie locale se détachant sur un bruit de fond (un pic, à proprement parler) que la succession rapide de valeurs extrêmes; ces oscillations sporadiques pourraient se manifester par des valeurs anormalement élevées des expressions:
    yn = │xn - xn-1│ + │xn+1 - xn
    ou
    zn = │xn - xn-1│ + │xn+1 - xn│ + │xn+2 - xn+1│ .

    Mais il est possible qu'une séquence semblable à ce que l'on trouve en (B) reste inexploitable ...

    (1): m = moyenne ; s = écart-type.

  9. #9
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut
    On peut, sur des exemples numériques, concevoir un filtre élémentaire permettant la détection d'un pic sur 3 points.

    Envisageons les triplets
    T1 = (0, 4, 8) ; T2 = (8, 4, 0) ; T3 = (0, 8, 4) ; T4 = (8, 0, 4)
    pour lesquels m = 4 et s = 3.266 .
    Les deux derniers, pour lesquels le terme central vérifie:
    xn = Max(xn-1, xn, xn+1) ou xn = Min(xn-1, xn, xn+1)
    peuvent correspondre au cas limite d'un pic établi sur une base pentue, et orienté soit vers le haut, soit vers le bas.
    Le terme central se situe alors en dehors de l'intervalle [m-s = 0.734 ; m+s = 7.266] , et le rapport r = │xn - m│/s vaut 1.225 (il est nul dans les 2 premiers cas).

    La sélection d'un pic serait donc possible sur la vérification du test: │xn - m│/s > 1.225 . Rien n'interdit évidemment l'intervention d'une condition plus sévère, liée à une limite plus élevée; par exemple, pour les triplets limites suivants:
    (0, 3, 1): r = 1.337
    (0, 4, 1): r = 1.372
    (0, 9, 1): r = 1.407
    (0, 100, 1): r = 1.414 (*)
    (*) Résultats non modifiés par addition d'une constante, ou multiplication par un facteur donné: on obtient le même rapport pour (50, 53, 51) et (500, 530, 510). Cependant il tend rapidement vers une limite finie (21/2 probablement) quand le terme médian devient infiniment grand; il faut donc s'en tenir à une valeur raisonnable, par ex. 1.30 .

    Il s'agit d'un facteur de forme, indépendant de l'échelle utilisée, et qui caractérise la disposition mutuelle des 3 points envisagés; le critère de sélection doit donc être complété par un autre test, portant sur une dimension de la figure, par exemple: │xn - m│ > h ; il intervient alors un seuil (h) arbitrairement choisi, que seul l'utilisateur des données est en mesure d'estimer.

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Bon, après ces remarques et travaux tout à fait judicieux de wiwaxia (comme d'hab ) , et ta remarque plus haut sur le facteur 10, il m'est venu une idée :


    • Faire une passe pour calculer les plus petit et plus grand écarts entre 2 valeurs consécutives.

    • prendre 50% de la différence et l'ajouter au plus petit

    • faire une seconde passe en utilisant l'algo que j'avais mis ci-dessus, et en remplacant le test de X*moyenne par moyenne +/- la valeur calculée ci-dessus. (à peu près équivalent à un sigma de 50%)



    Une variante peut consister à faire une seconde passe en faisant une moyenne glissante réelle uniquement pour les points dont les écarts respectent les critères (ce qui lisse la "base"), et ré-itérer la procédure ci-dessus...






    Une autre idée pourrait être de faire comme en traitement d'image, sur la base des histogrammes :

    • Pour chaque point on calcule l'écart, et on le stocke.

    • On trie ce tableau par ordre croissant par exemple....

    • Au vu de la courbe que tu présentes, il y aura une discontinuité dans l'histogramme . On ne garde alors que les points dont l'écart correspond au moins à cette valeur...

      Ton tableau d'écarts doit être à peu près comme ça :

      Nom : escalier.gif
Affichages : 1111
Taille : 818 octets





    [EDIT]

    PS: un exemple de fichier de données serait le bienvenu

    [/EDIT]

  11. #11
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Détecter des pics
    Je reviens sur la caractérisation des pics, parce je crois qu'on peut faire plus simple et rapide, et que l'auteur du sujet a du pain sur la planche:
    Citation Envoyé par zaitIX Voir le message
    ... mais je vais devoir faire ça sur environ 500 courbes ...
    Ce n'est pas sans rapport avec ce que propose souviron34 ( salut !)
    Sur tout triplet de 3 valeurs consécutives, calculer l'expression: An = 2 * Xn - Xn-1 - Xn+1 ,
    qui représente au signe près le double de la hauteur moyenne d'un pic (hn = |An| / 2).

    Les données (Xn) se situent entre deux bornes (Xmin, Xmax) que l'on détermine rapidement à l'issue d'un parcours initial de la liste; la base (moyenne du bruit de fond) se situe approximativement à la valeur Xmoy = (Xmin + Xmax) / 2 ,
    et l'on peut raisonnablement retenir les pics dépassant la moitié de la largeur disponible de part et d'autre, soit:
    Ex = Xmax - Xmoy = (Xmax - Xmin) / 2 .
    Il suffira donc d'enregistrer les triplets vérifiant: hn >= Ex / 2 , soit encore: |An| >= (Xmax - Xmin) / 2 .

    J'ai regardé ce que donnait le procédé sur une liste aléatoire de 202 termes (contenant donc 200 triplets), résultant de la loi de distribution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      u:= Random; v:= (2 * u) - 1;
      w:= (v^N); X:= Round(1000 * (1 + w))          // Puissance entière et impaire de (v) - le code était différent
    Pour des valeurs croissantes de (N), conduisant à des valeurs extrêmes de plus en plus rares, j'ai obtenu les résultats suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exposant: N =                 1          3          5
    Nombre de pics retenus: I = 105         59         30
    Proportion:                  52.5 %     29.5 %     15.0 %
    La méthode devrait fonctionner correctement pour tes listes, assortie d'une condition de sélection appropriée:
    |An| >= f * (Xmax - Xmin) , avec f ~ 0.5 .
    La seule réserve concerne les séquences ininterrompues de valeurs extrêmes (partie B de la liste citée, #8), pour lesquelles les résultats obtenus pourraient se révéler dépourvus de signification.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 16
    Par défaut
    Bonjour,

    Merci pour votre aide !


    De mon côté, j'ai réussis pour l'instant à trouver les maximum locaux. Je me demandais si je pouvais ensuite "filtrer ces maximum" pour conserver ceux qui sont pertinents ;

    Pour revenir sur les commentaires, dans la zone B, il n'y a aucun pics qui sont pertinents pour moi. Je veux conserver les pics qui contrastent vraiment.

    Du coup en ayant les maximum locaux, je voulais essayer ce que wiwaxia suggérait, avec le facteur de forme. Je pensais conserver un pic si

    | x_i -m| > 2*écart_type avec x_i un maximum local

  13. #13
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Détecter des pics
    Bonjour,

    Il y a une manière simple de s'en sortir en supposant:
    a) que tous les pics sont étroits et réductibles à un triplet dont la valeur centrale dépasse nettement celles des 2 extrémités;
    b) qu'ils sont toujours séparés par un creux et ne peuvent se succéder à deux instants consécutifs (k) et (k+1).
    Il suffit alors de remplir progressivement une liste d'enregistrements, de même longueur que celle des données, et dont on extraira par la suite les éléments intéressants.

    Voilà ce que cela peut donner en Pascal:

    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
    CONST Nmax = Long_L1;          // nombre de données disponibles
          Seuil = 100;             // exemple simple - s = (Xmax - Xmin)/2 ?
          m = 10;
    
    TYPE Element = RECORD OF  Pic: Byte;                     // réductible à un booléen
                              Signal: LongInt  END;          //
         LstLi = ARRAY[1..Nmax] OF LongInt;                  // 
         LstEl = ARRAY[1..Nmax] OF Element;                  // 
    VAR Liste1: LstLi;                                       // liste des données
        Liste2: LstEl;                                       // liste des pics détectés
        p: Byte; Dwx, Dxy, Dwy, i, w, x, y: LongInt
    // ...
    PROCEDURE ZeroE(VAR P1: Byte; VAR I1: LongInt);
      BEGIN
        P1:= 0; I1:= 0   
      END;
    // ...
      Liste2[1]:= 0;
      FOR k:= 2 TO Nmax-1 DO 
        BEGIN
          w:= Liste1[k-1];  x:= Liste1[k];    y:= Liste1[k+1];
          Dwx:= Abs(w - x); Dxy:= Abs(x - y); Dwy:= ZAbs(w - y);
          IF (Liste2[k-1]=m) THEN ZeroE(p, i)                       // interdiction de 2 pics adjacents
                             ELSE BEGIN
                                    Swxy:= Dwx + Dxy;
                                    Test1:= (Swxy>Seuil);           // intensité suffisamment forte
                                    Test2:= (3*Dwy)<Swxy);          // pic nettement détaché de la base - condition sur la forme
                                    IF (Test1 AND Test2) THEN BEGIN
                                                                 p:= m; i:= 2 * x; Dec(i, w + y)
                                                              END
                                                         ELSE ZeroE(p, i)
                                  END   
          Liste2[k].Pic:= p; Liste2[k].Signal:= i
        END;
    Le code fonctionne correctement, pour autant que j'ai pu le constater sur quelques essais; les pics de largeur (2) ou trop faibles (<51) sont invisibles, de même que les discontinuités de la base.
    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
    0            0 
    0            0
    0            0
    111        10
    0            0
    0            0
    111        10
    0           0
    111        10
    0           0
    111        10
    0           0
    111        0
    111        0
    0           10
    111        0
    111        0
    1           0
    1           0
    111        0
    111        0
    1           0
    1           0
    1           0
    0           0
    50         0 
    0           0
    0          0
    51         10
    0          0
    0          0
    On pourrait envisager de retenir sous condition les pics épais (5, 110, 115, 0) et les oscillations (110, 215, 10, 100) à l'aide de variables supplémentaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      z:= Liste1[k+2]; // ...
      Dyz:= Abs(y - z);
      Dwz:= Abs(w -z);
    mais au prix de contraintes plus lourdes et discutables, compte tenu des choix nombreux et arbitraires qu'implique le tri des quadruplets (k-1, ..., k+2).

  14. #14
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut Que veux-tu au juste ?
    Ce signal est assez typique d'un système chaotique, avec une dérive lente ponctuée de grands sauts vers les valeurs limites haute et basse. La notion de "pic" ne parait pas pertinente. Que veux-tu au juste ?

Discussions similaires

  1. Détecter des pics dans un signal échantillonné
    Par comode dans le forum Traitement du signal
    Réponses: 10
    Dernier message: 04/11/2016, 11h04
  2. détecter des colonnes par leur classe
    Par destructive dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/05/2007, 17h28
  3. Détecter des écrans en java
    Par sandytarit dans le forum Multimédia
    Réponses: 3
    Dernier message: 01/02/2007, 21h54
  4. [C#] Comment détecter des contrôles HTML ?
    Par Landolsi dans le forum ASP.NET
    Réponses: 14
    Dernier message: 23/01/2006, 12h13
  5. [Configuration] Détecter des paramètres du navigateur client...
    Par Olish dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 08/10/2005, 18h09

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