landsdat-utilをwindowsで使う方法

landsa-utilというlandsatの画像を扱うための便利なツールがあります。macならインストールも簡単ですが、やっぱりwindowsでも利用したいということで、その方法をメモしときます。

※ただ、残念ながら私のPCでは最後の処理でメモリーエラーになります。
※64bitバージョンでインストールしないとだめなのかも...そうなるとこの記事は無効ですorz
※ただいま調査中

https://developmentseed.org/blog/2014/08/29/landsat-util/
https://github.com/developmentseed/landsat-util
https://developmentseed.org/blog/2015/03/28/twice-as-fast/

0. OSGeo4Wのインストール

※OSGeo4Wでインストールされるpythonを使うためだけに使用(他でインストールしたpythonでもいいですが)

2. gdalのコンパイル

※1.11系だとなぜかコンパイルエラーになるから1.10.0を使用
http://download.osgeo.org/gdal/1.10.0/gdal1100.zip

1.でインストールしたVisual C++ 2008 32-bit Command Promptでの作業

nmake /f makefile.vc
nmake /f makefile.vc inslall
name /f makefile.vc devinstall

※ C:\waramediaにインストールされます。

3. virtualenvの構築

以下、1.でインストールしたVisual C++ 2008 32-bit Command Promptでの作業

#pythonにパスを通す
C:\OSGeo4W\OSGeo4W.bat
#virtualenvを取ってくる
wget --no-check-certificate https://github.com/pypa/virtualenv/raw/master/virtualenv.py
#vitualenvを実行
python virtualenv.py landsat_python --no-setuptools
landsat_python\Scripts\activate
#pipをインストール
wget --no-check-certificate https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
4. landsat-utilに必要なパッケージをインストール
#six
pip install six

#pycurl
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl
※pip install curlだとエラー。別途cUrlのインストールが必要ぽいので、↑のバイナリをダウンロードしてインストール
pip install ..\Downloads\pycurl-7.19.5.1-cp27-none-win32.whl

#scipy
http://sourceforge.net/projects/scipy/files/scipy/0.15.1/scipy-0.15.1-win32-superpack-python2.7.exe/download
※pip install scipyやバイナリからだと実行時にdllがないエラーが出るため、↑のexeを7zipで展開してeasy_install
easy_install ..\Downloads\scipy-0.15.1-win32-superpack-python2.7\scipy-0.15.1-nosse.exe

#numpy
pip install numpy

#rasterioは一旦ソースをダウンロードしてinclude-dirなどを指定してインストール
pip install --no-install rasterio
cd landsat_python\build\rasterio
python setup.py build_ext --include-dirs=C:\warmerda\bld\include --library-dirs=C:\warmerda\bld\lib --libraries=C:\warmerda\bld\lib\gdal_i install

#landsat-util
pip install landsat-util
4. landsat-utilの修正

windowsで動くように以下のファイルを修正
C:\Users\mizutani\Desktop\landsat_python\Lib\site-packages\landsat\downloader.py
amazon_s3_urlの以下の部分を書き換え

return join(self.s3, sat['sat'], sat['path'], sat['row'], sat['scene'], filename).replace("\\","/")
5. 実行

検索
python landsat_python\Scripts\landsat search --lat 35.0 --lon 135.0 --cloud 10

ダウンロード
python landsat_python\Scripts\landsat download LC81100352014332LGN00 --bands 432

処理
python landsat_python\Scripts\landsat process C:\Users\mizutani\landsat\downloads\LC81100352014332LGN00