物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Windows: WSL上のCentOSでGUIを使う

Ubuntuと必要な操作はほぼ同じ。 以下のサイトからCentOS7かCentOS8のZIPファイルをダウンロードする。 github.com CentOS6の環境テストをしたかったので、今回は古い方のCentOS7をダウンロードした。ZIPファイルを解凍して、CentOS7.exe を起動するとWSLに…

Windows リモートデスクトップ越しにCtrl+Alt+矢印キーが使えない

VScodeで矩形選択をするとき、Ctrl+Alt+Shift+矢印キーのショットカットキーを使う。このショートカットキーが、リモートデスクトップ (RDP)越しでは使えなかった。 キーボードチェックで確認すると、矩形選択の機能が使えないのではなく、キー入力がリモー…

Windows 10/11 で CERN ROOT6 32bit版を動かす (2022年)

Windowsネイティブ(x86)で動かす方法 (日本語) github.com Windows上のWSL (Ubuntu)上で動かす方法 (日本語) github.com かなり急いで作ったので、皆さんデバッグをよろしくお願いします。 記事公開時点で告知はまだですが、2022年度のROOT講習会もよろしく。…

Python: 正規分布同士の分離度と重なりの割合

分離度(Resolution, R)=2.5のヒストグラムがどういうのか想像できなかったので作ってみた。分離度はそれぞれの分布を正規分布としたとき、隣り合うピークの平均値の差 と、各ピークの標準偏差を使い、以下の式で定義している。 半値全幅 FWHM は なので、 と…

Python: 元素記号

periodic_table = ["H", "He",\ "Li", "Be", "B", "C", "N", "O", "F", "Ne",\ "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar",\ "K", "Ca", "Sc", "Ti", "V", "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se", "Br", "Kr",\ "Rb", "Sr",…

PythonでPanasonic製のウェブカメラの画像を定期的に保存する

参考にしたサイト qiita.com わざわざ書き直すまでもないが、一応メモとして残しておく。 import requests from requests.auth import HTTPDigestAuth import datetime from time import sleep username = "user" password = "password" url = 'http://192.1…

Windows 10のモダンスタンバイのイベント調査

手持ちのSurface Bookが、持ち運びのために閉じたにもかかわらず、1時間後もラップトップが温かいままだったのが不思議で少し調べてみた。 まずは、以下の記事を読んで欲しい。 docs.microsoft.com このモダンスタンバイ状態への遷移は、イベントビューアー…

Office 365 カレンダーに予定を追加するURLリンクを作る

どうも、公式ドキュメントはないようだ。 基本URL Microsoft Office 365 カレンダーの場合は https://outlook.office.com/calendar/action/compose? Outlook カレンダーの場合は https://outlook.live.com/calendar/action/compose? ウェブエンジニアにはお…

Python: リストを組み合わせて合計がXになる整数の組み合わせの計算

ある特定の需要から、必要な消耗品リストの金額を組み合わせて、合計額がX円になる消耗品の組み合わせ(予算X円の残額を0円にする組み合わせ)を調べたくなった。 qiita.com 上記の再帰をうまく使ったコードほぼそのままだが、予約語の置き換えとPython3への対…

Python+matplotlibの二次元ヒストグラムhist2dでエントリー数が0のビンの色を白くする方法

カラーバーを線形スケールで描画する場合、countsが0のbinを白くする方法は3通りあります。 np.histogram2d でhistデータを作成し plt.pcolormesh で描画する方法 下限値を白にしたカラーマップを使って plt.hist2d で描画する方法 端だけに白にしたカラーマ…

Python+Pillowで画像のDPIを取得、書き換える

サンプルコード from PIL import Image filepath = "a.jpg" im = Image.open(filepath) # 画像を開く print(im.info["dpi"]) # DPIを取得する # (72, 72) _dpi = 144 im.save(filepath, dpi = (_dpi, _dpi)) # 新しいDPIに書き換えて出力する im.close() # …

Python+uproot+Awkward ArrayでCERN ROOTファイルを読み、書き出す

この記事の Awkward のバージョンは1.X.Xです 業界にも依るとは思うが、イベント単位になっているデータの標準形式がROOTファイルというところは多いだろう。ただ、数10GB級のROOTファイルを一斉に処理したいような需要ではなければ、あえてROOT(というかC++…

Python mzfit (zfit) で マルチガウシアンフィッティング (Windows非対応)

サイエンスの界隈でよく使われているzfitと、zfitを簡単に使うためのラッパーであるmzfitを使ってみる。 pypi.org pypi.org zfitが依存しているfittingのコアの部分である ipopt はWindowsに非対応なので、WindowsユーザーはWSLなどを使ってLinux環境で実行…

Google ChromeでSSH接続する方法と、SSHを通してブラウザでウェブサイト(80番ポート)を見る方法

SSHクライアントは、Google公式Secure Shellがおすすめらしい。 chrome.google.com SSHの接続先が「172.16.0.1」として、そのLAN内の「172.16.0.15」をブラウザで見たい場合、SSHのオプションに「-L 8015:172.16.0.10:80」と入れて接続すると、ローカルの801…

Python+OpenCVで画像の丸っぽさと伸びている方向の角度を求める

OpenCVのmomentsを使って丸っぽさと、伸びている方向の角度を求めるコードを書いてみた。 関数moments_round_angleのXとYは以下の論文の定義通りである。これは、二次のモーメントの対称性を表す指標である。(ちなみに一次のモーメントからは重心などが求ま…

ChromeでPOSTで送ったリクエストデータを確認する方法

POSTのリクエスト内容を確認したいことがあったので方法を残しておく F12でDevToolsを表示させる Networkの項目にいく POSTのリクエストを送る (送信ボタンなど) Documentsを選び、適切なphpファイルを選択する Headerの項目にいく 下の方のForm Dataから vi…

OneDrive +100 の契約終了に関するお知らせ のメールについて

Microsoftから microsoft-noreply@microsoft.com のメールアドレスで「OneDrive +100 の契約終了に関するお知らせ」というメールが届いた。ヘッダーを確認すると SPF: PASS(IP: 209.85.220.41)。詳細 DKIM: 'PASS'(ドメイン: microsoft.com)詳細 DMARC: …

Python scipyで離散データの内挿 interpolate 積分 integrateを使ってみる

線形補間 # サンプルデータを取得 import urllib.request with urllib.request.urlopen("https://gitlab.com/gifuescan/atima_rangeenergy/-/raw/1e7c7d1432c302d0705a5ea9fe40d696ec468e54/splines_emul_1.41/BeamZ1_TargetZ6.txt") as web_file: data = we…

C# Windows フォームアプリケーションで別スレッドからUIを操作する方法

この記事は、Windows フォームアプリケーション (.NET Framework)の話です。 Windows WPFアプリ (.NET Framework) の場合 HeavyTask_Error だと System.InvalidOperationException: '有効ではないスレッド間の操作: コントロールが作成されたスレッド以外の…

Python: 非対称な誤差の計算をモンテカルロシミュレーション法で計算する

Asymmetric uncertainties in measurements: SOAD a Python package based on Monte Carlo Simulations https://aip.scitation.org/doi/abs/10.1063/1.5135421 という論文があったので使ってみた。数学的に正しいかどうかは確認していない Githubにソースコ…

C# Windows WPFアプリで別スレッドからUIを操作する方法

この記事は、Windows WPFアプリ (.NET Framework)の話です。 Windows フォームアプリケーション (.NET Framework) の場合 HeavyTask_Error だと System.InvalidOperationException: 'このオブジェクトは別のスレッドに所有されているため、呼び出しスレッド…

Geant4のGeometryの最もシンプルな記述法

一辺2メートルの立方体の空気(不可視)に、一辺2メートルの立方体のアルゴンガスを詰めた例 Geant4で定義されている物質一覧 G4VPhysicalVolume* Geometry::Construct() { G4NistManager* materi_Man = G4NistManager::Instance(); G4double leng_X_World = 2…

Geant4で重イオンをPrimaryGeneratorで入射する

Geant4で重イオンを入射したいという欲求に駆られた。Geant4で標準で扱える入射粒子はZが2以上だとヘリウム-4のみである。それ以外の原子核はやや特殊な方法で作る。 class PrimaryGenerator : public G4VUserPrimaryGeneratorAction { public: PrimaryGener…

PythonでJPGの2値画像をPNG画像に変換する

元々2値のPNG画像を無理やりJPG画像にすると、アナログノイズ的に輝度値が揺らいでしまう。 また、JPG画像の方が画像サイズが増えてしまうこともある。 JPG画像にしても輝度値は大きく変わらないので、閾値127で2値画像を作り、PNG形式で保存する関数を作っ…

Python + pandas でcsvデータの一部を除去して保存する

pandas で読んだデータの一部を除去して保存する方法。下の例ではdata1という変数が1000以下のものを除去している。 import pandas as pd df = pd.read_csv('run0001.csv') index_drop = [] for i, row in enumerate(dfdump.itertuples()): if row.data1<100…

Python (numpy+scipy)でプロファイルヒストグラムを描画する

プロファイルヒストグラム(Profile histograms ROOT: TProfile Class Reference を参照) は、2次元データをあるX軸の区画ごとに、Y軸のデータの平均値と標準偏差などを描画したものである。 matplotlib - Plotting profile hitstograms in python - Stack Ov…

meviyの切削プレートで円筒部品を発注してみる

FAメカニカル部品の切削プレートでは、円筒部品の見積もりを取ろうとすると、 「対象外形状が含まれています」と出る。切削プレートでは旋盤加工が必要な円筒形は作れない。 だが、真円に近くなくていいケースは多々ある。多角形にすると発注できるのだろう…

Microsoft ExchangeのメールをAndroidのGmailアプリから認証できないバグ

解決しました。Microsoft Exchange (Microsoft 365)の設定で携帯電話向けのExchange ActiveSyncが無効になっていたことが原因だそうです。 この記事は問題提起なので、解決はできていません。 Microsoft ExchangeのOutlookメールをAndroidのGmailアプリの「…

ラプラス変換、ラプラス逆変換をPythonで計算してみる

DiracDelta はディラックのデルタ関数またはインパルス関数 Heaviside は階段関数またはステップ関数と呼ばれるものです。 >>> import sympy as sp >>> s, t = sp.symbols('s, t') >>> a = sp.symbols('a', real=True) >>> sp.laplace_transform(sp.DiracDel…

Python で数値を科学的表記にする方法

科学的な表記のため、あまりにも長い桁数を丸める必要がある。ざっくりそういう需要のための関数を作った。 やり方は、指数表記にして指数部の大きさで判定させているだけである。自分で作ったほうが早いと思うので参考にしつつ作ってみてはどうだろうか。 d…