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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 11 July 2011 17:41

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 sad
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 smile

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!! smile


De retour à la géomatique

Hors ligne

 

#4 Mon 11 July 2011 19:29

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Utiliser une valeur CMJN pour créer une légende

Pour la conversion, je ne suis pas frileux, on peut trouver une solution smile

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 big_smile

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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 smile Sinon, je passerais par le code CMJN converti en RGB "mapinfo", puis inclut dans mon script smile

Je vais essayer d'approfondir ça.

Robin, en alerte verte "week end prolongé pour fête nationale" wink

Hors ligne

 

#7 Tue 12 July 2011 09:31

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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

Maurice a écrit:

@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

Daniel a écrit:

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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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!!! smile

Il est vraiment temps que les vacances arrivent... cool

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 !! wink ), 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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 smile 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

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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

 

Pied de page des forums

Powered by FluxBB