誰かがPostgisをインストールし、ubuntuに全国のTigerデータをロードするための馬鹿のガイドを理解していなくても、簡単に書くことができますか?私はいくつかのガイド、つまりhttp://wiki.bitnami.com/@api/deki/pages/302/pdfを試しましたが、あまりうまくいきません。この質問の自由な性質をお詫び申し上げます。
誰かがPostgisをインストールし、ubuntuに全国のTigerデータをロードするための馬鹿のガイドを理解していなくても、簡単に書くことができますか?私はいくつかのガイド、つまりhttp://wiki.bitnami.com/@api/deki/pages/302/pdfを試しましたが、あまりうまくいきません。この質問の自由な性質をお詫び申し上げます。
回答:
あなたはPostGIS 2.1.1を持っているので、あなたはゲームの先を行っています。wgetがインストールされていることを確認してください。これにより、Census FTPサイトからデータがダウンロードされます。
次のコマンドでgisdataディレクトリを作成します。
sudo mkdir /gisdata
chownコマンドとchgrpコマンドを使用して/ gisdataの所有権とグループを変更し、通常のユーザーが/ gisdataの読み取りと書き込みを行えるようにします。
psqlを起動してデータベースに接続します。PSQLに入ると
\a
そして
\t
クエリの結果が正しくフォーマットされるようにします。
最初はこの部分を忘れました!ローダースクリプトを使用する前に、ハウスクリーニングを行う必要があります。まず、tigerスキーマが検索パスに含まれていることを確認します。次に、tiger.loader_platformとtiger.loader_variablesの値を確認します。これらの2つのテーブルは、ユーザー名やパスワードなどのローダースクリプトの変数を制御します。通常、PGAdminで編集します。次は、ジオコーダーに必要なルックアップテーブルやその他の背景の良さを設定するスクリプトを実行する必要があります。まず、出力ファイルを設定します。
\o nation_generator.sh
次に実行します:
SELECT loader_generate_nation_script('sh');
次に、psqlを終了してファイルを実行します。
sh ./nation_generator.sh
次に、psqlに戻って次のように入力します。
\o loader_script.sh
クエリの結果をloader_script.sqlというテキストファイルに出力します。次に、ローダースクリプトを生成する関数を実行します。
SELECT loader_generate_script(ARRAY['DC','RI'], 'sh');
これは、出力がloader_script.sqlにリダイレクトされるクエリです。「DC」と「RI」を、ダウンロードする州の2文字の略語に置き換えます。
psqlを終了し、次のコマンドでスクリプトを実行します。
sh ./loader_script.sh
これにより、選択した状態のファイルがダウンロードされ、解凍されて、データがPostGISデータベースにインポートされます。
このサイトには、PostGISのインストールに関する複数の回答があります。ここに1つあります。NickGauthierのソリューションも優れています。その中の十分なアドバイスを繰り返します...
Ubuntu 12.04以降では、PostGISのインストールが大幅に簡単になりました。それを行うには、一般に2つの方法があります。PPAからのインストールとソースからのビルドです。以下は、各ケースで使用する一般的なシェルスクリプトです。
PPAからのインストール... PPAを使用していubuntugis-unstable
ます。
# Add Ubuntu GIS PPA and update, upgrade
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y && sudo apt-get update && sudo apt-get upgrade
# Install PostGIS
sudo apt-get install postgis
# Recommends: sudo apt-get install postgresql-9.1-postgis-2.0
# Configure template database
POSTGIS_TEMPLATE=postgis-2.0.1
POSTGRESQL_VER=9.1
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.0/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;"
ソースからのビルド...これはPostGIS 2.1とPostgreSQL 9.1を想定していますが、両方の最近のバージョンでもかまいません。必要に応じて変更してください。
cd /usr/local/ && sudo mkdir postgis && sudo chown [username] postgis && cd postgis
wget http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz
tar -xzvf postgis-2.1.0.tar.gz && rm postgis-2.1.0.tar.gz && cd postgis-2.1.0
sudo ./configure --with-projdir=/usr/local/proj/v4.7.0/
make
sudo make install
# Configure template database
POSTGIS_TEMPLATE=postgis-2.1.0
POSTGRESQL_VER=9.1
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.0/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;"
2つの間のテーマに気づくでしょう。テンプレートデータベースを作成し、spatial_ref_sys
テーブルに入力する必要があります。
TIGERのセットアップについては、PostGIS 2.xのドキュメントの第2章にある TIGERデータをロードする手順に従ってください。