パソコン・インターネット

2019年12月22日 (日)

WavDisp

2019/12/22

WavDisp

WavDisp

概要

Javascriptでのバイナリーデータの扱い方、グラフィックライブラリーflotr2の使い方のスタディとして、Wavファイルを読み込み、その波形を表示するプログラムを作った。(HTML+Javascript)
大きなwavファイルだとメモリ不足でエラーになるので、小さめなファイルで実行することを勧める。実用性よりもサンプルコードとして作成したものである。プログラムの簡略化のため、読み込むwavファイルとしては、stereoを前提にしている。サンプリングレートとサンプリングデータのビット長はwav仕様の範囲内で任意である。
Javascripコードにconsole.logを埋め込んであるので、ブラウザーでconsoleを表示すれば、読み込んだwavのチャンクなどの情報が表示できる。

設定値の意味は以下:
StartX: 波形を表示する開始点。単位:ms
PeriodX: 波形を表示する期間。単位:ms
ScaleY:振幅の倍率。微弱な振幅部分を拡大して表示するためには、1.0未満の数字を設定する。例:0.1

Application URL

ブラウザーで以下をクリックすると該当のアプリケーションが起動する。(右クリックでソースをダウンロードできる)

WavDisp.html

ScreenShot

以上

続きを読む "WavDisp"

| | コメント (0)

2019年12月14日 (土)

MathJaxサンプル

2019/12/14
MathJax sample

MathJaxサンプル

概要

ネットに存在するMathJaxのサンプルをひとつに纏めた。纏める過程で気がついたが、文字コードに敏感なところがあり、見えないコードなどが混入した場合、期待通りに表示されないことがあった。 こういうときは、ひたすら新規に手入力することになる。見えないコードをフィルタリングするスクリプトを使うこともありだと思うが、そこまではしていない。
実験的にMathJaxサンプルのHTMLをそのままBLOGとして貼りこんで見たが、意外と?ちゃんと表示された。(なぜか「sample#15:」の部分だけ正しく表示されなかった。)
なので、BLOGなどでMathJaxを使用する場合、リンクの形にしてBLOGに埋め込むのが確実だと思う。
HTMLヘッダーなどの設定をするだけで、簡単に数式を表示できるので、数式を表示したい人には、このMathJaxはお薦めだと思う。

MathJaxサンプルURL

以下のリンクをクリックすると表示される。ソースを入手したい場合は右クリックでダウンロードする。

MathJax_sample01

参照URL

MathJax関連のURLは多く存在するが、そのうち代表的なものとして以下を挙げる:

https://www.mathjax.org/
MathJaxの使い方
MathJax で利用可能なTEXコマンド(非公式)

以上

続きを読む "MathJaxサンプル"

| | コメント (0)

2019年8月31日 (土)

readTCX(TCX-to-CSV)

man_readTCX.md

2019/8/31

readTCX(TCX-to-CSV)

概要

サイコンなどのログ記録に使用される共通的なフォーマットであるTCXファイルをCSVファイルに変換するJavascriptプログラムを作成して、以下に置いた。

readTCX.html (クリックで実行されるので要注意)

以前、作成したPythonプログラムのJavascript版にあたる。特徴としてはWebブラウザーのJavascriptに内蔵されているDOMParser(XML parser)をTCXもxmlであることから、TCXのparserとして利用したことである。このため外部ライブラリーを読み込む必要がなくなり、ネットワークがオフラインの状態でもプログラムが使用できる。ブラウザーだけで動作するので動作環境がOSに依存しない。(ただし、マイクロソフトのIEでは動作しない。Promiseが実装されていないため)

起動

webブラウザーで実行できるので、ダウンロードしたファイル(html)をクリックすれば起動する。

操作

TCXファイルをファイル選択かファイルをプログラム画面にDropすることでファイルが読み込まれる。変換されたCSVファイルは実行画面上のdownloadをクリックすることで保存できる。また、読み込んだTCXファイルの情報と出力ファイル名(CSV)は画面上に表示される。

画面表示例(GarminのTCXの読み込み)

output:testGarmin.csv --- header --- Id: 2019-08-17T04:55:36.000Z Sport: Biking TotalTimeSeconds: 565.0 DistanceMeters: 1000.0 MaximumSpeed: 7.306000232696533 Calories: 39 AverageHeartRateBpm: 84 --- Creator --- Name: ForeAthlete 935 UnitId: 3962543603 ProductID: 2833 VersionMajor: 13 VersionMinor: 40 BuildMajor: 0 BuildMinor: 0 --- Author --- Name: Connect Api LangID: en PartNumber: 006-D2449-00 VersionMajor: 0 VersionMinor: 0

画面表示例(PolarのTCXの読み込み)

output:RunPolar.csv --- header --- Id: 2019-08-25T22:09:42.643Z Sport: Running TotalTimeSeconds: 713.0 DistanceMeters: 791.5 MaximumSpeed: 1.597112947040134 Calories: 66 AverageHeartRateBpm: 86 --- Creator --- Name: Polar Ignite UnitId: 0 ProductID: 216 VersionMajor: 1 VersionMinor: 1 BuildMajor: 0 BuildMinor: 0 --- Author --- Name: Polar Flow Mobile Viewer LangID: EN PartNumber: XXX-XXXXX-XX VersionMajor: 0 VersionMinor: 0

画面表示例(StravaのTCXの読み込み)
# Creator/Authorが存在しない

output:testStrava.csv --- header --- Id: 2019-08-18T05:44:33Z Sport: Biking TotalTimeSeconds: 869 DistanceMeters: 1000.0 MaximumSpeed: 30960.0 Calories: 0 AverageHeartRateBpm: 84 --- Creator --- --- Author ---

CSV出力フォーマット

フィールドの意味は以下のとおり:
Time UTCの時刻(z形式)
UTC UTCの時刻
JST 日本標準時の時刻
HR 心拍数
CAD (バイク)ケイデンス または (ラン)ケイデンス
ALT 高度(m)
DIST 走行距離(m)
LAT、LON 緯度経度(度)
SPD 速度(時速km)

#存在しないか欠落した場合、マイナスの値になる。

以上

続きを読む "readTCX(TCX-to-CSV)"

| | コメント (1)

MDをHTMLに埋め込む

blog_MDpreview.md

2019/8/31

MDをHTMLに埋め込む

概要

HTMLにおいて特別なスクリプトの領域を作り、そこにMarkDownテキストを置いた後、そのHTMLをブラウザーで表示すると、埋め込んだMarkDownテキストが自動的にHTMLに変換表示されるHTMLのテンプレートを作成した。

テンプレート

テンプレート(MDpreviewTEMPLATE.html)
以下の「** MD Here **」のところにMarkDownテキストを置く。

<!DOCTYPE html> <html> <head> <title>MD preview</title> <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> </head> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.7.0/marked.js"></script> <script type="text/plain" id="here"> ** MD Here ** </script> <script> var here = document.getElementById('here').textContent; var md = marked(here); console.log(md); // Debug document.body.innerHTML = md; </script> </body> </html>

以上

続きを読む "MDをHTMLに埋め込む"

| | コメント (0)

2018年10月 8日 (月)

ink-app作成メモ


ink-app作成メモ

JavascriptのUIライブラリであるReactのコーディングスタイルでプログラムするためのキャラクタUIライブラリであるinkを使用するアプリ作成方法について纏めた。

0.準備
(1)node/npmのインストール
wget https://nodejs.org/dist/v10.11.0/node-v10.11.0-linux-x64.tar.xz
tar -xf node-v10.11.0-linux-x64.tar.xz
cd ~/bin
cp -a node-v10.11.0-linux-x64 ~/bin/

以下の2行を.bashrcに追加する:
export PATH=$HOME/bin/node-v10.11.0-linux-x64/bin/:$PATH
export NODE_PATH=$HOME/bin/node-v10.11.0-linux-x64/lib/node_modules

いったん、端末から抜けて入り直す。(.bashrcを実行する)
npm update -g


1.install
#ink-app用のディレクトリを作成する
mkdir my-ink-app
cd my-ink-app
npm install -g yarn
yarn init
yarn add -D ink babel-cli babel-core babel-plugin-transform-react-jsx
# 以下のように必要なライブラリーを追加する(ink-flowerは例)
yarn add ink-flower

2,package.json編集
leafpad package.json

・注意:最後のエントリーの後ろに「,」があるとエラーになる。
・以下を追加(挿入)すると「yarn ex」でプログラム実行できるようになる。
======================================
"babel": {
"plugins": [
[
"transform-react-jsx",
{
"pragma": "h",
"useBuiltIns": true
}
]
]
},
"scripts": {
"ex": "./node_modules/.bin/babel-node src/index.js"
}
======================================

3.index.js作成
mkdir src
leafpad src/index.js

・mainであるindex.jsは、srcの下に置く。
・githubのUsageのソースをindex.jsとして
コピー&ペーストする。

4.実行
以下のコマンドを実行する:
yarn ex

5.reference
https://qiita.com/takeyuichi/items/4a862835c572a9710167
inkでターミナルappを作る
https://github.com/y-takey/ink-flower
https://github.com/y-takey/ink-marquee
https://github.com/MaxMEllon/ink-checkbox-list
https://github.com/vadimdemedes/ink-spinner
https://github.com/brigand/ink-progress-bar
https://github.com/vadimdemedes/ink-password-input
https://github.com/vadimdemedes/ink-redux

6.index.js
ink-progress-barのUsageのソースでは動作しなかったので
以下をコピー&ペーストして使用する。
<====================================

const {h, render, Component, Text} = require('ink');
const ProgressBar = require('ink-progress-bar');

const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

const TASKS = 30;

class ProgressApp extends Component {
constructor() {
super();

this.state = {
done: 0
};
}

render() {
const text = 'Running ';

return (



{text}

yellow
left={text.length}
percent={this.state.done / TASKS}
/>


);
}

componentDidMount() {
const promises = Array.from({length: TASKS}, () => {
return delay(Math.floor(Math.random() * 1500))
.then(() => {
this.setState(state => ({
done: state.done + 1
}));
});
});

Promise.all(promises)
.then(() => delay(50))
.then(() => process.exit(0)); // eslint-disable-line unicorn/no-process-exit
}
}

render();

>====================================

以上

| | コメント (0) | トラックバック (0)

react-app作成メモ


react-app作成メモ

JavascriptのUIライブラリであるReactを使用したアプリ作成方法について纏めた。

0.準備
(1)node/npmのインストール
wget https://nodejs.org/dist/v10.11.0/node-v10.11.0-linux-x64.tar.xz
tar -xf node-v10.11.0-linux-x64.tar.xz
cd ~/bin
cp -a node-v10.11.0-linux-x64 ~/bin/

以下の2行を.bashrcに追加する:
export PATH=$HOME/bin/node-v10.11.0-linux-x64/bin/:$PATH
export NODE_PATH=$HOME/bin/node-v10.11.0-linux-x64/lib/node_modules

いったん、端末から抜けて入り直す。(.bashrcを実行する)
npm update -g

(2)使用するポートの穴あけ
本件では、3000,8080を使用するので、ホストPC以外のPCからアクセスする場合、
使用するポートを開放する必要がある。

linuxでのファイヤウォールの設定は、gufwが簡単で便利である。
(インストール&起動例)
sudo apt-get install gufw
sudo gufw

なお、WSL(Windows Subsystem for Linux)でlinuxを実行している場合、
windowsのファイヤウォールの設定を変更して使用ポートを開放する。
変更方法は以下を参考のこと:
https://pc-karuma.net/windows-10-firewall-open-port/
Windows10 - ファイアウォール - 特定のポート番号の通信を許可

1.install
npm install -g create-react-app
npm install -g yarn
#以下のmy-react-appは、任意の名前
create-react-app my-react-app
cd my-react-app

2.実行
yarn start

#ブラウザーが自動的に開きmy-react-appが実行される。(デフォルトポート:3000)

3.App.js編集
別の端末を新たに開きエディタを起動する。
leafpad src/App.js

スケルトンが動作しているので
必要があれば、App.jsを編集する。
保存すると直ぐに変更が実行中のmy-react-appに反映される。

4.公開用アプリとしてビルドする
yarn build

5.公開用アプリとして実行する
cd biild

#httpサーバーのインストールと実行
npm install -g http-server
hs

localhost:8080でウェブを開く。


6.reference
https://qiita.com/chibicode/items/8533dd72f1ebaeb4b614
Facebook公式のcreate-react-appコマンドを使ってReact.jsアプリを爆速で作成する
https://qiita.com/nishina555/items/9ff744a897af8ed1679b
電卓アプリで学ぶReact/Redux入門(実装編)
https://www.webopixel.net/javascript/1417.html
React入門


以上

| | コメント (0) | トラックバック (0)

2018年7月14日 (土)

PocketBeagleでのC#(mono)インストールメモ

以下、PocketBeagleをホストPC(linux)にUSB接続して
sshでログインしたあとの説明。
#Internet-over-USBの設定は完了している前提

1.mono install
sudo apt-get update
sudo apt-get mono-complete
sudo apt-get install libgdiplus
sudo apt-get install gtk-sharp3
#以下、不要かもしれない
sudo apt-get install libgtk-3-dev

2.NuGet install
# Download the latest stable `nuget.exe` to `/usr/local/bin`
sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
# Create as alias for nuget
alias nuget="mono /usr/local/bin/nuget.exe"

#動作確認、以下を実行してpackage候補が表示されればOK
debian@beaglebone:~/mono_ws$ nuget list osc
Bespoke-OSC-Library 1.0.0
Bonsai.Osc.Design 2.3.0
Bonsai.Osc 2.3.0
Osc.Dejection 1.1.16289.2
IsraelHiking.OsmCTools 0.8.0
OpenStackClient 1.0.0
OSCforPCL 0.0.3
Rug.Osc 1.2.5
x32dotnet 1.0.0.5
debian@beaglebone:~/mono_ws$

3.以下のsampleプログラムをダウンロードして解凍する。
「PocketBeagleCS.zip」をダウンロード

4.コンパイル&実行の確認
mcs hello.cs
mono hello.exe

mcs helloWin.cs -pkg:dotnet
mono helloWin.exe

mcs helloGtk.cs -pkg:gtk-sharp-3.0
mono helloGtk.exe

mcs GoogleExample.cs /r:System.Web.dll
mono GoogleExample.exe

5.OSC(OpenSoundControl)プログラムのコンパイルと実行
(1)OSCライブラリーのインストール
以下を実行する:
nuget install Rug.OSC
...
...
Installing Rug.Osc 1.2.5.
Adding package 'Rug.Osc.1.2.5' to folder '/home/debian/mono_ws'
Added package 'Rug.Osc.1.2.5' to folder '/home/debian/mono_ws'
Successfully installed 'Rug.Osc 1.2.5' to /home/debian/mono_ws
Executing nuget actions took 4.69 sec

パス設定を省略しているので以下を実行して
必要なdllをexeと同じディレクトリに置く:
cp Rug.Osc.1.2.5/lib/Rug.Osc.dll .

(2)コンパイル&実行(その1)
mcs OSC_Receiver.cs /r:Rug.Osc.dll
mono OSC_Receiver.exe

# OSC_Receiver.csのソースを使用する(ホストの外からの)受信ポートに合わせて変更すること
# iPhoneアプリのTouchOSCを相手に想定していて、
# TouchOSCのfaderなどを動かすと受信したデータがコンソール上に表示される。

注意:
「mono OSC_Receiver.exe」を動かす際は、ホストからPocketBeagleにパケットを
流すたために、ホスト側で以下のプログラムを実行する。(ダウンロードしたzipに入っている)
node UDPbridge.js

(3)実行例

(4)コンパイル&実行(その2)
mcs OSC_Sender.cs /r:Rug.Osc.dll
mono OSC_Sender.exe

# OSC_Sender.csのソースを使用するIPとポートに合わせて変更すること
# iPhoneアプリのTouchOSCを相手に想定していて、上手く動作すれば
# fader1が自動的に上下する。

6.C#のREPL
(1)実行例
debian@beaglebone:~/mono_ws$ csharp
Mono C# Shell, type "help;" for help

Enter statements below.
csharp> DateTime.Now
7/14/2018 9:03:34 PM
csharp> var a=45*3
csharp> a
135
csharp>


7.Reference
https://docs.microsoft.com/ja-jp/nuget/install-nuget-client-tools#nugetexe-cli
https://bitbucket.org/rugcode/rug.osc


以上


| | コメント (0) | トラックバック (0)

2018年7月 8日 (日)

PocketBeagleインストール方法


コンパクトなボードサイズに惹かれてPocketBeagleを購入した。
このメモでインストール方法について記する。

1.仕様
ボードの仕様などは以下のURLを参照のこと
(1)http://akizukidenshi.com/catalog/g/gM-12866/
PocketBeagle
(2)https://beagleboard.org/getting-started

2.ダウンロード&書き込み
インストールに必要なものをダウンロートする
(1)Image
wihout GUI
http://debian.beagleboard.org/images/bone-debian-9.4-iot-armhf-2018-06-17-4gb.img.xz
wuth GUI
http://debian.beagleboard.org/images/bone-debian-9.4-lxqt-armhf-2018-06-17-4gb.img.xz
(2)Image Writting Tool
https://etcher.io/

イメージをmicroSDに書き込む
上でダウンロートした書き込みツール(etcher)で
以下のイメージを書き込む、
bone-debian-9.4-iot-armhf-2018-06-17-4gb.img.xz

3.Boot後のアクセス
上で書き込んだmicroSDをボードに装着してUSBケーブルで
ホストPCと接続すればbootする。

3.1.アクセス
以下の3つの方法でアクセス可能だが
SSHによるものが良い。(上手くいかないときはUSB_serial)
(1)web
http://192.168.7.2/bone101/Support/bone101/
(2)USB_serial
beaglebone login: debian
Password:temppwd
(3)SSH@192.168,7,2
beaglebone login: debian
Password:temppwd

3.2.loginの画面

Last login: Sun Jun 17 13:24:07 UTC 2018 on ttyGS0

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
debian@beaglebone:~$

debian@beaglebone:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 220312 0 220312 0% /dev
tmpfs 49476 5120 44356 11% /run
/dev/mmcblk0p1 3357264 1612276 1554732 51% /
tmpfs 247368 0 247368 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 247368 0 247368 0% /sys/fs/cgroup
tmpfs 49472 0 49472 0% /run/user/1000
debian@beaglebone:~$

--------------------------------

4.ファイルシステムの拡張
4.1.拡張
このままだとファイルシステムがデフォルトの小さいままなので
microSDの容量いっぱいに拡張する。
以下を実行する:

sudo /opt/scripts/tools/grow_partition.sh
sync
sudo reboot

参照URL
https://elinux.org/Beagleboard:Expanding_File_System_Partition_On_A_microSD

4.2.拡張後の確認
dfの実行で確認できる;

Last login: Tue Jul 3 16:32:36 2018 from 192.168.7.1
debian@beaglebone:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 220312 0 220312 0% /dev
tmpfs 49476 4496 44980 10% /run
/dev/mmcblk0p1 30381468 2285344 26810464 8% /
tmpfs 247368 0 247368 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 247368 0 247368 0% /sys/fs/cgroup
tmpfs 49472 0 49472 0% /run/user/1000
debian@beaglebone:~$


5.外部インターネットへのアクセスを可能にする設定
このままだと外部インターネットにアクセスできない。
(=「sudo apt-get update」が動作しない)

以下のように設定する。

5.1.ホストPCの設定
Windows10の場合:
(1)「コントロール パネル\ネットワークとインターネット\ネットワーク接続」を選択して
接続のアイコンを複数表示させる。
(2)WiFiと記載があるアイコンをクリックする
(3)[プロパティ]を押す
(4)[共有]タブを押す
(5)「ネットワークのほかのユーザーに、このコンピュータの
インターネット接続をとおしての接続を許可する」にチェックマークを付ける
(6)その下にある「ホームネットワーク接続」のところにPocketBeagleの接続名を
設定する。
#複数の接続がある場合、接続アイコンの接続の方法に
#「Remote NDIS Compatible Device」とあるのでそれを手ががりに見つける
以上でWiFiの接続の設定は完了。
--
(7)PocketBeagleの接続アイコンをクリックする
#「Remote NDIS Compatible Device」と記述されている
(8)「IPアドレスを自動的に取得する」にチェックマークを付ける
(9)「DNSサーバーのアドレスを自動的に取得する」にチェックマークを付ける
以上でPocketBeagleの接続の設定は完了。


Linuxの場合:
(1)以下のファイルを作成する。
ファイル名:IoU_Host.sh
--------------------------
sudo su
iptables --table nat --append POSTROUTING --out-interface wlp2s0 -j MASQUERADE
iptables --append FORWARD --in-interface enx985dadd9940b -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
--------------------------

ただし、「wlp2s0」「enx985dadd9940b」は環境依存で、
自分のホストでの「ホストのIPアドレスを持った接続名」と「IPアドレス192.168.7.2の接続名」に置き換える。
ifconfigで接続名を表示させて確認する。

(2)上で作成したスクリプトを実行する。
sudo bash IoU_Host.sh


5.2. PocketBeagle側の設定
(1)以下のスクリプトを作成する。(nanoがデフォルトで動作する)

ファイル名:IoU.sh
--------------------------
#!/bin/bash
count=`grep -c 8.8.8.8 /etc/resolv.conf`
if [ ${count} = 0 ]; then
echo "Adding default gateway"
echo nameserver 8.8.8.8 >> /etc/resolv.conf
tail /etc/resolv.conf
route add default gw 192.168.7.1
fi
netstat -rn
systemctl start ntp
--------------------------

(2)上で作成したスクリプトを実行する。
sudo bash IoU.sh

この時点では、ntpがインストールされていないので
エラーになるが気にしないで良い。

ここまでの設定で外部インターネットのアクセスが可能となったので
以下を実行する。

sudo apt-get update
sudo apt-get instal ntp

ここまで実行すると、しばらくすると
時刻が同期して、UTCで正確な時刻が設定される。

日本標準時にする場合は以下を実行する。

sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

dateを実行して時刻を確認する。

debian@beaglebone:~$ date
Sun Jul 8 18:03:57 JST 2018

6.Xアプリの実行
ホスト側(win10)でX-serverが動作していれば
pocjetBeagelのXアプリが動作する。

実行例:
sudo apt-get install gimp
sudo apt-get install leafpad
export DISPLAY=192.168.0.13:0.0

#「192.168.0.13」は環境依存で自分のホストPCのIPアドレスを入れる。

gimp
leafpad test.txt

以上

参考URL
・http://ofitselfso.com/BeagleNotes/HowToConnectBeagleboneBlackToTheInternetViaUSB.php
 How to Connect a Beaglebone Black to the Internet via USB
・http://akirahitosi.blog.fc2.com/blog-entry-14.html
 PocketBeagleのUSB Over Etherを使ってのインターネット接続とLXDEのインストール、デスクトップ表示
・https://www.teachmemicro.com/pocketbeagle-wifi/
 Adding WiFi to PocketBeagle
・https://sourceforge.net/projects/vcxsrv/
 VcXsrv Windows X Server
・https://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual#31_Whats_In_the_Package
 System Reference Manual

| | コメント (0) | トラックバック (0)

2018年6月 1日 (金)

rHRinTCX.py (replace HR in TCX)


TCXのHRやCADをリファレンスのTCXのものに置き換えるプログラム
#扱うTCXファイルは同時刻にログを採ったものを前提にしている

「rHRinTCX.py」をダウンロード

コマンド形式:
python rHRinTCX.py 置き換えたいTCXファイルの名前(.tcx無し) リファレンスのTCXファイルの名前(.tcx無し) オプション

オプション:
 オプション無し HR(心拍数)を置き換える
 -C CAD(ケイデンス)を置き換える
 -HC HR(ケイデンス)とCAD(ケイデンス)の両方を置き換える

出力ファイル:
(1)置き換えたTCXファイルは、「置き換えたいTCXファイル名」+'-REF_'+「リファレンスのTCXファイル名」になる
(2)output.tcxも同じ内容のTCXファイルになる。長いファイル名を嫌う人は、こっちのファイルを使用できる。
(3)「置き換えたいTCXファイル名」+'-REF_'+「リファレンスのTCXファイル名」のcsvも出力するので
表計算でなにかしらの処理をしたい人は、これが利用できる。
#以下の3つのsvgファイルができる。これはブラウザーで読み込みグラフ表示できる。
(4)「置き換えたいTCXファイルの名前」+'_gr0.svg'
リファレンスのデータのグラフ表示のsvgファイル
(5)「置き換えたいTCXファイルの名前」+'_gr1.svg'
ソースのデータのグラフ表示のsvgファイル
(6)「置き換えたいTCXファイルの名前」+'_gr2.svg'
出力(=置き換えたもの)のデータのグラフ表示のsvgファイル

X-serverが動作しているのであれば、上の3つのsvgファイルの内容が自動的に表示される。


具体的な使い方:

1.HR/CADもないTCXファイル(=GPS軌跡のみ)にHR/CADを追加する
pythn rHRinTCX 「HR/CADもないTCXファイル」 「HR/CADがあるTCXファイル」 -HC

(例)
python rHRinTCX.py runtastic-ssss Bryton310-rrrr -HR

出力ファイルとして以下ができる:
runtastic-ssss-REF_Bryton310-rrrr.tcx


2.リファレンスのHRに置き換える
pythn rHRinTCX 「HRを置き換えたいTCXファイル」 「HRがあるリファレンスのTCXファイル」

(例)
python rHRinTCX.py Garmin-ssss Polar-rrrr

出力ファイルとして以下ができる:
Garmin-ssss-REF_Polar-rrrr.tcx


3.RunCadenceをインポートする
pythn rHRinTCX 「アクティビティがRunのTCXファイル(=RunCadenceを含む)」 「最初のファイル名と同じファイル名」 -C

(例)
python rHRinTCX.py Garmin-ssss Garmin-ssss -C

出力ファイルとして以下ができる:
Garmin-ssss-REF_Garmin-ssss.tcx

このファイルのなかにBikeのCadenceが含まれるので
たとえばStravaにインポートしてアクティビティをRunに切り替えると
RunCadenceとしてインポートされる。

解説:
ログ管理ソフトのなかには、TCX経由ではRunCadenceがインポートができないものがあるので、
いったんBikeのCadenceとしてCadenceをTCXファイルに入れて、
そのTCXファイルをインポートして、アクティビティをRunに変更してインポートする。
#リファレンスのTCXファイルのRunCadenceは、BikeのCadenceとして読み込まれる。

以上


| | コメント (0) | トラックバック (0)

FITdump2(FIT-to-CSV)


FITdump.pyをFTIdump2.pyにして、以下の2点の機能追加を行った。
(1)python2でも動作するようにした
(2)GarminのRPD(Running Pod)のデータを含むFITの読み込み

サイコンなどのログ記録に使用されるフォーマットであるFITファイルをCSVファイルに変換するPythonプログラムを作成して、以下に置いた。

「FITdump2.py」をダウンロード

WSLやMS-DOS窓のコマンドラインとして動作して入力として与えたFITファイルと同じ名前のCSVファイルを作成する。

実行例:
python FITdump2.py fit_file(.fitは付けない)

出力ファイル:
fit_file.csv

フィールドの意味は以下のとおり:
SEC 経過時間(秒)
Time UTCの時刻(z形式)
UTC UTCの時刻
JST 日本標準時の時刻
HR 心拍数
CAD ケイデンス
ALT 高度(m)
DIST 走行距離(m)
LAT、LON 緯度経度(度)
SPD 速度(時速km)
TEMPE 温度(℃)
en_ALT 高度(m) ALTの高精度値(32bitt)
en_SPD 速度(時速km) SPDの高精度値(32bit)
#存在しないか欠落した場合、-1や-2の値になる。

RPDのデータを含む場合、以下のデータもCSVとして出力する:
#詳細な説明は省略(というか理解が進んでいないので説明できない。。。)
eE,fractional_cadence,rE,
stance_time,stance_time_balance,stance_time_percent,
step_length,vertical_oscillation,vertical_ratio

以下をグラフ用ファイルとして出力する。
(.svg形式なのでブラウザーで表示可能)
fit_file_gr0.svg
fit_file_gr1.svg
fit_file_gr2.svg


以上

| | コメント (0) | トラックバック (0)

より以前の記事一覧