[Qgis-user] Symbolizing a discrete or a boolean raster (Stéphane Henriod)

Chris House housec01 at gmail.com
Mon Jan 9 12:49:40 PST 2017


Hi Stéphane,

I don't know if this is what you are looking for or not but I have a method
of classifying rasters by color based on a set (standard) colors.  I
created a spreadsheet that has several required columns, value, red, green,
blue...and you can have an optional field for a display value.  So say
value 1 is water you can use that last column to name that value so that in
the QGIS layer tree and in legend it says Water instead of value 1.

save the spreadsheet as a csv and change the extension to .txt instead of
.csv.

I then go into the symbology section of the raster choose singleband
pseudocolor. Use the folder to browse to your text file and click add.
There is a format for this text file.  It is below.  If you need me to
email it I will do that in direct email.

# QGIS Generated Color Map Export File
INTERPOLATION:EXACT
-9999,0,0,0,255,NoData
0,176,176,176,255,Non-Forested
15,234,255,191,255,10 <=  CC < 20
25,187,230,149,255,20 <=  CC < 30
35,140,201,109,255,30 <=  CC < 40
45,98,176,74,255,40 <=  CC < 50
55,59,153,43,255,50 <= CC < 60
65,0,128,0,255,60 <=  CC < 70
75,15,92,11,255,70 <=  CC < 80
85,17,61,12,255,80 <=  CC < 90
95,16,36,12,255,90 <=  CC <= 100

In my example if I don't assign a value it gets ignored by QGIS.  If you
are wondering how to assign unique colors to say 200 unique values...just
script it.  I have done this and as long as you have the number of unique
values you want and to make them unique in the script it works.

I hope this helps.  I know it isn't a "button" but to be honest I like this
better.  If you already knew this...well then maybe it will help someone
out in the future.

--Chris

On Mon, Jan 9, 2017 at 3:00 PM, <qgis-user-request at lists.osgeo.org> wrote:

> Send Qgis-user mailing list submissions to
>         qgis-user at lists.osgeo.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.osgeo.org/mailman/listinfo/qgis-user
> or, via email, send a message with subject or body 'help' to
>         qgis-user-request at lists.osgeo.org
>
> You can reach the person managing the list at
>         qgis-user-owner at lists.osgeo.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Qgis-user digest..."
>
>
> Today's Topics:
>
>    1. Re: Symbolizing a discrete or a boolean raster (Stéphane Henriod)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 9 Jan 2017 23:07:36 +0600
> From: Stéphane Henriod <s at henriod.info>
> To: Enrico Fiore <enricofiore at libero.it>
> Cc: qgis-user <qgis-user at lists.osgeo.org>
> Subject: Re: [Qgis-user] Symbolizing a discrete or a boolean raster
> Message-ID:
>         <CAK6pVBXURm_e7dRP+8SP9amPUUX0+Cn3GVxLPNjOHhno85o2rA at mail.
> gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi
>
> thanks for following up!
>
> It actually does part of the job!
>
> Using *Color interpretation: Exact*, I can indeed input the exact values I
> want to display (1,5 and 10) and all other pixels are hidden.
>
> HOWEVER,
>
> this still feels like a workaround:
>
>    - In the case of a discrete raster with many (> 50) unique values, I do
>    not want to input all of them manually
>    - In some cases, I do not know in advance all the unique values of my
>    raster
>    - If I click on *Classify*, QGIS will choose X values (based on the
>    number of classes and the classification method (continuous or equal
>    interval)), which no longer match the "exact" values of my raster. It
>    doesn't really make sense to classify a discrete rendering
>
> So I would say, we still need a render type "discrete raster" which offers
> the function to "retrieve all unique values" (and automatically apply a
> discrete color ramp)
>
> Attached a (fake) test dataset.
>
> Thanks and cheers
>
> Stéphane
>
>
> Le lundi 9 janvier 2017, Enrico Fiore <enricofiore at libero.it> a écrit :
>
> > Hi,
> > Sorry I can't do test, but if you use exact in color interpolation
> > parameter?
> >
> > Cheers
> >
> > Enrico
>
>
> Le lundi 9 janvier 2017, Stéphane Henriod <s at henriod.info> a écrit :
>
> > Hi
> >
> > unfortunately this is doing quite something different!
> >
> > If I have a raster with 10 Landcover classes (1,2,3,4,5,6,7,8,9,10) and I
> > want to display only 1,5 and 10, using *Discrete *(1: red, 5: yellow, 10:
> > blue) the following will happen:
> >
> > All pixels between 1 and 4 will be red
> > All pixels between 5 and 9 will be yellow
> > All pixels with 10 will be blue
> >
> > In this sense, the pixels are indeed not interpolated, but this still is
> > not the behavior I am expecting when styling discrete rasters.
> >
> > A "style discrete raster" function should offer the following:
> >
> >    - Automatically recover all unique values from the raster
> >    - Only display the pixels to which the user has explicitly assigned a
> >    color
> >
> > But thanks for your hint, this can be helpful in other cases!
> >
> > Cheers
> >
> > Stéphane
> >
> >
> > Le lundi 9 janvier 2017, Enrico Fiore <enricofiore at libero.it
> > <javascript:_e(%7B%7D,'cvml','enricofiore at libero.it');>> a écrit :
> >
> >> Hi,
> >> I think that the solution is in the QGIS documentation, that you can
> read
> >> here: http://docs.qgis.org/2.14/en/docs/user_manual/working_with_r
> >> aster/raster_properties.html#band-rendering
> >> you have to use *Singleband pseudocolor *and set color interpolation to
> >> Discrete.
> >>
> >> Enrico
> >>
> >>
> >> ----Messaggio originale----
> >> Da: "Stéphane Henriod" <s at henriod.info>
> >> Data: 09/01/2017 6.30
> >> A: "qgis-user"<qgis-user at lists.osgeo.org>
> >> Ogg: [Qgis-user] Symbolizing a discrete or a boolean raster
> >>
> >> Dear all
> >>
> >> As much as I love QGIS and use it in my everyday life, there is one
> >> feature that I find particularly annoying: the styling of discrete
> rasters.
> >>
> >> Basically, if I have a raster layer consisting of discrete landcover
> >> values (1: water, 2: forest, 3: built-up), it seems that there is no
> easy
> >> way to style it. QGIS will assume that the data is continuous and
> basically
> >> interpolate the color between each value, which leads to the following
> >> issues:
> >>
> >> Let's say I want to display only water and built-up (values 1 and 3),
> >> water in blue and built-up in grey. QGIS will still display the forests,
> >> using a color somewhere "between" blue and grey. My only left option is
> to
> >> process the raster to actually replace all the 2 with NoData, which is
> >> highly unpractical...
> >>
> >> Same if I have a boolean raster (only 0 and 1 values). QGIS will by
> >> default make a color ramp from 0 to 0.9999.
> >>
> >> Also, the whole rather feels like a work-around for a missing feature.
> >>
> >> I dream of a feature similar to this one from ArcGIS:
> >> http://resources.arcgis.com/en/help/main/10.1/index.
> >> html#/representing_unique_categories_such_as_land_use/
> 009t00000074000000/
> >> where all unique values are styled independently and where I can easily
> >> skip the values I don't want to see on my map.
> >>
> >> I asked a question here:
> >> http://gis.stackexchange.com/questions/194116/qgis-style-a-d
> >> iscrete-raster
> >>
> >> and opened a ticket here:
> >> http://hub.qgis.org/issues/14845
> >>
> >> But none has gotten lots of attention yet... Am I the only one to be
> >> annoyed by this? If no, please raise your hand and let's try to get some
> >> momentum and see how to push this feature forward!
> >>
> >> Thanks a lot in advance!
> >>
> >> Cheers
> >>
> >> Stéphane
> >>
> >>
> >
>
> --
> Stéphane Henriod
> CIM-Expert for GIS and Green Economy Statistics
>
> Национальный статистический комитет Кыргызской Республики
> Кыргыз Республикасынын Улуттук статистика комитети
> National Statistical Committee of the Kyrgyz Republic
>
> 374 Фрунзе ул. / Frunze str.
> 720033 Бишкек / Bishkek
>
> T   +996 778 46 99 02 (KG)
> T   +49 176 280 11 050 (DE)
> E    s at henriod.info
> W   http://www.stat.kg
> W3W: nightfall.into.bucket
> <https://map.what3words.com/nightfall.into.bucket>  //  запас.союз.дружный
> <https://map.what3words.com/запас.союз.дружный>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.osgeo.org/pipermail/qgis-user/
> attachments/20170109/985fd14c/attachment-0001.html>
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: landcover.zip
> Type: application/zip
> Size: 2151 bytes
> Desc: not available
> URL: <http://lists.osgeo.org/pipermail/qgis-user/
> attachments/20170109/985fd14c/attachment-0001.zip>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>
> ------------------------------
>
> End of Qgis-user Digest, Vol 131, Issue 13
> ******************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20170109/0875e9b1/attachment.html>


More information about the Qgis-user mailing list