|
|
(Není zobrazeno 12 mezilehlých verzí od stejného uživatele.) |
Řádek 1: |
Řádek 1: |
| Tato stránka je věnována propojení [[GRASS GIS]] a [http://www.r-project.org R].
| | {{freegis|GRASS GIS / Propojení s R}} |
| | |
| [[Image:Rlogo.png|100px|left]]
| |
| [http://www.r-project.org R] je programovací jazyk a prostředí určené pro ''statistickou analýzu dat a jejich grafické zobrazení''. Jde o implementaci programovacího jazyka [http://en.wikipedia.org/wiki/S_(programming_language) S] pod svobodnou licencí. R již předstihlo počtem uživatelů komerční S a stalo se faktickým standardem v řadě oblastí statistiky.
| |
| | |
| Používá se z příkazové řádky, existuje však několik frontendů s grafickým rozhraním jako [http://en.wikipedia.org/wiki/RKWard RKWard], [http://en.wikipedia.org/wiki/R_Commander R Commander] nebo rozšíření do OpenOffice.org Calc [http://extensions.services.openoffice.org/project/R4Calc R4Calc].
| |
| | |
| R bývá také propojováno či využíváno v komerčních softwarech, např. v prostředí [http://cs.wikipedia.org/wiki/PASW PASW] mohou uživatelé přímo psát a spouštět programy v jazyce R nad otevřenými daty.
| |
| | |
| Další informace na [http://en.wikipedia.org/wiki/R_(programming_language) wikipedii].
| |
| __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 vrstev 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 <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>
| |
| | |
| == 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
| |
| | |
| {{GFOSS}}
| |
| {{GRASS}}
| |