10月15日。大きな台風が来るので、D3.jsをつかって波の情報を視覚化してみようと思いました。
波には高さと周期があり、高さは理解しやすいですが周期は数字だけではイメージしづらいので動く波を作ってみることにします。

http://yamakk.com/wave 全国6ヶ所でいま観測されている波の高さと、周期を比べることができます。薄い灰色で見えるのは過去4時間の軌跡。


wave

上の例だと静岡県石廊崎と京都府経ヶ岬の波の高さはほぼ同じ7.8-7.9mですが、周期が違うので波の形がかなり違います。今後波の高さだけじゃなく周期にも注目して行動しようと思いました。

Posted: October 15th, 2013 | Author: | Filed under: 技術 | No Comments »

Networkxをつかってグラフを描く

Wikipediaのカテゴリ間のネットワークを見てみたくて、Networkxというpythonのライブラリをつかってグラフを描きました。例えばWikipediaの「ヒップホップ」というページは

  • ヒップホップ
  • ヒップホップ用語
  • アメリカ合衆国の音楽
  • サブカルチャー
  • 風俗
  • アフリカ系アメリカ人の文化
  • というカテゴリに登録されています。これらのカテゴリがそれぞれ所属するカテゴリをさらに辿ってそれらの関係を視覚化すると下の図のようになります。(この図では3階層上のカテゴリまで)

    日本語をグラフに描画するのに苦労しました。とにかく描ければよいということで適当なパッチを作って対応しています。
    patch for networkx1.5 https://gist.github.com/1247256

    Screen shot 2011-10-01 at 2.00.25 AM

    Learning to Link with Wikipedia
    http://www.cs.waikato.ac.nz/~dnk2/publications/CIKM08-LearningToLinkWithWikipedia.pdf

    Posted: September 30th, 2011 | Author: | Filed under: 技術 | Tags: , , , | No Comments »

    Matplotlibで日本語フォントを使う

    gistを使ってみたかったので、Matplotlibで日本語フォントを使うサンプルを上げます。
    http://matplotlib.sourceforge.net

    #coding:utf-8
    """
    matplotlibで日本語フォントを使うサンプル
    """
    import matplotlib.pyplot
    import matplotlib.font_manager
    # for Mac
    font_path = '/Library/Fonts/Osaka.ttf'
    # for Linux
    #font_path = '/home/k01/.fonts/ipag00303/ipag.ttf'
    # font_pathが見つからない場合
    # RuntimeError: Could not open facefile
    # /home/k01/.fonts/ipag00303/ipag.ttf; Cannot_Open_Resource になる
    font_prop = matplotlib.font_manager.FontProperties(fname=font_path)
    matplotlib.pyplot.title(u'日本語のテストタイトル', fontproperties=font_prop)
    matplotlib.pyplot.plot(range(10))
    # matplotlib.pyplot.show()だと日本語は正しく表示されない savefigはOK
    matplotlib.pyplot.savefig('test.png')

    test

    Posted: September 28th, 2011 | Author: | Filed under: 技術 | Tags: , , , | No Comments »

    47都道府県の地名と座標データ

    県ごとのなんとなくな地域と、座標と名前がリストになったものが欲しかったのでまとめました。
    天気予報でよく使われる地名と、そこと思しき緯度経度が世界測地系の座標ではいってます。

    番号, 県名, 地域名, 地域名英表記, 緯度(latitude), 経度(longitude)

    1,北海道,稚内,Wakkanai,45.415664,141.673082
    2,北海道,旭川,Asahikawa,43.770636,142.364819
    3,北海道,留萌,Rumoi,43.940987,141.637012
    4,北海道,札幌,Sapporo,43.062096,141.354376
    5,北海道,岩見沢,Iwamizawa,43.196206,141.775933
    6,北海道,倶知安,Kutchan,42.901829,140.758698
    7,北海道,網走,Abashiri,44.020632,144.273398
    8,北海道,北見,Kitami,43.807923,143.894276
    9,北海道,紋別,Monbetsu,44.356584,143.354095
    10,北海道,根室,Nemuro,43.330076,145.582790
    11,北海道,釧路,Kushiro,42.984854,144.381356
    12,北海道,帯広,Obihiro,42.923899,143.196103
    13,北海道,室蘭,Muroran,42.315231,140.973799
    14,北海道,浦河,Urakawa,42.168516,142.768120
    15,北海道,函館,Hakodate,41.768793,140.728810
    16,北海道,江差,Esashi,41.869156,140.127460
    17,青森県,青森,Aomori,40.822072,140.747365
    18,青森県,むつ,Mutsu,41.292746,141.183476
    19,青森県,八戸,Hachinohe,40.512284,141.488399
    20,秋田県,秋田,Akita,39.720008,140.102564
    21,秋田県,横手,Yokote,39.311251,140.553159
    22,岩手県,盛岡,Morioka,39.702053,141.154484
    23,岩手県,宮古,Miyako,39.641420,141.957140
    24,岩手県,大船渡,Ofunato,39.081901,141.708530
    25,宮城県,仙台,Sendai,38.268215,140.869356
    26,宮城県,白石,Shiroishi,38.002478,140.619861
    27,山形県,山形,Yamagata,38.255439,140.339602
    28,山形県,米沢,Yonezawa,37.922240,140.116781
    29,山形県,酒田,Sakata,38.914433,139.836515
    30,山形県,新庄,Shinjo,38.765015,140.301608
    31,福島県,福島,Fukushima,37.760723,140.473356
    32,福島県,小名浜,Onahama,36.949127,140.905353
    33,福島県,若松,Wakamatsu,37.891124,140.902856
    54,茨城県,水戸,Mito,36.365856,140.471222
    55,茨城県,土浦,Tsuchiura,36.071881,140.196023
    56,栃木県,宇都宮,Utsunomiya,36.555112,139.882807
    57,栃木県,大田原,Otawara,36.871117,140.015499
    58,群馬県,前橋,Maebashi,36.389482,139.063428
    59,群馬県,みなかみ,Minakami,36.678700,138.999064
    60,埼玉県,さいたま,Saitama,35.861729,139.645482
    61,埼玉県,熊谷,Kumagaya,36.147310,139.388645
    62,埼玉県,秩父,Chichibu,35.991752,139.085428
    63,東京都,東京,Tokyo,35.681382,139.766084
    64,東京都,大島,Oshima,34.750040,139.355579
    65,東京都,八丈島,Hachijōjima,33.102183,139.800510
    66,東京都,父島,Chichijima,27.076307,142.213312
    67,千葉県,千葉,Chiba,35.607267,140.106291
    68,千葉県,銚子,Choshi,35.734681,140.826641
    69,千葉県,館山,Tateyama,34.996506,139.869965
    70,神奈川県,横浜,Yokohama,35.443708,139.638026
    71,神奈川県,小田原,Odawara,35.264564,139.152154
    75,山梨県,甲府,Kofu,35.655625,138.567574
    76,山梨県,河口湖,Kawaguchiko,35.498239,138.768624
    44,富山県,富山,Toyama,36.695952,137.213677
    45,富山県,伏木,Fushiki,36.791995,137.057949
    46,石川県,金沢,Kanazawa,36.561325,136.656205
    47,石川県,輪島,Wajima,37.390590,136.899196
    48,福井県,福井,Fukui,36.064067,136.219494
    49,福井県,敦賀,Tsuruga,35.645244,136.055441
    50,新潟県,新潟,Niigata,37.916192,139.036413
    51,新潟県,長岡,Nagaoka,37.436513,138.838921
    52,新潟県,高田,Takada,37.115147,138.242209
    53,新潟県,相川,Aikawa,38.034547,138.245286
    72,長野県,長野,Nagano,36.648550,138.194243
    73,長野県,松本,Matsumoto,36.238038,137.972034
    74,長野県,飯田,Iida,35.514700,137.821822
    34,静岡県,静岡,Shizuoka,34.975562,138.382760
    35,静岡県,網代,Ajiro,35.043506,139.081551
    36,静岡県,三島,Mishima,35.118403,138.918513
    37,静岡県,浜松,Hamamatsu,34.710834,137.726126
    38,愛知県,名古屋,Nagoya,35.181446,136.906398
    39,愛知県,豊橋,Toyohashi,34.769200,137.391466
    40,岐阜県,岐阜,Gifu,35.423298,136.760654
    41,岐阜県,高山,Takayama,36.146124,137.252173
    42,三重県,津,Tsu,34.718596,136.505698
    43,三重県,尾鷲,Owase,34.070799,136.190995
    77,滋賀県,大津,Otsu,35.017893,135.854607
    78,滋賀県,彦根,Hikone,35.274461,136.259623
    79,京都府,京都,Kyoto,35.011636,135.768029
    80,京都府,舞鶴,Maizuru,35.474797,135.385992
    81,大阪府,大阪,Osaka,34.693738,135.502165
    82,兵庫県,神戸,Kobe,34.690083,135.195511
    83,兵庫県,豊岡,Toyooka,35.544473,134.820184
    84,奈良県,奈良,Nara,34.685087,135.805000
    85,奈良県,風屋,Kazeya,34.043799,135.781779
    86,和歌山県,和歌山,Wakayama,34.230511,135.170808
    87,和歌山県,潮岬,Shiomisaki,33.447709,135.761400
    88,岡山県,岡山,Okayama,34.655146,133.919502
    89,岡山県,津山,Tsuyama,35.069116,134.004543
    90,広島県,広島,Hiroshima,34.385203,132.455293
    91,広島県,庄原,Shobara,34.857732,133.017278
    92,島根県,松江,Matsue,35.468060,133.048375
    93,島根県,浜田,Hamada,34.899303,132.079783
    94,島根県,西郷,Saigo,35.434481,132.808143
    95,鳥取県,鳥取,Tottori,35.501133,134.235091
    96,鳥取県,米子,Yonago,35.428072,133.330945
    97,山口県,下関,Shimonoseki,33.957831,130.941459
    98,山口県,山口,Yamaguchi,34.178496,131.473727
    99,山口県,柳井,Yanai,33.963833,132.101597
    100,山口県,萩,Hagi,34.408116,131.399085
    101,徳島県,徳島,Tokushima,34.070270,134.554844
    102,徳島県,日和佐,Hiwasa,33.728843,134.530636
    103,香川県,高松,Takamatsu,34.342788,134.046574
    104,愛媛県,松山,Matsuyama,33.839157,132.765575
    105,愛媛県,新居浜,Niihama,33.960290,133.283351
    106,愛媛県,宇和島,Uwajima,33.223340,132.560558
    107,高知県,高知,Kochi,33.558804,133.531168
    108,高知県,室戸,Muroto,33.290009,134.152051
    109,高知県,清水,Shimizu,32.783389,132.957889
    110,福岡県,福岡,Fukuoka,33.590355,130.401716
    111,福岡県,八幡,Yahata,33.868904,130.795365
    112,福岡県,飯塚,Iizuka,33.645908,130.691511
    113,福岡県,久留米,Kurume,33.319287,130.508374
    114,大分県,大分,Oita,33.239558,131.609272
    115,大分県,中津,Nakatsu,33.598221,131.188325
    116,大分県,日田,Hita,33.321333,130.940966
    117,大分県,佐伯,Saiki,32.960217,131.899533
    118,長崎県,長崎,Nagasaki,32.750286,129.877667
    119,長崎県,佐世保,Sasebo,33.179915,129.715110
    120,長崎県,厳原,Izuhara,32.744839,129.873756
    121,長崎県,福江,Fukue,32.698971,128.846404
    122,佐賀県,佐賀,Saga,33.263482,130.300858
    123,佐賀県,伊万里,Imari,33.264586,129.880269
    124,熊本県,熊本,Kumamoto,32.803100,130.707891
    125,熊本県,阿蘇,Aso,32.943445,131.043434
    126,熊本県,牛深,Ushibuka,32.194456,130.025727
    127,熊本県,人吉,Hitoyoshi,32.210041,130.762554
    128,宮崎県,宮崎,Miyazaki,31.907674,131.420241
    129,宮崎県,延岡,Nobeoka,32.582317,131.664848
    130,宮崎県,都城,Miyakonojo,31.719590,131.061621
    131,宮崎県,高千穂,Takachiho,32.711657,131.308028
    132,鹿児島県,鹿児島,Kagoshima,31.596554,130.557116
    133,鹿児島県,鹿屋,Kanoya,31.378292,130.852077
    134,鹿児島県,種子島,Tanegashima,30.593001,130.991363
    135,鹿児島県,名瀬,Naze,28.370560,129.501021
    136,沖縄県,那覇,Naha,26.228530,127.689110
    137,沖縄県,名護,Nago,26.591547,127.977316
    138,沖縄県,久米島,Kumejima,26.348886,126.747004
    139,沖縄県,南大東島,Minamidaitojima,25.846401,131.244907
    140,沖縄県,宮古島,Miyakojima,24.805490,125.281149
    141,沖縄県,石垣島,Ishigakijima,24.408388,124.197692
    142,沖縄県,与那国島,Yonagunijima,24.456056,122.991428
    
    Posted: August 29th, 2011 | Author: | Filed under: 技術 | No Comments »

    ping from EC2 Tokyo, Singapore, California

    Amazon EC2の各拠点からpingでいくつか測ってみたところ.

    EC2 in Tokyo
    home (Tokyo) 3.0ms
    facebook.com 123.0ms
    twitter.com 116.0ms

    EC2 in Singapore
    home (Tokyo) 79.0ms
    facebook.com 250.0ms
    twitter.com 195.0ms

    EC2 in California
    home (Tokyo) 126.0ms
    facebook.com 76.0ms
    twitter.com 12.0ms

    国内向けサービスならやっぱりTokyo良さそうですが,
    外部サービスも考えるとシンガポールが中途半端な選択肢になってしまいそうです.

    Posted: March 3rd, 2011 | Author: | Filed under: 技術 | No Comments »

    Macを閉じてもスリープさせないInsomnia

    Insomnia 最近助かっているアプリです.

    insomnia

    データ解析中に画面を閉じてしまって, 何度か痛い目にあったので探しました. (サーバでやれという話でもある) DVDやiTunesを閉じたまま再生したり, MacBookをつかった展示などにも良いです.

     
      

    Posted: February 28th, 2011 | Author: | Filed under: 技術 | Tags: , , | No Comments »

    NLTKのバグ?

    最近自然言語処理入門を買ったりしていろいろやっていて気づいたこと。

    pythonのnltkをimportした後、”ム”(\xe3\x83\xa0)をstrip()すると\xa0が取り除かれてしまう。通常は\xe3\x83\xa0のままのはず。

    Python 2.6.5 (r265:79063, Apr 12 2010, 01:06:47)
    [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.getdefaultencoding()
    'utf-8'
    >>> s='ム'
    >>> s
    '\xe3\x83\xa0'
    >>> s.strip()
    '\xe3\x83\xa0'
    >>>s.strip().decode('utf-8')
    u'\u30e0'
    >>> import nltk
    >>> nltk.__version__
    '2.0b9'
    >>> s
    '\xe3\x83\xa0'
    >>> s.strip()
    '\xe3\x83'
    >>> sys.getdefaultencoding()
    'utf-8'
    >>>s.strip().decode('utf-8')
    UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: unexpected end of data
    

    2011/2/7 追記
    Python2.7.1だと大丈夫だった

    Python 2.7.1 (r271:86832, Feb  7 2011, 12:54:42) 
    [GCC 4.2.1 (Apple Inc. build 5664)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.getdefaultencoding()
    'utf-8'
    >>> s='ム'
    >>> s
    '\xe3\x83\xa0'
    >>> s.strip()
    '\xe3\x83\xa0'
    >>>s.strip().decode('utf-8')
    u'\u30e0'
    >>> import nltk
    >>> nltk.__version__
    '2.0b9'
    >>> s
    '\xe3\x83\xa0'
    >>> s.strip()
    '\xe3\x83\xa0'
    
    Posted: February 7th, 2011 | Author: | Filed under: 技術 | Tags: , | No Comments »

    RMeCabをMacにいれた

    R0011581.JPG

    作業につまったので、ブログでも書こう。

    形態素解析のエンジンのMeCabをRから使えようにする。
    ちょうど買った本の著者がRMeCabの開発者の方だった。

    RMeCab_0.93は旧バージョンのRでは動かなかったので新しいR-2.12.1.pkgにアップデートした。

    R 2.12.1 for Mac

    http://essrc.hyogo-u.ac.jp/cran/bin/macosx/R-2.12.1.pkg

    RMeCab 0.93

    http://rmecab.jp/wiki/index.php?plugin=attach&refer=SoftArchive&openfile=RMeCab_0.93.tgz

    Rを起動後

    > setwd('Downloads')
    > install.packages("RMeCab_0.93.tgz")
    ファイル名から 'repos = NULL' を推測
    > library(RMeCab)
    > RMeCabC(("RMeCabをMacにインストールしたよ"))
    
    [[1]]
        名詞
    "RMeCab"
    
    [[2]]
    助詞
    "を"
    
    [[3]]
     名詞
    "Mac"
    
    [[4]]
    助詞
    "に"
    
    [[5]]
              名詞
    "インストール"
    
    [[6]]
    動詞
    "し"
    
    [[7]]
    助動詞
      "た"
    
    [[8]]
    助詞
    
    "よ" 
    

    参考にさせていただきました。
    [R][MeCab][自然言語処理]MeCabとRMeCabをインストールして、ちょっと遊んでみる

    Posted: January 18th, 2011 | Author: | Filed under: 技術 | Tags: , , | No Comments »

    東京-神戸-長崎 スカイマーク

    スカイマークエアラインズが、去年の12月から羽田-神戸-長崎便を出すようになったらしい。
    28日前予約の最安が長崎、熊本、鹿児島は5,800円、沖縄は7,800円になってる。

    実家に帰るときは今までSNA(スカイネットアジア)の割引チケット11,000円-15,000円を買っていたけど、これは28日前に予約を確定しなければいけなかった。僕の場合、ここ数年の帰省はほぼ釣り合宿なので1ヶ月前に状況を予想してチケット取っても、台風とか気候が全く読めなくて泣くことが数知れず。かといって普通料金は35,000円くらいするのでとても手が出なかった。

    スカイマークエアラインズは、羽田から神戸で乗り換えて長崎に降りる便になってる。明後日、1月7日の場合、普通運賃が12,800円で、時間と予約状況で変動するようだけど15,000円も出せば好きなときに帰れそう。神戸を経由するのでフライトが180分くらいになるけど(スカイネットは120分)、明日にでも実家に帰れるというのが、ほんとにありがたいです。なくならないで欲しい。

    こういうタイミングと予約状況によって運賃が変動していく航空券は、海外ではよくあるらしい。

    以前読んだ 「その数学が戦略を決める」 のなかで、こういう航空券の価格変動を予測するForecastの話があった。ワシントン大学の計算機科学教授が、どのタイミングでチケットを買うと安くなるかを予測すべく作ったWebサービスで、いま調べてみたら2年前にMicrosoftに買収されてBing Travelになってた。 マイクロソフト、Farecastを$115Mで買収

    その数学が戦略を決める(文庫版) p71

    Farecastは予測に115の因子を使い、それを毎日更新して全ての路線に予測を見直す。過去の価格変動だけをみるのではなく、航空券の需要や供給を支える各種の要因 –たとえば燃料価格や気候やフットボールの優勝チームなど– も見ている。スーパーボールの出場選手がかわるだけでも差が出てくる。そしてそこから価格上昇が予測されると上向き矢印、低下が予測されれば下向き矢印が表示される。

    いまのところ日本では価格変動しないチケットが多いけど、そのうち変わってくるのでしょう。
    日本版のFarecastっぽいものは自分用に作れそうな気がする。

    Posted: January 5th, 2011 | Author: | Filed under: outdoor, 技術, | Tags: , , , | No Comments »

    Running Hadoop in Standalone Mode

    CentOS5 MacBookPro VMWare

    SSH setup

    % ssh-keygen -t dsa
    % cat ~/.ssh/id_dsa.pub >> authorized_keys
    % chmod 600 ~/.ssh/authorized_keys
    

    JDK6 Install
    Download http://www.oracle.com/technetwork/java/javase/downloads/index.html

    % chmod +x jdk-6u23-linux-i586.bin
    % ./jdk-6u23-linux-i586.bin
    % sudo cp -r jdk1.6.0_23 /usr/local/jdk1.6.0_23
    % sudo ln -s /usr/local/jdk1.6.0_23 /usr/local/jdk
    % export PATH=$PATH:/usr/local/jdk/bin
    

    Hadoop Install

    % wget http://www.meisei-u.ac.jp/mirror/apache/dist//hadoop/core/hadoop-0.21.0/hadoop-0.21.0.tar.gz
    % tar -zxvf hadoop-0.21.0.tar.gz
    % sudo cp -r  hadoop-0.21.0 /usr/local/hadoop-0.21.0
    % sudo ln -s /usr/local/hadoop-0.21.0 /usr/local/hadoop
    % export PATH=$PATH:/usr/local/hadoop/bin
    

    Hadoop Setup
    /usr/local/hadoop/conf/hadoop-env.sh

    export JAVA_HOME=/usr/local/jdk
    

    /usr/local/hadoop/conf/core-site.xml
    /usr/local/hadoop/conf/hdfs-site.xml
    /usr/local/hadoop/conf/mapred-site.xml
    Standalone Mode

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
     <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
      </property>
    </configuration>
    

    Format HDFS

    % /usr/local/hadoop/bin/hadoop namenode -format
    

    Start and Kill Hadoop

    % /usr/local/hadoop/bin/start-all.sh
    % /usr/local/hadoop/bin/stop-all.sh
    

    Start MapReduce
    Copy from access_log.txt on local disk to HDFS

    % hadoop fs -copyFromLocal access_log.txt /yamakk/log_input.txt
    % hadoop fs -ls /yamakk
    

    MapReduce
    Sort URLs by number of access

    % hadoop jar /usr/local/hadoop/hadoop-mapred-examples-0.21.0.jar grep /yamakk/log_input.txt /yamakk/log_out "GET (\\S+)" 1
    

    check /yamakk/log_out/part-r-00000

    Posted: December 30th, 2010 | Author: | Filed under: 技術 | Tags: | No Comments »