GRASS/R: Porovnání verzí
| Řádek 3: | Řádek 3: | ||
== Balíčky pro analýzu geoprostorových dat == | == Balíčky pro analýzu geoprostorových dat == | ||
R nabízí více než [http://cran.mirroring.de/web/packages/ 2000] různých ''rozšíření'' (tzv. balíčku) specializovaných na různé analýzy dat. My se zaměříme na balíčky určené pro práci s geoprostorovými daty. | R nabízí více než [http://cran.mirroring.de/web/packages/ 2000] různých ''rozšíření'' (tzv. balíčku) specializovaných na různé analýzy dat. My se zaměříme na balíčky určené pro práci s geoprostorovými daty. Více na [http://r-spatial.sourceforge.net/ Spatial data in R]. | ||
* '''[http://cran.mirroring.de/web/packages/sp/index.html sp]''' - základní balíček definující třídy a metody pro práci s prostorovými daty | * '''[http://cran.mirroring.de/web/packages/sp/index.html sp]''' - základní balíček definující třídy a metody pro práci s prostorovými daty | ||
Verze z 24. 11. 2010, 17:18
Tato stránka je věnována propojení GRASS GIS a projektu R.
Balíčky pro analýzu geoprostorových dat
R nabízí více než 2000 různých rozšíření (tzv. balíčku) specializovaných na různé analýzy dat. My se zaměříme na balíčky určené pro práci s geoprostorovými daty. Více na Spatial data in R.
- sp - základní balíček definující třídy a metody pro práci s prostorovými daty
- maptools - manipulace s prostorovými objekty
- maps - vykreslování map
- spatial - kriging
- spatstat - analýza bodových výskytů
- splancs - analýza bodových výskytů v čase
- spdep - autokorelace prostorových objektů
- gstat - geostatistické modelování
- geoR - analýza geostatistických dat
- fields - analýza geoprostorových dat
- spatialCovariance - výpočet kovariační matice prostorových dat
- RArcInfo - import dat ve formátu ArcInfo Coverage
- shapefiles - čtení a zápis ESRI Shapefile
- RColorBrewer - tabulky barev optimalizovaná pro tématické mapy
- spgrass6 - rozhraní pro GRASS GIS 6+
| Datový typ | Třída | Rodičovská třída |
|---|---|---|
| body | SpatialPoints | Spatial |
| pixely | SpatialPixels | SpatialPoints |
| mřížka | SpatialGrid | SpatialPixels |
| linie | SpatialLines | Spatial, Line |
| hranice | SpatialRings | SpatialLines |
| polygon | SpatialPolygons | Spatial, Polygon |
spgrass6
Spgrass6 je rozšířením balíčku sp a je koncipován jako rozhraní pro moduly GRASS GIS 6. Přístup k datům v nativním formátu GRASS je zajištěn balíčkem rgdal.
Instalace
$ R
> install.packages("spgrass6", dependencies = TRUE)
Spuštění
Z příkazové řádky GRASS GIS spustíme interpret R.
GRASS 6.5.svn (nc_spm_08):~ > R
Dále nahrajeme balíček spgrass6 a všechny jeho závislosti.
> library(spgrass6)
Loading required package: sp Loading required package: rgdal Geospatial Data Abstraction Library extensions to R successfully loaded Loaded GDAL runtime: GDAL 1.7.0dev, released 2008/11/26 Path to GDAL shared files: /usr/local/share/gdal Loaded PROJ.4 runtime: Rel. 4.6.1, 21 August 2008 Path to PROJ.4 shared files: (autodetected) Loading required package: XML GRASS GIS interface loaded with GRASS version: 6.5.svn and location: nc_spm_08
Metainformace:
> gmeta6()
gisdbase /home/martin/grassdata location nc_spm_08 mapset landa rows 1350 columns 1500 north 228500 south 215000 west 630000 east 645000 nsres 10 ewres 10 projection +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +no_defs +a=6378137 +rf=298.257222101 +towgs84=0.000,0.000,0.000 +to_meter=1
Pro spuštění GRASS modulů se používá funkce system, např.
> system('g.region -p')
projection: 99 (Lambert Conformal Conic) zone: 0 datum: nad83 ellipsoid: a=6378137 es=0.006694380022900787 north: 227412.33194791 south: 223694.5675084 west: 635197.26282579 east: 639950.9754717 nsres: 9.99399043 ewres: 10.0078161 rows: 372 cols: 475 cells: 176700
Informaci o syntaxi GRASS modulů poskytuje funkce parseGRASS.
> parseGRASS('g.list')
Command: g.list Description: Lists available GRASS data base files of the user-specified data type to standard output. Keywords: general, map management Parameters: name: type, type: string, required: yes, multiple: yes keydesc: datatype, keydesc_count: 1 [Data type] name: mapset, type: string, required: no, multiple: no [Mapset to list (default: current search path)] Flags: name: f [Verbose listing (also list map titles)] name: verbose [Verbose module output] name: quiet [Quiet module output]
GRASS moduly lze spouštět také pomocí specializované funkce execGRASS().
> system('r.buffer --o input=roadsmajor output=r100 distance=100')
> execGRASS('r.buffer', flags="overwrite", parameters=list(input='roadsmajor', output='r100', distances=as.integer(100)))
Nápověda
> help.start()
Nápověda dané funkce.
> ?gmeta6
Nápověda je dostupná ve formě HTML stránek
> options(htmlhelp = TRUE)
či textově orientovaných manuálových stránek.
> options(htmlhelp = FALSE)
Přístup k rastrovým datům
Nejprve nastavíme region.
> system('g.region rast=elevation')
Na základě rastrové vrstvy bude vytvořen objekt 'SpatialGridDataFrame'.
> elev <- readRAST6('elevation')
Základní informace o objektu poskytuje funkce summary().
> summary(elev)
Object of class SpatialGridDataFrame
Coordinates:
min max
x 630000 645000
y 215000 228500
Is projected: TRUE
proj4string :
[+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334
+lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +no_defs +a=6378137
+rf=298.257222101 +towgs84=0.000,0.000,0.000 +to_meter=1]
Number of points: 2
Grid attributes:
cellcentre.offset cellsize cells.dim
x 630005 10 1500
y 215005 10 1350
Data attributes:
Min. 1st Qu. Median Mean 3rd Qu. Max.
55.58 94.79 108.90 110.40 126.80 156.30
V případě klasifikovaných rastrových dat použijeme parametr 'cat', např.
> lu <- readRAST6('landuse96_28m', cat = TRUE)
> summary(lu)
Object of class SpatialGridDataFrame
Coordinates:
min max
x 630000 645000
y 215000 228500
Is projected: TRUE
proj4string :
[+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334
+lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +no_defs +a=6378137
+rf=298.257222101 +towgs84=0.000,0.000,0.000 +to_meter=1]
Number of points: 2
Grid attributes:
cellcentre.offset cellsize cells.dim
x 630005 10 1500
y 215005 10 1350
Data attributes:
not classified High Intensity Developed
9 283200
Low Intensity Developed Cultivated
309088 17347
Managed Herbaceous Cover Riverine/Estuarine Herbaceous
205883 246
Evergreen Shrubland Deciduous Shrubland
133042 2596
Mixed Shrubland Mixed Hardwoods
356 64058
Bottomland Hardwoods/Hardwood Swamps Southern Yellow Pine
159491 524056
Mixed Hardwoods/Conifers Water Bodies
274120 42854
Unconsolidated Sediment NA's
1610 7044
Poznámka: Statistika kategorií odpovídá příkazu r.stats -lc.
> system('r.stats -lc input=landuse96_28m --q')
0 not classified 9 1 High Intensity Developed 283200 2 Low Intensity Developed 309088 3 Cultivated 17347 4 Managed Herbaceous Cover 205883 6 Riverine/Estuarine Herbaceous 246 7 Evergreen Shrubland 133042 8 Deciduous Shrubland 2596 9 Mixed Shrubland 356 10 Mixed Hardwoods 64058 11 Bottomland Hardwoods/Hardwood Swamps 159491 15 Southern Yellow Pine 524056 18 Mixed Hardwoods/Conifers 274120 20 Water Bodies 42854 21 Unconsolidated Sediment 1610 * no data 7044
Rastrové vrstvy lze kombinovat, např.
> elev_lu <- readRAST6(c('elevation', 'landuse96_28m'), cat = c(FALSE, TRUE))
> summary(elev_lu)
Object of class SpatialGridDataFrame
Coordinates:
min max
x 630000 645000
y 215000 228500
Is projected: TRUE
proj4string :
[+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334
+lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +no_defs +a=6378137
+rf=298.257222101 +towgs84=0.000,0.000,0.000 +to_meter=1]
Number of points: 2
Grid attributes:
cellcentre.offset cellsize cells.dim
x 630005 10 1500
y 215005 10 1350
Data attributes:
elevation landuse96_28m
Min. : 55.58 Southern Yellow Pine :524056
1st Qu.: 94.79 Low Intensity Developed :309088
Median :108.88 High Intensity Developed:283200
Mean :110.38 Mixed Hardwoods/Conifers:274120
3rd Qu.:126.79 Managed Herbaceous Cover:205883
Max. :156.33 (Other) :421609
NA's : 7044
Informace o atributech vytiskne také funkce table().
> table(elev_lu$landuse96_28m)
not classified High Intensity Developed
9 283200
Low Intensity Developed Cultivated
309088 17347
Managed Herbaceous Cover Riverine/Estuarine Herbaceous
205883 246
Evergreen Shrubland Deciduous Shrubland
133042 2596
Mixed Shrubland Mixed Hardwoods
356 64058
Bottomland Hardwoods/Hardwood Swamps Southern Yellow Pine
159491 524056
Mixed Hardwoods/Conifers Water Bodies
274120 42854
Unconsolidated Sediment
1610
Přístup k vektorovým datům
Pro čtení vektorových dat se používá funkce readVECT6().
> geology <- readVECT6('geology')
> summary(geology)
Object of class SpatialPolygonsDataFrame
Coordinates:
min max
r1 123971.19 930172.3
r2 10875.83 318117.4
Is projected: TRUE
proj4string :
[+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334
+lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +datum=NAD83
+units=m +no_defs +towgs84=0,0,0]
Data attributes:
cat onemap_pro PERIMETER GEOL250_
Min. : 1.0 Min. :1.133e+03 Min. : 166.9 Min. : 2.0
1st Qu.: 458.8 1st Qu.:6.330e+05 1st Qu.: 3700.8 1st Qu.: 459.8
Median : 916.5 Median :3.184e+06 Median : 10308.4 Median : 917.5
Mean : 916.5 Mean :6.966e+07 Mean : 43054.7 Mean : 917.5
3rd Qu.:1374.2 3rd Qu.:1.745e+07 3rd Qu.: 29277.1 3rd Qu.:1375.2
Max. :1832.0 Max. :1.401e+10 Max. :2729482.2 Max. :1833.0
GEOL250_ID GEO_NAME SHAPE_area SHAPE_len
Min. : 1.0 Qp : 326 Min. :1.133e+03 Min. : 166.9
1st Qu.: 458.8 Tt : 116 1st Qu.:6.330e+05 1st Qu.: 3700.8
Median : 916.5 PzZu : 86 Median :3.184e+06 Median : 10308.4
Mean : 916.5 CZms : 59 Mean :6.966e+07 Mean : 43054.7
3rd Qu.:1374.2 CZbg : 57 3rd Qu.:1.745e+07 3rd Qu.: 29277.1
Max. :1832.0 CZfv : 54 Max. :1.401e+10 Max. :2729482.1
(Other):1134
Základní informace o typu vektorových prvků poskytuje funkce vInfo().
> vInfo('geology')
nodes points lines boundaries centroids areas islands
4556 0 0 3649 1832 1832 907
faces kernels primitives map3d
0 0 5481 0
Alternativně
> system('v.info -t map=geology')
nodes=4556 points=0 lines=0 boundaries=3649 centroids=1832 areas=1832 islands=907 faces=0 kernels=0 primitives=5481 map3d=0
Související články
Externí odkazy
- Manuál spgrass6
- R, GRASS, and Spatial Analysis
- GRASS Newsletter vol. 3
- Roger Bivand: Interfacing GRASS 6 and R
- OSGeo Journal Volume 1
- Roger Bivand: Using R - GRASS interface
- Short Introduction to Geostatistical and Spatial Data Analysis with GRASS and R statistical data language by Markus Neteler
- GRASS Short Course by M. Neteler
- Session 6: GRASS/R/PostgreSQL
- Practical Guide to Geostatistical Mapping by Tomislav Hengl
- spatial-analyst.net
- One-day introductory course on Spatial Data Analysis with the R Programming Language by Roger Bivand
- R: advanced statistical package by Dylan Beaudette
- An introduction to handling spatial data in R using sp classes by Roger Bivand
- R statistics