謝辞:
この 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/
UbuntuUbuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -yV upgrade sudo /sbin/shutdown -r now
端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config sudo apt -y install swig curl
Python のインストールは行わない(Ubuntu のシステム Python を用いる.)
Python, pip のコマンドでの起動のまとめ.
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明している.
端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
cd /usr/local/ sudo mkdir geos sudo chown $USER geos cd geos curl -O https://download.osgeo.org/geos/geos-3.8.1.tar.bz2 tar -xvjof geos-3.8.1.tar.bz2 cd geos-3.8.1 PYTHON=/usr/bin/python3 ./configure --enable-python make sudo make install
cd /usr/local/ sudo mkdir proj sudo chown $USER proj cd proj curl -O https://download.osgeo.org/proj/proj-7.2.0.tar.gz tar -xzvof proj-7.2.0.tar.gz cd proj-7.2.0 ./configure make sudo make install
sudo apt -y update sudo apt -y install libhdf4-0 libhdf4-dev cd /usr/local/ sudo mkdir hdf5 sudo chown $USER hdf5 cd hdf5 curl -O 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
sudo apt -y update sudo apt -y install gdal-bin sudo apt -y install libgdal-dev sudo apt -y install libgdal-dev sudo apt -y install python3-gdal sudo apt -y install python3-geopandas
sudo apt -y update sudo apt -y install qgis sudo apt -y install python3-qgis sudo apt -y install qgis-plugin-grass
sudo npm install -g topojson sudo npm install -g geojson
# PostgreSQL sudo apt -y install postgresql-12 sudo apt -y install postgresql-client-12 sudo apt -y install postgresql-client-common postgresql-common sudo apt -y install postgresql-contrib sudo apt -y install pgadmin3 sudo apt -y install postgresql-server-dev-12 # PostgreSQL for Python projects sudo apt -y install python3-psycopg2
psql --version
sudo su -c "createuser dbadmin --login --inherit --superuser --createdb --createrole --pwprompt" - postgres sudo pg_ctlcluster 12 main status
エラーメッセージが出なければOK
sudo -u postgres createdb -O dbadmin hoge psql -h localhost -U dbadmin hoge \q
sudo apt -y update sudo apt -y install libxml2-dev cd /usr/local/ sudo mkdir postgis sudo chown $USER postgis cd postgis curl -O https://download.osgeo.org/postgis/source/postgis-3.0.4.tar.gz tar -xzvof postgis-3.0.4.tar.gz cd postgis-3.0.4 ./configure --with-projdir=/usr/local/proj/proj-7.2.0 --with-pgconfig=/usr/bin/pg_config --with-xml2config=/usr/bin/xml2-config make sudo make install
エラーメッセージが出なければOK
psql -h localhost -U dbadmin hoge create extension postgis; create extension postgis_topology; \q
エラーメッセージが出なければ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
パスワード(下のプログラムでは「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)
【関連する外部ページ】 https://gist.github.com/arthur-e/7d721f34e2536203513d
export POSTGIS_TEMPLATE=postgis-3.0.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;"
エラーメッセージが出ていないことを確認する