10月の前回更新から、今までに取り組んでたことの概要
前回更新から2ヶ月くらいが経とうとしてるわけですが、何もしてなかったわけではありません。
むしろ11月の中旬に研究中間発表があったこともあり色々取り組んでいました。
まず一つ目、
ModelApp(調査員用アプリ)で計測したデータをAzure(Microsoftのクラウドサービス)に送信しようとしてた。
具体的にはAzure SQL Database。
だがしかしFrameworkがObjective-C用しかなく、Swiftでの読み込み方が分からなく断念。
ここでちょっとMicrosoftにキレた。
(結局は自分の無知だったのだが。笑)
そして二つ目、
Microsoftにキレた私は、Google先生に助けを求めた。
そこで用いたのがFirebaseというNoSQL(Not Only SQL)。
これが凄くて、取得したGPSがリアルタイムでウェブ上で見れるという代物。json形式かな?
ただデータが多くなりすぎると、読み書きが重くなるのか、テーブルクリーンが出来なくなる。(テーブルなのかは不明)
なので、"./iOS/User名/YYYY-MM-DD/HH時/hh:mm:ss"みたいな感じで超細分化して対処をしていた。
....ところが色々な事情があり、やっぱりAzureでやろーよみたいな流れに。笑
Firebaseにかけた時間を返せ。Azureに費やした時間を返せ。涙
そして三つ目、
Azureに戻るわけです。
試行錯誤の末、AzureSQLへのGPS情報の送信が可能に。(あっさり)
じゃあ今度、その送信データをSakuraSprtMaster(管理者用データ可視化アプリ)で読み込もうとしたら、何故か50件しか読み込まない。何故。何故。F***。
ここで詰まっている場合ではない、何としてもとりあえず卒論レベルの最低ラインである可視化までたどり着かなくてはと思い、SQLのデータをAzureBLOBにぶち込んで、それを読み込もうという作戦に出た。(意味不明な二度手間)
「やっぱりGUIあったほうが分かりやすいよね〜〜〜〜( ̄▽ ̄)」ってことで、AzureML(Azure Machine Learning Studio)を使い、SQL→CSV→BLOBに挿入し、それを読み取ることに成功。
ただここでまた問題が。
BLOBからの読み込みとPolylineの描写を非同期処理として行うと、エラーを吐いて動作が止まる!!!!!!
さて、ここからが取り組んだことの四つ目。
Polylineに色々とトラブルが起こる問題。笑
まず最初に、非同期処理(読み込みと描写を非同期に行うことでより効率よく描写している?)だと、描写が読み込みのスピードについていけず?、6個目とかで止まってしまう事態に。
なんと検索したのかは忘れたが、同期処理にするといいよ〜的な記事を見つけたのでトライ。
すると、アプリが止まらなくなり、描写も出来るように!!!やったね!!!!
.....しかしここでまたトラブル。(定番)
以前実地調査を行なったデータ(CSV,9万件弱の行)をBLOBにぶち込み、可視化用に描写を行なったところ、クソ重い。うんクソ重い。笑
そしてメモリが容量不足を起こし、アプリ落ち。( ̄∀ ̄)あぁもう最悪。ホンマにF***。
そして最近、
「同期処理してると、メモリに保存しなきゃいけなくて、容量不足を起こしてアプリが落ちてるんだから、非同期処理して効率やればいいんじゃね?」という何とも本末転倒なことを実験してみることに。
すると何故か描写が出来る。何故。何故出来るようになった。(本当に謎)
まぁ終わり良ければ全て良し、ってことで今は描写・可視化が可能に!
ただそれでもやっぱり9万件のデータは重い。笑
全て表示するまでには20分くらいかかるのでは....
んでそれが今後の課題!
あとは分析に進むべ!って感じのここ最近でした。