Aragon's answer is good for generalization. Bryan's answer is good for smoothing but is a little convoluted. Here are two alternatives for smoothing:
Use the GRASS v.generalizer tool from the Processing toolbox. This is the module on which the QGIS Generalizer Plugin in Bryan's answer is built. The GRASS tool allows you to use polygons so you can avoid ...
I've also had luck using the QGIS Generalizer plugin (enable experimental plugins), and then:
Vector > Geometry Tools > Polygons to lines
Then use the Generalizer plugin to smooth the lines and vertices
Plugins > Generalizer > Generalizer
Algorithm: "Chaiken's Algorithm"
Then turn the lines back into a polygons
Vector > Geometry Tools &...
1) create a new grid with 1 m spacing (fishnet)
2) use "spatial join" to aggregate the attributes of the points falling inside the polygons
3) create the centroids of the polygons
3b) Alternatively, you can make a spatial join between the centroids and your original points so that you can define more advanced merging rules (aka based on the distance)
Use the Delete Identical (Data Management) tool in ArcGIS. You can see from the screenshots, I generated a uniform grid of points within the polygon extent and used the Delete Identical tool with a 10m XY tolerance to thin the points.
Alternatively, use the Integrate (Data Management) tool to make points coincident at a certain XY tolerance.
One possible approach consists in the following steps:
draw a buffer of 5m around points;
dissolve the buffers which overlap;
calculate the centroids of dissolved buffers.
You can choose the tools with which you're more comfortable.
For instance, using GDAL >= 1.10.0 compiled with SQLite and SpatiaLite you can calculate the buffer around your ...
It is now available the Smooth geometry algorithm via Processing Toolbox > QGIS geoalgorithms > Vector Geometry Tools.
Take jagged geometry objects
Set options (I changed the Iterations field to 5 and was satisfied with the result)
Get smoothed object
If your goal is to create a polygon representing the outline of a set of features, you're probably looking to create the concave-hull of this features set.
While the creation of a convex-hull is a pretty straightforward operation, because there is only one possible convex-hull for a given set, this is not true in the case of the concave-hull.
Yes, there is an option to do exactly that in the Labels placement option in QGIS 3.4+ - you can set placement of labels along a generated geometry.
Under the Placement tab, scroll down to 'Geometry generator' and check the box, then change the geometry to Linestring, then enter an expression to simplify your base geometry by the desired factor (here ...
This can be seen as a preliminary to @Underdark's answer whereby you can clean the topology of the vector layer before generalizing. GRASS has a v.clean function which contains a number of tools to repair the layer such as:
snap which 'snaps' lines to the nearest vertex
rmdangle which removes any annoying dangles
rmdupl which removes duplicated geometry ...
The name for this kink in a geometry is an "inversion". It is not a topology error per se (as explained in this answer), but it can be an indication of coordinate collapse (such as at the mouth of a harbor, etc.).
I can't think of any elegant way to identify inversions. One possible solution (that I haven't tried) would convert the polygon rings to ...
A quick and dirty solution would be to simply apply a Ramer-Douglas-Peucker filter to the road sections. Note that there are variations of the algorithm preserving topology: See for example here and there,with rivers.
If you aim at developing more advanced generalisation for a better cartographic result, I am afraid no such tool exists (yet) in GRASS and ...
There is a difference in wording but I think the options from the Generalizer plugin exists in the v.generalizer interface. Using Google Translate (yes, not the best thing to use) for the Generalizer Homepage, we can find a description on each algorithms used and their corresponding parameters.
In terms of Hermite Spline Interpolation, the homepage tells ...
I'm guessing you are using GRASS 6.4.x as there were issues regarding generalizing polygons with holes. This has been fixed in GRASS 7, although I do not have this version so cannot confirm it.
A workaround would be to use the Fill holes tool from the Processing Toolbox on your original layer:
Use the Difference tool on both the original and filled layers:
For an FME solution, the most useful transformer would probably be the Generalizer. It has several algorithms grouped into four types.
Here's a list of algorithms:
From the documentation:
Generalizing algorithms: Reduce the density of coordinates by removing vertices.
Smoothing algorithms: Determine a new location for each vertex.
I can only speak for ArcGIS, but since you didn't mention any specific software, here's my answer.
The Simplify Polygon tool with the POINT_REMOVE option should do what you want. From the help:
POINT_REMOVE—Keeps the so-called critical points that depict the essential shape of a polygon and removes all other points
Have a look at this page. Follow the instructions, you can select multiple polygons by drawing a box around them with the tool and then run the generalize edge tool.
Here is a polygon with "extra" vertices:
After running the Generalize edge tool and fiddling around with the tolerance scroll bar I created this:
Your question gives no indication of the ...
It might help to add vertices to the long segments without vertices. It seems counterintuitive, but I think you'll get better results from the simplification tool when the vertices of the input line are spaced at approximately equal distances. Estimate the average distance between vertices in the very dense areas. Then use that distance in the densify by ...
This could be a comment to MikeT's excellent answer, if it wasn't too long and too complex. I've played with it a lot and made a QGIS plugin named FFT Convolution Filters (in "experimental" stage yet) based on his function. Besides smoothing, the plugin can also sharpen edges by subtracting the smoothed raster from the original one.
I've upgraded Mike's ...
It is a challenge to solve this one without creating (possibly a great number of) indicator grids, one per classification, and then carrying out a lot of expensive reclassifications and conditional calculations. Here's one way.
I interpret the question as asking to identify cells in which at most one of their eight neighbors has the same value as the cell ...
You can use the thinning tool that is available for LAS datasets, lasthin, from LASTools (free download).
Although I haven't used it a lot on shapefiles myself (I have tried it on LAS files though), the help text states:
Uses lasthin.exe to thin LiDAR points by placing a uniform grid over
the points and keeping within each grid cell only the point with ...
The best approach I guess is using real topology data.
Then you can share the edges between data sets and simplify as much as you want.
Here is an example from the man behind the topology implimentation in PostGIS.
I recommend you to use the brand new geoalgorithm from QGIS 2.14.1, named Smooth.py
With Smooth Geometry it's possible to smooth the entire polygon, not only the boundaries, as in Chaiken method from v.generalize
A new QGIS plugin called Geo Simplification that contains a processing script named Reduce Bend is available in the official QGIS plugin repository. It is an implementation of the Wang-Muller algorithm, the same algorithm used by the ESRI Bend simplify. It can simplify lines but also polygons while preserving topology within and between features of the ...
As whuber said, you do have a uniform buffer width. So here is a method to have squared ends in case of square angles, leaving rounded ends for other concave angles.
Convert polygons to polylines
Split your lines at vertices (split lines at vertices)
Create flat buffers from the splitted lines
Erase your flat buffers from you round buffer (you have the "...
This is basically a variant to @whuber's answer and uses Euclidian Distance to expand and shrink the raster boundaries to smooth the sharp corners of the raster which is exaggrated by expand-shrink process which utilises the number of cells to grow/encroach. Although Euclidian Distance imitates Expand, it is not possible to introduce negative value to ...
You might have a look at this paper: W. Meulemans, A. van Renssen, and B. Speckmann. Area-Preserving Subdivision Schematization. In Proceedings of GIScience 2010, LNCS 6292, pages 160–174, 2010.
The method presented is used for area subdivisions, but the "rectilinearization" algorithm could be reused for network data. It should be more simple since for your ...
The osm2pgsql importer for postgis does this generalizing: The table planet_osm_roads is designed for low zoomlevels, while planet_osm_line contains the complete geometry.
See also http://wiki.openstreetmap.org/wiki/Osm2pgsql/schema#Processed_Data
It works with OSM raw data in xml format, not shapefiles. You can get all kinds of regional extracts from ...
In QGIS, I got good results easily by using Orfeo Toolbox Image filtering. It's reasonable fast and batch mode works fine. Gaussian, mean, or anisotropic diffusions are available.
Note that Radius refers to number of cells, not distance.
Here is an example using Smoothing(gaussian):