I need to achieve exactly what the below script written by Jacob (found here) does, with the addition that I only want to count the points if column B in the point layers attribute field is greater then zero.
Since I'm a rookie with Python I can't figure out how to re-write the code to do that!?
from qgis.core import * from qgis.gui import * from qgis.utils import iface @qgsfunction(args="auto", group='Custom') def countPointsInCurrentAltlasFeature(pointLayerName, geomAtlas, feature, parent): # If point geom is empty, return 0 if (geomAtlas is None): return 0 # Get point layer reference from layername pointLayer = QgsMapLayerRegistry.instance().mapLayersByName(pointLayerName) # Raise if layer not found if pointLayer is None: raise Exception("Layer not found: " + pointLayerName) # Count point within current Atlas feature countPoint = 0 for pointFeature in pointLayer.getFeatures(): pointGeom = pointFeature.geometry() if (pointGeom is None): continue if pointGeom.within(geomAtlas): countPoint += 1 return countPoint
I've tried to change the last
countPoint += 1 to
IF column "B" > 0 THEN countPoint += 1 but the script wont run and the error doesn't provide any guidance.