首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用LCC投影将矩阵转换为栅格

用LCC投影将矩阵转换为栅格
EN

Stack Overflow用户
提问于 2019-04-19 12:20:28
回答 1查看 518关注 0票数 0

我想将数据专用矩阵(不是xyz类型的表)转换为光栅层。每一列和一行代表经度和纬度。

然而,在对矩阵进行光栅化的同时,我正在努力为其分配CRS。

我的数据应该被投影在LCC投影中。我知道的所有参数都在下面。

CEN_LAT: 37.99787f CEN_LON: 127.4592f TRUELAT1: 30.f TRUELAT2: 60.f

因此,我为mycrs分配了CRS()函数,并将其分配如下。我无法在res=7500中指定raster()参数,因为它返回了一个错误。

代码语言:javascript
复制
mx <- matrix(rep(1, 13770), nrow=90, ncol=153) # reproducible example of mx
mycrs <- CRS("+proj=lcc +lat_1=30 +lat_2=60 +lat_0=37.99787 +lon_0=127.4592 +datum=WGS84 +units=m +no_defs")
r <- raster(mx, crs=mycrs)

类别: RasterLayer尺寸: 90,153,13770 (nrow,ncol,ncell)分辨率: 0.006535948,0.01111111 (x,y)范围: 0,1,0,1 (xmin,xmax,ymin,ymax)。参考:+proj=lcc +lat_1=30 +lat_2=60 +lat_0=37.99787 +lon_0=127.4592 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0数据源:内存名称:层值: 1,1 (min,max)

嗯,控制台没有返回任何警告,但结果很尴尬。

dimensions看上去不错,但resolutionextent肯定错了。

该层的域应该类似于

代码语言:javascript
复制
(123.25, 43.23) ------- (131.78, 43.17)
       :                        :
       :                        :
(123.80, 32.73) ------- (131.01, 32.68)

是否有其他方法将mx转换为具有给定CRS参数的光栅?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-19 14:23:36

在这种情况下,您需要知道坐标参考系统( llc )的范围。数据源应该提供这些数据才能使用。你的范围在隆/拉特,但在有限责任公司没有。我们可以估计:

代码语言:javascript
复制
library(raster)         
e <- extent(123.25, 131.78, 32.68, 43.23)
p <- as(e, "SpatialPolygons")
crs(p) <- "+proj=longlat +datum=WGS84"

library(rgdal)
llc <- "+proj=lcc +lat_1=30 +lat_2=60 +lat_0=37.99787 +lon_0=127.4592 +datum=WGS84"
pp <- spTransform(p, llc)

并创建一个RasterLayer

代码语言:javascript
复制
r <- raster(pp)

现在设定分辨率(根据你提供的资料,我知道它是7500米)。

代码语言:javascript
复制
res(r) <- 7500
r
#class      : RasterLayer 
#dimensions : 152, 105, 15960  (nrow, ncol, ncell)
#resolution : 7500, 7500  (x, y)
#extent     : -390412.6, 397087.4, -567400.8, 572599.2  (xmin, xmax, ymin, ymax)
#crs        : +proj=lcc +lat_1=30 +lat_2=60 +lat_0=37.99787 +lon_0=127.4592 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

这与您提供的行和列的数量不匹配(但是您从哪里得到这些行和列?)。

这一程度可以大致正确,但根本无法保证。确切地说,数据提供程序应该真正地将其提供给您。如果您确实知道行和列的数量,那么显然是错误的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55761760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档