Coastal Sealevel Rise

Climate alarmists are worried that the sea level is rising too fast and flooding is coming soon. You can find many data images like this on the net:

3.2 mm/year. The problem is that this is for all ocean water. If flooding is a concern, then shouldn’t we ask what is happening at the coasts? Is it different than the oceans as a whole?

I decided to find out.

I downloaded over a gigabyte of 720×361 gridded data covering 1950 to 2009. I only examine those grid cells that are adjacent to land (2808 out of 259920).

Here is my result:

1950  -4.387969	1970  -1.113571	1990  +0.478104
1951  -3.858797	1971  -0.531201	1991  +0.651717
1952  -4.040961	1972  -0.770646	1992  +0.665983
1953  -3.568315	1973  -1.020810	1993  +0.086299
1954  -3.699824	1974  -0.375272	1994  +1.093564
1955  -2.807692	1975  -0.504674	1995  +1.871986
1956  -3.675497	1976  -1.817893	1996  +3.126923
1957  -3.445263	1977  -1.405565	1997  +2.290404
1958  -3.788105	1978  -0.750346	1998  +4.180212
1959  -3.993297	1979  -1.387182	1999  +5.105531
1960  -2.135054	1980  -1.673765	2000  +4.515499
1961  -2.499847	1981  -0.377484	2001  +4.702255
1962  -2.632606	1982  -2.025174	2002  +3.391415
1963  -2.978503	1983  +0.697424	2003  +4.399230
1964  -3.627167	1984  +0.632456	2004  +4.762698
1965  -2.821440	1985  -0.085001	2005  +4.951383
1966  -2.954607	1986  -0.053231	2006  +5.608991
1967  -2.215466	1987  -0.204903	2007  +5.249474
1968  -2.939226	1988  +0.930574	2008  +7.056215
1969  -1.268895	1989  +0.929616	2009  +6.901877

Trend (mm/year): 1.68746

1.69 mm/year. As you can see the coastal trend is half the total ocean trend. Funny how greenhouse gases do that 😉

Enjoy 🙂 -Zoe

Code

# Zoe Phin, 2021/03/17
# File: coastal.sh
# Run: . coastal.sh ; require; download; alltime; analysis

require() { sudo apt-get install -y nco gmt; }

download() {
    wget -cO 1950s.nc https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_19500103_19591227_v1.nc.gz
    wget -cO 1960s.nc https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_19600103_19691227_v1.nc.gz
    wget -cO 1970s.nc https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_19700103_19791227_v1.nc.gz
    wget -cO 1980s.nc https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_19800103_19891227_v1.nc.gz
    wget -cO 1990s.nc https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_19900103_19991227_v1.nc.gz
    wget -cO 2000s.nc https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_20000103_20090627_v1.nc.gz
}

onetime() {
    ncks --trd -HC -d time,$2,$2 -v ssha ${1}s.nc | sed \$d | awk -F '[= ]' '
    function s(a) { return sin(atan2(0,-1)*a/180) }
    function area(lat) { if (lat<0) lat*=-1; return (s(lat+0.25)-s(lat-0.25))/720 }
    NR==1 { T=$2 }
    $4>=-57 && $4<=57 {	
        if (NR != 1) {
            if ($8 == "_" && D != "_") { A=area(L);  S+=D*A;  N+=A }
            if ($8 != "_" && D == "_") { A=area($4); S+=$8*A; N+=A }
        }
        L=$4; D=$8
    } END {
        T=sprintf("%d",T)
        "date +%Y-%m-%d -d \"1900-01-01 +"T" days\"" | getline t
        printf "%s %+010.6f\n", t, S/N/10
    }'
}

alltime() { (
    for d in {1950..1990..10}; do
        for t in {000..519}; do
            onetime $d $t
        done
    done
    for t in {000..493}; do
        onetime 2000 $t
    done ) | tee sealevel.csv
}

analysis() {
    awk '{ Y[substr($1,1,4)]+=$2; N[substr($1,1,4)]+=1 
    } END { for (i in Y) printf "%.0f %+10.6f\n", i, Y[i]/N[i]
    }' sealevel.csv | tee .result | gmt gmtregress -Fp -o5 > .trend

    cat .result | column -c 60
    echo -n "Trend (mm/year): "
    cat .trend | awk '{print $1*10}'
}

Published by Zoe Phin

https://phzoe.com

53 thoughts on “Coastal Sealevel Rise

      1. I have no explanation. Ready for an even greater curiosity? According to this dataset, the sea level in the El Nino area hasn’t increased at all …

        I suspect that it has to do with the fact that this is a reconstructed dataset, where they’ve calculated the rates away from the ocean based on the coastal rates as modified by the satellite rates …

        But as I showed, the satellite data contains a bogus “acceleration’ due to a satellite change … so I don’t think I’d trust this dataset much at all.

        w.

        https://wattsupwiththat.com/2021/02/21/munging-the-sea-level-data/

        Like

        1. Jarle,

          Thanks,
          answers the question,
          “How do you explain the 0.17 mm difference between whole ocean and just the coasts?”

          Like

      1. Dear lady, I’m always happy to share my code … but it is not just user-unfriendly, it’s actively user-aggressive. Here you go:

        ====
        # https://podaac.jpl.nasa.gov/dataset/RECON_SEA_LEVEL_OST_L4_V1

        #https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/

        source(“Willis Functions.R”)
        source(“CERES Functions.R”)
        source(“CEEMD Function.R”)
        library(RNetCDF)
        library(ncdf4)
        library(ncdf4.helpers)

        dir.create(“NASA Recon Sea Level”)
        thepath=”NASA Recon Sea Level/”

        i=1950
        for (i in seq(1960,2000,10)){
        (theurl=paste0(“https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_”,i,”0103_”,i+9,”1227_v1.nc.gz”))
        if (i == 2000) theurl=”https://podaac-opendap.jpl.nasa.gov/opendap/allData/recon_sea_level/preview/L4/tg_recon_sea_level/CCAR_recon_sea_level_20000103_20090627_v1.nc.gz.html”
        (thefile=paste0(thepath,basename(theurl)))
        download.file(theurl,thefile)
        }

        (allfiles=paste0(thepath,dir(thepath)))

        # library(R.utils)
        # gunzip(“file.gz”, remove=FALSE)
        # for (i in allfiles) gunzip(i)

        i=1
        for (i in 2:length(allfiles)){
        print(paste(i,”of 6″))
        nc=nc_open(allfiles[i])
        # print(nc)
        # length(ncvar_get(nc,”lat”))
        thelevel=ncvar_get(nc,”ssha”)*.1
        # dim(thelevel)
        thelevel=aperm(thelevel,c(2,1,3))[361:1,c(361:720,1:360),]
        (thetime=as.POSIXct(ncvar_get(nc,”time”)*secsperday,origin=as.POSIXct(“1900-01-01″,tz=”GMT”),tz=”GMT”))

        thefactor=substr(thetime,1,7)
        themonths=levels(as.factor(thefactor))

        newlevels=array(pbsapply(1:length(themonths),function(x) array(arraymeans1(thelevel[,,which(thefactor==themonths[x])]),c(361,720,1))),c(361,720,120))
        rm(thelevel)
        nsea=abind(nsea,resampleit(newlevels),along = 3)
        }
        rm(newlevels)
        dim(nsea)
        save(nsea,seaxc,seatrend,file = “NASA Sea Level.tab”)
        nsea=nsea[,,1:714]
        nsea=nsea*100
        seatrend=getmonths(nsea,start=1950)
        resetplot()
        # seatrend=residual(seatrend)
        plot(seatrend)
        blackline(lowts(seatrend,.1),col=”red”)
        lines(residual(seatrend),col=”red”)
        lmts(seatrend)
        quadtest(seatrend)
        seann=aggregate.ts(seatrend,1,mean)
        seaxc=xceemd(seatrend)
        plot(seatrend)
        blackline(xctots(seaxc,seatrend,2))
        quadtest(seaxc[,ncol(seaxc)])
        plot(seatrend)
        quadtest(window(seatrend,start=1980))

        time1=as.double(time(seatrend))
        time2=time1^2/2
        summary(lm(seatrend~time1))
        summary(lm(seatrend~time1+time2))
        quadtest(seatrend,theunits = “mm”)
        findbreaks(seatrend,h = .25)

        seaedge=landmask

        seatrends=getarraytrends(nsea)

        drawworld(seatrends,
        mincolor = -1,maxcolor = 3,theunits = “mm”)
        drawcontours(seatrends,theunits = “mm/year”,doplot=T)

        hist(seatrends)

        Like

        1. Like most of my code it’s in no particular order. It also depends on a bunch of functions that I wrote. I’ve put them into a folder for you in my dropbox.

          https://www.dropbox.com/sh/3cvso0h4y4akw6p/AABG_0mv1ZriWwvidaemcXdca?dl=0

          In the code above, one section starts with:

          for (i in 2:length(allfiles)){
          … some code …
          nsea=abind(nsea,resampleit(newlevels),along = 3)
          }

          The first time through I run it by hand with i set to 1, and the final line reading

          nsea=resampleit(newlevels)

          This creates the “nsea” 180 x 360 x ten years of levels array.

          Then I rerun it using

          for (i in 2:length(allfiles)){
          … some code …
          nsea=abind(nsea,resampleit(newlevels),along = 3)
          }

          This creates the new ten years of levels and array binds them to the “nsea” array.

          I keep all of my global data as an array of 1° latitude by 1° longitude x however many months of levels. Top left is centered at 89.5°N,-179.5°W

          Bottom right is at -89.5°S, 179.5°E.

          In the “CERES Functions.R” file from my dropbox there are a host of functions to take averages over time, weighted means of subsets of the data (like say from 10N to 10S or the like.

          There are probably some subsidiary files that I haven’t thought of. If the code chokes when it wants to load something, let me know and I’ll put it into my Dropbox and send you a link.

          My best to you,

          w.

          Like

        2. Thank you, Willis. Will have a look when I get the chance. At a quick glance, I now remember why I stopped using R 15 years ago. It’s syntax is prone to user-unfriendliness, among other issues.
          Best regards, -Z

          Like

  1. It’s clear what is happening. The middle of the oceans are rising at twice the rate of coastal areas. In time, I expect ships will need to use extra fuel to climb out of harbour, but will be able to idle their engines and coast downhill into port. Once enough time has passed and the gradient increases sufficiently, I look forward to the emergence of new sports such as downhill water skiing.

    Liked by 3 people

  2. Hi Zoe,

    If you can, let me know if you find out why entire ocean comes out to be only 1.52 mm/year. There seems to be something off with the data. These things happen sometimes.

    Cheers

    Pierre

    Like

    1. The data is the data. I didn’t check the whole ocean beforehand. Thank Willis for that. He’s right, it’s also small, so MY conclusion of coastal difference is incorrect … but there is a small difference in the opposite direction (larger by 0.17), which Willis and I can’t explain.

      Like

      1. Zoe,

        The graphic at the top of your post shows a trend of 3.2 mm/year for the time period 1993 – 2014

        You and Willis referenced the time period 1950 – 2009

        Like

  3. Compared to the 1993 – 2014 trend, your plot not only omitted the recent 5 year period of faster SLR, but it included a 4 decade period of slower rise.

    Like

  4. “Western, AFAIK there’s no evidence that the sea level is rising faster in the last five years.”

    Faster in the last 5 years compared to the period 1950 – 2009.

    Like

  5. Willis,
    You’re missing my point. Reliable or not, the 144 year time series at top of post could be divided into thousands of shorter time periods, with each time period likely having a unique trend.

    For example, they found,
    1870 – 1924: 0.8 mm/year
    1925 – 1992: 1.9 mm/year
    1993 – 2014: 3.2 mm/year

    You and Zoe found (roughly)
    1950 – 2009: 1.6 mm/year

    Not the least bit surprising – different time periods should be expected to have different trends when the rate of sea level change is not constant.

    Which means that if Zoe wants to compare total ocean SLR with near-shore SLR, she needs to use an apples-to-apples timeframe.

    Instead, she compared near-shore SLR (1950 – 2009), with total-ocean SLR (1993 – 2014).

    Of course they’re gonna be different!

    Like

    1. WH, we had no global satellite coverage before 1979. So there is no total-ocean data before 1979 that isn’t guessed from near-shore data.

      Willis and I already agreed this data is flimsy and unreliable.

      Like

  6. Zoe,
    “And why was 1993 chosen?”

    Because they cherry-picked a shorter, more recent timeframe that shows faster SLR than the longer trends show.

    The same tactic that skeptics were criticized for using WRT global temperature anomaly’s during the “hiatus” years.

    Like

        1. Well, the more I read about the topic of SLR, the more I realize how complicated it is. Obviously, though, it doesn’t make any sense that acceleration would suddenly start the same year as satellite’s entered the picture.

          Even with satellite’s, the attribution of acceleration, if there is any, is very difficult to figure. Best they can do is make an estimate. Here’s a clip from a recent study:

          “The satellite altimeter record of sea-level change from TOPEX/Poseidon, Jason-1, Jason-2, and Jason-3 is now approaching 25 y in length, making it possible to begin probing the record for climate-change–driven acceleration of the rate of GMSL change (6). Unlike tide-gauge data, these retrievals sample the open ocean and allow for precise quantitative statements regarding global sea level. However, detecting acceleration is difficult because of (i) interannual variability in GMSL largely driven by changes in terrestrial water storage (TWS) (7⇓–9), (ii) decadal variability in TWS (10), thermosteric sea level, and ice sheet mass loss (11) that might masquerade as a long-term acceleration over a 25-y record, (iii) episodic variability driven by large volcanic eruptions (12), and (iv) errors in the altimeter data, in particular, potential drifts in the instruments over time (13). With careful attention to each of these issues, however, a preliminary satellite-based estimate of the climate-change–driven acceleration of sea-level rise can be obtained. This estimate is useful for understanding how the Earth is responding to warming, and thus better informs us of how it might change in the future.”

          Like

        2. Can they make an estimate before satellites AS IF they used satellites? What if before satellites it was also in the 3mm/yr range rather than 1.5mm/yr? No acceleration.

          Like

        3. Zoe,
          Sure, but what you’re suggesting is known as homogenization. In this case, the removal of non-climatic changes that may have caused the trend line to veer upward starting in 1993.

          Skeptics call this data tampering.

          Like

        4. Because there’s a good reason for a sudden uptick starting in 1993? No, I’m suggesting using the same method throughout. No satellites before 1993 means we shouldn’t switch to them all of a sudden and claim an ACTUAL accelaration has occured.

          Like

        5. That makes sense, and I’m sure there are scientists who would agree with you.

          The study I linked for example just examines the satellite record. Too short a time period though, IMO.

          Liked by 1 person

  7. Couldn’t get to sleep, so had a chance to study the broader issues a bit. Super interesting and super confusing. Not sure if this is right but my general understanding is as follows….

    – Satellites measure sea level from center of earth.

    – tidal gauges measure sea level relative to land.

    – various land areas are rebounding from the weight of past glaciers.

    – this creates a slight sinking of adjacent ocean basins.

    – the rebounding and sinking are not of equal magnitude. Imagine pressing your thumb down into a piece of dough. The surrounding dough will rise a bit in response, but this upward movement wouldn’t be as great as your thumb moves downward.

    – The reverse describes glacial rebound. That is, if the dough “rebounded” where your thumb indention had been.
    The upward rebound where your thumb had been (land areas) would be greater than the sinking of the adjacent dough (ocean basins).

    – Changing gears, the biggest problem areas for SLR tend to be in deltas, often built up during rapid runoff following the last ice age. Since then, the land has been losing this sediment and sinking due to erosion (subsidence), causing the adjacent ocean basins to gain sediment and rise (sedimentation).

    – Together, this creates a flattening of the sea/shore interface, allowing water to move farther inland.

    – I haven’t even touched on land use changes… subsidence due to groundwater removal for example, but maybe another time.

    – Bottom line, even if both are accurate, SLR from satellite data and SLR from tidal gauges should be expected to have different trends, because they are not measuring the same things.

    Like

    1. Another factor affecting coastal sea levels from tide gauges is land subsidence from groundwater depletion. Lots of highly-populated areas have pumped lots of groundwater out to use as water supply, and land has subsided as a result – which will show up as SLR. (Sorry, no data, just something I’ve seen mentioned various places over time.)

      You’re right, it’s an incredibly complex issue, and one highly subject to agenda-driven biased interpretation :-/

      Liked by 1 person

  8. Honestly, it defies my logic that global ocean level to the mm can be confidently postulated. I mean the huge range of variables, gravity from sun and moon (18.6 year path), 6 m tides in some places, how water volume changes with temp … wind driving waves, geothermal, subsurface moving continental plates, seasons, and oceans being 70% of the planet. Then all the water cycling flowing on and under the land. And this height of oceans must be set to a datum which is where or what? Centre of the earth? is measured to less than 1 mm in oceans, is this science or math theory?

    Possible variability in coastal to deep ocean may be the moon? Its gravity pulls harder on deeper waters, more mass per km2 than near coastal waters, so coastal is influenced less, add orbital perturbation upon perturbation resulting in a variation of mm over hundreds of kmzzzzz.
    It is truely amazing to look at historical ocean heights over last 100k years, or even 10k years, around 100m. I thought dramatic global ocean height changes trend to follow major events. Seems the tiny variability last 100 years shows there isn’t anything going on dramatic to the climate.

    Liked by 1 person

      1. Notice that they call the website “vital signs of the planet”. In other words, they have decided beforehand that the content shall not be inconspicious. The more striking data they can produce, the more funding they can get.

        Like

      2. It looks like they used “Frederikse et al. (2020)”.
        You want to look at his paper, he did not use the land based data, he used bouys and Satellite data.

        Like

  9. Good day zoe and congratulations on all the articles.If I am not disturbing, I wanted to ask if there are any updates regarding the level of the oceans. Thank you 🙏 for everything.

    Like

  10. Hey Zoe –
    Dumb newbie question: what language are the code examples in? I’m not familiar with running code in Linux, and the last serious programming I did was in Fortran and Pascal :-0 I’m curious about the logic you used to select for coastal grid cells, so want to read your code – which I’ll only be able to do by looking up the syntax and function definitions line by line on Google 🙂 (I’m generally fascinated by the way you and Willis can sift through these massive datasets, would like to learn more about how you go about it.) Thanks!

    (I’m the same guy as DaveE, but signed up for a WordPress account so I could “like” comments, and couldn’t use DaveE as a handle…)

    Like

    1. I use BASH and AWK, some of the earliest scripting languages around because they come preinstalled on linux and very little additional tools are needed. I’ve been using them for 15 years, starting on Solaris OS, which was popular on Wall Street back then.

      There is land/water data in the file. It’s called landmask. 1 is land, 0 is water. When there is a transition from one to the other this is a coast.

      00000111111

      Spot the coast. My code just looks at neighbor cells, and if it’s different we have a coast.

      This article is not very good, because I failed to check the non-coastal areas first. But it’s still somewhat useful.

      -Z

      Like

      1. Cool, thanks! Now I know where to look to learn the code 🙂

        Ah, clever method for finding coastlines!

        I’m not a coder, but am kind of a data guy (or at least data-interested 🙂 I also have a bit of a measurement fetish (I want an 8.5 digit multimeter, even though I have no earthly need for that level of precision or resolution, plan to set up 10-significant-digit time/frequency standard, etc, etc) – So the idea of teasing out unexpected correlations and buried data is inherently fascinating to me.

        I doubt I’ll actually find time to learn BASH and AWK enough to do anything useful with it, but I love the work you’re doing. (Do you still use this sort of stuff in your daily life or is it from a previous chapter?)

        Thanks again!

        Liked by 1 person

        1. Oh no, I still use bash/awk actively for all my financial strategies 🙂 It’s one of the keys to my success. I was taught R in school, so I’m proud of learning this on my own at work. People ask me why I use this “ancient” technology. The real question is why aren’t they? Simple tools can slice and dice any data in any which way without knowing what it represents.

          Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: