0.
!
!
1 km
Occupied Psilon
Colonized Psilon
0.5
0.5
1 km
1 km
2008
Section 2
Section 9
Section 6
!
1 plant
0.5
1 km
Why
use
R?
Simplicity
ArcGIS
is
hard
to
learn
The
simplest
map
requires
no
data
les
More
control
over
features
R
help
is
amazing
Why
use
R?
Simplicity
ArcGIS
is
hard
to
learn
The
simplest
map
requires
no
data
les
More
control
over
features
R
help
is
amazing
Repeatability
Run
the
same
script
and
produce
the
same
map
ArcGIS
version
incompatibilities
Why
use
R?
Simplicity
ArcGIS
is
hard
to
learn
The
simplest
map
requires
no
data
les
More
control
over
features
R
help
is
amazing
Repeatability
Run
the
same
script
and
produce
the
same
map
ArcGIS
version
incompatibilities
FREE!
No
licenses
or
complications,
available
wherever
you
are
Created
with
ArcMap
r
Powerful,
but
messy
if
you
dont
know
what
you
are
doing
23
260
520
1,040
Kilometers
East
West
Made
with
ArcGIS
Dicult
to
control
what
appears
in
the
legend
Annoying
lines
if
you
tell
points
to
not
overlap
Sampled Populations
23
260
520
1,040
Kilometers
East
West
CNA
EEU
WNA
ENA
WEU
0
260
520
1,040
Kilometers
Not
easily
reproducible
Bits
of
Canada
above
Maine
now
missing
Legend
forgotten
Text
and
shading
added
via
photoshop
Sampled Populations
23
260
520
1,040
Kilometers
East
West
CNA
Sampled
Populations
EEU
WNA
ENA
WEU
0
260
520
1,040
Kilometers
CNA
WNA
EEU
ENA
WEU
0
300 600
1,200
Kilometers
Created
with
R
library(maps)
library(mapdata)
map("worldHires","Canada,
xlim=c(-141,-53),
ylim=c(40,85),
col="gray90",
fill=TRUE)
Only
three
lines
of
code!
Created
with
R
library(maps)
library(mapdata)
library(mapproj)
map("worldHires","Canada,
xlim=c(-141,-53),
ylim=c(40,85),
col="gray90",
fill=TRUE,
projection="conic",
param=35))
Tools
of
the
Trade
library(sp)
data
#classes and methods for spatial
library(scales)
#for transparency
library(mapplots)
#data visualization on maps
library(mapdata)
#contains basic data to go along
with 'maps' (topographic and geologic)
library(RgoogleMaps)
tiles in R
#overlays on Google map
library(sfsmisc)
#utilities from Seminar fuer
Statistik ETH Zurich
library(plotGoogleMaps) # plot SP data as HTML map
mashup over Google Maps
library(mapproj)
#for creating projected maps
library(ggmap)
#a package for spatial
visualization with Google Maps and OpenStreetMap
library(raster)
#tools to deal with raster maps
library(maptools)
#tools for reading and handling
spatial objects
gpclibPermit()
#allow general polygon clipping
library for R - library(gpclib)
library(maps)
#for creating geographical maps
library(rgeos)
#interface to geometry engine - open
source (GEOS)
library(rgdal)
#bindings for the geospatial data
abstraction library
library(GEOmap)
mapping
#topographic and geologic
library(plotrix)
#various plotting functions
Tools
of
the
Trade
(Optional)
Tools
of
the
Trade
Shapeles
Used
for
adding
additional
layers
of
data:
roads,
cities,
waterways,
species
ranges,
temperature
or
precipitation
gradients..
These
do
not
come
with
R
A
good
amount
of
GIS
data
is
freely
available
online
ESRI,
USGS,
GeoBC,
GeoGratis
Google
is
your
best
friend
Getting
started
1.
Load
libraries
2.
Read
in
data
3.
Plot
data
Getting
started
1.
Load
libraries
2.
Read
in
data
3.
Plot
data
library(maps)
library(mapdata)
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
Getting
started
1.
Load
libraries
Load
libraries
(in
this
case
that
loads
our
data
as
well)
2.
Read
in
data
3.
Plot
data
library(maps)
library(mapdata)
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
Getting
started
1.
Load
libraries
Load
libraries
(in
this
case
that
loads
our
data
as
well)
2.
Read
in
data
3.
Plot
data
library(maps)
library(mapdata)
The
map
function
draws
the
map
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
Getting
started
1.
Load
libraries
2.
Read
in
data
3.
Plot
data
Load
libraries
(in
this
case
that
loads
our
data
as
well)
Draw
this
data:
draw
the
country
of
Canada,
out
of
the
database
worldHires
library(maps)
library(mapdata)
The
map
function
draws
the
map
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
Getting
started
1.
Load
libraries
2.
Read
in
data
3.
Plot
data
Load
libraries
(in
this
case
that
loads
our
data
as
well)
Draw
this
data:
draw
the
country
of
Canada,
out
of
the
database
worldHires
Draw
the
map
to
cover
this
area:
from
longitude
-53
to
-141
and
latitude
40
to
85
library(maps)
library(mapdata)
The
map
function
draws
the
map
*Note
the
order!
xlim
is
for
LONGITUDE
ylim
is
for
LATITUDE
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
Getting
started
1.
Load
libraries
2.
Read
in
data
3.
Plot
data
Load
libraries
(in
this
case
that
loads
our
data
as
well)
Draw
this
data:
draw
the
country
of
Canada,
out
of
the
database
worldHires
Draw
the
map
to
cover
this
area:
from
longitude
-53
to
-141
and
latitude
40
to
85
library(maps)
library(mapdata)
The
map
function
draws
the
map
Make
the
map
gray
Fill
the
map
with
gray
(rather
than
an
empty
outline
of
gray)
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
library(maps)
library(mapdata)
map("worldHires","Canada, xlim=c(-141,-53), ylim=c(40,85), col="gray90, fill=TRUE)
You
could
stop
here
and
throw
everything
else
on
with
powerpoint
But
we
wont
do
that,
onward
with
R!
A
more
involved
example:
1.
Load
libraries
library(sp)
#classes and methods for spatial data
library(maptools)
#tools for reading and handling
gpclibPermit()
#allow general polygon clipping library for R - library(gpclib)
library(maps)
#for creating geographical maps
library(mapdata)
#contains basic data to go along with 'maps' (topographic and geologic)
library(sfsmisc)
#utilities from Seminar fuer Statistik ETH Zurich
library(mapproj)
#for creating projected maps
library(raster)
#tools to deal with raster maps
library(rgeos)
#interface to geometry engine - open source (GEOS)
library(rgdal)
#bindings for the geospatial data abstraction library
library(scales)
#for transparency
spatial objects
2.
Read
in
data:
shapeles
and
GPS
points
readShapePoly
read
in
a
polygon
shape
layer
This
means
the
layer
is
of
type
polygon
i.e.
not
lines,
such
as
roads
or
rivers
readShapeLines
;
readShapePoints
read
in
a
line
or
point
shape
layer
pcontorta <- readShapePoly("~/Documents/My Documents/UBC/Research/LodgepoleData/pinucont/pinucont.shp)
roads2011 <- readShapeLines("/Users/Kim/Documents/My Documents/Taylor Lab/SideProject/R_Analyses/Maps/
MiscGISdata/VA_2011_PriSecRoads/tl_2011_51_prisecroads.shp")
2.
Read
in
data:
shapeles
and
GPS
points
readShapePoly
read
in
a
polygon
shape
layer
This
means
the
layer
is
of
type
polygon
i.e.
not
lines,
such
as
roads
or
rivers
readShapeLines
;
readShapePoints
read
in
a
line
or
point
shape
layer
pcontorta <- readShapePoly("~/Documents/My Documents/UBC/Research/LodgepoleData/pinucont/pinucont.shp)
roads2011 <- readShapeLines("/Users/Kim/Documents/My Documents/Taylor Lab/SideProject/R_Analyses/Maps/
MiscGISdata/VA_2011_PriSecRoads/tl_2011_51_prisecroads.shp")
Read
in
your
data,
as
you
would
any
other
.csv
le
For
GPS
points,
must
have
columns
individually
for
latitude
and
longitude
Must
be
in
decimal
degrees
samps <- read.csv("~/Documents/My Documents/UBC/Research/FieldWork/Summer2012/
FieldData_2012.csv", header=TRUE, stringsAsFactors=T, strip.white=TRUE, na.strings=c("NA",
"na", "nan", "inf", "", "."))
3.
Create
the
Map
Several
steps:
1.
Plot
the
base
map
This
will
be
the
nal
shape
and
size
of
your
full
map
2.
Plot
layers
or
data
onto
this
map
Add
your
shape
les
or
data
points
Plotting
occurs
in
order,
unless
you
use
transparency,
you
will
cover
things
up
3.
Add
any
nal
touches
youd
like
*Remember
to
use
add=TRUE
for
every
step
after
the
rst
Lets
map
the
range
of
lodgepole
pine
and
some
sample
sites:
1.
Plot
Map
map("worldHires",
"Canada",
xlim=c(-140,-110),
ylim=c(48,64),
col="gray90",
fill=TRUE)
1.
Plot
Map
map("worldHires",
"usa",
xlim=c(-140,-110),
ylim=c(48,64),
col="gray95",
fill=TRUE,
add=TRUE)
2.
Add
layers
plot(pcontorta,
add=TRUE,
xlim=c(-140,-110),
ylim=c(48,64),
col=alpha("darkgreen",
0.6),
border=FALSE)
2.
Add
layers
points(samps$Long,
samps$Lat,
pch=19,
col="red",
cex=1)
!
!
!
!
!
3.
Add
extras
map.scale(-127, 63.5,
ratio=FALSE,
relwidth=0.2,
cex=1.2)
*Note:
This
is
an
unprojected
map,
placement
of
the
scale
bar
is
important,
as
it
will
change
size
north
to
south
200
400 km
!
!
!
!
!
Zoomed
In
#plot map
map("worldHires","Canada", xlim=c(-123.5,-120.5),ylim=c(49,50.8), col="gray90", fill=TRUE)
map("worldHires","usa", xlim=c(-140,-110),ylim=c(48,64), col="gray95", fill=TRUE, add=TRUE)
Cache Creek
#plot species range
plot(pcontorta, add=TRUE,
xlim=c(-140,-110),
ylim=c(48,64), col=alpha("darkgreen",
0.6), border=FALSE)
Ashcroft
Lillooet
20
40
60 km
Logan Lake
!
#map cities
map.cities(country="Canada",
label=TRUE, cex=1, xlim=c(-140,-110),
ylim=c(48,64),
pch=20)
Pemberton
!
Whistler
Merritt
#plot field data
points(samps$Long, samps$Lat, pch=4,
col="red", cex=0.8)
Squamish
#put a scale on the map
map.scale(-123.3, 50.7, ratio=FALSE,
relwidth=0.2, cex=1.2)
box()
Lions Bay
Gibsons
Princeton
Hope
!
!
Vancouver
Kent
Walnut Grove
Chilliwack
Aldergrove
Abbotsford Cultus Lake
White Rock Fort Langley
!
Create
a
Projected
Map
More
Realistic
Unprojected
map(database="world", xlim=c
(-170,-10),ylim=c
(45,83),resolution=0,
col="grey80,
fill=TRUE)
Projected
library(mapproj)
map(database="world",xlim=c
(-170,-20), ylim=c(65,83),
projection="gilbert",
fill=T,col="grey80",
orientation=c(90,0,225),
resolution=0)
Plotting
points
on
a
projected
map
#plotting the map, note the 'orientation' which appears to be necessary for
points and map to match up.
map(database="world",ylim=c(45,90),xlim=c(-160,-50),
projection="gilbert", fill=T,col="grey80", orientation=c(90,0,225),
resolution=0, lwd=0.5)
lon<-c(-72,-66,-107,-154) #fake longitude vector
lat<-c(81.7,64.6,68.3,60) #fake latitude vector
Plotting
points
on
a
projected
map
#plotting the map, note the 'orientation' which appears to be necessary for
points and map to match up.
map(database="world",ylim=c(45,90),xlim=c(-160,-50),
projection="gilbert", fill=T,col="grey80", orientation=c(90,0,225),
resolution=0, lwd=0.5)
lon<-c(-72,-66,-107,-154) #fake longitude vector
lat<-c(81.7,64.6,68.3,60) #fake latitude vector
#converting your points
to projected lat/lon
coord<-mapproject(
lon,lat,
proj="gilbert",
orientation=c(90,0,225))
points(coord,
pch=21,cex=1.2)
#plot converted points
onto map
Plotting
points
on
a
projected
map
#plotting the map, note the 'orientation' which appears to be necessary for
points and map to match up.
map(database="world",ylim=c(45,90),xlim=c(-160,-50),
projection="gilbert", fill=T,col="grey80", orientation=c(90,0,225),
resolution=0, lwd=0.5)
lon<-c(-72,-66,-107,-154) #fake longitude vector
lat<-c(81.7,64.6,68.3,60) #fake latitude vector
#converting your points
to projected lat/lon
coord<-mapproject(
lon,lat,
proj="gilbert",
orientation=c(90,0,225))
points(coord,
pch=21,cex=1.2)
#plot converted points
onto map
*Note:
there
is
currently
no
capability
to
plot
a
scale
bar
on
a
projected
map,
but
grid
lines
can
be
plotted
map("state", add=TRUE, col="gray")
map("state","Virginia", add=TRUE, col="black")
points(-80.523326, 37.375409, pch="*", col="red", cex=3)
Can
create
insets
See
layout
in
the
graphics
package
Adding
Text
and
Detail
#main roads, Virginia
plot(roads2011, add=TRUE, xlim=c(-80.69,-80.341),ylim=c(37.215,37.45), col="light gray", lwd=0.8)
#Giles county roads
plot(gilesdetail2, add=TRUE, xlim=c(-80.69,-80.341),ylim=c(37.215,37.45), col="light gray", lwd=0.8)
#Craig county roads
plot(craigdetail, add=TRUE, xlim=c(-80.69,-80.341),ylim=c(37.215,37.45), col="light gray", lwd=0.8)
#Giles county line
plot(gilessub, add=TRUE, xlim=c(-80.69,-80.341),ylim=c(37.215,37.45), col="dark gray", lwd=2)
#Craig county line
plot(craigsub, add=TRUE, xlim=c(-80.69,-80.341),ylim=c(37.215,37.45), col="dark gray", lwd=2)
text(-80.496,37.377, "Mountain Lake", cex=1.6)
text(-80.496,37.3705, "Biological Station", cex=1.6)
text(-80.415,37.36, "Craig County", cex=1.7)
text(-80.6,37.36, "Giles County", cex=1.7)
Giles County
Mountain Lake
Biological Station
Craig County
!!
!
!
!!!
!!
!!!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!
!
!
!
!!!!!
!!!!!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!
!!
!!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!!!!!
!
!!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!!
!!
!!
!
!
*
!
Giles County
Mountain Lake
Biological Station
!!!
!
!
!
!!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!!!! !!!! ! !
!
!
!
!
!
!
!
!
!
!
!!!!
!
!!
!!!
!!!!
!!!
!!
!!!
!
!
!!
!!!! !
!
!!! !
!
!
!
!
!
!
!
!!!
!
!
!
!
!!
!!
!!
!! !
!
!
!!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!!
! !!!
!!
!
!
!!!
!
!
!
!!!!!!
!
!
!!!!!
!!!
!!!
!
!!
!!
!
!
!
!
!
!
!
!
!
!
!!!! !
! !
!!!!
!
!!!!!!!!!!!!!
!
!
!
!
!
!
! !
!
!
!
!
!
!
!!!! !
!!!
!!!
!
!
! !!!!
!
!
! !
!
!
!
!
!!!
!
!
!
!
!
!
!
!
!!!
! !
!
!!
!
!
!
!
!
!!!
!!!!
!
!
!
!
!!
!!
!
!
!
!!!
! !!!
!!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!!
!!
!
!
!
!!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!
!!
!!
!
!
!!
!
!
!
!
!
!!!
!!! !
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!
!
!
!!!!!
!
!!!
!
!
!
!
!
!
!!!
!
!!!!
!! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!!!!!
!
!
!
!
!
!!!!!
!
!!!
!
!
!
!
!!!
!
!!!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!!!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
Craig County
!!!!!!
!!
!
!
!!!
!
!
!
!
!
!!!!!
!!
!
!!! !!!!!!!! !
!
!!!!!
!
!!!!
!!!
!!!!
!
!
!
!
!
!!
!
!
!
! !
!
! !
!
!
!
!
Scaled
Point
Sizes
and
Types
points(pops2$W, pops2$N, pch=20, col="red3", cex=sqrt(pops2$Plants))
points(pops2$W, pops2$N, pch=20, col=as.numeric(pops2$Subsection),
cex=sqrt(pops2$Plants))
!!
!
!
!
!
!!
!
!!
!
!
!
!
!!
!!
!
!
!
!
!
!!
!
!
!
!
!!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!!
!
! !
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!!
!
!
!
!
!
!
! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
Giles County
!
!
!
!
!
!
!
!
Mountain Lake
Biological Station
!!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
Craig County
!
!
!
!
!
!
!
!!
!
!
!
!
!
!!
!
!
!
!!
!
!
!!
!
!
!
!!
!!
!
!
!!
!
!
! ! !
!
!!
!
!
!
!
!!
!
!
!
!!!!
!
!!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!!
!
!
!
! !
!
!
!! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!!
!
!
!
! !!
!
!
!
!
!
!
!
!
!!
!
!
!
!!
!
!
!!
!
!
!
! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!!
!! !
!
!!
!!
!
!
!
! !
!
!
!
!
!!
!!
!
!
!
!
!
!!
!!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!
!
!
!
!
!
!!
!
!
!
!!
!!
!
!
!!!!
!
!
!
!
!
!! !
!
!
! ! !!
!!
!
!
! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!! !!!!
!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!!
!!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
! !
!
!!
!
!
!
!
! !
!!
!
!
!
! !
!
!!
!
!
!
!
!
!
!
!
!
!!!
!!
!
!
!
!!
!!
!! !
!!
!!
!! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Craig County
!
!!!
! !
!
!
!
!
!
!!
!
!
!
!!!
!!
!
!
!
!
!
! !!
Using
Transparency
library(scales) #for transparency
points(slat08$Long, slat08$Lat, pch=pch20, col=c(alpha(slat08$col2,0.6), alpha
(slat08$col2,0.8)), cex=sqrt(slat08$GenoPop))
0.5
!
!
1 km
0.5
0.5
1 km
1 km
2008
Occupied Psilon
Colonized Psilon
Section 2
!
0.5
1 km
1 plant
! 10 plants
! 20 plants
0
2010
Section 9
Section 6
0.5
1 km
0.5
1 km
Plotting
Pie
Charts
Libraries:
mapplots
or
plotrix
Functions:
add.pie
or
oating.pie
(respectively)
Plotting
Pie
Charts
Libraries:
plotrix
or
mapplots
Functions:
oating.pie
or
add.pie
(respectively)
floating.pie(5, 48, x=c(0.001,5), radius=5, col=c("orange", "blue"))
x position
(longitude)
y position
(latitude)
values for sectors
of the pie chart
radius of the pie chart
(i.e. scale by this size)
*Note:
oating.pie
cannot
accept
zeros
(when
one
pie
chart
is
of
only
one
type)
Plotting
Pie
Charts
Libraries:
mapplots
or
plotrix
Functions:
add.pie
or
oating.pie
(respectively)
add.pie(x=2, y=48, z=c(4,10), radius=5)
x position
(longitude)
y position
(latitude)
values for sectors
of the pie chart
radius of the pie chart
(i.e. scale by this size)
Plotting
Pie
Charts
Libraries:
mapplots
or
plotrix
Functions:
add.pie
or
oating.pie
(respectively)
floating.pie(5, 48, x=c(0.001,5), radius=5, col=c("orange", "blue"))
add.pie(x=2, y=48, z=c(4,10), radius=5)
1000
2000 km
Final
Touches
Print
to
a
.pdf,
arrange
layout,
create
a
border
edge
pdf("~/Documents/My_Documents/UBC/Research/FieldWork/Summer2012/
SamplingMap_PcontRange.pdf")
Make
the
map
here
Can
use
layout
settings
to
plot
multiple
maps
together
box() #put a box around the map
dev.off()
RgoogleMaps
A
package
in
R
to
plot
data
onto
maps
from
Google
Im
still
new
at
RgoogleMaps
Two
main
functions:
GetMap()
GetMap.bbox()
The
second
one
takes
care
of
some
of
the
overhead
Plots
straight
to
an
output
le
Not
sure
about
shapeles
yet
Another
map
of
BC
#define our map's range
lat <- c(48,64)
lon <- c(-140,-110)
#tell what point to center on
center = c(mean(lat), mean(lon))
#zoom: 1 = furthest out (entire globe),
larger numbers = closer in
zoom <- 5
terrmap <- GetMap(
center=center,
zoom=zoom,
maptype= "terrain",
destfile = "terrain.png")
#lots of visual options for maptype, just like
google maps: "roadmap", "mobile", "satellite",
"terrain", "hybrid", "mapmaker-roadmap",
"mapmaker-hybrid
Add
our
data
samps <- read.csv("~/Documents/My Documents/UBC/Research/FieldWork/Summer2012/
FieldData_2012.csv", header=TRUE, stringsAsFactors=T, strip.white=TRUE, na.strings=c("NA", "na",
"nan", "inf", "", "."))
#want to make a data frame of just points and their visualizations
samps$size <- "small
samps$col <- "red
samps$char <- "
mymarkers <- cbind.data.frame(samps$lat, samps$lon, samps$size, samps$col, samps$char)
names(mymarkers) <- c("lat", "lon", "size", "col", "char")
mymarkers <- mymarkers[c(1:18,50:64),] #taking a subset because it craps out when I use all of
the data
Plot
our
data
samps <- read.csv("~/Documents/My Documents/UBC/Research/FieldWork/Summer2012/
FieldData_2012.csv", header=TRUE, stringsAsFactors=T, strip.white=TRUE, na.strings=c("NA", "na",
"nan", "inf", "", "."))
#want to make a data frame of just points and their visualizations
samps$size <- "small
samps$col <- "red
samps$char <- "
mymarkers <- cbind.data.frame(samps$lat, samps$lon, samps$size, samps$col, samps$char)
names(mymarkers) <- c("lat", "lon", "size", "col", "char")
mymarkers <- mymarkers[c(1:18,50:64),] #taking a subset because it craps out when I use all of
the data
lat <- c(48,60)
lon <- c(-140,-110)
center = c(mean(lat), mean(lon))
zoom <- 5
satclose <- GetMap.bbox(lonR= range(lon),
latR= range(lat),
center= c(50, -122),
destfile= "satclose.png",
markers= mymarkers,
zoom=8,
maptype="satellite")
Plot
our
data
samps <- read.csv("~/Documents/My Documents/UBC/Research/FieldWork/Summer2012/
FieldData_2012.csv", header=TRUE, stringsAsFactors=T, strip.white=TRUE, na.strings=c("NA", "na",
"nan", "inf", "", "."))
#want to make a data frame of just points and their visualizations
samps$size <- "small
samps$col <- "red
samps$char <- "
mymarkers <- cbind.data.frame(samps$lat, samps$lon, samps$size, samps$col, samps$char)
names(mymarkers) <- c("lat", "lon", "size", "col", "char")
mymarkers <- mymarkers[c(1:18,50:64),] #taking a subset because it craps out when I use all of
the data
lat <- c(48,60)
lon <- c(-140,-110)
center = c(mean(lat), mean(lon))
zoom <- 5
satclose <- GetMap.bbox(lonR= range(lon),
latR= range(lat),
center= c(50, -122),
destfile= "satclose.png",
markers= mymarkers,
zoom=8,
maptype="satellite")
Another
version
samps$size <- "large
lat <- c(48,60)
lon <- c(-140,-110)
center = c(mean(lat), mean(lon))
zoom <- 5
terrfar <- GetMap.bbox(
lonR= range(lon),
latR= range(lat),
center= c(51, -122),
destfile= "terrfar.png",
markers= mymarkers2,
zoom=7,
maptype="terrain")
And
the
best
part
about
R,
there
will
be
more
every
day!