Tag Info

Hot answers tagged

19

GRASS GIS has a tool to convert raster lines to vector. The procedure is: First open the map in an image editor (GIMP), select by colors with some tolerance and select the black color. Invert selection and delete non-black stuff. Save as Tiff WITH NO COMPRESSION. Then in GRASS: r.in.gdal - import raster r.thin - Thins non-zero cells that denote linear ...


8

Why not work globally ? calculate the distances between all points union the resulting lines pointx - pointy with a distance < 14m I will use Shapely, much easier for resolving these kinds of problems. You must iterate through all pairs of points to calculate the distance once (as distance point1-point2 = distance point2-point1). There are many ...


7

Georeference the image and capture by hand. This is by far the best way as it is less prone to error.


7

Use GRASS with the native GUI or with the QGIS plugin or with the Sextante plugin and use the v.generalize tool, choosing the "Chaikens" algorithm.


7

If all you have is the jpg, then I would suggest georeferencing the jpg and then manually digitizing the roads/rivers/etc vectors. That will give you the best control over the result, I personally have never had good luck with using raster-vector conversions in a situation like this. Unfortunately, sometimes the best option is to just do it the hard way. ...


6

To simplify the raster it might be worth looking at gdal_sieve, it's available under the "Raster" menu. See: http://www.gdal.org/gdal_sieve.html N.


6

You can use GDAL tool inside Quantum GIS. Its free and it works fine. Install Quantum GIS and Gdaltools and you'll have a set of tool for raster/image processing. The one you want would be vectorize (gdal_polygonize). Cheers


5

I haven't used it, but you may want to try the gdal_polygonize script that comes with GDAL http://www.gdal.org/gdal_polygonize.html


5

From the point of view of population density, an "urban area" ought generally to satisfy just a few axiomatic criteria: Its boundary should not include any points of (relatively) high density compared to the maximum density within its interior. It should be simply connected (no "holes"). Its average population density should exceed some prespecified ...


4

I did some work on this for my MSc http://ian01.geog.psu.edu/papers/mscthesis.pdf - basically I worked on gradient changes but the discussion may help you with this.


4

I assume that your graphs came from a R-script and that you are capable of using R. Here is a solution in R, which finds local maxima and minima along a data sequence x <- rnorm(50,mean=1500,sd=800) # Example-Data r <- rle(x) # Generate run sequence object min <- which(rep(x = diff(sign(diff(c(-Inf, r$values, -Inf)))) == 2, times ...


4

To generalize, try running a majority filter. This is available in saga (and grass as well, check markusN his answer). An explanation for how it works from arcgis: http://edndoc.esri.com/arcobjects/9.2/net/shared/geoprocessing/spatial_analyst_tools/majority_filter.htm


4

In answer to my own question, I've written a program to "vectorize" an ArcInfo Grid ASCII files as an ESRI shapefile with a single layer containing oriented polygonal grid squares centered at the points of the grid, with an attribute value equal to the value at the coordinates of the centroid. The program (still under development) is available on GitHub. An ...


3

you can use gdal_polygonize.py for converting raster to vector, if u previously use . some information is here. produces a polygon feature layer from a raster SYNOPSIS gdal_polygonize.py [-o name=value] [-nomask] [-mask filename] raster_file [-b band] [-q] [-f ogr_format] out_file [layer] [fieldname] beside this in qgis ...


3

You can first use the "mode" operator of r.neighbors in GRASS GIS (via Sextante plugin), then vectorize with r.to.vect to obtain polygons. Perhaps the "mode" operator should be run more than one time.


3

If you have ArcGIS you could use the ArcScan extension if you have the license for it.


2

According to the comments below the question, you want to (a) classify the image into a small number of discrete categories and then (b) convert it into a polygon representation ("vectorize" it). There are many ways to do (a). Good choices in this application are either (a.i) drive the calculations with a reclassification table via the reclassify tools or ...


2

You can only vectorize lines, not continuous fields. Hence use r.mapcalc with a threshold to extract line structures from that map, then subsequently r.thin. Then it will work as expected. See also this Wiki page for more possibilities: http://grass.osgeo.org/wiki/R.stream.*


2

There is no need to clean a map to vectorize it. Printed raster maps have resolutions, scales. Editing and redrawing make much sense since you planning create a new map composition using data from another map source. If you do not have the original data used to create the map or if it is old and need be converted to digital format( raster, vector ) then the ...


2

I advise you could use Wintopo, sir :)


2

After my own related question received here a vague suggestion to use GRASS, I wrote an ArcInfo Grid ASCII to ESRI Shapefile conversion utility in python; see ArcInfo Grid ASCII to ESRI Shapefile conversion. I was motivated by the need to upload raster data in a format that CartoDB could support (they do not "officially" support raster files). The utility ...


2

Because you said " Open source tools would be nice" try GRASS GIS ascii import v.in.ascii.


2

Try gdal_polygonize.py, which produces a polygon feature layer from a raster. There is a good API too.


2

Why don't you crop again with your clipper after vectorizing? That way any combined polygons derived from your raster layer will match your original clipping layer. If you don't want to add an extra step you can vectorize the entire raster layer then clip to vector layer (though this could take more computation time). Any other option I can think of would ...


2

You can't use GDALFPolygonize with the GDAL python bindings without modifying the source code and recompiling as it isn't exposed in the GDAL swig interface. To polygonize your raster, you will need to convert from float to integer. If you want to retain some decimal places multiply your raster by 10^N where N is the number of decimal places you want to ...


2

Following the request "Gene, Can you expand a little" for geological maps,here are the explanations using Aprèn a interpretar un mapa geològic of the Institut Geològic de Catalunya: 1) First, geological field work : Field work figures from Field work 2) Laboratory work: geological map construction, cross sections, etc. (paper, GIS,look at 4)): Cabinet ...


2

In ArcScan, (even with v9.3) there are a whole load of tolerances to fiddle with, including a "gap closure tolerance". Have you fiddled with these? See ArcScan - batch vectorization In some cases you will have to resort to cleaning these gaps manually.


2

Have a look at generalization tools such as Expand, Shrink, Boundary Clean and Thin. A combination of these tools should help. For instance Expand followed by Thin in your case should join many of the gaps. What is achievable will depend on how poor your data are. An alternative which could help if you are finding too frequent merger of small areas is to ...


1

Similar to Italiano I use Scan2Cad for most of my simple stuff. When the raster gets as complicated as what your examples are there is a whole other level of work needed. This is a job for FME Here is an email from dmbaugh @Safe who helped me with this concept some time ago. But as you will see the work invloved would cause you to go to Simplexio's ...


1

While not an open source or QGIS utility, ArcGIS does have the ArcScan extension that can be used to help vectorize features from raster maps. ArcScan, of course, works best with 2 color images and hard edges, so I'm uncertain how the multicolor raster you showed would work. While it is not perfect, it may be another potential option. Starting with the ...



Only top voted, non community-wiki answers of a minimum length are eligible