自宅のデスクトップPCが逝去。
妻が使っているWIndowsマシン。マウスが使えないということで
ヤマダ電機でマウスを買ってきましたが、やはり使えない。
おかしいと思い調べてみると、キーボードも使えない。USBポートが全滅していました。
箱を開けて調べてみると、放熱板がやけに高温になっている。火傷するほどの。
マザーが飛んだんだろう。
さて、現在のマザーボードはG41M-VSというもの。
www.asrock.com
通販でももはや売っていない。同じタイプのマザーで使えそうなのないかなと
ドスパラを検索。
Foxconn PRODUCT : Motherboard : Details
起動できなくなったが・・
リセットボタンやら、起動ボタンを長押しして、再トライ。
起動できるようになり。普通にwindowsもそのまま使えた。
4000円少しの投資で復活。嬉しい限りです。
geojsonでアプリにしていく
ポスグレに格納したポリゴンデータをgoogle map上に表示させたい
Creating GeoJSON Feature Collections with JSON and PostGIS functions - Postgres OnLine Journal
三島市のコインランドリーのボロネイ図作り、人口をカウントする
コインランドリー用のテーブルを用意しておく
前に述べた通り。QGISへ取り込む。
ボロネイ図を描写する
入力にコインランドリーのベクターを指定する。
そうするとシェープファイルが吐き出される。(volonay.shp)
そのシェープファイルを入力に新たなテーブルを作る
shp2pgsql -s 4326 volonoy.shp volonoy > volonoy.sql psql -d test -f volonoy.sql
人口カウント用のSQLを発行する
select v.id, (select name from volonoy b where b.id = v.id), sum(tblt000609) from volonoy v inner join population p on st_intersects( p.geom, v.geom ) group by v.id order by sum desc
三島市のコインランドリー周辺500mの人口を求めてみた
人口のシェープファイルを作成する
PostGISを使ってSQLだけで面積按分:準備編(QGISを使ってCSVデータとShapeデータ結合してPostgreSQLに投入) - Qiitaqiita.com
シェープファイルからSQLに変換後、postgisのテーブル(population)へ入れる
$ shp2pgsql -s 4326 population.shp population > population.sql $ psql -d dbname -f population.sql
人口を求めるクエリを発行する
select l.id, (select name from laundry b where b.id = l.id), sum(tblt000609) from laundry l inner join population p on st_intersects( p.geom, st_buffer(l.geom::geography,500)::geometry )group by l.id
重なったところの面積を按分する
select l.id, (select name from laundry b where b.id = l.id), sum(tblt000609 *( ST_AREA( ST_Intersection(p.geom , st_buffer(l.geom::geography,500)::geometry ) ) / ST_AREA( p.geom ) ) ) from laundry l inner join population p on st_intersects( p.geom, st_buffer(l.geom::geography,500)::geometry )group by l.id
複数店舗が重なった場合、按分する
人口のシェープデータをpostgisへロードするまでの過程
人口のデータについては前の記事
shp2pgsqlコマンドを使う
シェープファイルからSQLを吐き出してくれるコマンド。
populationテーブルにインポートする場合
shp2pgsql MESH05238.shp population
吐き出したSQLは
こんな感じで人口のデータは一緒に作ってくれない。人口のデータは別立てでロードしないといけないということか。
INSERT INTO "poplation" ("mesh1_id","mesh2_id","mesh3_id","mesh4_id","obj_id","key_code",geom) VALUES ('5238','77','99','4','790694','523877994','01060000000100000001030000000100000009000000D0636666E65F61401002222222AA41402CACCCCCCC5F61401002222222AA41402CACCCCCCC5F61407896666666AA41402CACCCCCCC5F6140D82AABAAAAAA4140D0636666E65F6140D82AABAAAAAA4140741B000000606140D82AABAAAAAA4140741B0000006061407896666666AA4140741B0000006061401002222222AA4140D0636666E65F61401002222222AA4140');
人口データと結合したデータを作る
以下、とても詳しいです。QGIS上でメッシュデータと人口のデータを結合してから取り込むとのことです。
PostGISを使ってSQLだけで面積按分:準備編(QGISを使ってCSVデータとShapeデータ結合してPostgreSQLに投入) - Qiita
QGIS入門しています
レイヤーはどうも回線が遅すぎて、如何にもこうにも、まぁ、いいや。次行こう。
人口が知りたい
e-Statのダウンロードページ
静岡県は一体どのメッシュコードをダウンロードしていいのかわからない??こちらから
検索。
レイヤに追加
上記ファイル群をダウンロードしたら。そのうちの一つ、拡張子shpをQGISのレイヤへドロップする。
レイヤの順番には意味があるので、上下で隠れてしまう場合があるので注意かも。
一応表示できたのですが、ランドマーク、星で表したところ(Postgre+postgisへinsertしたデータ)は、三島市のポイントのはずなのに、なぜか山梨に表示されてしまう。これは、チョツト問題。
測地系
国土地理院のデータは世界測地系と言うらしい。Googleさんと誤差は少ないと思われるのですが。
[GIS] 日本測地系からWGS84への変換パラメータの謎を追え - ここのことはなかったことにするかも
WGS84と緯度経度は違うようだ
Geocoding - 住所から緯度経度を検索
おそらく、緯度経度を入力してしまったから問題になったのだろう。
WGS84のSRIDは4326のようで
postgis - Choosing SRID and what is its meaning? - Geographic Information Systems Stack Exchange
postgisへinsertするときには4326でinsertすればいいようです。