gpt4 book ai didi

r - 使用 R 更改光栅投影

转载 作者:行者123 更新时间:2023-12-02 00:55:43 27 4
gpt4 key购买 nike

我正在尝试使用 Rraster 包更改光栅投影。输入光栅投影是兰伯特方位角;参数在这里:

Coordinate System:
Lambert_Azimuthal_Equal_Area
False_Easting: 4321000,000000
False_Northing: 3210000,000000
Central_Meridian: 10,000000
Latitude_Of_Origin: 52,000000
GCS_ETRS_1989
Datum: D_ETRS_1989
Prime Meridian: 0


PROJCS
["ETRS_1989_LAEA",
GEOGCS ["GCS_ETRS_1989",
DATUM ["D_ETRS_1989",
SPHEROID ["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Lambert_Azimuthal_Equal_Area"],
PARAMETER["False_Easting",4321000.0],
PARAMETER["False_Northing",3210000.0],
PARAMETER["Central_Meridian",10.0],
PARAMETER["Latitude_Of_Origin",52.0],
UNIT["Meter",1.0]]

我需要将它们转换为 ESRI ASCII 格式的简单栅格,使用经度和纬度坐标,使用墨卡托式投影,单元格大小为 0.1 度(我希望我能充分解释自己,因为我不知道有足够的 GIS 技能,抱歉)。我需要的是格式为 .ASC 的栅格,其中栅格的每个值对应于大小为 N x N 的单个像元,其中 N 是以度为单位(例如 0.1 度),栅格坐标以经度/纬度为单位。

我尝试在 R 中使用 raster 库,并遵循为 projectRaster 函数找到的示例。但是在使用许多参数进行多次尝试之后,我无法正确地做到这一点。我认为我没有使用正确的投影、基准或类似参数。

这是我尝试过的。我在 R 中加载栅格,然后使用以下方法设置其投影:

>crs(r)<-"+proj=laea +lat_1=52 +lon_0=-10 +ellps=GRS80"

然后我定义输出投影并尝试转换并保存:

>newproj <- "+proj=lonlat +lat_1=52 +lon_0=-10 +ellps=WGS84"
>pr2 <- projectRaster(r, crs=newproj, res=0.1)
>writeRaster(pr2, "newraster.asc", overwrite=TRUE)

没有错误消息,但生成的栅格未正确投影(国家边界不匹配,国家轻微扭曲)。

感谢您的帮助!

最佳答案

根据您提供的投影描述,这似乎是错误的:

crs(r) <- "+proj=laea +lat_1=52 +lon_0=-10 +ellps=GRS80"

因为您不包括假北和假东参数; lat_1 可能应该是 lat_0。这可能会更好:

crs(r) <- "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m" 

这看起来也很奇怪:

newproj <- "+proj=lonlat +lat_1=52 +lon_0=-10 +ellps=WGS84"

怎么样

newproj <- "+proj=longlat +datum=WGS84"

关于r - 使用 R 更改光栅投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35340162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com