有關坐標系常見問題的問與答[轉] ![]() 轉自ESRI社區 來生緣版主 問: 我這有2個不同坐標的shp要素,這2個要素是同一地理位置的,但是在arcmap中打開不能顯示在同一范圍內,所以我將其中一個要素的坐標轉換成另一個要素的坐標,但是轉換后,2個要素還是不能顯示在同一范圍內。怎么辦? 答: 能不能疊加的關鍵是各自的坐標系要正確,不一定要相同。檢查數據的坐標系,錯誤的重新定義成正確的即可疊加到一起。 問: 犯了個錯誤:有一個shape文件是54坐標系的,我不小心定義成80坐標系了,然后以之為標準對其它shape文件進行空間配準,今天弄分幅圖的時候才發現錯位了,請問有沒有什么辦法補救呢? 答: 把那些數據都重新定義成54坐標系。 問: 如何看出定義的坐標系是錯誤的?我聽說是從extent能看出來,但是我怎么看不出來? 答: 從extent看出坐標系是否正確要建立在對各種坐標系的坐標形式、坐標范圍很了解的條件下。比如wgs84等地理坐標系的范圍應滿足-180≤X≤180,-90≤Y≤90,再比如Xian_1980_3_Degree_GK_Zone_38坐標系的坐標的形式是(38XXXXXX,YYYYYYY)等,如果你數據的坐標形式是(19XXXXXX,YYYYYYY)而你定義成Xian_1980_3_Degree_GK_Zone_38就錯了。當然有些錯誤從extent是看不出來的,比如你的數據正確的坐標系是Xian_1980_3_Degree_GK_CM_111E而你定義成了Beijing_1954_3_Degree_GK_CM_111E,這個錯誤從extent是看不出來的。 問: 我的數據是wgs84坐標系的,在dataframe的屬性里將display unit改成米后右下角顯示的坐標就會變成以米為單位,我想問這個坐標是怎么計算出來的? 答: 是根據赤道長度及經緯度計算出來的。地球長軸為6378137米,赤道長度為2×6378137×π≈40075016.686米,則赤道上1°≈111319.491米。假設某點的經緯度坐標為(63.767584,36.747445),則將display unit換成meter后其坐標就是(7098574.996427,4090706.892127),自己驗證一下。 問: 有一個數據有坐標系,是錯誤的,想進行修改,那么使用哪個工具呢? 答: 用define projection重新定義坐標系。 問: 我的柵格是北京54投影坐標系下的tif格式文件,做裁切后為什么坐標系變成Krasovsky_1940_Transverse_Mercator了,我什么也沒設置啊。 答: 你存成grid格式了吧?北京54和西安80投影坐標系的柵格轉存成grid格式后會自動改變。北京54坐標系會變成Krasovsky_1940_Transverse_Mercator,西安80坐標系會變成User_Defined_Transverse_Mercator,這是歷史原因造成的,不必理會它。 問: 我用arcgis計算面積時,數據的坐標系為WGS_84,求出來的結果是平方度,如何將其轉換為平方米? 答: 地理坐標系不適合求面積,平方度也不是面積單位,不同緯度1°×1°范圍的面積不相同??蓪⒛愕臄祿胮roject轉成WGS 1984 UTM投影坐標系后再求面積。 問: 有一個無坐標系統的shp層,我用define projection給它定義坐標系統后,然后加到arcmap中來,提示Warning,inconsistent extent!這是什么原因?怎么解決? 答: 坐標系定義錯誤,比如有帶號的坐標系數據定義成沒帶號的坐標系,或者把投影坐標系的數據定義成了地理坐標系等等。找出正確的坐標系并用define projection或在arccatalog里重新定義。 問: 我想計算中國各大港口之間的歐式距離,但用ArcGIS和google earth兩種方式計算的結果相差200多公里,我用ArcGIS計算的步驟如下: a搜集天津港和深圳港的經緯度并制作成Excel表 b在ArcCatalog中創建port點圖層(shapefile格式),選擇GCS-WGS1984 c在ArcMap中添加port圖層,使用Tool->add XY data創建點圖層中要素 d使用project轉換port圖層,投影坐標系選擇PDC-WGS1984 e使用Point Distance計算點間距離 以上五步中,哪一步出錯了? 答: 同樣兩地在不同坐標系下所求的距離有可能不相等。google earth里求距離、面積等并不是用PDC-WGS1984坐標系算出的,用此坐標系算出的距離、面積和實際的數比有很大的誤差。一般計算距離時用等距離投影,計算面積時用等面積投影。 問: 按理說,計算距離等應該在投影坐標系下進行,書上也說經緯度坐標系不是一種平面坐標系,因為度不是標準的長度單位,不可用其量測面積長度。但是在地理坐標系下(比如WGS84)arcmap的measure工具是可以選擇公里為單位進行測量的,請問這個是怎么計算長度的(比如以什么投影系統為基準)? 答: 用測量學的方法根據兩點的經緯度計算出的球面距離。 問: 為什么我的數據做了clip后變形很大,原來不相連的地方都連在一起了? 答: tolerance的問題。一般原因是地理坐標系數據沒有定義坐標系或定義成了投影坐標系。當地理坐標系數據沒有定義坐標系或定義成了投影坐標系時系統默認的tolerance是0.001,這對投影坐標系的數據來說是合適的,這樣的數據不會出錯。當你的數據是地理坐標系時,0.001就顯得太大了,相當于投影坐標系的100米左右,當兩個節點距離小于這個值時就會合并成一個,所以就會出現處理后的數據不該合并的地方合并了,慘不忍睹。 問: 在做Extract By Mask時出現錯誤: An error was encountered while executing ExtractByMask. ("esriGeoAnalyst.GridEngine") Could not get a valid extent. Failed to execute (ExtractByMask_3). 請問是什么地方出錯了?改如何解決呢? 答: 檢查是否都正確定義了坐標系。 問: 創建點時出錯提示“不能創建要素坐標或測量值超出范圍”,這是什么原因? 答: 這問題經常出現在空的圖層中“隨意畫”時。一定坐標系的要素類或shapefile的extent是有范圍的,超出范圍就不能創建要素了。 問: 我在用ArcGIS計算DEM坡度時,最低0度,最高89度,平均坡度也達到了87度,肯定是不對的,這是什么原因? 答: 一般出現這種情況是因為你的數據是經緯度的坐標系。轉換成投影坐標系后再做。 問: 為什么地理坐標系dem求出的slope是錯誤的呢? 答: 因為slope和距離、高程有關,你的數據中XY坐標是度,Z坐標是米,單位不一樣,但數據中可能只有X、Y的單位信息,沒有Z的單位信息,系統會認為它們單位都一樣,所以計算會出錯。比如說,在地理坐標系下,兩個象元相距0.001度,高程相差1米,在地理坐標系下計算時這兩點連線和水平面夾角的正切就是1000,也就是兩點連線和水平面的夾角是89.943° 問: 為什么我的柵格不能做配準,georeferencing工具條中不出現柵格圖層名? 答: 因為你的柵格的坐標系信息和data frame的坐標系不一致,把data frame的坐標系設成柵格的坐標系后就能做了。 問: 在arcmap中顯示全國地圖全圖比例尺大概有1比幾百萬吧,也不知道被我執行了什么操作,地圖好像被所縮小了一樣,在整個中國全顯示的情況下,比例尺竟然達到1:128,請問這是怎么回事? 答: 錯誤的定義了坐標系,將地理坐標系數據定義成了投影坐標系,或者對無坐標系信息的地理坐標系數據在data frame里將map unit設成了meter。 問: 給shp格式的定義坐標系,用的是define projection,但是定義完后出現了"Datum conflict between map and output"這句綠色字體的警告,什么原因? 答: 提示Datum conflict between map and output是因為你的數據的坐標系和dataframe的坐標系不一致,一般可不必理會。 問: 先打開有地理坐標系的圖層1,然后在這個圖層上面疊加一個無坐標系統的圖層2。圖層2也和圖層1一樣都是地理坐標系,但圖層2顯示的地理位置卻全部錯了,飛到老遠的地方去了,原來是可以疊加到一起的,這是為什么? 答: 那是因為你當前的的dataframe的坐標系統和圖層一的不一致,而圖層一因為有坐標系統能正確動態投影,而圖層二沒有坐標系統不能正確投影。你試著打開arcmap后只加進這兩個圖層看看能否正確疊加。 問: 我們需要提交shape成果,要求:“以度為單位的地理坐標系數據,大地坐標參照系為1954北京坐標系”,我的數據現在是北京54坐標系,顯示的是六位七位的公里網格坐標,我轉換了坐標系后還顯示的六七位數,不是經緯度,我試了老半天了,開始把投影刪了,直接定義投影為地理坐標系里的asia的beijing1954,但是單位還是錯的,而且每次一加載還提示一個錯誤,哪里出問題了? 答: 你需要的是轉換坐標系而不是重新定義坐標系。轉換坐標系要用project(矢量)或 project raster(柵格)來做而不是用define projection來做。 問: 地理坐標系不是球面坐標系么,如果沒有投影的話,為什么能在arcmap這個平面上顯示呢? 答: 地球表面是球面,但地圖是平面的。繪制地圖時在平面上建立一個直角坐標系,x軸代表經度,y軸代表緯度,坐標軸單位是度。地球上任意一點都有經緯度,按照這個經緯度在地圖上找到對應坐標點即可將球面上的點轉繪到平面地圖上。 問: 怎樣得到某個投影坐標系的坐標范圍?比如西安80,37°帶坐標系,它的X、Y最大最小值分別是多少,怎么計算? 答: x坐標范圍:37500000加減赤道1.5°的長度 y坐標范圍:正負二分之一中央經線長度 問: UTM 的是“以中央經線投影為縱軸x,赤道投影為橫軸y”,高斯克呂格 具體構成方法是“以中央經線為x軸,赤道為y軸”,而在描述投影坐標系統時說的是“中心水平線稱為x軸,中心垂直線為y軸”----以上引號皆摘自清華大學出版的那套上下冊的gis書,請問,這到底是為什么?我校正圖像的時候都暈乎的,到底哪個是x,哪個是y? 答: 數學坐標系(也叫笛卡爾坐標系)水平的是x軸,垂直的是y軸,測量坐標系水平的是y軸垂直的是x軸。你說的那書是以測量坐標系敘述的,而 在gis軟件里一般都用笛卡爾坐標系。入鄉隨俗,既然用gis軟件就要按笛卡爾坐標系的規矩來做,不要被書上說的所左右。 問: 我看一本書上寫的是,在使用十進制度的wgs_1984坐標系中,數據精度是1厘米,容限值為(0.01/(6378137*0.017453292519943299))/10,約等于8.983e-9,當時看了之后不明白為什么要除以(6378137*0.017453292519943299)這串數字,現在也不明白,我現在的數據的Projected Coordinate System是WGS_1984_UTM_Zone_49N,在按照此作拓撲時,拓撲容限值默認是0.001,而不是8.983e-9,不知為什么,我如果把0.001改成8.983e-9,在結束時就會出錯,不知為什么,請大家指教。 答: 除以那個數是計算在赤道上1米相當于多少度的一段圓弧。360°=2π*赤道半徑(≈6378137)米,則1米≈360°/(2π*6378137),而2π/360≈0.017453292519943299,也就是1米≈1/(6378137*0.017453292519943299)° 而一般設為容差為精度的10倍。根據上面的分析不難得出那個結果。 WGS_1984_UTM_Zone_49N的單位是米,所以該設成0.001,而不是設成8.983e-9,只有以度為單位的地理坐標系才能設成8.983e-9 問: 我的shp數據文件是1980坐標系的,不過沒有加大數的,請問如何加大數???就是x坐標前面都加一個40. 答: 用project或project raster轉換到相應有帶號的坐標系。 問: 原始數據為gtopo 1km的全球dem,地理坐標系為wgs84,但經過投影轉換后,dem嚴重變形。我選擇的是蘭伯特雙標準緯線等角圓錐投影,投影參數為: Projection: Lambert_Conformal_Conic False_Easting: 0.000000 False_Northing: 0.000000 Central_Meridian: 97.000000 Standard_Parallel_1: 30.000000 Standard_Parallel_2: 62.000000 Latitude_Of_Origin: 0.000000 Linear Unit: Meter (1.000000) Geographic Coordinate System: GCS_WGS_1984 Angular Unit: Degree (0.017453292519943299) Prime Meridian: Greenwich (0.000000000000000000) Datum: D_WGS_1984 Spheroid: WGS_1984 Semimajor Axis: 6378137.000000000000000000 Semiminor Axis: 6356752.314245179300000000 Inverse Flattening: 298.257223563000030000 答: 全球數據不適合用蘭伯特雙標準緯線等角圓錐投影,可改用Robinson投影坐標系。 問: 投影信息中有幾個參數不是太了解:首先Projection: Gauss_Kruger這個是知道的,下面的Parameters:參數是指什么,通常取什么值呢?還有Angular Unit: Degree(0.017453292519943299) 這個角度為什么取這個特定值,他是怎么計算出來的?還有一個我在程序里看到有個參數,取值是57.29577951308232,這個是代表什么?希望了解的幫忙解釋一下 答: 每種投影的Parameters個數不一定一樣、值也不一定相等,一般有偽偏東false_east、偽偏北false_north、中央經線central_meridian、投影原點latitude_of_origin、線性單位linear unit等。0.017453292519943299是一度等于多少弧度,57.29577951308232是一弧度等于多少度。 問: 我有一個政區圖矢量文件,坐標是(123456,1234567)這樣的形式,視圖屬性里顯示無坐標系。我就利用arctoolbox 定義一個地理坐標系,但是定義后顯示的經緯度數值沒任何變化,這是怎么回事。后來定義投影坐標系數值也是沒變化。 答: 定義坐標系不會改變坐標的數值。你的數據應該是投影坐標系的數據。先搞清楚正確的坐標系并定義之,需要經緯度的話用project轉換到相應的地理坐標系。如果只是要顯示經緯度的話,也可以正確定義坐標系后在dataframe的屬性里將其坐標系設成相應的地理坐標系,并把display unit設成度或度分秒。 問: 為什么同一個區域兩個坐標系完全一樣的SHP文件卻無重合? 答: 至少有一個數據的坐標系是錯誤的。能否正確疊加不在于兩個數據的坐標系是否一樣,而在于是否正確。 問: 有個投影坐標系的世界地圖,中國在邊上,出圖時怎么能使中國位于中間呢? 答: 投影坐標系參數里邊有個中央經線(Central_Meridian),將data frame的坐標系設成世界地圖的坐標系,并把中央經線設置為105°。 問: 兩個數據坐標系不同,為啥加進arcmap中能夠重合? 答: arcmap會自動將加進去的數據的坐標系在內存中轉換到data frame的坐標系來顯示,即所謂的動態投影。它只是在內存中轉換,并不改變數據本身的坐標系。 問: 我原來有個數據里的圖形是圓形的,現在怎么變成橢圓了,我保證數據沒有動過。 答: data frame的坐標系和數據的坐標系不一致造成的,比如你數據的坐標系是以地理坐標系,現在用了投影坐標系顯示。 問: 為什么我的全國地圖顯示出來比較扁,和掛圖上的中國地圖樣子不一樣呢? 答: 不同坐標系下同一個圖的樣子可能會不一樣,若你的全國數據是在地理坐標系下顯示的就會看起來比較扁。 問: 我的數據坐標系為: China_Lambert_Conformal_Conic Projection: Lambert_Conformal_Conic False_Easting: 0.000000 False_Northing: 0.000000 Central_Meridian: 125.000000 Standard_Parallel_1: 42.000000 Standard_Parallel_2: 51.000000 Latitude_Of_Origin: 0.000000 Linear Unit: Meter GCS_Beijing_1954 Datum: D_Beijing_1954 添加經緯度grid后經線和緯線不是直線,我想要直的經緯線該怎么做?。?/strong> 答: 將data frame的坐標系設為相應的地理坐標系,即Beijing 1954地理坐標系。 問: 原有的SHP圖層是沒有投影的,我用define projection 把投影轉成albers,可是為什么中國地圖還是扁的,查看圖層投影已經是albers了 答: 應該先用define projection定義正確的地理坐標系,再用project轉換到albers投影坐標系,而不是直接定義成albers投影坐標系。 問: 我在arcmap里面加載了一副中國省界shp數據。右下角顯示的坐標是:102.968 5.936 Meters..單位是米,但是102.968 5.936分別代表的是經緯度啊,這里顯示成米,不知道該怎么轉換呢? 答: 兩種可能: 1、無坐標系信息的數據在data frame的特性里將map unit設成了meter 2、錯誤地將地理坐標系的數據定義了投影坐標系 問: 地理坐標系數據想轉成UTM投影坐標系,數據不在一個6°帶范圍內該怎么選坐標系? 答: 若數據東西跨度不超過6°,可修改已有的坐標系,建個非標準的坐標系,中央經線選你數據范圍中間的經度。例如我的數據東西范圍是東經105.5°到東經110°,跨WGS_1984_UTM_Zone_48N和WGS_1984_UTM_Zone_49N兩條帶,我可修改WGS_1984_UTM_Zone_48N坐標系的參數,中央經線設為108°,名稱改為WGS_1984_UTM_Zone_48N_A。 若東西跨度超過了6°就不適合用utm坐標系了,用其他投影坐標系吧,例如lambert投影的坐標系。 問: 現有一批國內某地區的數據,跨帶很廣,要拼接到一起,那這些數據在投影上應該如何選擇,尤其是大比例尺地圖,還是用常規的分帶投影嗎? 比如按慣例1:10w的數據是6度分帶,現在假如有17-21帶的數據,放大到一定程度以后如果還是6度分帶并且統一到一個帶,兩邊的地圖肯定會變形很大;如果不統一到一個帶,接縫的地方可以正常拼接嗎? 這種情況下是大比例尺地圖也使用WGS84的球面坐標呢?還是將這些數據都投影到一個帶,即使變形也不管? 答: 研究區域跨多條帶拼接時應該用albers、lambert等投影坐標系來做。 問: 全國數據是albers坐標系的,怎么將經緯網添加上去,線線都是直的呀? 答: 檢查data frame的坐標系是否是地理坐標系。data frame設成數據的坐標系后應該就正確了。 問: 我將地理坐標系的全國數據轉換到了albers投影坐標系,但轉換后最后出來的地圖不是北朝上而朝左了,這是哪里出問題了呢? 答: 檢查中央經線設置是否正確,全國albers坐標系的中央經線通常用105°。中央經線決定了圖形旋轉的方向和角度,與中央經線為105度的圖相比較,小于105度就會向左轉,大于105度就會向右轉。 問: DEM柵格圖轉成點圖層,操作Add XY Coordinate時,計算出來的點坐標是以米為單位的,請問我想得到經緯度值應如何操作呢? 答: 將data frame設成地理坐標系,用calculate geometry按data frame的坐標系計算點的經緯度坐標。 問: 一個圖層從WGS-1984-Albers到xian-1980-Albers,下面的Geographic transformation怎么選擇? 答: 因WGS-1984-Albers到xian-1980-Albers是不同橢球體之間的坐標轉換,精確轉換需要用轉換參數來定義Geographic transformation。轉換參數可去當地測繪部門索取或購買。如果精度要求不是很高的話可用arcgis的動態投影轉換,即:將data frame的坐標系設成xian-1980-Albers,按data frame的坐標系導出數據。 |
|