Pages: 1
- Sujet précédent - [MapServer] Générer une carte couleur sur fond en niveaux de gris - Sujet suivant
#1 Fri 14 November 2008 10:37
[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
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
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
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
Re: [MapServer] Générer une carte couleur sur fond en niveaux de gris
Bonjour Véronique, bonjour Yves,
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
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: 519
- 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
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
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
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
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@ cg93.fr
Web-SIG & SIG OpenSource
Département de la Seine-Saint-Denis
intranet cartographique : http://srvdad/sigd
Hors ligne
#13 Tue 18 November 2008 14:44
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
Pages: 1
- Sujet précédent - [MapServer] Générer une carte couleur sur fond en niveaux de gris - Sujet suivant