ケンタッキーの年末限定メニュー『スモークチキン』が大変良い
昨年末の家族料理に向けてケンタッキーの限定メニュー『スモークチキン』を購入しました。
スモークチキンは年末時期の期間限定メニュー。インターネットで調べるとギフト商品として人気があるみたいっすね。生ハム原木買うよりも怒られないし、色々やってみたいという好奇心もあり購入。原木は1万8千円しますけどこちらは一本1,300円程度です。購入したのはスタンダード1本とパストラミ2本。4千円強だったかな。
続きを読む超簡易的な住所文字列の処理系を作った
住所文字列の表記揺れを目視で確認する作業が発生して、衝動に任せて作った代物です。コードを読んでいただけばわかりますけど抜けだらけです(ジオコーダ作るときの指標ぐらいにはなるかも)。
このコードは住所文字列のCSVを読み込んで、都道府県/市区町村/大字/町丁目/それ以外 の列として切り出します。必要なものは市区町村、大字、町丁目の辞書データです(これは./address_base/以下に格納)。また、表記揺れを解消するための辞書を読み込む機能を作っています。これは作業フォルダ以下(./WordDictionary/WordDictionary.csv)においてあり、修正前文字列/修正後文字列をCSVの形で持っています(「粕屋郡,糟屋郡」みたいなCSVです)。
続きを読むPostgreSQLで管理するカラムの型変換(CAST)に関するメモ
作業メモです。近い将来同じミスで嵌まることが容易に想像できるので、見える落とし穴は潰しておく。
一般的なキャスト
ALTER TABLE句を使います。
ALTER TABLE tablename ALTER COLUMN columnname TYPE hoge;
hogeの部分は指定したい型を記します。intとかvarchaerとかですね。この記述で概ね問題ないんですが、時々エラーで止まります。エラーメッセージは以下のようなものです。
ERROR: column "huga" cannot be cast automatically to type integer HINT: Specify a USING expression to perform the conversion.
「エラー:カラムhugaは自動的に整数型(integer)にキャストすることはできません。ヒント:変更を実行するためにUSING句を使用しましょう。」
指示に従って粛々と実行
対応
上述のクエリにUSING句を追加します。
ALTER TABLE tablename ALTER COLUMN columnname TYPE int USING(columnname::INTEGER);
このエラーの原因、なんとなくわかるけど確証が持てないのでそこは言葉を濁しつつ。
国土数値情報のデータから都道府県ポリゴンを作る
「都道府県のポリゴンってWebに落ちてない?」 「国土数値情報から作ればいいじゃん」
という掛け合いがありましたので、国土数値情報の行政界データから都道府県ポリゴンを作る方法について書いておきたいと思います。 使うものはPostgreSQLとPostGISです。
まずは国土数値情報から全国分の行政界データをダウンロードします。
これをPostgreSQLに取り込みます。取り込むときはPostGIS Shapefile Import/Export Managerを使うと楽ですね。PostGISインストールしてたらプラグインから呼び出しができます。
pgAdminなんかで中身を見るとn03_001フィールドに都道府県名が格納されているのがわかるので、これをキーにしてポリゴンの結合を行います。
CREATE TABLE pref_polygon AS SELECT n03_001 AS pref_name, ST_Multi(ST_Union(geom)) AS geom FROM n03-16_16101 GROUP BY n03_001
これでいけるはず。
PostGISのST_Multiでマルチポリゴンを生成。ST_Unionで結合。GROUP BYで括れるので、都道府県名(n03_001)をキーにします。