New answers tagged buffer
If the spatial join tool doesn't work, you could try with this equivalent method : right click on your buffer polygon in the context menu, select "join" in the drop box, select "join based on location" If you really have a very large number of points, the only workaround that I see is to loop on each polygon, select by location and count the number of ...
you should use the spatial join tool and select sum for statistics which are completely within source layer.
About the QGIS issue. In qgis 2.0.1 there was an issue that reported bogus area/length values when reprojection was ON. This is fixed in qgis 2.2 but anyway there is a difference compared to qgis 1.8: in qgis 1.8 even with OTFR on the measurements/computation where always made on the plane. In QGIS 2.* it depends on what ellipsoid is configured at a ...
I encountered a similar problem and so have logged a QGIS Application issue #9620 for Measure line tool reports incorrect units.
from GRASS GIS: v.buffer: -c Don't make caps at the ends of polylines from the interface of v.buffer.distance in QGIS (Processing Toolbox): from the interface of v.buffer.column in QGIS (Processing Toolbox): or use GRASS GIS directly and not the GRASS plugin (as says zimmi)
You could use GRASS itself because it exposes the -c option.
Here is a pure raster solution in Python 2.7 using numpy and scipy: import numpy as np from scipy import ndimage import matplotlib.pyplot as plt #create tree location matrix with values indicating crown radius A = np.zeros((120,320)) A[60,40] = 1 A[60,80] = 2 A[60,120] = 3 A[60,160] = 4 A[60,200] = 5 A[60,240] = 6 A[60,280] = 7 #plot tree locations fig = ...
If you have the pixel position, the radius and the Midpoint circle algorithm (a variant of the Bresenham Alg.) gives you a clue. IMO it is easy to create a polygon from this approach and I think it easy to implement this in Python. A union of this set of polygons gives you the covering area. Bye Huck
Another option would be to create separate rasters for each pixel value, in this case 4 rasters, with a condition. Then expand the rasters by a pixel count corresponding to the raster's value (by possibly iterating over a value list). Lastly, join the rasters (either algebraic or spatially), to create one binary raster for the tree crowns.
It is a challenging question to do this in raster because you don't have the opportunity to use the value of the pixel for defining the size of the buffer. Therefore you would need to do the focal filter for each value, as you already said. Here is a possible answer to do it with only 3 filters (I couldn't find less), but not perfectly as mentioned by ...
Vector-based approach This task can be done in three steps: Raster To Point; Buffer (using the VALUE field as buffer field); Feature To Raster. Note: using the buffer field avoids the calculation of a buffer for each crown radius value. Raster-based approach Avoiding the vector-based solution, this problem suggests to use a kind of Cellular Automata ...
Blord-castillo hit the nail on the head with the comment about the projection. I've run into this "problem" before and there are 2 answers that I know of: Option 1) Your results from the incorrect-looking buffer really are correct! This is a normal effect of setting your dataframe coordinate system to a geographic coordinate system, I'm attaching a picture ...
Top 50 recent answers are included