【メモ】20200823_ほしい鉱物リスト
■フローライト(蛍石)
化学式:CaF2(フッ化カルシウム)
備考:ブラックライトを当てると異なる色に光る
■カルサイト(方解石)
化学式:CaCO3(炭酸カルシウム)
備考:複屈折
- 価格: 1600 円
- 楽天で詳細を見る
■ラリマー(ソーダ珪灰石)
化学式:Ca2NaSi3O8(OH)
備考:海のような模様
■ストロベリークォーツ(苺水晶)
化学式:SiO2+(二酸化ケイ素)
備考:水晶に混入した物質によって赤く見える水晶
■ラピスラズリ(瑠璃)
化学式:(Na,Ca)8(AlSiO4)6(SO4,S,Cl)2
■ビスマス結晶
化学式:Bi(ビスマス)
備考:美しい虹色。きらファンのエトワリウム
■オブシディアン(十勝石、黒曜石)
化学式:SiO2(二酸化ケイ素)、Al2O3(酸化アルミニウム)
備考:火山岩
- 価格: 3850 円
- 楽天で詳細を見る
■ムーンストーン(月長石)
化学式:KAlSi3O8
備考:シラー効果
★天然石・鉱物・隕石・化石などの展示即売会「ミネラルマルシェ」
【EXCEL】マップ作成方法(3Dマップ)
EXCELにて、「3Dマップ」という機能を使えば容易にデータをマッピングして、表示することができます。
(私の環境は、EXCEL 2016です。)
初めて使うと戸惑うかと思いますが、一度簡単な例で作成してとりあえず動かしてみるがよいかなと思います。
とりあえず、項目1~5.1までやって、項目5.2以降はより遊びたいときに直感でテキトーにいじればよいかなと思います。
■目次
■参考までに
■マップ作成方法
1. 挿入
2. アドオン追加
3. 3Dマップ起動
4. データ入力/更新
5. 設定
5.1 フィールドの追加
5.2 視覚エフェクト
5.3 フィルター
5.4 レイヤーのオプション
5.5 マップ表示
5.6 挿入
5.7 テーマ
5.8 時間の設定について
5.9 新しいシーン→新しいカスタムの地図
6. その他
■参考までに
※慣れてない人にありそうな困りごとを記載しておきます。(私が使用し始めた際にあったことです。)
※ 下記1~3について、最初のうちは、カスタムの地図、シーン、レイヤーを複数作ることはないかなと思うので、慣れないうちは気にしなくてもよいかなと。。
※よく分からなくなってきたら、バックアップを取って最初からやってみるがよいのかもです。
1. カスタムの地図がたくさん作られてしまった。
⇛カスタムの地図は、デフォルトの地図の代わりに任意の画像を地図にすることができるものです。
作った覚えがなければ削除するでよいです。
この時、「これを削除すると元に戻れません。また、他のシーンやツアーに影響を与える可能性があります。続けますか?」とメッセージが出てきます。
これは、他のシーン(EXCELでいうところのシートみたいなもの)でもし使われていたら、影響を与えます=そのシーンからもカスタムの地図が削除されてしまいます、みたいな意味です。
2. シーンがたくさん作られてしまった。
⇛シーンは、EXCELでいうところのシートみたいなものです。
こちらも作った覚えがなければ削除するでよいです。
3. レイヤーがたくさん作られてしまった。
⇛レイヤーは、マップ表示の設定を複数持っておくみたいなものです。
こちらも作った覚えがなければ削除するで良いです。
<下記説明用のデータの例>
経度 | 緯度 | 市区町村 | 人口(男) | 人口(女) | 時間 |
141.354389 | 43.062083 | 札幌市 | 913,077 | 1,039,271 | 2018/1/1 |
140.728917 | 41.768667 | 函館市 | 119,518 | 143,001 | 2018/1/1 |
142.365 | 43.770639 | 旭川市 | 158,223 | 181,988 | 2018/1/1 |
141.354389 | 43.062083 | 札幌市 | 913,799 | 1,041,658 | 2019/1/1 |
140.728917 | 41.768667 | 函館市 | 117,919 | 141,029 | 2019/1/1 |
142.365 | 43.770639 | 旭川市 | 156,846 | 180,546 | 2019/1/1 |
141.354389 | 43.062083 | 札幌市 | 915,342 | 1,043,971 | 2020/1/1 |
140.728917 | 41.768667 | 函館市 | 116,270 | 139,038 | 2020/1/1 |
142.365 | 43.770639 | 旭川市 | 155,194 | 178,876 | 2020/1/1 |
この情報は北海道のオープンデータを利用しています。
(北海道オープンデータ CC-BY4.0(https://creativecommons.org/licenses/by/4.0
/deed.ja))
経緯度はwikipedeaの情報を使用しています。
■マップ作成方法
1. 挿入
リボンから「挿入」→「3Dマップ」→「3D Mapsを開く」を押下します。
2. アドオン追加
初めて使用する場合は、アドオンするか聞かれると思います。その場合は、アドオンして下さい。
3. 3Dマップ起動
3D Mapsのウィンドウが開きます。
Excelにデータを入れていた場合、自動的に反映されます。
4. データ入力/更新
データを入力、更新する場合は、元のExcelシートに戻ってデータを入力、更新します。
その後、3D Mapsのウィンドウにて、データの更新を押下します。
5. 設定
レイヤーウィンドウにて、自分の好みに設定を行います。
下図のウィンドウが表示されない場合は、リボンの表示にある「レイヤーウィンドウ」を押下。
5.1 フィールドの追加
各項目の「フィールドの追加」により、Excelデータを割り当てます。
押下するとExcelシートの項目(表のヘッダ)が表示されるので、そこから選択します。
[1] 場所:
割り当てたデータを使って地図上のプロット位置です。
データ内容をプルダウンから選択します。
※経緯度や市区町村名から地図上にプロットできます。
※例えば、緯度/経度のチェックボックスをONにすれば、経緯度のデータを使用して地図上にプロットされ、市区町村名のチェックボックスをONにすれば、市区町村名のデータを使用して地図上にプロットされます。
[2.1] 高さ:
プロットのグラフの高さです。
※高さの計算は、合計、平均、データの個数(空白でない)、データの個数(個別)、最大値、最小値、集約なしから選択できます。
[2.2] サイズ:
プロットのサイズ(円の大きさ)です。
[2.3] 値:
プロットの色相に対応します。
[3] 分類:
本分類を設定しておくことで、分類ごとに色を変えることができます。
[4] 時間:
好きな時間(日付/時刻)でのプロットを見ることができます。また、アニメーションで表示することができます。
※Excelデータ上で、正しく日付/時刻を入力しておく必要があります。(例えば、Excel的に、2020/1/1はOKで、2020年はNGとなります。NGの場合は、フィールドの追加ができないです。)
[4(追加)] 時間:
時計マークのところにプルダウンがあり、時間変化によるプロットの表示方法を選択できます。
・データが少しの間表示されます
・データが時間を追って累積表示されます
・データは置き換えられるまでそのままです
(補足)
※[2.1]高さ/[2.2]サイズ/[2.3]値の計算は、合計、平均、データの個数(空白でない)、データの個数(個別)、最大値、最小値、集約なしから選択できます。
※[2.1]高さ/[2.2]サイズで複数のデータを設定すると、その複数のデータが分類となり、[3]分類を設定できません。
もし両方設定できてしまうと、[2.1]高さ/[2.2]サイズによる分類と、[3]分類による分類で競合してしまうためだと思います。
5.2 視覚エフェクト
プロットデータの視覚エフェクトを設定します。
[1] 視覚エフェクトを積み上げ縦棒に変更:
データの値に応じて高さが変わります。
※[2.1]高さで複数のデータが割り当てると、高さが積み上げられます。
<例>
[2] 視覚エフェクトを集合縦棒に変更:
データの値に応じて高さが変わります。
※[2.1]高さで複数のデータが割り当てると、各データが横に並びます。
<例>
[3] 視覚エフェクトをバブルに変更:
データの値に応じて円のサイズが変わります。
※[2.2]サイズで複数のデータが割り当てると、円グラフのように円の中身が分割されます。
<例>
[4] 視覚エフェクトをヒートマップに変更:
データの値に応じて色相が青⇔赤に変わります。
※[2.3]値で複数のデータが選択できたりしますが、よく分からないグラフになります。(そもそもヒートマップのグラフで複数のデータを選択する意味も分からないですが。。)
<例>
5.3 フィルター
すみません、使ったことないので分かりません。
5.4 レイヤーのオプション
プロットに対する表示方法を変更できます。
下記よく分かってない機能については、すみません、省略してます。
[1] 高さ/太さ:
言葉通り、高さ(サイズ)/太さを変えられます。
現在の倍率をロックのチェックをONにすると、地図を拡大縮小してもプロットの大きさが変化しなくなります。
不透明度は、これも言葉通りです。数値を下げると透明になります。
[2] 色:
各分類に対して、色を設定できます。
[3] カラースケール:
色相の範囲を変えられます。
[4] 影響半径:
円の半径を変えられます。
[5] ビジュアル集計:
合計/平均が選択できます。
おそらく、各プロットが重なった時に合計して表示するか、平均して表示するかの違いだと思われます。(下図の例のようになります。)
<例>
合計の場合 平均の場合
※違いがはっきりするよう半径を大きくしてます。
[6] 色の設定:
標準/ユーザー設定が選択できます。
ユーザー設定を選択すれば自分で色を決定できます。
5.5 マップ表示
マップの表示方法を変える設定についてです。
[1] マップラベル:
都市名などの表示/非表示を切り替えます。
[2] 平面マップ:
3D/2D(平面)を切り替えます。
[3] 場所の検索:
場所の名前を入力して検索すると、その場所に移動します。
5.6 挿入
マップ上に2-Dグラフ、テキストボックス、凡例を挿入できます。
消したいときは、選択してDeleteキーで消えます。
5.7 テーマ
テーマから地図の種類を選択できます。
白地図や下記のような写真の地図などがあります。
5.8 時間の設定について
[1] タイムライン:
下記タイムラインにより、表示する日時のデータを変えられます。
▶を押下するとオートで日時が進みます。
下記が表示されない場合は、リボンのタイムラインを押下すると表示されます。
[2] 日付と時刻:
リボンの日付と時刻をONにすると、下図の左上のように日付と時刻を表示されます。
ダブルクリックすると、下記のように表示形式を変更できます。
[3] シーンのオプション:
シーンについて設定できます。
[3.1] シーンの長さ(秒):
タイムラインが終了するまでの長さです。
[3.2] 切り替え効果の再生時間(秒):
日付が変わりデータが変更される際の切り替え効果の再生時間です。
[3.3] 開始日/終了日、速度:
タイムラインの範囲です。
また、速度は、再生速度(時間変化の速度)です。
5.9 新しいシーン→新しいカスタムの地図
背景を地図でなく、任意の画像に変更できる。
経緯度は、画像の範囲に合わせて設定する。
下記例のようになります。
6. その他
3D Mapsには、ビデオの作成など他にも機能ありますが省略します。
気が向いたら更新します。
- 価格: 3000 円
- 楽天で詳細を見る
【数学】k-means法のプログラム
k-means法のプログラムをMATLABで作成したので、参考までに。
k-means方とは何かについては、下記記事を参照。
lm4183.hateblo.jp
下記記事も本プログラムを使用して作成しました。
lm4183.hateblo.jp
■kmeans法のメイン関数
初期値は、各データに対して、ランダムにクラスタを割り当てますが、
自分で決めた初期値を引数に与えてやることもできます。
「【数学】k-means法_日本の市区町村を47都道府県に再割り当て」でも各都道府県の割り当てgを初期値として自分で決めています。
% k-means法 %% 引数 % x : データ % k : クラスタ数 % str : (省略可)初期値 'v':クラスタ中心、'g':クラスタ番号 % var : (省略可) %% 戻り値 % g : クラスタ番号 % v : クラスタ中心 % cnt : 実行数 % d : 距離 %% 関数 function [g,v,cnt,d] = Calc_Kmeans(x,k,str,var) cntMax = 1000; %% 初期化 if nargin >= 3 switch str case 'g' g(1,:,1) = var; case 'v' d(:,:,1) = Dist_Euclid(x,var); g(1,:,1) = Cluster_Argmin(d(:,:,1)); otherwise g(1,:,1) = randi([1 k],1,size(x,2)); end else g(1,:,1) = randi([1 k],1,size(x,2)); end %% ループ for cnt = 1:cntMax %% クラスタ中心を更新 v(:,:,cnt) = Center_Update(x,g(1,:,cnt),k); %% 距離を演算 d(:,:,cnt) = Dist_Euclid(x,v(:,:,cnt)); %% 割り当て g(1,:,cnt+1) = Cluster_Argmin(d(:,:,cnt)); %% 終了判定 if Judge(g(1,:,cnt+1),g(1,:,cnt)) break end end end
■クラスタ中心を更新
% クラスタ中心を更新 %% 引数 % x : データ % g : クラスタ番号 % k : クラスタ数 %% 戻り値 % v : クラスタ中心 %% 関数 function v = Center_Update(x,g,k) v = zeros(size(x,1),k); for j = 1:k v(:,j) = mean(x(:,g==j),2); end end
■ユークリッド距離を演算
% ユークリッド距離を演算 %% 引数 % x : データ % v : クラスタ中心 %% 戻り値 % d : 距離 %% 関数 function d = Dist_Euclid(x,v) d = zeros(size(v,2),size(x,2)); for i = 1:size(x,2) for j = 1:size(v,2) d(j,i) = sqrt((x(:,i)-v(:,j))'*(x(:,i)-v(:,j))); end end end
■割り当て(最小値)
% 割り当て(最小値) %% 引数 % d : 距離 %% 戻り値 % g1 : 距離の最小値 % g2 : 距離の最小値となる元(arg min) %% 関数 function g2 = Cluster_Argmin(d) [g1,g2] = min(d); end
■終了判定
クラスタ数が減ることがあるため、割り当てられないと"nan"となる。
そのため、isnan関数にてnanも考慮する。
% 終了判定 %% 引数 % g1 : クラスタ番号 % g2 : クラスタ番号(old) %% 戻り値 % flg : 終了判定結果 % false:終了しない % true:終了する %% 関数 function flg = Judge(g1,g2) if isnan(g1)==isnan(g2) flg = all(g1(not(isnan(g1)))==g2(not(isnan(g1)))); else flg = false; end end
■(参考)使用例
clear; k = 5; %クラスタ数 x = randi([1 3],2,1000)*5+randn(2,1000); %% ----k-means法---- [g,v,cnt] = Calc_Kmeans(x,k); %% ----プロット---- t = cnt; % 最終結果を表示 % 色を設定 cx1 = hsv2rgb([(0:k-1)/k;ones(1,k)*0.6;ones(1,k)*1.0]'); cx2 = hsv2rgb([(0:k-1)/k;ones(1,k)*0.6;ones(1,k)*0.6]'); cv1 = hsv2rgb([(0:k-1)/k;ones(1,k)*1.0;ones(1,k)*1.0]'); cv2 = hsv2rgb([(0:k-1)/k;ones(1,k)*1.0;ones(1,k)*0.6]'); cla reset hold on; for j=1:k index = g(1,:,t)==j; scatter(x(1,index),x(2,index),5,... 'MarkerFaceColor',cx1(j,:),... 'MarkerEdgeColor',cx2(j,:)); scatter(v(1,j,t),v(2,j,t),30,... 'MarkerFaceColor',cv1(j,:),... 'MarkerEdgeColor',cv2(j,:)); end hold off;
【数学】k-means法とは
グループ化(クラスタリング)には、様々な手法がありますが、k-means法とは、その中でも単純な手法です。
■アルゴリズム
1. 各データに対して、ランダムにクラスタを割り当てる。
2. 各クラスタに対して、データの中心(クラスタ中心)を算出する。
3. 各データと各クラスタ中心の距離を算出し、最も距離が近いクラスタ中心と同じクラスタに再度割り当てる。
4. 2と3を繰り返し実施し、割り当てが変化しなくなった時に終了する。
■アルゴリズムの具体的説明
①変数の定義
記号、ベクトルの要素の割り当てなどは、下記の限りではありません。(例えば、記号はxでなくてyでもよいし、gなんてものを用意しないでベクトルxの要素に足してもよい。私のやりやすいようにやってます。)
<変数>
②アルゴリズム
1. 各データに対して、ランダムにクラスタを割り当てる。
1.1. データを取得する。
当然ですが、クラスタリングするにはデータが必要です。
ここでは例として、下図のようにのデータがあったとします。
1.2. 各データに対して、ランダムにクラスタを割り当てる。
下図のように、各データに対して、ランダムにクラスタ番号を割り当てます。
※下図の例では、,はクラスタ1、~はクラスタ2となっています。
また、各データのクラスタ番号の情報は、各クラスタが持つこととします。
※例えば、はクラスタ1であるので、に対応したは1となっています。
2. 各クラスタに対して、データの中心(クラスタ中心)を算出する。
各クラスタに対して、データの中心(クラスタ中心)を算出します。
クラスタ中心は、一般的には相加平均(一般的に平均と呼ばれるもの)で計算します。
数学っぽく式で表せば下記となります。
例えば、クラスタ1の場合は、クラスタ1に含まれる,からクラスタ中心を計算します。
3. 各データと各クラスタ中心の距離を算出し、最も距離が近いクラスタ中心と同じクラスタに再度割り当てる。
各データと各クラスタ中心の距離を算出し、最も距離が近いクラスタ中心と同じクラスタに再度割り当てます。
例えば、下図のようにについて考えます。
データと各クラスタ中心,との距離をそれぞれ,とした時、図のようにだったとします。(がの方が近いとします。)
この場合、データをクラスタ1に割り当て直します。
全データに対して行い、本例の場合、下図のよう,,はクラスタ1、,,はクラスタ2と割り当て直されます。
4. 2と3を繰り返し実施し、割り当てが変化しなくなった時に終了する。
2と3を繰り返すと、いずれ収束して、割り当てが変化しなくなります。(アルゴリズムの作り方によっては例外あるかもですが。。)
割り当てが変化しなくなった時に終了となります。
本例だと、「2. 各クラスタに対して、データの中心(クラスタ中心)を算出する。」を再度行うと下図のようになり、これ以上クラスタ中心が変化しなくなります。
以上、無事にクラスタリングされました。
ただ、よく言われるデメリットとして、クラスタの初期割り当てによっては、私達が思うクラスタの割り当てと実行結果に差が出ることがあります。
本例で言えば、だけがクラスタ1に割り当てられて、~がクラスタ2に割り当てられることがあります。
これは、私達が思うクラスタの割り当てと異なりますよね。
【数学】k-means法_日本の市区町村を47都道府県に再割り当て
k-means法(グループ化を行う単純なアルゴリズム)を使って、日本の市区町村を47都道府県に再割り当てを行ってみた。
<再割り当て結果>
(※1)クラスタ中心の初期値は、各47都道府県の中心とした。
(※2)画像内のXXXX年は、0回目 = 2020年として、1回実行につき1年経過とした。(2049年で収束。)
(※3)市区町村の経緯度は、「おまるくんの技術ノート」(http://note.omarukun.com/notes/4/)というサイトのデータを使用した。(記載日が2016/8/22とちょっと古いですが。。)
(「位置参照情報 国土交通省」のデータが使用されています。)
<年表(用語は勝手に作成)>
2020年:日本の市区町村が、現在(※3)の47都道府県の通り。
:日本大戦が勃発し、2021年(下記)以降、市区町村が再割り当てされていく。
2021年:東京都の南下により、東京都-神奈川戦争が勃発。東京都が、神奈川県の川崎市、横浜市の大部分を占領。
:北海道戦争が勃発。青森県が、北海道に進出。
2022年:宮崎県-鹿児島県戦争が勃発し、宮崎県が勝利。鹿児島県が、本州から撤退。
2023年:東京都-神奈川戦争にて、神奈川県が優勢。東京都が、本州から撤退。
2026年:北海道戦争に秋田県が参戦。秋田県も、北海道に進出。
2027年:東京都が、小笠原諸島のみとなる。
2028年:埼玉県-神奈川県戦争が勃発し、埼玉県が優勢。
2030年頃:この頃には、日本西側の小競り合いが、ほぼほぼ収まる。
2035年:埼玉県-神奈川県戦争にて、神奈川県が敗退。神奈川県が、本州から撤退。
2037年:青森県縦断政策にて、秋田県、岩手県がぶつかる。岩手県が、秋田県大館市を占領した(大館事件)。
2045年:青森県下北郡(この時には秋田県下北郡)を除き、秋田県が、本州から撤退。
2049年:日本大戦の終結。(k-means法では、本年で収束し、2050年以降変化なし。)
※関東、北海道、鹿児島あたりの変化が分かりやすかった。それ以外の都道府県でも変化はあったが、なんかよく分かりづらく、年表に入れませんでした。
<作成環境>
・プログラム(画像処理):MATLAB 2020a(+ Image Processing Toolbox)
・地図のプロット:Excel 2016(アドイン:Microsoft Power Map for Excel)
・画像のGIF化:バナー工房(https://www.bannerkoubou.com/anime/)
・(使わなくても可能だが、使ったら便利だった)スクリーンショットの連続化:クリップボードの画像自動保存ソフト KoClip(https://www.vector.co.jp/soft/dl/win95/util/se157875.html)
<作成方法>
・目次
1. k-means法とは: lm4183.hateblo.jp
2. k-means法のプログラム:
3. 地図のプロット:
<再割り当て結果(コメントなしver)>