tag:blogger.com,1999:blog-112153282024-03-07T15:53:42.110-08:00facing the fireclimate and climate change news and viewsUnknownnoreply@blogger.comBlogger345125tag:blogger.com,1999:blog-11215328.post-75413920050576281812019-03-10T19:40:00.002-07:002019-03-10T19:41:53.855-07:00Photos Library backup using python and launchd<h2>
The problem at hand</h2>
We use a large, external drive to store the household Photos library (Photos as in Apple Photos.app). The external drive is already backed up using one of the popular cloud backup services. I want to have a more convenient backup in case of catastrophic damage to the drive, which would reduce the time it takes to recover all our photos.<br />
<br />
<h2>
Assess the options and devise a plan</h2>
Given that the drive is already backed up to the cloud, we have some freedom. We could just connect another drive and do some kind of back up; we could set up Time Machine to do something (maybe); we could try to move the library to the computer's drive and then use the external drive as a back up; we could occasionally copy the photos to another drive or computer. I happen to have a Synology NAS ready for this type of thing, so I will use that. Instead of relying on my memory or even an automated reminder to go and sit in front of my computer and do periodic backups, I will automate the backup.<br />
<br />
<b>Here's the plan:</b> write a script that will do the backup of the Photos library to the NAS, and then schedule that script to run regularly. Easy.<br />
<br />
<br />
<h2>
Implementation</h2>
<br />
<h3>
1. Enable SSH using keys on Synology</h3>
My Synology NAS is obviously under utilized, since I had never bothered to set up SSH keys before. It turns out to be easy, but only because others have already documented the process.<br />
<br />
Follow instuctions posted here:<br />
<a href="https://forum.synology.com/enu/viewtopic.php?t=126166">https://forum.synology.com/enu/viewtopic.php?t=126166</a><br />
<br />
Note, at first I did all the steps except setting the home directory permissions. Turns out that post is correct that it is necessary. You need to change the permissions on the home directory or else SSH will still just prompt for the user password even though the keys are present.<br />
<br />
Once this step is done, you can ssh into the NAS without entering a password.<br />
<br />
<br />
<h3>
2. Initial backup of the Photos library</h3>
Again, this road has been taken. For example:<br />
<br />
<a href="https://kevingoedecke.me/2015/08/30/backup-mac-photos-library-with-rsync-over-ssh/">https://kevingoedecke.me/2015/08/30/backup-mac-photos-library-with-rsync-over-ssh/</a><br />
<br />
In that example they use <span style="font-family: "courier new" , "courier" , monospace;">rsync</span>, and I don't see any reason that isn't a great way to go for my purposes. I'm taking most of that <span style="font-family: "courier new" , "courier" , monospace;">rsync</span> command, but I'm removing the "<span style="font-family: "courier new" , "courier" , monospace;">--delete</span>" just in case (I have room, so no need to worry about it).<br />
<br />
On the NAS, make a location for the backup:<br />
<span style="font-family: "courier new" , "courier" , monospace;">cd /volume1/some_place</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">mkdir photos_library_backup</span><br />
<br />
Just as a note for those who haven't looked at this before, it important to realize that the Photos library is called something like<br />
<span style="font-family: "courier new" , "courier" , monospace;">/Volumes/external_drive/Photos\ Library.photoslibrary</span><br />
<br />
I don't know any details about this, but I do know that it isn't a "file", but more like a directory. You can even just cd into it and look around.<br />
<br />
The command that I'm using will be something like this:<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">rsync -Phca --stats --include<span style="color: #333333;">=</span><span style="background-color: #fff0f0;">"/Photos Library.photoslibrary/"</span> --include<span style="color: #333333;">=</span><span style="background-color: #fff0f0;">"/Photos Library.photoslibrary/***"</span> --exclude<span style="color: #333333;">=</span><span style="background-color: #fff0f0;">"*"</span> -e <span style="background-color: #fff0f0;">"ssh"</span> <span style="background-color: #fff0f0;">"/Volumes/external_drive/"</span> my_name@external_drive.local:/photos_library_backup/
</pre>
</div>
<br />
<h3>
3. Set up automation with launchd</h3>
The post from Kevin Goedecke uses a shell (<span style="font-family: "courier new" , "courier" , monospace;">sh</span>) script and <span style="font-family: "courier new" , "courier" , monospace;">crontab</span>, but this is not the Apple way. We should use <span style="font-family: "courier new" , "courier" , monospace;">launchd</span>.<br />
<br />
I'm no expert at launchd, so I looked at a bunch of examples. Here are a few:<br />
<br />
A pretty nice quick overview:<br />
<a href="https://stackoverflow.com/questions/132955/how-do-i-set-a-task-to-run-every-so-often">https://stackoverflow.com/questions/132955/how-do-i-set-a-task-to-run-every-so-often</a><br />
<br />
See also:<br />
<a href="https://killtheyak.com/schedule-jobs-launchd/">https://killtheyak.com/schedule-jobs-launchd/</a><br />
<br />
And:<br />
<a href="http://www.launchd.info/">http://www.launchd.info</a><br />
<br />
The bottom line is that you have to choose if you want the job to run only when you are logged in, or allow it to run as root. I want it to go ahead and run as root, since the photos library might be updated by other uses when I am not around. To do that, we just need to put a proper "plist" file into <span style="font-family: "courier new" , "courier" , monospace;">/Library/LauchDaemons</span>. A plist file is just an xml file, but we have to follow some conventions which all the above links describe. Since this is a super simple job, my plist file is 20 lines.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #557799;"><?xml version="1.0" encoding="UTF-8"?></span>
<span style="color: #557799;"><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"></span>
<span style="color: #007700;"><plist</span> <span style="color: #0000cc;">version=</span><span style="background-color: #fff0f0;">"1.0"</span><span style="color: #007700;">></span>
<span style="color: #007700;"><dict></span>
<span style="color: #007700;"><key></span>Label<span style="color: #007700;"></key></span>
<span style="color: #007700;"><string></span>local.photo_backup<span style="color: #007700;"></string></span>
<span style="color: #007700;"><key></span>ProgramArguments<span style="color: #007700;"></key></span>
<span style="color: #007700;"><array></span>
<span style="color: #007700;"><string></span>/anaconda3/bin/python<span style="color: #007700;"></string></span>
<span style="color: #007700;"><string></span>/HOME/Code/escape/photo_backup.py<span style="color: #007700;"></string></span>
<span style="color: #007700;"></array></span>
<span style="color: #007700;"><key></span>StartCalendarInterval<span style="color: #007700;"></key></span>
<span style="color: #007700;"><dict></span>
<span style="color: #007700;"><key></span>Hour<span style="color: #007700;"></key></span>
<span style="color: #007700;"><integer></span>3<span style="color: #007700;"></integer></span>
<span style="color: #007700;"><key></span>Minute<span style="color: #007700;"></key></span>
<span style="color: #007700;"><integer></span>0<span style="color: #007700;"></integer></span>
<span style="color: #007700;"></dict></span>
<span style="color: #007700;"></dict></span>
<span style="color: #007700;"></plist></span>
</pre>
</td></tr>
</tbody></table>
</div>
Essentially, the file says to run a python script at regular intervals. Arbitrarily, I'll just do it every morning at 3am, but it could have been less frequent.<br />
<br />
<h3>
4. Write a script to do the backup</h3>
<br />
The plist just schedules a job. That job is actually to run a python script. There are so many things that you could do here, but I'm just interested in doing one thing withoug incident: run rsync to backup my whole Photos Library.<br />
<br />
There's not going to be anything fancy, but I think this does the job correctly. I will use <span style="font-family: "courier new" , "courier" , monospace;">subprocess.call() </span>to invoke rsync, exactly as I did for my initial backup in step 2. That could have been put into a shell script, or even a python script, using very few lines.<br />
<br />
I was slightly worried about what would happen if the external drive were unmounted/removed when the script was run. This could definitely happen; I think all the external drives get unmounted when no one is logged in to the system. So I put in a check, just to see if the path to the external drive seems valid:<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;">from</span> <span style="color: #0e84b5; font-weight: bold;">pathlib</span> <span style="color: #008800; font-weight: bold;">import</span> Path
<span style="color: #008800; font-weight: bold;">if</span> local_loc<span style="color: #333333;">.</span>exists() <span style="color: black; font-weight: bold;">and</span> local_loc<span style="color: #333333;">.</span>is_dir():
<span style="color: #888888;"># proceed</span>
<span style="color: #008800; font-weight: bold;">else</span>:
<span style="color: #008800; font-weight: bold;">raise</span> <span style="color: red; font-weight: bold;">IOError</span>(<span style="background-color: #fff0f0;">"Something is wrong"</span>)
</pre>
</div>
I did notice that in python 3.7 there is a path.is_mount() function, but the machine running the script is still on 3.6. After a minute of thinking about it, I decided that it does not really matter if if the location is a mount, what matters is whether it is there, so I went with this version.<br />
<br />
The script also defines where to point the rsync command, which is just a string. So the work is basically accomplished by<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">prc <span style="color: #333333;">=</span> subprocess<span style="color: #333333;">.</span>run([<span style="background-color: #fff0f0;">"rsync"</span>, <span style="background-color: #fff0f0;">"-Phca"</span>, <span style="background-color: #fff0f0;">"--stats"</span>, <span style="background-color: #fff0f0;">'--include="/Photos Library.photoslibrary/"'</span>,
<span style="background-color: #fff0f0;">'--include="/Photos Library.photoslibrary/***"'</span>, <span style="background-color: #fff0f0;">'--exclude="*"'</span>, <span style="background-color: #fff0f0;">'-e'</span>, <span style="background-color: #fff0f0;">'"ssh"'</span>, local_loc, remot_plc],
stdout<span style="color: #333333;">=</span>subprocess<span style="color: #333333;">.</span>PIPE,
stderr<span style="color: #333333;">=</span>subprocess<span style="color: #333333;">.</span>STDOUT,)
</pre>
</div>
where local_loc is the path to the library on the external drive and remot_plc is the path on the NAS. The stdout and stderr keyword arguments put the output of rsync into one attribute of prc.<br />
<br />
I used that stdout/stderr in order to write a useful log file. I am just using the standard library logging module, and setting a log file for each daily run using a simple timestamp:<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">logging</span>
<span style="color: #008800; font-weight: bold;">from</span> <span style="color: #0e84b5; font-weight: bold;">datetime</span> <span style="color: #008800; font-weight: bold;">import</span> datetime
<span style="color: #888888;"># construct the log file name using today's date</span>
logloc <span style="color: #333333;">=</span> Path(<span style="background-color: #fff0f0;">"/HOME/logs/"</span>)
lognam <span style="color: #333333;">=</span> datetime<span style="color: #333333;">.</span>now()<span style="color: #333333;">.</span>strftime(<span style="background-color: #fff0f0;">'photo_backup_log_%Y%m%d_%H%M.log'</span>)
logfil <span style="color: #333333;">=</span> logloc<span style="color: #333333;">/</span>lognam
logging<span style="color: #333333;">.</span>basicConfig(level<span style="color: #333333;">=</span>logging<span style="color: #333333;">.</span>INFO, filename<span style="color: #333333;">=</span>logfil)
</pre>
</div>
The subprocess.run() function uses stdout=subprocess.PIPE to put the stdout of rsync into an attribute of prc called stdout as a bytes object. I have a little function that parses that bytes object into a list of strings split on the newline character:<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;">def</span> <span style="color: #0066bb; font-weight: bold;">log_subprocess_output</span>(p):
lines <span style="color: #333333;">=</span> p<span style="color: #333333;">.</span>stdout<span style="color: #333333;">.</span>decode(<span style="background-color: #fff0f0;">"utf-8"</span>)<span style="color: #333333;">.</span>split(<span style="background-color: #fff0f0;">"</span><span style="background-color: #fff0f0; color: #666666; font-weight: bold;">\n</span><span style="background-color: #fff0f0;">"</span>)
<span style="color: #008800; font-weight: bold;">for</span> line <span style="color: black; font-weight: bold;">in</span> lines:
logging<span style="color: #333333;">.</span>info(line)
</pre>
</div>
This is called right after the subprocess.call(); it just puts all the output from rsync into the log file.<br />
<br />
That's it. We now have a script that will try to run rsync to backup any changes we have made to the Photos library to a designated place on the NAS. If the external drive isn't available, it will raise an exception and exit. It logs all the steps to a timestamped file. The script is run by a root process at 3am every day. Not bad for 50 lines of python with no dependencies and a 20 line plist file.<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-8408678377415850822019-02-16T08:30:00.001-08:002019-02-16T08:30:56.744-08:00Trimming time series with xarrayThere are many times when a data set starts and/or ends at an inconvenient time. My most common experience with this is obtaining an observational data set that begins and ends at months in the middle of the year, but I want to either look at annual means or derive anomalies. These dangling months can be cumbersome, and most of the time I find that the easiest way to deal with them is to trim them off.<br />
<br />
Just to be explicit, say I have data in which the time coordinate is something like:<br />
<blockquote class="tr_bq">
time = ["1920-03-15", "1920-04-15", "1920-05-15", ... , "1987-09-15", "1987-10-15"]</blockquote>
It's monthly data, and I know that there are no gaps, but it starts in March and ends in October.<br />
<br />
To deal with this easily, I use the argmax function in xarray. This function returns the index of the maximum of the argument, and in case of multiple equal maxima, the index of the first occurrence. It is worth noting that argmax is directly using numpy's argmax function. So, I just construct a test for what I want for the beginning and ending and look for the first true value (=1). Here's an example in which I have some xarray DataSet called ds that has a time coordinate; note that I've already made sure that the time coordinate can be decoded so we can use the 'dt' accessor.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #202020; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<table><tbody>
<tr><td><pre style="line-height: 125%; margin: 0;">1
2
3
4
5
6
7
8</pre>
</td><td><pre style="line-height: 125%; margin: 0;"><span style="color: #d0d0d0;">time</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">ds_smpl[</span><span style="color: #ed9d13;">'time'</span><span style="color: #d0d0d0;">]</span>
<span style="color: #d0d0d0;">months</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">time.dt.month</span>
<span style="color: #d0d0d0;">first_january</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">np.asscalar((time.dt.month</span> <span style="color: #d0d0d0;">==</span> <span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">).argmax())</span> <span style="color: #999999; font-style: italic;">
# argmax will return the index of the first True (= 1) value</span>
<span style="color: #d0d0d0;">last_december</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">np.asscalar(-</span><span style="color: #3677a9;">1</span> <span style="color: #d0d0d0;">-</span> <span style="color: #d0d0d0;">(time.dt.month</span> <span style="color: #d0d0d0;">==</span> <span style="color: #3677a9;">12</span><span style="color: #d0d0d0;">)[::-</span><span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">].argmax())</span>
<span style="color: #d0d0d0;">ds_trim</span> <span style="color: #d0d0d0;">=</span> <span style="color: #d0d0d0;">ds_smpl.isel(time=</span><span style="color: #24909d;">slice</span><span style="color: #d0d0d0;">(first_january,</span> <span style="color: #d0d0d0;">last_december+</span><span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">))</span> <span style="color: #999999; font-style: italic;">
# +1 b/c slice is exclusive on end</span>
<span style="color: #6ab825; font-weight: bold;">print</span><span style="color: #d0d0d0;">(f</span><span style="color: #ed9d13;">"Index of first January is {first_january} and last december is {last_december}"</span><span style="color: #d0d0d0;">)</span>
<span style="color: #6ab825; font-weight: bold;">print</span><span style="color: #d0d0d0;">(ds_trim[</span><span style="color: #ed9d13;">'time'</span><span style="color: #d0d0d0;">][</span><span style="color: #3677a9;">0</span><span style="color: #d0d0d0;">].values)</span>
<span style="color: #6ab825; font-weight: bold;">print</span><span style="color: #d0d0d0;">(ds_trim[</span><span style="color: #ed9d13;">'time'</span><span style="color: #d0d0d0;">][-</span><span style="color: #3677a9;">1</span><span style="color: #d0d0d0;">].values)</span>
</pre>
</td></tr>
</tbody></table>
</div>
<br />
The same strategy can be used for other kinds of trimming of time series. If you know the times that you want a priori, this is overkill because you could directly slice that data out of your data set, but when you just want to get a whole number of years or similar, this is the easiest method I've found.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-81428145783463507572019-01-21T08:49:00.000-08:002019-01-21T08:49:26.108-08:00Best Python resources for 2019<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
After listening to Talk Python to Me 194, I started thinking about what I would recommend to people who are getting started with python. It's a complicated question, actually, because it depends on what this hypothetical neophyte intends to do, and more importantly, whether she/he is interested in getting nerdy about python or just wants to know enough to get it done. </div>
<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
In any case, it doesn't really matter, because lists like this aren't really for this hypothetical person. This is a list of stuff I like, and that I recommend. So let's not get caught up in some conceit, and just get to a list of good python resources.</div>
<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
First, I find a lot of utility in the posts at <a href="https://realpython.com/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">RealPython.com</a>. Each post is based on a python package or a feature and gives a fairly detailed walk through of that topic. They aren't always relevant for my own uses, but I even read some of those to get a better idea of how the other half live. Other good sites that are worth visiting include <a href="https://www.fullstackpython.com/table-of-contents.html" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">FullStackPython.com</a>, <a href="https://www.python.org/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Python.org</a>, and <a href="https://scipy.org/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">SciPy.org</a>. The latter two lead to the official documentation, which is sometimes (not always) useful for learning about the details. I've also got a news feed set up for python-related content (using Feedly), and much of the content actually comes through <a href="https://planetpython.org/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">PlanetPython.org</a>; it's more of a mixed bag but I find and read enough content through it that it is worth mentioning.</div>
<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
I listen to two podcasts focused on python, both hosted by Michael Kennedy: <a href="https://talkpython.fm/home" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Talk Python To Me</a> and <a href="https://pythonbytes.fm/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Python Bytes</a>. The first is an interview show, usually with a developer or someone who works in some corner of the python world. The second is a weekly python news show, and they really do a great job of finding the breaking python news and reporting on new and interesting projects. I recommend both, but Python Bytes seems nearly essential at this point. There are other python podcasts, but I haven't gotten into regularly listening to any of them. I think that's because the ones I've heard get a little too into details that I don't care about, especially about web development (a topic that I know nothing about and I get lost very quickly).</div>
<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
On the video front, there are a couple of content providers worth subscribing to. First is <a href="https://www.youtube.com/channel/UCI0vQvr9aFn27yR6Ej6n5UA" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Dan Bader's videos</a>; he's the now runs RealPython.com, too, and his videos are well produced, reasonable length tutorials that are usually on some feature of standard python. I think his publishing frequency as decreased since moving to RealPython.com, but some of his videos are worth revisiting. I also highly recommend the <a href="https://www.youtube.com/user/schafer5" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">videos by Corey Schafer</a>. He provides more step-by-step tutorials, and does a great job of stepping through and building up lessons. I also keep an eye on <a href="https://www.youtube.com/channel/UCtxCXg-UvSnTKPOzLH4wJaQ" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Coding Tech</a>, which often has videos on programming that are interesting. I also watch a lot of the recorded presentations from python conferences: PyCon, PyData, SciPy especially, but others as well (<a href="https://www.python.org/community/workshops/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">list</a>, <a href="https://pyvideo.org/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">PyVideo.org</a>). I also think the <a href="https://www.youtube.com/user/SocraticaStudios" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Socratica python videos</a> are good, if a bit hoakey. Finally, <a href="https://www.youtube.com/user/EnthoughtMedia" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Enthought</a> publishes a lot of useful videos, and seem to be responsible for the SciPy conference talks.</div>
<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px;">
Finally, tools for leveling up your python skills. There are tons of resources out there, and I have not tried all of them. I have experimented, and I've returned to a few of them. First is <a href="https://projecteuler.net/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">ProjectEuler.net</a>. It isn't a python site; it really isn't even a coding site, so much as an algorithm and math site. It's just a list of problems, you have to solve the problem in input the answer; that unlocks a discussion board about that problem where you can see other solutions and sometimes detailed "official" solutions with explanation. I haven't done very many of the problems still, but I find them to be more fun to do than other similar sites. A more sophisticated version of the same concept is <a href="https://codesignal.com/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">CodeSgnal</a>, which used to be called CodeFights. The problems are much more computer science focused, and geared toward developers and want-to-be developers getting ready for interviews. The fun thing is that the site provides a full programming environment and your whole code is supplied and run to get the solutions. It is well designed and many of the problems that I've done have been fun. You can choose from many languages, so it is not a python-specific resource. CodeSignal seems to be nearly the same idea as CodeWars, which I have not tried. A new one to keep an eye on is <a href="https://coder.com/" style="box-sizing: border-box; color: #0366d6; text-decoration: none;">Coder.com</a>; this is VSCode in the browser with access to computational resources. I'm not sure where this is going, but it seems well-made and interesting. </div>
<div style="box-sizing: border-box; caret-color: rgb(36, 41, 46); color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px;">
Okay, finally, finally is the omnipresent internet resource for coding things: stackoverflow. I don't really like SO in many ways. The main ones are (a) I don't think people do a good job of asking their questions, and (b) people get pedantic (or just jerky) about answering questions. That said, a lot of the answers are very useful, and the best ones provide great guidance and insight about how things work.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-74619069460858571922019-01-10T10:16:00.001-08:002019-01-10T10:16:22.807-08:00In-place upgrade from python 3.6 to 3.7Based on reports <a href="https://pythonbytes.fm/">Python Bytes</a> and from <a href="https://hackernoon.com/which-is-the-fastest-version-of-python-2ae7c61a6b2b" rel="nofollow">[here]</a> and <a href="https://speed.python.org/comparison/">[there]</a> it seems like 3.7 is generally faster than 3.6. So, I decided to try it. On one machine, I set up a fresh conda environment with 3.7 and installed all the packages I typically use. The first time I did that, which was months ago, not everything was working, and I put this upgrade plan on hold. Later, I re-tested, and all my packages seemed to be playing nicely with 3.7. I worked in that environment for a while with no problems.<br />
<br />
During down time today, I thought it might be good to move another machine to 3.7. This time I decided to take the leap and move my base environment to python 3.7 from 3.6.6. Why not?<br />
<br />
There is one step:<br />
<span style="font-family: Courier New, Courier, monospace;">$ conda install python=3.7</span><br />
<br />
This takes some time for conda to "solve" the environment. I'm not sure what this actually does, but since it checks for dependencies, it is no wonder that it will take a while because essentially every installed package will need to be removed and reinstalled.<br />
<br />
<i>One potential gotcha with this approach is that anything that was pip installed will need to be reinstalled. I think there are a couple of these, but I don't know how to tell which are which. Oh well, I guess I'll find out when something breaks. </i><br />
<br />
Eventually the environment does get solved, and a plan is constructed. Answer<span style="font-family: Courier New, Courier, monospace;"> 'y' </span>and conda dutifully downloads and extracts many packages.<br />
<br />
<blockquote class="tr_bq">
Conda does all the work:<br />Preparing transaction step happens with the spinning slash, and finishes.<br />Verification step happens with the spinning slash, and finishes.<br />Removing some deprecated stuff (jupyter js widgets) ... And then enabling notebook extensions and validating. Give the OK.<br />Prints done, returns the prompt.</blockquote>
<br />
Did it work?<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$which python</span><br />
<span style="font-family: Courier New, Courier, monospace;">/Users/brianpm/anaconda3/bin/python</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">$python --version</span><br />
<span style="font-family: Courier New, Courier, monospace;">Python 3.7.1</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">$python</span><br />
<span style="font-family: Courier New, Courier, monospace;">Python 3.7.1 | packaged by conda-forge | (default, Nov 13 2018, 09:50:42)</span><br />
<span style="font-family: Courier New, Courier, monospace;">[Clang 9.0.0 (clang-900.0.37)] :: Anaconda custom (64-bit) on darwin</span><br />
<span style="font-family: Courier New, Courier, monospace;">Type "help", "copyright", "credits" or "license" for more information.</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> print(2.**8)</span><br />
<span style="font-family: Courier New, Courier, monospace;">256.0</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> import numpy as np</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> import pandas as pd</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> import matplotlib as mpl</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> import xarray as xr</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> xr.DataArray(np.random.randn(2, 3))</span><br />
<span style="font-family: Courier New, Courier, monospace;"><xarray .dataarray="" 2="" 3="" dim_0:="" dim_1:=""></xarray></span><br />
<span style="font-family: Courier New, Courier, monospace;">array([[-0.355778, 0.836539, 0.210377],</span><br />
<span style="font-family: Courier New, Courier, monospace;"> [ 0.480935, 0.469618, -0.101545]])</span><br />
<span style="font-family: Courier New, Courier, monospace;">Dimensions without coordinates: dim_0, dim_1</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> data = xr.DataArray(np.random.randn(2, 3), coords={'x': ['a', 'b']}, dims=('x', 'y'))</span><br />
<span style="font-family: Courier New, Courier, monospace;">>>> xr.DataArray(pd.Series(range(3), index=list('abc'), name='foo'))</span><br />
<span style="font-family: Courier New, Courier, monospace;"><xarray .dataarray="" 3="" dim_0:="" foo=""></xarray></span><br />
<span style="font-family: Courier New, Courier, monospace;">array([0, 1, 2])</span><br />
<span style="font-family: Courier New, Courier, monospace;">Coordinates:</span><br />
<span style="font-family: Courier New, Courier, monospace;"> * dim_0 (dim_0) object 'a' 'b' 'c'</span><br />
<br />
Okay, this seems to be working. Repeated similar interactive test with ipython. So far, so good.<br />
<br />
Lesson: conda is kind of amazing.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-86369748836422279472018-06-04T08:42:00.000-07:002018-06-04T08:42:46.609-07:00On Microsoft acquiring GitHubIn the news today is that Microsoft is acquiring GitHub (<a href="https://getpocket.com/a/read/2213055982">Pocket Link</a> to Verge). That's a big deal for a lot of big (and small) open source projects. It's definitely going to rub a lot of open-source developers the wrong way, as many are motivated to contribute to open source projects as a direct response to decades of difficulties with Microsoft.<br />
<br />
I am not a Microsoft user, nor a fan. But I do acknowledge that there's been some apparent improvements over the past few years under CEO Satya Nadella. They have some open projects that are notable, especial <a href="https://code.visualstudio.com/" target="_blank">VS Code</a>, which is becoming very popular. From what I hear, Windows is still a monstrosity that should not be used, but it is clear that Windows 10 is improved over the last few versions; note, last time I really used windows was still Windows 98, I think.<br />
<br />
My suspicion is that Microsoft wants GitHub because they want to use it internally for very large projects. Recently Microsoft has been working to make git more useful for humungous projects, specifically with the virtual file system (<a href="https://techcrunch.com/2017/05/24/microsoft-now-uses-git-and-gvfs-to-develop-windows/" target="_blank">techcrunch</a>). By controlling GitHub, Microsoft becomes the biggest player in git as well, which I'm sure won't please some.<br />
<br />
It's also worth noting that GitHub developed the <a href="https://atom.io/" target="_blank">text editor Atom</a>, which is pretty similar to their aforementioned VS Code. Atom is an open source project, but it will be interesting to see what happens to Atom development going forward.<br />
<br />
Finally, I'll also mention that GitHub has adopted Markdown as it's documentation markup language of choice. There's already a GitHub flavor of Markdown, which I think is probably the dominant version. Now that Microsoft owns GitHub, I wonder if it will impact the use of Markdown, and especially if GitHub-flavored Markdown will further evolve away from the original?<br />
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-11215328.post-15786205112138516472018-05-28T14:18:00.000-07:002018-05-28T14:18:17.115-07:00What is aerosol radiative forcing?There is a lot of research about the climate impact of aerosols. One of the fundamental measures of the climate impact is the "radiative forcing" associated with aerosols. It's not obvious what exactly aerosol radiative forcing is, however, so here we begin our examination of this question.<br />
<div>
<br /></div>
<div>
The IPCC AR4 provides a nearly useless description: [<a href="https://www.ipcc.ch/publications_and_data/ar4/wg1/en/ch2s2-4-4.html">LINK</a>]</div>
<div>
<br /></div>
<div>
We can discern two important facets of aerosol radiative forcing from that description:</div>
<div>
<ol>
<li>It is measured based on top-of-atmosphere (TOA) radiative fluxes. </li>
<li>It <b>includes</b> the impact of aerosol on clouds. </li>
</ol>
</div>
<div>
It is also useful to look at other parts of AR4, where better text describes aerosol effects. I started at the link above because when I search for "aerosol radiative forcing" that is one of the top hits I get. That's an unfortunate hit because the text surrounding that small section is much more informative. </div>
<div>
<br /></div>
<div>
The first thing that can be clarified is that #1 above is part of the definition of radiative forcing. As far as IPCC reports go, radiative forcing is the impact that a forcing agent has on the net TOA fluxes. The concept is useful because it is derived from the basic physics of conservation of energy and thermodynamics. In equilibrium the net TOA flux is zero (averaged over a year, or many years). When a forcing agent is applied to they system, such as anthropogenic aerosol, the energetic consequence may be a change in that TOA balance (i.e., a radiative forcing), and having a TOA imbalance causes the system to respond. We deduce that if the forcing is negative the system will cool to achieve a new balance, but if the forcing is positive (i.e., more energy is entering the system than leaving) the system will warm to achieve a new balance. Aerosols typically fall into the negative forcing category, and so cause a cooling, but the story is not really so simple.</div>
<div>
<br /></div>
<div>
In particular, it is helpful to split aerosol effects into two pieces:</div>
<div>
<ol>
<li><b>direct effects</b> of aerosol particles on radiative transfer through the atmosphere (scattering and absorption) (aka, aerosol-radiation interaction, ari)</li>
<li><b>indirect effects</b> of aerosol that change the radiative properties of clouds, or change the lifetime of clouds (aka, aerosol-cloud interaction, aci)</li>
</ol>
</div>
<div>
The IPCC AR5 [<a href="https://www.ipcc.ch/report/ar5/wg1/">LINK</a>] includes a lot of treatment of aerosol radiative forcing. Since it's newer, perhaps we should focus there for some clarity on this issue. An important distinction is drawn in AR5 between radiative forcing (RF) and effective radiative forcing (ERF). While RF is just what we were describing, namely the change in the TOA net flux (allowing adjustment of the stratosphere), but ERF allows the troposphere to also adjust to the forcing agent. To establish ERF is tricky because it does not allow the global average surface temperature to adjust; the idea is that ERF includes tropospheric "rapid adjustments" to occur, while RF only allows for the rapid stratospheric adjustment to occur. Confused yet? </div>
<div>
<br /></div>
<div>
We will return to this distinction in another post. For now, we need to consider that both direct and indirect effects have a RF but also an ERF. This complicates the picture because it further muddies the water with respect to how we describe how aerosols effect the climate system. Mostly AR5 seems to deal with RF associated direct aerosol effects and ERF for indirect effects. For now, though, let's return to our basic question of what is aerosol radiative forcing.</div>
<div>
<br /></div>
<div>
Based on IPCC AR4 and AR5, along with a lot of literature reviewed therein, and also my own literature review that spans from the 1980s to today, the easiest way to express the meaning of aerosol radiative forcing is:</div>
<blockquote class="tr_bq">
Aerosol radiative forcing is the change in TOA radiative fluxes between the preindustrial period and the present day. The aerosol radiative forcing can be divided into direct effects in which aerosol effects radiative transfer and indirect effects in which aerosol interacts with clouds. </blockquote>
<div>
Estimates of the total direct aerosol radiative forcing is around -0.35 (-0.85 to +0.15) W m<sup>-2</sup>. Including indirect effects switches to using the ERF concept, which we will examine in another post, but the AR5 bottom line is that the total aerosol effect is a negative forcing of about -1 W m<sup>-2</sup>, but that is basically plus or minus 1 W m<sup>-2</sup>. </div>
<div>
<br />
What I want to point out before closing is that I described RF in the beginning as fundamental, but the definition that I've just provided seems far from fundamental. When we use this definition of aerosol radiative forcing, we need to define what pre-industrial means and what present day means. We know intuitively what both are supposed to mean, but quantitatively this is ambiguous. Particularly troublesome is that we do not have adequate observations from pre-industrial times to really know what the aerosol concentrations or emissions were. This provides an irreducible uncertainty for aerosol radiative forcing using this definition. We will revisit some of these concepts in future posts, and we will return to the difficulties associated with this definition of aerosol radiative forcing.<br />
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-67460064032151612872012-12-29T13:55:00.000-08:002012-12-29T13:55:31.332-08:00Joseph Romm raves about Reagan, balks at Barrack: Figures of speech make and break communication<br />
I have recently read Joseph Romm's new book, Language Intelligence,<br />
which is really a brief review of rhetoric. It introduces modern readers to<br />
the age-old topic of eloquent language intended to persuade<br />
audiences. Romm uses just a few prime examples for each of the several<br />
topics covered, from the ancient Greek greats to medieval masters who<br />
wrote the King James Bible to modern practitioners such as Lady<br />
Gaga. The point is to expose the principles of rhetorical discourse,<br />
such as the various forms of repetition, irony, metaphor, and<br />
seduction, and provide readers with some of the tools necessary to<br />
build an effective argument as well as to erect a wall to defend<br />
against the constant bombardment by advertisers, politicians, and<br />
other persuaders. <br />
<br />
The lessons are clear and well illustrated by examples. Especially<br />
useful are the examples from recent political figures such as both<br />
George Bushes, Bill Clinton, Barrack Obama, and Mitt Romney. Several<br />
Republican strategists are pointed out for their cunning use of<br />
rhetorical devices (Luntz and Rove, especially). Scientists (climate<br />
scientists, especially) are singled out for their clumsy attempts to<br />
communicate, usually avoiding rhetorical figures of speech. The<br />
use of the figures being discussed occasionally becomes too blatant,<br />
often in the final paragraphs of sections, but it is pleasing as a<br />
reader to see such employment as sections close because it reinforces the<br />
lesson. I am convinced that this brief introduction should be standard<br />
reading for college students across disciplines, and those in the<br />
sciences should pay careful attention to the lessons and employ more<br />
intelligent language when describing their own work. Older readers<br />
might pick up some new tricks, too, if they choose to read the book.<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-3766865093300302362012-08-28T12:09:00.001-07:002012-08-28T12:09:33.858-07:00American Meteorological Society Statement on Climate ChnagePosting two days in a row!?!?<br />
<br />
I just wanted to draw attention to the updated statement on climate change from the American Meteorological Society. Here's the link: [<a href="http://www.ametsoc.org/policy/2012climatechange.pdf">LINK</a>]. It is just a 7 page statement that goes through the following sections:<br />
<br />
<ul>
<li>Background </li>
<li> How is climate changing? </li>
<li> Why is climate changing? </li>
<li> How can climate change be projected into the future? </li>
<li> How is the climate expected to change in the future? </li>
<li> Final remarks</li>
</ul>
<div>
There is nothing surprising in the statement. The AMS supports the scientific consensus that the Earth's surface and lower atmosphere are warming due to the accumulation of greenhouse gases in the atmosphere from combustion of fossil fuels and deforestation. Overall, it is well-written and straight-forward, and I recommend taking a look at it no matter what your background is. My guess is that everyone will get the gist, and if you've got any background in climate science then you'll pick up on some of the details. I'd quibble over some of the word choices here and there, but the substance is fine. Maybe they over emphasize climate models in the future section, because many of the points they make there are not based solely on model projections, but also observations and basic theory. Anyway, go take a look.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-43666134389929884602012-08-27T12:19:00.002-07:002012-08-27T12:19:41.739-07:00Smart meters and dumb peopleAs a regular listener of Coast to Coast AM, I have been aware of a conspiracy theory involving the transition from old-timey analog utility meters to internet-connected smart meters. Smart meters allow 2-way communication between a house's utility meter and the utility company. The idea is to monitor electricity use in real time (or near real time), which can allow more nimble management of the electric grid. The idea is to get electricity where it is needed when it is needed and allow better management of electricity generation. Both proponents and opponents cite the potential for tiered pricing, such as raising prices during peak energy use times. While some say this will help incentivize energy conservation, others say the tiered pricing could hurt lower income households disproportionately.<br />
<br />
The consipracists, however, are not worried about low-income households or energy conservation. There are really two flavors of the smart meter conspiracy. First is an irrational fear of technology that manifests as a concern about the radiation from smart meters being a health hazard. Yes, really [<a href="http://www.smartmeterdangers.org/" rel="nofollow">example</a>]. This is not a legitimate concern, as the radiation levels are even below those of cell phones, and it is unlikely that many residents will spend significant time with their heads agains their electricity meter. The second version of the conspiracy is rooted in a deep distrust of government and an overly aggressive view of privacy. These are the people, like the ones cited in this Grist post [<a href="http://grist.org/politics/texans-exercise-their-second-amendment-rights-to-ward-off-smart-meters/">LINK</a>] and the accompanying AP news article [<a href="http://www.businessweek.com/ap/2012-08-25/smart-meter-movement-stirs-rowdy-debate-in-texas">LINK</a>] about the smart meter opposition in Texas, who believe that the smart meters are ... well, let's just boil it down, they think that the smart meters allow the government to spy on them at home [<a href="http://endoftheamericandream.com/archives/no-more-privacy-smart-meters-are-surveillance-devices-that-monitor-the-behavior-in-your-home-every-single-minute-of-every-single-day" rel="nofollow">great example, go ahead a browse this crazy site, I'll wait</a>.]. There might be some actual privacy issues with smart meters (which that example kind of hits, but then goes to crazy), such as the potential for utilities to synthesize usage and sell the information to interested parties (who want to target their marketing efforts). This probably isn't much of a concern at this point, as it is unclear that utilities are savvy enough to profitably undertake such an analysis. Really, this comes down to some far-right-wing ideas that get mixed up by fear mongers into ridiculous conspiracy theories, encapsulated by this quote from the above cited blog, "This is all part of the radical green agenda that is being forced down the throats of people all over the world."<br />
<br />
Maybe I should just list a couple of points that I think are relevant (in no particular order):<br />
<br />
<ol>
<li>Energy conservation is a good idea, and represents one of the "stabilization wedges" that we talk about as currently available solutions to global warming. [<a href="http://ngm.nationalgeographic.com/2007/10/carbon-crisis/img/stabilization_wedges.pdf">LINK</a>]</li>
<li>The radiation associated with electronics is not harmful. [<a href="http://en.wikipedia.org/wiki/Wireless_electronic_devices_and_health">LINK</a>]</li>
<li>One of the criticisms that the opponents of smart meters seem to bring up often is that the FCC does not have strong enough restrictions on radiation [<a href="http://stopsmartmeters.org/2012/03/09/a-primer-on-the-fcc-guidelines-for-the-smart-meter-age/" rel="nofollow">example</a>]. Yet, as pointed out in Grist and the AP story above, these people tend to be on the far-right/libertarian/tea-party fringe of the political spectrum, meaning that philosophically they are opposed to government regulation (in favor of letting the "market" work out the appropriate solutions). This is completely inconsistent. I don't think this is an argument against the smart meter opposition, just a point that I wish would be discussed.</li>
<li>The possibility of utilities selling the information aside, there seems to be a general fear of a degradation of privacy with smart meters, but I don't think there is any evidence that any personal information could be or is being collected by these meters.</li>
<li>The transition to smart meters is being driven by the "market" as utilities try to reduce costs and maximize efficiency. This is a direct descendant of the deregulation of utilities in the USA, which right-leaning folks should be applauding (if they were being consistent with their purported economic philosophy).</li>
<li>Because the utilities are deregulated, this information would be flowing to the utilities, and not the government. That means that there must be an extra layer of conspiracy in order to bring the government into the picture. Each additional layer of conspiracy makes the theory less and less plausible.</li>
</ol>
<div>
I think I can leave it there.</div>
<div>
<br /></div>
<div>
Note that in the links above that are cited as examples, I have used the "rel=nofollow" attribute which prevents search engines from following the links and improving those cites' search rankings. I decided to do that because those cites, while entertaining, do not present a useful view of the issue. The other links are normal, and represent appropriate source material. <span id="goog_593396103"></span><span id="goog_593396104"></span><a href="http://www.blogger.com/"></a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-13290383374572320602012-07-20T12:40:00.003-07:002012-07-20T12:40:41.021-07:00Making mds and mdworker processes stop sucking CPUI usually don't post computing tips, but I just learned how to get rid of a problem that has been bothering me off and on for over a year.<br />
<br />
<b>The problem</b>: On multiple Macs running OSX 10.6 and/or 10.7, sometimes a large amount of CPU power (and also system memory) is being used by a process called mds. The problem persists over many hours, and on laptops causes the fans to spin and battery to drain.<br />
<br />
<b>Some relevant information</b>: MDS and its friend mdworker are part of Apple's Spotlight software. Basically they troll your system looking for changes and recording them in an index. That index is used by Spotlight to help you find things like that email from four years ago describing how do some arcane thing that you couldn't possibly remember, except that it has the phrase "don't cry at this point". Anyway...<br />
<br />
<b>The fix</b>: I've tried a number of things over the many months of having this problem. At home, I removed external drives from the Spotlight index and that fixed the problem. To do that, open System Preferences, go to Spotlight, click on the Privacy tab, and add the external drives to the list.<br />
<br />
On my work computers I've done the same thing, but still have the problem sometimes. It has been especially bad on my new MacBook Air with no external drives connected.<br />
<br />
Doing some searching, I found this very useful bit: <a href="http://ischack.net/2011/07/mds-mdworker-running-wild-on-os-x-10-6-and-10-7-again/">LINK</a>.<br />
<br />
The crucial thing that post points out is that backup software that works in the background can cause files to be constantly changing. Constantly changing files need to be re-indexed in the view of Spotlight/mds.<br />
<br />
For some reason, I'm not allowed to backup however I want at work (e.g, to a Time Machine drive that could be sitting right here in my office). Instead, my IT department installs some software that supposedly backs up my system. Going to /System/Library/Application\ Support and finding the name of that backup software (in this case it is Symantec) and adding that directory to the list of non-indexed places solves the problem. This is equivalent to the case in that link that uses some other backup software, and I bet that other backup systems also trigger the same behavior.<br />
<br />
<b>REPEAT</b>: Exclude your backup software's /System/Library/Application\ Support directory from Spotlight indexing in System Preferences -> Spotlight -> Privacy and mds CPU usage should drop to 1% or less.<br />
<br />
Sigh of relief.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-41929818583487398482012-05-01T10:33:00.001-07:002012-05-01T10:34:19.087-07:00Wind turbines and warming<div class="ennote" style="-webkit-line-break: after-white-space; -webkit-nbsp-mode: space; word-wrap: break-word;">
<div>
The Christian Science Monitor [<a href="http://www.csmonitor.com/Science/2012/0430/Don-t-believe-the-headlines.-Wind-farms-do-not-cause-global-warming">LINK</a>] does a decent job in smacking the media coverage of a new Nature Climate Change paper by Zhou et al. [<a href="http://www.nature.com/nclimate/journal/vaop/ncurrent/full/nclimate1505.html">LINK</a>]. It is no surprise to see another example of the media making hay of a superficially surprising study. Most of the articles apparently get the story mostly right, but the headline writers once again have their heads up their asses... but actually not, as their job is to get people to read the headline and then click to get to the article in order for the ads on that page to load. One particularly horrible story comes from, wait for it, FoxNews.com; the story is titled "Wind farms are warming the earth, researchers say" and it is written poorly by Eric Niiler (of Discovery News?). I'm clearly not going to post a link to that story, but just say that it does not present a very fair assessment of the paper (which I did link to above and which I did actually read).</div>
<div>
<br /></div>
<div>
The science of the study is nothing terribly exciting, but could provide observational evidence for the scale and magnitude of a simple mixing effect. The idea is that big wind turbines in Texas are mixing air in their vicinity, and at nighttime that means mixing air in two distinct layers. On clear nights, as the ground cools, cool air settles in contact with the ground. Cool air is more dense than warm air, so this situation creates a stable vertical structure of colder, denser air below warmer, lighter air. Usually temperature decreases as you go up, so we call this stable configuration an inversion. Just to throw some more jargon at you, this very common situation is a nocturnal stable boundary layer. The study finds trends during 2003-2011 in both daytime and nighttime surface temperature, but the larger and convincing trend is the nighttime trend, especially during summer. </div>
<div>
<br /></div>
<div>
These stable layers are usually quite thin, maybe 100 meters deep. Just above the inversion, the air retains the heat from the daytime (sometimes called the residual layer). There is also a slightly less common meteorological phenomenon called a nocturnal low-level jet that is a layer of relatively fast wind that can form in or above this residual layer. (see my skillfully drawn cartoon)</div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1hCmTSUq1swZR1OIO2qzFo8eocaqoCaRBqrovMcYM2Ju0Kk12Gv4XJa162VOebpGVBbOyAX5BtfZI1ec2CLhXNri12FEnLxq15olWQB89pPQkneqrs3M7l0iALATJe-FcATh28w/s1600/b075bae9f31e23cf6001d86c827b9071-718224.jpeg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737619402167400066" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1hCmTSUq1swZR1OIO2qzFo8eocaqoCaRBqrovMcYM2Ju0Kk12Gv4XJa162VOebpGVBbOyAX5BtfZI1ec2CLhXNri12FEnLxq15olWQB89pPQkneqrs3M7l0iALATJe-FcATh28w/s320/b075bae9f31e23cf6001d86c827b9071-718224.jpeg" /></a></div>
<div>
<br /></div>
<div>
If you want to put wind turbines up, one attractive feature would be thin nighttime inversions and frequent low level jets. As it happens, Texas has a lot of places like that. Note, however, that you would not want very strong winds on the top of the turbine compared to the bottom because strong torque is structurally undesirable. </div>
<div>
<br /></div>
<div>
Let's imagine a turbine spinning in a low level jet above a stable layer (as in my awesome cartoon). The motion of the blades creates a turbulent wake just downstream, which mixes approximately isotropically. Let's say this means that the air is mixed up from the surface to a little above the turbine height. The result of this mixing is the same as if you stir a cup that has some warm liquid on top and cold liquid on bottom: the temperature is mixed and the resulting temperature is the mass-weighted average of the warm fluid and the cool fluid. This is exactly what the paper finds in western Texas, though they don't include a calculation of the efficiency of the mixing because their satellite data does not include profiles of temperature with height. The authors take the data in close proximity to the turbines, average it, and subtract the average from the data that is farther away from turbines. In the residual, they find this warming trend. This means that very close to the turbines, there is a nighttime warming trend, which the authors attribute to the mixing by the turbines. </div>
<div>
<br /></div>
<div>
The consequences of this finding are not some kind of cautionary tale about trying to use renewable energy sources. In terms of climate change, this means almost nothing. First, as is pointed out in even that FoxNews.com article, these turbines produce 10,000 megawatts of electricity (that's enough for about three million American homes); that is a substantial amount of CO2 not being emitted to the atmosphere. Second, the effects being reported are small. Third, but most important, the warming effects of the turbines are confined to the immediate vicinity of the turbines themselves. The entire study area in western Texas is about 100km across, and the warming from the turbines is warming that is enhanced in a fraction of this small area. Related to this, the effects are not additive. Once a region has enough turbines to create this effect, that's it, the "trend" can not continue into the future because there won't be more turbines added to the area. (In fact, as turbine design gets more efficient, you'd expect to see the trend reversed eventually because there would be less downstream turbulence.)</div>
<div>
<br /></div>
<div>
Finally, some of the blow-hards (ha ha, get it?) are saying that this warming could be bad for crops. It is plausible that crops are being grown within the small regions that could be affected by this nighttime mixing. If these people were so worried about warming affecting crops, I think they'd note that the local impact in western Texas is about the same amount of warming as the ENTIRE GLOBE has seen from greenhouse gases. A nearby weather station [<a href="http://www.wunderground.com/climate/local.html?id=42572266000&var=TAVG">LINK</a>] shows a pretty clear warming trend (note there must be a site change or instrument change around 1959) and I'd guess that the overall 20th Century warming for western Texas is greater than the wind farm effect. The 1979-2005 trend looks like it is about the same size in summer [<a href="http://ipcc.ch/publications_and_data/ar4/wg1/en/figure-3-10.html">LINK</a>], and note that is average temperature, not nighttime temperature which is the notable value for these wind farms. I'm not sure what 0.5C warming at nighttime does to crops, but I'm guessing that the greenhouse warming is more important (even within this study area) than the wind farm "warming." </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
LINKS:</div>
<div>
<br /></div>
http://www.csmonitor.com/Science/2012/0430/Don-t-believe-the-headlines.-Wind-farms-do-not-cause-global-warming <br />
<div>
<br /></div>
<div>
<a href="http://www.nature.com/nclimate/journal/vaop/ncurrent/full/nclimate1505.html">http://www.nature.com/nclimate/journal/vaop/ncurrent/full/nclimate1505.html</a></div>
<div>
<br /></div>
<div>
http://www.wunderground.com/climate/local.html?id=42572266000&var=TAVG</div>
<div>
<br /></div>
<div>
<a href="http://ipcc.ch/publications_and_data/ar4/wg1/en/figure-3-10.html">http://ipcc.ch/publications_and_data/ar4/wg1/en/figure-3-10.html</a></div>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-85606518977207671442012-04-24T09:41:00.000-07:002012-04-24T09:43:59.884-07:00ENVISAT likely dead in the skyMore bad satellite news: ENVISAT seems to have stopped phoning home. ENVISAT is a giant satellite managed by the European Space Agency, and has been collecting a ton of environmental data since 2002. It has 10 different instruments, and has been used extensively in climate research over the past decade.<br />
<br />
<span class="Apple-style-span">Sometime on 8 April, ENVISAT stopped communicating with controllers at the ESA. There has been a concerted effort to determine the cause of the failure and re-establish communication of the satellite. This effort is impressive, with the French satellite Pleiades even being turned away from Earth to try to capture images of ENVISAT to determine the state of the solar panels. Other observations of the satellite are also being used to make sure that ENVISAT is -- and is staying -- in a stable orbit. There is some hope that a connection can be reestablished if ENVISAT has gone into -- or could be cajoled into switching to -- </span><span class="Apple-style-span"> "safe mode." Otherwise, it is likely that there has been catastrophic failure of the main computer or power source on board, and there's no hope of recovery. </span><br />
<br />
ENVISAT's estimated lifetime was just 5 years, so again over-engineering paid off (like the Mars rovers, SeaWiFS, etc). Unfortunately, the Sentinel satellites that are planned to replace ENVISAT have not been put into orbit yet, so there is likely to be a gap in the data record for some of the quantities that ENVISAT monitors. These even include CO2; the launch failure of the Orbiting Carbon Observatory (NASA) in 2009 left just ENVISAT and a Japanese satellite with capabilities to monitor CO2 from space. Now there is just the Japanese satellite, the Greenhouse Gases Observing Satellite. Apparently there is a lot of controversy and arguing about how to pay for the Sentinels, making the ESA's commitment to climate monitoring just as shaky as NASA and NOAA's in the USA.<br />
<br />
<i>SOURCES:</i><br />
<span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.nature.com/news/europe-loses-sight-of-earth-1.10500"><span class="Apple-style-span" style="line-height: 20px;">Geoff Brumfiel, </span><span class="Apple-style-span" style="line-height: 20px;"></span></a></span><br />
<dd class="journal-title" style="display: inline; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 3px; padding-top: 0px;"><span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.nature.com/news/europe-loses-sight-of-earth-1.10500">Nature</a></span></dd><span class="Apple-style-span" style="font-family: inherit;"><a href="http://www.nature.com/news/europe-loses-sight-of-earth-1.10500"><span class="Apple-style-span" style="line-height: 20px;"> </span><span class="Apple-style-span" style="line-height: 20px;"><dd class="volume" style="display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 3px; padding-top: 0px;">484<span>,</span></dd></span><span class="Apple-style-span" style="line-height: 20px;"> </span><span class="Apple-style-span" style="line-height: 20px;"><dd class="page" style="display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 3px; padding-top: 0px;">423–424</dd></span><span class="Apple-style-span" style="line-height: 20px;"> </span><span class="Apple-style-span" style="line-height: 20px;"><dd style="display: inline; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 3px; padding-top: 0px;">(<time datetime="2012-04-26">26 April 2012</time>)</dd></span><span class="Apple-style-span" style="line-height: 20px;"> </span><span class="Apple-style-span" style="line-height: 20px;"><dd class="doi" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(data:image/gif; background-origin: initial; background-position: 0px 0.4ex; background-repeat: no-repeat no-repeat; display: inline; margin-bottom: 0px; margin-left: 4px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"><abbr style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-variant: normal;" title="Digital Object Identifier">doi</abbr>:10.1038/484423a</dd></span></a>, </span><br />
<span class="Apple-style-span" style="font-family: inherit;">ESA [<a href="http://www.esa.int/esaEO/SEM2HNKWZ0H_index_0.html">link</a>]</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-38023958280204545142012-03-02T13:53:00.000-08:002012-03-02T13:55:28.010-08:00What's the difference between the Maunder Minimum and the late twentieth century?<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;"><span class="Apple-style-span" style="font-size: 14px; line-height: 21px;">Somehow I became distracted by an online "discussion" in which someone was confused about the connections between solar variability and climate variability. The result of that distraction was that I made a plot, shown here, that compares the Maunder Minimum (1645 - 1715 CE) to the last 60ish years (1945-present). Below is the text I wrote to present this figure, along with data sources and citations. </span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIgTj1qHWTJhh8EBm-V9p5BzxU1eehttZ4CkfFsFSN8t6PjirriizoeJm1CaUCTw_0kanabYg3Gl2096pT4-fgGyfZox1HXORl6tDC291WD42S0jttVDc7qvwIPeH4NXYnn6Mo-A/s1600/Maunder_v_20C_plot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="566" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIgTj1qHWTJhh8EBm-V9p5BzxU1eehttZ4CkfFsFSN8t6PjirriizoeJm1CaUCTw_0kanabYg3Gl2096pT4-fgGyfZox1HXORl6tDC291WD42S0jttVDc7qvwIPeH4NXYnn6Mo-A/s640/Maunder_v_20C_plot.png" width="640" /></a></div>
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><br />
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Let's compare the Maunder Minimum with the second half of the 20th Century. Since there isn't really that much data, we are limited to a few quantities. I have chosen two, one is the total solar irradiance (TSI), which is the energy received by the Earth from the sun (per time per area, expressed in Watts per square meter). This data comes from a reconstruction by Wang et al. (2005) as modified by Kopp & Lean (2011), and was obtained at the link below. This data is very similar to other reconstructions (Lean et al. 2004, 2000, 1995), but is basically shifted downward by about 5 W/m2 as a recalibration. The updated data covers 1610 to 2011. The second quantity we can investigate is the northern hemisphere temperature anomaly (degrees C). There are not direct observations (of sufficient quality) reaching back to the Maunder Minimum, so we will use the temperature reconstruction of Moberg et al. (2005). That data actually stops at 1979, but we can visually extend the data to near present day by including the observed northern hemisphere temperature anomaly from Smith et al. (2008) which reaches to January 2012. For the Smith et al. data, I chose to use the land plus ocean values. There is an issue with baselines, the Moberg et al. data are anomalies with respect to the 1961-1990 average temperature while the Smith et al. data are with respect to the 1901-2000 average temperature (which is cooler than the shorter, later average). I have not adjusted for this offset, and the result is that the pink dots in the figure should actually all be slightly upward compared to the red line. The agreement between the overlapping interval is quite good, but would be a little worse if the shift were included. There are other reconstructions available, and I have no reason to choose Moberg's over the others except that it is perhaps the most recent. The TSI and temperature reconstruction data are both annual, and I've made sure the data are centered within each year. The Smith et al. data are monthly (which is why I need to center the annual records).</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Finally, just for completeness, I define the Maunder Minimum using the definition on the Wikipedia page, which is 1645 to 1715. This is in line with the TSI data. For the more recent climate, I chose to simply shift 300 years into the future. So the plots cover 1945 to 2015, but the data sets stop at whatever their last times are. The Maunder Minimum times and data are shown in blue, while the 20th/21st Century data are shown in red and pink with the time labeled along the top of each panel.</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">To try to head off any misinterpretation of this plot, let me simply state what it shows. During the Maunder Minimum, there was reduced solar activity and the average northern hemisphere temperature was about 0.6 C cooler than the the 1961-1990 average value. During the period covering 1945 to the 1960s/1970s, the northern hemisphere temperatures were relatively flat and near their 20th Century average. Over those years, the sun was active, showing "normal" sunspot and TSI 11-year cycles. From some time in the 1970s until present, shown in the pink circles, the northern hemisphere average temperature shows a clear upward trend. All the monthly average values after 1996 are warmer than the 20th Century average. During this rapid and clear warming, the solar activity was typical, and quite similar to the 1945-1975 period, showing clear quasi-periodic activity. There appears to be little connection between variation in solar activity and variation in northern hemisphere average temperature during the late 20th Century.</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">REFERENCES</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Kopp & Lean (Geophysical Research Letters, 38, L01706, doi:10.1029/2010GL045777, 2011)</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Lean, J.. 2004: Solar Irradiance Reconstruction. IGBP PAGES/World Data Center for Paleoclimatology. Data Contribution Series # 2004-035. NOAA/NGDC Paleoclimatology Program, Boulder CO, USA.</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Lean, J. 2000: Evolution of the Sun's Spectral Irradiance Since the Maunder Minimum. Geophysical Research Letters, Vol. 27, No. 16, pp. 2425-2428, Aug. 15, 2000.</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Lean, J., J. Beer, and R. Bradley. 1995: Reconstruction of Solar Irradiance Since 1610: Implications for Climate Change. Geophysical Research Letters, v.22, No. 23, pp 3195-3198, December 1, 1995.</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Moberg, A., D.M. Sonechkin, K. Holmgren, N.M. Datsenko and W. Karlén. 2005: Highly variable Northern Hemisphere temperatures reconstructed from low-and high-resolution proxy data. Nature, Vol. 433, No. 7026, pp. 613-617, 10 February 2005.</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Wang, Lean, and Sheeley (The Astrophysical Journal, 625:522-538, 2005 May 20)</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">DATA SOURCES</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">TSI:</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><a href="http://lasp.colorado.edu/sorce/data/tsi_data.htm" id="yui_3_4_0_2_1330724610240_1433" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #588631; cursor: pointer; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none;" target="_blank">http://lasp.colorado.edu/sorce<wbr></wbr><span class="wbr" style="display: inline-block;"></span>/data/tsi_data.htm</a></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">TSI:</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><a href="http://www1.ncdc.noaa.gov/pub/data/paleo/climate_forcing/solar_variability/lean2000_irradiance.txt" id="yui_3_4_0_2_1330724610240_1417" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #588631; cursor: pointer; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none;" target="_blank">http://www1.ncdc.noaa.gov/pub/<wbr></wbr><span class="wbr" style="display: inline-block;"></span>data/paleo/climate_forcing/sol<wbr></wbr><span class="wbr" style="display: inline-block;"></span>ar_variability/lean2000_irradi<wbr></wbr><span class="wbr" style="display: inline-block;"></span>ance.txt</a></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">NH T Reconstruction:</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><a href="http://www.ncdc.noaa.gov/paleo/pubs/moberg2005/moberg2005.html" id="yui_3_4_0_2_1330724610240_1418" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #588631; cursor: pointer; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none;" target="_blank">http://www.ncdc.noaa.gov/paleo<wbr></wbr><span class="wbr" style="display: inline-block;"></span>/pubs/moberg2005/moberg2005.ht<wbr></wbr><span class="wbr" style="display: inline-block;"></span>ml</a></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><br /></span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">NH T Observations:</span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"> </span><span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"><a href="http://www.ncdc.noaa.gov/cmb-faq/anomalies.php" id="yui_3_4_0_2_1330724610240_1434" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #588631; cursor: pointer; outline-color: initial; outline-style: initial; outline-width: 0px; text-decoration: none;" target="_blank">http://www.ncdc.noaa.gov/cmb-f<wbr></wbr><span class="wbr" style="display: inline-block;"></span>aq/anomalies.php</a></span>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-11215328.post-69197409227732084462012-01-29T10:00:00.000-08:002012-01-29T10:00:06.437-08:00The WSJ op-ed page againThe Wall Street Journal has published an op-ed by 16 "scientists" claiming that global warming isn't a big deal, and probably stopped many years ago. They do call for funding satellite and ground-based observations of the climate system, which is generous of them. I read the piece, which is full of half-truths and less. It can be found under the title "No Need to Panic about Global Warming" in (or around) 27 January 2012.<br />
<br />
Notably, the WSJ rejected a similar letter my 255 members of the National Academy of Sciences. The main difference between the two submissions was, oh, everything. The NAS members call out the poor coverage of global warming and its impacts in the media. Peter Gleick covered this in an article published on Forbes [<a href="http://www.forbes.com/sites/petergleick/2012/01/27/remarkable-editorial-bias-on-climate-science-at-the-wall-street-journal/">LINK</a>].<br />
<br />
I noticed at least two things about the list of 16 "scientists" on the WSJ piece. First, most of them have little if any professional experience studying the climate system. Second, there is a preponderance of old, white men on the list. I'm not the only one who noticed, Ben Nolan also did, and he's working through the list to see who these people are, including how old and how white they might be [<a href="http://brutishandshort.com/2012/01/27/shock-news-global-warming-denialists-are-dishonest-pt-1/">LINK</a>]. It comes as no surprise that many on the list are connected financially to the fossil fuel industry and/or to conservative think tanks (that are likely funded by the fossil fuel industry). I hope Mr. Nolan follows through and completes the list, as I think the rest are just as oily as those he's tracked down so far.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-3730220138902142332011-12-16T12:33:00.000-08:002011-12-16T12:33:43.166-08:00Ralph Hall, chair of the House of Representatives science committeeI have not read such incoherent drivel from such a highly placed official since George W. Bush was in the whitehouse. Please read this story and accompanying interview with Ralph Hall; it is a shocking view into the world of American politics. It is a world where people say things like "<span class="Apple-style-span" style="color: #333333; font-family: arial; font-size: 13px; line-height: 20px;"><a href="http://news.sciencemag.org/scienceinsider/2011/12/ralph-hall-speaks-out-on-climate.html">I don't have any proof of that. But I don't believe 'em. I still want to listen to 'em and believe what I believe I ought to believe." [LINK]</a></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-32022691148670284292011-10-06T13:14:00.000-07:002011-10-06T13:14:41.722-07:00Sherwood's dredging up historySteve Sherwood has an outstanding piece in Physics Today that compares climate "denialism" to historical precedent. In particular, he compares today's climate deniers to those who denied general relativity and heliocentrism in the past. The three stories are interwoven beautifully, definitely worth the read. Here's the link: <a href="http://dx.doi.org/10.1063/PT.3.1295">LINK</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-12630302435195919132011-10-04T10:31:00.000-07:002011-10-04T10:31:45.652-07:00The American ‘allergy’ to global warming: Why?"Climate change has already provoked debate in a U.S. presidential campaign barely begun. An Associated Press journalist draws on decades of climate reporting to offer a retrospective and analysis on global warming and the undying urge to deny." -- Editor's Note regarding this piece by Charles Haney, <i>The American ‘allergy’ to global warming: Why?</i> [<a href="http://posttrib.suntimes.com/news/7806599-418/the-american-allergy-to-global-warming-why.html">link</a>].<br />
<br />
Nice, concise overview of the state of climate science and "denialism" in the United States.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-73844817103328230932011-09-16T14:52:00.000-07:002011-09-16T14:52:53.432-07:00Start pre-gaming, only two years to the next IPCC reportThe last IPCC report on the physical science of climate change, called the Fourth Assessment Report (AR4), was published in 2007. Since that time, plans for the next assessment (AR5) have been underway.<br />
<br />
I think I posted before about the announcement of the chapter outlines and the lead authors [<a href="https://www.ipcc-wg1.unibe.ch/AR5/outline.html">link</a>]. The groundwork has been laid for some time, with the lineup of authors finalized earlier this year [<a href="https://www.ipcc-wg1.unibe.ch/AR5/wg1authors.pdf">pdf</a>]. A lot of the effort falls upon Thomas Stocker [<a href="http://www.climate.unibe.ch/~stocker/">link</a>], the Co-Chair of "Working Group 1," the job previously held by Susan Solomon [<a href="http://en.wikipedia.org/wiki/Susan_Solomon">link</a>] for AR4. Not only that, but there have already been two meetings of the lead authors, the most recent being in July in Brest, France.<br />
<br />
If they are able to keep on schedule, then the AR5 will be published in two years: in <b>September 2013</b>.<br />
<br />
The first order draft will be done and reviewed in the next few months. As you know, the assessment is basically a gigantic review paper of climate science. As such, it relies on published results for the basis of the review. The last day to have papers submitted to journals and be considered for inclusion in the AR5 is 31 July 2012, so if you want to get something into the next IPCC report, you have about 10 months to get it done and submitted. It also needs to be accepted by 15 March 2013, giving you plenty of time to deal with those pesky reviewers.<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-71529276087350754312011-09-06T12:07:00.000-07:002011-09-06T12:45:20.580-07:00Remote Sensing shakeupThe editor-in-chief of the open-access journal Remote Sensing has resigned. An editorial in the journal explains the situation. The short version is that this journal is the one that let that Spencer & Braswell paper slip through peer review; that publication has fatal flaws throughout its assumptions and analysis. The paper was quickly and brutally criticized in the climate-blogosphere, but exaggerated and praised in the right-wing, and much of the mainstream, media. The journal was criticized for letting such a poor paper get published. The editor-in-chief, Wolfgang Wagner, has now had a chance to review the criticisms and the paper and the review process. He has come to the conclusion that the paper should not have been published. The reason seems to come down to poor selection of reviewers by the editor that was in charge of that paper. The reviews came back with little criticism, to which the authors responded, and that basically tied the editor's hands and the paper had to be accepted.<br />
<br />
From my point of view, the failing was the editorial board's misunderstanding of the subject matter and clear mishandling of the review process. From the tone and content of the paper, it was clearly a contrarian point of view and had the flavor of ideological bias. I suspect that the reviewers were selected from the list of suggested reviewers supplied by the authors. In cases of controversial content, there needs to be at least one critical reviewer selected from the community involved, and I'm pretty sure none of the reviewers in this case were in the mainstream of the climate change community.<br />
<br />
I'm glad that Wolfgang Wagner has stepped down. I don't know that he did anything wrong except let the other editors make some bad decisions, but this move does help to show that the journal doesn't want to build a reputation for publishing garbage, contrarian papers. Hopefully this will be a small blemish on the journal's reputation which won't mar the whole thing. It will be interesting to see if the next editor-in-chief conducts a review of the evidence and officially retracts the paper (it is unclear whether this journal has provisions for that, but they should consider it).<br />
<br />
The original paper can be found from the journal's web page. The editorial is worth a read, and can be found in the current issue [<a href="http://www.mdpi.com/2072-4292/3/9/2002/pdf">LINK</a>]. On a related note, a new GRL paper by Andy Dessler destroys the Spencer & Braswell argument in under 4 pages [<a href="http://www.agu.org/pubs/crossref/pip/2011GL049236.shtml">LINK</a>].<br />
<br />
UPDATE: Lots of coverage of this story on the climate blogs. One worth seeing is Mooney's post on DeSmogBlog, which rehashes some similar scandals involving climate, intelligent design, and autism. [<a href="http://www.desmogblog.com/why-questionable-science-gets-published-pounced-media-retracted-causes-resignations-rinse-and-repeat">LINK</a>]Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-54045408902738880102011-09-01T08:53:00.001-07:002011-09-01T08:53:38.058-07:00The big balloon and the garden hoseI'm uncomfortable with this real-life test of geoengineering: <a href="http://www.grist.org/climate-change/2011-08-31-is-planet-cooling-balloon-full-of-hot-air">http://www.grist.org/climate-change/2011-08-31-is-planet-cooling-balloon-full-of-hot-air</a><br />
<br />
Maybe they could have started with some modeling?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-19829969009595508532011-08-31T09:56:00.000-07:002011-08-31T09:56:35.829-07:00CLOUD experimentsThe first results from the CLOUD experiments have been getting a lot of media attention. The focus of the attention is the Nature paper that was published this week: [<a href="http://www.nature.com/news/2011/110824/full/news.2011.504.html">news</a>][<a href="http://www.nature.com/nature/journal/v476/n7361/full/nature10343.html">paper</a>]. <br />
<br />
The goal of this project is to determine whether cosmic rays have a significant impact on clouds. <br />
<br />
Let's boil this down a little. This project is a laboratory experiment at CERN. It is a cloud chamber, basically an isolated volume of air that is precisely controlled for temperature and pressure. They put very pure air into the chamber, add a little background water, and some gases like ozone, sulfuric acid, and ammonia. The chamber is heavily instrumented to look for nucleation, which just means that they try to keep track of particle formation that occurs as the vapors interact and possibly start condensing. They can do this in neutral conditions (like a classical cloud chamber), or they can shine a pion beam into the chamber. That beam is adjusted to mimic cosmic ray bombardment. The goal is to see if cosmic rays produce ions that enhance the formation of particles, which could then go on to become the seeds for cloud droplets. <br />
<br />
The answer seems to be that shining that beam into the chamber does produce more particles. This actually isn't a surprise, as far as I can tell. One important point is that nucleation rates, that is the rate of particle formation, are smaller than observed rates unless the temperature is quite low. This means that it is unlikely that cosmic rays ionizing gases near the Earth's surface is a major source of particle formation. Certainly there is particle formation, but it is likely to be a small source of the total number of particles. This result may change when they start adding in organic molecules, but that is future work.<br />
<br />
There is better coverage on RealClimate: <a href="http://www.realclimate.org/index.php/archives/2011/08/the-cerncloud-results-are-surprisingly-interesting/">link</a>. <br />
<br />
There is hubbub about this result because there is a crack-pot theory that galactic cosmic rays are a major control of climate because of their impact on cloud formation. There are major flaws with this theory. My own take is that cosmic rays probably do produce some of the particles in the atmosphere that go on to become cloud condensation nuclei, but there are many paths to becoming cloud condensation nuclei, and there are lots and lots of these particles around. In fact, I seriously doubt that cloud formation is frequently affected by the limitation of these aerosol particles. I've been thinking about this in terms of observed cloud properties. The number of cloud droplets is connected to the number of aerosol particles available: over land where there are lots more aerosol particles, there tends to be more, smaller droplets in clouds, while over the remote ocean the clouds are made of fewer, larger droplets. In very polluted conditions, we can observe changes in the cloud properties that follow that same trend. I think the downfall of the cosmic ray theory of cloud formation comes from the fact that out in the middle of the ocean there are still tons of aerosol particles. While many of those particles may come from cosmic ray influenced nucleated vapors, there is no evidence that there is a shortage of other sources of aerosol, so if the intensity of cosmic ray bombardment were to change, it seems unlikely that other sources of aerosol wouldn't fill whatever tiny void that change would make. <br />
<br />
Besides this basic criticism (which amounts to the originators of the theory simply having a bit of a myopic view of cloud formation), there is also a clear lack of evidence for cosmic ray intensity modulating cloud/climate. The RealClimate piece covers that. Finally, there is the link to climate change, for which there is absolutely no evidence. <br />
<br />
So my summary would be something like: This research presents experimental results that suggest that ionization by cosmic ray-like effects can impact nucleation rates in conditions similar to the Earth's atmosphere. The role of such nucleation enhancement in the Earth's atmosphere remains unclear, especially given that the impact seems most pronounced in conditions that are outside the atmospheric boundary layer. This is a nice contribution to basic aerosol research, which should help to constrain models of aerosol formation. The impacts on cloud formation and the Earth's climate can not be assessed with the data collected so far.<br />
<br />
<br />
The authors are only slightly overselling their results, which is typical for authors of Nature papers. The lead author's comments can be heard in the embedded YouTube clip. The media coverage, and especially the climate change denier blogosphere, is lighting up like this experiment proves something controversial. It does not.<br />
<br />
<iframe width="560" height="345" src="http://www.youtube.com/embed/gXx62NhSkt8" frameborder="0" allowfullscreen></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-57603264187747879452011-08-08T22:00:00.000-07:002011-08-08T22:00:12.307-07:00Reactions to the Spencer paperIt's a very bad paper. That is the short story. I haven't thought through all my criticisms of it yet (maybe I'll write something here eventually). In the meantime, I like this overview piece at Climate Central by <a href="http://www.climatecentral.org/about/people/michael_lemonick/">Michael D. Lemonick</a> [<a href="http://www.climatecentral.org/blogs/global-warming-debunked-or-not/">LINK</a>]. I especially enjoyed the comment that, "... it's not that NASA data are blowing a hole in anything. It's that Spencer's interpretation of NASA data are blowing... something, somewhere."<br />
<br />
For those of you looking to actually read the paper, it is in a journal called Remote Sensing, and it is open access. You can find it by looking up doi:10.3390/rs3081603. Let me reiterate that this is a bad paper, with many incorrect statements, assumptions, and reasoning. It isn't worth you time reading this paper when you could better spend it reading an informative one about climate sensitivity... oh, I don't know, maybe <a href="http://journals.ametsoc.org/doi/abs/10.1175/2008JCLI1995.1">doi:10.1175/2008JCLI1995.1</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-66505743278856103272011-07-26T14:09:00.000-07:002011-07-26T14:09:04.022-07:00A peer-review recipeEos is on a hot streak, at least compared to the usual Eos status quo. There's another useful article in the 12 July issue. It is an overview, or maybe a primer, about peer reviewing [<a href="http://www.agu.org/journals/eo/eo1128/2011EO280001.pdf#anchor">LINK</a>]. It is written by K.A. Nicholas and W. Gordon. I'm not sure what they do, Nicholas is at Lund U. in Sweden, and Gordon is at UT Austin. The article is a bit prescriptive for my taste, but I think it will be helpful reading for graduate students and others who are doing their first reviews. It's a good reminder for the rest of us about how we should think about some aspects of doing reviews.<div><br />
</div><div>One difference between my reviews and the ones outlined by the article is in how to treat fatally flawed manuscripts and majorly flawed ones. The article suggests identifying these errors and being done with the review. In my experience, there is a good chance that the manuscript will still get "accepted subject to major revisions," so this may be the only chance to really convey to the authors what they need to improve. (Otherwise, there's the risk of multiple rounds of reviews, which no one wants.) To that end, I always provide a full review, even if I am recommending rejection of the paper. I always hope that the editor will appreciate the effort, and also that the authors will get more constructive criticism to help improve a new version of the manuscript, or at least have a comprehensive set of comments to address in a revised version that will come back for another review.</div><div><br />
</div><div>On a side note, this is also helpful, at least in principle, in the "dialog" between the climate science community and the climate change denying community. There is a lot of mistrust of the peer-review process among "skeptics" (note they are not skeptical, really). The article in Eos is a simple explanation of how peer-reviews are written, and I think almost everyone will agree that the description is roughly what reviews look like. While sometimes reviews are more or less helpful, the thought behind them is basically the one described by the article. They are meant as constructive criticism, pointing out strengths and weaknesses of work, judging the contribution to the field, and recommending whether publication is reasonable or not. This is how I write reviews, and it is similar to reviews I receive. In climate science, reviews are usually anonymous, though there's always the option of signing a review so that the authors know who you are. The decision about how the submitted manuscript proceeds comes from the editor, not directly from the reviewers, so even if a paper receives an unfair review, the editor can take corrective action. When that doesn't happen, the authors can appeal to the editor, pointing out where the review has gone off track. The usual course of action would be for the editor to find another reviewer, who can then corroborate the criticism or back up the author. There really isn't anything secretive or mysterious about the process. There are obvious measures to avoid conflicts of interest, and procedures for interaction among the participants. So while there are interesting arguments about how to improve peer review (blinded reviews, e.g.), I think the current system is quite transparent and attempts to be fair to all involved. I hope that critics of climate science will read this article (and David Schultz's book, <a href="http://eloquentscience.com/">LINK</a>) before they attack the peer review process in general.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-26996266756954918632011-07-19T11:31:00.000-07:002011-07-19T11:31:55.398-07:00News Corp behind Climategate?Was Rupert Murdoch's right-wing-leaning News Corp behind the illegal hacking of the University of East Anglia's Climatic Research Unit? There's no direct evidence at this time, but Joe Romm has put it out there in today's Climate Progress [<a href="http://thinkprogress.org/romm/2011/07/19/272361/news-corp-hacked-climategate-emails-time-for-an-independent-investigation/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+climateprogress%2FlCrX+%28Climate+Progress%29">LINK</a>]. While Romm's connections seem tenuous, there is no doubt that News Corp's news outlets made great use of the stolen emails, and no one would be surprised if the suspicion were to be found true. Either way, I think Romm's real point is that there have been so many investigations of the scientists tangled up in "climategate," but the actual crime remains unsolved. Who broke into UEA's computer system, selectively stole and then distributed emails from CRU? The motive is almost certainly political/idealogical, and whoever did it had some competence with "hacking," and some savvy about how to distribute the stolen information to the media... It would certainly bring closure to the whole affair if the perpetrators were brought to justice.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-11215328.post-84062862575264409942011-06-24T10:01:00.000-07:002011-06-24T10:01:31.152-07:00Comparing volcanic CO2 emissions to human-made emissionsThere's a terrific article by T. Gerlach in last week's issue of AGU's EOS newspaper [<a href="http://www.agu.org/journals/eo/eo1124/2011EO240001.pdf#anchor">PDF</a>]. Gerlach is apparently a volcanologist, not a climate scientist. The article compares estimates of CO2 emission by volcanic sources to human-made emissions. There is a common misconception (I'm not sure how common) about the relative contributions of volcanos and humans to the emission of CO2.<br />
<br />
So, <span class="Apple-style-span" style="font-size: large;"><i><span class="Apple-style-span" style="color: #990000;">which do you think is the larger source of CO2, global volcanos or human-made sources</span></i></span> (includes land-use change, cement production, transport, energy, etc)?<br />
<br />
<br />
The answer is that humans produce (as of 2010) about 135 times more CO2 than all the volcanoes in the world. The numbers are something like humans emitting about 35 billion tons versus volcanoes emitting 260 million tons. There doesn't appear to be any tricky business going on, and all kinds of volcanoes (including underwater volcanoes) are included. In fact, Gerlach goes on to make lots of interesting comparisons: one good one is that human activities produce the same amount of CO2 emissions as the global volcanic annual source every 12.5 hours.<br />
<br />
Gerlach also accounts for the explosive volcanic eruptions like Mount St. Helens and Pinatubo, which are called paroxysms. These can suddenly emit a lot of CO2, but they are rare. While these paroxysms are happening, their emission rate might be as large as all of humanity's. The catch is that they only last a few hours, and wind up contributing very little to the global CO2 emissions.<br />
<br />
Really nailing the coffin shut, Gerlach also considers what it would mean for volcanism if the emission rate did match the human-made CO2 emissions of about 135 Gigatons per year. It sounds like it would mean that we would need one (or more) supereruptions per year. Supereruptions are huge volcanic eruptions, like when Yellowstone blew up 2 million years ago, and they are rare even for geologists, happening only every 100,000-200,000 years or so.<br />
<br />
The only weakness of the article is that Gerlach forgets to address the obvious climate change denial argument that humans are not emitting as much CO2 as claimed. There are hints of how to deal with this, however, as Gerlach mentions that the total volcanic emission is equal to that of about two dozen large coal-fired power plants. The volcanic number is so small that we can easily eliminate huge amounts of human-made emissions and still have more human-made emissions than volcanic emissions by more than an order of magnitude. So I think this presentation is a great place to point to really come to terms with this comparison, and the vast difference in the volcanic versus human-made emissions means that there can be no dispute.<br />
<br />
Also see another Gerlach article at EARTH Magazine [<a href="http://www.earthmagazine.org/earth/article/371-7da-7-1e">LINK</a>].Unknownnoreply@blogger.com0