GRASS GIS / CSV

Z FreeGIS portál
Přejít na: navigace, hledání

Tato stránka obsahuje poznámky k práci s daty ve formátu Comma Separated Values v systému GRASS GIS. CSV je textový formát, kde jsou jednotlivé položky separovány oddělovačem, např. čárkou.

Příklad dat ve formátu CSV:

easting,northing,id,name,population
639959.62573283,225983.1234297,8,West Raleigh,338759
642250.82559349,224356.92946898,9,Raleigh,276093
629362.02485238,226477.19493237,14,Cary,103945
...

Import vektorových dat

Pokud data obsahují prostorovou informaci (souřadnice bodů), lze data naimportovat jako vektorovou mapu pomocí modulu v.in.ascii anebo v.in.ogr.

Příklad stažení a importu dat ze služby GeoNames (popis formátu zde, jedná se o zeměpisné souřadnice EPSG 4326):

wget http://download.geonames.org/export/dump/CZ.zip
unzip CZ.zip
Pro import dat ze služby GeoNames nabízí GRASS specializovaný modul v.in.geonames. Příklad importu:
 v.in.geonames input=CZ.txt output=geonames

Import v.in.ascii

Oddělovačem je v tomto případě tabulátor sep=tab.

 v.in.ascii input=CZ.txt output=geonames x=6 y=5 cat=1 sep=tab
Pro import pouze prostorové složky lze použít přepínač -t (Do not create table in points mode)

Názvy atributů jsou voleny automaticky dle datových typů, např. int_1 a pod. Parametr columns umožňuje názvy určit explicitně.

v.in.ascii input=CZ.txt output=geonames x=6 y=5 cat=1 sep=tab columns="geonameid int,name varchar(200),asciiname varchar(200),alternatenames varchar(5000), \
 latitude double,longitude double,feature_class char(1),feature_code varchar(10),country char(2),cc2 char(60),admin1 varchar(20),admin2 varchar(80),admin3 varchar(20), \
 admin4 varchar(20),population integer,elevation integer,dem integer,timezone varchar(40),modification date"
Bodová data z projektu GeoNames

Import v.in.ogr

Knihovna OGR musí být zkompilována s podporou CSV.
v.in.ogr dsn=CZ.txt output=geonames

Import atributových dat

head data.csv
id,elevation
8,123
9,106
14,146
31,167
42,112
48,120
62,137
69,115
193,126
226,0
db.in.ogr dsn=data.csv output=data

Spojení atributových tabulek

Výchozím databázovým ovladačem je v GRASS 6 grass-dbf. DBF má řadu omezení, např. nepodporuje 'join'. Ve výsledku nelze atributové tabulky v DBF spojit pomocí příkazu v.db.join. Před importem dat (v.in.ascii, db.in.ogr) je nutné nastavit jiný databázový ovladač, např. grass-sqlite.

db.connect driver=sqlite database='$GISDBASE/$LOCATION_NAME/$MAPSET/db.sqlite'

Spojení tabulek obstará modul v.db.join.

v.db.join map=geonames column=cat otable=data ocolumn=id
v.db.select map=geonames
x|y|cat|name|population|id|elevation
639959.62573283|225983.1234297|8|West Raleigh|338759|8|123
642250.82559349|224356.92946898|9|Raleigh|276093|9|106
629362.02485238|226477.19493237|14|Cary|103945|14|146
623119.38517349|219932.06937587|31|Apex|30873|31|167
644487.66272964|217616.56278099|42|Garner|21959|42|112
653790.48755484|247459.62897391|48|Wake Forest|18832|48|120
624642.44161164|210904.87394846|62|Holly Springs|14816|62|137
627700.75637885|203484.16947764|69|Fuquay-Varina|12127|69|115
633131.67446145|234992.6509392|193|Candero (subdivision)|0|193|126