Spatial and Spatio-Temporal Data In: Edzer Pebesma
Spatial and Spatio-Temporal Data In: Edzer Pebesma
1.6 Logovarianten
ifgi
Institute for Geoinformatics
University of Mnster
Edzer Pebesma
Logo fr den Einsatz in nationalen bzw.
deutschsprachigen Prsentationen.
Einsatzbereiche: Briefbogen, Visitenkarte,
Titelbltter etc.
Mindestgre 45 mm Breite
ifgi
Institut fr Geoinformatik
Universitt Mnster
http://ifgi.uni-muenster.de/~epebe_01/R/
1 / 26
Overview
2 / 26
> m = matrix(rnorm(6), 2, 3)
> print(m, digits=3)
> c = 1:3
> c
[,1]
[,2]
[,3]
[1,] 0.415 0.735 -0.171
[2,] -1.115 -0.540 -1.029
[1] 1 2 3
> dim(m)
> typeof(c)
[1] 2 3
[1] "integer"
> d = 1.5:3.5
> d
[1] 5 7 9
4 / 26
lists, data.frame
a[[1]] = 1:2
b = as.data.frame(a)
names(b) = c("NR", "what", "cond")
b
1
2
NR what cond
1 foo TRUE
2 bar FALSE
> is.list(b)
[1] TRUE
[1] 1 2 3
> a$x
[1] "foo" "bar"
5 / 26
Selection on data.frame
> b
NR what cond
1 1 foo TRUE
2 2 bar FALSE
> b[[1]]
> b[1,]
1
> b[,1:2]
[1] 1 2
> b[["NR"]]
[1] 1 2
> b$NR
[1] 1 2
1
2
NR
1
2
NR what
1 foo
2 bar
> b[,1]
[1] 1 2
> b[,1,drop=FALSE]
> b[1]
1
2
NR what cond
1 foo TRUE
1
2
NR
1
2
6 / 26
> b
1
2
NR what cond
1 foo TRUE
2 bar FALSE
what cond
foo TRUE
bar FALSE
> b[-1,]
2
what cond
bar FALSE
1
2
> b[1,1] = NA
> b
what cond cond2
1 <NA> TRUE FALSE
2 bar FALSE TRUE
> class(b$what)
[1] "factor"
> b$what
[1] <NA> bar
Levels: bar foo
> as.numeric(b$what)
7 / 26
>
>
>
>
SpatialPoints
SpatialLines
SpatialPolygons
SpatialPixels
SpatialGrid
library(sp)
library(rgdal)
p = SpatialPoints(cbind(lon = 8, lat = 52), CRS("+init=epsg:4326"))
p
SpatialPoints:
lon lat
[1,]
8 52
Coordinate Reference System (CRS) arguments: +init=epsg:4326
+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84
+towgs84=0,0,0
8 / 26
>
>
>
>
+
library(sp)
data("meuse")
coordinates(meuse) <- ~x+y
spplot(meuse["zinc"],
col.regions = bpy.colors())
[113,458.2]
(458.2,803.4]
(803.4,1149]
(1149,1494]
(1494,1839]
9 / 26
14
> names(meuse)[1:6]
[1] "x"
>
>
>
>
>
>
"y"
"cadmium" "copper"
"lead"
"zinc"
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"
10 / 26
extraction of variables:
> meuse$zinc[1:3]
[1] 1022 1141
640
replacement:
> meuse$zinc[1:2] = NA
> meuse[1:3,1:6]
x
y cadmium copper lead zinc
1 181072 333611
11.7
85 299
NA
2 181025 333558
8.6
81 277
NA
3 181165 333537
6.5
68 199 640
11 / 26
Aggregation, in general
> d = data.frame(x = 1:6, grp1 = c(rep("A",3), rep("B",3)))
> d$grp2 = rep(c("P","Q","R"), each = 2)
> d
1
2
3
4
5
6
x grp1 grp2
1
A
P
2
A
P
3
A
Q
4
B
Q
5
B
R
6
B
R
Group.1 x
A 2
B 5
Group.1 Group.2
x
A
P 1.5
A
Q 3.0
B
Q 4.0
B
R 5.5
12 / 26
Aggregation, needs:
## S3 method for class 'data.frame'
aggregate(x, by, FUN, ..., simplify = TRUE)
I
NOTE that
I
13 / 26
>
>
>
>
>
+
>
>
>
+
+
+
library(sp)
data("meuse")
coordinates(meuse) <- ~x+y
offset = c(178460, 329620)+20
gt = GridTopology(offset, c(400,400),
c(8,11))
SG = SpatialGrid(gt)
agg = aggregate(meuse["zinc"], SG)
spplot(agg["zinc"],
col.regions=bpy.colors(),
sp.layout = list("sp.points",
meuse, col=3))
1600
1400
1200
1000
800
600
400
200
14 / 26
7.5
>
>
>
>
>
>
>
>
+
>
library(sp)
data("meuse")
coordinates(meuse) <- ~x+y
data("meuse.grid")
coordinates(meuse.grid) <- ~x+y
gridded(meuse.grid) <- TRUE
library(gstat)
x = idw(log(zinc)~1, meuse,
meuse.grid, debug.level=0)[1]
spplot(x[1],col.regions=bpy.colors())
7.0
6.5
6.0
5.5
5.0
6.8
6.6
6.4
6.2
6.0
5.8
5.6
5.4
5.2
16 / 26
(7.5,8]
(7,7.5]
(6.5,7]
(6,6.5]
(5.5,6]
(5,5.5]
(4.5,5]
[4,4.5]
Spatio-temporal classes
plotting
18 / 26
staid
lon
lat elev_1m data_source station_name
1 14.80 56.86667
166
ECA
VAEXJOE
10 18.05 59.35000
44
ECA
STOCKHOLM
19 / 26
library(spacetime)
m = stConstruct(dprec, c("lon", "lat"), "time")
#, crs = CRS("+init=epsg:4326"))
m2 = as(m, "STFDF")
summary(m2[,,"prec"])
20 / 26
plot: map-panel
prec
20110701
20110702
20110703
20110704
20110705
20110706
20110707
20110708
20110709
20110710
20110711
20110712
20110713
20110714
>
>
>
>
+
data(NLpol) # in meteo!
20110716
20110717
20110718
20110719
20110720
20110721
proj4string(m2) = proj4string(NLpol)20110715
m2.NL = m2[NLpol,]
stplot(m2.NL[,,"prec"],
20110722
20110723
20110724
20110725
20110726
20110727
20110728
col.regions = bpy.colors())
[0,5.12]
(5.12,10.24]
(10.24,15.36]
(15.36,20.48]
(20.48,25.6]
(25.6,30.72]
(30.72,35.84]
(35.84,40.96]
(40.96,46.08]
(46.08,51.2]
(51.2,56.32]
(56.32,61.44]
(61.44,66.56]
(66.56,71.68]
(71.68,76.8]
20110729
20110730
20110731
21 / 26
60
Jul 25
50
40
Jul 18
time
30
Jul 11
20
10
Jul 04
0
9
113
0
15
17
19
21
27
29
41
45
61
63
65
69
75
83
85
87
91
93
103
109
119
123
133
141
143
151
155
161
163
167
175
193
195
197
205
206
207
213
215
217
219
229
235
241
245
247
255
258
259
267
271
275
289
295
301
305
308
309
310
320
324
326
342
346
350
352
358
374
382
384
386
388
390
392
400
404
406
412
420
422
430
440
446
448
450
464
470
476
482
488
490
492
494
510
518
526
532
sp.ID
22 / 26
60
40
prec
1467
1539
1807
1957
2163
2169
2770
3317
3427
3625
3913
4345
4476
4625
4761
4951
5524
5730
5848
5956
6356
20
Jul 04
Jul 11
Jul 18
Jul 25
Aug 01
time
23 / 26
time-panel
prec
Jul 04 Jul 18
Jul 04 Jul 18
1467
1539
1807
1957
2163
2169
2770
3317
3427
3625
60
40
20
0
prec
60
40
20
0
3913
4345
4476
4625
4761
4951
5524
5730
5848
5956
60
40
20
0
60
40
20
0
6356
60
40
20
0
Jul 04 Jul 18
time
24 / 26
prec
20110701 20110706 20110711 20110716
[0,8.84]
(8.84,17.68]
(17.68,26.52]
(26.52,35.36]
(35.36,44.2]
(44.2,53.04]
(53.04,61.88]
(61.88,70.72]
(70.72,79.56]
(79.56,88.4]
(88.4,97.24]
(97.24,106.1]
(106.1,114.9]
(114.9,123.8]
(123.8,132.6]
25 / 26
5
0
10
15
20
m2.aggNL
Jul 01
2011
Jul 11
2011
Jul 18
2011
Jul 25
2011
Jul 31
2011
26 / 26