#1 Mon 11 July 2011 17:41
Utiliser une valeur CMJN pour créer une légende
Bonjour à tous,
Je récupère ce jour une base plutôt complexe en terme de nombre de valeurs, constituée notamment d'une couche de polygones colorés en dur selon un code CMJN (la BD Charm du BRGM pour ne pas la nommer). J'aimerais utiliser les valeurs CMJN de couleur contenues dans la base pour créer une légende automatiquement avec ces couleurs. Bref, pour ne pas avoir à me retoquer toute l'analyse thématique à la main, valeur par valeur, couleur par couleur...
Mon petit doigt me souffle que ça doit pouvoir se faire via un bon vieux script préparé sous Excel et injecté dans le .WOR mais je cale (plus de neurones ce soir). Avez vous des idées lumineuses à me souffler ?
A votre dispo pour questions ou s'il faut fournir des images.
Hors ligne
#2 Mon 11 July 2011 18:53
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Utiliser une valeur CMJN pour créer une légende
Bonjour Robin
Le script est la bonne piste...mais il reste le problème que MI ne cause pas le CMJN mais seulement le RVB
Je ne connais pas de "loi de passage" de l'un à l'autre mais on doit pouvoir trouver une approximation
nb: idem pour moi, au dessus de 34° mon neurone disjoncte
Hors ligne
#3 Mon 11 July 2011 19:14
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Utiliser une valeur CMJN pour créer une légende
Salut
Dites-vous qu'il fait aussi chaud de ce côté-ci de l'Atlantique. Tellement chaud que le service météo vient de nous mettre en veille d'orage violet!!! Enfin un peu d'action...
Bon, revenons à nos moutons....
J'ai trouvé ceci : http://web.forret.com/tools/color.asp
Est-ce que ça peut aider?
Daniel
P.S. Attention à vos neurones!!
De retour à la géomatique
Hors ligne
#4 Mon 11 July 2011 19:29
Re: Utiliser une valeur CMJN pour créer une légende
Pour la conversion, je ne suis pas frileux, on peut trouver une solution
Et pour le reste, je vais fouiller pour voir ce que je peux faire.
J'ai en tête ce .WOR de l'IFEN qui permet de faire un peu ce que je veux dans le principe, car il s'affranchit d'une analyse thématique. Il suffirait que je l'adapte à mon champ de données en manipulant un peu les chaines de texte. Évidemment, je sens que renseigner la ligne de la couleur qui m'intéresse va être plus coton... Si vous avez des pistes, je suis preneur, j'ai oublié comment on faisait l'équivalence des couleurs avec MI. Je parie même que si je recherche dans mes messages d'avant 2006, je pourrais peut être même retrouver une de mes contributions qui l'explique mais là, je suis out pour ce soir
Code:
Workspace !Version 550 !Charset WindowsLatin1 shade 1 with CODE_06 values "111" Brush (2,13369344,16777215) Pen (1,1,0), "112" Brush (2,16711680,16777215) Pen (1,1,0), "121" Brush (2,13389098,16777215) Pen (1,1,0), "122" Brush (2,11730944,16777215) Pen (1,1,0), "123" Brush (2,16754431,16777215) Pen (1,1,0), "124" Brush (2,16731647,16777215) Pen (1,1,0), "131" Brush (2,10879180,16777215) Pen (1,1,0), "132" Brush (2,11579568,16777215) Pen (1,1,0), "133" Brush (2,14408667,16777215) Pen (1,1,0), "141" Brush (2,16744576,16777215) Pen (1,1,0), "142" Brush (2,16737894,16777215) Pen (1,1,0), "211" Brush (2,16777126,16777215) Pen (1,1,0), "212" Brush (2,16776960,16777215) Pen (1,1,0), "213" Brush (2,15135232,16777215) Pen (1,1,0), "221" Brush (2,15912102,16777215) Pen (1,1,0), "222" Brush (2,15902285,16777215) Pen (1,1,0), "223" Brush (2,15115776,16777215) Pen (1,1,0), "231" Brush (2,13434828,16777215) Pen (1,1,0), "241" Brush (2,16770726,16777215) Pen (1,1,0), "242" Brush (2,16770637,16777215) Pen (1,1,0), "243" Brush (2,15115776,16777215) Pen (1,1,0), "244" Brush (2,15106048,16777215) Pen (1,1,0), "311" Brush (2,8453888,16777215) Pen (1,1,0), "312" Brush (2,42496,16777215) Pen (1,1,0), "313" Brush (2,5111552,16777215) Pen (1,1,0), "321" Brush (2,13431373,16777215) Pen (1,1,0), "322" Brush (2,10944384,16777215) Pen (1,1,0), "323" Brush (2,10937933,16777215) Pen (1,1,0), "324" Brush (2,10940928,16777215) Pen (1,1,0), "331" Brush (2,12763842,16777215) Pen (1,1,0), "332" Brush (2,13421772,16777215) Pen (1,1,0), "333" Brush (2,13434828,16777215) Pen (1,1,0), "334" Brush (2,0,16777215) Pen (1,1,0), "335" Brush (2,10938060,16777215) Pen (1,1,0), "411" Brush (2,10921727,16777215) Pen (1,1,0), "412" Brush (2,5066239,16777215) Pen (1,1,0), "421" Brush (2,13421823,16777215) Pen (1,1,0), "422" Brush (2,16770815,16777215) Pen (1,1,0), "423" Brush (2,12560102,16777215) Pen (1,1,0), "511" Brush (2,52466,16777215) Pen (1,1,0), "512" Brush (2,10941158,16777215) Pen (1,1,0), "521" Brush (2,65446,16777215) Pen (1,1,0), "522" Brush (2,10944486,16777215) Pen (1,1,0), "523" Brush (2,15135487,16777215) Pen (1,1,0) default # color 1 # set legend layer 1 display on shades on symbols off lines off count off title "CLC 2006" Font ("Arial",0,9,0) subtitle "(couleurs IFEN)" Font ("Arial",0,8,0) ascending on ranges Font ("Arial",0,8,0) auto display off, "111 Tissu urbain continu" display on, "112 Tissu urbain discontinu" display on, "121 Zones industrielles et commerciales" display on, "122 Réseaux routier et ferroviaire et espaces associés" display on, "123 Zones portuaires" display on, "124 Aéroports" display on, "131 Extraction de matériaux" display on, "132 Décharges" display on, "133 Chantiers" display on, "141 Espaces verts urbains" display on, "142 Equipements sportifs et de loisirs" display on, "211 Terres arables hors périmètres d'irrigation" display on, "212 Périmètres irrigués en permanence" display on, "213 Rizières" display on, "221 Vignobles" display on, "222 Vergers et petits fruits" display on, "223 Oliveraies" display on, "231 Prairies" display on, "241 Cultures annuelles associées aux cultures permanentes" display on, "242 Systèmes culturaux et parcellaires complexes" display on, "243 Territoires surtout agricoles mais avec végétation naturelle importante" display on, "244 Territoires agro-forestiers" display on, "311 Forêts de feuillus" display on, "312 Forêts de conifères" display on, "313 Forêts mélangées" display on, "321 Pelouses et pâturages naturels" display on, "322 Landes et broussailles" display on, "323 Végétation sclérophylle" display on, "324 Forêt et végétation arbustive en mutation" display on, "331 Plages, dunes et sable" display on, "332 Roches nues" display on, "333 Végétation clairsemée" display on, "334 Zones incendiées" display on, "335 Glaciers et neiges éternelles" display on, "411 Marais intérieurs" display on, "412 Tourbières" display on, "421 Marais maritimes" display on, "422 Marais salants" display on, "423 Zones intertidales" display on, "511 Cours et voies d'eau" display on, "512 Plans d'eau" display on, "521 Lagunes littorales" display on, "522 Estuaires" display on, "523 Mers et océans" display on Create Cartographic Legend Frame From Layer 1
A suivre !
Robin.
Hors ligne
#5 Mon 11 July 2011 20:34
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Utiliser une valeur CMJN pour créer une légende
Robin,
Ton WOR fait l'analyse thématique de la table placée "en haut" des couches (le 1 de shade 1), par valeurs individuelles sur le champ CODE_06
La valeur RVB est obtenue (R, V et B étant codés de 0 à 255) par RVB = R*256*256 + V*256 + B
@Daniel: il y a combien de couleurs dans vos alertes ?? Ici c'est seulement 3...
Hors ligne
#6 Tue 12 July 2011 09:13
Re: Utiliser une valeur CMJN pour créer une légende
La valeur RVB est obtenue (R, V et B étant codés de 0 à 255) par RVB = R*256*256 + V*256 + B
Excellent, c'est ça que je cherchais.
J'ai eu une idée pendant la nuit. Comme la couche est colorée en "dur", je devrais pouvoir récupérer dans la table les codes couleurs mapinfo des entités, non ? En les mettant dans la table des entités, je devrais pouvoir relier le code de mes entités à une couleur, et donc créer une légende via le .WOR Sinon, je passerais par le code CMJN converti en RGB "mapinfo", puis inclut dans mon script
Je vais essayer d'approfondir ça.
Robin, en alerte verte "week end prolongé pour fête nationale"
Hors ligne
#7 Tue 12 July 2011 09:31
Re: Utiliser une valeur CMJN pour créer une légende
J'ai trouvé des infos sur les conversions de couleurs :
Soit C : Cyan, M : Magenta, J : Jaune, N : Noir et R : Rouge, V : Vert, B : Bleu
De CMJN à CMJ :
//CMJN et CMJ valeurs de 0 à 1
C = ( C * ( 1 - N ) + N )
M = ( M * ( 1 - N ) + N )
J = ( J * ( 1 - N ) + N )
Puis de CMJ à RVB :
//CMJ valeurs de 0 à 1
//RVB résultats de 0 à 255
R = ( 1 - C ) * 255
V = ( 1 - M ) * 255
B = ( 1 - J ) * 255
Il suffit donc de terminer par :
Valeur RVB finale : R*256*256 + V*256 + B
Source : http://www.easyrgb.com/index.php?X=MATH
Dernière modification par Robin (Tue 12 July 2011 09:32)
Hors ligne
#8 Tue 12 July 2011 13:17
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Utiliser une valeur CMJN pour créer une légende
@Daniel: il y a combien de couleurs dans vos alertes ?? Ici c'est seulement 3...
Si tu parles des alertes météos, il y en a trois aussi. Voir ici : http://www.weatheroffice.gc.ca/warnings/warnings_f.html
Daniel
De retour à la géomatique
Hors ligne
#9 Tue 12 July 2011 13:41
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Utiliser une valeur CMJN pour créer une légende
le service météo vient de nous mettre en veille d'orage violet!!
J'ai pas retrouvé le violet dans ton lien...dommage !! Ca changerait de la charte "banale"...
Hors ligne
#10 Tue 12 July 2011 14:22
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Utiliser une valeur CMJN pour créer une légende
Bonjour,
Juste pour vous signaler une astuce que je mets à toutes les sauces : combiner les wor de MapInfo dans un publipostage de word (ou un assistant mailing de Writer).
Je l'ai justement utilisée pour reconstituer une nomenclature d'occupation du sol faite avec Arcgis et des codes CMJN dans une analyse thématique MapInfo.
1- Dans un tableur, j'ai mes 4 valeurs CMJN associées à chacun des postes de ma nomenclature plus une colonne avec le code couleur Mapinfo correspondant calculé comme indiqué par Robin et Maurice.
2- Dans word, j'utilise le publipostage pour faire varier la commande suivante :
Code:
"111" Brush (2,13369344,16777215) Pen (1,1,0),
et en particulier le "13369344"
3- Puis j'insère le résultat fusionné du publipostage dans mon wor à sa bonne place.
En même temps, et si on a les définitions de la nomenclature dans le tableur, on peut créer la légende.
J'utilise ce principe également pour faire des cartes en série (cf http://georezo.net/forum/viewtopic.php? … 84#p188584)
Nicolas.
Dernière modification par Nicolas Boudesseul (Tue 12 July 2011 14:26)
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#11 Tue 12 July 2011 14:30
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Utiliser une valeur CMJN pour créer une légende
Et le principe pour passer du code couleur mapinfo à RVB (avec une formule fonctionnant sur Writer) :
R= (CodeCouleurMI-(MOD(CodeCouleurMI;65536)))/65536
V= ((CodeCouleurMI-(R*65536))-MOD((CodeCouleurMI-R*65536);256))/256
B= CodeCouleurMI-(R*65536)-(V*256)
Comme j'ai un peu galérer pour l'obtenir, autant que ça profite à tout le monde !!
Dernière modification par Nicolas Boudesseul (Tue 12 July 2011 14:31)
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#12 Tue 12 July 2011 15:09
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Utiliser une valeur CMJN pour créer une légende
Salut
Maurice : Je viens de comprendre ton intervention!!! Mes vacances arrivent dans 3 jours... Moi aussi mes neurones sont légèrement hors service!
Nicolas : Un grand merci pour les informations. Toujours très apprécié.
Daniel
De retour à la géomatique
Hors ligne
#13 Tue 12 July 2011 17:23
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Utiliser une valeur CMJN pour créer une légende
Merci Nicolas, chapeau pour la synthèse
Reste plus qu'à trouver un outil qui fait et colorie une analyse thématique sur la base d'une colonne RVB ou de trois (R, V, B) dans la table...
Hors ligne
#14 Wed 13 July 2011 09:03
Re: Utiliser une valeur CMJN pour créer une légende
Juste pour vous signaler une astuce que je mets à toutes les sauces : combiner les wor de MapInfo dans un publipostage de word (ou un assistant mailing de Writer).
Ca c'est intéressant ! Je note l'astuce, ça pourrait bien m'aider prochainement.
Merci Nicolas.
Hors ligne
#15 Wed 13 July 2011 09:21
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Utiliser une valeur CMJN pour créer une légende
Pour colorier(symboliser) "en dur", il y a l'outil addcolor.mbx ici : http://georezo.net/forum/viewtopic.php?id=43166 qui vient de directionmag.
Il travaille à partir des valeurs attributaires de 3 colonnes RVB, ou 4 colonnes CMJN, ou 1 colonne RVB QUAD (ne serait-ce pas notre code couleur MApinfo ?).
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#16 Wed 13 July 2011 20:06
- goujonmp
- Participant occasionnel
- Date d'inscription: 8 Dec 2005
- Messages: 34
Re: Utiliser une valeur CMJN pour créer une légende
Bonjour,
Si vous êtes arrivé à solutionner le problème,
Serait-il possible de nous faire bénéficier du fruit de votre travail.
En effet nous sommes justement en train de nous "rencogner" cette légende
Pour réaliser la cartographie du Mâconnais.
Une géologue en stage de cartographie au service SIG de la ville
S'en trouverait terriblement soulagée (moi aussi).
Nous épargner du boulot de saisie, nous permettrait de courir un peu plus la campagne, à la recherche de fossiles, en cette période, c'est plutôt plus
Agréable que de rester enfermé.
Merci à vous.
Cordialement
MP GOUJON
Hors ligne
#17 Wed 13 July 2011 20:12
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Utiliser une valeur CMJN pour créer une légende
Salut
Je fais mon mea culpa!!! Je pensais avoir compris Nicolas mais en fait, je suis un peu comme MP Goujon, je n'y comprends rien!!! Plus je lis, plus je m'enfonce!!! Mais toujours merci à Nicolas!!!
Il est vraiment temps que les vacances arrivent...
Daniel
De retour à la géomatique
Hors ligne
#18 Fri 15 July 2011 12:13
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Utiliser une valeur CMJN pour créer une légende
MP Goujon a écrit :
Serait-il possible de nous faire bénéficier du fruit de votre travail.
C'est ce qu'il me semblait avoir fait dans mon post #10.
Si je ne suis pas clair (ce qui est fort possible !! ), ou si vous voulez plus de précision sur quelque chose, merci d'indiquer exactement ce que vous ne comprenez pas, ou à quelle étape vous butez (ce sera plus constructif, que un "pouvez-vous tout ré-expliquer?").
Je rappelle néanmoins que ce n'est pas magique, et que pour faire une légende ainsi, il faut au minimum avoir déjà (obtenu ou saisi) un tableau avec le code de la nomenclature, sa dénomination et le code couleur associé. Si vous n'avez pas ça, vous irez plus vite à le faire à la main ...
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#19 Sat 16 July 2011 14:54
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Re: Utiliser une valeur CMJN pour créer une légende
Bonjour,
Instructif tout ça. J'ai essayé les formules avec la couleur CMJN rouge, hélas je n'ai pas le bon résultat MapInfo. Pouvez-vous me corriger ? Voici mes valeurs :
C 0
M 100
J 100
N 0
****
C 0
M 100
J 100
****
R 255
V -25245
B -25245
****
MI 10223715
La couleur rouge de MI est 16711680
cordialement
Jean-Marc Hanczyk
Hors ligne
#20 Mon 18 July 2011 07:56
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: Utiliser une valeur CMJN pour créer une légende
Salut Jean-Marc,
tu as oublié ceci :
//CMJN et CMJ valeurs de 0 à 1
Les valeurs CMJN et CMJ telles qu'on les utilise sont des pourcentages. Ici dans les calculs, il faut prendre leur valeur absolue :
M=100% donc M=1 dans les calculs...
donc tu vas obtenir pour C(0)M(100%)J(100%)N(0) :
C(0)M(1)J(1), R(255)V(0)B(0) et CodeCouleurMI=16711680
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#21 Mon 18 July 2011 09:10
Re: Utiliser une valeur CMJN pour créer une légende
Si vous êtes arrivé à solutionner le problème, Serait-il possible de nous faire bénéficier du fruit de votre travail.
Je ne sais pas si ça s'adressait à moi ou à Nicolas mais pour l'instant, j'ai juste collecté les éléments minimum, je ne suis pas passé encore à la réalisation, mais ça va venir dans la semaine Mon souci à présent, c'est que la légende est harmonisée par région pour la base CHARM et je dois trouver une astuce pour ce nouveau problème, car mon étude couvre 18 départements...
Hors ligne
#22 Mon 01 August 2011 13:04
Re: Utiliser une valeur CMJN pour créer une légende
Voilà la solution trouvée pour Mapinfo, qui est toute autre que prévu à l’origine :
Lors de la création de la légende : Menu Carte/Créer légende, il suffit sur le troisième écran de cliquer sur "Selon les styles d'objets" :
Selon les types d'objets
Cette option signifie qu'il n'existe pas deux styles avec les mêmes attributs dans la légende.
Par exemple, supposons que vous ayez une table MapInfo comportant 6 objets polygone. 3 des polygones sont verts avec des bordures noires, 2 d'entre eux sont bleus avec des bordures grises et 1 est vert avec une bordure grise. Si vous générez une légende pour cette table en fonction des styles d'une carte unique, vous obtenez une liste de 3 styles : un style vert avec une bordure noire, un style bleu avec une bordure grise et un style vert avec une bordure grise.
On peut alors utiliser les valeurs de la description qui sont dans la table ce qui créera une légende automatique selon ces styles définis en dur.
Résolu pour ma part sur la BD CHARM.
Hors ligne