All the Pans fit to be found 2009.11.19
Modified for web, 2009.12.02. See Also: Intro Panorama Page, old Panorama page, My Gigapan Page, All Panoramas, Boston Panoramas, Sudbury Panoramas,
ChinaPans (2010)
Shinnecock Inlet
ShinnecockInlet.jpg
22200x2471 52.31 MegaPix Ratio: 8.98 6.022 MB 2011.07.30
Sudbury Valley School
SudburyValleySchool1k.jpg Half Size
27234×4678 2011.06.11.
All the Pans fit to be found 2009.11.19
Alpha 1
23Pinewood800.jpg
2721x800 2.08 MegaPix Ratio: 3.40 0.808 MB 2008.11.29.   :
OriginalImage...
Alpha 2
23PinewoodPlanar800.jpg
2609x800 1.99 MegaPix Ratio: 3.26 0.830 MB 2008.11.30.   :
OriginalImage...
Alpha 3
Backyard2.jpg
1200x543 0.62 MegaPix Ratio: 2.21 0.765 MB 2009.11.01.   :
OriginalImage...
Alpha 4
BakeryEvening.jpg
3000x1014 2.90 MegaPix Ratio: 2.96 1.183 MB 2009.10.29.   :
OriginalImage...
Alpha 5
bedroomWindow.jpg
2400x1024 2.34 MegaPix Ratio: 2.34 1.231 MB 2009.10.28.   :
OriginalImage...
Alpha 6
BlueHillObservatory2008.jpg
29970x3019 86.29 MegaPix Ratio: 9.93 42.017 MB 2008.12.31.   :
OriginalImage... stitched with PhotoShop, then uploaded to GigaPan
Alpha 7
BostonBeaconHill.jpg
22310x5009 106.57 MegaPix Ratio: 4.45 34.075 MB 2009.10.31.   :
OriginalImage...stitched with PhotoShop, then uploaded to GigaPan
Alpha 8
BostonConventionCenter.jpg
21100x3523 70.89 MegaPix Ratio: 5.99 9.236 MB 2009.11.12.   :
OriginalImage... GigaPan
Alpha 9
Cabana.jpg
26833x6487 166.00 MegaPix Ratio: 4.14 50.205 MB 2009.11.03.   :
OriginalImage...
Alpha 10
CHPan2008_x800.jpg
4804x800 3.67 MegaPix Ratio: 6.00 0.861 MB 2008.11.09.   :
OriginalImage...
Alpha 11
CorneliusRoom.jpg
23363x16051 357.63 MegaPix Ratio: 1.46 34.197 MB 2009.08.04.   :
OriginalImage... GigaPan
Alpha 12
DorchesterHeights1.jpg
26548x3435 86.97 MegaPix Ratio: 7.73 17.413 MB 2009.11.10.   :
OriginalImage... GigaPan
Alpha 13
DorchesterHeights2.jpg
10517x3672 36.83 MegaPix Ratio: 2.86 5.326 MB 2009.11.10.   :
OriginalImage...
Alpha 14
FirstBridgeSunset.jpg
12000x2753 31.51 MegaPix Ratio: 4.36 6.641 MB 2009.11.01.   :
OriginalImage...
Alpha 15
FirstBridgeSunset2.jpg
21513x4680 96.02 MegaPix Ratio: 4.60 28.525 MB 2009.11.01.   :
OriginalImage...
Alpha 16
FirstParish2008.jpg
13537x8295 107.09 MegaPix Ratio: 1.63 22.732 MB 2009.11.10.   :
OriginalImage...
Alpha 17
FPSsteeple04.jpg
9450x1148 10.35 MegaPix Ratio: 8.23 7.957 MB 2006.04.11.   :
OriginalImage - from 4x6 print, then scanned, then stitched by hand for many, many, many hours.
From the First Parish steeple after a freezing rain storm. January 2004
Hi-Res < >
Google Earth KMZ for Sudbury Panoramas
Alpha 18
GustafsonOgren2005.jpg
9774x1536 14.32 MegaPix Ratio: 6.36 11.447 MB 2005.11.05.   :
OriginalImage... stitched by hand
Alpha 19
HudsonRoadMerge800.jpg
3223x800 2.46 MegaPix Ratio: 4.03 0.889 MB 2008.11.30.   :
OriginalImage...
Alpha 20
HudsonRoadPlanar800.jpg
2602x800 1.99 MegaPix Ratio: 3.25 0.701 MB 2008.11.30.   :
OriginalImage...
Alpha 21
IrishPan.jpg
10277x1716 16.82 MegaPix Ratio: 5.99 8.535 MB 2008.10.29.   :
OriginalImage...
Alpha 22
LivingRoomWithIrie.jpg
22798x3515 76.42 MegaPix Ratio: 6.49 9.110 MB 2009.11.10.   :
OriginalImage... GigaPan
Alpha 23
LouvrePanorama.jpg
20052x2520 48.19 MegaPix Ratio: 7.96 25.841 MB 2008.05.16.   :
OriginalImage... used Panorama feature in camera. Some patching by hand because I did not keep the horizon line even.
The Louvre in Paris! Gail is in front of the little Arch and you can see 'Arc de Triomphe thru it. The Hi-Res is also at GigaPan
< > KMZ
Alpha 24
MenotomyRocksPark04.jpg
2453x925 2.16 MegaPix Ratio: 2.65 0.353 MB 2008.05.21.   :
OriginalImage... Cornelius took this mini panorama of Boston from the playground up the hill from Menotomy Rocks Park in Belmont.
Alpha 25
MiddlesexFels.jpg
25635x3787 92.58 MegaPix Ratio: 6.77 19.783 MB 2009.11.10.   :
OriginalImage... GigaPan
Alpha 26
MinneapolisFromMoms.jpg
9480x1000 9.04 MegaPix Ratio: 9.48 3.727 MB 2006.10.16.   :
OriginalImage...
Alpha 27
mplspanextra6000.jpg
6000x1706 9.76 MegaPix Ratio: 3.52 1.899 MB 2006.10.16.   :
OriginalImage...
Alpha 28
NobscotPanorama2008.jpg
21907x1897 39.63 MegaPix Ratio: 11.55 7.678 MB 2008.09.04.   :
OriginalImage...
Alpha 29
NorthBridge2d.jpg
3000x1364 3.90 MegaPix Ratio: 2.20 2.259 MB 2009.10.28.   :
OriginalImage...
Alpha 30
OneRiverMissippippi.jpg
19760x1504 28.34 MegaPix Ratio: 13.14 6.020 MB 2006.06.28.   :
OriginalImage...
Alpha 31
OrientPointFerry.jpg
29823x3490 99.26 MegaPix Ratio: 8.55 40.069 MB 2009.10.27.   :
OriginalImage... GigPan
Alpha 32
PineCopse.jpg
28893x5167 142.37 MegaPix Ratio: 5.59 25.323 MB 2009.11.10.   :
OriginalImage... GigaPan
Alpha 33
PompyPan.jpg
11685x1776 19.79 MegaPix Ratio: 6.58 10.963 MB 2008.05.19.   :
OriginalImage...
Alpha 34
PonQPanWest.jpg
18703x1608 28.68 MegaPix Ratio: 11.63 5.166 MB 2007.08.16.   :
OriginalImage...
Alpha 35
PonQsouthEastInlet.jpg
12884x2018 24.80 MegaPix Ratio: 6.38 15.378 MB 2007.08.15.   :
OriginalImage...
Alpha 36
PonquoguePan07.jpg
24249x819 18.94 MegaPix Ratio: 29.61 4.567 MB 2007.09.09.   :
OriginalImage...
Alpha 37
PontAlmaTest.jpg
8380x900 7.19 MegaPix Ratio: 9.31 3.573 MB 2008.05.19.   :
OriginalImage...
Alpha 38
PortDeBuci7200.jpg
7200x787 5.40 MegaPix Ratio: 9.15 1.230 MB 2008.05.19.   :
OriginalImage...
Alpha 39
ProspectHillAfterLeaves.jpg
3890x800 2.97 MegaPix Ratio: 4.86 0.740 MB 2009.11.10.   :
OriginalImage... GigaPan
Alpha 40
ProspectHillALBoston.jpg
13372x1963 25.03 MegaPix Ratio: 6.81 4.414 MB 2009.11.10.   :
OriginalImage...
Alpha 42
QuantuckBay.jpg
10395x978 9.70 MegaPix Ratio: 10.63 7.282 MB 2005.01.30.   :
OriginalImage...
Alpha 45
QuogueVillageBeach.jpg
16724x5144 82.04 MegaPix Ratio: 3.25 39.247 MB 2009.11.20.   :
Original image...
Alpha 43
QuantuckBayFromRogers.jpg
6080x1873 10.86 MegaPix Ratio: 3.25 3.448 MB 2009.07.17.   :
OriginalImage...
Alpha 44
QuantuckDunes.jpg
29237x7265 202.57 MegaPix Ratio: 4.02 75.317 MB 2009.10.31.   :
OriginalImage... GigaPan
Alpha 45
RoadPan2008.jpg
4662x1005 4.47 MegaPix Ratio: 4.64 1.766 MB 2009.10.28.   :
OriginalImage...
Alpha 46
RogersBeach.jpg
3000x696 1.99 MegaPix Ratio: 4.31 1.010 MB 2009.10.28.   :
OriginalImage...
Alpha 47
ShadowLawn.jpg
6000x4616 26.41 MegaPix Ratio: 1.30 7.040 MB 2009.10.29.   :
OriginalImage...
Alpha 48
ShermansBridge.jpg
18860x2364 42.52 MegaPix Ratio: 7.98 10.297 MB 2009.11.10.   :
OriginalImage...
Alpha 49
SunsetShinnecockBay.jpg
3000x1068 3.06 MegaPix Ratio: 2.81 0.896 MB 2009.10.28.   :
OriginalImage...
Alpha 50
TDayPan2008.jpg
3000x827 2.37 MegaPix Ratio: 3.63 0.713 MB 2009.10.28.   :
OriginalImage...
Alpha 51
TipplingRockPan.jpg
24520x3084 72.12 MegaPix Ratio: 7.95 43.247 MB 2008.10.25.   :
OriginalImage...
Alpha 52
TourMontparnesseView.jpg
4540x1980 8.57 MegaPix Ratio: 2.29 5.282 MB 2008.05.17.   :
OriginalImage...
Alpha 53
TownCenter06.jpg
9000x990 8.50 MegaPix Ratio: 9.09 3.275 MB 2006.10.09.   :
OriginalImage...
Alpha 54
TownCenterFromHosmer.jpg
3200x979 2.99 MegaPix Ratio: 3.27 1.151 MB 2006.10.15.   :
OriginalImage...
Alpha 55
VernalPool.jpg
12601x4800 57.68 MegaPix Ratio: 2.63 17.700 MB 2009.11.12.   :
OriginalImage... GigaPan
Alpha 56
WaysideInn2008.jpg
27775x4591 121.61 MegaPix Ratio: 6.05 78.505 MB 2009.10.28.   :
OriginalImage... GigaPan
Alpha 57
WaysideInnRest.jpg
18492x4591 80.96 MegaPix Ratio: 4.03 54.582 MB 2009.10.31.   :
OriginalImage... GigaPan
Alpha 58
WesthamptonBeachNight.jpg
15084x3000 43.16 MegaPix Ratio: 5.03 10.414 MB 2009.11.01.   :
OriginalImage... GigaPan
Alpha 59
WyndwoldLivingRoom.jpg
26423x6954 175.23 MegaPix Ratio: 3.80 41.282 MB 2009.10.26.   :
OriginalImage... GigaPan
Alpha 60
WyndwoldMoon1.jpg
6000x4789 27.40 MegaPix Ratio: 1.25 6.279 MB 2009.11.01.   :
OriginalImage...
Alpha 61
WyndwoldMoon4.jpg
9000x8055 69.14 MegaPix Ratio: 1.12 15.230 MB 2009.11.01.   :
OriginalImage...
mkthpans.py Thu, 19 Nov 2009 03:59:22 +0000
panorama $ emacs ~/Documents/python/mkthpans.py
panorama $ python ~/Documents/python/mkthpans.py > t1119b.html
#! /usr/bin/env python
# $Header: /Users/jch/zStuff/cvsstuff/cvsroot/python/mkthumbs.py,v 1.5 2007/08/04 03:37:35 jch Exp $
#
# make thumbnails of all of the .jpg files ina directory
#
import sys, os
import Image
import formatter, time, stat
class DefaultOptions:
size = 300
# if true, just print messages about what the script would be doing
# but don't actually do anything.
noop = 0
# Print lots of messages
verbose = 0
#
help = 0
#
# Some methods
#
def print_messages(self):
return self.verbose or self.noop
options = DefaultOptions()
w1200 = 1200
global thePanCount
thePanCount = 0
def create_directory(dir):
'''Create the directory dir and its parent directories if necessary'''
if os.path.isdir(dir):
return
parent, base = os.path.split(dir)
create_directory(parent)
try:
if options.print_messages():
print 'create directory \]s' \] dir
if not options.noop:
os.mkdir(dir, 0777)
except os.error, exc:
sys.stderr.write([can't create directory \]s:\]s\n[ \] (dir, exc))
def makethumb(jpegfile):
global thePanCount
haveTHPan = False
if os.path.isfile([./thpan1200/[+jpegfile):
thpanfile = Image.open([./thpan1200/[+jpegfile)
wid = thpanfile.size[0]
hgt = thpanfile.size[1]
haveTHPan = True
try:
imfile = Image.open(jpegfile)
totalPixels = float(imfile.size[0] * imfile.size[1])/(1024*1024);
ratio = float(imfile.size[0]) / imfile.size[1]
if not haveTHPan:
height = 1200/ratio
if height > 300:
hgt = 300
wid = int(300*ratio)
else:
wid = 1200
hgt = int(height)
except IOError, iio:
sys.stderr.write([can't open image \]s reason: \]s\n[ \] (jpegfile,iio))
return
except os.error, exc:
sys.stderr.write([can't create directory \]s:\]s\n[ \] (dir, exc))
try:
fstat = os.stat(jpegfile)
units = [bytes[
bytes = float(fstat[stat.ST_SIZE])
if bytes > 1024 and bytes <= 1024*1024:
bytes = bytes/(1024*1024)
units = [MB[
elif bytes > 1024*1024 and bytes <= 1024*1024*1024:
bytes = bytes/(1024*1024)
units = [MB[
elif bytes > 1024:
bytes = bytes/(1024*1024*1024)
units = [GB[
date = fstat[stat.ST_MTIME]
timeString = time.strftime([\]Y.\]m.\]d[, time.gmtime(float(date)))
# print timeString, bytes, units
except os.error, exc:
sys.stderr.write([stat error \]s:\]s\n[ \] (jpegpath, exc))
thePanCount += 1
print [^p>^hr>^br>Alpha \]d^br>^a href=\[\]s\[>^img src=\[thpan1200/\]s\[ width=\[\]d\[ height=\[\]d\[ alt=\[panorama \]s \[ border=\[0\[> ^br> \]s ^/a>[ \] (thePanCount,jpegfile,jpegfile,wid, hgt, jpegfile,jpegfile)
print [ \]dx\]d \]8.2f MegaPix Ratio: \]6.2f \]8.3f \]s \]s.   : [ \] (imfile.size[0], imfile.size[1], totalPixels, ratio, bytes, units, timeString)
print [ OriginalImage...[
sys.stdout.flush()
if haveTHPan:
return
# make thumb of pan
try:
imResized = imfile.resize((wid,hgt), Image.ANTIALIAS)
imResized.save([./thpan1200/[+jpegfile,quality=90)
except IOError, iio:
sys.stderr.write([can't open image \]s reason: \]s\n[ \] (jpegfile,iio))
return
except os.error, exc:
sys.stderr.write([can't create directory \]s:\]s\n[ \] (dir, exc))
def check_option(option, value):
if value is None:
sys.stderr.write('Value required for option \]s\n' \] option)
sys.exit(1)
def parse_cmd_line():
argv = sys.argv[1:]
for arg in argv:
if '=' in arg:
arg, value = split(arg, '=', 1)
else:
value = None
if arg in ('-h', '--help'):
options.help = 1
elif arg == '--noop':
options.noop = 1
else:
sys.stderr.write('Unknown option \]s\n' \] arg)
def print_header(curdir):
print '^!doctype html public [-//w3c//dtd html 4.0 transitional//en[>'
print [^html>[
print [^head>[
print [ ^meta http-equiv=\[Content-Type\[ content=\[text/html; charset=iso-8859-1\[>[
print [ ^meta name=\[GENERATOR\[ content=\[mkthumbs.py\[>[
print [ ^meta name=\[Author\[ content=\[YON - Jan C. Hardenbergh\[>[
print [ ^title>thumbs for \]s^/title>[ \] (curdir)
print [^/head>[
print [^body text=\[#000000\[ bgcolor=\[#F8F0FF\[ link=\[#0000EE\[ vlink=\[#551A8B\[ alink=\[#FF0000\[>[
print [^h1>thumbs for \]s^/h1>[ \] (curdir)
def print_trailer():
print [^p>^hr>[
print [mkthpans.py [ + time.strftime([\]a, \]d \]b \]Y \]H:\]M:\]S +0000[, time.gmtime(time.time()))
print [^/body>[
print [^/html>[
def print_help():
dict = opt.__class__.__dict__.copy()
dict.update(opt.__dict__)
dict['pyversion'] = sys.version[:3]
print help_message \] dict
help_message = [[[\
usage:
mkthumbs.py [options...]
Options:
-h, --help
Print this help message. Do nothing else
--noop
Do nothing. Just print messages about what would be
done.
[[[
def main():
parse_cmd_line()
if options.help:
print_help()
else:
create_directory([./thpan1200[)
print_header(os.path.realpath(os.curdir))
files = os.listdir(os.curdir)
for infile in files:
ext = os.path.splitext(infile)[1]
if ext == '.jpg' or ext == '.JPG' or ext == '.gif':
makethumb(infile)
print_trailer()
if __name__ == '__main__':
main()