First experience with astrophotography

(Sony A7 35/2.8 Zeiss)

Halema'uma'u eruption and stars

(Sony A7 35/2.8 Zeiss)

One of the great things about shooting with a camera like the Sony A7 that has an advanced sensor is that you can shoot astrophotographs with less noise that ever before. This comes into play with the inevitably long exposures you encounter when shooting the night sky. On a recent trip to view Kilauea volcano as we’ve done many times, I wondered if it might be possible to capture both the volcano and the star-filled sky in the same shot; so I began to research a bit on astrophotography. I’m by no means an expert; but I’ve learned a bit.

Equipment

I shot with a Sony A7 full-frame mirrorless camera. It’s got an excellent low noise sensor. At least [one reviewer] prefers the A7S because it’s larger pixel size allows this A7S’s sensor to capture more startlight. The published images do look amazing. I shot with a variety of lenses during my limited experience on Kilauea. Most of the images that I captured were shot with a wide angle, either the Zeiss/Sony 35/2.8 or a Voigtländer 15 mm Leica M-mount with a Metabones adapter. The wider the aperture, the better because it enables shorter exposures at lower ISO settings.

A tripod is essential for the long exposures used in astrophotography. I use a Gitzo Basalt tripod. It’s a little bulky if you’re planning on hiking a distance with it; but it solid and stable. I’ve taken it out on long hikes out to the active lava flows and it’s withstood a lot of abuse. You’ll want a proper head for the camera mount. I love the equipment from Really Right Stuff. It’s pricey; but their products are beautifully made and engineered to perfection. On top of the Gitzo, I use their BH-40 ballhead. Just so you know, you will need an Arca-Swiss bracket for the camera. On the A7, I was tempted to buy the Really Right Stuff bracket; but I opted for a well-made less expensive option this time around.

How I found this spot

We stayed one night at the historic Volcano House overlooking Halema’uma’u Crater. Since there’s a lava lake occupying a portion of the crater floor, I expected to see some nice incandescent glow after dark. Right on schedule, after sun began to fall, the glow became visible about a mile in the distance. But almost at the same time, as the sun slipped behind Mauna Loa, the temperatures began to fall and with the high dew points, clouds formed instantly in the cool air, nearly completely obscuring any views of crater. I packed up my gear and went to bed.

I woke up again at 1 AM to my alarm, peered outside and saw clear views of the glowing vent; so I packed my equipment and started hiking about a mile down to the steam vents. I ended up taking the wrong trail in the complete blackness; and while backtracking, the clouds and fog rolled in again. This time, visibility was reduced to a few feet. I eventually made it back to the room and slept another hour. At that point, I began consulting the Hawaii Volcanos Observatory webcams. I figured that if they were showing clear views of the vent, then I should be able to drive down to a point close enough to walk, fire off a few shots before the fog came in again. Sure enough, around 2:30 AM, I caught a glimpse of the vent looking sharp on the webcam. Again, I grabbed my gear and sped off in the Jeep. After about a 300 yard walk, I found a spot with a beautiful view of the glowing gasses. Every now and then you could catch the sound of the lava rumbling in the crater. It was a spectacular experience. Since the stars were out, my goal was to capture both the star field and the crater. So many of the photos were taken with the Voigtländer 15 mm Leica M-mount lens. It’s a so-so lens overall; but it certainly gave some nice sweeping views.

(Sony A7 15 mm ISO 6400, 15s)

Halema’uma’u eruption and stars

(Sony A7 15 mm ISO 6400, 15s)

Process

To capture the stars, you have to dial up the sensitivity. I bracketed for ISO settings. Most of the shots were taken at ISO 3200 or 6400. I chose not to use the Auto ISO setting out of concern that the algorithms might choose to ramp up up the sensitivity beyond the point where noise would limit the quality too greatly. Most of the images were shot wide-open to minimize the exposure length. Exposures are going to be several seconds long. With exposures that are very long, one risks star trails. Because the earth is rotating, the light from the stars will inscribe an arc on the image if the shutter is open too long. There is a heuristic for computing the maximum shutter opening duration as a function of the focal length of the lens. The so-called “Rule of 600” states that the maximum open shutter duration is 600 divided by the focal length of the lens.1 An experienced astrophotographer posted his web calculator at the Lonely Speck. With either the rule of thumb or the more sophisticated calculator, it’s just a starting point.

Focusing is difficult. You must use only manual focus. Since you are photographing objects that you may not be able to see with the naked eye, it is hard to focus in the same way you may be accustomed to normally. I would start by moving the focus ring to infinity, then trying to identify the brightest star to fine tune your focus on.

Since I didn’t have a remote release, I just used the timer function on the camera to delay the activation of the shutter. Since the exposures are so long, I’m not even sure how necessary that it.

Conclusions

It’s not difficult; but noise is an issue. Some of the images are noisier than I’d like. I’m anxious to try the Rokinon 24mm f/1.4 ED AS UMC2 and see if I can get the exposure times down a bit more.


  1. You can read a detailed discussion about the Rule of 600 here ↩︎

  2. This is a big bulky lens; but the author of the Lonely Speck regards it as ideal for astrophotography. You can read his review↩︎

Concatenating mp4 video files

I recently shot a recital with my Sony A7. While it’s a wonderful camera for stills and it produces some excellent video too, cameras like this are not meant for continuous video recording. There are limitations that are imposed by compression algorithm licensing requirements. And, it seems, there are limits that are imposed by thermal issues inside the camera.

To make a long story short, my A7 ended up giving me two video files instead of one for this event. What to do?

First I thought of making a round-trip through iMovie; but I so dislike that confusing dumbed-down piece of software that I’d rather doing anything other than that. Fortunately I stumbled upon ffmpeg.

Installing Homebrew and ffmpeg

On OS X, the easiest way to install ffmpeg is to use Homebrew. I do. I’m not going to walk through all of the steps for installing Homebrew as they are published elsewhere.

After installing Homebrew, you’ll need to install ffmpeg. I followed another set of instructions. I started by looking at all of the installation options available for ffmpeg:

~|⇒ brew options ffmpeg

Not being a audio/video codec guy, I found it too confusing; so I cut and pasted the command to install ffmpeg with all of the options:

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools

Concatenating files with ffmpeg

Now, you need to create a text file specifying the videos that you wish to join. The paths are relative to the text file path. So, I created a text file on the desktop and called it concatv.txt:

# videos to concatenate
file '2015_04_11_13_49_29.mp4'
file '2015_04_11_13_59_42.mp4'

Now, go to the Terminal (or iTerm like I use) and give the concatenation command for ffmpeg with your specification file and the output location and options:

~|⇒ ffmpeg -f concat -i ~/Desktop/concatv.txt -acodec ac3 -vcodec copy output.mp4

ffmpeg version 2.5 Copyright (c) 2000-2014 the FFmpeg developers
  built on May  7 2015 06:08:38 with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.5 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-libopus --enable-frei0r --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1_1/include/openjpeg-1.5 ' --enable-nonfree --enable-vda
  libavutil      54. 15.100 / 54. 15.100
  libavcodec     56. 13.100 / 56. 13.100
  libavformat    56. 15.102 / 56. 15.102
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, concat, from '/Users/alan/Desktop/concatv.txt':
  Duration: N/A, start: 0.000000, bitrate: 15957 kb/s
    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 15704 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 253 kb/s
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf56.15.102
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 15704 kb/s, 29.97 fps, 30k tbn, 30k tbc
    Stream #0:1: Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, stereo, fltp, 192 kb/s
    Metadata:
      encoder         : Lavc56.13.100 ac3
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (aac (native) -> ac3 (native))
Press [q] to stop, [?] for help
frame= 1660 fps=0.0 q=-1.0 size=  170730kB time=00:00:55.35 bitrate=25266.2kbits/frame= 3300 fps=3299 q=-1.0 size=  338567kB time=00:01:50.07 bitrate=25196.4kbitsframe= 4820 fps=3213 q=-1.0 size=  494783kB time=00:02:40.79 bitrate=25207.8kbitsframe= 6470 fps=3235 q=-1.0 size=  663576kB time=00:03:35.84 bitrate=25184.3kbitsframe= 7880 fps=3152 q=-1.0 size=  808522kB time=00:04:22.89 bitrate=25194.0kbitsframe= 9520 fps=3173 q=-1.0 size=  977105kB time=00:05:17.62 bitrate=25200.8kbitsframe=10920 fps=3119 q=-1.0 size= 1120948kB time=00:06:04.34 bitrate=25203.5kbitsframe=12660 fps=3164 q=-1.0 size= 1298599kB time=00:07:02.38 bitrate=25185.6kbitsframe=14279 fps=3172 q=-1.0 size= 1464549kB time=00:07:56.40 bitrate=25183.4kbitsframe=16030 fps=3205 q=-1.0 size= 1644149kB time=00:08:54.83 bitrate=25183.3kbitsframe=17880 fps=3248 q=-1.0 size= 1833635kB time=00:09:56.56 bitrate=25179.5kbitsframe=19530 fps=3251 q=-1.0 size= 2004140kB time=00:10:51.64 bitrate=25194.7kbitsframe=21080 fps=3239 q=-1.0 size= 2162571kB time=00:11:43.33 bitrate=25188.2kbitsframe=22920 fps=3271 q=-1.0 size= 2351215kB time=00:12:44.73 bitrate=25186.9kbitsframe=24378 fps=3247 q=-1.0 size= 2500568kB time=00:13:33.37 bitrate=25184.6kbitsframe=26090 fps=3258 q=-1.0 size= 2676095kB time=00:14:30.50 bitrate=25183.8kbitsframe=27840 fps=3272 q=-1.0 size= 2856249kB time=00:15:28.89 bitrate=25189.5kbitsframe=29570 fps=3279 q=-1.0 size= 3032933kB time=00:16:26.61 bitrate=25182.8kbitsframe=31130 fps=3271 q=-1.0 size= 3178060kB time=00:17:18.67 bitrate=25065.4kbitsframe=35330 fps=3527 q=-1.0 size= 3182691kB time=00:19:38.81 bitrate=22117.7kbitsframe=39660 fps=3771 q=-1.0 size= 3187472kB time=00:22:03.28 bitrate=19732.5kbitsframe=43280 fps=3928 q=-1.0 size= 3191459kB time=00:24:04.07 bitrate=18104.6kbitsframe=47660 fps=4138 q=-1.0 size= 3196297kB time=00:26:30.22 bitrate=16465.7kbitsframe=50265 fps=4183 q=-1.0 size= 3288092kB time=00:27:57.18 bitrate=16060.2kbitsframe=51955 fps=4151 q=-1.0 size= 3461672kB time=00:28:53.57 bitrate=16358.1kbitsframe=53695 fps=4125 q=-1.0 size= 3640451kB time=00:29:51.63 bitrate=16645.4kbitsframe=55075 fps=4074 q=-1.0 size= 3782069kB time=00:30:37.69 bitrate=16859.6kbitsframe=56841 fps=4055 q=-1.0 size= 3962677kB time=00:31:36.60 bitrate=17116.0kbitsframe=58625 fps=4038 q=-1.0 size= 4145422kB time=00:32:36.13 bitrate=17360.4kbitsframe=60221 fps=4010 q=-1.0 size= 4309072kB time=00:33:29.38 bitrate=17567.5kbitsframe=61865 fps=3986 q=-1.0 size= 4478416kB time=00:34:24.25 bitrate=17772.6kbitsframe=63675 fps=3975 q=-1.0 size= 4663684kB time=00:35:24.63 bitrate=17981.9kbitsframe=65371 fps=3957 q=-1.0 size= 4837570kB time=00:36:21.22 bitrate=18168.4kbitsframe=66712 fps=3920 q=-1.0 size= 4975079kB time=00:37:05.96 bitrate=18309.3kbitsframe=69115 fps=3945 q=-1.0 size= 5090248kB time=00:38:26.14 bitrate=18081.8kbitsframe=73456 fps=4077 q=-1.0 size= 5095040kB time=00:40:51.00 bitrate=17029.2kbitsframe=77825 fps=4202 q=-1.0 size= 5099858kB time=00:43:16.77 bitrate=16088.4kbitsframe=82205 fps=4322 q=-1.0 size= 5104691kB time=00:45:42.91 bitrate=15245.7kbitsframe=86583 fps=4436 q=-1.0 size= 5109513kB time=00:48:08.99 bitrate=14488.5kbitsframe=90945 fps=4543 q=-1.0 size= 5114326kB time=00:50:34.54 bitrate=13806.5kbitsframe=95295 fps=4644 q=-1.0 size= 5119122kB time=00:52:59.68 bitrate=13188.7kbitsframe=98790 fps=4719 q=-1.0 Lsize= 5125570kB time=00:54:56.37 bitrate=12737.8kbits/s
video:5045729kB audio:77259kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.050416%

And you’re done.

Dandelions and innocence

Spring has finally arrived in Minnesota. So have dandelions.

On one of our walks, my daughter ViolinGirl exclaimed how much she loved the yellow “daisies” that dot some lawns. She wished our lawn could be covered with these beautiful flowers.

What a strange circumstance! We begin life appreciating the random beauty of these “weeds.” But once we reach adulthood, neighborhood peer pressure and cultural expectations have us spraying toxic chemicals - to our own detriment, no less - to eradicate these cherished flowers.

Nietzsche and the sublime purposeless of music

Nietzsche at the piano

I have always been troubled in some ill-defined way by articles that assert the benefits of music in some tangible way. For example, kids with music training do better at math. (I don’t if that’s true or not; but you get the style of what I’m talking about.) The unwritten inference is something like this: “No one but a fool or the spectacularly talented would regard music as an economically-valid life path; but math might be. So have your kids play music so they will make good grades and get into an Ivy League school.”

Middle class economics and false dichotomies

Patricia Cohen’s piece “Middle Class, but Feeling Economically Insecure”1 published yesterday in the New York Times raises several discrepancies between the economics of the middle class and one’s identification with that group. Reading the comments on the article I was struck by how divided Americans’ points of view are when it comes to the middle class and the causes of its distress. Clearly middle class wages have stagnated in the years immediately preceding and following 9/11. As the article points out, the median income in the US has not risen since 2000. Many of the commenters point to this and the feeling of insecurity and dispensability as a source of middle class angst. Others, fewer in number, point to a change in the baseline spending level. One commenter sums it up this way:

Private virtues v. public life

Politics is hopeless arena in which to enact individual values. Commercial interest will always win because of the enormous cost of modern politics. As I’ve written before1 I think that voting is an inefficient way of effecting change in a way that aligns with personal values. Persons can only be elected when they affiliate themselves with a package of values whose source is largely commercial interest. For example, if I placed the highest values on a balanced federal budget, low defense spending, universal health care, and inclusive rights, who would I vote for?

Synchonizing DEVONthink databases across machines

This is how I do it. YMMV.

I’ve used DEVONthink since its early days. If you’re unfamiliar with DEVONthink, it’s a knowledge management tool that allows you to save information, tag it, cross-reference it and classify it. Since I use both a laptop and a desktop Mac Pro, I need to synchronize databases across machines. There are several ways to go about synchronization:

  • Direct connection This is not a bad option when both machines are turned on simultaneously and are connected to the same network.
  • Dropbox Obviously, you need a Dropbox account for this. Since databases can grow quite large, you may need a paid Dropbox account for it. I don’t like having my personal information in the cloud; so I don’t use this option.
  • WebDAV I don’t run a WebDAV server, so that was out.
  • Local sync store This was the best option for me, since I use BitTorrent Sync to synchronize certain content between machines using peer-to-peer connections.

Here’s how I do it.

Commerce and discrimination

Those darned Republicans just can’t catch a break these days. In the latest cultural eruption, the Indiana legislature passed a bill which its governor signed into law. The bill allows places of business to refuse to serve persons if doing would conflict with their sincerely-held religious beliefs. An avalanche of public outcry has Indiana’s governor making a hasty retreat.

Charles Blow of the New York Times weighs in about how we should deal with the juxtaposition of free exercise of religious beliefs and discrimination:

Spotlight-searchable pinboard bookmarks

I use the excellent, dependable Pinboard service for managing my bookmarks. A one-time fee gives you lifetime access to the service; and there is an API that has fostered an ecosystem of desktop and mobile apps that interact with the service. Of course, Safari can synchronize bookmarks among devices; but it doesn’t allow tagging. Since tagging is a major part of my workflow, Safari bookmarks don’t work for me.

So, here’s where pinboardspotlight.py comes in. It’s a relatively simple Python program that downloads your Pinboard bookmarks, writing them to local .webloc files and applying the tags you’ve used in the Pinboard metadata to the local files. Now you’re Pinboard bookmarks are searchable locally.

What motivates climate change deniers?

The Intergovernmental Panel on Climate Change just released a draft summary of a report to the UN. Unsurprisingly, the panel concluded both that the Earth’s warming is unequivocal but now expressed near certainty that human activity is the cause of the observed and predicted climate shifts.

Given the near universality of scientific opinion on climate change, I’ve begun to wonder what motivates climate change deniers. After all, on most topics, reasonable people who are inexpert in a discipline look to the opinions of experts to gain a better understanding. So what’s behind the extreme rejection of scientific consensus among climate change deniers.