2021-01-01から1ヶ月間の記事一覧

AWS Lambda + Python + Serverless FrameworkのLayerにpipインストール

AWS LambdaのLayerにPythonのライブラリをインストールする方法です。Serverless Frameworkを使用している場合です。 少し前にも似た記事を書いたのですが、そのときはLayerに乗せられずLambda本体にライブラリのイメージが含まれてしまっていました。 前回…

OpenCVからPillowに画像データを変換

PythonのOpenCVから画像を扱うPillowというライブラリに渡してみます。 OpenCVからPillowにはNumpy配列を介して渡せるのですが、3色の順番がOpenCVはBGRで、PillowがRGBという違いがあるようで、変換が必要でした。 import cv2 import PIL.Image def buildVi…

大量の浮動小数点数のデータをJavaからバイナリ出力してPythonで読み込む

Javaで処理して作成した大量の浮動小数点数のデータをバイナリでファイル出力して、それをPythonで読み込む方法を確認しました。 Javaからは DataOutputStream で書き出し、Pythonでは struct.unpack メソッドで読み込みます。 Javaの DataOutputStream はハ…

大量の浮動小数点数のデータをRubyからバイナリ出力してJavaで読み込む

Rubyで処理して作成した大量の浮動小数点数のデータをバイナリでファイル出力して、それをJavaで読み込む方法を確認しました。 Rubyからはpackメソッドで書き出し、Javaでは DataInputStream で読み込みます。 Javaの DataInputStream はハードウェアのバイ…

HTMLのvideoタグで動画を埋め込むサンプル

HTMLのvideo要素で動画を埋め込むサンプルです。 動画の再生停止ボタンやシークバーなどはvideo要素だけでも標準のデザインのものが使えますが、プラスアルファの機能を提供しているVideo.jsもここでは利用しています。 <html> <head> <title>sample movie</title> <link href="https://vjs.zencdn.net/7.10.2/video-js.css" rel="stylesheet" /> </link></head></html>

Linuxのパイプの流れる速度を制限するには

Linuxのパイプの流れる速度を制限してゆっくりデータを流すには、 pv コマンドが使えます。 例 $ COMMAND1 | pv -L 10 | COMMAND2 これで秒間10バイトしか流れなくなります。COMMAND1の標準出力がゆっくりしかできない状況や、COMMAND2の標準入力がゆっくり…

Chromeで動画のシークができない

HTMLにvideo要素で動画を埋め込んでみたところ、開始・停止の制御はできるものの、シークバーを動かしてもシークできずに悩んでました。 調べたところ、Chromeではサーバがrange requestsに対応していない場合に、シークできないようでした。 動画ファイルを…

AWS IAM Policyをawscliで作成・取得・更新

AWS

AWSのIAM Policyをawscliで取得、作成や更新をすることはできますが、以下の理由でとても手間です。 Policyにバージョンの概念があるため、バージョン番号を確認するワンクッションが必要 Policyの名前を指定する箇所とARNを指定する箇所があり分かりづらい…

満月・新月の日時をRubyで計算

前回の太陽の位置を地心直交座標系の計算の続きです。 太陽と月の地心直交座標系での位置を計算 黄道座標系に変換して太陽と月の黄経を計算 黄経差を計算 黄経差が0°や180°になるタイミングを計算 まずJPLからデータをダウンロード。 $ wget -r 'ftp://ssd.j…

Serverless Frameworkのデプロイ用S3バケットの設定

Serverless Frameworkでデプロイすると、デプロイ用のS3バケットが勝手に作成されます。勝手な作成を抑制する設定のメモです。 Serverless FrameworkはCloudFormationのテンプレートやLambdaに使うソースコードをS3バケットに保存してデプロイ処理します。バ…

Serverless FrameworkとAWS Lambda with Python or Node.jsでS3アクセス

AWS

前回、RubyでServerless Frameworkを触ってみました。今回は同じことをPythonとNode.jsでします。 作成するAWS Lambdaは、前回と同じですが、CloudWatchからスケジュール起動します。Lambdaでの処理内容はS3にアクセスしてログに残すのみです。 カレントディ…

太陽の地心直交座標系での位置計算

太陽の位置を計算するプログラムを書きました。 JPL(NASA Jet Propulsion Laboratory、NASAジェット推進研究所)が太陽や月、惑星の位置を計算するためのデータを公開しています。そのデータを読み込んで計算するRuby Gemがありますので、それを呼び出すだけ…

地球時(TT)と太陽系力学時(TDB)の関係式

地球時と太陽系力学時は、天文学で使われる時刻系で、普段みんなが使っている協定世界時とは少しだけ時刻がずれています。 協定世界時は生活に使えるように地球の回転と同期するよう、ときどきうるう秒が入りますが、地球時と太陽系力学時は時間の進み方を一…