No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 295 | 296 | 297 |...| 1387 | 1388 | 1389 || Next»

歯医者へGo!

昨日の夜に歯磨きしてたら歯の詰め物が取れたので朝イチで歯医者へ.今回はネット経由でいつでも予約できるところにしてみた.朝イチで電話して「今日は予約いっぱいです」とか言われてもあれなので.

んで,右上親知らずの外側面なので抜くか詰めるか微妙なところだそうで…… とりあえず詰めとくことにした.若干外に傾いて生えてたりもするので抜いちゃったほうが後々楽そうではある.どうしようか悩ましいところ.諸々の予定も見つつあとで考える.

……

ホント頭使わないよね…… なぜ?

洗車して筋肉痛

朝にコーティングのメンテナンスまでのほぼフルセット洗車をしたら,夜に腕が筋肉痛.小さなシミ汚れが多くてそれらを全滅させるべく時間かけて作業したからな……

閑話休題.

高架のバイパスに合流する登り坂な側道で猫みたいに潜んでる白バイを見つけた.日曜の朝七時から潜むってのはシルバーウィークだからなのだろうか.

GPX をぶった切る

XML の文字列に変換した後に力技でぶった切ることにした.カシミール3Dの出したやつを gpxpy で処理した後のものならこれで切れるだろう.

cat > gpx_split5MB.py <<'EOS'
import gpxpy
import sys
import os
if len(sys.argv) < 2:
    print('python3 {0} gpx_file'.format(sys.argv[0]))
    sys.exit(0)
fname=sys.argv[1]
body,ext = os.path.splitext(fname)
def write(ts, head, last, i):
    with open(body + '.' + str(i) + ext, 'w') as of:
        of.write(head)
        for t in ts:
            of.write('\n')
            of.write(t)
        of.write('\n')
        of.write(last)
with open(fname) as f:
    g = gpxpy.parse(f)
    xml=g.to_xml(prettyprint=False)
    trks=xml.split('')
    head=trks[0]
    trks[-1],last=trks[-1].rsplit('\n',maxsplit=1)
    trks=trks[1:]
    i = 0
    k = 0
    s = 0
    ts = []
    while k < len(trks):
        if s + len(head) + len(last) >= 4800000:
             write(ts,head,last,i)
             s = 0
             i += 1
             ts = []
        s += len(trks[k])
        ts += [trks[k]]
        k += 1
    write(ts,head,last,i)
EOS

もうちょい美しいコードを書きたいところだけど動きゃいいや.

とりあえずこれで九州内の GPS 軌跡を google maps に乗せきれた.めでたし.

直らない

盆の頃から研究室と周辺の部屋のエアコンが「壊れた → 応急処置で復旧 → 壊れた → 応急処置で復旧 → 壊れた → 応急処置で復旧」を繰り返している.根本的に直して欲しいところなのだけど,部品自体が手に入らんとかで…… 冬なら別手段で暖を取ればよいから春までになんとかなれば大丈夫かな.

GPX を領域指定で切り出す

GPX ファイルの各点についておよそ九州を囲むポリゴン内に点があるかどうか判定して,九州内だけの GPS 記録を抜き出すスクリプトを書いてみた.めんどいのでポリゴン内の判定は shapely を使った.

cat > gpx_kyushu.py <<'EOS'
import gpxpy
import sys
import os
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
rs=[(129.2376598,33.3523184,0), (129.2820851,31.9550298,0), (130.3562645,30.897614,0), (131.6526512,30.968292,0), (132.2005334,32.8147117,0), (131.8853649,33.6580592,0), (130.5889782,34.1288502,0), (129.2376598,33.3523184,0)]
poly = Polygon(rs)
if len(sys.argv) < 2:
    print('python3 {0} gpx_file'.format(sys.argv[0]))
    sys.exit(0)
fname=sys.argv[1]
with open(fname) as f:
    g = gpxpy.parse(f)
    for t in g.tracks:
        for s in t.segments:
            s.points = [ p for p in s.points if poly.contains(Point(p.longitude,p.latitude)) ]
        t.segments = [ s for s in t.segments if len(s.points) > 0 ]
    g.tracks = [ t for t in g.tracks if len(t.segments) > 0 ]
    g.simplify()
    body,ext = os.path.splitext(fname)
    with open(body + '.kyushu' + ext, 'w') as of:
        of.write(g.to_xml(prettyprint=False))
EOS

だがしかし,これでも 5MB 越える年があるな…… でも10年分とかでもトータルでは 30MB になってないので,全体をこれで処理した後に 5MB 程度で分割するスクリプト通すのがよいかな.

«Prev || 1 | 2 | 3 |...| 295 | 296 | 297 |...| 1387 | 1388 | 1389 || Next»
Search
Feeds

Page Top