住民基本台帳による世帯と人口
http://www.toukei.metro.tokyo.jp/juukim/jm-index.htm
平成20年6月のデータをダウンロードしました。
これを人口総数(A+B)、男、女、外国人登録人口に行政コードを追加した単純な表にします。
例えば、
0 OpenOffice.org Calc でダウンロードしたファイルを開く
1 データをコピーし、別のファイルに
編集->形式を選択して張り付け->「テキスト、数」だけチェックして「OK」
2 列のタイトルは1行にする
3 市区町村の行以外を削除する(空行や合計行など)
4 市区町村名、人口総数(A+B)、男、女、外国人登録人口以外の列を削除する
5 行政コードを追加する (行政コード、市区町村名、人口総数(A+B)、男、女、外国人登録人口の順にしました。)
6 タイトル行を削除する
7 CSVファイルとして出力
行政コードは、インターネットで探すか、次のようにマップデータから作成します。
Eclipseを起動して tokyo データベースに接続します。
データベース構造(Database Structure) ウィンドウの
public -> テーブル(table) -> gyoseikai
をクリックを右クリックし、 Selectステートメントの生成 をクリックします。
SQLエディタ に次のように入力して実行します。
select distinct con, cn2, aac from "public"."gyoseikai"
表示された結果を右クリックして、 エクスポート->export to .csv をクリックします。
include column header をチェックし、宛先 ボタンをクリックして保存先とファイル名を指定し、OK ボタンをクリックします。
csvファイルを開き aac で「並べ替え」した後、aac (行政コード)をコピーし、加工した人口データに貼り付けます。
*コマンドでCSVファイルに出力
user@debian:~$ psql -F ',' -A -t -c 'SELECT DISTINCT con, cn2, aac from gyoseikai' tokyo > gyosei_code.csv
参考
user@debian:~$ psql tokyo
Welcome to psql 8.1.11, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
tokyo=> \o gyosei_aac.txt
tokyo=> SELECT DISTINCT con, cn2, aac from gyoseikai;
tokyo=> \!less gyosei_aac.txt
tokyo=> \o
tokyo=> \q
バージョン8.3なら次も可能
tokyo=> \COPY (SELECT DISTINCT con, cn2, aac from gyoseikai) TO 'aac2.csv' WITH DELIMITER ','
ファイルの内容
葛飾区,\N,13122
江戸川区,\N,13123
江東区,\N,13108
---
東京都の人口テーブルの作成
データベースtokyoに次のようにテーブルを作成します。
Eclipseの場合(2009.7.22現在、実行が完了してもテーブルが生成できないか、エラーが表示されました。)
データベース構造(Database Structure) ウィンドウの
public -> テーブル(table) -> gyoseikai
をクリックを右クリックし、 Create Table スクリプト をクリックします。
SQL エディタ を次のように修正して実行します。
CREATE TABLE "public"."population"(
aac varchar(5),
shikuchoso varchar(14),
total int4,
male int4,
female int4,
foreigner int4);
データベース構造(Database Structure) ウィンドウのテーブル(table)を右クリックし、更新 をクリックすると population テーブルが表示されます。
*コマンドで population テーブルを作成(2009.7.22現在、こちらでテーブルを作成しました。)
user@debian:~$ psql tokyo
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
tokyo=> CREATE TABLE population (
tokyo(> aac varchar(5),
tokyo(> shikuchoso varchar(14),
tokyo(> total int4,
tokyo(> male int4,
tokyo(> female int4,
tokyo(> foreigner int4);
NOTICE: CREATE TABLE will create implicit sequence "population_aac_seq" for serial column "population.aac"
CREATE TABLE
tokyo=> \q
tokyo_population.csv の内容を population テーブルに追加します。
スーパユーザー(postgres)で
nob61@debian:~$ su - postgres
パスワード:
postgres@debian:~$ psql tokyo
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
tokyo=# COPY population FROM '/home/nob61/download/tokyo_population/tokyo_population.csv' CSV;
COPY 62
tokyo=# \q
tokyo_pgis.mapの DATA の部分を次のように修正します。
DATA "the_geom from (
SELECT gyoseikai.gid AS gid,
gyoseikai.con AS con,
gyoseikai.cn2 AS cn2,
gyoseikai.aac AS aac,
gyoseikai.the_geom AS the_geom,
population.total AS total,
population.male AS male,
population.female AS female,
population.foreigner AS foreigner
FROM gyoseikai LEFT OUTER JOIN population ON gyoseikai.aac = population.aac
)
AS gyosei_pop USING UNIQUE gid USING SRID=-1"
0 件のコメント:
コメントを投稿