Excelの一括和訳
Excelのワークシートにずらっと縦に並んでいる日本語を和訳したいと思いました。ウェブで調べてみると、「翻訳機能が使えるもののセルごとにコピペしなければならない」と記述があります。Googleスプレッドシートを介してコピペする方法、wordファイルを介してコピペする方法(Wordの表形式にする)が紹介されていますが、どうもうまくいきませんでした。後者のwordを介する方法は、私の環境では次の方法でうまくいったので、メモしておきます。
※記事を書いてからあらためてみると、最初に2列を選択したので、最後に2列分が1列にまとめて翻訳されています。1列選択しておけば最後も1列になるでしょう。
1.まず翻訳したい箇所を選択して、「校閲」タブの「翻訳」を押します。

2.翻訳ウィンドウの中で、翻訳された部分をコピー。右クリックが使えなかったので、ショートカット(Ctrl+C)を使いました。

3.Wordで新規作成した白紙文書に貼り付けます。このとき、オプションで「テキストのみ保持」を選びます。

4.Excelの表にもどり、貼り付けます。このとき「貼り付け先の書式に合わせる」とすると、Excel表に影響が少ないのでよいです。

※ウェブで調べると、同じWordを介する方法でも、別の貼り付け方法を使っている方もいました。もしかするとそれぞれのExcelやWordバージョンで違うのかもしれません。うまくいかなかったらすみません。
ノンパラメトリック検定2つ
2群を比較する際に、正規分布を仮定しない検定(ノンパラメトリック検定)として有名なのはマンホイットニー(Mann-Whitney)のU検定です。2群の数値を順位に変換して、順位の差から有意差があるのかを比較するというものです(なお本検定はウィルコクソンの順位和検定と同等とされ、私が利用しているRでも後者の名前で出力されます)。しかし、実はマンホイットニーU検定にはもう一つ条件があり、2群の分布に違いがないというものがあります。分布の違いにもこだわらないとなると、ブルンナー・ムンツェル(Brunner-Munzel)検定というあまり聞きなれないものがあてはまります。
有名なのは前者ですが、実際のデータはどちらかというと後者のケースが多いように思われるので、両方の手法をメモしておきます。
まずデータですが、2つの方法で取り込み方を説明します。ひとつは直接、Rに手入力する方法。データ数が少ないと手っ取り早いです。たとえばAクラスとBクラスの各5名のテストの点を比較するときは次のようにします。
A <- c(45,56,76,65,57)
B <- c(77,89,90,68,92)
有意が出るかどうかというラインを狙うため、少しえこひいきしてBクラスに良い点をつけています。マンホイットニーU検定は下記のように入力して終わりです。
wilcox.test(A, B)
結果は次の通りとなりました。p<0.05で有意差ありです。えこひいきした甲斐が
ありました。
Wilcoxon rank sum exact test data: A and B W = 1, p-value = 0.01587 alternative hypothesis: true location shift is not equal to 0
もう一つの入力方法は、エクセルからコピペする方法。
まずエクセルでAの成績部分をコピーして、Rに移ったら、次のように入力します。
A <- scan("clipboard")
次にエクセルに戻ってBの成績部分をコピーして、Rに移ったら、次のように入力します。
B <- scan("clipboard")
あとは上記と同じです。ほかにcsvファイルを読み込む方法もあります(別の記事にありますので参照ください)。
続いて、Brunner-Munzel検定です。パッケージは"lawstat"を使います。
brunner.munzel.test(A, B)
これだけ入力すると結果が下記の通りでます。やはり有意差ありでした。
Brunner-Munzel Test
data: A and B
Brunner-Munzel Test Statistic = 8.1317, df = 8, p-value = 3.882e-05
95 percent confidence interval:
0.8295527 1.0904473
sample estimates:
P(X<Y)+.5*P(X=Y)
QGISで「編集モードにならない」「地物が選択できない」とき
QGISver.3.24.3を利用しています。先日、関東地方の国土数値情報をダウンロードして編集しようと思いました。具体的には離島については自然環境が違いすぎるので、以降の解析から除くためでした。しかし、なぜか東京都と神奈川県のシェイプファイルだけ編集モードになりません。ググってみると、「編集モードにならない」という現象はたまにあるようです。仕方ないので、東京と神奈川だけ、次のようにいったん「エクスポート」⇒「新規ファイルに地物を保存」として保存しなおしてみました。

これで再度読み込みなおすと「編集モード」になりました。「めでたし、めでたし」と編集しようとすると、パネルにある地物選択ツールから離島が選択できません。東京都から離島をはずしてはならないという行政的配慮でしょうか?。個人的には強く同意しますが、まだイノシシが分布していないので、解析をするときにこれら離島は除いておきたかったのです。そこで属性テーブルを開いて、地物を選択してみると…選択できました。そこでもう一度パネルモードに戻ってみると…選択できました。なぜかはわかりませんが、今度こそ「めでたし、めでたし」です。

Rで地域メッシュコードから緯度経度をまとめて取得
久しぶりの更新です。地域メッシュコードが膨大に入っているCSVファイルから、それぞれメッシュ中心の緯度経度に変換したいと思いました。Rのjpmeshパッケージで変換は可能とわかりました(作成者の方、どうもありがとうございます!)。
標準地域メッシュを扱うRパッケージを更新しました: jpmesh v.1.0.0 - cucumber flesh
作業内容は知っている人にとっては当たり前のことなのですが、初心者には悩むところがあったので、アップしておきます。(パッケージの中身よりも、Rを扱う私の知識不足による問題ですね!)
Rはversion4.2.2を使いました。library(jpmesh)の読み込みまでは割愛させていただきます。まずは地域メッシュ(メッシュコード)の含まれているCSVファイルの読み込みです。
> d<-read.csv(file.choose(),header=T)
と入力するとファイルを選択できます。header=Tは、第1行はヘッダであると指定するためのものです。読み込んだデータの確認をするのに膨大な行数が含まれている場合はhead関数を使うと最初のほうだけ確認できます。このデータはメッシュごとに動物の確認回数が含まれているもので、Numberの列がその回数です。
> head(d)
Mesh Number
1 362335 2
2 362336 3
3 362337 2
4 362345 2
5 362346 4
6 362347 3
このうち、1列目のメッシュコードだけを処理すればよいので、1列目のデータのみを抽出します。このデータセットはd2にします。headで中身を念のため確認しておきます。
> d2<-d$Mesh
> head(d2)
[1] 362335 362336 362337 362345 362346 362347
ここでjpmeshパッケージの関数mesh_to_coordsを使います。メッシュから緯度経度に変換してくれる関数です。
> d3<-mesh_to_coords(d2)
> head(d3)
# A tibble: 6 × 5
meshcode lng_center lat_center lng_error lat_error
<meshcode> <dbl> <dbl> <dbl> <dbl>
1 362335 124. 24.3 0.0625 0.0417
2 362336 124. 24.3 0.0625 0.0417
3 362337 124. 24.3 0.0625 0.0417
4 362345 124. 24.4 0.0625 0.0417
5 362346 124. 24.4 0.0625 0.0417
6 362347 124. 24.4 0.0625 0.0417
中身は上記のようになっています。 lng_center のところにある「124.」というのがメッシュ中心の経度、lat_center のところにある「24.3」というのがメッシュ中心の緯度です。そのあとはそれぞれの誤差のようですが、今回は緯度経度の値のみで処理しました。上記のようになっているので、たとえば経度の小数点以下はどこに出てくるのかしばらく悩んでいました。あとでCSVに書き出したらきちんと小数点以下のデータも含まれていました。折りたたまれているだけなのでした!たとえば、d4というデータセットでd3のうち「lng_center」つまり経度の中心だけ抽出してみます。
> d4<-d3$lng_center
> head(d4)
[1] 123.6875 123.8125 123.9375 123.6875 123.8125 123.9375
上記のようにちゃんとそれぞれ変換されていました。抽出したデータをまとめてCSVファイルに出力します。
> write.csv(x = d4, file = "exportdata.csv")
このようにするとexportdata.csvというファイル名でデータセットd4が保存されます。
2列まとめてのときは
>d4<-data.frame(x=d3$lng_center,y=d3$lat_center)
>write.csv(d4, file = "exportdata.csv")
とします。
保存先は作業しているディレクトリなのですが、どこだかよくわからない場合はまずは上記のように保存してしまい、あとで次のように入力すると場所がわかります。
> getwd()
[1] "C:/Users/ここにユーザー名など/Documents"
下記のように無事、CSVファイルができました。

うつりゆくQGISで地質図をつくる
3年以上ほったらかしていたブログですが、久しぶりにQGISを使ったので、備忘のため記録を残しておきます。私がQGISを使い始めたころはバージョン1.8とかでしたが、すでに3.16(最新版はさらに3.2とか)になっていたのですね。久しぶりに使ってみると細部が変わっていて、戸惑いつつもやはり全体としては大きく進歩していました。
今回は知床周辺の地質図作成をしました。産総研の提供している地質図を利用します。こうして地質図のデータも気軽に利用できるようにしていただいて、本当に感謝です。今回は20万分の1を使っています。
用途にあわせてshp形式、またはgeotiff形式を選べます。
新規プロジェクトを立ち上げて保存→その後、プロジェクト>プロパティ>座標参照系のタブを開いて、CRSを設定します。元データはJGD2000に準拠していますが、平面直角座標系にするには下記を参照して、JGD2000/Japan Plane Rectanglar CS (数字)という形式にしなければなりません。JGD2000のままだとゆがんで表示されます。下記を参照して知床付近は13なので、
JGD2000/Japan Plane Rectanglar CS XIIIを選びます。

あとはこれを印刷すればよいのですが、かつてはプリントコンポーザというのを使っていました。どこにもその名前はなく、次の通りのプロセスになっていました。
プロジェクト>新規印刷レイアウト

ここに地質図を表示させるのですが、その前にこれを縦長にしたいと思います。コンポーザーマネージャーもないので、しばらく悩んでましたが、画面のレイアウトの上で右クリックすると、右側にページプロパティが現れました。ここでA4縦に直しました。下図の左側にある地図を追加というアイコンをクリックして、十字のカーソルで領域を指定してやると、その中にQGISで開いていた地図がそのまま表示されます。とりあえずこれで利用できます!

地質図には凡例が必要です。そこで、下図の場所のアイコンで凡例を追加します。偉く長いのでびっくりしました。仕方ないので、下図の右側にある凡例のアイテムを調整するところで、フォントを小さくします。

QGISで河川と道路の国土数値情報を重ねあわせる
備忘のためのメモです。参照に来た方、適当になってすみません。
1)国土交通省ウェブサイトから、国土数値情報をダウンロードします。
たいへんお世話になっているサイトです。ありがとうございます!アンケートに答えてダウンロードです。今回は海岸線、道路、河川のデータのうち北海道のものを使いました。
2)xmlファイルのものはシェイプファイルに変換。QGISにxmlをシェイプに変換するプラグインもありますが、なんだかうまくいかないことも多いです。同じ国土交通省サイトからksjツールをダウンロード(下記サイト)して使うのが確実かと思います。
3)QGISでベクタ形式ファイルとして順番に読み込む。
今回使用したデータは空間参照系がJGD2000(EPSG:4612)なので、どのファイルもそれで統一する。
4)しかし、河川ファイルは2級河川や準用河川というかなり細かい川までデータになっています。(下記)

河川データの仕様書を見ると、区間種別コードの指定がありました。属性テーブルで、たとえば1級河川だけに絞れば整理されるということですね。
<区間種別(COP)コード>
1(1級直轄区間) 2(1級指定区間) 3(2級河川区間) 4(指定区間外) 5(1級直轄区間でかつ湖沼区間を兼ねる場合) 6(1級指定区間でかつ湖沼区間を兼ねる場合) 7(2級河川区間でかつ湖沼区間を兼ねる場合) 8(指定区間外でかつ湖沼区間を兼ねる場合) 0(不明)
QGISで特定の地物をクリックすると画像が開くようにする方法
QGISはオープンソースのGISソフトとしてたいへん便利ですが、ときどき思い通りに操作できないことがあります。今回もかなり苦労しました。トライしたのは、特定の地物をクリックして画像を開くという操作です。たとえば、GPS付きのカメラで撮影した画像を地図とリンクさせられたら、とても便利です。またまた苦労を重ね、最後はコンピュータに詳しい同僚の助けをもらって次の方法にたどりつきました。
1)画像からGPS情報を抽出する。
まず、GPS情報を持っている写真の情報(EXIF)を一括して閲覧したり、エクスポートしたいと思いました。枚数が少なければ手入力でもよいですが面倒ですね。これにはExif情報を抽出するフリーウェアを利用しました。リンクを掲載してよいかどうか不明でしたのでここでは名前は伏せます。私のカメラ(Canon PowershotD30)では緯度経度が「・・度・・分・・秒」となっていたのでこれをExcel上のワークシート関数で変換しました。たとえばC2に上記の緯度がある場合、次の関数で小数点に変換できました。
=LEFT(C2,FIND("度",C2)-1)+(MID(C2,FIND("度",C2)+1,FIND("分",C2)-FIND("度",C2)-1))/60+(MID(C2,FIND("分",C2)+1,LEN(C2)-FIND("分",C2)-2))/3600
今回はヨーロッパの写真が対象で、東経と西経の両方が登場しました。区別はそれぞれプラス、マイナスとしておけば大丈夫でした。これをCSVファイルにして、QGIS(今回は2.12.0を使用。PCはwindows7です)から読み込みます。いつもどおりセルやファイル名に日本語を含めないのが無難です。このCSVファイルに画像の場所を指定する列も加えておきます(列の一部はこちらの都合で隠しています)。

QGISからのCSVファイル読み込みは「レイヤ>ベクタレイヤの追加>デリミティッドテキストレイヤの追加」です。
2)QGISのアクションとバッチファイルを利用して地物と画像のリンクをつくる。
QGISにはプロパティ(レイヤーを選択してダブルクリックすると開くメニューの中にある)を開くと、”アクション”というタブがあります。このアクションを利用すると地物と特定の動作を結びつけることができます。ところが少しクセがあるようで、いくつかのウェブサイトに書かれていた方法ではうまくいきませんでした。同じように困った方は次を試してください。
(1)バッチファイルをつくる。
次のようにテキスト入力したファイルに名前をつけて、拡張子をbatとして保存します。フォルダはプロジェクトと同じところに入れておくのが無難です。

(2)アクションを次のように設定する。
下のほうにある欄で設定をします。”タイプ”は一般、”名前”は表示のためだけなので日本語でも大丈夫です。アクションのところにはさきほど指定したバッチファイルの場所を入力します。そのあとスペースをはさんで画像の場所を記入したカラムを示します。アクションの欄の下にあるポップアップで選んでから”フィールドを挿入”とします。最後に忘れず”アクションリストへ追加”をクリックします。

上記によってアクションリストに下記が加わりました。OKを押して通常の画面に戻ると、下図で地物アクションの実行というアイコンのポップアップに上記アクションが追加されるはずです。ここでアクションを選んだら、あとはそれぞれの地物をクリックすると画像が開くはずです。(OSMをベースマップにしています。)

バッチファイルを使わなくてもできるようですが、私は今のところうまくいっていません。画像を開くとき、一瞬バッチファイルが開くのがうっとおしいかもしれませんが、とりあえず目標は達成しました。