kazubotのブログ

日曜プログラミング、都市伝説、METALなどなど!

javafxで水理計算プログラム

梅雨があけましたね!

 

暑い夏はひきこもってプログラミングだ!

 ということで!まずはじめにお断りしておきます。

この記事はjava歴2ヶ月の日曜プログラマーが書いてます。

 Qiita並みの情報は皆無です。たぶん

ぼくは、Pythonを1年程趣味でプログラミングしていました。

  • 有限要素法による構造計算
  • 水理計算プログラム
  • 点群断面計算
  • 点群座標変換
  • T型擁壁構造計算
  • etc…

これをみて、ぼくの職業は大体察しがつくでしょう。

 

業務上こんなソフトがほしいと思ったものを作っています。プロじゃありませんが、情熱をもってつくってます。

 

 現在は、pythonもたまにやりつつjavaを猛勉強中です!

はやく習得するため、pythonで作ったものをjavaで書き直そうと思い、第一段として水理計算プログラムをチョイスしました。

 

先ずこのプログラムの概要を紹介します。

ある対象地に降る雨水に対して、浸透施設を設置します。この処理能力について施設評価することを目的としたプログラムです。

その他に付加する主な機能はこんな感じです。

  1. 長野県の降雨強度式に対応させる。
  2. Userが手動で降雨量を入力できる。
  3. Guiプログム
  4. UserデータlO処理
  5. 施設検討グラフツール
  6. 帳票出力

 

Pythonでは、2 and 5の機能はありません。また、帳票出力については予めテンプレートTeXを書いておき、それをpythonで読み込み文字列処理、そしてバッチファイルでコンパイルという形をとっていました。

みなさんこういった帳票についてどうしてるのかな?

余談ですが、はじめはsphinxを使ってましたが細かな修正ができないこと、帳票としての見た目、そしてバッチ処理がいまいちわからなかったというのがあります。(pythonプロンプト)

現在はめぐりにめぐって見た目も美しいtexを使ってます。

しかし、texも環境がないところへ持っていったときにはコンパイルできません。

そのため何かいい方法がないものかと、リサーチしてる中で、Javaではjasper reportがよさそうでした。

したがってこのプログラムの帳票候補にします。

 

次に計算ロジックに使う引数です。

List<Double> A;//流域面積

List<Double> f;//流出係数

double rain;//降雨量(手動入力)

String tiiki;//長野県(地域区分)

String kakuritu;//長野県(降雨確率年)

int time;//流達時間

double ko;//飽和透水係数

String type;//施設type

 

 計算ロジックはこれだけの条件でまわります。

ぶっちゃけエクセルでも簡単に作れます。

 恐らくオフィス系ライブラリを使えば帳票も作成できるでしょう。

 

では、わざわざ時間をかけて何故javaで作るのだ?!って思うひともいるでしょう。

 

確かにエクセル使える人は、おじさん達に好かれ重宝されます。仕事の仕様もオフィス系のものがほとんどです。

しかし、エレガントじゃあない!!

 意味わかりませんかぁ?

 

 ぼくもわかりません。
なんというか、何かひっかかるものがあります。

使ってはいけない!という心の奥底できこえるのです!


まぁわかる人にはわかるはず!

そんなこんなで(どんなだ!)
pythonで作ったものを、よりかっこよく!
より機能性をもったプログラムで生まれ変わらせるため日々楽しんで書いてます。
現状グラフツールと帳票が未実装です。
そのほかはエラー処理以外見通しがたってきました。

またの機会に断片的に紹介したいと考えてます。

 まだまだ、未熟者だけどpythonjavaも素晴らしい言語です。