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

Printemps des cartes 2024

#1 Fri 24 August 2007 16:03

anaxa_gore
Juste Inscrit !
Date d'inscription: 9 Jul 2007
Messages: 7

Couleurs avec Styled Layer Descriptor

Bonjour à tous.

J'espère poster dans la bonne section !
Voilà, je termine mon stage dans 2 semaines et j'ai un problème sur la mise en place des couleurs pour la représentation d'un raster.
J'utilise les données au format .hgt (SRTM de la NASA). Je code en java, avec la librairie GeoTools.
Pour faire ressortir les données affichées sur le raster, j'aimerais avoir uniquement la mer en bleu, et le relief en niveau de gris. J'ai donc mis en place le style suivant :

Code:

<StyledLayerDescriptor version="1.0.0" xmlns:ogc="http://www.opengis.net">
    <NamedLayer>
        <Name>A colored raster</Name>
        <UserStyle>
            <Name>Raster 1</Name>
            <IsDefault>1</IsDefault>
            <FeatureTypeStyle>
                <Rule>
                    <Name>main</Name>
                    <RasterSymbolizer>
                        <Opacity>1.0</Opacity>
                        <ColorMap>
                            <ColorMapEntry color="#1e90ff" quantity="-50"/>
                            <ColorMapEntry color="#000000" quantity="0"/>
                            <ColorMapEntry color="#080808" quantity="10"/>
                            <ColorMapEntry color="#080808" quantity="20"/>
                            <ColorMapEntry color="#080808" quantity="30"/>
                            <ColorMapEntry color="#141414" quantity="40"/>
                            <ColorMapEntry color="#141414" quantity="50"/>
                            <ColorMapEntry color="#141414" quantity="60"/>
                            <ColorMapEntry color="#262626" quantity="70"/>
                            <ColorMapEntry color="#262626" quantity="80"/>
                            <ColorMapEntry color="#262626" quantity="90"/>
                            <ColorMapEntry color="#2E2E2E" quantity="100"/>
                            <ColorMapEntry color="#2E2E2E" quantity="200"/>
                            <ColorMapEntry color="#3D3D3D" quantity="300"/>
                            <ColorMapEntry color="#3D3D3D" quantity="400"/>
                            <ColorMapEntry color="#3D3D3D" quantity="500"/>
                            <ColorMapEntry color="#454545" quantity="600"/>
                            <ColorMapEntry color="#454545" quantity="700"/>
                            <ColorMapEntry color="#454545" quantity="800"/>
                            <ColorMapEntry color="#545454" quantity="900"/>
                            <ColorMapEntry color="#545454" quantity="1000"/>
                            <ColorMapEntry color="#545454" quantity="1100"/>
                            <ColorMapEntry color="#636363" quantity="1200"/>
                            <ColorMapEntry color="#636363" quantity="1300"/>
                            <ColorMapEntry color="#636363" quantity="1400"/>
                            <ColorMapEntry color="#707070" quantity="1500"/>
                            <ColorMapEntry color="#707070" quantity="1600"/>
                            <ColorMapEntry color="#707070" quantity="1700"/>
                            <ColorMapEntry color="#7a7a7a" quantity="1800"/>
                            <ColorMapEntry color="#7a7a7a" quantity="1900"/>
                            <ColorMapEntry color="#7a7a7a" quantity="2000"/>
                            <ColorMapEntry color="#878787" quantity="2100"/>
                            <ColorMapEntry color="#878787" quantity="2200"/>
                            <ColorMapEntry color="#878787" quantity="2300"/>
                            <ColorMapEntry color="#9c9c9c" quantity="2400"/>
                            <ColorMapEntry color="#9c9c9c" quantity="2500"/>
                            <ColorMapEntry color="#9c9c9c" quantity="2600"/>
                            <ColorMapEntry color="#b8b8b8" quantity="2700"/>
                            <ColorMapEntry color="#b8b8b8" quantity="2800"/>
                            <ColorMapEntry color="#b8b8b8" quantity="2900"/>
                            <ColorMapEntry color="#c4c4c4" quantity="3000"/>
                            <ColorMapEntry color="#c4c4c4" quantity="3500"/>
                            <ColorMapEntry color="#c4c4c4" quantity="4000"/>
                            <ColorMapEntry color="#d1d1d1" quantity="4500"/>
                            <ColorMapEntry color="#d1d1d1" quantity="5000"/>
                            <ColorMapEntry color="#d1d1d1" quantity="5500"/>
                            <ColorMapEntry color="#d9d9d9" quantity="6000"/>
                            <ColorMapEntry color="#d9d9d9" quantity="6500"/>
                            <ColorMapEntry color="#d9d9d9" quantity="7000"/>
                            <ColorMapEntry color="#e0e0e0" quantity="7500"/>
                            <ColorMapEntry color="#e0e0e0" quantity="8000"/>
                            <ColorMapEntry color="#e0e0e0" quantity="8500"/>
                            <ColorMapEntry color="#ffffff" quantity="9000"/>
                            <ColorMapEntry color="#ffffff" quantity="9500"/>
                            <ColorMapEntry color="#ffffff" quantity="10000"/>
                        </ColorMap>
                        <OverlapBehavior>
                            <AVERAGE/>
                        </OverlapBehavior>
                        <ShadedRelief/>
                    </RasterSymbolizer>
                </Rule>
            </FeatureTypeStyle>
        </UserStyle>
    </NamedLayer>
</StyledLayerDescriptor>

Le problème est que suivant le nombre de SRTM que je charge, le style est plus ou moins bien appliqué. Comme un petit exemple vaut mieux qu'un long discours, je joins deux cartes générées avec le même style. La seule différence est que dans un cas, j'utilise deux SRTM, et dans le second, j'en utilise quatre. Comme vous pouvez le voir, la seconde est complètement noire : on ne voit absolument pas la côte, la mer est noire, et même une bonne partie du relief est noire !

Comment puis-je faire pour avoir une carte qui ressemble toujours à celle en couleurs et pas parfois une en couleurs, parfois une en noir et blanc ?
Merci d'avance pour vos réponse !!!
Thomas

Dernière modification par anaxa_gore (Fri 24 August 2007 16:04)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Tue 28 August 2007 11:50

anaxa_gore
Juste Inscrit !
Date d'inscription: 9 Jul 2007
Messages: 7

Re: Couleurs avec Styled Layer Descriptor

Vraiment personne n'a d'idée ??? Je ne comprends vraiment pas pourquoi j'ai ce comportement !
Thomas

Hors ligne

 

#3 Tue 28 August 2007 14:54

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

Re: Couleurs avec Styled Layer Descriptor

Bonjour,

Utilises-tu Geoserver ? La configuration est elle correcte ? Ton problème me semble un problème de mosaicage de raster dont les valeurs n'ont pas été "étendues". Généralement (sous grass je veux dire) une fonction permet de redefinir correctement la table de couleurs. Après une recherche sur internet, je suis tombé sur un rapport de "bug" dont la résolution a été de définir un paramètre dans la config (rapport debug):

I checked deeply the issue, well it turned out that here is no issue!

You must have created the properties file by hand hence some parameters that control the reader were missing. As you noticed the color maps are different hence we need to do a color expansion before merging the images.

The MosaicIndexBuilder would have spotted this situation and would have put the following line in the properties file:

ExpandToRGB=true

If you add it manually things should start working just fine.
[ Show » ]
Simone Giannecchini - [18/Jul/07 06:35 PM ] I checked deeply the issue, well it turned out that here is no issue! You must have created the properties file by hand hence some parameters that control the reader were missing. As you noticed the color maps are different hence we need to do a color expansion before merging the images. The MosaicIndexBuilder would have spotted this situation and would have put the following line in the properties file: ExpandToRGB=true If you add it manually things should start working just fine.


autrement dit as tu utilisé le paramètre :

Code:

ExpandToRGB=true

Ma réponse peut être une grosse bêtise, mais ton problème m'a fait penser à cela.

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 Tue 28 August 2007 14:55

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Couleurs avec Styled Layer Descriptor

ça ne viendrait pas d'une palette adaptative ? l'allocation des couleurs
se ferait sur la première dalle, et donnerait du n'importe quoi avec les
suivantes ?

Hors ligne

 

#5 Fri 07 September 2007 12:30

anaxa_gore
Juste Inscrit !
Date d'inscription: 9 Jul 2007
Messages: 7

Re: Couleurs avec Styled Layer Descriptor

Bonjour et merci pour vos réponses !
Je suis désolé de ne pas avoir répondu plus tôt mais j'ai été surbooké ces derniers temps !
En fait, je n'utilise pas GeoServer. J'ai récupéré le base de donnée SRTM complète et je l'utilise telle quelle. Je traite les fichiers .hgt en récupérant les données que je place dans un WritableRaster Java. Ensuite, je définis le style que je vous ai fourni et je l'affiche grâce à la librairie GeoTools. Voila le code de l'affichage :

Code:

        GridCoverageFactory gcf = new GridCoverageFactory();
        GridCoverage2D gc2d = gcf.create("map",map,tmappane.getReferencedEnvelope());
        
        SLDParser coverageParser = new SLDParser(new StyleFactoryImpl());
        URL losSLD = frm.getClass().getResource("/resources/RasterColorStyle.xml");
        coverageParser.setInput(losSLD);
        Style style = coverageParser.readXML()[0];
       
        MapLayer map = new DefaultMapLayer(gc2d,style);
        map.setTitle("Map");
        map.setVisible(true);
        map.setQuery(Query.ALL);

        tmappane.getMapContext().addLayer(map);

Je ne vois donc pas où je peux ajouter cette option ExpandToRGB ? Sinon, je pense également qu'il s'agit d'une sorte d'étalonnage, mais je suis vraiment largué là ! Ca fait plus d'un mois que je suis sur ce truc (par intermittence bien sûr !)
Quelqu'un aurait-il une idée supplémentaire aux vues de ce petit but de code ?
Merci d'avance !!!
Thomas

Hors ligne

 

Pied de page des forums

Powered by FluxBB