トップページ -> 最新情報技術の実習と研究ツール -> Linux のインストール,設定,運用保守,便利な使い方 -> Ubuntu で GEOS, GDAL, PostGIS (地理情報システム) 及び関連ソフトウエアのインストール
[サイトマップへ]  

Ubuntu で GEOS, GDAL, PostGIS (地理情報システム) 及び関連ソフトウエアのインストール

謝辞:

この Web ページは、 次の 2つの Web ページの内容をもとに、最新の ubuntu で検証した結果です.先人に感謝.

https://gist.github.com/arthur-e/7d721f34e2536203513d

https://www.dvginteractive.com/setting-up-a-ubuntu-16-04-python-gis-development-environment/


前準備

Ubuntu のシステム更新などを終わっておくこと

端末を開き、次を実行

sudo apt update
sudo apt -yV upgrade
sudo apt -yV dist-upgrade
sudo apt -yV autoremove
sudo apt autoclean
sudo shutdown -r now

Ubuntu で パッケージのインストール

前準備として、Ubuntu で、いくつかのパッケージをインストール

  1. プログラミング開発環境, 関連ツール, エディタ

    gcc, g++, swig, curl

    sudo apt -yV install build-essential gcc g++ 
    sudo apt -yV install swig curl 
    

  2. システムの Python

    sudo apt -yV install python3-dev python3-pip python3-numpy python-dev python-pip python-numpy 
    

Ubuntu で GEOS, proj, HDF4, HDF5, GDAL, GDAL-OGR, QGIS, PostgreSQL, PostGIS のインストール

  1. 端末を開く

  2. GEOS のインストール
    cd /usr/local/ 
    sudo mkdir geos 
    sudo chown $USER geos 
    cd geos
    wget http://download.osgeo.org/geos/geos-3.5.1.tar.bz2
    tar -xvjof geos-3.5.1.tar.bz2
    cd geos-3.5.1
    ./configure --enable-python
    make 
    sudo make install
    

  3. proj のインストール
    cd /usr/local/ 
    sudo mkdir proj 
    sudo chown $USER proj
    cd proj
    wget http://download.osgeo.org/proj/proj-5.1.0.tar.gz
    tar -xzvof proj-5.1.0.tar.gz 
    cd proj-5.1.0
    ./configure
    make
    sudo make install
    

  4. HDF4, HDF5 のインストール
    sudo apt -yV install libhdf4-0 libhdf4-dev
    cd /usr/local/ 
    sudo mkdir hdf5 
    sudo chown $USER hdf5 
    cd hdf5
    wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.10.1.tar.gz
    tar -xzvof hdf5-1.10.1.tar.gz
    rm hdf5-1.10.1.tar.gz
    cd hdf5-1.10.1
    ./configure --prefix=/usr/local --enable-shared --enable-hl
    make
    sudo make install
    

  5. GDAL, GDAL-OGR のインストール
    sudo apt -yV install gdal-bin 
    sudo apt -yV install libgdal-dev 
    sudo apt -yV install libgdal1-dev
    sudo apt -yV install python-gdal
    sudo apt -yV install python-geopandas
    sudo apt -yV install python3-gdal
    sudo apt -yV install python3-geopandas
    

  6. QGIS のインストール
    sudo apt -yV install qgis 
    sudo apt -yV install python-qgis 
    sudo apt -yV install qgis-plugin-grass
    

  7. TopoJOSN, GeoJSON のインストール
    sudo npm install -g topojson
    sudo npm install -g geojson
    

  8. PostgreSQL のインストール
    # PostgreSQL
    sudo apt -yV install postgresql-10 
    sudo apt -yV install postgresql-client-10 
    sudo apt -yV install postgresql-client-common postgresql-common 
    sudo apt -yV install postgresql-contrib
    sudo apt -yV install pgadmin3
    sudo apt -yV install postgresql-server-dev-10
    # PostgreSQL for Python projects
    sudo apt -yV install python-psycopg2
    sudo apt -yV install python3-psycopg2 
    

  9. PostgreSQL のバージョン確認
    psql --version
    

  10. 利用者の作成と、PostgreSQL データベース管理者権限の付与
    sudo su -c "createuser dbadmin --login --inherit --superuser --createdb --createrole --pwprompt" - postgres
    sudo service postgresql restart
    

  11. 試しに、データベース名 hoge のデータベース作成と確認を行う

    エラーメッセージが出なければOK

    sudo -u postgres createdb -O dbadmin hoge
    psql -h localhost -U dbadmin hoge
    \q
    

  12. PostGIS のインストール
    sudo apt-get install libxml2-dev
    cd /usr/local/
    sudo mkdir postgis
    sudo chown $USER postgis
    cd postgis
    wget http://download.osgeo.org/postgis/source/postgis-2.4.4.tar.gz
    tar -xzvof postgis-2.4.4.tar.gz 
    cd postgis-2.4.4
    ./configure --with-projdir=/usr/local/proj/proj-5.1.0 --with-pgconfig=/usr/bin/pg_config --with-xml2config=/usr/bin/xml2-config
    make
    sudo make install
    

  13. データベース名 hoge のデータベースに PostGIS 拡張を行ってみる

    エラーメッセージが出なければOK

    psql -h localhost -U dbadmin hoge
    create extension postgis;
    create extension postgis_topology;
    \q
    

  14. データベース名 hoge のデータベースで、テーブルを定義し、レコードを挿入してみる

    エラーメッセージが出なければOK

    psql -h localhost -U dbadmin hoge
    create table P (id integer, name text, geo geography(Point, 4326));
    insert into P values(1, 'hoge park', ST_GeogFromText('SRID=4326;POINT(-50.1 50.2)'));
    select * from P;
    \q
    

  15. Python 処理系で、次のプログラムを実行してみる

    パスワード(下のプログラムでは「my password」)は、正しいパスワードに置き換えて実行すること

    import psycopg2
    import geopandas 
    conn = psycopg2.connect(database="hoge", user="dbadmin", password="my password", host="localhost")
    q = "select * from P;"
    a = geopandas.GeoDataFrame.from_postgis(q, conn, geom_col='geo')
    print(a)
    

  16. PostGIS のテンプレートデータベースの設定

    参考 Web ページ: https://gist.github.com/arthur-e/7d721f34e2536203513d

    export POSTGIS_TEMPLATE=postgis-2.4.4 
    export POSTGRESQL_VER=10
    sudo su -c "createdb $POSTGIS_TEMPLATE" - postgres
    sudo -u postgres psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='$POSTGIS_TEMPLATE';"
    sudo -u postgres psql -d $POSTGIS_TEMPLATE -f /usr/share/postgresql/$POSTGRESQL_VER/contrib/postgis-2.4/postgis.sql
    sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT ALL ON geometry_columns TO PUBLIC;"
    sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"
    

    エラーメッセージが出ていないことを確認する


Anaconda をインストールし・Anaconda 配下の Python で動くように PostGIS を整える

  1. Anaconda (Python 処理系と関連ツールなど)のインストール
    sudo apt -yV install libbz2-dev libsqlite3-dev libssl-dev libreadline-dev libpng-dev libjpeg-dev zlib1g-dev libx11-dev libfreetype6-dev
    cd /tmp
    wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
    bash Anaconda3-5.2.0-Linux-x86_64.sh
    

  2. Anaconda 配下の pip の更新

    新しく端末を開き、次のコマンドを実行

    cd /tmp
    sudo rm -f get-pip.py
    wget https://bootstrap.pypa.io/get-pip.py
    python get-pip.py
    

  3. Anaconda 配下にパッケージの追加、インストール済みパッケージの更新
    export CONDA=${HOME}/anaconda3/bin/conda
    $CONDA install -y conda-build
    $CONDA update -y pip
    $CONDA update -y setuptools
    $CONDA update -y conda
    $CONDA update -y conda-build
    $CONDA install -y gcc_linux-64
    $CONDA install -y gxx_linux-64
    $CONDA update -y --all
    

  4. spyderを起動し、次のプログラムを実行してみる

    パスワード(下のプログラムでは「my password」)は、正しいパスワードに置き換えて実行すること

    import psycopg2
    import geopandas 
    conn = psycopg2.connect(database="hoge", user="dbadmin", password="my password", host="localhost")
    q = "select * from P;"
    a = geopandas.GeoDataFrame.from_postgis(q, conn, geom_col='geo')
    print(a)
    

  5. Anaconda 配下の Python に psycopg2, ArcGIS API for Python, gdal, geopandas をインストール
    export CONDA=${HOME}/anaconda3/bin/conda
    $CONDA install -y psycopg2
    $CONDA install -y -c esri arcgis
    pip install --ignore-installed --upgrade geopandas
    

  6. Anaconda 配下の Python を使って, GEOS を再インストール

    configure の実行時に「checking for Python library path... configure: error: cannot find Python library path」と表示されるエラーを回避するために、「cp ${HOME}/anaconda3/lib/libpython3.6m.a ${HOME}/anaconda3/lib/libpython3.6.a」を実行.

    cp ${HOME}/anaconda3/lib/libpython3.6m.a ${HOME}/anaconda3/lib/libpython3.6.a
    cd /usr/local
    cd geos
    cd geos-3.5.1
    ./configure --enable-python
    make clean
    make PYTHON_LDFLAGS="-L${HOME}/anaconda3/lib"
    sudo make install
    

  7. Anaconda 配下の Python を使って, PostGIS を再インストール
    cd /usr/local/
    cd postgis
    cd postgis-2.4.4
    ./configure --with-projdir=/usr/local/proj/proj-5.1.0 --with-pgconfig=/usr/bin/pg_config --with-xml2config=/usr/bin/xml2-config
    make clean
    make PYTHON_LDFLAGS="-L${HOME}/anaconda3/lib"
    sudo make install 
    

  8. 確認のため、先ほど実行したプログラムを、もう1度実行してみる

    同じ結果になれば OK.