Skip to content

Instantly share code, notes, and snippets.

View priscian's full-sized avatar

Jim Java priscian

  • Rochester, New York, USA
View GitHub Profile
@priscian
priscian / airs-global_20230714.csv
Created July 14, 2023 16:47
AIRS global temperature data 14 Jul 2023
year month yr_part AIRS v6 AIRS v7
2002 1 2002.04166666667
2002 2 2002.125
2002 3 2002.20833333333
2002 4 2002.29166666667
2002 5 2002.375
2002 6 2002.45833333333
2002 7 2002.54166666667
2002 8 2002.625
2002 9 2002.70833333333 -0.09 0.13

Paleotemperature Hockey Sticks

This is a list of paleoclimate studies [263] that use a variety of temperature proxies and methodologies in affirmation of Michael Mann's hockey stick result [1], which shows strong recent hemispheric and global warming. The last column provides an exemplary figure from each paper.

The original MBH98 paper [1] has so far been cited 1200+ times (Web of Science).

N.B. For the original text list without hyperlinks or figures, go here. It's still being updated.

What do paleotemperature studies tell us in general?

@priscian
priscian / exogenous-adjusted-temps_20210706.csv
Created July 7, 2021 05:06
Global Average Temperatures Adjusted for ENSO, Volcanic, and Solar Influences
We can make this file beautiful and searchable if this error is corrected: It looks like row 4 should actually have 28 columns, instead of 5. in line 3.
year,month,yr_part,GISTEMP v4 Global,NCEI Global,HadCRUT4 Global,Cowtan & Way Krig. Global,BEST Global (Air Ice Temp.),JMA Global,RSS TLT 4.0 -70.0/82.5,UAH TLT 6.0 Global,JRA-55 Surface Air Global,ERA5 Surface Air Global,NCEP/NCAR R1 Surface Air Global,GISTEMP v4 Global (adj.),NCEI Global (adj.),HadCRUT4 Global (adj.),Cowtan & Way Krig. Global (adj.),BEST Global (Air Ice Temp.) (adj.),JMA Global (adj.),RSS TLT 4.0 -70.0/82.5 (adj.),UAH TLT 6.0 Global (adj.),JRA-55 Surface Air Global (adj.),ERA5 Surface Air Global (adj.),NCEP/NCAR R1 Surface Air Global (adj.),MEI Aggregate Global,SAOD Aggregate Global,TSI Aggregate Global
1970,1,1970.04166666667,-0.378,-0.3153,-0.254,-0.2344,-0.3547,-0.285,,,-0.2388,,-0.0844,-0.4097,-0.3542,-0.2989,-0.2691,-0.3811,-0.3186,,,-0.2641,,-0.1037,0.675,0.0243,1361.42382539004
1970,2,1970.125,-0.26,-0.2433,-0.197,-0.2174,-0.3547,-0.197,,,-0.2426,,-0.0359,-0.291,-0.2814,-0.2384,-0.251,-0.381,-0.2298,,,-0.2691,,-0.0586,0.575,0.0228,1361.42246993411
1970,3,1970.20833333333,-0.4313,-0.4
### For plots at https://twitter.com/priscian/status/1184499661656219651
## Install package "climeseries":
Sys.setenv(R_REMOTES_NO_ERRORS_FROM_WARNINGS = "true") # https://github.com/r-lib/remotes#environment-variables
devtools::install_github("priscian/climeseries")
## First plot: piecewise linear fit of major GAT series at significant changepoints
library(climeseries)
d <- get_climate_data(download = FALSE, baseline = TRUE)
series <- c("GISTEMP Global", "NCEI Global", "HadCRUT4 Global", "Cowtan & Way Krig. Global", "BEST Global (Air Ice Temp.)", "JMA Global", "RSS TLT 4.0 -70.0/82.5", "UAH TLT 6.0 Global", "ERA-Interim 2m Global", "ERA5 2m Global", "NCEP Surface Air Global")
We can make this file beautiful and searchable if this error is corrected: It looks like row 9 should actually have 8 columns, instead of 7. in line 8.
year,month,yr_part,ERSSTv4 Atlantic Ocean,ERSSTv4 Pacific Ocean,ERSSTv4 Indian Ocean,ERSSTv4 Southern Ocean,ERSSTv4 Global Ocean
1854,1,1854.04166666667,0.109615219846986,0.00810856138884089,-0.0531562424671316,-0.354793516611166,-0.166547788757771
1854,2,1854.125,0.0898816152520038,0.00270423193084818,-0.0675247599731813,-0.500833722330877,-0.182175581128681
1854,3,1854.20833333333,0.0911483542166944,0.109228358015051,0.244264331924758,-0.605689859612554,-0.146455536145382
1854,4,1854.29166666667,0.0239588344903376,0.0292574583500411,0.146145495328125,-0.640274652495903,-0.194732687760049
1854,5,1854.375,-0.151138676621214,-0.100746317468427,0.0570735296894928,-0.577829036483108,-0.219615877068618
1854,6,1854.45833333333,-0.299748110759373,-0.261371736259814,-0.203953388290672,-0.590797951411481,-0.266930774201547
1854,7,1854.54166666667,-0.232121093213366,-0.263557484837577,-0.297598934096288,-0.542104746907682,-0.24678567084919
1854,8,1854.625,-0.241215627483474,-0.229601270980333,-0.254614243830354,-0.401
This is a list of paleoclimate studies [2–63] that use a variety of temperature
proxies and methodologies in affirmation of Michael Mann's hockey stick result
[1], which shows strong recent hemispheric and global warming.
1. Mann ME, Bradley RS, & Hughes MK: Global-scale temperature patterns and
climate forcing over the past six centuries. Nature 392(6678):779–787, 1998.
dx.doi.org/10.1038/33859.
2. Jones PD, Briffa KR, Barnett TP, & Tett SFB: High-resolution palaeoclimatic
records for the last millennium: Interpretation, integration and comparison with
@priscian
priscian / ushcn-raw-vs-final.R
Last active March 22, 2023 16:10
Find the Differences between USHCN Raw & Homogenized Data
### Find the Differences between USHCN Raw & Homogenized Data.
### Inspired by: https://moyhu.blogspot.com/2014/05/nonsense-plots-of-ushcn-adjustments.html
rm(list = ls(all.names = TRUE))
library(pacman) # install.packages("pacman")
#library(climeseries) # devtools::install_github("priscian/climeseries")
jjmisc::reload_all("climeseries", redocument = FALSE)
p_load(R.utils, matrixStats, tictoc)
@priscian
priscian / plot_exxon-1982-v-instrumental.R
Created October 28, 2018 07:14
Plotting Current Instrumental Temp. Series against the Exxon 1982 Projections
#jjmisc::reload_all("climeseries", redocument = FALSE)
library(climeseries) # devtools::install_github("priscian/climeseries")
library(png)
pngFileName <- system.file("inst/images/1982-Exxon-Memo-to-Management-About-CO2_edited.png", package = "climeseries")
img <- readPNG(pngFileName, info = TRUE)
info <- attr(img, "info")
## N.B. Change this to a directory where you'd like to store the image.
setwd("C:/Users/priscian/Downloads/images/climate")
@priscian
priscian / Ljungqvist 2010 Reconstruction+HadCRUT4_0004.6-2017.9_ma120_baseline1961-1990.R
Created January 20, 2018 20:42
Plots the Ljungqvist 2010 temperature reconstruction series along with the instrumental HadCRUT4 30N-90N (120-mo. moving average) temp series.
library(climeseries) # devtools::install_github("priscian/climeseries")
library(xlsx)
ljungqvist <- xlsx::read.xlsx2(system.file("extdata/paleo/ljungqvist2010.xls", package="climeseries"), sheetName="Reconstruction", startRow=11, check.names=FALSE, stringsAsFactors=FALSE)
matches <- str_match(ljungqvist$Decade, "(\\d+)\u2013(\\d+)")
ljungqvist$yr_part <- apply(matches[, 2:3], 1, function(x) mean(as.numeric(x)))
yearRange <- range(as.numeric(matches[, 2:3]))
allYears <- seq(yearRange[1], yearRange[2])