2019年1月2日水曜日

VagrantでAppEditor、Xfce Desktop環境、XRDPがインストールされた仮想マシン(Ubuntu18.04)を構築する

AppEditorでデスクトップメニューのカスタマイズを行うことができます。

〇AppEditorの画面


〇構築方法
以下のVagrantfileを使用して、AppEditor、Xfce Desktop環境、XRDPをインストールした仮想マシン(Ubuntu18.04)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はvagrant、パスワードもvagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804xfceappeditor"
config.vm.network :public_network, ip:"192.168.1.107"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1804xfceappeditor"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get -y install language-pack-ja
sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install xrdp=0.9.5-2 fcitx-mozc xubuntu-desktop language-pack-ja language-pack-ja
im-config -n fcitx

apt-get -y install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04
apt-get -y install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11

sed -i -e "s/allowed_users=console/allowed_users=anybody/" /etc/X11/Xwrapper.config

echo "xfce4-session" > /home/vagrant/.xsession
apt-get -y purge light-locker

# install Flatpak and AppEditor
apt-get -y install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak -y install flathub com.github.donadigo.appeditor
cat << EOF > /usr/share/applications/appeditor.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/flatpak run com.github.donadigo.appeditor
Name=AppEditor
Categories=Development;
EOF

init 5
SHELL
end


○関連情報
・AppEditorに関する他の記事はこちらを参照してください。

Ubuntu18.04にVocalとFlatpakをインストールする

Vocalはオープンソースのpodcastクライアントです。Flatpakでlinuxデスクトップアプリケーションの管理・仮想化を行うことができます。

〇Vocalの画面


〇インストール方法
Ubuntuで以下のコマンドを実行してVocalとFlatpakをインストールします。
sudo apt-get -y install flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak -y install --from https://flathub.org/repo/appstream/com.github.needleandthread.vocal.flatpakref
cat << EOF | sudo tee -a /usr/share/applications/vocal.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/flatpak run com.github.needleandthread.vocal
Name=Vocal
Categories=AudioVideo;
EOF

Jupyterとpandas、foliumで埼玉県和光市のすべての公共施設(市役所・出張所・出先機関・その他)を地図に描画する

Jupyterとpandas、foliumを使用して、以下のコードで埼玉県和光市のすべての公共施設(市役所・出張所・出先機関・その他)を地図に描画する事ができます。

〇出力画面


〇サンプルコード
import folium
import pandas as pd
import math

df = pd.read_csv("https://opendata.pref.saitama.lg.jp/data/dataset/8f40a281-8bf1-48c2-9d84-b318fd5c5443/resource/1efd808d-90e5-485c-b6f7-392dea341a17/download/20151029105717.csv", encoding="cp932")
#display(df)
fm = folium.Map(location=[35.781208, 139.605793], zoom_start=13)

for i, dt in df.iterrows():
  if not math.isnan(dt['緯度']):
    folium.Marker(location=[dt['緯度'], dt['経度']], popup=dt['施設名']).add_to(fm)
fm

〇元データ
【和光市】すべての公共施設(市役所・出張所・出先機関・その他)
https://opendata.pref.saitama.lg.jp/data/dataset/5f9afb91-7ce5-4ced-acff-0ed7dfc0ff71

Jupyterとpandasdmxを使用して、OECDの道路インフラ投資(住民一人あたりのUSD額)データを取得する

Jupyterとpandasdmxを使用して、OECDの道路インフラ投資(住民一人あたりのUSD額)(=Road infrastructure investment in current USD per inhabitant)データを取得しグラフ表示するには、以下のコードを実行します。

〇出力グラフ


〇コード
from pandasdmx import Request
import matplotlib.pyplot as plt

oecd = Request('OECD')
countries="JPN+USA+BEL"
data_response = oecd.data(resource_id='ITF_INDICATORS', key=countries + ".IND-INFR-RDINV-PC/all?startTime=2000&endTime=2016")
oecd_data = data_response.data

df = data_response.write(oecd_data.series, parse_time=True)
df = df.unstack(level=0).to_frame()
df.columns=['Road infrastructure investment']
df = df.reset_index()
df = df[["COUNTRY", "TIME_PERIOD", "Road infrastructure investment"]]
df.set_index(["COUNTRY", "TIME_PERIOD"], inplace=True)
ax = df.unstack(level=0).plot()
plt.xticks(rotation=90)
plt.legend(loc='best')
plt.show()

〇元データ
Indicators
https://stats.oecd.org/Index.aspx?DataSetCode=ITF_INDICATORS


○関連情報
・Pandasdmxに関する他の記事はこちらを参照してください。

Jupyterとwbdataで世界銀行の家畜生産指数データを取得する

Jupyterとwbdataで、国別年別の家畜生産指数(2004-2006年比)を取得して、グラフ描画します。

〇出力画面


使用指標

AG.PRD.LVSK.XD
家畜生産指数(2004-2006年比) - Livestock production index (2004-2006 = 100)

サンプルコード

以下のコードをJupyterから実行してください。
%matplotlib inline
import matplotlib.pyplot as plt
import wbdata

df = wbdata.api.get_dataframe({"AG.PRD.LVSK.XD":"Livestock production index"}, country=["JP","US", "AU"], convert_date=True)
df.unstack(level=0).plot()
plt.legend(loc='best')
plt.show()

関連情報

・世界銀行のデータを取得・可視化する記事のまとめは以下のページを参照してください。
世界銀行のデータを取得できるwbdataパッケージのまとめ

・wbdataパッケージをインストールしたコンテナを作成するには、以下のページを参照してください。
DockerでJupyter Notebookと世界銀行の情報が取得できるwbdataパッケージがインストールされたコンテナのイメージを作成する

・コンテナではなく、仮想マシンを構築する場合は、以下を参照します。
VagrantでJupyter Lab、wbdata、BokehとMariaDBをインストールした仮想マシン(Ubuntu18.04)を構築する

・世界銀行のデータを取得することができるwbdataパッケージに関する他の記事はこちらを参照してください。

2019年1月1日火曜日

Jupyterとpandas、foliumで埼玉県和光市の避難所を地図に描画する

Jupyterとpandas、foliumを使用して、以下のコードで埼玉県和光市の避難所を地図に描画する事ができます。

〇出力画面


〇サンプルコード
import folium
import pandas as pd
import math

df = pd.read_csv("https://opendata.pref.saitama.lg.jp/data/dataset/270f01c0-030f-4fde-ac01-d12b7d7ba2e6/resource/c23e175c-9c77-435b-8454-414794f70551/download/20151029104625.csv", encoding="cp932")
#display(df)
fm = folium.Map(location=[35.781208, 139.605793], zoom_start=13)

for i, dt in df.iterrows():
  if not math.isnan(dt['緯度']):
    folium.Marker(location=[dt['緯度'], dt['経度']], popup=dt['施設名']).add_to(fm)
fm

〇元データ
【和光市】避難所
https://opendata.pref.saitama.lg.jp/data/dataset/312f22c4-988b-458e-9720-e6cc6c086e1d

Jupyterとwbdataで世界銀行の耕地面積(一人当たりヘクタール)データを取得する

Jupyterとwbdataで、国別年別の耕地面積(一人当たりヘクタール)データを取得して、グラフ描画します。

〇出力画面


使用指標

AG.LND.ARBL.HA.PC
耕地面積(一人当たりヘクタール)データ - Arable land (hectares per person)

サンプルコード

以下のコードをJupyterから実行してください。
%matplotlib inline
import matplotlib.pyplot as plt
import wbdata

df = wbdata.api.get_dataframe({"AG.LND.ARBL.HA.PC":"Arable land"}, country=["JP","US", "VN"], convert_date=True)
df.unstack(level=0).plot()
plt.legend(loc='best')
plt.show()

関連情報

・世界銀行のデータを取得・可視化する記事のまとめは以下のページを参照してください。
世界銀行のデータを取得できるwbdataパッケージのまとめ

・wbdataパッケージをインストールしたコンテナを作成するには、以下のページを参照してください。
DockerでJupyter Notebookと世界銀行の情報が取得できるwbdataパッケージがインストールされたコンテナのイメージを作成する

・コンテナではなく、仮想マシンを構築する場合は、以下を参照します。
VagrantでJupyter Lab、wbdata、BokehとMariaDBをインストールした仮想マシン(Ubuntu18.04)を構築する

・世界銀行のデータを取得することができるwbdataパッケージに関する他の記事はこちらを参照してください。