GRASS/R: Porovnání verzí

Z GeoWikiCZ
m (Obsah stránky nahrazen textem „{{freegis|GRASS GIS / Propojení s R}}“)
 
(Nejsou zobrazeny 3 mezilehlé verze od stejného uživatele.)
Řádek 1: Řádek 1:
Tato stránka je věnována propojení [[GRASS GIS]] a [[Projekt R pro statistické výpočty|projektu R]].
{{freegis|GRASS GIS / Propojení s R}}
__TOC__
== 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.
 
* '''[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/maptools/index.html maptools] - manipulace s prostorovými objekty
 
* [http://cran.mirroring.de/web/packages/maps/index.html maps] - vykreslování map
 
* [http://cran.mirroring.de/web/packages/spatial/index.html spatial] - kriging
 
* [http://cran.mirroring.de/web/packages/spatstat/index.html spatstat] - analýza bodových výskytů
 
* [http://cran.mirroring.de/web/packages/splancs/index.html splancs] - analýza bodových výskytů v čase
 
* [http://cran.mirroring.de/web/packages/spdep/index.html spdep] - autokorelace prostorových objektů
 
* [http://cran.mirroring.de/web/packages/gstat/index.html gstat] - geostatistické modelování
 
* [http://cran.mirroring.de/web/packages/geoR/index.html geoR] - analýza geostatistických dat
 
* [http://cran.mirroring.de/web/packages/fields/index.html fields] - analýza geoprostorových dat
 
* [http://cran.mirroring.de/web/packages/spatialCovariance/index.html spatialCovariance] - výpočet kovariační matice prostorových dat
 
* [http://cran.mirroring.de/web/packages/RArcInfo/index.html RArcInfo] - import dat ve formátu ArcInfo Coverage
 
* [http://cran.mirroring.de/web/packages/shapefiles/index.html shapefiles] - čtení a zápis ESRI Shapefile
 
* [http://cran.mirroring.de/web/packages/RColorBrewer/index.html RColorBrewer] - tabulky barev optimalizovaná pro tématické mapy
 
* '''[http://cran.mirroring.de/web/packages/spgrass6/index.html spgrass6]''' - rozhraní pro GRASS GIS 6+
 
* '''[http://cran.mirroring.de/web/packages/rgdal/index.html rgdal]''' - rozhraní pro knihovnu [[GDAL/OGR|GDAL]]
 
<center>
{|class="border"
|+Tab. č. 1: Datové typy definované balíčkem sp
|-
!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
|-
|}
</center>
 
== spgrass6 ==
 
[http://cran.mirroring.de/web/packages/spgrass6/index.html Spgrass6] je rozšířením balíčku [http://cran.mirroring.de/web/packages/sp/index.html 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 [http://cran.mirroring.de/web/packages/rgdal/index.html 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)
 
<pre>
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
</pre>
 
Metainformace:
 
> gmeta6()
 
<pre>
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
</pre>
 
Pro spuštění GRASS modulů se používá funkce <code>system</code>, např.
 
> system('g.region -p')
 
<pre>
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
</pre>
 
Informaci o syntaxi GRASS modulů poskytuje funkce <code>parseGRASS</code>.
 
> parseGRASS('g.list')
 
<pre>
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]
</pre>
 
GRASS moduly lze spouštět také pomocí specializované funkce <code>execGRASS()</code>.
 
> 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 <code>summary()</code>.
 
> summary(elev)
 
<pre>
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
</pre>
 
V případě klasifikovaných rastrových dat použijeme parametr 'cat', např.
 
> lu <- readRAST6('landuse96_28m', cat = TRUE)
> summary(lu)
 
<pre>
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
</pre>
 
Poznámka: Statistika kategorií odpovídá příkazu <code>r.stats -lc</code>.
 
> system('r.stats -lc input=landuse96_28m --q')
 
<pre>
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
</pre>
 
Rastrové vrstvy lze kombinovat, např.
 
> elev_lu <- readRAST6(c('elevation', 'landuse96_28m'), cat = c(FALSE, TRUE))
> summary(elev_lu)
<pre>
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 
</pre>
 
Informace o atributech vytiskne také funkce <code>table()</code>.
 
> table(elev_lu$landuse96_28m)
 
<pre>
                      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
</pre>
 
== Přístup k vektorovým datům ==
 
Pro čtení vektorových dat se používá funkce <code>readVECT6()</code>.
 
> geology <- readVECT6('geology')
> summary(geology)
 
<pre>
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                                         
</pre>
 
Základní informace o typu vektorových prvků poskytuje funkce <code>vInfo()</code>.
 
> 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')
 
<pre>
nodes=4556
points=0
lines=0
boundaries=3649
centroids=1832
areas=1832
islands=907
faces=0
kernels=0
primitives=5481
map3d=0
</pre>
 
== Související články ==
 
* [[153YZOD Zpracování obrazových dat - cvičení 13|Zpracování obrazových dat - cvičení 13 (Úvod do GRASS/R)]]
 
== Externí odkazy ==
 
* [http://cran.r-project.org/doc/manuals/R-intro.pdf An introduction to R]
 
 
* [http://cran.mirroring.de/web/packages/spgrass6/spgrass6.pdf Manuál spgrass6]
* [http://www.stanford.edu/~cengel/spatialanthro/archives/R_GRASS_Spatial.pdf R, GRASS, and Spatial Analysis]
* [http://grass.osgeo.org/newsletter/GRASSNews_vol3.pdf GRASS Newsletter vol. 3]
** Roger Bivand: Interfacing GRASS 6 and R
* [http://www.osgeo.org/files/journal/final_pdfs/OSGeoJournal_vol1.pdf OSGeo Journal Volume 1]
** Roger Bivand: Using R - GRASS interface
* [http://grass.osgeo.org/statsgrass/grass_geostats.html Short Introduction to Geostatistical and Spatial Data Analysis with GRASS and R statistical data language] by Markus Neteler
* [http://mpa.fbk.eu/markus/shortcourse/index.html GRASS Short Course] by M. Neteler
** Session 6: GRASS/R/PostgreSQL
* [http://www.google.com/url?q=http://eusoils.jrc.ec.europa.eu/esdb_archive/eusoils_docs/other/EUR22904en.pdf&ei=D-ESS_7lMZyMsAb35eiVAw&sa=X&oi=unauthorizedredirect&ct=targetlink&ust=1259530263818203&usg=AFQjCNG1Q7V9NlQ_6VMYZ9v8-fx0VfrA7A Practical Guide to Geostatistical Mapping] by Tomislav Hengl
* [http://spatial-analyst.net/wiki/index.php?title=Main_Page spatial-analyst.net]
* [http://www.bias-project.org.uk/ASDARcourse/ One-day introductory course on Spatial Data Analysis with the R Programming Language] by Roger Bivand
* [http://casoilresource.lawr.ucdavis.edu/drupal/node/100 R: advanced statistical package] by Dylan Beaudette
* [http://www.wun.ac.uk/ggisa/seminars/archive/spring09_program/documents/bivnd_pres.pdf An introduction to handling spatial data in R using sp classes] by Roger Bivand
* [http://grass.osgeo.org/wiki/R_statistics R statistics]
 
{{GFOSS}}
{{GRASS}}

Aktuální verze z 10. 9. 2013, 20:08