NSBcompanion 3.1

2025-05-22

As mentioned in the previous post, I no longer take care of the Neptune database, nor is it currently available, except as an archive on Zenodo, that is also available through the chronosphere package for R.

So as a last hurrah, I decided to update my NSBcompanion package, which I have been providing since 2013 (i. e. since as long as the website interface),... not that anybody ever used it but still.

Not only did I modify it so that it can still be used despite the server and the website being gone, but I added a bunch of new functions to replicate as best as I could the functionality that used to be offered by the website. Of course, unfortunately, it will only be useful to R users.

First and foremost, here is how to install the package:

library(devtools)
install_github("plannapus/NSBcompanion")

Then, how to connect, and perform various queries:

library(NSBcompanion)
nsb <- nsbConnect() # It does not require any password anymore as it connects using chronosphere to the Zenodo archive
                    # download the database as a SQLite db and opens it.
# Query micropaleontological data, here Antartic Neogene radiolarians, with synonymy resolved
getNeptuneData(nsb, fossil_group="R", age_range=c(0,23), lat_range=c(-90,-40), resolve_syn=TRUE)
# Query the age model we currently used for Leg 120 Site 751A
getAgeModel(nsb, "120_751A")
# Query all the age models we have for that site
getAgeModel(nsb, "120_751A", current=FALSE)
#Query the underlying stratigraphic data:
getStratData(nsb,"120_751A")

You can also just use the database to perform routine task useful in any paleoceanographic studies such as computing the depth, the age, the sedimentation rate or the paleocoordinates of a set of specific samples:

samples <- c("751A-1-1,10", "751A-5-3,20","751A-10-CC")
d <- findSampleDepth(nsb, samples) #Find the depth based on their names
# 1 site done
#   leg site hole core sect top  mbsf
# 1      751    A    1    1  10  0.10
# 2      751    A    5    3  20 30.40
# 3      751    A   10   CC  NA 90.53
# Warning message:
# In findSampleDepth(nsb, samples) : NAs introduced by coercion
a <- findAge(nsb,"120_751A",d$mbsf) #Find their age
#    hole_id depth_mbsf      age_ma
# 1 120_751A       0.10  0.03177339
# 2 120_751A      30.40  4.55394677
# 3 120_751A      90.53 11.65761692
coord <- findPaleocoordinates(nsb, "120_751A", a$age_ma) #Find the paleocoordinates (according to Seton et al. 2012 rotation model)
#   hole_id      age_ma paleo_latitude paleo_longitude
# 1 120_751A  0.03177339      -57.69746        79.79809
# 2 120_751A  4.55394677      -57.34568        79.55676
# 3 120_751A 11.65761692      -56.86685        79.16370
findLSR(nsb, "120_751A")
#        hole    from      to       lsr
# 1  120_751A   0.083   1.750 0.2699101
# 3  120_751A   1.750   7.417 1.8570038
# 5  120_751A   7.417  35.667 2.0455939
# 7  120_751A  35.667  41.833 1.3994172
# 9  120_751A  41.833  44.917 1.5868850
# 11 120_751A  44.917  70.273 3.8777164
# 13 120_751A  70.273 103.364 1.8922475
# 15 120_751A 103.364 109.833 0.8525281
# 17 120_751A 109.833 131.333 2.1893648
# 19 120_751A 131.333 147.841 1.2428898
# 21 120_751A 147.841 159.848 1.5807919

And last but not least, let's say you have data calibrated on a different GPTS, or that you want to translate the one from Neptune (given on Gradstein et al. 2012 GPTS) to a different one in order to compare:

changeAgeScale(nsb,c(30,31.2,33.9),from="Grad12",to="GTS2020") #From Gradstein et al. 2012 to the 2020 Geological Time Scale
# [1] 30.00000 31.15191 33.93336

One thing that this package can do that the website could not is time-travel, in order to replicate an old study that used Neptune:

nsb2016 <- nsbConnect(ver="2016-02-29")
getAgeModel(nsb2016,"119_744A")
# site_hole    age_ma depth_mbsf age_comment
# 5       744A  0.918134      2.636       False
# 6       744A  2.573495     15.182       False
# 7       744A  3.605161     19.046       False
# 8       744A  4.307629     20.068       False
# 9       744A  5.308647     23.068       False
# 26      744A  9.767322     23.068       False
# 10      744A  9.990740     41.727       False
# 11      744A 11.062029     41.727       False
# 12      744A 14.792489     59.909       False
# 13      744A 16.040071     65.545       False
# 14      744A 16.727717     65.545       False
# 15      744A 17.558208     75.182       False
# 16      744A 18.709492     83.121       False
# 17      744A 19.790421     92.818       False
# 18      744A 20.265372     96.455       False
# 25      744A 21.579258     96.455       False
# 19      744A 21.711284    104.333       False
# 1       744A 23.414777    104.333       False
# 20      744A 23.958621    107.606       False
# 21      744A 26.451593    115.455       False
# 3       744A 26.914188    118.182       False
# 2       744A 30.381881    118.182       False
# 22      744A 32.105518    130.758       False
# 4       744A 33.171855    138.788       False
# 23      744A 35.708441    162.273       False
# 24      744A 36.514006    171.212       False
getAgeModel(nsb,"119_744A")
# site_hole    age_ma depth_mbsf age_comment
# 1       744A  0.918134      2.636        <NA>
# 2       744A  2.573495     15.182        <NA>
# 3       744A  3.605161     19.046        <NA>
# 4       744A  4.307629     20.068        <NA>
# 5       744A  5.308647     23.068        <NA>
# 6       744A 10.008745     40.186        <NA>
# 7       744A 11.062029     41.727        <NA>
# 8       744A 12.572802     49.982        <NA>
# 9       744A 14.792489     59.909        <NA>
# 10      744A 15.980724     64.769        <NA>
# 11      744A 16.694766     66.248        <NA>
# 12      744A 17.558208     75.182        <NA>
# 13      744A 18.709492     83.121        <NA>
# 14      744A 20.297427     95.638        <NA>
# 15      744A 22.147442     95.638        <NA>
# 16      744A 24.257109    105.249        <NA>
# 17      744A 26.154198    105.249        <NA>
# 18      744A 27.420117    112.175        <NA>
# 19      744A 28.167467    118.317        <NA>
# 20      744A 30.394265    118.317        <NA>
# 21      744A 31.105411    124.842        <NA>
# 22      744A 32.144016    130.757        <NA>
# 23      744A 33.182621    139.445        <NA>
# 24      744A 33.799293    147.023        <NA>
# 25      744A 35.227375    156.819        <NA>
# 26      744A 35.941416    163.843        <NA>
# 27      744A 36.915108    174.379        <NA>