Mac OS X 上でPython環境構築するには、バイナリパッケージを導入するのが早いです。
Leopard では、あらかじめPython 2.5 がシステム上にインストールされています。
・SPEのパッケージ
SPE packaged for Mac OS X のエントリーで紹介している、ディスクイメージを使います。
この中に含まれている、SPE.app をアプリケーションフォルダにコピーします。
SPE.app を右クリックして、『パッケージの内容を表示』を選び、
開いたフォルダの中の、Contents - MacOS - SPE をテキストエディタや、ターミナル上のvi等で開きます。
1行目を次のように変更します。
#!/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python
import sys, os
execdir = os.path.dirname(sys.argv[0])
↓
#!/Applications/SPE.app/Contents/MacOS/Python
import sys, os
execdir = os.path.dirname(sys.argv[0])
・GDAL/OGR、MapServer のFramework のインストール
Kyng Chaosさんのページより、
UnixImageIO, FreeType, GEOS 3, PROJ , GDAL ,ECW plugin v1.5.0-2 ,MrSID plugin v1.5.2-1 のFramework をダウンロードしてインストーラーよりインストールします。
・同様に
こちらのページより、MapServerのパッケージをダウンロードしてインストールします。
・MapScript のPython Binding がうまくインストールされない時は、MapServerのFrameworkのインストーラーを右クリックして、パッケージに内容を表示を選びます。
Contents - Packages の中の、
mapscriptpythonleo.pkg と mapscriptpythontig.pkg
の2つを実行します。
これにより、/Library/Python/2.5/site-packages の下に、mapscript.py などのファイルがコピーされます。
・GDAL/OGR のPython Binding は、以下のサイトより、egg ファイルを取得します。
Package Index > GDAL 1.5.2
このページの一番下に、GDAL-1.5.2-py2.5-macosx-10.5-i386.egg などのファイルがあるので、ダウンロードします。
このとき、Safari などを使っていますとダウンロードしたファイルを勝手に解凍して、GDAL-1などのフォルダができてしまいます。
ゴミ箱のなかをのぞくと、GDAL-1.5.2-py2.5-macosx-10.5-i386.egg.zip というファイルが残っているので、これをいったんがゴミ箱から出してから、ダブルクリックします。
今度は、GDAL-1.5.2-py2.5-macosx-10.5-i386.egg というフォルダができますので、easy_install でインストールします。
easy_install は、
こちらのページにある、ez_setup.py というファイルへのリンクを右クリックして、リンク先のファイルをダウンロードします。
ターミナル上から、python ez_setup.py などと実行すると、/usr/bin/easy_install に実行形式のバイナリが作成されます。
ターミナル上で、さきほどの、egg フォルダがある場所まで移動してから、
easy_install GDAL-1.5.2-py2.5-macosx-10.5-i386.egg
とすると、/Library/Python/2.5/site-packages に、GDAL-1.5.2-py2.5-macosx-10.5-i386.eggが作成されます。
SPE上では、from osgeo import gdal とかくと、インポートできるのですが、実行時に、/usr/local/lib/libgdal.1.dylib がないとエラーになってしまいます。
調べてみると、/Library/Frameworks/GDAL.framework/Versions/1.5/unix/lib の下に、libgdal.dylib がありますが、これは、/Library/Frameworks/GDAL.framework/Versions/1.5/GDAL へのリンクになっています。
そこで、この GDAL を、/usr/local/lib にまるごとコピーします。
次に、ターミナル上で、/usr/local/lib に移動してから、
sudo ln -s ./GDAL libgdal.1.dylib
を実行します。パスワードは、現在ログオンしているユーザーのパスワードです。
・今回は、GeoTiff を読み込ませようと思い、以下からGeoTiffのデータをダウンロードしました。このGeoTiffは、ヘッダの部分に座標系が埋め込まれているはずです。これを表示させてみましょう。
■MapTools Download: /dl/geotiff/samples/other
http://dl.maptools.org/dl/geotiff/samples/other/
この中の、erdas_spnad83.tif をダウンロードします。
・SPEを起動して、
import mapscript
from osgeo import gdal,gdalconst,ogr,osr
aa = mapscript.mapObj("")
print aa.name
gdal.AllRegister
dataset = gdal.Open('/Users/bugna/Projects/Python/erdas_spnad83.tif', gdal.GA_ReadOnly)
print 'Driver: ', dataset.GetDriver().ShortName,'/', ¥
dataset.GetDriver().LongName
print dataset.GetProjection()
などとして実行すると、
MS
Driver: GTiff / GeoTIFF
PROJCS["NAD83 / Georgia East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.2572221010002,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6666666666],PARAMETER["false_northing",0],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],AUTHORITY["EPSG","26966"]]
のような結果を得ることができます。
※GDAL がNamespace osgeo をつけるようになったので、import 行に注意