CORINE Land Cover: Difference between revisions
m (→References) |
m (→Get CORINE tiles from EEA's download web-service: expanded the comment about v.clean, regarding the snap tool!) |
||
Line 53: | Line 53: | ||
v.support map=corine map_name="CORINE land cover 2000" comment="command g.mlist vect sep=, pattern=x100* used for v.patch input, map needs cleaning and dissolving" | v.support map=corine map_name="CORINE land cover 2000" comment="command g.mlist vect sep=, pattern=x100* used for v.patch input, map needs cleaning and dissolving" | ||
# clean topology | # clean topology -- Watch Out: a large threshold for snap can severely damage area topology. Test before use! | ||
v.clean input=corine output=corine_clean type=point,line,boundary,centroid,area tool=snap,break,rmdupl thresh=.01 | v.clean input=corine output=corine_clean type=point,line,boundary,centroid,area tool=snap,break,rmdupl thresh=.01 | ||
Revision as of 20:10, 6 January 2013
The European Environmental Agency (EEA) provides the CORINE ( COoRdinate INformation on the Environment ) land data base, a pan-European land cover/ land use map for non-commercial use. The Minimum Mapping Unit (MMU) is set to 25 hectares. Various documentation and reports (methodology, nomenclature, etc.) are available at EEA's CORINE Land Cover Publications webpage.
License
EEA grants free access to all its data/applications provided that the user agrees:
· to acknowledge the source as follows: Copyright EEA, Copenhagen, 2007
· to display a link to the EEA web site http://www.eea.europa.eu
· not to use the data/applications for commercial purposes unless the Agency has expressly granted the right to do so
Vector
CORINE2000
CORINE2000 (or CLC2000) is the year 2000 update of the first CORINE database that was finalised in the early 90s. Normally a registration is required to obtain tiles of the seamless vector database in the form of ESRI shapefiles from EEA’s download web-service. The raster equivalent version of the CORINE2000 map derived from the seamless vector database is of 100m pixel resolution [see Raster data section below]. Nevertheless, there is the possibility to get specific tiles using the wget tool under linux.
Instructions need to be (cross-)checked...
Choose names for directories, grass database, location(s), mapset(s) and maps according to your needs
Get CORINE tiles from EEA's download web-service
# get tiles of interest from [http://www.eea.europa.eu/themes/landuse/clc-download EEA’s download web-service] and move all zipped files in one directory
mv /from/your/download/directory/100km*.zip /home/user-id/grassdb/clc2000/tiles
# decompress
cd /home/user-id/grassdb/clc2000/tiles
unzip "*.zip"
# create new location for example from within a grass session (called for example laea) based on ETRS89/LAEA (=Lambert Azimuthal Equal Area)
g.proj -c georef=/home/user-id/grassdb/clc2000/tiles/100KME53N16.shp location=laea
# connect to database/ check database connection
db.connect driver=sqlite database=/home/user-id/grassdb/clc2000/laea/PERMANENT/sqlite.db
# import CORINE tiles
for i in *.shp ; do v.in.ogr -r dsn=$i out=x`echo $i | sed 's+\.+_+g'` ; done
# patch tiles in one map
v.patch -e input=‘g.mlist vect sep=, pattern=x100*‘ out=corine
# add some metadata (optional)
v.support map=corine map_name="CORINE land cover 2000" comment="command g.mlist vect sep=, pattern=x100* used for v.patch input, map needs cleaning and dissolving"
# clean topology -- Watch Out: a large threshold for snap can severely damage area topology. Test before use!
v.clean input=corine output=corine_clean type=point,line,boundary,centroid,area tool=snap,break,rmdupl thresh=.01
# dissolve
v.dissolve input=corine_clean output=corine_dissolved col=CODE_00
# overlay a studyarea vector map (optional)
v.overlay ainput=studyarea atype=area binput=corine_dissolved btype=area output=corine_studyarea operator=and olayer=1,0,0
# check attribute table of new vector map
db.describe -c corine_studyarea
# columns of interest are '''cat''', '''a_b_nam''', '''b_cat'''
# remove the rest using ''v.db.dropcol'' and check structure again
# apply official CORINE colors
'''TO ADD'''
Get CORINE tiles for a country based on EEA's reference grids
After getting shapefile with tiles for a country of interest (e.g. Greece) from EEA's reference grids, decompress and launch grass in location laea (one method of location creation demonstrated above).
# check database connection
db.connect driver=sqlite database=/geo/grassdb/ellas/laea/PERMANENT/sqlite.db
# import shapefile
v.in.ogr dsn=/geo/geodata/ellas/vector/eea/eea_reference_grid_el/GR_100K.shp out=eea_gr_100k
# print first lines of attribute table to identify column of interest (names of tiles of interest)
db.select eea_gr_100k | head
cat|CellCode|EofOrigin|NofOrigin
1|100kmE51N18|5100000|1800000
2|100kmE51N19|5100000|1900000
3|100kmE52N16|5200000|1600000
4|100kmE52N17|5200000|1700000
5|100kmE52N18|5200000|1800000
6|100kmE52N19|5200000|1900000
7|100kmE52N20|5200000|2000000
8|100kmE53N15|5300000|1500000
9|100kmE53N16|5300000|1600000
10|100kmE53N17|5300000|1700000
# create a file with names of the tiles of interest (one line per tile-name)
db.select eea_gr_100k -c | cut -d"|" -f2 > corine_tiles_ellas
# create a "pool" directory where tiles are to be downloaded
mkdir pool
cd pool
# get tiles of interest
for x in `cat corine_tiles_ellas` ; do wget http://dataservice.eea.europa.eu/staticfiles/landcover_tiles_v2/$x.zip ; done
# decompress downloaded tiles
unzip "∗.zip"
# import tiles in grass' database / location laea
for x in *.shp ; do v.in.ogr dsn=$x out=tile_`basename $x .shp` ; done
# patch tiles in one map
for x in `g.mlist vect pat=tile_* sep=,` ; do v.patch -e --o in=$x out=corine_ellas_tiles_patched ; done
# clean topology
v.clean corine_ellas_tiles_patched out=corine_ellas_patched_clean tool=snap,break,rmdupl thresh=.01
# check attribute table structure
v.info -c corine_ellas_patched_clean
# convert to integer type the column "CODE_00" using some sqlite database manager frontend (e.g. sqlitebrowser)
# alternatively use v.db.addcol column=’somename integer’ and v.db.update to fill in the cat values (which actually are the corine class codes)
'''ADD COMMAND(s)'''
# dissolve
v.dissolve corine_ellas_patched_clean out=corine_ellas_clean_dissolved column=CODE_00
# add table to attribute tables database
v.db.addtable corine_ellas_clean_dissolved
# check attribute table structure
db.describe corine_ellas_clean_dissolved -c
# column ''cat'' contains the CORINE class codes
# import labels and CORINE colors (the latter as ''grassrgb'' column) in the attribute tables database
db.in.ogr dsn=/geo/geodata/europe/corine_levels_lables_grassrgb/corine_levels_labels_grassrgb.csv out=corine_levels_labels_grassrgb
'''ADD where to get TABLE, how to use'''
# join newly imported table with corine's attribute table
v.db.join corine_ellas_clean_dissolved column=cat otable=corine_levels_labels_grassrgb ocolumn=level3
# check attribute table after join operation
db.describe -c corine_ellas_clean_dissolved
''or''
db.select corine_ellas_clean_dissolved | head
# draw map
# get dataset ''nutsv9_leac.zip'' (NUTSV9, 1.27 MB) which contains national borders available at [http://dataservice.eea.europa.eu/dataservice/metadetails.asp?id=1004 EEA's Administrative land accounting units webpage]
# unzip file
unzip NUTSV9_LEACEEA17888I.zip
# import NUTSV9
v.in.ogr dsn=NUTSV9_LEAC.shp output=nutsv9 min_area=0.0001 snap=-1
# extract national borders
v.extract input=nutsv9 output=nutsv9_ellas type=boundary,centroid,area layer=1 new=-1 where=’N0CD="GR"’
# match region to extent of national borders
g.region vect=nutsv9 res=250 -pa
# rasterize
v.to.rast input=nutsv9_ellas output=nutsv9_ellas use=cat type=area layer=1 value=1 rows=4096
# create a country raster mask using r.mapcalc
r.mapcalc ellas=’if(nutsv9_ellas != 0, 1, null())’
# smooth vectorization
r.to.vect -s input=ellas output=ellas feature=area
# overlay national boundaries
v.overlay ainput=corine_ellas_clean_dissolved atype=area binput=ellas btype=area output=corine_ellas_v2 operator=and olayer=1,0,0
# after overlay rename/remove columns if/as desired
Instructions above were extracted from a tutorial written in the Greek Language: Οδηγός για την "Αναπαραγωγή του χάρτη CORINE µε το GRASS-GIS" available at GREGIS: Greek GIS methods and data and, additionally, at ELOGeo's Open Courses Repository (both a PDF file as well as the LyX source file).
CORINE1990
TO ADD
Raster
CLC2000 100 m - version 9/2007
CLC2000 250 m - version 9/2007
References
Personal communication with EEA (e-mails) and discussion about licensing issues with respect to the CORINE land data base can be found at:
- http://lists.osgeo.org/pipermail/geodata/2009-January/000801.html
- http://lists.osgeo.org/pipermail/geodata/2009-January/000807.html
- http://lists.osgeo.org/pipermail/geodata/2009-February/000811.html
- http://lists.osgeo.org/pipermail/geodata/2009-February/000812.html
- http://lists.osgeo.org/pipermail/geodata/2009-February/000813.html