PDFの文章を自動翻訳する際の小技(改行の対処方法)
課題
PDFの文章をDeepL翻訳やGoogle翻訳にコピペすると、貼り付け後の文章に改行が入っているため翻訳が上手くされない。改行を消したい。
解決方法
ブラウザ(Google Chromeとか)のURL欄にPDFの文章を貼り付けて、再びそれをコピペすると、改行が消える。
wgrib2を使ってGRIB2形式のファイルを読み込む際の落とし穴(Windows)
はじめに
気象データは世界共通フォーマットのGRIB2形式で提供されている場合が多いですが、そのファイルをCSV形式とかに変換する際に、NOAA(アメリカ海洋大気庁)が提供しているwgrib2を使ってデコードする必要があります。ネット上でwgrib2の使用方法を探すことができますが、次の2つの落とし穴に見事にハマってしまいました。
落とし穴1:cygwinでは上手くいかなかった。
NOAAの公式サイトClimate Prediction Center - wgrib2: how to compileではOSがWindowsの場合、cygwinを使うことを勧めています。しかし、cygwinだとwgrib2を使う際にどのコマンドラインやライブラリを別途インストールする必要があるか、いまいち不明瞭(私には分からなかった)で、何回もコンパイルに失敗しました。
落とし穴2:WSLでwgrib2を使う際はbase環境を解除する必要あり
結果的に、私はcygwinではなくWSL上でwgrib2を動かすことに成功しました。しかし、WSLがAnacondaのbase環境になっているとwgrib2が動きませんでした。この場合、以下のコマンドでbase環境を解除する必要がありました。
conda deactivate
ちなみにbase環境に戻したい時は次の通りです。
conda activate base
plt.subplots()のaxesに関するメモ。
はじめに
plt.subplots()のaxesを理解するのに時間がかかったので、記録に残す。特に、(1,5)や(5,1)など、一つの列や行のみに図をプロットするには注意が必要である。
一般的な複数表示の記述
fig,axes=plt.subplots(3,3,figsize=(5,5)) x=[i for i in np.random.randn(10000)] y=[i for i in np.random.randn(10000)] axes[0,0].hist(x) axes[1,2].hist(x)
図を1つ表示
・注意点:plt.subplots(1, 1, figsize=(5,5))ではない。
fig,ax=plt.subplots(1,figsize=(5,5)) x=[i for i in np.random.randn(10000)] ax.hist(x)
図を縦に一列に並べたい場合
・注意点:plt.subplots(2, 1, figsize=(5,5))ではない。
fig,axes=plt.subplots(2,figsize=(5,5)) x=[i for i in np.random.randn(10000)] y=[i for i in np.random.randn(10000)] axes[0].hist(x) axes[1].hist(y)
図を横に一列に並べたい場合
・注意点:この場合、(ax1, ax2)のようにaxesはタプル形式にする。
fig,(ax1,ax2)=plt.subplots(1,2,figsize=(5,5)) x=[i for i in np.random.randn(10000)] y=[i for i in np.random.randn(10000)] ax1.hist(x) ax2.hist(y)
ホストOSのWindowsにあるDropboxにVirtualBoxで作成した仮想環境のUbuntuOSからアクセスする方法
1.仮想環境のUbuntuOSを起動する。
2.Oracle VM VirtualBox Managerを開く
3.仮想環境を選択する。
4.Settingを選択する。
5.Shared Foldersを選択する。
6.フォルダを追加する。設定内容は以下の通り。
7.UbuntuOSのターミナルで以下のコマンドで、共有フォルダ用のフォルダ(例:shared_folder)を作成し、それにDropboxを接続する。
$ mkdir shared_folder $ sudo mount -t vboxsf Dropbox /home/vagrant/shared_folder
venvで作成した仮想環境をJupyterで正常に動作させる方法。
はじめに
AnacondaでインストールしたJupyter(及びIPython)では、venvで作成したPythonの仮想環境をJupyterのカーネルに接続しても、仮想環境のPython(及びライブラリ)は参照されず、Anacondaがインストールされている本体環境のPython(及びライブラリ)が参照される。そのため、Jupyter上で仮想環境を使うことはできない(※見た目上は動いてそうだけど、実際は本体環境のPythonを参照してる。)。
解決策
Anacondaは使用せずに、本体環境に直接Jupyter(Notebook、Lab)をインストールすると、この問題は解決できた。
方法
0.Vagrant で新しく仮想開発環境(以降、「本体環境」という)を作る。
・略
・vagrantの仮想開発環境にSSHで接続する際に、ポート名を設定(例えば8080)しておくとJupyterを開く際に便利。
C:\Users\*WinUSERNAME\*仮想開発環境フォルダ>vagrant ssh -- -L 8080:localhost:8080
1.本体環境でPythonをインストールする。
・略
2.本体環境でJupyter Notebookをインストールする。
以下のコマンドを本体環境のターミナルに入力し、Jupyter Notebookをインストールする。
vagrant@ubuntu1804:~$ pip3 install jupyter
もしインストール中にエラーが出れば、以下のコマンドを入力する。
vagrant@ubuntu1804:~$ pip3 install --user jupyter
3.本体環境でJupyter Labをインストールする。
以下のコマンドを本体環境のターミナルに入力し、Jupyter Labをインストールする。
vagrant@ubuntu1804:~$ pip3 install jupyterlab
もしインストール中にエラーが出れば、以下のコマンドを入力する。
vagrant@ubuntu1804:~$ pip3 install --user jupyterlab
4.本体環境でPythonの標準モジュールvenvを使用して、Pythonの仮想環境を作成する。
↓過去記事参照
tropicbird.hatenablog.com
5.4で作成しPythonの仮想環境をJupyterのカーネルに追加する。
↓過去記事参照
tropicbird.hatenablog.com
6.Jupyter (NotebookまたはLab)を開く
・Jupyter Notebookの場合
vagrant@ubuntu1804:~$ jupyter notebook
または
vagrant@ubuntu1804:~$ jupyter notebook --ip=0.0.0.0 --port=8080
・ Jupyter Labの場合
vagrant@ubuntu1804:~$ jupyter lab
または
vagrant@ubuntu1804:~$ jupyter lab --ip=0.0.0.0 --port=8080
・出てきたURL(例:http://127.0.0.1:8080/?token=xxxxxxxxxxxxxxxxxxxx)をブラウザ(Chromeなど)に張り付けるとJupyterが開く。