我以tif文件的形式下载了新西兰的海拔数据,并附带了“世界文件”(tfw
)
80.000000000000000
0.000000000000000
0.000000000000000
-80.000000000000000
1062571.750000000000000
6282711.000000000000000
我从维基百科上了解到,第一个和第三个数字表示比例(像素/公里),而后两个数字在UTM坐标中定位原点(如果我理解正确的话)。
现在,我想将这些栅格数据与一个不同的数据集对齐,该数据集包括一个从GPS坐标追踪的路径,这为我提供了经纬度格式
X Y
1 174.7771 -41.29805
2 174.7771 -41.29815
3 174.7772 -41.29819
4 174.7772 -41.29824
5 174.7772 -41.29827
6 174.7772 -41.29836
...
我尝试了以下将UTM转换为经/纬度的方法,但是结果似乎完全错误。我想念什么?
library(rgdal)
utm <- SpatialPoints(cbind(1062571.75, -6282711.0),
proj4string=CRS("+proj=utm"))
spTransform(utm, CRS("+proj=nzmg"))
class : SpatialPoints
features : 1
extent : 1754874408, 1754874408, 5271325323, 5271325323 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=nzmg +ellps=WGS84
编辑:按照下面的建议,我从tif文件中获取了以下数据,
> library(raster)
> r <- raster("nztm.tif")
> r
class : RasterLayer
dimensions : 19712, 13261, 261400832 (nrow, ncol, ncell)
resolution : 80, 80 (x, y)
extent : 1062532, 2123412, 4705791, 6282751 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
data source : nztm.tif
names : nztm
values : -32768, 32767 (min, max)
> crs(r)
CRS arguments:
+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000
+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
答案 0 :(得分:1)
首先检查文件是否带有坐标参考系统(也许在.prj文件中?) 在R中,您可以执行以下操作:
library(raster)
r <- raster("elevation.tif")
r
crs(r)
如果这是不适用的,而您在其他地方找不到任何参考,则可能很难弄清楚。
海拔crs可能是“ UTM”,但根本不能保证。如果是UTM,则需要知道60个UTM区域中的哪个区域,然后可能会有一些其他参数。实际上,由于新西兰跨越多个UTM区域,因此极不可能有人选择新西兰的UTM。您可以尝试以下方法:
library(rgdal)
utm <- SpatialPoints(cbind(1062571.75, -6282711.0),
proj4string=CRS("+proj=utm +zone=59 +datume=WGS84 "))
spTransform(utm, CRS("+proj=longlat +datum=WGS84"))
#SpatialPoints:
# coords.x1 coords.x2
#[1,] -179.8818 -56.35255
不是那个离新西兰很远。
“ nzmg”或其他适用于新西兰的标准crs似乎更合理
utm <- SpatialPoints(cbind(1062571.75, -6282711.0),
proj4string=CRS("+proj=nzmg +datum=WGS84"))
spTransform(utm, CRS("+proj=longlat +datum=WGS84"))
# -178.9791 -71.8877
更可惜的是,几乎是南极洲