メモを取る場所がコロコロ変わる

メモをとる媒体が気分でコロコロ変わってしまい、あるときはiPadのGoodNotes6に手書きメモを残したり、またあるときはEvernoteのノートに電子メモを残したり、最近はニーモシネのメモ帳に手書きメモを残すようになったりで、自分でも困っています

共通モジュール作ればいいんだろう

毎回毎回似たようなコードをなんか書いているような気がして、雛形らしきものを作ってそれをコピペできるようにしているけれども、汎用性を高める意味ではメソッドとかモジュールにしたほうがいいんだろうなと思いつつ、やり方を調べる気になれなくて進んで…

ログはちゃんとみましょう

とあるプログラムでインライン展開のオプションを付けると実行速度が遅くなってしまい、てっきり、今回の改修で用意したサブルーチン内の処理で最適化がうまくいっていないのかと思いましたが、chatGPTに訊いていろいろオプションを付けたり試す中でログをち…

杉下右京

コードの改良を加えたとき、既存の実行結果を変えるものではないことがもし期待されるのであれば、出力結果が一致することを確かめる必要があります。結果が変わってしまう場合、バグが混入している可能性があるからです。「あるはずなのにないもの」「ない…

お絵描きにはまずサンプルデータで

いきなり実データを使ってお絵描きを試みるのもよいですが、お絵描きする際に渡すデータのフォーマットを決めておいて、それに合わせた適当なサンプルデータでお絵描きしてみるとよいと思います。サンプルデータは np.random で作成すればよいでしょう。サン…

MSM25XX地形

MSM25XXの改良では標高データの作成元がMERIT DEMに変わります*1。ではどれくらい標高が変わっているのでしょうか。可視化して調べてみましょう。地形データは気象業務支援センターのWebページに置いてありますので、そこから取得します。TOPO.MSM_5K という…

ループを抜けるのは exit?cycle?

とあるプログラムのデバッグをしていたときのこと。浮動小数点例外が起きてエラーで止まってしまいました。当初はゼロ割を疑っていたのですが、printデバッグしてみたところ、どうも違うらしく、じゃあ原因はなんだろうといろいろ試していたところ、コードに…

Ruby+gnuplot

学生時代にはRubyDCL (GPhys/GGraph) を使った解析をしていたことから Ruby の方が慣れているのですが、最近の可視化は Python (matplotlib) による方法が主流で、Python での解析はやや不慣れです。できれば Ruby だけで完結させたいところなのですが、可視…

Win11 Proにアップグレードしてリモートデスクトップ接続をする

昨年の夏にPCを新調したのですが、古いWin11はHomeからProにアップグレードして使っています。Win11 Proにするとリモートデスクトップ接続ができるようになり、ホストPCでVPN接続してやれば、リモートPCからあたかもVPN接続しているかのように扱えます。 な…

本の買取参考価格をスクレイピングで取得する

手持ちの本を売りにだそうとして、買取参考価格を調べられることに気づきました。ISBNコードを入れてWebページの結果を見てそれをエクセルに貼るということを手動でやっているうちに、だんだん作業が面倒くさくなってきて、これ自動でできないか、と考えまし…

値が不定のFortranプログラム

次のようなFortranプログラムを考えます。namelistから値を読み込むような仕組みです。ところが用意したnamelistに値が格納されておらず空白となっていました。さて実行するとどうなるでしょうか。 program main implicit none integer(4) :: isw_fss nameli…

Nautilusからsmb接続ができなくなって困った話

職場で使っているLinux端末(Ubuntu22.04)で、あるときを境にNautilusからネットワーク共有(smb接続)ができなくなって困っていました。症状としてはsmb:// でアドレスを入れても赤字表示になり「接続」ボタンはグレーアウトしてしまい接続できないという…

e2pdf

プログラムのソースコードをPDF化するのに、e2psをちょっと改造してe2pdfとして自分は使っています。コードは以下のとおりです。実行権限をつけてPATHを通せばよいです。文字コードをEUC-JPとしないとe2psが動かないのでnkfの処理が間に入っています。 #!/bi…

曇雨傘

曇雨傘 曇ってきた、雨が降りそうだ、傘を持っていこう 事実、解釈、行動 どれかひとつでも不足すると意見として説得力に欠ける (と最近読んだ本に書いてあり、なるほどなと思ったのでした)

Rubyで経過時間を任意の時刻形式にする

以下のように、ログに時刻の情報が記載されていたとしよう 2025/02/27 Thu 00:55:54 2025/02/27 Thu 01:25:37 この情報から所要時間を %H:%M:%S の形式で取り出すことを考える。なお、この時刻表記は date コマンドで date +"%Y/%m/%d %a %H:%M:%S" として得…

RubyにおけるString#to_iの挙動

Rubyで文字列を整数に変換するには String#to_i を使いますよね。 str = "20" p str.to_i #=> 20 では、でたらめな文字列に対して String#to_i を用いるとどうなるかというと、 str = "hoge" p str.to_i #=> 0 なんと0が返ってくるのです。これはRubyのマニ…

エンディアン

その昔、学生時代の話、JMA-NHMの実験に使用する地形データ mftopo を改変しようとして、Fortranで読み込むプログラムを提供いただいたのだが、地形データがうまく読み込めなかった。その地形データはバイナリファイルで、どういう規則でデータが格納されて…

加入してから4年も経過したのかいな

2年前にこんな記事を書いていました。 matsubi0526.hatenablog.com せっかく課金しているのだから頑張って投稿していこう、と宣言していたわけですが、2年経過したので自動継続になり、またしても更新となりました。今年こそは頑張りたいと思います。何を頑…

局地数値予報モデルGPVの海陸比データを contour で描画し海岸線に見立てる

気象業務支援センターから提供されている局地数値予報モデルGPV用の地形データに含まれる「海陸比」のデータを用いて、海岸線を描画してみようと思います。海陸比のデータは、海を0、陸を1としたときの海陸の割合を示します。局地数値予報モデルGPVにはビッ…

bash の while read で末尾に改行文字がないと読み込まれない

ちょっとだけ嵌った内容です。末尾に改行があるかないかで挙動が変わる事象に遭遇しました。 中身は別になんでもよいのですが、遭遇したときのテキストファイルがいわゆる TIMECARD 形式だったので、そのまま例として示します。後者の TIMECARD2.LIST には末…

FortranバイナリをPythonで読み込む際の挙動のちがい

Fortranで出力したバイナリをPython側で読み込むプログラムを書いていて、挙動が異なる事象に遭遇したのでメモしておきます。Fortran側のコードはこちら。 program main implicit none integer(4), parameter :: rp = kind(1.0d0) integer(4), parameter :: …

Debianをアップグレードしたら日本語入力ができなくなった(ibus-mozc再インストールによる対処)

2024年6月末でサポートの切れていたDebian/busterをbullseyeにアップグレードしたあと、日本語入力ができなくなっていたので、その対処法の話です。対処法は以下に掲載しているURLの内容で尽きていて、自分がそれ以上追加で述べることなど何もないのですが、…

contourfとpcolormeshの見え方の違い

先日のとある演習にて。正規分布 にしたがう乱数の2次元分布を図示した際に、正の値を赤系、負の値を青系で表示するカラースケールで描画しているにも関わらず、暖色系が強いように見えるとのコメントがありました。自分も図示してみたときに確かに暖色系が…

NCEP GFSデータの取得・可視化

数値予報の計算結果はFTが長くなれば不確実性が大きくなりますのでご利用の際には注意いただきたいですが、結果を素朴に描画してみたいという場合には別に構わないでしょう。ここでは地上天気図のように海面更正気圧の等値線を描画するコードを紹介してみた…

Fortran版FFTW3を用いた2次元離散フーリエ変換による解析と描画(その2)

前回の記事の続編ということで、その2を紹介します。今回の記事ではr2c/c2r系のサブルーチンを使います。 matsubi0526.hatenablog.com 入力配列が実数の場合、2次元離散フーリエ変換した波数空間における展開係数には、 という制約が生じます。このため、波…

Fortran版FFTW3を用いた2次元離散フーリエ変換による解析と描画(その1)

業務でFortran版のFFTW3を使う機会があり、意外とWeb上に使用例がないことから、使い方のメモを兼ねて記録を残しておくことにしました。Debian/Ubuntu系であれば以下でインストールができます。 sudo apt install -y libfftw3-dev FFTW3を使えるようにするた…

FortranバイナリをPython/Rubyで読み込む

Fortranバイナリを出力し、それをPythonで読み込むことを考えます。今回出力するのは以下のような倍精度実数配列とします。 real(8) :: psi(im,jm) open(10,file="data.dat",form="unformatted", & & access="stream",convert="big_endian") write(10) psi c…

Jupyter NotebookでエクスポートしたHTMLが他環境で数式展開されない

Debian bookwormでJupyter Notebookを最近使うようになったのですが、エクスポートしたHTMLを他環境で開くと数式展開されないという問題に出くわしました。調べてみるとdebパッケージでインストールしているnbconvertのバージョンが古く、ローカルのJavaScri…

メソ数値予報モデル(MSM)のデータ領域可視化(その2)

メソ数値予報モデル(MSM)のデータ領域を可視化してみました、第2弾です。 matsubi0526.hatenablog.com 今回はCartopyで凝った図を描いてみました。前回同様、結果から貼り付けておきます。 MSMのデータ領域(ランベルト座標、等緯度経度座標) コードは以下の…

局地解析の鉛直層配置

2024年3月時点での局地解析(LA)の鉛直層は48層であり、モデルトップは21,801mです。ハーフレベルの取り方については数値予報課報告・別冊66号pp.29-30に記載があります。ただし、パラメータbは現在は異なっており、b=18, c=40が採用されているようです。 こ…