2023年1月 5日 (木)

環境データ取得のIoT化(2)Arduino IDE 1.8 の準備

今回はarduino IDE 1.8側の準備を行います。ESP-WOOM-02との通信で初期値を読み込むために1.8を使っています。

(1)ボードマネージャーにESP8266をインストール
ファイル→環境設定に行って

1

追加のボードマネージャー(赤丸の箇所)に
https://arduino.esp8266.com/stable/package_esp8266com_index.json
と入力し、OKをクリックします。

2

ツールからボードからボードマネージャーに行って
(図ではボードマネージャーの一覧でesp8266 boardsが見えていますが、
 初めての場合見えていません
 見えていたらボードマネージャーのインストールは不要です)

3

お好みのバージョン(詳細は次節にて)を選んでインストールします。

4

インストールが終わったら
ツールからボードからESP8266 Boardsを選んだ先のところから
Generic ESP8266 Modulesを選択します。

5

ここまでで設定終わりです。

(2)ESP-WROOM-02との通信設定

続いて、ツールから設定条件を設定します。ここで先ほどインストールした
ボードマネージャーのバージョンによって設定項目が違ってきます。
大まかには、新しければ新しいほど、設定項目が多くなります。。。

基本は、前回メモした

(#時刻表示#)  -> SPI Speed : 40MHz
(#時刻表示#)  -> SPI Mode : DIO
(#時刻表示#) -> SPI Flash Size & Map: 16Mbit(512KB+512KB)

↑の情報と、SPI  Flash Size & Map: 16Mbit(512KB+512KB)より


flash_size arg  


Number of OTA slots


OTA Slot Size


Non-OTA Space


2MB


2


512KB


1024KB

↑から、16Mbitは2Mbyte
OTAは512KB、それ以外のスペース(FSとかSPIFFSとかと言われる)が1024KBの情報

USBシリアルの

 TX, RX, GNDの3ピンしか使用できません。
 DTR利用しません

↑の情報の組み合わせできまります。

以下、設定の少ない古いバージョンから見ていきますが
記載無い箇所はデフォルト(初期値)のままで良いと思います。

*ver 2.3.0

画面中ほどの
Flash sizeを2M(1M SPIFFS) 
↑今回のメモリが、2Mバイトで、OTAは記載されておらず、それ以外のスペースが1Mバイトなので

7

Flash ModeをDIO
Flash Frequencyを40MHz
Reset Methodをckで(少なくともnodemcu形式では無いので)

8 

*ver 2.4.2

画面中ほどの
Flash sizeを2M(1M SPIFFS) 
↑今回のメモリが、2Mバイトで、OTAは記載されておらず、それ以外のスペースが1Mバイトなので

9

Flash ModeをDIO
Flash Frequencyを40MHz
Reset Methodをckで
(nodemcu形式では無く, dtrは使わないが、deep sleepのリセットは使うのでnoneでもない
 という消極的選択)

10

Ver 2.5.2 インストール失敗につき確認できませんでした。

Ver 2.6.3

画面中ほどの
Flash sizeを2MB(FS:1MB, OTA:-51KB) 
↑今回のメモリが、2Mバイトで、OTAは51KBで、それ以外のスペースが1Mバイトなので

11

Flash ModeをDIO
Flash Frequencyを40MHz
Reset Methodをno dtr (aka ck)で
(nodemcu形式では無く, dtrは使わないが、deep sleepのリセットは使うのでno noではなさそう
 古いバージョンではckで動いていたので多分これ、という消極的選択)

12

Ver 2.7.4(Ver 2.6.3と同じっぽい)

画面中ほどの
Flash sizeを2MB(FS:1MB, OTA:-51KB)
↑今回のメモリが、2Mバイトで、OTAは51KBで、それ以外のスペースが1Mバイトなので

13

Flash ModeをDIO
Flash Frequencyを40MHz
Reset Methodをno dtr (aka ck)で
(nodemcu形式では無く, dtrは使わないが、deep sleepのリセットは使うのでno noではなさそう
 古いバージョンではckで動いていたので多分これ、という消極的選択)

14

ver 3.0.2

設定項目がver2に比べてだいぶ増えていますが、ポイント箇所はこれまでと同様で

画面中ほどの
Flash sizeを2MB(FS:1MB, OTA:-51KB) 
↑今回のメモリが、2Mバイトで、OTAは51KBで、それ以外のスペースが1Mバイトなので


15_20230105203901 

Flash ModeをDIO
Flash Frequencyを40MHz
Reset Methodをno dtr (aka ck)で
(nodemcu形式では無く, dtrは使わないが、deep sleepのリセットは使うのでno noではなさそう
 古いバージョンではckで動いていたので多分これ、という消極的選択)

16_20230105203901

以上となります。
次回はプログラムの書きこみにトライしてみます。

 

 

2022年11月28日 (月)

環境データ取得のIoT化(1)ESP-WROOM-02の準備(Arduino IDE 1.8 との通信準備)

室内の気温・湿度・気圧について、取得データを遠隔でみることができるように設定していく備忘録です。

大まかには

1)ESP-WROOM-02でデータ取得し、Wifiでクラウドに送る
2)クラウドで表示する

の流れにします。まずはESP-WROOM-02のセットアップから行います。

(1)使用機材
*秋月電子のWi-Fiモジュール ESP-WROOM-02 DIP化キット
(AE-ESP-WROOM-02)


ピンをはんだ付けして出来上がりです。

*3.3Vで通信できるUSBーシリアルコンバーター
AE-ESP-WROOM-02とパソコンの間で通信するために必要です。
AE-ESP-WROOM-02は3.3V駆動のため、3.3Vで通信できるものが必要です。
#5V駆動のピンをESP-WROOM-02へ刺すと壊れますので注意してください。
amazonでみつけた3個700円の
KKHMF 3個 CH340モジュール STC マイクロ コントローラー ダウンロード USBターンTTLシリアル
にしました。

こちらDTR, RST信号がなく、TX, RX, GNDの3ピンしか使用できません。
ESP-WROOM-02ですが、DTRやRST信号が使えると
プログラムの書き込み制御がスマートにできます。
今回はあえてDTRを使わない、単純なやり方でトライしていきます。

(2)ESP-WROOM-02の結線方法
DC3.3V電源は別途用意してあると仮定しまして、
無線LANのユニットを上にして、上から順番に

左側は(下図では下側を左から順に)
3V3:3.3V
EN:10kΩの抵抗を介して3.3V
IO14:無し
IO12:無し
IO13:無し
IO15:10kΩの抵抗を介してGND
IO2:10kΩの抵抗を介して3.3V
IO0:10kΩの抵抗を介して3.3V(とGNDに直結*1*2)

右側は(下図では上側を左から順に)
GND:GND直結
IO16:RSTと直結(*3)
TOUN:無し
RST:10kΩの抵抗を介して3.3V
   +IO16と直結
   (+ハードのリセット時にGNDへ一瞬だけ直結*1)
GND:USBシリアルのGND
TXD:USBシリアルのRXD
RXD:USBシリアルのTXD
IO4:無し

注意事項
*1 ESP-WROOM-02にプログラムの書込みか実行か、どちらを実施するか指定する
   ピンになっています。今回の接続試験では、IO0,RSTともにGNDには接続しない形に
  しておいてください。
*2後ほど説明しますが、
  ESP-WROOM-02のプログラム書き込み時、IO0はGNDに接地する必要があるのですが、
  このとき10kΩの抵抗を介して3.3Vにも接続しておかないと、
  書き込みエラーが発生することが多いのでご注意ください(エラーの発生しないこともある)。
*3 こちらも後ほど、ESP-WROOM-02をDeepSleepモードで動かすために必要なので、
  あらかじめ結線しておきました。   


Esp_

(3)シリアル通信の接続試験(Arduino IDE 1.8.##の場合)
早速ですが、パソコンからArduino IDEを使って通信テストをします。
ESP-WROOM-02ですが、電源を入れた直後の通信速度は74880bpsです。
この通信速度が厄介で、手元のwindows10に入っている、tera termや
Arduino IDEのver2以降では74880bpsの通信ができませんでした。
Arduino IDEの旧バージョン(1.8.##)では設定できますので
そちらでみていきます。

ESP-WROOM-02の結線について、上記(2)の*1の項目ですが、
 IO0とRST共にGNDから外しておいてください。

1)まずUSBシリアルをパソコンに接続して、COMポートの情報を入手した上で
Arduino IDEの[ツール]メニュー~[シリアルポート]で目的のポートを選択します。

2)シリアルポートのデータを読み取ります。
Arduino IDEの[ツール]メニュー~[シリアルモニタ]を起動し、改行コードをCR+LFに
ボーレートを74880bpsに設定します。その後ESP-WROOM-02の電源をいれると、
シリアルモニタに以下のようなメッセージが流れると思います。

(↓下記の時刻は電源を入れた時刻に依存します)

---------------
13:49:00.660 ->  ets Jan  8 2013,rst cause:1, boot mode:(3,0)
13:49:00.660 ->
13:49:00.660 -> load 0x40100000, len 2592, room 16
13:49:00.660 -> tail 0
13:49:00.660 -> chksum 0xf3
13:49:00.660 -> load 0x3ffe8000, len 764, room 8
13:49:00.660 -> tail 4
13:49:00.660 -> chksum 0x92
13:49:00.660 -> load 0x3ffe82fc, len 676, room 4
13:49:00.706 -> tail 0
13:49:00.706 -> chksum 0x22
13:49:00.706 -> csum 0x22
13:49:00.706 ->
13:49:00.706 -> 2nd boot version : 1.7(5d6f877)
13:49:00.706 -> SPI Speed : 40MHz
13:49:00.706 -> SPI Mode : DIO
13:49:00.706 -> SPI Flash Size & Map: 16Mbit(512KB+512KB)
13:49:00.706 -> jump to run user1 @ 1000
13:49:00.706 ->
13:49:00.798 -> rf cal sector: 507
13:49:00.798 -> freq trace enable 1
13:49:00.798 -> rf[112] : 03
13:49:00.798 -> rf[113] : 00
13:49:00.798 -> rf[114] : 01
13:49:00.798 ->
13:49:00.798 -> SDK ver: 2.2.1(6ab97e9) compiled @ Jun  7 2018 13:59:14
13:49:00.798 -> phy ver: 1136_0, pp ver: 10.2
13:49:00.798 ->
13:49:00.798 ->
13:49:00.798 -> r)

---------------

のようなアウトプットが表示されると思います。
表示されたらシリアル通信はひとまずOKです。

ここで、-> 2nd boot version : 1.7(5d6f877)以降の3行の情報
------------------------------------------
(#時刻表示#)  -> SPI Speed : 40MHz
(#時刻表示#)  -> SPI Mode : DIO
(#時刻表示#) -> SPI Flash Size & Map: 16Mbit(512KB+512KB)
------------------------------------------
が、プログラム書き込み時に必要になりますのでメモしておいてください。
なおこの情報は、一度プログラムを書き込むと見えなくなります
(見る方法は無いわけではないですが、ここでメモしておいた方が楽です)。

最終行で文字化けしていますが、通信速度が115,200bpsに変わったためです。
115,200bpsではATと
表示されると思います。
今回は使用しませんが、これ以降はATコマンド(詳細はググってください)を
受け付けるようになっています。

flsah sizeの内容については、espressifのドキュメントに書かれています
(ちなみにesp-wroom-02はEspressif Systems社のESP8266EX(SoC 32bit MCU)を搭載していて、
  espはespressifの頭3文字)。
同社のESP8266のAT Instracution setによるとフラッシュサイズについて
2Mbyte(=16Mbit)には
 16 Mbit-C1:16 Mbit Flash, Map: 1024 KB + 1024 KB
 16 Mbit:16 Mbit Flash, Map: 512 KB + 512 KB
4Mbyt(=32Mbit)には
 32 Mbit-C1:32 MBit Flash, Map: 1024 KB + 1024 KB
 32 Mbit:32 Mbit Flash, Map: 512 KB + 512 KB
があるようです。
今回のチップは枝番-c1がつかない16 MBitのタイプに相当します。
512kb+512kbの512kbの中身は
こちらのページの下の方
「SPI Flash Rom Layout (with OTA upgrades)」
に記載されています。

メモリがどのタイプに当たるかの情報は次節のArduino IDEとの接続時の設定で必要となってきます。
次節で記載しますが、Arduino IDEでのタイプごとのフラッシュサイズの設定は同社のこちらに記載されていて
OTA(詳細はググってください)を使用するならば以下の通りとなるようです
(ちなみにarduino ide側のflash sizeの設定はOTA無しがありません)。


flash_size arg  


Number of OTA slots


OTA Slot Size


Non-OTA Space


2MB


2


512KB


1024KB


4MB


2


512KB


3072KB


2MB-c1


2


1024KB


0KB


4MB-c1


2


1024KB


2048KB

3)リセット動作の確認をします
各配線は2)のままで、RSTピンから配線を出して、一瞬だけGNDに接続してから離すと
上記2)とほぼ同じメッセージ(ただし1行目だけが下記の通り)が流れると思います。

(#時刻表示#) ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)

1行目のメッセージのメッセージの中のcause:ですがザクっと

cause:2はリセットピンを使ってリセットしました
cause:1はリセットピン以外でリセットしました

という意味と思っておけば大丈夫です。

(4)プログラム書き込み用の配線準備
次にプログラム書き込み用に配線を変更します。

ESP-WROOM-02の結線について、上記(2)の*1の項目ですが、
 IO0のGNDはつないでおいて、
 RSTのGNDは外しておいてください。
またESP-WROOM-02の電源はいったん外してくだし。

1)まずUSBシリアルをパソコンに接続して、COMポートの情報をゲットし
Arduino IDEの[ツール]メニュー~[シリアルポート]で目的のポートを選択します。

2)シリアルポートのデータを読み取ります。
Arduino IDEの[ツール]メニュー~[シリアルモニタ]を起動し、改行コードをCR+LFに
ボーレートを74880bpsに設定します。
その後ESP-WROOM-02の電源をいれると、シリアルモニタに

ets Jan 8 2013,rst cause:1, boot mode:(1,7)

のようなアウトプットが表示されると思います。
表示されたらシリアル通信はひとまずOKです。

GND線について、IO0とRSTの両者ともGNDにつないであると
電源を入れてもアウトプットは出てきません。その場合はRSTのGND線を
抜いてからやり直してください。

3)ESP-WROOM-02のリセットについて
RSTピンのGND線の話題がでましたが、RSTピンについて
GNDピンに接地してから離すと、ハードウェアリセットが掛かります。
RSTピンによるリセットが掛かった場合、シリアルモニタの表示が

ets Jan 8 2013,rst cause:2 boot mode:(1,7)

のように,cause:の数字が2となりますので試してみてください。
ここまでで、パソコンからArduino IDE 1.8を介したESP-WROOM-02との通信の準備ができました。
次回はArduino IDE側の準備を行います。

2019年10月20日 (日)

etopo1を利用してQGIS3で海底地形図を描く

前回 はQGISで海岸線を描きましたが、

今回は海底地形図を描きます。

(1)海底地形データの入手

(2)QGISでラスタデータとして取り込み

の順です。

 

(1)海底地形データの入手

今回はNOAAのetopo1を使用します。etopo1は1分(だいたい1.8km)刻みの全地球の標高値のデータです。

以下のページから入手可能です。

https://www.ngdc.noaa.gov/mgg/global/global.html

データは4種類ありまして、

・南極と北極の標高値を氷の表面にするか、氷の下の地面にするか

・データの場所を、グリッドの真ん中にするか、セルの真ん中にするか

の組み合わせになります。下のグリッドかセルかについては

こちらに解説があります。

https://www.ngdc.noaa.gov/mgg/global/gridregistration.html

とりあえず今回は、氷の表面(ETOTP1 ice Surface) で、

セルの真ん中(cell registrated)を選択しておきます。

QGISで使用するので、georeferenced tiff形式をダウンロードします。

数100メガありますのでご注意ください。

出てきたファイルを解凍して、どこかのフォルダにまとめて収納します。

 

(2)QGISでの描画

(2-1)「レイヤ」→「レイヤの追加」→「ラスタレイヤの追加」から

1rasta

出てきた画面で、先ほどのetopo1(拡張子tiff)を選択します。

2choice 

そうすると、画面左側のレイヤのところに、上で選択したetopo1のファイル名のレイヤが、

画面中に地形図が表示されます。

3result

etopo1のファイルのプロパティで、測地系を確認してみます。

画面左側レイヤの表示されていところで、etopo1のファイル名のところを右クリックして

プロパティを表示させ、出てきた画面の左上の「情報」を選択すると測地系などが確認できます。

EPSG 4326のWGS84になっていると思います。

4propertiy

(2)海岸線を重ねて描いてみる

前回 描いた海岸線を重ね書きしてみます。

前回の海岸線データは「ベクタ形式」(今回のetopo1はラスタ形式)なので

前回同様「レイヤ」→「レイヤの追加」→「ベクタレイヤの追加」で

海岸線データを選択するとご覧のように海岸線が上書きされます。

5coast

出てこないよ!という場合は、レイヤの書き順がずれている可能性があります。

画面左側レイヤの欄内を確認して、海底地形のレイヤ(etopo1)よりも

下に海岸線のレイヤ(line)が表示されている場合は、海岸線を一番奥に描いてから

海底地形を上に重ね書するということが行われます。

6reverse

この海岸線のレイヤをドラッグして海底地形のレイヤの上に置き換えると

海底地形を一番奥に書いてから、海岸線を描くという順になりますので

海底地形が表示されると思います。

7recoast

海岸線のレイヤのプロパティで確認できますが、海岸線のファイルも

測地系がEPSG4326 WGS84となっており、etopo1と一致しているため

海岸線の場所も正しく表示されていると思います。

 

 

 

 

 

 

 

 

2019年10月16日 (水)

QGISで海岸線を描画する(GMTのpscoast的なこと)

  題名の通りなのですが、QGISで海岸線を描いてみます。

GMTでいうとpscoast的なことをします。

 

*はじめに

(0-1)QGIS のインストール

まず qgis を web からダウンロードし、インストールします。

アドレスはこちらhttps://www.qgis.org/ja/site/forusers/download.html

長期安定版 (2020/6現在 Ver3.10) を選択してください。

 

(0-2)海岸線のデータについて

国内データでしたら、

たとえば国土交通省のGISサイトから

http://nlftp.mlit.go.jp/index.html

国土数値情報ダウンロードサービスへ入って

http://nlftp.mlit.go.jp/ksj/index.html

海岸線データのダウンロードコーナーへ入ると

http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-C23.html

入手可能です。今回は全世界のデータを使うので別サイトから行きます。

 

*海岸線を描こう

(1)海岸線データの入手(2)QGISで海岸線を描いてみる

の順に進めます。

 

(1)海岸線データの入手

全世界データの海岸線を探したところ、OpenStreetMapプロジェクトの派生で

海岸データを抽出してくれているサイトがありました。

https://osmdata.openstreetmap.de/

上のサイトからcoastlineコーナーへ入ると

https://osmdata.openstreetmap.de/data/coastlines.html

shapefile形式(QGISでいうところのベクタ形式)でダウンロードできます。

投影図法がWGS84かメルカトル図法かを選ぶことができますが、

WGS84が便利だと思います。QGIS内で「再投影」という機能を

使うと相互変換可能ですので、あまり気にしないで大丈夫です。

数100メガバイトありますので、ご注意ください。ZIP形式ですので

解凍して、すべてのファイルを一緒のフォルダに保存しておきます。

 

(2)QGISで海岸線を描いてみる

(2-1)保存したcoastlineデータをベクタとして取り込む

「レイヤ」→「レイヤの追加」→「ベクタレイヤの追加」と進みます。

01 

出てきた画面の「ソース」で、先ほど保存した海岸線データを選択します

拡張子は.shpです。ダウンロード時にファイル名を変えていなかったらline.shpだと思います。

選択したら「追加」をクリック

02selectrev

(2-2)表示を見ます

画面に戻ると、こんな具合に海岸線が表示されていると思います。

03window

(2-3)測地系を確認する

今回(1)でWGS84をダウンロードしましたが、その測地系を確認してみます。

画面左側のレイヤーエリアの、現在表示しているレイヤの箇所で右クリックして

プロパティを選択

04proper

出てきた画面で「CRS」のところに情報が載っています。

今回のファイルは、「EPSG:4326 - WGS 84 - 地理学 」となっています。

基本的はこのように、ダウンロードしたファイルセット内に測地系の情報が書き込まれていて

QGISに取り込んだ際に自動的に読み込まれます。

05kakunin

(2-4)投影方法を変えてみる(メルカトル図法を試してみる)

(1)のところで、メルカトル図法と相互変換できます、と記載しましたので

そちらの操作を試してみます。

画面左側レイヤーのところで、海岸線データを選択した状態で

「ベクタ」→「データ管理ツール」→「レイヤの再投影」と進みます。

06_1warp

出てきた画面で「変換先CRS」の右側になるボタン(CRSの選択)をクリックします

07crschoice

出てきた画面の上側の「フィルター」欄に[3857]と、おまじないを打ち込むと

世界の座標参照系欄にMercator WGS84 Pseudo-Mercator EPSG:3857

がでてくると思いますので、そちらを選択して「OK」をクリック

08choice

戻った画面の「変換先CRS」に先ほど選んだEPSG:3857 WGS84 Pseude-Mercator

が入っていることを確認してから「実行」をクリック

09kakunin

「実行」の上のバーが作業の進行とともに伸びて行って、1分ぐらいすると

完了します。完了すると画面左側レイヤーのところに

「再投影された」というレイヤーができています。

10exchange

このレイヤーのところで、もともとあったレイヤー(ここではline)のチェックボックスを外して

「再投影された」レイヤーのチェックだけのコスト、メルカトル図法の図が出てきます。

12check

少し上の、変換先のCRSを変更することで、いろいろな投影方法にすることができます。

検索でつかったおまじないの数字はEPSGコードといわれるものです。

使っているうちに、いろいろ出てくるとおもいますが、

4326ぐらいがよく出てきます。詳しくは検索してく調べてください。

 

 

 

 

 

 

 

 

 

 

 

 

2019年10月15日 (火)

QGISで利用するベースマップの利用規約

QGISですが、立ち上げると真っ白な画面が表示されるところからスタートします。

立ち上げ後、通常「ベースマップ」と呼ばれる、下地になる図を表示させてから

作業開始すると便利です。このベースマップとして、

たとえばgoogle mapなどが使用できすが、

実際に使用する場合は、著作権に注意する必要があります。

使用許諾についてわかりやすいベースマップとして

(1)国土地理院地図と(2)Open Street Mapがあります。

 

(1)国土地理院地図

利用規約はこちら

https://www.gsi.go.jp/kikakuchousei/kikakuchousei40182.html

下記の「国土地理院の地図の利用手続」というページに詳しく書かれています。

https://www.gsi.go.jp/LAW/2930-index.html

こちらのページ内の

「1.国土地理院の地図の利用手続 (測量成果の複製・使用申請フロー)」

の箇所で、フローチャート式で使用方法の説明がありますので一読すると便利です。

 

(2)OpenStreetMap

ホームページはこちら

https://openstreetmap.jp/

利用規約についてはこちらが便利です

https://www.openstreetmap.org/copyright

 

 

 

 

 

2019年10月 9日 (水)

GMT5.4.5 windows64ビット版 インストーラー使用でのインストール

windows7にGMTのver5.4.5を、インストーラー版でインストールしました。

手順は

----------------------------------------

(1)GMTインストーラーを入手

(2)windowsへのインストール

(3)ps形式のファイルを開くソフトを用意

  acrobatなどを持っていれば不要です。

  今回はghostscriptとghostviewをインストールしまた。

----------------------------------------

となります。

 

(1)GMTインストーラーの準備

ハワイ大のホームページへ取りにいきます。

場所はこちらのページの

http://gmt.soest.hawaii.edu/projects/gmt

ダウンロードタブの箇所になります。

http://gmt.soest.hawaii.edu/projects/gmt/wiki/Download

上記リンクに飛んで、ネットの速度によりけりですが

5から10秒ほど待つと、ダウンロード先の一覧がでてきます

このページで、gmt-5.4.5-win32.exeが32ビット版windows用インストーラー

gmt-5.4.5-win64.exeが64ビット版インストーラーです。

今日現在GMT6.0の評価版がおいてありますが、今回はGMT5にします。

ダウンロードしたファイルは適当な場所においておいてください。

 

(2)windowsへのインストール

ダウンロードしたファイルをダブルクリックすればインストールが始まります。

画面を順を追ってみていくと

(2-1)オープニング画面

1open

(2-2)  ライセンス契約

2licence

(2-3)パスをきるユーザーの設定(今回はall userにしました)

3path

(2-4)インストールするコンポーネントの選択(とりあえず全部)

6component

(2-5)スタートメニューフォルダへの登録(とりあえずそのまま)

5menu

(2-6)インストールフォルダの選択

  とりあえずそのままでもかまいませんが、インストール後に、カットアンドペースなどで

 インストールしたフォルダを変えてしまうと、(2-3)の設定と矛盾が生じ

 立ち上がらなくなりますのでご注意ください。

4folder

(2-7)インストールが始まります。

7inst   

(2-8)インストール完了です。

8instfinish

(3)ps形式のファイルを開くソフトを用意します。

今回はghostscript9.27とgsview5.0をインストールしますが、

acrobatなどをお持ちで、psファイルが開けるようでしたらインストール不要です。

基本的にghostscript9.27→gsview5.0の順でインストールしてください。

・gsview5.0だけインストールすると「ghostscriptが必要です」というようなエラー表示がでてきます。

・gsview5.0を先にインストールした後、ghostscript9.27をインストールしてみましたが

 一応問題なく動いています。。。

 

(3-1)ghostscript9.27のインストール

(3-1-1)インストーラーの入手

こちらのページで、

https://www.ghostscript.com/

右側のdownloadタブをクリックして

https://www.ghostscript.com/download.html

ghostscriptをクリックすると、ダウンロードサイトに行けます。

https://www.ghostscript.com/download/gsdnld.html

windowsの32ビット版か64ビット版かでインストーラーが異なります。

またpublicとcommercialのライセンスがありますので、適宜選択してダウンロードします。

(3-1-2)インストール

ダウンロードファイルをダブルクリックするとインストールが始まります。

・オープニング画面があって

11open

・ライセンス確認

  12license

・フォルダの選択

13folder

・コンポーネントの確認(とりあえずデフォルトのままにしました)

14choice

で「finish」をクリックしたら完了です。

 

(3-2)gsview5.0のインストール

(3-2-1)インストーラーの入手

こちらのページの

http://www.ghostgum.com.au/

GSview5.0をクリックすると

http://www.ghostgum.com.au/software/gsview.htm

ダウンロードサイトに行きますので、32ビット版か64ビット版を確認してダウンロードします。

(3-2-2)インストール

インストールの画面を並べます。

・インストーラーの解凍がはじまります。

21oepn

・言語を選びます(GSViewのバージョンによっては日本語化できるものもあります。

必要でしたらググってください。)

22language

・「Ghostscriptが必要ですよ」、との注意

23attention

・ファイル形式の関連付け、psとの関連は必要だと思いmますが、

pdfについてはacrobat readerなどが入っていれば不要です。

24relation

・インストールフォルダの選択

25folder

・インストールフォルダの確認

26kakunin

・スタートのところなどに登録するかの設定

27menu

・インストールがはじまって、完了の画面

28finish

 

以上でインストールが完了しました。

 

 

2019年10月 8日 (火)

XYZ形式の海底地形図を3Dプリンタでプリントする

4年ほどご無沙汰しておりました。
2年ほど前、研究室に3Dプリンタが来て、立体物がプリント出来るようになってきています。
今回は3Dプリンタで、海底地形図を3Dプリントしよう!、と色々ためした備忘録です。

 

元のデータは、1行毎に緯度、経度、水深が1行ったでーたが
何万行かつらなるcsvデータ(いわゆるxyz形式)です。

 

プリントルートとして3つためしました。
(1)xyz形式を点群データと見なして
-------------------------------------------------------
(1-1)MeshLabなど点群処理ソフトで海底地形の薄皮一枚(いわゆるサーフェス)のデータをつくる
(1-2)Fusion360など3D cadで薄皮に厚みをつけて、実体化(いわゆるソリッド)のデータをつくる
(1-3)stl形式で保存して3Dプリンタで印刷
-------------------------------------------------------

 

(2)XYZ形式をGMTで等高線化して
-------------------------------------------------------
(2-1)Fusion360などの3D CADで押し出して、実体化(いわゆるソリッド)のデータをつくる
(2-2)STL形式で保存して3Dプリンタで印刷
-------------------------------------------------------

 

の2つをまず考えたのですが、どちらもソリッド化がうまくできませんでした。
(2-2)は気合いで通せますが、等高線一つに1押出し、という操作がシンドイです。

 

(3)FOSS4G系のソフトであるをQGISを使用して
 XYZ形式をDEM形式であると見なして
-------------------------------------------------------
(3-1)点群データを読み込んでレイヤを作成し
(3-2)QGISの機能でレイヤ内のデータをデータ補間して、3Dっぽい表示にする
(3-3)QGISのアドイン(DEMto3D)でstl形式で出力
-------------------------------------------------------
としたら一応プリントできました。

 

(3-2)’からの別ルートとして
QGISのアドインのqgis2threejsを使用するとSTL形式まで出力できる
という情報もあったのですが、私のQGISのバージョン(3.4)では
qgis2threejsビューアーでの表示はできても、STL形式で出力する方法がみつかりませんでした。

 

以下(3)の手法を記載します。
-------------------------------------------------------
xyzについて、x、yは小数点形式の緯度経度
(133.423423度、32.32423度みたいな形)
zは水深のmからスタートしました。

 

(3-0)まずqgisをwebからダウンロードし、インストールします。アドレスはこちら
https://www.qgis.org/ja/site/forusers/download.html
今回長期安定版の3.4を選択しました

 

(3-1)早速qgisを立ち上げ、
1)「プロジェクト」→「新規作成」で新しいプロジェクトをつくって
2)「レイヤ」→「レイヤの追加」→「デリミティッドテキストレイヤ」の追加を選択し出てきた画面で
・[フィアイル名]のところで、XYZ形式の元データを選択
・[レイヤ名]を適当につける。何もしないとファイルの張子名になるのかな?
・[ファイル形式]は適切なものを選択(今回はCSV形式でやりました)
・[レコードとフィールドのオプション]で無視するヘッダの行数を選択(今回は0でした)
・[ジオメトリ定義]でxフィールド(東西経度の列)、Yフィールド(南北緯度の列)を選択
 [ジオメトリのCRS]でxyzデータの測地系を選ぶ(今回はWGS84 EPSG:4236でした)
・[レイヤ設定]はデフォルトのまま
で「追加」をクリックすると
画面中央に、xyzファイル内の点がxyプロットされると思います(深度情報は無し)

 

(3-2)データ補間します。
1)画面左側「レイヤ」エリア内に2)で指定したレイヤ名が出ていると思いますが
 その左側のチェックボックスにチェックが入った状態で、レイヤ名をクリックすると
 チェックボックスごと反転し選択状態になりますので、その状態で
 「プロセッシング」→「ツールボックス」と選択すると画面右側にツールボックスがでてきます
2)ツールボックスから「データ補間」の右向き矢印をクリックすると下向き矢印に代わり
 「IDW補間」「TIN補間」「ヒートマップ・・・」がでてきます。、
 補間ですがIDWが調子良さそうです
3)「IDW補間」をダブルクリックすると、新しいウインドウがでています。パラメータタブで
・[ベクタレイヤ]を(3-1)でつくったレイヤを指定
・[補間する属性]で深さ方向の列を選択
・1行下の枠の右上に出ている+マークをクリックすると、
 ベクタレイヤ、属性、タイプというウインドウの中に、上で指定したレイヤと深さ方向の列がでてきます。
 その状態でタイプは「ポイント」を選択
・[距離係数]はあとで出てきた図で適当に調整しますが、3~10ぐらいかなぁ、
・領域は右側の...の場所をクリックすると、「キャンパス領域を使用」「キャンパス上で領域を指定する」「レイヤの領域を使う」
 が選べますので、プリントしたい箇所を適当にえらんでください。
 ちなみに「キャンパス上で領域を指定する」を選択すると、2)でプロットされた画面にいけますので
 ここでプリントしたい場所をマウスで指定して話すと、領域に数値が入ります。
・[出力クラスタサイズ]で地形データの出力する細かさを指定します。
 例えば行に数字をいれると、上で指定した領域の面積に合わせて、自動的に列が決ります。
以上設定が終わりましたので、「実行」をクリックすると、地形図が計算されて、画面中央に(おそらく白黒で)表示
されるとともに、画面左側のレイヤに「補完された」というレイヤがでてきます。
画面中央の図がきれいにかけるまで、適当にパラメータを調整してください。

 

(3-3)最後にSTL形式の出力にかかります。
1)STLの出力にはプラグインのDEMto3Dを使用しますのでインストールします
・”インターネットに接続した状態で”
 「プラグイン」→「プラグインの管理とインストール」を選択すると
 プラグインがずらっと出てきます。
・「すべてのプラグイン」をクリックすると名前順に一覧がでますのでその中からDEMto3Dにチェックをいれて
 「プラグインをインストール」をクリックします。これでプラグインがインストールできました
2)DEMto3Dを使ってSTL形式で出力させます。
・「ラスタ」→「DEMto3D」→「DEMto3Dprinting」をクリック
・[Layer to print]で5)にて描いた画像のレイヤを選択
・[print extent]で○っぽいマークをクリックすると、上のレイヤの緯度経度が自動で入ります
・[model size]でspcingは推奨の0.2を
 sizeはプリントしたい大きさをmmで入力します
 scaleはそれにあわせて自動で1/1000とか表示してくれます
・[exaggeationterrain]でz軸の深さ方向の拡大量を入力、どうも10が最大のようです。。。
・[height base]で地形データをプリントするときのゲタを何m分はかせるか入力(0でもいいです)
以上で「EXPORT to STL」をクリックして、
成功すると、STLをはき出すファイル名が聞かれますので「保存」をクリック
失敗すると、「attention fill the data correctly」が出ますので、きちんとデータを入力したり
レイヤデータを正しく選択するなどの処理をして、成功できるよう頑張りましょう。

 

このデータを3Dプリンタのスライサーにもっていけばプリントできますが
出てきた海底地形データは、深さ方向が逆向き、深さ方向の拡大が中途半端
な状態だと思います。きれいにプリントするためには
xyzのデータに戻って、
・深さデータを、どこかの海底面からの高さデータに変換
・高さデータを数倍程度拡大しておく
の処理をした後で、描画するときれいにできると思います。

 

今回高知県沖合の海底データを、ダビンチの2.0 Duoで印刷したらこんな感じになりました。
また時間があれば画像付で書きます。

Kochioki

 

 

 

 

 

 

2015年8月 1日 (土)

ホームページアクセス数

アクセス数が5000を超えていました。研究紹介を少し追加しました。業績の年代区切りを整理してみました。

2014年10月16日 (木)

ホームページのアクセス数

台風明けにふと気がついたら3000アクセス超えていました。 いろいろ頑張ります。

2014年3月17日 (月)

ホームページのアクセス数

この2週間ほど色々イベントがありましたため、ホームページのアクセス数が伸びて2000アクセスを超えました。

«クレート