[GRASS-user] Corine Land Cover 2000, suicidal v.clean
Markus Metz
markus.metz.giswork at googlemail.com
Thu Feb 12 04:24:43 EST 2009
This is actually a reply to "v.clean process killed itself!?" from Nikos [1]
The CLC2000 is also available as a raster, have you tried this alternative?
There are two raster versions, one with 100m resolution and one with
250m resolution.
I got the 100m resolution raster [2], it's the full CLC2000, not tiled.
The 100m resolution corresponds to the CLC2000 specifications with are
scale 1:100.000, minimum mapping unit (MMU) of 25 hectares and minimum
width of linear elements of 100 metres according to the documentation on
CLC2000 methodology.
I loaded it to grass with r.external, added labels with r.category, the
colortable is in the raster, no need to do anything there, so I'm happy :-)
I don't like land cover maps in vector format, such vectors are usually
too big for easy handling, the same as raster is much faster. The native
format of CLC2000 is raster (land cover classification based on
satellite imagery, they call it computer-aided image-interpretation, CAPI).
The shapefile-tiles show more detail, but that detail is below the
minimum mapping unit (MMU) of 25 hectares and below the minimum width of
linear elements of 100 metres, therefore I regard these shapefiles as
eye-candy, pleasantly smoothed boundaries.
On to your original problem in [1]. The patched vector you created was
really big, but at least for reading you don't need large file support,
all files are below 2GB. When cleaning, the coor file of this vector
would grow over 2GB, then you would need large file support (LFS). But
the grass vector libs don't have LFS (yet), configuring with
--enable-largefile doesn't help. To my knowledge I am the only person
that has highly experimental LFS support for grass vectors. There are
more problems when patching together imported shapefiles. v.in.ogr
assigns a unique category to each area on import. The CLC2000 has a
total of 3,290,351 areas (I converted the above mentioned raster to a
vector), that could give you after patching, cleaning and dissolving as
many different area categories or a big mess. The CLC2000 has only 44
classes, so for a grass vector 44 different categories are enough for
these 3,290,351 areas. The attribute table would barely exceed 100KB
using e.g. the raster legend in dbf format.
If you really (really really) want to use the shapefiles, it may be
easier to convert the shapefile-imports to raster maps with your desired
resolution, e.g. 30m. First, you would need to upload the value of the
CLC2000 raster version for each centroid to the attribute table, then
use this value as raster value in v.to.rast. The attribute table for the
shapefile tiles I downloaded is useless, no land cover classes, no
legend. Then patch the raster maps together. Then convert the patched
raster back to vector with raster value as categories. Link this vector
to the raster legend (there are csv, dbf, and xls versions). All that
will likely only work with a workhorse with >16GB RAM, same for swap
space, r.to.vect is hungry, and grass vector libraries with large file
support. I wouldn't want to work with that vector.
BTW, the 100m GeoTIFF raster, full CLC2000, has a size of 164MB, no
workhorse needed for that.
I guess you have figured out already that working with the raster
version [2] is so much easier...
Best wishes,
Markus M
[1] http://lists.osgeo.org/pipermail/grass-user/2009-January/048227.html
[2] http://dataservice.eea.europa.eu/dataservice/metadetails.asp?id=1010
More information about the grass-user
mailing list