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

Printemps des cartes 2024

#1 Fri 14 November 2008 10:37

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

[MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour à tous,

Pour la modernisation de l'inventaire des ZNIEFF, nous réalisons une chaîne de traitements de création d'atlas basée sur PostgreSQL/PostGIS - iReport/JasperReports - MapServer/PHP-MapScript.

Nous souhaitons faire apparaître nos objets en couleur sur un fond de plan (SCAN 25) en niveau de gris, sans avoir à transformer les rasters, qui sont en couleur !

Je pense que cela est possible mais je n'arrive pas à trouver quelle directive donner à MapServer pour y parvenir.

Nous allons continuer la recherche mais si quelqu'un a une piste, nous sommes preneurs.

En vous remerciant de votre aide,

Mathieu BOSSAERT.


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#2 Fri 14 November 2008 13:43

veroh
Participant actif
Lieu: Moutier
Date d'inscription: 27 Sep 2008
Messages: 97
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour,

Quelque part dans le fichier *..map, il y a la définition du format des rasters :

Exemple chez nous :

    OUTPUTFORMAT
        NAME GDpng
        DRIVER "GD/PNG"
        MIMETYPE "image/png"
        IMAGEMODE RGB
        EXTENSION "png"
        FORMATOPTION "INTERLACE=OFF"
        TRANSPARENT ON
    END

C'est dans la fonction IMAGEMODE que vous pourrez définir si c'est de la couleur ou du noir/blanc.

Véronique

Hors ligne

 

#3 Fri 14 November 2008 13:49

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour Véronique,

Le problème est  qu'ainsi toutes les couches sont en noir et blanc ce que ne veut pas Mathieu il me semble, ai je bien compris ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#4 Fri 14 November 2008 14:06

veroh
Participant actif
Lieu: Moutier
Date d'inscription: 27 Sep 2008
Messages: 97
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Ouaip, je vois le 'blème.

Est-ce possible de transformer vos png en jpg automatiquement (par exemple et si vous n'avez aucun autre jpg à montrer) et les forcer à ce moment là en gris ?

Ou alors est-ce qu'il existe une moulinette via gdal pour transformer automatiquement les fichiers rvb en noir/blanc

Véronique

Hors ligne

 

#5 Fri 14 November 2008 14:18

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour Véronique, bonjour Yves,

Yves a écrit:

Le problème est  qu'ainsi toutes les couches sont en noir et blanc ce que ne veut pas Mathieu il me semble, ai je bien compris ?


Mon problème est bien celui là :
je veux produire une image qui contient par exemple les contours des ZNIEFF en violet sur un scan 25 noir et blanc, sachant que mon scan 25 est à l'origine en couleur.
Ce qui me plairait pour cette application c'est de ne pas avoir à générer un nouveau lot de SCAN 25.

(cependant et par curiosité, si je souhaite finalement générer une image en noir et blanc, comme proposé par Véronique, quelle valeur attribuer au paramètre IMAGEMODE ?)

Merci,

Mathieu.

Dernière modification par Mathieu BOSSAERT (Fri 14 November 2008 14:25)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#6 Fri 14 November 2008 14:26

veroh
Participant actif
Lieu: Moutier
Date d'inscription: 27 Sep 2008
Messages: 97
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bon alors si on parle de niveaux de gris, il faut préciser
IMAGEMODE BYTE

"BYTE: Render raw 8bit pixel values (no presentation). Only works for RASTER layers (through GDAL) and WMS layers currently."

Bon j'ai aussi regarder avec gdal

"The following utility programs are distributed with GDAL.

    * gdalinfo - report information about a file.
    * gdal_translate - Copy a raster file, with control of output format.
    * gdaladdo - Add overviews to a file.
    * gdalwarp - Warp an image into a new coordinate system.
    * gdaltindex - Build a MapServer raster tileindex.
    * gdal_contour - Contours from DEM.
    * rgb2pct.py - Convert a 24bit RGB image to 8bit paletted.
    * pct2rgb.py - Convert an 8bit paletted image to 24bit RGB.
    * gdal_merge.py - Build a quick mosaic from a set of images.
    * gdal2tiles.py - Create a TMS tile structure, KML and simple web viewer.
    * gdal_rasterize - Rasterize vectors into raster file.
    * gdaltransform - Transform coordinates.
    * nearblack - Convert nearly black/white borders to exact value.
    * gdal_retile.py - Retiles a set of tiles and/or build tiled pyramid levels.
    * gdal_grid - Create raster from the scattered data.
    * gdal_proximity - Compute a raster proximity map.
    * gdal_polygonize - Generate polygons from raster.
    * gdal_sieve - Raster Sieve filter.
    * gdal-config - Get options required to build software using GDAL.
"

Il me semble que le rgb2pct.py répondrait à vos besoins (c'est du libre), allez voir une fois (et oui, suis belge) sous http://gdal.org/gdal_utilities.html

V.

Hors ligne

 

#7 Fri 14 November 2008 14:32

Pierre Dolez
Participant assidu
Lieu: Proville
Date d'inscription: 14 Aug 2008
Messages: 518
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour,
Suggestion peut-être idiote : est-il possible de forcer la palette de couleurs?
En créant une palette comportant les 256 niveaux de gris et les couleurs des objets, probablement assez limitées, une fois pour toutes, puis en forçant les images à utiliser cette palette, chaque couleur, gris ou coloré devrait être restituée correctement.
Pierre

Hors ligne

 

#8 Fri 14 November 2008 15:08

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Véronique,

la solution "IMAGEMODE BYTE" ne modifie pas l'image produite, qui reste en couleur.

Par ailleurs, je ne comprends pas très bien ce que me dit la description de rgb2pct.py. Je vais pouvoir créer une copie de mes rasters en en modifiant la couleur.
ce qui rejoint la proposition de Pierre, mais c'est là que je me perd, quelle transformation appliquer et comment l'appliquer pour produire des niveaux de gris

Plus j'y pense et plus je me dis que je ne pourrais pas réaliser ce que je veux sans recréer un lot de ratser noir et blanc.

Merci de vos réponses.

Dernière modification par Mathieu BOSSAERT (Fri 14 November 2008 15:08)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#9 Fri 14 November 2008 15:26

veroh
Participant actif
Lieu: Moutier
Date d'inscription: 27 Sep 2008
Messages: 97
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Avec cet utilitaire gdal (mis si tu as installé gdal), tu vas créer de nouveaux fichiers en un tour de moulinette (on dirait notre informaticien) en leur donnant un nouveau nom qui seront sous format 8 bytes (en gros, à la fin, deux jeux de fichiers) ce qui te permettra de les (les fichiers gris) insérer dans le ficheir mapserver sans avoir besoin de leur forcer le grisé.

Bon OK, je suis d'accord, c'est de la théorie car je n'ai jamais tester cet utilitaire gdal (j'en ai testé d'autres quand même !)

Véronique

PS . Mais je suis d'accord, ce n'est pas une solution "élégante" et elle prend du temps (un peu).

Hors ligne

 

#10 Fri 14 November 2008 15:56

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Veroh,

merci beaucoup de cette première réponse.

Je vais continuer à creuser la piste consistant à forcer l'affichage en niveaux de gris.

Une solution intermédiaire pourrait être la suivante :
je défini un service WMS qui fournit le SCAN 25 en noir et blanc,
j'appelle ce service dans le mapfile qui génère la carte finale...

Affaire à suivre.


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#11 Fri 14 November 2008 20:47

David.D
Chef de projet SIG & Géoportail93
Lieu: Paris
Date d'inscription: 2 Nov 2005
Messages: 65
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour,
pour faire une version N&B, il est possible de filtre l'image couleur

pour n'en faire apparaitre qu'un canal (rouge, vert ou bleu) en niveaux

de gris, via le paramètre PROCESSING. Ci-dessous, ne s'affiche que le

canal 1 en N&B :
 

    LAYER
        NAME            "ma_couche_canal_1"
        STATUS          OFF
        TYPE            RASTER
        DATA            "ma_couche.ecw"
        TRANSPARENCY    33
        PROCESSING      "BANDS=1"
        ...
    END

Pour avoir les 3 canaux en niveau de gris, il est possible de répéter ce

LAYER pour chacun des canaux (BANDS=1, BANDS=2, BANDS=3) en mettant une

opacité de 33,3% pour chacun.

David Delhorbe / ddelhorbe@texte-a-enlever.cg93.fr
Web-SIG & SIG OpenSource
Département de la Seine-Saint-Denis
intranet cartographique : http://srvdad/sigd

Hors ligne

 

#12 Sun 16 November 2008 13:00

veroh
Participant actif
Lieu: Moutier
Date d'inscription: 27 Sep 2008
Messages: 97
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour,

Alors c'est super bien ce truc. Je viens de tester avec des png et ça marche du feude dieu.

Merci

Véronique

Hors ligne

 

#13 Tue 18 November 2008 14:44

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Bonjour à tous,

Ouf! Nous y sommes presque. Nous n'arrivons pas à appliquer directement les conseils de David sur la tuile de SCAN 25 dans notre mapfile.

Cela vient-il du fait que nous appelons une dalle plutôt qu'un fichier image comme dans l'exemple ?

Mais nous arrivons selon ces conseils à produire un wms qui fournit les SCAN en noir et blanc.

Code:

    LAYER
        NAME "scan_25_1"
        TYPE RASTER
        TILEINDEX "index.shp"
        TILEITEM "LOCATION"
        STATUS          OFF
        TRANSPARENCY    33
        PROCESSING      "BANDS=1"
    END
    LAYER
        NAME "scan_25_2"
        TYPE RASTER
        TILEINDEX "index.shp"
        TILEITEM "LOCATION"
        STATUS          OFF
        TRANSPARENCY    33
        PROCESSING      "BANDS=2"
    END
    
    LAYER
        NAME "scan_25_3"
        TYPE RASTER
        TILEINDEX "index.shp"
        TILEITEM "LOCATION"
        STATUS          OFF
        TRANSPARENCY    33
        PROCESSING      "BANDS=3"
    END

Nous appelons ce dernier dans notre mapfile final :

Code:

    LAYER
        NAME "ign_ratser_wms"
        TYPE RASTER
        STATUS ON
        CONNECTION    "http://192.168.1.15/ign_ratser_wms?"
        CONNECTIONTYPE    WMS
        METADATA
            "wms_srs" "EPSG:27572"
            "wms_name" "scan_25_1,scan_25_2,scan_25_3"
            "wms_server_version" "1.1.1"
            "wms_format" "image/png"
            "wms_onlineresource" "http://192.168.1.15/ign_ratser_wms" 
        END
    END

Je ne me l'explique pas encore mais dés que j'aurai éclairci le problème je vous tiendrai au courant.

Merci à tous pour votre aide.

Bien cordialement,

Mathieu BOSSAERT.


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#14 Mon 02 March 2009 15:12

ranalisolofo.larrys
Participant occasionnel
Lieu: Ambolonkandrina
Date d'inscription: 19 Jul 2007
Messages: 40
Site web

Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris

Je relance ce post parce qu'on rencontre le problème inverse. Une extraction par gdal_translate nous donne en rendu des rasters en Noir et Blanc, c'est un peu un problème du niveau de gris.
Est ce que quelqu'un a une piste...

Hors ligne

 

Pied de page des forums

Powered by FluxBB