ラベル python の投稿を表示しています。 すべての投稿を表示
ラベル python の投稿を表示しています。 すべての投稿を表示

2009年1月17日土曜日

X02NKのSports TrackerのGPSデータをメールから取得する はてなブックマークに追加

SoftbankのNokia製携帯のX02NKSports Trackerを使うと生GPSデータが取得できます。取得したデータはBlueToothやメールで転送できるのでGPSデータでいろいろ遊ぼうと思いました。
ただ、MacだとX02NKのファイルを取り出すのが結構めんどうなので、簡単なツールを作ってみました。
そこSport TrackerのGPSログをメールで転送し、メールサーバからimapで取得してローカルに保存するスクリプトを作ってみました。

GMailにimapで接続し、携帯のメールアドレスかつ新着メールを探します。
見つかったら、bodyを取り出して保存します。
最後に該当のメールを既読に変更して終了。

getgmail.py




# vim:fileencoding=utf-8
import imaplib
"""
python getmail.py
"""
server = "imap.gmail.com"
user = "xxxxxx"
passwd = "yyyyyy"
mailadr = "@softbank.ne.jp"


M = imaplib.IMAP4_SSL(server)
M.login(user,passwd)
M.select()
typ, data = M.search(None, 'FROM', mailadr,'UNSEEN')
#typ, data = M.search(None, '(FROM mailadr)','NEW')

for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
body = data[0][1].split("\r\n\r\n")
msg = body[1]
ofile = open("track"+str(num)+".xml", "w")
ofile.write(msg)
ofile.close()
print num
M.store(num, '+FLAGS', '\SEEN')
M.close()
M.logout()


今日の参考リンク

X02NK Sports Tracker GPSでジョギング等のデータを保存出来るアプリ!

imaplib -- IMAP4 プロトコルクライアント
Gmailのメール一覧を取得CommentsAdd Star

2009年1月12日月曜日

geotoolsをjythonで利用する はてなブックマークに追加

国土地理院が出している基盤地図情報を見てみようと思ったのですが、自分の環境では、JPGIS形式の変換ツールが使えない。。。仕方ないのでGML版をGDAL/OGLで変換しようと思ったのですが、どうもうまくいかない。。。しゃあないので他の調べてみたらgeotoolsというJAVAのGIS Tool kitを発見した。
結構おもしろそうなツールですが、Javaはダメなんでjython経由で使って見ました。


shape fileにアクセスするサンプル

こちらの世界の人口データから、国名と人口を取り出す。

shape.py



"""
Usage:
CLASSPATH="/home/nishioka/src/geotools-2.5.1/gt-epsg-hsql-2.5.1.jar" jython shape.py

"""
import java.net.URL as uri
import java.io.File
import org.geotools.data.shapefile.ShapefileDataStore as shp


src = uri("file:////home/nishioka/data/TM_WORLD_BORDERS_SIMPL-0.3.shp")
data = shp(src)

name = data.getTypeNames()
#s = data.getSchema()
s = data.getSchema(name[0])

src = data.getFeatureSource(name[0])

ft = src.getSchema()
coll = src.getFeatures()
print coll.size()

it = coll.features()

while (it.hasNext() ):
f = it.next()
print str(f.getAttribute(5))+" "+ str(f.getAttribute(7))





実行結果




CLASSPATH="/home/nishioka/src/geotools-2.5.1/gt-shapefile-2.5.1.jar" ¥
jython
shape.py
246
Antigua and Barbuda 83039
Algeria 32854159
Azerbaijan 8352021
Albania 3153731
Armenia 3017661
Angola 16095214
American Samoa 64051
Argentina 38747148
Australia 20310208
Bahrain 724788
Barbados 291933
Bermuda 64174
Bahamas 323295
Bangladesh 15328112
Belize 275546
Bosnia and Herzegovina 3915238
Bolivia 9182015
Burma 47967266
Benin 8490301


今日はここまで。
どうも、GMLは非公式サポートでうまく読み込むことができなさそう。。。
結局windowsの変換ツールを使うのがFAっぽいのですが、もう少し調査します。


今日の参考リンク
SHPファイルへGeoToolsを使用してJavaからアクセスする為の基本コード - Blue blue glass moon
Technical Ramblings > Blog Archive > Using Jython + GeoTools

http://thematicmapping.org/downloads/world_borders.php