やべべのべ(雑用系リーマンの独り言)

ポイ活、投資、プログラミングなど。

規定のブラウザでURLを指定して開く(google map)

規定のブラウザでURLを指定して開く場合のサンプルプログラム
(google mapで緯度、経度を指定)

import webbrowser #pythonにデフォルトで入っている
webbrowser.open('https://www.google.com/maps?q='+str(blh[0])+','+str(blh[1]))
#↑でURL指定すると規定のブラウザで開く。上記はグーグルマップで緯度"blh[0]"、経度"blh[1]"を指定した場合。

以下も参考になります。
newtechnologylifestyle.net

pandas,numpyグラフ

pythonのpandasでプロットする場合とnumpy→matplotlibでプロットする場合

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df1 = pd.read_csv('****.csv') #csvを読み込み
df1.plot(x='**x',y='**y') #pandasの機能でプロットする。

xx = df1['**x'].values #.valuesでnumpy形式に変更して変数を保存
yy = df1['**y'].values
plt.plot(xx,yy) #matplotlibでプロットする

plt.show()

簡易的にグラフ化するならpandasで実施がよいが、数値計算することを考えると、
numpyのほうが便利。

csvを読み込んで座標変換してグラフ化(3次元)

ちょっとマニアックだが…ecef座標系をENU(EAST-NORTH-UP)座標に変換するpythonプログラムを使って
移動経路などを3次元プロットするプログラム。

例えばGPSから得たECEF座標から基準点を原点として飛行経路を描くときに使えます。
5行目に出てくるecef_enuというプログラムは別の記事を参照。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #3次元でプロットする機能
import ecef_enu as e2e #作成プログラムからimport ecef→enuに座標変換

df1 = pd.read_csv('***.csv') #csvをreadする
xyz1 = df1[['ecef_x[m]','ecef_y[m]','ecef_z[m]']].values

arr1 = np.empty((0,3)) #配列用のメモリを確保する。
orign = np.array([-3957314.622,3310254.134,3737540.044]) #基準位置

#ecef座標をenuに変換して、for文で変換結果を行追加していく
for i1 in range(df1.shape[0]):
    enu1 = e2e.ecef2enu(xyz1[i1],orign)
    enu_xyz1 = enu1.reshape(1,3)
    arr1 = np.append(arr1,enu_xyz1,axis=0)

enux1 = arr1[:,0]
enuy1 = arr1[:,1]
enuz1 = arr1[:,2]

#結果を3次元でプロット
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(enux1,enuy1,enuz1,color='b',alpha=1,label="****",s=5)
plt.legend()
plt.show()

ECEF座標->ENU座標変換

ECEF座標からENU座標に変換するプログラムです。
下記を参考にしてpythonでプログラムを作成しました。
www.enri.go.jp

pythonを使うと行列の扱いがとても楽です。
別プログラムで使用しやすいようecef2enuという関数にしています。

#WGS84 -> ENU

import math
import numpy as np

from  gps import ecef2blh #別記事 参照
from  gps import blh2ecef #別記事 参照

#X軸回りのsita度の回転変換:右ねじの方向
def rotx(sita):

    rotx_00 = 1
    rotx_01 = 0
    rotx_02 = 0

    rotx_10 = 0
    rotx_11 = math.cos(sita*math.pi/180.0)
    rotx_12 = math.sin(sita*math.pi/180.0)

    rotx_20 = 0
    rotx_21 = -math.sin(sita*math.pi/180.0)
    rotx_22 = math.cos(sita*math.pi/180.0)

    rotxa = np.array([[rotx_00,rotx_01,rotx_02],
                  [rotx_10,rotx_11,rotx_12],
                  [rotx_20,rotx_21,rotx_22]])
    return rotxa

def roty(sita):

    roty_00 = math.cos(sita*math.pi/180.0)
    roty_01 = 0
    roty_02 = -math.sin(sita*math.pi/180.0)

    roty_10 = 0
    roty_11 = 1
    roty_12 = 0

    roty_20 = math.sin(sita*math.pi/180.0)
    roty_21 = 0
    roty_22 = math.cos(sita*math.pi/180.0)

    rotya = np.array([[roty_00,roty_01,roty_02],
                  [roty_10,roty_11,roty_12],
                  [roty_20,roty_21,roty_22]])
    return rotya

def rotz(sita):
    
    rotz_00 = math.cos(sita*math.pi/180.0)
    rotz_01 = math.sin(sita*math.pi/180.0)
    rotz_02 = 0

    rotz_10 = -math.sin(sita*math.pi/180.0)
    rotz_11 = math.cos(sita*math.pi/180.0)
    rotz_12 = 0

    rotz_20 = 0
    rotz_21 = 0
    rotz_22 = 1

    rotza = np.array([[rotz_00,rotz_01,rotz_02],
                  [rotz_10,rotz_11,rotz_12],
                  [rotz_20,rotz_21,rotz_22]])
    return rotza

def ecef2enu(dest,origin):
    
    blh = ecef2blh(origin[0],origin[1],origin[2])

    rotzp1 = rotz(90.0)
    rotyp = roty(90.0-blh[0])
    rotzp2 = rotz(blh[1])

    mat_conv1 = np.dot(rotzp1,rotyp)
    mat_conv2 = np.dot(mat_conv1,rotzp2)

    mov = dest - origin
    ret = np.dot(mat_conv2,mov)
    
    return ret

緯度経度からECEF座標系変換

下記を参考にしてECEF座標系から緯度経度、その逆を変換するpythonプログラムを
作成したので、備忘録を兼ねて記載しておきます。
www.enri.go.jp

汎用的に使えるよう、それぞれ関数にしておきました。

#緯度経度からECEF座標系を算出する
import math
import numpy as np

#lat = 38.13579617 #[deg]
#lon = 140.91581617 #[deg]
#hig = 41.940 #[m]

pi = 3.1415926535898 #円周率
a = 6378137.0 #赤道面平均半径
ONE_F = 298.257223563 #扁平率の逆数
E2 = ((1.0/ONE_F)*(2-(1.0/ONE_F)))

#----------------------------------
def blh2ecef(p_deg,l_deg,h):

    p_rad = math.radians(p_deg)
    l_rad = math.radians(l_deg)

    NN = (a / math.sqrt(1.0 - (E2)*(math.sin(p_rad)**2)))

    x = (NN+h)*math.cos(p_rad)*math.cos(l_rad)
    y = (NN+h)*math.cos(p_rad)*math.sin(l_rad)
    z = (NN*(1-E2)+h)*math.sin(p_rad)

    return np.array([x,y,z])

#ecef = blh2ecef(lat,lon,hig)
#print(ecef)

#x2 = ecef[0]
#y2 = ecef[1]
#z2 = ecef[2]

#--------------------------------------
def ecef2blh(x,y,z):

    b = (a*(1.0 - 1.0/ONE_F))
    ED2 = (E2*a*a/(b*b))
    p = math.sqrt(x**2 + y**2)
    si = math.atan2(z*a,p*b)
    

    p_rad2 = math.atan2((z + ED2*b*(math.sin(si)**3)),(p-E2*a*(math.cos(si)**3)))
    l_rad2 = math.atan2(y,x)

    NN = (a / math.sqrt(1.0 - (E2)*(math.sin(p_rad2)**2)))
    h2 = (p/math.cos(p_rad2)) - NN

    p_deg2 = math.degrees(p_rad2)
    l_deg2 = math.degrees(l_rad2)

    return np.array([p_deg2,l_deg2,h2])

#blh = ecef2blh(x2,y2,z2)
#print(blh)

キャッシュレス決済の還元率後編と総まとめ。がんがれOrigami

キャッシュレス決済こんなに長くなると思わなかったわ汗

前編

tamhatam.hatenablog.com

 

中編

tamhatam.hatenablog.com

後編です。

 

最後のご紹介は、

5位:d払い+dカード1.5%

dポイントですね。個人的には楽天の次に貯めやすいですね。

払えるところもそこそこあるのに加えて、Amazonでd払いできるんですよ!

Amazonと連携度は一番と思いますね。

d払いは20%還元のキャンペーンをしょっちゅうやってますし。

(今年はPayPayより回数多い)

dカード自体もamazonで買い物すると1.5倍になりますからね。

Amazon使う人にはもってこいです。

店舗数はまあまあで、docomoユーザだけ得するとかはないです。

携帯料金と合算ができるよ程度です。

 

どうでしょうか。

1位~5位までまとめてみましたが、正直ベスト5位までは、好き好きではあると思います。

・シンプルに行きたい人はsuicaの一択!!電車もバスも買い物でもスマホでスイスイ!

・即時決済にこだわるなら、銀行直結のOrigami!

・キャンペーンと店舗数で選ぶならPayPay!

auユーザのみが得できるauPAY!

楽天経済圏に生きる人なら迷わず楽天Pay!

Amazon多用者はd払いでないともったいない!

って感じですか笑

個人的には、すでにもっているスイカ楽天の併用ですかね。

イカは絶対に使いますからね。モバイルスイカにしない理由がないし、すでに楽天経済圏で生きているので、ポイントは分散しないで一極集中したいですから。

 

でも、注目しているのが、Origamiです。正直、後払い決済は無駄なものを買ってしまいがちなので、前払いのほうが好きなんですよね。

 

ゆうちょPayのようにこれから銀行系Payが来る(今年中に多くの銀行をまとめたBankPayができるらしい)ので、そことどう連携し、どういうサービスを打ち出していくのか楽しみです。

 

BankPayはすごそうですね。1000以上の金融機関が参加するそうですので、

ATMいってお金おろすという動作がほぼなくなると思うんですよね。

いちいち店舗いかんでもいいのですよ。結構すごいことじゃない??

送金とかもめちゃ便利になるはず。。。ATMも通帳も印鑑もいらんのですよ。

こういう技術はとてもたのしみ。

 

 

 

キャッシュレス決済の還元率中編。楽天経済圏も捨てがたい。

 

こんにちは。

ようやく7銀行のATMでEdyをチャージし始めた俺です。

嫁はんからクレジットカードは使うなと言われているので、クレジットの恩智が受けられません。どうしよう。

 

さて、前回は、

tamhatam.hatenablog.comということで、スイカ、Origami、PayPayを見てきました。

首都圏では最強のスイカ

唯一の銀行決済のOrigami、

店舗数なら日本一かものPayPayでした。

 

後半行きたいと思います。

 

3位:auPAY+プレミアム会員+クレカ ポイント還元2.5%

auPAY→0.5%

プレミアム会員(499円/月)→1.0%

クレジットカード→1/0%

という内訳となっております。

 

500円かかるのが正直痛いです。

また、プレミアム会員がau利用者にのみしか恩智が受けられないので、

正直auの人が得するPayだと思います。

 

楽天payが使えるところ(プラットフォームが同じ?)ならば使用可能ということで、

使える店舗は多そうです。

 

そしてすごいのが三太郎の日

3,13,23日は何かしらの特典があるのですが、

かなりの高還元をやっていることが多いです。

10月は20%還元です!こういうのが毎月コンスタントに!!

(200円毎というのに注意)

usedoor.jpauユーザで使いこなせればかなりポイントをためやすいのではないでしょうか。

 

 

5位:楽天Pay+楽天クレカ ポイント還元1.5%

楽天Pay(または楽天Edy) → 0.5%

楽天クレジットカード → 1%

 

楽天です。結局自分の中では、楽天に落ち着いてしまうのですが、

楽天は1.5%と地味ではあるのですが、ポイントの貯めやすさが最強

と思いますね。

 

楽天の何がすごいって、楽天経済圏の名の通り、ポイントのたまるシーンが多すぎる。

楽天モバイル楽天でんき、トラベル、銀行、証券もあって、アプリもポイントスクリーンやくじなどとにかく貯める手段が多いのですが、

それらがすべて楽天ポイントに集約されるところです。

キャンペーンも月に10個以上常時ある状態で、

楽天市場にいたっては、なんだかんだ7~10倍とかポイントめちゃくちゃ貯まります、

そして、楽天経済圏のみならず、店舗でも使えちゃう。

自分なんか月々のクレジット代でたまったポイントで楽天モバイルはらって、

ほぼタダですし楽天でんきもこのおかげでタダの方もいます。

event.rakuten.co.jp

楽天に一極集中すれば、ポイントで生活できますよ♪

 

長くなってしまったので、

ここでまとめますね。

 

まとめ

・auPayはauユーザーなら超お得。逆にauではない人にはメリットはあまりなし。

・auPayを使用するなら3太郎の日はかならずチェック!!

楽天payを使用するならば楽天経済圏で暮らすべし!

 楽天モバイル楽天でんき、楽天銀行は3種の神器。神器をそなえてポイントup!!

 

やっぱり楽天は好きだなぁ~

 

楽天限定の海外ホテルあるの?マジか