Taiwan datums

台灣大地基準及座標系統相當複雜. 茲抽絲剝繭，以利開放原始碼應用. （英譯請置句後） Taiwan's datums and coordinate systems are quite confusing. On this page we attempt to sort them out for use in open source tools. (Place English translations after a sentence.)

TWD67 vs. TWD97
現代台灣地圖只能出現下列座標： Modern Taiwan maps will only have the following coordinates, if any:


 * 1) TWD67
 * 2) 經緯度 longitude/latitude
 * 3) 二度分帶 2-degree transverse Mercator
 * 4) TWD97/WGS84
 * 5) 經緯度 longitude/latitude
 * 6) 二度分帶 2-degree transverse Mercator

How can I tell if a map is 怎判斷某圖為 TWD67 vs. TWD97?
TWD67 例 examples: 若以上偏約 If the above are off by about 828 meters 公尺， 該圖則 then the map is TWD97.
 * 台北市復興南路為 Taibei City's Fuxing S. Rd. lies upon 304000m E.
 * 國道一號新竹公道五交流道為 Expressway 1's Gongdaowu interchange lies upon 121.00 deg. E. == 250000m E.
 * 豐原火車站前為 221000m E. lies in front of Fengyuan railway station.

混淆 TWD67, TWD97 易耽誤救援 confusion can delay rescues
If you mix up TWD67 and TWD97, your results could be off by a kilometer -- dangerous! 它們若弄錯，測的結果可能差一公里， 會釀成新聞如：

總統限航區座標烏龍事件， 錯用舊座標系統！ 民航局將公告正確位置 （２００３．７．１５）

甚至有危險. 那末， 今日除了東經、北緯外， 必加個ＴＷＤ６７或ＴＷＤ９７始有意義. So, these days, beside longitude and latitude, one must also mention "TWD67" or "TWD97" for the data point to be useful. 一個負責任的地圖出版社應同時載ＴＷＤ６７及ＴＷＤ９７才對. 建議如公里方格前者用黑， 後者用籃， 而兩者之經緯度於邊遠用短線. 一看 TWD97 是用籃方格， 或至少邊緣短線. A responsible map publisher should print both grids...

２００３年網友說： 應詳細介紹目前台灣地區 ＴＷＤ６７╱ＴＭ２ 及經緯度， ＴＷＤ９７╱ＴＭ２ 及經緯度， ＷＧＳ８４╱經緯度的使用現況， 釐清許多人對此的錯誤觀念，同時我也與消防署詢問搜救地點坐標通報的規範時， 對方告知只要求以經緯度通報， 但是沒有要求是以 ＷＧＳ８４ 為 ｄａｔｕｍ， 追問下竟然他們根本不知道原來還有 ＴＷＤ６７，ＴＷＤ９７， ＷＧＳ８４ 的差別， 我就舉三貂角雷達為例，"今天收到民航局的每月通告， 提到三貂角新近安裝啟用航路搜索雷達， ＷＧＳ８４ 經 緯度是 Ｎ２５度０分２７．５秒， Ｅ１２２度０分３．９秒， 高度１２８．４公尺（４２１英尺）， 馬上查對 上河文化的北島地圖發現居然這地點是在海裡面， 再看看其他地圖發現政經版 １╱２５０００地圖的， 戶外生活〔方格而已〕的全部都是如此， 因此判斷這應該是這些國內地圖都是使用ＴＷＤ６７所致， 也就是全部都是以虎子山為基準算出來的. 如果你要再確認， 不妨用松山機場報道中心點位置（Ｎ２５度０４分１０秒， Ｅ１２１度３３分６秒）確認就知道了！！"他們才恍然大悟， 我給了 Ｇａｒｍｉｎ 何經理電話請他們聯絡， 因此你真的必須要建立此一網頁， 如果最高搜救機關都沒有規定通報規則（最好以 ＷＧＳ８４ 為 ｄａｔｕｍ 的經緯度）， 更何況下屬警察機關， 搜救單位（民間或是消防隊）， 以及對登山人員的宣導， 徒增搜救成本. 對了何經理提到 ＴＷＤ９７╱ＴＭ２ 及經緯度已經使用於新出版的航照圖， 只是不知道何時民間登山常用的經建版 １╱２５０００ 及 １╱５００００ 地形圖會改變 ｄａｔｕｍ， 或許你也可以以此向相關單位詢問未來推廣 ＴＷＤ６７ 改為 ＴＷＤ９７ 的轉變時程， 因為這對全台灣的坐標通報實在有很大的影響， 相信你是此中專家， 一定知道相關影響層面. 大約需經某難發生， 單位們才懂得三種 ｄａｔｕｍ 之別. 反正， 今日光報個 ｘ， ｙ 不夠， 必須加註用的是哪個基準 （ｄａｔｕｍ）才安全.

總而言之， 救難者應尋三處 To sum it up, rescuers should check three places:

正如病人說他是ＡＢ血型， 仍必測試始能輸血， 無法確定報的人搞清什麼 ＷＧＳ８４╱ＴＷＤ６７， 又支派的人員圖堆亦然搞不清， 故建議直昇機飛上述三處， 成西北西東南東狀， 過程中指揮中心千萬不要替人家轉換座標， 以免混淆極增. 註：本人無實際救難經驗， 以上屬猜測理論.

Recommendation to rescuers: just like medical workers still will test the patient's blood type before giving them a transfusion even though they insist they are type AB etc., we shouldn't trust the reporting public's vague notions of datums, if any. Nor should we trust various rescue teams with piles or PDAs of various maps. Therefore the helicopter should check in the above three places, which form a west-northwest - east-southeast line. During the process the coordination center should not "help" anybody by converting the original reported coordinates, lest confusion increase exponentially. Note however that I have no rescue experience and the above is all a guess as to how things should operate.

The finder of 24N 121E reassures us he was using WGS84 and not TWD67.

Basic facts for both TWD67 and TWD97
They are both 2 degree wide transverse Mercator projections. They differ in their ellipse, see below.

Q&A

 * Q：有沒有所謂的原點 Is there an origin (0,0)?
 * A：至赤道與東經１２１度， 頭再往西， 往前２５０公里. 此時已離地面相當高.  此點好像是原點. Go to the junction of the equator and 121 degrees east longitude, then point one's head west and go straight 250 km. When one stops one will be considerably above the earth's surface. I'm pretty sure that is the "origin".


 * Q：ＴＭ２兩個緯度Ｅ、Ｎ， 是不是往正北方， Ｎ就會增加； 往正東方， Ｅ就會增加？ If I go due east or north, will that increase TM2's E and N values?
 * A：不完全一致. 拿地圖仔細看， 唯一ＴＭ方格線與經、緯線完全平行就是２５０ｋｍＥ 即東經１２１度那條， 其他有多少歪斜. Not exactly. Take a good look at a map. The only place where the longitude and latitude grid lines are parallel to the TM2 grid lines is 250 km E., i.e., 121 east longitude, that single line. All other lines are more or less askew.

TWD67, TWD97, WGS84 Q&A

 * Q： 我買的的 GPS 沒有 TWD97 這個新的大地基準 (datum). 未來遇到用 TWD97 的地圖怎麼辦？ 聽說設定 WGS84 就可以了；好像 WGS84 與 TWD97 只差幾公分，未來幾十年也如此嗎？
 * A： 我們一般談到大地基準如 TWD67 或 WGS84 或 TWD97, 通常可由兩個方向來說明
 * 橢球體的大小及方位: 所謂橢球體的大小是指的我們居住的地球有多大, 橢球體的方位是指這個球體應該擺在什麼位置才能與地球重合的很好. TWD67 與 WGS84 的球體大小不等, 而 WGS84 與 TWD97 的球體大小兩者可說相同.
 * 坐標基準: TWD67 的坐標基準在埔里, GPS WGS84 坐標基準不在埔里, TWD97 的坐標基準在台灣地區的內政部八個追蹤站的坐標值為基準. TWD67 的坐標基準與 WGS84 坐標基準兩者不一致, 約相差1公里. TWD97 的坐標基準與 WGS84 坐標基準兩者相差不大, 約幾公分至數十公分.因此, 未來使用 TWD97 的地圖與 GPS 定位的坐標, 在導航及登山的需求上應可視為一致.


 * Q： 看了您解答就明白了，TW 是指 Taiwan, 但還是不知道 D 是指什麼??
 * A： Datum(大地基準)


 * Q： TWD67 名字中的 '67' 是因為應用的是國際上的 Geodetic Reference System 1967，而 TWD97 名字中的 '97' 是因為是國內 1997.1.1 起算？
 * A： TWD67 是內政部公告之坐標基準係引用國際上的 Geodetic Reference System 1967 的橢球體大小, 作為臺灣地區大地基準的橢球大小, 其坐標基準在埔里. TWD97 名字中的 '97' 是因為臺灣地區於 1997 年以 GPS 重新計算坐標基準, 於 1997 年完成, 他的橢球體大小是採用國際上的 Geodetic Reference System 1980 的橢球體大小, 此橢球大小與 WGS84 的球體大小兩者可說相同.


 * Q： 我們不是要求很準，只是希望出外時有三個參數可以背來做臨時 TWD67 與 TWD97 轉換. 好像全省可以用某點之 TWD67 座標，其X（東）加 828 米，Y （北）減 207 米，Z （高度）加 20 米(按:報「海拔」，仍用 TWD67 的 Z 值…否則連基隆水面也高 20 米. 「真高」加 20 米得 WGS84/TWD97 的「橢圓球高」)（但 Z 的準確度不如 X,Y），以大約達到其 TWD97 座標｝誤差不會超過 5 米不管你在台灣本島哪裡嗎？洪老師有沒有覺得更好用的參數？當然這個方法 只適合手上無電腦用時.
 * A： 實用上於導航用途方面, 應可使用上述的方法, 簡易作一個坐標轉換. 否則於登山地區附近找一座已知 TWD67 坐標的控制點, 同時進行 GPS 定位得到 WGS84 的坐標, 如此大致可得到兩者坐標基準的差值, 再以此差值作為這區域的坐標轉換資料.

座標轉換
基本上座標轉換可分成二大部分來看，
 * 1) 座標格式轉換(Coordinate conversion),這部分只有經緯度球面座標, 方格平面座標( 例如:台灣常用的TM2二度分帶座標)及XYZ三維直角座標的相互轉換, 均在同一個座標基準下, 例如: TWD67 TM2<-->TWD67 經緯度, 因此依照公式精細計算是沒有任何誤差的. 計算公式請見附件.
 * 2) 基準轉換(Datum transformation)， 這是最複雜也是學術研究報告最多的主題， 主要有三個類別來進行，當然不同轉換法的誤差大小不一.
 * 3) 二維平面基準轉換: 這類都忽略高度轉換, 僅以X,Y值以數學公式運算.
 * 4) 二參數轉換:如上河文化提到的座標概略換算公式.
 * 5) 三參數轉換
 * 6) 四參數轉換(正形轉換Conformal transformation或Helmert轉換):成大水工所轉換網頁的四參數
 * 7) 六參數轉換(仿射轉換Affine transformation):地籍圖座標轉換常用
 * 8) 二次多項式轉換
 * 9) 三維空間基準轉換: 這類也是以數學公式進行座標與高度的轉換, 當然也有以高度為0來進行運算.
 * 10) 三參數轉換: DX,DY,DZ平移參數
 * 11) 四參數轉換
 * 12) 標準Molodensky轉換:Garmin GPS的Molodensky轉換, 常用於民用GPS, 初期是美國國防部應用於軍事上,各國轉換參數可以在WGS84技術文件中找到, 有DX,DY,DZ,DA,DF, 另有簡化Molodensky轉換(Abridged Molodensky transformation).
 * 13) 七參數轉換:主要有Bursa-Wolf模式及Molodensky-Badeka模式兩種, 專業用GPS常用Bursa-Wolf七參數轉換等等, 七參數轉換誤差會比三參數來的小.
 * 14) 十參數轉換(Krakiwsky-Thomson transformation)
 * 15) 多項式轉換(MRE,Multiple Regression Equation複迴歸法)
 * 16) 二階段基準轉換法
 * 17) 曲面擬合模式(surface modeling):這是最精確的全國座標轉換常用方式, 目前許多國家都用網格轉換法(最小曲率法), 如: 台灣MTWDCON程式, 美加地區NADCON程式, 澳洲NTv2程式, 將轉換區域化成1000m×1000m的方格來對照TWD67, TWD97的座標, 網格中的座標則用內插法推算出來. 當然不同研究學者也持續發展不同的轉換模式, 反正有強大的電腦進行推算, 但是本類的模式轉換是無法用單一數學公式計算的. 有以下幾種方法:
 * 18) 最小曲率法(Minimum Curvature Interpolation)
 * 19) 最小二乘共置法(Least Squares Collocation)
 * 20) 全區多項式法(Global Polynomial)
 * 21) 克力金法(Kriging)

以上的分類方式是進行台灣地區三角點轉換過程中閱讀台灣許多學術文獻歸納出來, 這樣應該有助於初學者理解與系統性學習. 當然實際要進行上述轉換計算時, 一定會牽涉到橢球體相關參數, 及三角函數, 建議閱讀附件資料比較容易著手計算. 台灣地區基準Molodensky轉換參數

參數
台灣地區現有轉換參數與精度:(TWD67與TWD97相互轉換)專業人員通常以小區域轉換, 以取得極高(公分級)的精度, 不以全島為轉換區域.
 * 1) 最小曲率法: 官方宣告台灣本島轉換程式MTWDCON精度為30cm.
 * 2) 二參數轉換: TWD67橫座標=TWD97橫座標-828公尺, TWD67縱座標=TWD97縱座標+207公尺, 誤差約在5公尺以內.
 * 3) 平面四參數轉換:僅適用台灣本島，最大誤差約2公尺 X67=X97-807.8-A*X97-B*Y97; Y67=Y97+248.6-A*Y97-B*X97 X97=X67+807.8+A*X67+B*Y67; Y97=Y67-248.6+A*Y67+B*X67 A=0.00001549, B=0.000006521 Perl implementation
 * 4) Molodensky轉換(參數供TWD67<->TWD97雙向轉換):
 * 5) 台灣本島參數DX, DY, DY, DA, DF為-685, -470, -237, -23, -0.00081204, 精度約1.64公尺.
 * 6) 澎湖地區參數DX, DY, DY, DA, DF為-752, -349, -179, -23, -0.00081204, 精度約2.44公尺, 最大為4.09公尺. 使用時記得設定User Grid(使用者自訂方格): 中央經線--E119度, 尺度比:0.9999, 橫座標平移量:250000m, 縱座標平移量: 0
 * 7) Bursa-Wolf七參數轉換(參數供TWD67<->TWD97雙向轉換): DX,DY,DZ= -730.160, -346.212, -472.186 rX= -7.968" (-0.00003863), rY= -3.5498" (-0.00001721), rZ= -0.4063" (-0.00000197) dS/Scale= -18.2ppm (或0.99998180)

免費座標及基準轉換程式:
 * 1) Inverse Molodensky程式(計算三參數)
 * 2) Molodensky轉換法Geotrans程式
 * 3) Molodensky及七參數轉換法PCTrans程式

附件 Appendix
附件檔案內容請下載
 * 1) 二維及三維座標基準轉換圖示
 * 2) 座標格式轉換公式及說明
 * 3) 各類基準轉換公式及說明
 * 4) NATO發佈各國基準轉換Molodensky參數及七參數
 * 5) 各國平面投影座標系統列表

經緯度與二度橫麥卡脫投影之間 Between latitude/longitude and 2-degree transverse Mercator projection
proj is free software: GNU/Linux example, 東郡大山 Dongjundashan TWD67: given x and y, compute longitude and latitude (and store them in variable ): $ LL=$(echo 258566.571 2613894.788 | proj -I +proj=tmerc +ellps=aust_SA +lon_0=121 +x_0=250000 +k=0.9999) $ echo $LL 121d5'2.255"E 23d37'42.655"N Now convert back to x and y: $ echo $LL | proj +proj=tmerc +ellps=aust_SA +lon_0=121 +x_0=250000 +k=0.9999 258566.57 2613894.80 (If we were using TWD97 instead of TWD67, we would instead use:) $ proj +proj=tmerc +ellps=GRS80 +lon_0=121 +x_0=250000 +k=0.9999 The ellipses we use can be seen with " ": has a +proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs <> which is suspect too. 頗質疑. 7/2008: 台灣地理資訊中心 CDPC將申請 will apply for EPSG registration 座標註冊...
 * For TWD97 use 用:
 * For TWD67 用:
 * Use:
 * 不要用 DON'T use: I.e. the TWD67 spheroid is NOT the International 1967. 名字會亂， 參數才算.  Names get confused; parameters are what count.
 * Q：The HTZ (Hu Tzu Shan) datum predefined in ArcInfo/ArcGIS is set to Int/Hayford 1909. Have ESRI (Arc authors) made a mistake?
 * A：Try the aust_SA parameters instead. 「虎子山」此名充滿了危機， 定義已多. 只能談其ａ＝、ｆ＝.  The name "Hu-tzu-shan" is full of danger, as it has accrued several definitions. One must instead talk in terms of a=, f=
 * 1) Hu Tzu Shan
 * Q：是否可以提供經緯度轉二度ＴＭ座標公式？ Where can I see the formula for latitude longitude to TM conversion?
 * A：那麼， 既然是自有軟體， 也許看 Well, since it is Free Software, perhaps see the source code to proj 的原始碼? Also note freegis.org.

GPSFUN 有如下之比較 has a comparison like: *註解 note: the names 所謂 "hu-tzu-shan", and even 甚至 "International 19xx", 此兩名字經多年已累積多重定義 have been given many definitions here in Taiwan, so are dangerous to use. One must speak in terms of 故用之危險， 只好直接講 a, f ! 甚至 "hu-tzu-shan" 有時 sometimes even means 拿來稱 TWD67, e.g., some Garmin GPS units.

台灣經緯度及二度ＴＭ座標轉換 Online TM to lat/long transformation (for TWD67 to TWD67, TWD97 to TWD97 will be off by .0001 degree), 但無原始碼， 無千分之一度之下數字， 無清楚網站名. but no source code, no decimals below 0.0001 degrees, no clear website name.

TWD97 vs. WGS84
TWD97 is very close to 幾乎等於 WGS84, at least where I live, $ a="120d51'58.2\"E 24d10'54.2\"N"; echo $a #(just see what it looks like) 120d51'58.2"E 24d10'54.2"N $ echo $a | proj +proj=tmerc +ellps=GRS80 +lon_0=121 +x_0=250000 +k=0.9999 -f %.5f 236402.76293 2675155.08596 $ echo $a | proj +proj=tmerc +ellps=WGS84 +lon_0=121 +x_0=250000 +k=0.9999 -f %.5f 236402.76293 2675155.08604 $ echo 2675155.08604 - 2675155.08596 | bc .00008

Zones
author "M" == Miguel Filgueiras writes:
 * +lon_0=125 # Chiwei Is. 赤尾島
 * +lon_0=123 # Diaoyutai, Pengjia Is... 釣魚台、 彭佳嶼
 * +lon_0=121 # Taiwan Island 台灣本島
 * +lon_0=119 # Penghu Is. 澎湖, Jinmen 金門
 * +lon_0=117 # Dongsha Is. 東沙群島
 * +lon_0=115 # Nansha Is. 南沙群島
 * M> As far as I understand from your description these 2 degree zones centered from 115 to 125 will cover longitudes from 114 to 126. Does these cover all Taiwan territory?
 * Yes, everything that Taiwan owns or still claims to own.


 * M> I also take it that these zones cover all the latitude range, that is, for each central meridian there is a single zone for all the possible latitudes in Taiwan.
 * Yes, and each has Y=0 at the equator, and X=250000 at the central meridian.


 * M> Another point, could you please confirm that the correct scale factor is k0=0.9999.
 * Yes, that's right, 0.99990 And note that these 6 zones can be used with both the TWD67 or TWD97 datums.

We discovered many maps of Jinmen 金門, at least as late as the 1990's still use an older system:) $ proj +proj=utm +ellps=intl +lon_0=117
 * 1) intl a=6378388.0 rf=297. International 1909 (Hayford)

高程轉換 Vertical transformations
我們不清楚TWD67--TWD97的高程轉換法. We're not sure what the official Z axis transformation is for TWD67--TWD97.

將 ＴＭ 或經緯度換成台灣地圖編號 Turn TM or longitude/latitude into Taiwan map numbers
$ echo 120.85788 24.18347|./longlat2taiwanmapno 9521-2-025 9521-2-09 9521-2-NW $ echo 9521-2-025|./taiwanmapno2longlat 120.850 24.175
 * 1) 1> 120.85788 24.18347
 * 1) 1> 9521-2-025


 * Q： 台灣官方地圖的圖號的訂定，是以 東經 ７３ 度 ３０ 分和北緯 １４ 度為標準分幅線，每 ３０ 分 ＊ ３０ 分為一幅，即以台中區圖號 ９５２１ 為例，為距東經 ７３ 度 ３０ 分的第 ９５ 張圖及距北緯 １４ 度第 ２１ 張圖，這個算法我明 瞭. 但不明瞭的是，為什麼訂出東經 ７３ 度 ３０ 分和北緯 １４ 度為標準分幅線呢？我是 猜想這分幅線是否為中國的邊疆？
 * A： 看起來如此.

台灣地圖有趣的地方 Taiwan map curiosities: 像片基本圖 １：５０００ 版尾編號 ００１ 至 １００ 以三位數與二位數的 １：１００００ 版來區別； 但本來若用 ００ 至 ９９ 好處多多：簡短又不造成右一排開頭數位不規則 ５１…５９、６０ Orthophotomaps are labeled from 1-100 instead of the more systematic 0-99...

地籍座標 Cadastral coordinates
若在地政事務所看到以六台尺為單位之老座標， 就是所謂的地籍座標. If in a land office you stumble upon an old grid that uses the Japanese 20/11 meters per unit, that is the so called Cadastral coordinates.

轉換程式 Programs:
 * cad2twd67
 * bnpcoa2shp: .coa, .bnp 格式轉成 format conversion to Shapefile.