"Paul Goard (paulrcg)" <prcgoard@...>
wrote on Wed Feb 24, 2010 1:56 pm (PST):
> "...What if you ignore all the sites which show MSL fall on the assumption
> the land masses of those regions are rising, and recalculate...
I've revised my Perl program to allow easy testing of such "what if" ideas.
By specifying command-line options, you can selectively exclude the
"outliers" (the tide stations with the highest and/or lowest MSL
trends), and/or adjust the approximating function for correlation
between nearby tide stations. See:
http://www.burtonsys.com/climate/global_msl_trend_analysis.html
To use the program, just download the code.zip file, and unzip it into a folder (under either Windows or Linux). (Since Al Gore is on the board of Apple, I am charitably assuming that nobody here uses Macs.)
Then open a command prompt (shell window), cd to that folder, and you can immediately run the example*.bat batch files (for Windows) or ./example* scripts (for Linux), as well as any of the other examples below.
If you run the Perl program with no parameters like this:
perl calculate_distance_weighted_msl_avg2.pl
it prints the following "help" message:
calculate_distance_weighted_msl_avg2.pl -- Calculate geographical distance-weighted global linear Mean Sea Level (MSL) average from GLOSS-LTT tide stations data. Typical usage: perl calculate_distance_weighted_msl_avg2.pl MSL_global_trendtable.csv Or, with options specified: perl calculate_distance_weighted_msl_avg2.pl {options} MSL_global_trendtable.csv E.g., for debug prints: perl calculate_distance_weighted_msl_avg2.pl -d MSL_global_trendtable.csv 'MSL_global_trendtable.csv' is processed as follows: 1) Read all 159 records, noting the Mean Sea Level (MSL) trend for each station and the station's coordinates. 2) For each station location, check it against every other location, calculate the distance D between the two locations, and the correlation weight W calculated from the distance. Then (unless W=0) add the name/distance/weight triple to the list of nearby stations for that station location. 3) Also, for each location, sum the correlation weights of the nearby locations. 4) For each station, calculate its own weight W_own (to a maximum of 1.0) from the summed weights of the nearby stations, according to the formula: W_own = 1.0 / (1.0 + sum(nearby_weights)) Thus, an isolated station has a weight of 1.0, but a station near other stations has a lower weight; e.g., a station which is very near just 1 other station has a weight of about 0.5. 5) Finally, calculate the geographically weighted average linear MSL trend from all 159 stations, and display it. The following options are supported: -sort (sort the records by increasing MSL trend before processing) -first=xx (where xx is first record number to process; default xx=1) -last=xx (where xx is last record to process; default=all, normally xx=159) -limit=xx (set 'limit' distance in km, where correlation is 0; default xx=800) -knee=xx (set 'knee' distance, where correlation is 0.3333; default is 1/2 'limit') -duptest (do a 'duplicate records test' of geographically-weighted averaging) -alldist (test a broad range of possible '-limit' maximum correlation distances) -lmsl (also calculate SD & 95% CI for LMSLs, as well as for global avg MSL) -export (create the geo_weights.csv file, to export the geographical weights) -name=xx (where xx is field number of the station name, default xx=1) -years=xx (where xx is field number of the # years of operation, default xx=4) -trend=xx (where xx is field number of the MSL trend, default xx=5) -lat=xx (where xx is field number of the latitude, default xx=13) -lon=xx (where xx is field number of the longitude, default xx=14) -d (enable debug prints) -d -d (enable more debug prints) Problems/questions? Call or email: Dave Burton http://www.burtonsys.com/email/ +1-919-481-0149
To run the Perl program, you need Perl. If you use Linux, then Perl should already be installed on your system. If you use Windows, then you can either install Perl 5 or else just use the included standalone Perl 4.036 (which I included in code.zip as perl4.exe).
For our first example, consider the following command:
perl calculate_distance_weighted_msl_avg2.pl -sort -first=1 -last=159 MSL_global_trendtable.csv
It reads all 159 GLOSS-LTT tide station records from MSL_global_trendtable.csv,
and calculates:
1) the Median MSL trend,
2) the simple average MSL trend (with each tide station weighted
equally),
3) the average with each station-year weighted equally (i.e., with each
station weighted according to the number of years of operation),
4) the geographical-distance weighted average (with correlation weight
dropping to zero beyond 800 km), and
5) an average calculation which weights tide stations both on the basis of
distance from other tide stations and also according to the number of
years of operation:
The result is:
Median MSL trend = 1.0900 Simple average (avg1) = 0.6111 Equal station-year avg2 = 0.4586 Distance-weighted avg = 1.1330 +/- 0.0722 (SD=0.0368) (for knee=400 km [@ correlation weight 0.3333], and limit=800 km) Avg weighted BOTH ways = 1.0913
Since 1 through 159 is the full range of tide station records, the "-first=1" and "-last=159" options can be omitted, and this command is equivalent to the previous one:
perl calculate_distance_weighted_msl_avg2.pl -sort MSL_global_trendtable.csv
Sorting is unnecessary unless you wish to use the -first and/or -last options to exclude outliers, so you can omit the -sort option. This command gives the same result as the previous two commands:
perl calculate_distance_weighted_msl_avg2.pl MSL_global_trendtable.csv
(This is example1.bat under Windows, or ./example1 under Linux)
To exclude outliers, you should specify the "-sort" option along with the "-first=..." and/or "-last=..." options. The "-sort" option ensures that the first records are those with the lowest MSL trends, and the last records are those with the highest MSL trends. So, for instance, to exclude the stations with the ten lowest (most negative) MSL trends, and the stations with the five highest MSL trends, use this command:
perl calculate_distance_weighted_msl_avg2.pl -sort -first=11 -last=154 MSL_global_trendtable.csv
(This is example2.bat)
The result is:
*** 15 of 159 records excluded from processing. Median MSL trend = 1.1400 Simple average (avg1) = 0.9606 Equal station-year avg2 = 0.9202 Distance-weighted avg = 1.0310 +/- 0.0742 (SD=0.0379) (for knee=400 km [@ correlation weight 0.3333], and limit=800 km) Avg weighted BOTH ways = 1.0322
(Alternately, you can just edit the MSL_global_trendtable.csv input file and delete whatever tide stations you think should be excluded. It is a 159-line text file, with one line per tide station.)
The program assumes uses a piecewise linear approximating function for the degree to which nearby tide stations are correlated with one another. I've updated my analysis page, http://www.burtonsys.com/climate/global_msl_trend_analysis.html, to include a graph of it. Two tide stations at the same location (distance zero) have correlation weight 1.0, with the correlation weight assumed to be decrease linearly to 0.333 at the "knee" distance (default 400 km), and then decrease more gradually to zero at the "limit" distance (default 800 km).
The "knee" and "limit" distances (as shown in the graph) can be adjusted by command-line parameters. By default, "limit" is twice "knee," but if you specify both the "-knee=" and "-limit=" options you can change that. So, for example, if you think a more gradual slope beyond the "knee" distance would be better, you could use:
perl calculate_distance_weighted_msl_avg2.pl -knee=400 -limit=1200 MSL_global_trendtable.csv
(This is example3.bat)
The result is:
Median MSL trend = 1.0900 Simple average (avg1) = 0.6111 Equal station-year avg2 = 0.4586 Distance-weighted avg = 1.1527 +/- 0.0753 (SD=0.0384) (for knee=400 km [@ correlation weight 0.3333], and limit=1200 km) Avg weighted BOTH ways = 1.1167
As you see, it doesn't make much difference in the result.
You can both exclude outliers and adjust the knee and/or limit distances at the same time. This command will omit the 15 tide stations with lowest MSL trend and the 15 tide stations with highest MSL trend, and use a somewhat wider correlation range with limit=1000 and knee=500:
perl4 calculate_distance_weighted_msl_avg2.pl -sort -first=16 -last=144 -knee=500 MSL_global_trendtable.csv
(This is example4.bat)
The result is:
*** 30 of 159 records excluded from processing. Analyzing 129 records... Median MSL trend = 1.0900 Simple average (avg1) = 0.9271 Equal station-year avg2 = 0.9132 Distance-weighted avg = 0.9774 +/- 0.0822 (SD=0.0420) (for knee=500 km [@ correlation weight 0.3333], and limit=1000 km) Avg weighted BOTH ways = 1.0055
If you specify the "-alldist" option, then the program will calculate the geographical distance-weighted average MSL trend for a wide variety of "knee" values (with "limit" equal to 2x and 3x "knee"):
perl calculate_distance_weighted_msl_avg2.pl -alldist MSL_global_trendtable.csv
(This is example5.bat)
Here's the output of that command:
Median MSL trend = 1.0900 Simple average (avg1) = 0.6111 Equal station-year avg2 = 0.4586 Distance-weighted avg = 1.1330 +/- 0.0722 (SD=0.0368) (for knee=400 km [@ correlation weight 0.3333], and limit=800 km) Avg weighted BOTH ways = 1.0913 Distance-weighted avg = 0.6111 +/- 0.0440 CI=[0.5672..0.6551] (SD=0.0224) for knee=0 & limit=0 km Distance-weighted avg = 0.5905 +/- 0.0472 CI=[0.5432..0.6377] (SD=0.0241) for knee=50 & limit=100 km Distance-weighted avg = 0.6788 +/- 0.0486 CI=[0.6302..0.7274] (SD=0.0248) for knee=50 & limit=150 km Distance-weighted avg = 0.8037 +/- 0.0520 CI=[0.7517..0.8558] (SD=0.0266) for knee=100 & limit=200 km Distance-weighted avg = 0.8688 +/- 0.0546 CI=[0.8142..0.9234] (SD=0.0278) for knee=100 & limit=300 km Distance-weighted avg = 0.9247 +/- 0.0566 CI=[0.8681..0.9813] (SD=0.0289) for knee=150 & limit=300 km Distance-weighted avg = 0.9904 +/- 0.0598 CI=[0.9306..1.0502] (SD=0.0305) for knee=150 & limit=450 km Distance-weighted avg = 1.0061 +/- 0.0606 CI=[0.9454..1.0667] (SD=0.0309) for knee=200 & limit=400 km Distance-weighted avg = 1.0640 +/- 0.0642 CI=[0.9997..1.1282] (SD=0.0328) for knee=200 & limit=600 km Distance-weighted avg = 1.0648 +/- 0.0645 CI=[1.0002..1.1293] (SD=0.0329) for knee=250 & limit=500 km Distance-weighted avg = 1.1030 +/- 0.0675 CI=[1.0355..1.1705] (SD=0.0344) for knee=250 & limit=750 km Distance-weighted avg = 1.0862 +/- 0.0663 CI=[1.0199..1.1525] (SD=0.0338) for knee=275 & limit=550 km Distance-weighted avg = 1.1108 +/- 0.0691 CI=[1.0417..1.1798] (SD=0.0352) for knee=275 & limit=825 km Distance-weighted avg = 1.1029 +/- 0.0677 CI=[1.0352..1.1706] (SD=0.0345) for knee=300 & limit=600 km Distance-weighted avg = 1.1188 +/- 0.0706 CI=[1.0482..1.1893] (SD=0.0360) for knee=300 & limit=900 km Distance-weighted avg = 1.1180 +/- 0.0689 CI=[1.0491..1.1870] (SD=0.0352) for knee=325 & limit=650 km Distance-weighted avg = 1.1288 +/- 0.0720 CI=[1.0568..1.2008] (SD=0.0367) for knee=325 & limit=975 km Distance-weighted avg = 1.1286 +/- 0.0701 CI=[1.0586..1.1987] (SD=0.0357) for knee=350 & limit=700 km Distance-weighted avg = 1.1367 +/- 0.0733 CI=[1.0634..1.2100] (SD=0.0374) for knee=350 & limit=1050 km Distance-weighted avg = 1.1326 +/- 0.0711 CI=[1.0615..1.2037] (SD=0.0363) for knee=375 & limit=750 km Distance-weighted avg = 1.1451 +/- 0.0743 CI=[1.0709..1.2194] (SD=0.0379) for knee=375 & limit=1125 km Distance-weighted avg = 1.1330 +/- 0.0722 CI=[1.0608..1.2052] (SD=0.0368) for knee=400 & limit=800 km Distance-weighted avg = 1.1527 +/- 0.0753 CI=[1.0774..1.2280] (SD=0.0384) for knee=400 & limit=1200 km Distance-weighted avg = 1.1353 +/- 0.0733 CI=[1.0620..1.2086] (SD=0.0374) for knee=425 & limit=850 km Distance-weighted avg = 1.1598 +/- 0.0763 CI=[1.0835..1.2362] (SD=0.0389) for knee=425 & limit=1275 km Distance-weighted avg = 1.1378 +/- 0.0743 CI=[1.0635..1.2122] (SD=0.0379) for knee=450 & limit=900 km Distance-weighted avg = 1.1648 +/- 0.0773 CI=[1.0875..1.2421] (SD=0.0394) for knee=450 & limit=1350 km Distance-weighted avg = 1.1419 +/- 0.0754 CI=[1.0665..1.2173] (SD=0.0385) for knee=475 & limit=950 km Distance-weighted avg = 1.1645 +/- 0.0782 CI=[1.0862..1.2427] (SD=0.0399) for knee=475 & limit=1425 km Distance-weighted avg = 1.1454 +/- 0.0765 CI=[1.0689..1.2219] (SD=0.0390) for knee=500 & limit=1000 km Distance-weighted avg = 1.1625 +/- 0.0791 CI=[1.0835..1.2416] (SD=0.0403) for knee=500 & limit=1500 km Distance-weighted avg = 1.1491 +/- 0.0773 CI=[1.0718..1.2264] (SD=0.0394) for knee=525 & limit=1050 km Distance-weighted avg = 1.1608 +/- 0.0798 CI=[1.0810..1.2406] (SD=0.0407) for knee=525 & limit=1575 km Distance-weighted avg = 1.1541 +/- 0.0779 CI=[1.0762..1.2319] (SD=0.0397) for knee=550 & limit=1100 km Distance-weighted avg = 1.1600 +/- 0.0804 CI=[1.0796..1.2404] (SD=0.0410) for knee=550 & limit=1650 km Distance-weighted avg = 1.1591 +/- 0.0785 CI=[1.0807..1.2376] (SD=0.0400) for knee=575 & limit=1150 km Distance-weighted avg = 1.1603 +/- 0.0808 CI=[1.0795..1.2411] (SD=0.0412) for knee=575 & limit=1725 km Distance-weighted avg = 1.1641 +/- 0.0791 CI=[1.0850..1.2431] (SD=0.0404) for knee=600 & limit=1200 km Distance-weighted avg = 1.1603 +/- 0.0811 CI=[1.0792..1.2414] (SD=0.0414) for knee=600 & limit=1800 km Distance-weighted avg = 1.1732 +/- 0.0804 CI=[1.0928..1.2536] (SD=0.0410) for knee=650 & limit=1300 km Distance-weighted avg = 1.1608 +/- 0.0817 CI=[1.0791..1.2425] (SD=0.0417) for knee=650 & limit=1950 km Distance-weighted avg = 1.1746 +/- 0.0815 CI=[1.0932..1.2561] (SD=0.0416) for knee=700 & limit=1400 km Distance-weighted avg = 1.1639 +/- 0.0823 CI=[1.0816..1.2462] (SD=0.0420) for knee=700 & limit=2100 km Distance-weighted avg = 1.1640 +/- 0.0831 CI=[1.0809..1.2471] (SD=0.0424) for knee=800 & limit=1600 km Distance-weighted avg = 1.1630 +/- 0.0831 CI=[1.0800..1.2461] (SD=0.0424) for knee=800 & limit=2400 km Distance-weighted avg = 1.1622 +/- 0.0839 CI=[1.0783..1.2461] (SD=0.0428) for knee=900 & limit=1800 km Distance-weighted avg = 1.1700 +/- 0.0825 CI=[1.0875..1.2525] (SD=0.0421) for knee=900 & limit=2700 km Distance-weighted avg = 1.1636 +/- 0.0844 CI=[1.0792..1.2481] (SD=0.0431) for knee=1000 & limit=2000 km Distance-weighted avg = 1.1852 +/- 0.0821 CI=[1.1030..1.2673] (SD=0.0419) for knee=1000 & limit=3000 km Distance-weighted avg = 1.1743 +/- 0.0848 CI=[1.0895..1.2591] (SD=0.0433) for knee=1200 & limit=2400 km Distance-weighted avg = 1.1937 +/- 0.0803 CI=[1.1134..1.2739] (SD=0.0410) for knee=1200 & limit=3600 km Distance-weighted avg = 1.1955 +/- 0.0836 CI=[1.1119..1.2792] (SD=0.0427) for knee=1400 & limit=2800 km Distance-weighted avg = 1.1978 +/- 0.0789 CI=[1.1189..1.2767] (SD=0.0403) for knee=1400 & limit=4200 km Distance-weighted avg = 1.2161 +/- 0.0828 CI=[1.1334..1.2989] (SD=0.0422) for knee=1600 & limit=3200 km Distance-weighted avg = 1.1856 +/- 0.0790 CI=[1.1066..1.2646] (SD=0.0403) for knee=1600 & limit=4800 km Distance-weighted avg = 1.2160 +/- 0.0809 CI=[1.1350..1.2969] (SD=0.0413) for knee=1800 & limit=3600 km Distance-weighted avg = 1.1714 +/- 0.0795 CI=[1.0919..1.2509] (SD=0.0406) for knee=1800 & limit=5400 km Distance-weighted avg = 1.2141 +/- 0.0790 CI=[1.1351..1.2931] (SD=0.0403) for knee=2000 & limit=4000 km Distance-weighted avg = 1.1628 +/- 0.0807 CI=[1.0821..1.2435] (SD=0.0412) for knee=2000 & limit=6000 km Distance-weighted avg = 1.2074 +/- 0.0783 CI=[1.1291..1.2857] (SD=0.0399) for knee=2250 & limit=4500 km Distance-weighted avg = 1.1504 +/- 0.0827 CI=[1.0677..1.2330] (SD=0.0422) for knee=2250 & limit=6750 km Distance-weighted avg = 1.1893 +/- 0.0783 CI=[1.1110..1.2676] (SD=0.0399) for knee=2500 & limit=5000 km Distance-weighted avg = 1.1454 +/- 0.0838 CI=[1.0616..1.2292] (SD=0.0427) for knee=2500 & limit=7500 km Distance-weighted avg = 1.1743 +/- 0.0793 CI=[1.0951..1.2536] (SD=0.0404) for knee=2750 & limit=5500 km Distance-weighted avg = 1.1363 +/- 0.0832 CI=[1.0531..1.2195] (SD=0.0425) for knee=2750 & limit=8250 km Distance-weighted avg = 1.1623 +/- 0.0809 CI=[1.0814..1.2432] (SD=0.0413) for knee=3000 & limit=6000 km Distance-weighted avg = 1.1224 +/- 0.0817 CI=[1.0407..1.2041] (SD=0.0417) for knee=3000 & limit=9000 km Distance-weighted avg = 1.1372 +/- 0.0843 CI=[1.0529..1.2215] (SD=0.0430) for knee=3500 & limit=7000 km Distance-weighted avg = 1.0849 +/- 0.0756 CI=[1.0093..1.1605] (SD=0.0386) for knee=3500 & limit=10500 km Distance-weighted avg = 1.1218 +/- 0.0842 CI=[1.0375..1.2060] (SD=0.0430) for knee=4000 & limit=8000 km Distance-weighted avg = 1.0298 +/- 0.0688 CI=[0.9611..1.0986] (SD=0.0351) for knee=4000 & limit=12000 km Distance-weighted avg = 1.0963 +/- 0.0822 CI=[1.0141..1.1785] (SD=0.0419) for knee=4500 & limit=9000 km Distance-weighted avg = 0.9795 +/- 0.0639 CI=[0.9156..1.0433] (SD=0.0326) for knee=4500 & limit=13500 km Distance-weighted avg = 1.0681 +/- 0.0782 CI=[0.9900..1.1463] (SD=0.0399) for knee=5000 & limit=10000 km Distance-weighted avg = 0.9362 +/- 0.0597 CI=[0.8764..0.9959] (SD=0.0305) for knee=5000 & limit=15000 km Distance-weighted avg = 1.0310 +/- 0.0725 CI=[0.9585..1.1034] (SD=0.0370) for knee=5500 & limit=11000 km Distance-weighted avg = 0.8985 +/- 0.0568 CI=[0.8417..0.9554] (SD=0.0290) for knee=5500 & limit=16500 km Distance-weighted avg = 0.9901 +/- 0.0680 CI=[0.9221..1.0580] (SD=0.0347) for knee=6000 & limit=12000 km Distance-weighted avg = 0.8682 +/- 0.0550 CI=[0.8132..0.9231] (SD=0.0280) for knee=6000 & limit=18000 km Distance-weighted avg = 0.9530 +/- 0.0646 CI=[0.8885..1.0176] (SD=0.0329) for knee=6500 & limit=13000 km Distance-weighted avg = 0.8424 +/- 0.0538 CI=[0.7886..0.8961] (SD=0.0274) for knee=6500 & limit=19500 km Distance-weighted avg = 0.9223 +/- 0.0614 CI=[0.8608..0.9837] (SD=0.0314) for knee=7000 & limit=14000 km Distance-weighted avg = 0.8228 +/- 0.0530 CI=[0.7698..0.8758] (SD=0.0270) for knee=7000 & limit=21000 km Distance-weighted avg = 0.8947 +/- 0.0588 CI=[0.8359..0.9535] (SD=0.0300) for knee=7500 & limit=15000 km Distance-weighted avg = 0.8090 +/- 0.0524 CI=[0.7566..0.8614] (SD=0.0267) for knee=7500 & limit=22500 km Distance-weighted avg = 0.8704 +/- 0.0567 CI=[0.8137..0.9271] (SD=0.0289) for knee=8000 & limit=16000 km Distance-weighted avg = 0.7989 +/- 0.0520 CI=[0.7469..0.8509] (SD=0.0265) for knee=8000 & limit=24000 km Distance-weighted avg = 0.8493 +/- 0.0553 CI=[0.7940..0.9045] (SD=0.0282) for knee=8500 & limit=17000 km Distance-weighted avg = 0.7905 +/- 0.0517 CI=[0.7387..0.8422] (SD=0.0264) for knee=8500 & limit=25500 km Distance-weighted avg = 0.8306 +/- 0.0541 CI=[0.7765..0.8848] (SD=0.0276) for knee=9000 & limit=18000 km Distance-weighted avg = 0.7830 +/- 0.0515 CI=[0.7315..0.8345] (SD=0.0263) for knee=9000 & limit=27000 km Distance-weighted avg = 0.8136 +/- 0.0532 CI=[0.7604..0.8669] (SD=0.0272) for knee=9500 & limit=19000 km Distance-weighted avg = 0.7759 +/- 0.0513 CI=[0.7246..0.8273] (SD=0.0262) for knee=9500 & limit=28500 km Distance-weighted avg = 0.7990 +/- 0.0525 CI=[0.7465..0.8515] (SD=0.0268) for knee=10000 & limit=20000 km Distance-weighted avg = 0.7696 +/- 0.0511 CI=[0.7185..0.8206] (SD=0.0261) for knee=10000 & limit=30000 km
As you can see, no hypothesized correlation limit (reasonable or
unreasonable) results in a geographical distance-weighted global
average MSL trend of more than about 1.2 mm/year.
A Confidence Interval calculation based on 1.96 x the distance-weighted standard deviation yields a 95% confidence interval of 1.133 +/- 0.072 mm/year using the best estimate distance weighting function (knee=400 km & limit=800 km). However, there is also some uncertainty associated with the distance-weighting function. Although it appears that a "knee" of about 400 km and a "limit" of about 800 km best approximates the observed curve, a reasonable range of "knee" distances would be from about 275 km to about 600 km.
So I repeated the distance-weighted average and standard deviation calculations for knee values at 25 km intervals over that range. For each "knee" value, I tested "limit" values of both 2x and 3x the "knee" value. (See the results above.)
The effect was to somewhat expand the 95% confidence interval. The lowest lower-bound of the 95% CI over that range of knee & limit distances was 1.020 mm/year (for knee=275 km & limit=550 km), and the highest upper-bound was 1.243 mm/year (for knee=600 km & limit=1200 km).
The combined 95% confidence interval is therefore [1.020 - 1.243 mm/yr], and the deviation from the mean of 1.133 is 0.113 on the low side and 0.110 on the high side. Rounding the later up gives a final (conservative) 95% Confidence Interval of 1.133 +/- 0.113 mm/year.
Note #1: It is important to recognize what the confidence interval represents. It expresses the error margin for the calculated geographically-weighted average mean sea level trend, which is an approximation of the eustatic sea level trend. It does not predict individual tide stations' local mean sea level (LMSL) trends.
Due to local factors (land rising or falling), the LMSL trends at most locations are well outside that 1.133 +/- 0.113 mm/year confidence interval. Doing an analysis of variance calculation for local mean sea level trends yields a much broader confidence interval. Without distance weighting, the 95% CI for LMSL is -4.6 to +5.8 mm/year (and 6%, rather than 5%, of the 159 stations are actually outside that range, due to the cluster of Scandinavian stations where the land levels are rising). With distance weighting (which reduces the influence of the cluster of Scandinavian stations on the result) the 95% CI for LMSL is -3.0 to +5.2 mm/year. (Run example7.bat or specify the "-lmsl" option to calculate_distance_weighted_msl_avg2.pl to do these calculations.)
Note #2: I am very grateful to Drs. Gordon Simons for
and Dave Dickey for their expert advice on statistical calculations.
However, any errors are solely my own responsibility.
So, what would it take to get the IPCC's result of 1.8 mm/year? Well, extreme cherry-picking of the data would do it. We could calculate a 1.8 mm/year global MSL trend as a distance-weighted average result by excluding the 36 tide stations with the lowest MSL trends, and keeping all of the tide stations with highest MSL trends, like this:
perl calculate_distance_weighted_msl_avg2.pl -sort -first=37 MSL_global_trendtable.csv
Obviously, excluding the data from the lowest 23% of the tide stations is not reasonable. But if we did so, the result would be:
*** 36 of 159 records excluded from processing. Median MSL trend = 1.5000 Simple average (avg1) = 1.7276 Equal station-year avg2 = 1.6464 Distance-weighted avg = 1.7563 +/- 0.0759 (for knee=400 km [@ correlation weight 0.3333], and limit=800 km) Avg weighted BOTH ways = 1.6970
For comparison, see what happens if we exclude just the 36 tide stations with the highest MSL trends, like this:
perl calculate_distance_weighted_msl_avg2.pl -sort -last=123 MSL_global_trendtable.csv
The result is:
*** 36 of 159 records excluded from processing. Median MSL trend = 0.6300 Simple average (avg1) = -0.1811 Equal station-year avg2 = -0.2528 Distance-weighted avg = 0.5053 +/- 0.0783 (for knee=400 km [@ correlation weight 0.3333], and limit=800 km) Avg weighted BOTH ways = 0.5537
It is hard to imagine how the MSL trend data from the 159 GLOSS-LTT tide stations could be tortured in any reasonable way into justifying the IPCC's claimed global +1.8 mm/year MSL trend.
P.S. - My main page on Global Mean Sea Level (MSL) Trend Analysis is:
http://www.burtonsys.com/climate/global_msl_trend_analysis.html
For more climate info see:
http://www.burtonsys.com/climate