2019年1月6日日曜日

QGISで尼崎の人口分布図を作る

あまプロではQGISを用いて地図データを可視化する事が有ります。

最近は政府や自治体が持っているデータをオープンデータとして公開して、それらを利活用する事で価値を生み出せる様になりました。

今回は、お客さんとの打ち合わせの中で使った、尼崎市内で赤ちゃんの多い地域の可視化の手順をあメログ。

先ず、e-Stat政府統計の窓口から尼崎市の境界データ(世界測地系緯度経度・Shape形式)をダウンロードします。
解凍してQGISにレイヤを追加するとこんな感じです。

属性テーブルを開くと
町丁目が文字化けしてるので
エンコーディングをShift_JISに変更します
これで文字化けは解決しました!
この一つ一つが町丁目になります。
けど、これだけでは白地図みたいなもんで、あんま役には立ちません…。

では次に尼崎市の人口のページから町(丁)別・年齢別(5歳)世帯数及び人口のデータをダウンロードします。
先程の政府統計の窓口から年齢別人口のデータはダウンロード可能なんですが、こちらは四年に一度の国勢調査の更新頻度になります。
しかし尼崎市単体ですと、毎年の更新頻度になりますので、選り生きたデータを分布図に使えます。

なので、政府の境界データと尼崎市の人口データを紐付ける必要が有ります。
境界データの町丁目(S_NAME)と人口データの町(丁)がキーとなりそうです。
その為には人口データを整形する必要が有ります。
整形手順としては
  1. 中央、小田、大庄、立花、武庫、園田の各地区のシートを結合する
  2. 列名とデータ以外(合計と小計と空の行等)を削除する
  3. 調査未実施のxを0に置換する
  4. 町丁目の一致に邪魔な脚注の括弧()を削除する
  5. 町丁目の一致に邪魔な町丁目区切りの空白を削除する
  6. (尼崎固有)何故か二行有る大物町1丁目の片方を大物町に変更する
  7. (尼崎固有)大浜町1~2丁目を大浜町1丁目と大浜町2丁目に分ける
大体こんな感じです。
人口データの整形が済みましたら、レイヤとしてQGISに追加します。
追加した人口データレイヤの属性テーブルを開くと
人口データを読み込めています次に境界データと人口データを町丁目で紐づけます
次にスタイルの段階に分けられたを選択して、対象のカラム(今回は赤ちゃんの分布を調べたいので、0〜4を選択)と分類数を選択して、分類ボタンとOKボタンを押下します。
これで0〜4歳の人口の色分け分布図が出来ます。
今回は8段階表示で、色が濃い程赤ちゃんが多い所になります。
2歳以上は赤ちゃんちゃうやろというツッコミは置いといて。

この図から、阪神沿線の南部には赤ちゃんが少ないですね。
JR沿線の中部から赤ちゃんが増え始め、阪急沿線の北部は赤ちゃんが沢山居てる事が解ります。
JR塚口駅とJR尼崎駅の近所は子供が増え過ぎて、幼稚園保育所が不足しそうですね…。

今回はQGIS2.18とLibreOffice6.1とFirefox64とUbuntu18.04でお送りしました。
皆様も地理情報をご活用下さいませ〜

Scratch3.0始まりました

あまプロではScratchを使って授業をしています。
先日、Scratch3.0がリリースされまして、あまプロでも使い始めました。

Scratch2.0で作成した作品もScratch3.0へ移行されてまして、良い感じで使えます。
Flashプラグインに依存しなくなったので、ブラウザのみで使えるのが嬉しい所です。

2.0と比べてブロックの字が見難いと指摘が有りましたので、ブロックの文字色を変える方法をあメログ。

3.0はHTMLとCSSとJavaScriptを使って構築されてます。
ソースもGitHubに公開されてますので、興味の有る方は除いてみて下さい。

先ず、ブラウザでCtrl+Shift+iを押下してインスペクタを起動して下さい。
要素選択( □に←が刺さってる)アイコンをクリックして、要素選択モードにして
ブロックの字をクリックします。
スタイルの.blocklyTextクラスのfill:#fffがブロックの文字色になります。
このfffがRGB形式の色になってます。
黒文字がお好みの方はここを000に変えると、ブロックの文字が黒色になります。

うちの生徒は赤字にしてましたが…目がチカチカしました。

他にもコスチュームのスポイト(色を取得する機能)で透明色を選択するとクラッシュする
というバグが有ったりするんですが、その内改修されるでしょう。

3.0になって、スプライトや音楽のライブラリも豊富になり、ますますScratchが楽しくなりそうです〜

2018年12月31日月曜日

餅搗きゲーム

あまプロでは尼崎市内でプログラミング教室を開催しています。
アドベントカレンダーという企画が有りまして、日本で言う「もう幾つ寝るとお正月〜」のクリスマス版みたいな感じのカレンダーです。
日毎に記事を載せてクリスマスを迎えるのを楽しむ風習だそうです。
そのこどもプログラミング版が有りましたので、載せてもらいました。

あまプロでは一回90分で授業を行っております。
基本的に一回完結形式の授業になります。
今回は年末年始ということで、Scratchで餅搗きゲームを作ってみます。
ちなみにScratch2.0では日本語入力の関係でChromium+pepperflashplugin-nonfreeで行います。
Scratch3.0はFlashを未使用なのでFirefoxで動くと思います。

 スプライトを作る

スクラッチには予めスプライトが幾つか用意されていますが、餅搗きに使えそうなスプライトは含まれていません…。
なので、自作する必要が有ります。
餅搗きに必要なスプライトは「杵」「臼」「餅」です。
初期表示される猫を削除して、左下の筆アイコンをクリックして、杵のスプライトを描きましょう。
簡単に茶色の長方形で描きます。
こちらを左杵とし、複製して左右反転さして右杵にします。
次に臼。
臼は長方形を消しゴムで削って臼にしました。
最後に餅。
餅は形が変わるので、コスチュームを三枚描きます。
こちらも白い楕円を描いたり削ったりして簡単に描きます。
平らな餅と、凹んだ餅と、伸びた餅の三枚を描きます。

スクリプトを組む

スプライトを描いたら次はスクリプトを書きます。

先ずは左杵から

キーボードのqで振り上げ、sで振り下ろします。
振り上げ振り下ろしはスプライトを回転さす事で実現しています。
せっかちなスクラッチャの為に↑↓でスピード調整が行える様にしました。
それと、振り上げ過ぎ振り下ろし過ぎの防止の機能を追加してみました。
これで杵が臼にめり込む事がなくなります。
次に左杵のスクリプトを右杵へドラッグアンドドロップして写します。
右杵はpで振り上げて、lで振り下ろします。

次に餅のスクリプト

杵の振り下ろし中に餅に触れると凹んだ餅に、杵の振り上げ中に餅に触れると伸びた餅に、それ以外は平らな餅にします。

臼のスクリプトは無いです

こんな感じで餅搗きゲームの出来上がりです。
必須では無いですが、ゲームとして盛り上げる為に

おまけとして

  • 餅を撞く時に音を出す機能と
  • 撞いた数を数えておき、数を超えると出来上がりにする演出を加えても良ぇでしょう。
  • それと杵同士がぶつかった時に演出すると、選りゲーム性が高まります。
  • あと、背景は白のままやと餅と同化してまうので、何か色を変えといた方が良ぇです。
この辺りは時間が有ればお好みで。
作成したゲームはこちらになります。

それでは〜

2018年12月13日木曜日

バリューサーバでワードプレス構築

あまプロではウェブサイトの構築をお受けする事が有ります。

小規模なサイトではバリュードメインを使う事が多いです。
バリュードメインのマニュアルに個別の説明は載ってるのですが、ドメイン購入からワードプレスインストールまでの流れが揃ってなかったのであメログ。

手順としてはこんな感じになります。
  1. ドメインの購入
  2. WHOIS情報の確認
  3. サーバの購入
  4. DNSの設定
  5. ドメインウェブの設定
  6. SSLの設定
  7. PHPのバージョン設定
  8. データベースの構築
  9. ワードプレスの設置

2018年12月1日土曜日

GASでPDF出力

あまプロではGoogleAppsScriptで社内システムを構築する事が有ります。
フリーエディションには6分を超えるスクリプトの処理は出来なかったり、一日に作成するファイル数は500迄と制限が有ったりすんねんけど、グーグルアカウントさえあればGASで簡単な社内システムなら構築可能です。

その中でも良く使うPDFエクスポートをあメログ。

 簡単に説明すると、IDでファイルを開いて、getAsで変換して、createFileで保存すんだけ。
  DriveApp.getFolderById( 'フォルダID').createFile(
    DriveApp.getFileById( 'スライドID').getAs( MimeType.PDF)
  )
  .setName( 'スライド.pdf')//デフォルト名(ファイル名.pdf)で良ければこの行は不要
  ;
  DriveApp.getFolderById( 'フォルダID').createFile(
    DriveApp.getFileById( 'スプレッドシートID').getAs( MimeType.PDF)
  )
  .setName( 'スプレッドシート.pdf')
  ;
  DriveApp.getFolderById( 'フォルダID').createFile(
    DriveApp.getFileById( 'ドキュメントID').getAs( MimeType.PDF)
  )
  .setName( 'ドキュメント.pdf')
  ;
IDやファイル名は各々変えます。
ご覧の通り、GoogleドキュメントでもGoogleスプレッドシートでもGoogleスライドでも手順は同じです。

グーグルドライブに変換前と変換後のサンプルを置いておきます。
サンプルスプレッドシートスプレッドシートPDF
サンプルスライドスライドPDF
サンプルドキュメントドキュメントPDF

例えば、スプレッドシートをデータベース代わりにして、データを抽出して、データを帳票に埋め込んでPDF出力する
なんて事もGASで可能。

ちなみにドキュメント(ワープロ)ファイルをGASで操作すると(今の所)テキストボックスの操作が出来へん様なので、スライド(プレゼンテーション)をGASで操作してPDFファイルを出力するのが良ぇみたいです。
2018/11/30現在。

2018年11月7日水曜日

Re: Ubuntu18.10について

あまプロではUbuntuを使っています。

先程、エラー続きだったアップグレードがやっとこさ開始しました。


Ubuntu18.11になってもうたけど…。

2018年11月3日土曜日

wi-fiルータ置き忘れ防止アプリについて

あまプロでは尼崎市内の教室で授業する際にベイコムさんのwi-fiルータを活用しています。
利用エリアは尼崎市と西宮市と伊丹市と大阪市北部…と狭いのですが、何選り安い。
しかも定額制!
なもんで、あまプロでは大助かりなんですが…コンパクト過ぎて度々置き忘れてましたorz
アプリで防止出来へんか探してみたんですが、探し方が悪かった所為か良いのが見付かりませんでした。
「無きゃ作れば良ぇやんが」 あまプロの理念なので、作ってみました。
 wi-fiの鈴
野良アプリですので、インストールするにはAndroidの設定で開発元不明のアプリのインストールの許可をする必要が有ります。
私のAndroid4.4.4でのみ動作確認済みで、悪い事は仕込んでませんが保証は出来ませんので自己責任でお使い下さい。
不具合報告等頂けると直すかもしれません。
ソースはgithubで公開する予定です。
ゆくゆくはGooglePlayにも…出すかもしれません。

 使い方は
 置き忘れたくないwi-fiルータに接続してから
 アプリ(wi-fiの鈴)を起動して
 スイッチオン
 うっかりwi-fiルータの圏外に出るとアラームが鳴ります

 これで忘れ物が一つ減る…筈だ。