-
Notifications
You must be signed in to change notification settings - Fork 0
/
01c - Calc Sea distances.R
71 lines (53 loc) · 2.24 KB
/
01c - Calc Sea distances.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# R code from the manuscript
# Title: "A multi-locus demo-genetic simulator to model local adaptation in heterogeneous landscapes"
# Authors: Marco Andrello, Christelle Noirot, Florence Débarre and Stéphanie Manel
# Submitted to: Molecular Ecology Resources
# Date: 05 Aug 2019
# "01c - Calc distancesR"
# Code to calculate least-cost marine distances and salinity differences
# between demes in the example on Mullus surmuletus
# Marco Andrello
# 05/08/2019
rm(list=ls())
library(raster)
library(rgdal)
library(rgeos)
library(gdistance)
#########################################################################
# calculating least-cost marine distances
#########################################################################
# Load the raster of marine areas
# This should be already a conductance layer: Sea = 1, others (land) = 0
SeaRaster <- raster("Medi.tif")
# Warning: these calculation can take some minutes to complete!
# Create transition matrices based on conductance rasters
t <- transition(SeaRaster, function(x) mean(x), directions=8)
# Correct it for lat-long
t <- geoCorrection(t, type="c")
save(t,file="Transition_Medi.RData")
# Extract coordinates of the centroids of the demes
deme <- readOGR("Demes.shp")
# p <- gCentroid(deme,byid=T)
# write.csv(p,file="Centroids.csv")
# writeOGR(p,"centroids.shp",driver="ESRI Shapefile")
# # Shift centroids falling in land into water manually in QGis
# rm(p)
p <- readOGR("Centroids.shp")
# points(p@coords[,1],p@coords[,2])
# Calculating least-cost distances
# Warning: this calculation can take some minutes to complete!
sea_dist <- costDistance(t, p@coords)
sea_dist <- sea_dist / 1000
sea_dist <- as.matrix(sea_dist)
#########################################################################
# calculating salinity differences
#########################################################################
load("Salinity_data.RData")
salinity_diff <- dist(Salinity_per_deme[3,])
salinity_diff <- as.matrix(salinity_diff)
#########################################################################
# Save
#########################################################################
save(sea_dist,
salinity_diff,
file="Distances.RData")