2022年3月26日土曜日

WebGIS

WebGIS は、商用ソフトでのみ利用しています。

先日、先輩からオープンソースのみで実装された海外の例が載っている文献をいただき、手を出してみることにしました。
手元の Windows10 にてサーバーを立ててみます。Win でもオールインワン環境が配布されているのですね。便利な時代です。

MapServer for Windows (MS4W) 4.0.5
国土地理院のタイルの表示はできましたが、PostGIS/PostgerSQLとの接続がダメ。TinyOWS、FastCGI共にうまく機能しません。

MapTilerServer 4.0.0
こちらは PostGIS extention が入っていないとのことでつながりません。DBeaver Community Edition 21.3.5 より extention を入れると一瞬つながりましたが、その後は2度とつながりませんでした。よくわからない挙動です。

SQL利用ではなく、GeoJSON なら表示できるか?
以下の方がGitHUBとHPでコードを公開されていたので利用。
https://day-journal.com/memo/

1週間ほど試行錯誤し、表示できました。これ、素晴らしいツクリです。npm run dev のみで処理してくれます(同じポートを使う mapserver を動かし続けていて、最初は正常動作しませんでした)。イマドキが凄いのか、この方が凄いのかわからないほどの初心者なのですが、上の2つに比べて圧倒的に簡単でした。しかもMIT。感謝です。

この方の記事にありましたが、ライブラリによってはブラウザで数十万のポイントを数秒で表示できる時代になっているとのこと。素晴らしい技術です。
https://qiita.com/dayjournal/items/86e1ca065e03ea88e0fb

PostGIS, PostgerSQL, MapServer, OpenLayers, MapLibre GL JS, Node.js。全て駆け足で通り過ぎたので、手を動かしながら徐々に学んでいきましょう。


2022年3月20日日曜日

conda で整理?

以前から explorer が不調の Windows10。

ここ数日でさらに悪化し、コピーや削除、右クリックからのコンテキスト表示に異常に時間がかかるようになりました。
miniconda のプロンプトも起動に数分かかる状態になってしまったので、ひとまず miniconda のみ入れなおすことにしました(explorerも入れなおせたら良いのですが)。

envs フォルダのみ避難させてからアンインストール。が、ここでも途中でフリーズ。手動で削除してから入れ直し。envsフォルダを戻してから起動!
うーん、治らず。

あきらめて base の 環境を保存していた yml、txt ファイルから復活!(* ̄▽ ̄)保存していたのだ、と思いきや、base はダメらしい。拒否されます。無知な私。
yml の中の環境名と保存先(最初と最後の行)を変更して、環境を復活させました。

次に、仮想環境の復元。yml などを作る前にアンインストールしてしまいましたので、envs フォルダを元に戻してから、conda env list で確認。仮想環境を表示できませんが、activate は動きました。で、Jupyter。が、立ち上がりません。
c:\Users\username\.conda\environments.txt
に仮想環境のパスを追加してもダメ。

なら、先に仮想環境を作って、envsの中身を後からコピーしたらどうか?
これもダメ。きちんと conda で 整理しておけばよかった。

何か方法はあるのでしょうが、正攻法でymlを書き出していなかったのが失敗。
ま、必要な時に作っていきましょう。

******************************
PowerShell の起動が遅い。miniconda ではなく、こちらが引っ掛かっていました。

2022年3月17日木曜日

福島県沖地震

ちょうど昼間に昨年2月の福島県沖地震を整理していたのですが、1年ぶりに同じような場所で同規模の地震が発生。

その数分後に埼玉県。こちらも負けずに大きい。しかも相対的に浅い。次に豊後水道が揺れたときは驚かされましたが、また福島県~宮城県沖へ。

そろそろ宮城県沖地震が懸念されていましたが、関係するのでしょうか。深すぎかな。

大きな被害が出なければ良いのですが。

*****************
20220320  追記
埼玉の震源は、翌朝にはカタログから消えていました。 

 

2022年3月16日水曜日

conda で 整理

異なる PC で GeoPandas 0.10.2を動かそうとしてエラー。

調べてみると、fiona と GDAL の Ver. が高すぎたようです。

新たな仮想環境で以下をインストール
・Python3.7
・fiona 1.8.18
・gdal 3.2.2
・geopandas 0.10.2

これで shp をインストールしてもエラーが出なくなりました。

ついでに環境整理。

仮想環境のエクスポート
$ conda env export > aaa.yml

仮想環境のパッケージリストをエクスポート
$ conda list --export > aaa.txt

仮想環境削除
$ conda remove --name  bbb -all

不要なパッケージ等を削除
$ conda clean --all


2022年3月15日火曜日

gpu が動きません

TensorFlow で gpu が動きません!

以前、他の PC では動いていたコード。TF2ではなく、TF1のコードです。
DockerはTF1であっている。Driver の Ver が上がっているので、これか? Docker, TF, CUDA, Driver の Ver の組み合わせチェックか?と思いながら見直したのですが、おかしくない。

よく見ると、GPUの番号を指定するようにコードを作っていたのですが、それをすっかり忘れて存在しない番号を指定していました。おかしいのは自分。情けないですが、高確率である話でした。

時間をあけてコードを眺めてみると、いくつか修正したい点が出てきました。
まずは、SEED値の固定。
開発中にKerasを用いて再現可能な結果を得るには?
https://keras.io/ja/getting-started/faq/

keras から、tf.keras へ変更。
from keras.aaa import bbb  を
from tf.keras.aaa import bbb へ変更。

TF1 のコードを TF2 仕様へ。
これは、自動で TF2 に上げてくれるコードにかけてみましたが、ダメでした。早々に取りやめて TF1 の Docker を使用したのですが、いずれ2へ移行させたい。

confusion_matrix の追加。
以前は classification_report のみ表示していました。

コードを組む際には、最新版~なじんだ版くらいで組んでおき、時々メンテしないとすぐに使えなくなりそうです。私の頭の中もですが。

2022年2月27日日曜日

Geochemistry, Groundwater and Pollution の訳本

書店で面白そうな図書を見かけました。

中川(監訳)「環境保全のための地下水水質化学-地球化学,地下水および汚染-(上)·(下)」

国内の図書にしては珍しく PHREEQC の input data が載っている!と思いきや、ほぼ記憶にある内容。あれ?と思って表紙を見てみると、C.A.J. アペロ「Geochemistry, Groundwater and Pollution, 2nd edition」の翻訳書でした。日本語版が出版されたのですね。昨年発売ですので、遅れること16年。国内にも細々と使われている方がいらっしゃったようです。

この分野、国内には良い図書や文献がほとんどない状況。理解したいなら海外の知見に頼らざるを得ません。そうすると、最初から英語で学んだ方が良いように感じます。が、この洋書1冊を理解するのにかかった時間を考えると、最初は訳本を併用した方が効率的かもしれません。

ぜひ、hydrogeochemistry  の裾野を広げる契機となってほしいものです。

 

OpenFOAM と河川

OpenFoam で河川の計算に再トライ。

その中で、地下水を連成する際に必要な水位固定の境界条件を探していました。が、どうも、デフォでは実装されていないようです。古い情報ですが、groovyBC を使えば inlet 適用できそうでした。が、側方に張る場合はどうすべきでしょう?
https://www.cfd-online.com/Forums/openfoam-pre-processing/122819-inlet-boundary-condition-based-specified-water-level.html
2週間ほど調べましたが、良い設定が見つからず。
ひとまず、側方は不透水にしてin-out のみの境界条件を張って計算してみると、川と地下水の流れは定性的に計算できそうでした(中流で池のように溜まっていましたが)。山岳地の河川で上流端と下流端の流量の違いを表現したいような場合には使えるでしょう。
はい、眠らせましょう。

次は、河川・地下水間の移流拡散。これはinterFOAM をベースに作ろうかと思ったのですが、既に実装されていたようでした。
interFoam with scalar transport in single phase
https://www.cfd-online.com/Forums/openfoam-solving/234344-interfoam-scalar-transport-single-phase.html
相間のスカラー輸送を計算する場合と、単一相内での輸送は切り分けないといけないですね。当然なのですが、これを読むまで気づきませんでした。

早速、リンク先の tutorial を動かそうとしたのですが、コンパイルが必要でした。手元にあるのは native Win + ESI 版2012。Ubuntu の入った laptop が故障中のため、新しく環境をつくらないといけない?面倒だなと思いつつ一旦休憩へ。
シャワーを浴びながら、この方法では問題があることに気づきました。流速の問題です。OpenFOAM では Darcy-Forchheimer Equation を用い、porous media に対して抵抗としての圧力(勾配)や方向を補正し流速を導く計算でした。間隙比を陽に扱っていないため、実流速を計算できせん。汚染の計算はこれではダメ。地表流のみならOKですが、地下水部分の汚染の拡大が遅くなります。そもそも、地下水の量もダメでしょうね。目の詰まった遅い流れは対象外なのでしょう。

そうなると、汚染の計算は河川のみ。それなら iRIC を選択すべきとなります。はい、眠らせましょう。
見過ごした情報もあるかもしれませんが、3週間でたどり着いたのが「使えなさそう」。なかなか良いツールはありませんね。