Setting style for categorized vector in PyQGIS? Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How to apply a radial fill to a voronoi polygon centred on its original home point in QGIS?How to change default symbol in Categorized symbol renderer (python console) or use different icons as vector layer symbols?Insert missing values in categorized style“gdal:cliprasterbymasklayer” not clipping to polygons in QGIS3Show differenet SVG icons on one layer at runtimeArcGIS Online Webmap: Summarize values of overlapping polygons in quantitative symbologyStrange behaviour viewing world map with EPSG:4326Modifying style (line width/color) of vector layer in PyQGIS?Applying categorized render to polygonsIdentifying selected feature using PyQGIS?

Amount of permutations on an NxNxN Rubik's Cube

What would you call this weird metallic apparatus that allows you to lift people?

What is Adi Shankara referring to when he says "He has Vajra marks on his feet"?

C's equality operator on converted pointers

Can a new player join a group only when a new campaign starts?

Is there hard evidence that the grant peer review system performs significantly better than random?

How does a spellshard spellbook work?

A term for a woman complaining about things/begging in a cute/childish way

How could we fake a moon landing now?

Sum letters are not two different

One-one communication

In musical terms, what properties are varied by the human voice to produce different words / syllables?

Lagrange four-squares theorem --- deterministic complexity

Converted a Scalar function to a TVF function for parallel execution-Still running in Serial mode

Put R under double integral

How to compare two different files line by line in unix?

Did Mueller's report provide an evidentiary basis for the claim of Russian govt election interference via social media?

How to draw/optimize this graph with tikz

Semigroups with no morphisms between them

Did any compiler fully use 80-bit floating point?

Hangman Game with C++

Should a wizard buy fine inks every time he want to copy spells into his spellbook?

How does the math work when buying airline miles?

Why is it faster to reheat something than it is to cook it?



Setting style for categorized vector in PyQGIS?



Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?How to apply a radial fill to a voronoi polygon centred on its original home point in QGIS?How to change default symbol in Categorized symbol renderer (python console) or use different icons as vector layer symbols?Insert missing values in categorized style“gdal:cliprasterbymasklayer” not clipping to polygons in QGIS3Show differenet SVG icons on one layer at runtimeArcGIS Online Webmap: Summarize values of overlapping polygons in quantitative symbologyStrange behaviour viewing world map with EPSG:4326Modifying style (line width/color) of vector layer in PyQGIS?Applying categorized render to polygonsIdentifying selected feature using PyQGIS?



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I'm writing a plugin in QGIS3 which produces a vector file from a thresholded raster (i.e. polygons all have a value of 1 or 0). So far so good. I'd now like to load it in QGIS and display the results so that the 1 values in the vector are displayed (as a filled color) and the 0 values aren't displayed at all. This should just be a display of a categorized vector but I can't figure out the best approach in QGIS3.



Can anyone point me in the right direction, please? I don't have any code to share on this point. I got as far as



processing.run("gdal:polygonize", 'INPUT': self.threshold_raster_obj, 'BAND':1, 'FIELD':'DN','EIGHT_CONNECTEDNESS':False,'OUTPUT': self.out_vectorFilename)
current_layer = self.iface.addVectorLayer(self.out_vectorFilename, "Polygonize_result", "ogr")


i.e. I can polygonize my raster, save it and load it into the main window but I've no idea where to start with the display options. I've looked at some of the examples but I've not been able to understand the right approach for polygons. Unfortunately some things are not intuitive for novices like myself.










share|improve this question






























    0















    I'm writing a plugin in QGIS3 which produces a vector file from a thresholded raster (i.e. polygons all have a value of 1 or 0). So far so good. I'd now like to load it in QGIS and display the results so that the 1 values in the vector are displayed (as a filled color) and the 0 values aren't displayed at all. This should just be a display of a categorized vector but I can't figure out the best approach in QGIS3.



    Can anyone point me in the right direction, please? I don't have any code to share on this point. I got as far as



    processing.run("gdal:polygonize", 'INPUT': self.threshold_raster_obj, 'BAND':1, 'FIELD':'DN','EIGHT_CONNECTEDNESS':False,'OUTPUT': self.out_vectorFilename)
    current_layer = self.iface.addVectorLayer(self.out_vectorFilename, "Polygonize_result", "ogr")


    i.e. I can polygonize my raster, save it and load it into the main window but I've no idea where to start with the display options. I've looked at some of the examples but I've not been able to understand the right approach for polygons. Unfortunately some things are not intuitive for novices like myself.










    share|improve this question


























      0












      0








      0


      1






      I'm writing a plugin in QGIS3 which produces a vector file from a thresholded raster (i.e. polygons all have a value of 1 or 0). So far so good. I'd now like to load it in QGIS and display the results so that the 1 values in the vector are displayed (as a filled color) and the 0 values aren't displayed at all. This should just be a display of a categorized vector but I can't figure out the best approach in QGIS3.



      Can anyone point me in the right direction, please? I don't have any code to share on this point. I got as far as



      processing.run("gdal:polygonize", 'INPUT': self.threshold_raster_obj, 'BAND':1, 'FIELD':'DN','EIGHT_CONNECTEDNESS':False,'OUTPUT': self.out_vectorFilename)
      current_layer = self.iface.addVectorLayer(self.out_vectorFilename, "Polygonize_result", "ogr")


      i.e. I can polygonize my raster, save it and load it into the main window but I've no idea where to start with the display options. I've looked at some of the examples but I've not been able to understand the right approach for polygons. Unfortunately some things are not intuitive for novices like myself.










      share|improve this question
















      I'm writing a plugin in QGIS3 which produces a vector file from a thresholded raster (i.e. polygons all have a value of 1 or 0). So far so good. I'd now like to load it in QGIS and display the results so that the 1 values in the vector are displayed (as a filled color) and the 0 values aren't displayed at all. This should just be a display of a categorized vector but I can't figure out the best approach in QGIS3.



      Can anyone point me in the right direction, please? I don't have any code to share on this point. I got as far as



      processing.run("gdal:polygonize", 'INPUT': self.threshold_raster_obj, 'BAND':1, 'FIELD':'DN','EIGHT_CONNECTEDNESS':False,'OUTPUT': self.out_vectorFilename)
      current_layer = self.iface.addVectorLayer(self.out_vectorFilename, "Polygonize_result", "ogr")


      i.e. I can polygonize my raster, save it and load it into the main window but I've no idea where to start with the display options. I've looked at some of the examples but I've not been able to understand the right approach for polygons. Unfortunately some things are not intuitive for novices like myself.







      symbology qgis-3 pyqgis-3






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 12 at 13:15









      Joseph

      59.1k7102207




      59.1k7102207










      asked Apr 11 at 11:12









      SJJSJJ

      142




      142




















          1 Answer
          1






          active

          oldest

          votes


















          0














          I've included some code with comments to show how to categorise a layer with the most basic properties which hopefully should get you started:



          #current_layer = iface.activeLayer()

          # Create dictionary to store
          # 'attribute value' : ('symbol colour', 'legend name')
          land_class =
          '0': ('#0f0', 'Transparent polygons'),
          '1': ('#f00', 'Filled polygons')

          # Create list to store symbology properties
          categories = []
          # Iterate through the dictionary
          for classes, (color, label) in land_class.items():
          # Automatically set symbols based on layer's geometry
          symbol = QgsSymbol.defaultSymbol(current_layer.geometryType())
          # Set colour
          symbol.setColor(QColor(color))
          # Set symbol with value = 0 to be transparent
          if classes == '0':
          symbol.setOpacity(0)
          # Set the renderer properties
          category = QgsRendererCategory(classes, symbol, label)
          categories.append(category)

          # Field name
          expression = 'DN'
          # Set the categorized renderer
          renderer = QgsCategorizedSymbolRenderer(expression, categories)
          current_layer.setRenderer(renderer)
          # Refresh layer
          current_layer.triggerRepaint()





          share|improve this answer


















          • 1





            Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

            – SJJ
            Apr 15 at 10:09











          • @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

            – Joseph
            Apr 15 at 10:13











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "79"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318474%2fsetting-style-for-categorized-vector-in-pyqgis%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          I've included some code with comments to show how to categorise a layer with the most basic properties which hopefully should get you started:



          #current_layer = iface.activeLayer()

          # Create dictionary to store
          # 'attribute value' : ('symbol colour', 'legend name')
          land_class =
          '0': ('#0f0', 'Transparent polygons'),
          '1': ('#f00', 'Filled polygons')

          # Create list to store symbology properties
          categories = []
          # Iterate through the dictionary
          for classes, (color, label) in land_class.items():
          # Automatically set symbols based on layer's geometry
          symbol = QgsSymbol.defaultSymbol(current_layer.geometryType())
          # Set colour
          symbol.setColor(QColor(color))
          # Set symbol with value = 0 to be transparent
          if classes == '0':
          symbol.setOpacity(0)
          # Set the renderer properties
          category = QgsRendererCategory(classes, symbol, label)
          categories.append(category)

          # Field name
          expression = 'DN'
          # Set the categorized renderer
          renderer = QgsCategorizedSymbolRenderer(expression, categories)
          current_layer.setRenderer(renderer)
          # Refresh layer
          current_layer.triggerRepaint()





          share|improve this answer


















          • 1





            Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

            – SJJ
            Apr 15 at 10:09











          • @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

            – Joseph
            Apr 15 at 10:13















          0














          I've included some code with comments to show how to categorise a layer with the most basic properties which hopefully should get you started:



          #current_layer = iface.activeLayer()

          # Create dictionary to store
          # 'attribute value' : ('symbol colour', 'legend name')
          land_class =
          '0': ('#0f0', 'Transparent polygons'),
          '1': ('#f00', 'Filled polygons')

          # Create list to store symbology properties
          categories = []
          # Iterate through the dictionary
          for classes, (color, label) in land_class.items():
          # Automatically set symbols based on layer's geometry
          symbol = QgsSymbol.defaultSymbol(current_layer.geometryType())
          # Set colour
          symbol.setColor(QColor(color))
          # Set symbol with value = 0 to be transparent
          if classes == '0':
          symbol.setOpacity(0)
          # Set the renderer properties
          category = QgsRendererCategory(classes, symbol, label)
          categories.append(category)

          # Field name
          expression = 'DN'
          # Set the categorized renderer
          renderer = QgsCategorizedSymbolRenderer(expression, categories)
          current_layer.setRenderer(renderer)
          # Refresh layer
          current_layer.triggerRepaint()





          share|improve this answer


















          • 1





            Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

            – SJJ
            Apr 15 at 10:09











          • @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

            – Joseph
            Apr 15 at 10:13













          0












          0








          0







          I've included some code with comments to show how to categorise a layer with the most basic properties which hopefully should get you started:



          #current_layer = iface.activeLayer()

          # Create dictionary to store
          # 'attribute value' : ('symbol colour', 'legend name')
          land_class =
          '0': ('#0f0', 'Transparent polygons'),
          '1': ('#f00', 'Filled polygons')

          # Create list to store symbology properties
          categories = []
          # Iterate through the dictionary
          for classes, (color, label) in land_class.items():
          # Automatically set symbols based on layer's geometry
          symbol = QgsSymbol.defaultSymbol(current_layer.geometryType())
          # Set colour
          symbol.setColor(QColor(color))
          # Set symbol with value = 0 to be transparent
          if classes == '0':
          symbol.setOpacity(0)
          # Set the renderer properties
          category = QgsRendererCategory(classes, symbol, label)
          categories.append(category)

          # Field name
          expression = 'DN'
          # Set the categorized renderer
          renderer = QgsCategorizedSymbolRenderer(expression, categories)
          current_layer.setRenderer(renderer)
          # Refresh layer
          current_layer.triggerRepaint()





          share|improve this answer













          I've included some code with comments to show how to categorise a layer with the most basic properties which hopefully should get you started:



          #current_layer = iface.activeLayer()

          # Create dictionary to store
          # 'attribute value' : ('symbol colour', 'legend name')
          land_class =
          '0': ('#0f0', 'Transparent polygons'),
          '1': ('#f00', 'Filled polygons')

          # Create list to store symbology properties
          categories = []
          # Iterate through the dictionary
          for classes, (color, label) in land_class.items():
          # Automatically set symbols based on layer's geometry
          symbol = QgsSymbol.defaultSymbol(current_layer.geometryType())
          # Set colour
          symbol.setColor(QColor(color))
          # Set symbol with value = 0 to be transparent
          if classes == '0':
          symbol.setOpacity(0)
          # Set the renderer properties
          category = QgsRendererCategory(classes, symbol, label)
          categories.append(category)

          # Field name
          expression = 'DN'
          # Set the categorized renderer
          renderer = QgsCategorizedSymbolRenderer(expression, categories)
          current_layer.setRenderer(renderer)
          # Refresh layer
          current_layer.triggerRepaint()






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Apr 12 at 13:09









          JosephJoseph

          59.1k7102207




          59.1k7102207







          • 1





            Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

            – SJJ
            Apr 15 at 10:09











          • @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

            – Joseph
            Apr 15 at 10:13












          • 1





            Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

            – SJJ
            Apr 15 at 10:09











          • @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

            – Joseph
            Apr 15 at 10:13







          1




          1





          Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

          – SJJ
          Apr 15 at 10:09





          Thank you so much. That really helps. I find the core documentation hard to navigate as you have to seem to have to know what the class is that you need. I'm getting better but it's not easy for novices to get to grips with. THanks again.

          – SJJ
          Apr 15 at 10:09













          @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

          – Joseph
          Apr 15 at 10:13





          @SJJ - Most welcome, glad it helped. What I normally do is google "qgis api " followed by the term I'm searching for. Usually it works :)

          – Joseph
          Apr 15 at 10:13

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f318474%2fsetting-style-for-categorized-vector-in-pyqgis%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221

          Creating closest line along the point''s azimuth using PostgreSQL Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Drawing line between points at specific distance in PostGIS?How to efficiently find the closest point over the dateline?How to find the nearest point by using PostGIS function?PostGIS nearest point with LATERAL JOIN in PostgreSQL 9.3+Creating a table and inserting selected streets using plpgsql functionsCreating a table that stores Distances and other columnSaving select query results (year wise) from PostgreSQL/PostGIS to text filesWhat is the information behind this geometry?How to give start and end vertex ids dynamically in pgr_dijkstra?Point to Polygon nearest distance DS_distance is not using geography index & knn <-> or <#> does not give result in orderLine to point conversion with start point and end point detection?

          Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given