2011年10月11日 星期二

研究人員怎麼用 iPad

iPad很好用,可是不同人對於iPad會有不同的需求與用法
所以我大概整理一下
針對研究人員、學者
該怎麼用你的iPad

一、基本設定

1.電腦安裝iTunes
對於Apple 設備,iTunes是必備的
請上Apple網站免費下載並安裝iTunes到你的電腦
拿到你的iPad第一步就是將你的iPad與你的電腦連線
作開啟的動作(新的iOS不用開啟)
這樣才能開始使用

2.Apple ID
設定你的iTunes Store帳號,也就是Apple ID
這樣才能下載iTunes Store 上的App
包括免費以及付費的App

3.收發e-mail
如果是中華電信,請參考此教學
如果是台大帳號,可以利用iPad上網
開啟 http://iphone.cc.ntu.edu.tw 網頁
即可依照步驟自動設定。
如果是Gmail帳號,請參考此教學

4.通訊錄 行事曆 同步
單一Google行事曆請參考此教學
若有多個跟別人共享的Google行事曆
需使用Exchange設定
請參考此教學

在此強烈建議使用Gmail統整你所有email跟通訊錄
Gmail可以去收你其他信箱的email,包括台大的信箱
並有效過濾垃圾信
且Gmail還跟通訊錄、行事曆結合
讓你有效整理行動通訊
行事曆更是可以利用共用功能
讓您的秘書或助理幫你安排行程至google 行事曆
你在外只要打開你的iPad或iPhone便可以知道任何新增行程
相當方便


二、必備App

1.好用的筆記本 UPAD
可以手寫,編輯
一定要試試
試用版
正式版

2.Dropbox
Dropxbox是目前雲端科技的先驅
讓你電腦內的檔案隨時都能備份到雲端
就連誤刪檔案都能救回
相當好用
iPad裝上DropBox App
就能隨時利用iPad讀取你雲端上的檔案
遇到一些臨時討論時相當好用
或是利用共用資料夾
請學生共享檔案給你
讓你可以隨即利用DropBox打開檔案來看
未來的雲端趨勢,就是如此,隨身碟已經慢慢被淘汰了
請先申請 DropBox
並下載安裝其軟體
便可以擁有免費雲端備份的便利
DropBox App 在此
讓你iPad也可以存取你的檔案

3.USB Disk
iPad沒有檔案總管
所以需要一個虛擬的隨身碟
讓你可以利用他儲存email附件
下載網頁pdf檔

4.PDF Reader
雖然UPAD 可以讀取pdf檔
可是翻頁的手感卻沒那麼好
所以需要一套reader來讓你利用iPad讀取電子書
建議可以使用
付費的 good reader
或是免費的 cloud reader 以及 Sidebooks

其實iTunes上有很多免費的App讓你下載
您可以試試任何免費的App
不喜歡隨時都可以刪掉
另外也有一些網站
推薦iPhone4粉絲團
隨時提供限時免費App的資訊
有空時注意一下
都可以賺到一些小便宜

2011年9月18日 星期日

利用skype進行多人網路簡報會議

由於網路通訊的發達
網路會議已經不再那麼複雜與困難
現在利用Skype就可以做到
不只像電影一樣,螢幕上有許多人一起視訊
還可以一邊播放簡報
一邊進行會議
在普通的簡報會議中
無法蒞臨會議的人
也可以同時利用Skype
加入簡報會議與討論
利用網路簡報會議,就算人在遠方,也可以如同親臨現場開會

在會議的同時,進行網路簡報會議



主要步驟如下:
1.開啟多方通話
按著Ctrl鍵不放,點選多位要進行會議的名單,然後按滑鼠右鍵
便會出現選單,點選"開啟多方通話",便可開啟群組通話

2.開啟"分享畫面"
由主持會議的人(持有Mac電腦)於群組通話畫面點選"分享畫面",
此時其他人便會看到主持人的視訊畫面變成了"桌面畫面"



3.先點選該畫面,再最大化視窗,便可清楚見到主持人的桌面



4.將滑鼠移到分享桌面的右邊緣,可以再拖拉視窗至全螢幕


5.主持人將簡報開啟,並等待所有人就緒


6.當一切就緒,便可播放簡報,透過語音通話與分享畫面,就如同親臨現場開會

為達成網路簡報會議,以下幾項是必備的
1.一台Mac電腦,並購買Skype Premium,一個群組會議只要有一個有購買即可
2.每台電腦均具備麥克風與耳機(或Speaker)
3.參加會議的電腦,至少要有下載 512kbps / 上傳 128kbps 的高速寬頻連線,以及配備 1 GHz 處理器的電腦

為了增加會議之討論便利,主持會議地點建議有以下設備
1. 有線網路,以增加網路頻寬,避免視訊討論lag
2. 廣角會議電話,在較大之會議室,可增加擴音量以及收音效果(市價約NT$3500)
(以下圖片取自於Yahoo購物中心PeriPower 即時通廣角會議電話



目前1對1的"分享畫面"功能是免費且不限定只有Mac電腦才有
建議大家可以找個人試試看此功能
以了解如何操作與環境之設定

2011年9月1日 星期四

使用免費的 Ftp Client 軟體 Filezilla登入研究室FTP

由於FTP Server一般對於中文字都有固定的編碼
所以如果使用IE 或是檔案總管
便有可能遇到檔案變成亂碼的情形
所以強烈建議使用ftp client 軟體登入FTP
建議使用免費的FileZilla
請用google 搜尋 FileZilla
或直接到 http://filezilla-project.org/download.php 下載
安裝後
請點選左上角的站台管理員
點選"新增站台"來建立要登入的ftp
在"主機"那欄填寫ip,以本研究室為例,請填140.112.76.49或sdl.ae.ntu.edu.tw
登入形式選"一般"
再依照我們提供的帳號跟密碼填入"使用者"以及"密碼"欄位即可

最後確定"字碼集"
以本研究室ftp為例,採用Unicode編碼
雖然選"自動偵測"即可
但還是建議設定為"強制使用UTF-8"
因為當FileZilla偵測到目錄裡有亂碼檔案時
會自動取消UTF-8編碼
如此會造成使用者無法下載中文檔案的問題出現

ps.之前使用BIG5編碼會造成亂碼,請大家更改成以上說明即可


FileZilla站台設定

FileZilla站台設定中設定字碼集為強制使用UTF-8

如果字碼集使用自動偵測,當目錄有亂碼時,會自動取消UTF-8編碼



2011年7月4日 星期一

如何利用VB6呼叫VENSIM模式?

如何利用VB6呼叫VENSIM模式?
劉子明
台灣大學生物環境系統工程學系
博士

如有引用,請寫出處:劉子明,「如何利用VB6呼叫VENSIM模式?」,http://ntusdlab.blogspot.com/2011/07/vb6vensim.html


本說明必須搭配我的範例,請下載我寫的範例檔

範例內的Vensim模式乃依據GWLF集水區流量模式的理論,我利用Vensim寫出來的,在此稱之為GWLF_ven。不過,模式內的CN值仍無法考慮臨前降雨的影響,所以,該模式僅供參考。寫這個模式的重點在於展示如何利用VBCall Vensim的模式,因此我才會寫一個簡單的模式來做Demo
Vensim雖然提供了簡單易操作的介面,讓使用者能夠利用Vensim去進行系統動力學的相關研究與模擬,但卻有點將使用者受限於只能利用Vensim所提供的功能進行分析與繪圖。雖然可以針對每個變數輸出,但是輸出的格式實在不好用,雖然能繪圖,但是繪圖標示的功能根本沒有。使用者難免都需要匯出結果之變數資料,再進一步利用其他軟體,如Excel進行分析與繪圖,因此顯得Vensim似乎綁手綁腳的。其實,Vensim背後有許多的技巧與方法,可以讓Vensim方便又好用,只是你必須花一些時間去摸索,才能漸漸了解那些好用的技巧。
Vensim模式可以讓許多種程式語言呼叫,如VBExcel VBACJavaDelphi等,本例主要便是藉由VB程式,去Call我已經寫好的GWLF_ven模式,除了改變模式內原本的一些Constant參數,也可以將原本是ASCII格式的輸入檔(*.dat)轉成Vensim需要的格式(vdf),並讓Vensim去模擬。進而取出任何想要知道的變數結果,由VB程式進一步分析。
程式的表單配置如下:
圖一、VB表單配置圖

GWLF_ven的內容如圖二、圖三所示。其中的CN2便是集水區CN值,Area便是集水區面積,r為退水係數。在Vensim中,這三個變數都是給定Constant值。而需要外部輸入Data的變數只有氣溫T跟日降雨量Rt。本案例便是展示如何利用VB改變集水區面積AreaCN值以及退水係數r值進去GWLF_ven模式,並將原本需要的輸入檔-溫度T以及降雨量Rt,由VBDat檔轉換成Vdf檔,並進一步帶入GWLF_ven模擬。
圖二、GWLF_ven的地表模組

圖三、GWLF_ven的地層模組

利用VBCall Vensim模式之前,必須先將該模式打包,也就是利用功能表的FileàPublish,將模式打包,如圖四。本案例之模式檔為GWLF.mdl,經過打包之後,會產生GWLF.vpm檔。而VB要呼叫的便是GWLF.vpm
圖四、以功能表下的Publish將模式打包成可供其他程式呼叫的vpm檔。

以下便是主要程式內容。一開始必須對VensimDLL檔宣告,你可以直接copy所有宣告貼上,建議你不要去更動該宣告,除非你對所有的dll檔都很了解。程式內容都在附件當中,你可以依照內容,適當的應用在你自己的模式,並做變化。

Private Declare Function vensim_be_quiet Lib "vendll32.dll" (ByVal quietflag As Long) As Long
Private Declare Function vensim_check_status Lib "vendll32.dll" () As Long
Private Declare Function vensim_command Lib "vendll32.dll" (ByVal Vcommand$) As Long
Private Declare Function vensim_continue_simulation Lib "vendll32.dll" (ByVal number_time_step As Long) As Long
Private Declare Function vensim_finish_simulation Lib "vendll32.dll" () As Long
Private Declare Function vensim_get_data Lib "vendll32.dll" (ByVal filename$, ByVal varname$, ByVal timename$, varvals As Single, timevals As Single, ByVal maxpoints As Integer) As Long
Private Declare Function vensim_get_dpval Lib "vendll32.dll" (ByVal varname$, varval As Double) As Long
Private Declare Function vensim_get_dpvecvals Lib "vendll32.dll" (vecoff As Long, varvals As Double, ByVal veclen As Long) As Long
Private Declare Function vensim_get_info Lib "vendll32.dll" (ByVal infowanted As Long, ByVal buf$, ByVal maxbuflen As Long) As Long
Private Declare Function vensim_get_sens_at_time Lib "vendll32.dll" (ByVal filename$, ByVal varname$, ByVal timename$, attime As Single, vals As Single, ByVal maxpoint As Long) As Long
Private Declare Function vensim_get_substring Lib "vendll32.dll" (ByVal fullstring$, ByVal frompos As Long, ByVal buf$, ByVal maxbuflen As Long) As Long
Private Declare Function vensim_get_val Lib "vendll32.dll" (ByVal varname$, varval As Single) As Integer
Private Declare Function vensim_get_varattrib Lib "vendll32.dll" (ByVal varname$, ByVal attrib As Long, ByVal buf$, ByVal maxbuflen As Long) As Long
Private Declare Function vensim_get_varnames Lib "vendll32.dll" (ByVal filter$, ByVal vartype As Long, ByVal buf$, ByVal maxbuflen As Long) As Long
Private Declare Function vensim_get_varoff Lib "vendll32.dll" (ByVal varname$) As Long
Private Declare Function vensim_get_vecvals Lib "vendll32.dll" (vecoff As Long, varvals As Single, ByVal nelm As Long) As Long
Private Declare Function vensim_set_parent_window Lib "vendll32.dll" (ByVal vwidnow As Long, ByVal r1 As Long, ByVal r2 As Long) As Long
Private Declare Function vensim_show_sketch Lib "vendll32.dll" (ByVal viewnum As Long, ByVal wantscroll As Long, ByVal zoompercent As Long, ByVal Vwindow As Long) As Long
Private Declare Function vensim_start_simulation Lib "vendll32.dll" (ByVal loadfirst As Integer, ByVal game As Long, ByVal overwrite As Long) As Long
Private Declare Function vensim_tool_command Lib "vendll32.dll" (ByVal Vcommand$, ByVal Vwindow As Long, ByVal iswip As Long) As Long
'以上的宣告請不要改更動
'任何Vensim的模式都必須經過"Publish"才能產生VB可以callvpm
'本例乃利用VB使用Vensim所提供的DLL去進行變數修改以及模擬
'案例的模式為自行撰寫的GWLF集水區流量模式
'僅供測試使用
'欲了解可以使用的變數以及語法
'請上Vensim的網站下載Vensim DSS Reference Supplement
'有任何疑問與建議
'歡迎跟我聯繫
'台灣大學生物環境系統工程學系博士生
'劉子明
'tedliu13@gmail.com
Dim infl, fl, outfl, flvds As String
Dim result, ms, ss, ts, vs, i As Integer

Private Sub Command1_Click()
'Vensim要用的變數最好分行宣告
Dim Rval(3660) As Single
Dim Tval(3660) As Single
Dim maxpoints As Long
Dim tpoints As Long
Dim area, r, CN As Single
Dim ave(2, 12) As Single
Dim n, yr1, yr2, chk, TotalDay As Integer
Dim vvr(2), VVAR As String
Open "CMD.dat" For Output As #1
Open "CMS.dat" For Output As #2
'輸出變數
vvr(1) = "CMD"
vvr(2) = "CMS"
If infl = "" Then
MsgBox "請先選擇輸入檔"
Exit Sub
End If
'計算模擬時間 TotalDay
yr1 = Val(Text3.Text)
yr2 = Val(Text4.Text)
TotalDay = 0
For yr = yr1 To yr2
chk = yr Mod 4
If chk = 0 Then
days = 366
Else
days = 365
End If
TotalDay = TotalDay + days
Next yr
'輸入變數
area = Val(Text2.Text)
CN = Val(Text5.Text)
r = Val(Text6.Text)
'將輸入檔(dat) 轉換成vensim的格式
result = vensim_command("MENU>DAT2VDF|" & infl)
infl = Replace(infl, "dat", "vdf")
'開啟模式
fl = App.Path & "\GWLF.vpm" 'Vensim模式
result = vensim_command("SPECIAL>LOADMODEL|" & fl)
If result = 0 Then Exit Sub
'加入input
result = vensim_command("SIMULATE>ADDDATA|" & infl)
If result = 0 Then Exit Sub
'run name CMD
result = vensim_command("SIMULATE>RUNNAME|CMD")
If result = 0 Then Exit Sub
'改變模式內變數值
comstr$ = "SIMULATE>SETVAL|INITIAL TIME = 1" '起始時間
result = vensim_command(comstr$)
comstr$ = "SIMULATE>SETVAL|FINAL TIME = " + CStr(TotalDay) '結束時間
result = vensim_command(comstr$)
comstr$ = "SIMULATE>SETVAL|Area = " + CStr(area) '集水區面積
result = vensim_command(comstr$)
comstr$ = "SIMULATE>SETVAL|CN2 = " + CStr(CN) 'CN
result = vensim_command(comstr$)
comstr$ = "SIMULATE>SETVAL|r = " + CStr(r) '退水係數
result = vensim_command(comstr$)
'開始模擬並輸出結果
result = vensim_command("MENU>RUN")
If result = 0 Then Exit Sub
'讀取結果
For i = 1 To 2
VVAR = vvr(i)
maxpoints = TotalDay
tpoints = vensim_get_data("CMD.vdf", VVAR, "Time", Rval(1), Tval(1), maxpoints) '讀取變數至Rval(1)
'利用迴圈讀取結果
n = 0
For j = yr1 To yr2
For m = 1 To 12
If m = 2 Then
If j Mod 4 = 0 Then
days = 29
Else
days = 28
End If
ElseIf m = 4 Or m = 6 Or m = 9 Or m = 11 Then
days = 30
Else
days = 31
End If
For d = 1 To days
n = n + 1
Print #i, n, Rval(n)
ave(i, m) = ave(i, m) + Rval(n) / days
Next d
Next m
Next j
Close (i)
Next i
將月平均流量繪成折線圖
For m = 1 To 12
ave(2, m) = ave(2, m) / (yr2 - yr1 + 1)
With MSChart1
.Row = m
.RowLabel = CStr(m)
.Data = ave(2, m)
End With
Next m
MsgBox "完成!!~"
End Sub

2011年6月28日 星期二

參加成大『極端氣候下複合性災害防治研討會』心得

此研討會乃游保衫、鄭克聲、李光敦以及張良正教授之國科會計畫之第一年成果發表會
此計畫共四個子計畫,主要以曾文水庫為研究區域,從上游水庫至下游河道在極端氣候影響下之相關問題探討。
游老師的計畫乃針對現有『最大可能降水』-PMP之計算提出修正看法,其認為傳統之颱風移位法並不足以推估南部地區之PMP,應該考慮西南氣流共伴之效應。
我個人最近也在思考傳統計算PMP方式,是否應該加入氣候變遷的影響才算合理,因為PMP的計算目的是推估"未來"可能面臨之最大降雨量,然而傳統計算乃是以"過去"的資料,以統計的方式推估,面對氣候變遷影響下,過去統計特性會因氣候變遷而改變的情況下,傳統的推估方式實際上完全忽略了氣候變遷的影響。不只是PMP,所有水文統計與頻率分析,其實都有以上之問題,只是此問題並非利用簡易降尺度就能分析的,必須透過統計降尺度才能推估,游老師也認同此點。

鄭老師的計畫著手方向,乃以劉紹臣教授所發表的極端降雨跟全球均溫上升量有關之想法,試圖建立全球均溫改變量與極端降雨之關係,以分析未來可能之極端降與變化程度。我認為這是一個可行的方向,而這應該是國內對於極端降雨之統計降尺度方法的解決之道。

李光敦老師則是針對極端降雨所造成集水區之泥沙沖刷,匯流至河道後,再以數值方法進行異重流之二維數值演算,以計算極端降雨所造成之河道泥沙量,並由異重流數值模擬結果,提供下游渾水排沙的時機,其模擬結果並提供給張良正老師,進行水庫操作最佳化演算。降雨所造成泥沙沖刷量,由經驗公式推估,由驗證結果,個人認為相當不錯,應可進一步探討。雖然沒有考慮坍方量,但結果已經相當不錯。

張良正老師的計畫則在建立極端降雨下水庫操作之最佳化模式,其目標函數為最小的水庫操作前後差異水位加上最大的下游河道溢提量,也就是說,此最佳化模式是允許下游溢提淹水的,只是希望溢堤量是最小的,此部份應該可以進一步探討,相信目標函數之設定會造成結果之不同。整個模式是連接上游水文模式,水庫防洪操作以及下游河道演算,由於下游河道演算多以HEC-RAS進行模擬,然而視窗化模式必須人工操作,無法嵌入模式演算法,因此張老師利用遺傳演算法取代HEC-RAS,以利於整個演算進行。

此整合計畫為三年計畫,且每年都會有成果發表,建議大家有興趣者,可以期待明年之成果發表內容。

劉子明 2010.6.28

2011年6月26日 星期日

如何新增個人行事曆到SDLab

為了方便資訊傳遞,
請大家請假時直接上google calender登記你的請假日期與原因
在填寫時間與原因之後
請記得選擇"日曆"為"sdl lab"
如此才會新增至研究室的行事曆