Plates and coastlines reconstruction
Goals and introduction
The purpose of this vignette is to demonstrate the newly implemented elements of the chronosphere
. The primary feature of the package is to load published datasets of deep time paleogeography and implement functions that ease interacting with them. Paleogeographic data are available through the GPlates Web Service and through the repositories of the chronosphere
package. For instructions on installing the package, please click here.
Plate reconstructions
The ‘static plate’ polygons (plates rotated with time) can be accessed directly from the GPlates Web Service using the reconstruct()
function. For the demo we have chosen two ages that reflect a good match between PaleoDB occurrences and landmass distribution.
maps <- reconstruct("plates", age=c(300,295))
The function call create a list
class object with as many elements as many ages are given. Have a look at the object:
maps
## $`300`
## class : SpatialPolygonsDataFrame
## features : 87
## extent : -180, 180, -90, 69.6 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
## variables : 1
## names : FID
## min values : 0
## max values : 86
##
## $`295`
## class : SpatialPolygonsDataFrame
## features : 86
## extent : -180, 180, -90, 71.61 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
## variables : 1
## names : FID
## min values : 0
## max values : 85
The different elements corresponding to each age can be accessed separately with:
# accessing the first polygon object (300 Ma)
ma300 <- maps[[1]]
ma300
## class : SpatialPolygonsDataFrame
## features : 87
## extent : -180, 180, -90, 69.6 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
## variables : 1
## names : FID
## min values : 0
## max values : 86
The new ma300
object behaves like a regular SpatialPolygonsDataFrame
object from the sp
package. You can use its default methods to plot and manipulate the object
#plot
plot(ma300, col="gray")
The different elements can also be accessed by referring to their ages with character subscripts, i.e. quotation marks are required.
ma295 <- maps[["295"]]
plot(ma295, col="gray")
Coastlines
Coastlines can also be reconstructed via the web service. These can be accessed with.
coast <- reconstruct("coastlines", age=c(300,295))
This object has the same structure as the maps
object before, and also has named elements, that you can use for subsetting:
ma295 <- maps[["295"]]
coast295 <- coast[["295"]]
Plotting works with the methods implemented in the sp
package:
plot(ma295, col="gray", border=NA)
lines(coast295)
The reconstruct()
function allows reconstructions with multiple plate tectonic models. The default setting is PALEOMAP
that refers to the PaleoMAP project of C. Scotese (v3, 2018), but other models are available such as that of Seton et al. (2012).
Environmental variables
The primary goal of the package is to make raster-type environmental variables available directly from the R environment. These are hosted on a remote server, and can be downloaded whenever required. You can get the list of the currently available maps with the function dataindex()
.
ind <- dataindex()
## This function is deprecated, and will be removed in chronosphere v0.3.0.
## Please use datasets() instead.
head(ind)
## name dat var res
## 1 PALEOMAP Digital Elevation model paleomap dem 1.0
## 2 PALEOMAP Paleoatlas Paleorasters paleomap paleoatlas 0.1
## 3 PALEOMAP Paleoatlas Paleorasters paleomap paleoatlas 0.5
## 4 Paleobiology Database pbdb NA
## 5 Paleobiology Database pbdb NA
## 6 Continent Fragmentation index of Zaffos et al. 2017 timeseries fragment NA
## ver rotation licence proj4string date type
## 1 20190719 NA CC-BY-NC-ND NA 20180811 RasterArray
## 2 20160216v3 NA CC-BY-NC-ND NA 20160216 RasterArray
## 3 20160216v3 NA CC-BY-NC-ND NA 20160216 RasterArray
## 4 20191122 NA CC-BY NA 20191122 data.frame
## 5 20200217 NA CC-BY NA 20200217 data.frame
## 6 zaffos_et_al_2017 NA not formal NA 20170317 data.frame
## format separator public chronosphere.version
## 1 nc TRUE 0.2.0
## 2 nc TRUE 0.2.0
## 3 nc TRUE 0.2.0
## 4 rds TRUE 0.2.0
## 5 rds TRUE 0.2.0
## 6 csv comma TRUE 0.2.0
## url
## 1 https://www.earthbyte.org/paleodem-resource-scotese-and-wright-2018/
## 2 https://www.earthbyte.org/paleomap-paleoatlas-for-gplates/
## 3 https://www.earthbyte.org/paleomap-paleoatlas-for-gplates/
## 4 https://paleobiodb.org/
## 5 https://paleobiodb.org/
## 6 https://github.com/UW-Macrostrat/PNAS_201702297
## citation
## 1 Scotese, C. R. Wright, N. (2018). PALEOMAP Paleodigital Elevation Models (PaleoDEMS) for the Phanerozoic. URL: https://www.earthbyte.org/paleodem-resource-scotese-and-wright-2018/
## 2 Scotese, C. R. (2016) Tutorial: PALEOMAP PaleoAtlas for GPlates and the PaleoData Plotter Program. URL: https://www.earthbyte.org/paleomap-paleoatlas-for-gplates/
## 3 Scotese, C. R. (2016) Tutorial: PALEOMAP PaleoAtlas for GPlates and the PaleoData Plotter Program. URL: https://www.earthbyte.org/paleomap-paleoatlas-for-gplates/
## 4 Please remember to acknowledge the Paleobiology Database (http://paleobiodb.org) in your publication.
## 5 Please remember to acknowledge the Paleobiology Database (http://paleobiodb.org) in your publication.
## 6 Zaffos, A., Finnegan, S., & Peters, S. E. (2017). Plate tectonic regulation of global marine animal diversity. Proceedings of the National Academy of Sciences, 114(22), 5653–5658. https://doi.org/10.1073/pnas.1702297114
## comment
## 1
## 2 \\Caradocian map omitted - same date as Darriwillian\\
## 3 Resampled from 0.1
## 4
## 5
## 6
Currently the available variables are limited to the PaleoDEM (Scotese and Wright, 2018) and PaleoRaster series. The registry object includes the the name of the dataset, the name of the variable in question, spatial resolution, if applicable and the variables version. These are input parameters to the fetch()
function, that downloads and attached the selected data. The PaleoDEMS can be downloaded using the following command. Note: the argument dat
represents the downloaded dataset and var
represents the desired variable. All available ages will be downloaded with the above function call.
dems <- fetch(dat="paleomap", var="dem")
## If you use the data in publications, please cite its
## reference, as well as that of the 'chronosphere' package.
## - Scotese, C. R. Wright, N. (2018). PALEOMAP Paleodigital Elevation Models (PaleoDEMS) for the Phanerozoic. URL: https://www.earthbyte.org/paleodem-resource-scotese-and-wright-2018/
dems
## class : RasterArray
## RasterLayer properties:
## - dimensions : 181, 361 (nrow, ncol)
## - resolution : 1, 1 (x, y)
## - extent : -180.5, 180.5, -90.5, 90.5 (xmin, xmax, ymin, ymax)
## - coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
## Array properties:
## - dimensions : 109 (vector)
## - num. layers : 109
## - proxy:
## 0 5 10 15 20 25 30 35
## "dem_0" "dem_5" "dem_10" "dem_15" "dem_20" "dem_25" "dem_30" "dem_35"
## 40 45 50 55 60 65 70 75
## "dem_40" "dem_45" "dem_50" "dem_55" "dem_60" "dem_65" "dem_70" "dem_75"
## 80 85 90 95 100 105 110 115
## "dem_80" "dem_85" "dem_90" "dem_95" "dem_100" "dem_105" "dem_110" "dem_115"
## 120 125 130 135 140 145 150 155
## "dem_120" "dem_125" "dem_130" "dem_135" "dem_140" "dem_145" "dem_150" "dem_155"
## 160 165 170 175 180 185 190 195
## "dem_160" "dem_165" "dem_170" "dem_175" "dem_180" "dem_185" "dem_190" "dem_195"
## 200 205 210 215 220 225 230 235
## "dem_200" "dem_205" "dem_210" "dem_215" "dem_220" "dem_225" "dem_230" "dem_235"
## 240 245 250 255 260 265 270 275
## "dem_240" "dem_245" "dem_250" "dem_255" "dem_260" "dem_265" "dem_270" "dem_275"
## 280 285 290 295 300 305 310 315
## "dem_280" "dem_285" "dem_290" "dem_295" "dem_300" "dem_305" "dem_310" "dem_315"
## 320 325 330 335 340 345 350 355
## "dem_320" "dem_325" "dem_330" "dem_335" "dem_340" "dem_345" "dem_350" "dem_355"
## 360 365 370 375 380 385 390 395
## "dem_360" "dem_365" "dem_370" "dem_375" "dem_380" "dem_385" "dem_390" "dem_395"
## 400 405 410 415 420 425 430 435
## "dem_400" "dem_405" "dem_410" "dem_415" "dem_420" "dem_425" "dem_430" "dem_435"
## 440 445 450 455 460 465 470 475
## "dem_440" "dem_445" "dem_450" "dem_455" "dem_460" "dem_465" "dem_470" "dem_475"
## 480 485 490 495 500 505 510 515
## "dem_480" "dem_485" "dem_490" "dem_495" "dem_500" "dem_505" "dem_510" "dem_515"
## 520 525 530 535 540
## "dem_520" "dem_525" "dem_530" "dem_535" "dem_540"
The function returns an object of the RasterArray
class. This S4 class (still under intense development) is built on RasterStacks
and simulates base R arrays with RasterLayers
as elements. In other words, you can organize and subset individual RasterLayers
as if they were simple logical/numeric/character values that can be combined to build vectors, matrices, or multidimensional arrays. Typing the object name to the console will display the proxy object that symbolizes the structure of the RasterArray
representing every RasterLayer
with its name.
The dems
object is a one-dimensional array (practically a vector), where every element is a time slice-specific RasterLayer
(DEM). Subsetting rules are implemented to access these elements the same way as you would do it with base R objects. For instance, if you want to get the first element, you can use:
dems[1]
## class : RasterLayer
## dimensions : 181, 361, 65341 (nrow, ncol, ncell)
## resolution : 1, 1 (x, y)
## extent : -180.5, 180.5, -90.5, 90.5 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
## source : C:/Users/nussa/AppData/Local/Temp/Rtmpeom7H4/1_dem_20190719/1_dem_20190719_0.nc
## names : dem_0
## zvar : z
which immediately reduces to a simple RasterLayer, so you can treat it as such:
plot(dems[1])
The elements have the ages of the DEMs as names, and can also be subsetted as regular R vectors.
plot(dems["300"])
To access additional variables, you only have to vary the dat
, var
and sometimes the res
arguments of the package, depending on the resolutions are available.
pr <- fetch(dat="paleomap", var="paleoatlas", res=0.5)
## If you use the data in publications, please cite its
## reference, as well as that of the 'chronosphere' package.
## - Scotese, C. R. (2016) Tutorial: PALEOMAP PaleoAtlas for GPlates and the PaleoData Plotter Program. URL: https://www.earthbyte.org/paleomap-paleoatlas-for-gplates/
pr
## class : RasterArray
## RasterLayer properties:
## - dimensions : 360, 720 (nrow, ncol)
## - resolution : 0.5, 0.5 (x, y)
## - extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
## - coord. ref. : +proj=longlat
## Array properties:
## - dimensions : 89, 3 (nrow, ncol)
## - num. layers : 267
## - proxy:
## paleoatlas_R paleoatlas_G paleoatlas_B
## 0 "paleoatlas_0_R" "paleoatlas_0_G" "paleoatlas_0_B"
## 1 "paleoatlas_1_R" "paleoatlas_1_G" "paleoatlas_1_B"
## 4 "paleoatlas_4_R" "paleoatlas_4_G" "paleoatlas_4_B"
## 6 "paleoatlas_6_R" "paleoatlas_6_G" "paleoatlas_6_B"
## 10 "paleoatlas_10_R" "paleoatlas_10_G" "paleoatlas_10_B"
## 15 "paleoatlas_15_R" "paleoatlas_15_G" "paleoatlas_15_B"
## 20 "paleoatlas_20_R" "paleoatlas_20_G" "paleoatlas_20_B"
## 25 "paleoatlas_25_R" "paleoatlas_25_G" "paleoatlas_25_B"
## 30 "paleoatlas_30_R" "paleoatlas_30_G" "paleoatlas_30_B"
## 35 "paleoatlas_35_R" "paleoatlas_35_G" "paleoatlas_35_B"
## 40 "paleoatlas_40_R" "paleoatlas_40_G" "paleoatlas_40_B"
## 45 "paleoatlas_45_R" "paleoatlas_45_G" "paleoatlas_45_B"
## 50 "paleoatlas_50_R" "paleoatlas_50_G" "paleoatlas_50_B"
## 55 "paleoatlas_55_R" "paleoatlas_55_G" "paleoatlas_55_B"
## 60 "paleoatlas_60_R" "paleoatlas_60_G" "paleoatlas_60_B"
## 66 "paleoatlas_66_R" "paleoatlas_66_G" "paleoatlas_66_B"
## 70 "paleoatlas_70_R" "paleoatlas_70_G" "paleoatlas_70_B"
## 75 "paleoatlas_75_R" "paleoatlas_75_G" "paleoatlas_75_B"
## 80 "paleoatlas_80_R" "paleoatlas_80_G" "paleoatlas_80_B"
## 90 "paleoatlas_90_R" "paleoatlas_90_G" "paleoatlas_90_B"
## 95 "paleoatlas_95_R" "paleoatlas_95_G" "paleoatlas_95_B"
## 100 "paleoatlas_100_R" "paleoatlas_100_G" "paleoatlas_100_B"
## 105 "paleoatlas_105_R" "paleoatlas_105_G" "paleoatlas_105_B"
## 110 "paleoatlas_110_R" "paleoatlas_110_G" "paleoatlas_110_B"
## 115 "paleoatlas_115_R" "paleoatlas_115_G" "paleoatlas_115_B"
## 120 "paleoatlas_120_R" "paleoatlas_120_G" "paleoatlas_120_B"
## 125 "paleoatlas_125_R" "paleoatlas_125_G" "paleoatlas_125_B"
## 130 "paleoatlas_130_R" "paleoatlas_130_G" "paleoatlas_130_B"
## 135 "paleoatlas_135_R" "paleoatlas_135_G" "paleoatlas_135_B"
## 140 "paleoatlas_140_R" "paleoatlas_140_G" "paleoatlas_140_B"
## 145 "paleoatlas_145_R" "paleoatlas_145_G" "paleoatlas_145_B"
## 150 "paleoatlas_150_R" "paleoatlas_150_G" "paleoatlas_150_B"
## 155 "paleoatlas_155_R" "paleoatlas_155_G" "paleoatlas_155_B"
## 160 "paleoatlas_160_R" "paleoatlas_160_G" "paleoatlas_160_B"
## 165 "paleoatlas_165_R" "paleoatlas_165_G" "paleoatlas_165_B"
## 170 "paleoatlas_170_R" "paleoatlas_170_G" "paleoatlas_170_B"
## 175 "paleoatlas_175_R" "paleoatlas_175_G" "paleoatlas_175_B"
## 180 "paleoatlas_180_R" "paleoatlas_180_G" "paleoatlas_180_B"
## 185 "paleoatlas_185_R" "paleoatlas_185_G" "paleoatlas_185_B"
## 190 "paleoatlas_190_R" "paleoatlas_190_G" "paleoatlas_190_B"
## 195 "paleoatlas_195_R" "paleoatlas_195_G" "paleoatlas_195_B"
## 200 "paleoatlas_200_R" "paleoatlas_200_G" "paleoatlas_200_B"
## 210 "paleoatlas_210_R" "paleoatlas_210_G" "paleoatlas_210_B"
## 220 "paleoatlas_220_R" "paleoatlas_220_G" "paleoatlas_220_B"
## 230 "paleoatlas_230_R" "paleoatlas_230_G" "paleoatlas_230_B"
## 240 "paleoatlas_240_R" "paleoatlas_240_G" "paleoatlas_240_B"
## 245 "paleoatlas_245_R" "paleoatlas_245_G" "paleoatlas_245_B"
## 250 "paleoatlas_250_R" "paleoatlas_250_G" "paleoatlas_250_B"
## 255 "paleoatlas_255_R" "paleoatlas_255_G" "paleoatlas_255_B"
## 260 "paleoatlas_260_R" "paleoatlas_260_G" "paleoatlas_260_B"
## 270 "paleoatlas_270_R" "paleoatlas_270_G" "paleoatlas_270_B"
## 275 "paleoatlas_275_R" "paleoatlas_275_G" "paleoatlas_275_B"
## 280 "paleoatlas_280_R" "paleoatlas_280_G" "paleoatlas_280_B"
## 290 "paleoatlas_290_R" "paleoatlas_290_G" "paleoatlas_290_B"
## 295 "paleoatlas_295_R" "paleoatlas_295_G" "paleoatlas_295_B"
## 300 "paleoatlas_300_R" "paleoatlas_300_G" "paleoatlas_300_B"
## 305 "paleoatlas_305_R" "paleoatlas_305_G" "paleoatlas_305_B"
## 310 "paleoatlas_310_R" "paleoatlas_310_G" "paleoatlas_310_B"
## 315 "paleoatlas_315_R" "paleoatlas_315_G" "paleoatlas_315_B"
## 320 "paleoatlas_320_R" "paleoatlas_320_G" "paleoatlas_320_B"
## 330 "paleoatlas_330_R" "paleoatlas_330_G" "paleoatlas_330_B"
## 340 "paleoatlas_340_R" "paleoatlas_340_G" "paleoatlas_340_B"
## 350 "paleoatlas_350_R" "paleoatlas_350_G" "paleoatlas_350_B"
## 360 "paleoatlas_360_R" "paleoatlas_360_G" "paleoatlas_360_B"
## 370 "paleoatlas_370_R" "paleoatlas_370_G" "paleoatlas_370_B"
## 380 "paleoatlas_380_R" "paleoatlas_380_G" "paleoatlas_380_B"
## 390 "paleoatlas_390_R" "paleoatlas_390_G" "paleoatlas_390_B"
## 395 "paleoatlas_395_R" "paleoatlas_395_G" "paleoatlas_395_B"
## 400 "paleoatlas_400_R" "paleoatlas_400_G" "paleoatlas_400_B"
## 410 "paleoatlas_410_R" "paleoatlas_410_G" "paleoatlas_410_B"
## 415 "paleoatlas_415_R" "paleoatlas_415_G" "paleoatlas_415_B"
## 420 "paleoatlas_420_R" "paleoatlas_420_G" "paleoatlas_420_B"
## 425 "paleoatlas_425_R" "paleoatlas_425_G" "paleoatlas_425_B"
## 430 "paleoatlas_430_R" "paleoatlas_430_G" "paleoatlas_430_B"
## 440 "paleoatlas_440_R" "paleoatlas_440_G" "paleoatlas_440_B"
## 445 "paleoatlas_445_R" "paleoatlas_445_G" "paleoatlas_445_B"
## 450 "paleoatlas_450_R" "paleoatlas_450_G" "paleoatlas_450_B"
## 460 "paleoatlas_460_R" "paleoatlas_460_G" "paleoatlas_460_B"
## 470 "paleoatlas_470_R" "paleoatlas_470_G" "paleoatlas_470_B"
## 480 "paleoatlas_480_R" "paleoatlas_480_G" "paleoatlas_480_B"
## 490 "paleoatlas_490_R" "paleoatlas_490_G" "paleoatlas_490_B"
## 500 "paleoatlas_500_R" "paleoatlas_500_G" "paleoatlas_500_B"
## 510 "paleoatlas_510_R" "paleoatlas_510_G" "paleoatlas_510_B"
## 520 "paleoatlas_520_R" "paleoatlas_520_G" "paleoatlas_520_B"
## 530 "paleoatlas_530_R" "paleoatlas_530_G" "paleoatlas_530_B"
## 540 "paleoatlas_540_R" "paleoatlas_540_G" "paleoatlas_540_B"
## 600 "paleoatlas_600_R" "paleoatlas_600_G" "paleoatlas_600_B"
## 690 "paleoatlas_690_R" "paleoatlas_690_G" "paleoatlas_690_B"
## 750 "paleoatlas_750_R" "paleoatlas_750_G" "paleoatlas_750_B"
This function call downloads a RasterArray
of the PaleoMap Paleoatlas raster series with the resolution of 0.5 degrees. This RasterArray
has 3 columns, each corresponding to one of the RGB channels.
You can refer to the 300Ma map by referring to the row of this RasterArray and then you can plot it with the function mapplot()
pa300 <- pr["300", ]
mapplot(pa300, rgb=TRUE)
Note: in the future the SpArray
class will also be implemented, building R arrays from SpatialPolygonsDataFrame
objects.