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;
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
add a comment |
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
add a comment |
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
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
symbology qgis-3 pyqgis-3
edited Apr 12 at 13:15
Joseph
59.1k7102207
59.1k7102207
asked Apr 11 at 11:12
SJJSJJ
142
142
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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()
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
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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()
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
add a comment |
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()
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
add a comment |
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()
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()
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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